@charset 'utf-8';

/* ===============================
	base
 =============================== */
body {
	font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
	font-size: 62.5%;
	line-height: 1.6rem;
	color: #3f3f3f;
	-webkit-text-size-adjust: 100%;
}
a {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0); /* スマホのハイライトデザインを無効にする */
}
a:focus {
	outline: none;
}
img {
	width: 100%;
	vertical-align: bottom;
}
.mo a img {
	background-color: rgba(255, 255, 255, .01); /* マウスオーバー要素のバグ対応 */
}


/* ヘッダー */
header .inner{
    position: absolute;
    top: 0;
	z-index: 100;
	width: 100%;
    height: 60px;
}
header img{
	width: 30%;
    position: absolute;
	top: 50%;
    left: 3%;
	transform: translateY(-50%);
}

@media screen and (min-width:768px){
	header .inner{
		width: 750px;
		height: 80px;
	}
	header img{
		width: 20%;
		left: 3%;
	}
}


/* 共通のCSS */
.wrapper{
	width: 100%;
	overflow: hidden;
}

.text-red {
	color: #eb6860;
	font-weight: bold;
}

.text-green {
	color: #42b04d;
	font-weight: bold;
}

.section_title {
	margin: 2rem 0 40px;
	font-size: 1.4rem;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

@media screen and (min-width:768px){
.section_title {
	margin: 2rem 0 1rem;
	font-size: 2rem;
	font-weight: 900;
	line-height: 1.3;
	}
}


/* セクション01 */
.section_01{
	position: relative;
}
.sec01_main{
	position: relative;
	width: 100%	;
	z-index: 0;
}

.sec01_img01,
.sec01_img02{
	position: absolute;
}
.sec01_img01 img,
.sec01_img02 img{
	width: 100%;
}

.sec01_img01{
	width: 52%;
	z-index: 1;
	top: 58%;
	right: 6%;
}
.sec01_img02{
	width: 55%;
	z-index: 2;
	top: 76%;
	left: -1%;
}

.sec01_magazin{
	width: 40%;
    position: absolute;
    top: 17%;
    left: -2%;
    z-index: 99;
}
.sec01_magazin{
	width: 36%;
    position: absolute;
    top: 17%;
    left: -2%;
    z-index: 99;
}

.section_03{
	padding-top: 14%;
	background-color: #f7e9e9;
}
.sec03_title{
	width: 100%;
}
.section_03 img{
	display: block;
}
.sec03_media{
	width: 100%;
	padding-bottom: 8%;
}

.slider-box p,
.slider-box div,
.loop-box ul,
.loop-box li{
	box-sizing: baorder-box; margin: 0 !important; padding: 0 !important;
}

/* 2.ベースBOXの設定 +++++++++++++++++++++ */
.slider-box {
	box-sizing: border-box;
	overflow: hidden;
	width: 100%; /* 画面又は親要素に対するサイズ - 変更可 */
	margin: 0 auto; /* Box外の余白 - 変更可 */
	padding: 10px 0 0; /* 上端からスライダーまでの距離 - 変更可・削除可 */
	width: 100vw;
	transform: translateX(-50%);
	left: 50%;
	position: relative;
	margin:20px 0px 50px;
}

@media screen and (min-width:1069px){
	.slider-box {
		box-sizing: border-box;
		overflow: hidden;
		width: 100%; /* 画面又は親要素に対するサイズ - 変更可 */
		margin: 0 auto; /* Box外の余白 - 変更可 */
		padding: 10px 0 0; /* 上端からスライダーまでの距離 - 変更可・削除可 */
		width: 70vw;
		transform: translateX(-50%);
		left: 50%;
		position: relative;
		margin:20px 0px 50px;
	}

}

@media screen and (max-width: 1068px) and (min-width: 768px){
	.bx-wrapper{
		box-sizing: border-box;
		overflow: hidden;
		width: 100%; /* 画面又は親要素に対するサイズ - 変更可 */
		margin: 0 auto; /* Box外の余白 - 変更可 */
		padding: 10px 0 0; /* 上端からスライダーまでの距離 - 変更可・削除可 */
		width: 100vw;
		transform: translateX(-50%);
		left: 50%;
		position: relative;
		margin:20px 0px 50px;
	}


}
/* 3.チェックボックスを利用した停止・再生などの設定 +++++++++++++++++ */
.slider-check {
	display: none;
}
.slider-check:checked ~ .loop-box > .loop {
	animation-play-state: paused;
}
.slider-label {
	display: block;
	cursor: pointer;
	color: #fff; /* 文字色 - 変更可 */
	font-size: 24px; /* 文字サイズ - 変更可 */
	/*line-height: ; */ /* ボタン部分の高さ - 変更可 */
	text-align: center;
}
/* 4.スライダー本体とアニメーションの基本設定 ++++++++++++++ */
.loop-box{
	position: relative;
	width: 100%;
	overflow: hidden;
}

.loop-box, .loop-box ul {
	height: 250px; /* スライダーの高さ - 変更注意 */
}
.loop-box ul {
	position: absolute; left: 0; top: 0;
	display: flex;
	justify-content: space-between;
	list-style: none;
	max-width: 10000%;
	min-width: 100%;
	width: calc(150px * 1.5 * 3); /* 画像の横幅×枚数 - 変更注意・変更可・変更注意 */
	animation: 30s linear infinite; /* アニメーション設定 - 変更可 */
}
.loop-box li {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	width: calc(100% / 3); /* li の幅を均等にする - 削除可・変更注意 */
}
.loop-box img {
	height: auto;
	width: 100%;
}
@media screen and (min-width:1069px){
	.loop-box, .loop-box ul {
		height: 500px; /* スライダーの高さ - 変更注意 */
	}
	.loop-box ul{
		width: calc(150px * 1.5 * 3);
	}
}

@media screen and (max-width: 1068px) and (min-width: 768px){
	.loop-box, .loop-box ul {
		height: 400px; /* スライダーの高さ - 変更注意 */
	}
	.loop-box ul{
		width: calc(150px * 1.5 * 3);
	}

}


/* 5.アニメーション個別設定 ++++++++++ */
.loop-box ul.loop1 {
	animation-name: loop1;
}
.loop-box ul.loop2 {
	animation-name: loop2;
}
@keyframes loop1 {
	0% {transform: translateX(0); }
	49.99999% {transform: translateX(-100%); }
	50% {transform: translateX(100%); }
}
@keyframes loop2 {
	0% {transform: translateX(100%); }
	100%{transform: translateX(-100%); }
}

.media img{
	width: 100%;
}



/* ==========================
	SECTION 04
============================*/

.section_04 {
	text-align: center;
}

/* アニメーションの設定：ここから ----------------------------------------------------------------------*/

/* 4.スライダー本体とアニメーションの基本設定 ++++++++++++++ */
.section_04 .loop-box{
	position: relative;
	width: 100%;
	overflow: hidden;
}
.section_04 .loop-box, .section_04 .loop-box ul {
	height: 53vw; /* スライダーの高さ - 変更注意 */
}
.section_04 .loop-box ul {
	position: absolute; left: 0; top: 0;
	display: flex;
	justify-content: space-between;
	list-style: none;
	max-width: 10000%;
	min-width: 100%;
	width: calc((53vw + 24px) * 4); /* (画像の横幅 + 余白) ×枚数 - 変更注意・変更可・変更注意 */
	animation: 30s linear infinite; /* アニメーション設定 - 変更可 */
}
.section_04 .loop-box li {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	width: calc(100% / 4); /* li の幅を均等にする - 削除可・変更注意 */
	margin-right: 24px!important;
	border-radius: 12px;
	overflow: hidden;
}
.section_04 .loop-box img {
	height: auto;
	width: 100%;
}

@media screen and (min-width:1069px){
	.section_04 .loop-box, .section_04 .loop-box ul {
		height: 400px; /* スライダーの高さ - 変更注意 */
	}
	.section_04 .loop-box ul{
		width: calc(400px * 4);
	}
}

@media screen and (max-width: 1068px) and (min-width: 768px){
	.section_04 .loop-box, .section_04 .loop-box ul {
		height: 400px; /* スライダーの高さ - 変更注意 */
	}
	.section_04 .loop-box ul{
		width: calc(400px * 4);
	}
}

/* 5.アニメーション個別設定 ++++++++++ */
.section_04 .loop-box ul.loop1 {
	animation-name: loop1;
}
.section_04 .loop-box ul.loop2 {
	animation-name: loop2;
}

/* アニメーションの設定：ここまで ----------------------------------------------------------------------*/

.section_04 .cta {
	position: relative;
}

.cta_content {
	width: 100%;
	position: absolute;
	top: 19.5%;
}

.cta_button{
	position: absolute;
	z-index: 2;
	bottom: 16.5%;
	left: 0;
	right: 0;
	margin: auto;
}
.cta_button a {
	display: block;
	margin: 0 auto;
	width: 82vw;
	height: 74px;
	line-height: 74px;
	color: #fff;
	font-size: 1.3rem;
	letter-spacing: 0.14em;
	font-weight: 700;
	background-color: #55b85f;
	box-shadow: 0 6px 0 #329b39;
	border-radius: 50vh;
	text-decoration: none;
	box-sizing: border-box;
	position: relative;
}
.cta_button a::after {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10%;
	margin: auto;
	content: "";
	vertical-align: middle;
	right: 10px;
	box-sizing: border-box;
	width: 5px;
	height: 5px;
	border: 5px solid transparent;
	border-top: 5px solid #FFFFFF;
	z-index: 3;
}
.cta_button a:hover {
	text-decoration: none;
	background-color: #33a53e;
}

@media screen and (max-width: 1068px) and (min-width: 768px){
	.cta_button{
		top: 78%;
	}
	.cta_button a {
		height: 120px;
		max-width: 800px;
		font-size: 2rem;
		line-height: 3.7;
	}
	.cta_button a::after {
		width: 10px;
		height: 10px;
		border: 10px solid transparent;
		border-top: 10px solid #FFFFFF;
		z-index: 3;
		bottom: 2%;
	}
}

@media screen and (min-width:1069px){
	.cta_button{
		top: 78%;
	}
	.cta_button a {
		height: 120px;
		max-width: 600px;
		font-size: 2rem;
		line-height: 3.7;
	}
	.cta_button a::after {
		width: 10px;
		height: 10px;
		border: 10px solid transparent;
		border-top: 10px solid #FFFFFF;
		z-index: 3;
		bottom: 2%;
	}
}



/* ==========================
	SECTION 05
============================*/

.section_05{
	text-align: center;
	padding: 40px 20px;
}
.sec05_title{
	font-size: 1.6rem;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.1em;
}
.sec05_text{
	font-size: 1rem;
    font-weight: 900;
    line-height: 2;
}
.sec05_img{
	width: 25%;
}
@media screen and (min-width:768px){
	.sec05_title{
		font-size: 2.4rem;
	}
	.sec05_text{
		font-size: 1.4rem;
	}
}

.section_06{
	text-align: center;
	padding-bottom: 56px;
}

.sec08_img2{
	margin-bottom: 1rem;
	width: 100%;
	background: #fff;
	box-shadow: 0 17px 29px rgb(0 0 0 / 20%);
	border-radius: 30px;
	margin-top: 15px;
}

@media screen and (min-width:768px){
	.sec06_title{
		font-size: 2rem;
	}
}
.card__image {
	max-width: 100%;
	vertical-align: bottom;
	border-radius: 30px 30px 0 0;
}

.l-wrapper {
	margin: 0 auto;
	width: 100%;
	box-shadow: 0 17px 29px rgb(0 0 0 / 20%);
	border-radius:30px;
}

.card {
	background-color: #fff;
	box-shadow: 0 0 8px rgba(0, 0, 0, .16);
	color: #212121;
	text-decoration: none;
	border-radius:30px;
}
.card__header {
	display: flex;
	flex-wrap: wrap;
}
.card__body{
	border-top: solid 1px #FFF;
}
.card__title {
	font-size: 1rem;
	font-weight: 900;
	text-align: left;
	line-height: 1.2;
	letter-spacing: 0.1rem;
	margin: 20px 20px 0px 20px;
}
@media screen and (min-width:768px){
	.card__title {
		font-size: 1.6rem;
		margin: 40px 40px 0px 40px;
	}
}
  .card__thumbnail {
	margin: 0;
	order: 0;
  }
  .card__image {
	width: 100%;
  }
 .card__text {
	margin: 0;
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
	padding:15px;
  }
  .card__text + .card__text {
	margin-top: .5rem;
  }
  .card__text.-number {
	text-align: right;
  }
  .card__footer {
	padding: 1rem;
	border-top: 1px solid #ddd;
  }

  .button {
	display: inline-block;
	text-decoration: none;
	transition: background-color .3s ease-in-out;
  }

  .button.-compact {
	padding: .5rem 1rem;
	border-radius: .25rem;
	background-color: #26a69a;
	color: #fff;
	font-weight: bold;
  }

  .button.-compact:hover,
  .button.-compact:focus {
	background-color: #80cbc4;
  }

  .section_06 .card__text{
	margin: 0 0 1rem;
  }

@media screen and (min-width:768px){
	.section_06 .card__text{
		margin: 1rem 0 1rem;
		line-height: 1.5;
		font-size: 1.2rem;
	}
}

  .section_07{
		text-align: center;
		padding-top: 24px;
  }

  .section07_card__text {
		margin: 0;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.6;
    text-align: left;
		margin-bottom: 20px;
		padding: 0 8%;
		letter-spacing: 0.03em;
  }

	.section_07 .voice_title {
		margin-bottom: 20px;
	}

	.voice_item {
		margin-bottom: 64px;
	}

  @media screen and (min-width:768px){
	.section_07 .voice_title {
		margin-bottom: 32px;
	}

	.section07_card__text {
		margin: 0;
		font-size: 1rem;
		font-weight: 400;
		line-height: 2;
		text-align: left;
		padding: 0 11%;
	  }
	}

  .section_08{
		text-align: center;
		background-color:#fcf7f4;
		padding: 5% 5% 15%;
  }

	.section_08 .section_title {
		margin-bottom: 24px;
	}

  .sec08_img1{
	  margin-bottom: 5%;
  }
  .sec08_text{
	font-size: 1rem;
    font-weight: 900;
    line-height: 1.2;
  }

  .fa-position-right {
	position: absolute;
	top: calc(50% - .5em);
	right: 1rem;
  }

.section_10{
	position: relative;
	margin-top: 40px;
}
.line_friend{
	width: 20%;
    position: absolute;
    top: 62%;
    left: 23%;
    z-index: 80;
}
.line_friend img{
	width: 100%;
	height: auto;
}

.section_11 {
	padding: 5%;
	text-align: center;
}

.ac-menu:last-child {
	margin-bottom: 60px; /* 最後の要素の下にだけ余白 */
  }
  .ac-menu input {
		display: none;
  }
  .ac-menu label {
		color: #eb6860;
    font-size: 0.8rem;
    line-height: 2;
    font-weight: bold;
    text-align: left;
    background: #fcf7f4;
    padding: 20px;
    cursor: pointer;
    position: relative;
    display: block;
		margin:10px 0px;
  }

  .ac-menu-inside {
		color: #3f3f3f;
    font-size: 0.8rem;
    line-height: 2;
    text-align: left;
  }
  @media screen and (min-width:768px){
		.ac-menu label {
			font-size: 1rem;
			line-height: 2;
			padding: 20px;
			cursor: pointer;
			position: relative;
			display: block;
			margin:10px 0px;
		 }
		 .ac-menu-inside {
			color: #3f3f3f;
			font-size: 1rem;
			line-height: 2;
			text-align: left;
		  }
}


  .ac-menu label:after {
	position: absolute;
	right: 20px; /* 左からの距離 */
	top: 50%; /* 上下中央配置 */
	-webkit-transform : translateY(-50%);
	transform : translateY(-50%);
	content: "＋"; /* アイコン */
  }
  .ac-menu input:checked ~ label::after {
	content: "−"; /* クリック後のアイコン */
  }
  .ac-menu div {
	height: 0;
	overflow: hidden;
	opacity: 0;
	transition: 0.3s; /* 開閉スピード */
  }
  .ac-menu input:checked ~ div {
	height: auto;
	opacity: 1;
	padding: 20px; /* 中身の枠内の余白 */
  }

  .section_09{
		text-align: center;
  }

	.procedure {
		padding: 5%;
	}

	.section_09 .select_plan .section_title {
		margin-bottom: 10px;
	}

	.plan1, .plan2 {
		position: relative;
	}

	.plan1 .plan_button_wrap {
		position: absolute;
		bottom: 9%;
		width: 100%;
		padding: 0 9%;
	}

	.plan2 .plan_button_wrap {
		position: absolute;
		bottom: 8%;
		width: 100%;
		padding: 0 9%;
	}

	.plan_button_wrap .plan_button {
		display: block;
		width: 100%;
		height: 68px;
    margin-bottom: 18px;
    line-height: 68px;
    font-size: 1.17rem;
    background-color: #ffffff;
    text-decoration: none;
    border-radius: 68px;
    font-weight: 900;
    position: relative;
		letter-spacing: 0.23em;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.plan_button_wrap .plan_button::after {
		position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
    right: 10px;
    box-sizing: border-box;
    width: 5px;
    height: 5px;
    border: 5px solid transparent;
    border-left: 5px solid #FFFFFF;
    z-index: 3;
  }

	.plan_button_wrap .plan_button .recommend {
		font-size: 0.9rem;
		letter-spacing: 0;
	}

	.plan1 .plan_button_wrap .plan_button {
	  color: #fff;
		background-color: #EB685F;
	  box-shadow: 0 6px 0 #cc5656;
  }
  .plan2 .plan_button_wrap .plan_button {
	  color: #fff;
		background-color: #42b04d;
	  box-shadow: 0 6px 0 #329b39;
  }

	.plan1 .plan_button_wrap .plan_button:hover {
		text-decoration: none;
		background-color: #e25e55;
	}

	.plan2 .plan_button_wrap .plan_button:hover {
		text-decoration: none;
		background-color: #33a53e;
	}

	@media screen and (min-width: 768px){
		.plan1 .plan_button_wrap, .plan2 .plan_button_wrap {
			bottom: 10%;
		}

		.plan_button_wrap .plan_button {
			height: 120px;
			margin-bottom: 32px;
			line-height: 2.2;
			font-size: 2rem;
			border-radius: 120px;
		}

		.plan_button_wrap .plan_button .recommend {
			font-size: 1.5rem;
			letter-spacing: 0;
		}

		.plan_button_wrap .plan_button::after {
			right: 25px;
			box-sizing: border-box;
			width: 10px;
			height: 10px;
			border: 10px solid transparent;
			border-left: 10px solid #FFFFFF;
			z-index: 3;
		}
	}

html { scroll-behavior: smooth;}

.ScrollTop{
	width: 100%;
	position: fixed;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
	z-index: 9999;
	padding: 24px;
	opacity: 0;
	transition: all 0.25s;
}

@media screen and (min-width:768px){
	.ScrollTop{
		width: 50%;
	}
}


.button2{
	display: block;
    margin: -10px auto;
    width: 100%;
    background: #EB685F;
    color: #fff;
    text-align: center;
    padding: 1.1rem;
    font-weight: 600;
    font-size: 1.4rem;
    text-decoration: none;
    border-radius: 70px;
}
.ScrollTop.isActive {
	opacity: 1;
	transition: all 0.65s;
}

@media screen and (min-width:1069px){
	.wrapper{
		width: 750px;
		margin: 0 auto;
		background:#fff;
	}
	body{
		background: #F0F0F0;
	}
}

@media screen and (max-width: 1068px) and (min-width: 768px){
	.button2{
		display: block;
		margin: -10px auto;
		width: 100%;
		background: #EB685F;
		color: #fff;
		text-align: center;
		padding: 2rem;
		font-weight: 600;
		font-size: 1.5rem;
		text-decoration: none;
		border-radius: 70px;
	}
}
