@charset "utf-8";

html{
	font-size: 100%;
	}
@media screen and (max-width: 999px) {
html{
	font-size: 75%;
	}
}
body{
	margin: 0;
	padding: 0;
	line-height: 1.6;
	color: #4e4644;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", HelveticaNeue, "Segoe UI", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
	}
img{
	max-width: 100%;
	}
ul{
	list-style:none;
	}
a{
	text-decoration: none;
	color: #2580cb;
	}
a:hover{
	text-decoration: underline;
	}

#page {
	display: grid;
	grid-template-rows: auto 1fr auto;
	grid-template-columns: 100%;
	min-height: 100vh;
}

.wrap{
	width: 100%;
	max-width: 920px;
	margin:0 auto;
	}
@media screen and (max-width: 38.74em) {
.wrap{
	width: auto;
	padding: 0 18px;
	}
}

/* block
-------------------------------- */
@media screen and (min-width: 1000px) {
.pcnone{
	display: none !important;
	}
}
@media screen and (max-width: 999px) {
.spnone{
	display: none !important;
	}
}


/* 文字設定
-------------------------------- */
.text-center{
	text-align:center;
	}
.text-right{
	text-align: right;
	}
.text-left{
	text-align: left;
	}
.text-blue{
	color: #004ea2;
	}
.text-red{
	color: #e71a20;
	}
.text-yellow{
	color: #ffe100;
	}
.text-large{
	font-size: 150%;
	}

.text-regular{
	font-weight: 400;
}

.text-bold{
	font-weight: bold;
}

.text-note{
	margin: .5rem 0 0;
	line-height: 1.2;
	font-size: 80%;
	}
	.text-note p{
		margin: .4rem 0;
		}
	.text-note p:first-child{
		font-size: 21px;
		font-weight: bold;
		}
ul.text-note{
	padding-left: 0;
	}
	ul.text-note > li{
		padding-left: 1em;
		text-indent: -1em;
		}
.text-center{
	text-align: center;
	}
.link_arrow:before{
	margin-right: .2em;
	color: #798b90;
	font-size: 1em;
	font-family: "Font Awesome 5 Free";
	content: "\f105";
	font-weight: bold;
	}

.list-disc{
	padding-left: 0;
	}
	.list-disc li{
		padding-left: 1em;
		text-indent: -1em;
		}
		.list-disc li::before{
			display: inline-block;
			width: .6em;
			height: .6em;
			margin-right: .6em;
			border-radius: 50%;
			background: #ccc;
			content: '';
			}
table{
	width: 100%;
	border-collapse: collapse;
	}
table > caption{
	background: #333;
	text-align: left;
	padding: .2em 1em;
	color: #fff;
	}
table th,
table td{
	padding: .5em 1em;
	border: 1px solid #fff;
	text-align: left;
	}
table th{
	font-weight: normal;
	background: #fef6e8;
	}
table th ul{
	margin: 0;
	}
@media screen and (max-width: 999px) {
table th,
table td{
	font-size: 12px;
	}
.table-scroll{
	overflow-x: scroll;
	}
.table-scroll table{
	min-width: 600px;
	}
}

/* ボタン
-------------------------------- */
.button{
	display: block;
	position: relative;
	margin: 1rem 0 0;
	text-decoration: none;
	font-weight: bold;
	text-align: center;
	border-radius: 40px;
	box-sizing: border-box;
	cursor: pointer;
	border:none;
	font-size: 1.2rem;
	color: #fff;
	box-shadow: 0px 4px 10px 0px rgba(7, 4, 4, 0.2);
	}
.button:hover{
	text-decoration: none;
	transition: background-color .2s;
	}
.button.btn_order{
	padding-top: .8em;
	line-height: 1.2 !important;
	}
	.button::after{
		position: absolute;
		top: 50%;
		right: 1.4rem;
		margin-top: -.7rem;
		font-size: 1.5rem;
		line-height: 1;
		}
	.button:not(.trigger)::after{
		font-family: "Font Awesome 5 Free";
		content: "\f105";
		font-weight: bold;
		}
	.button.small.trigger::after{
		font-size: 100%;
		}
	.button.no-arrow::after{
		display: none;
		}
	.button > span{
		display: inline-block;
		position: absolute;
		width: 40px;
		height: 40px;
		line-height: 40px;
		text-align: center;
		background: #eaf4ff;
		border-radius: 50%;
		color: #1b61ab;
		}
	.button.secondary > span{
		color: #333;
		}
	.button.large > span{
		width: 60px;
		height: 60px;
		}
		.button.large > span > i{
			vertical-align: -.4em;
			}
	.button > span > img{
		max-width: 45px;
		margin-top: 2px;
		}
	.button.large > span > img{
		max-width: 50px;
		margin-top: 5px;
		}
	.button > span > i{
		font-size: 140%;
		}
	.button.small > span > i{
		vertical-align: -.2em;
		}
	.button.btn_order > small{
		display: block;
		font-size: 1rem;
		font-weight: normal;
		}
	.button.btn_order > small{
		display: block;
		font-size: 1rem;
		font-weight: normal;
		}
	.button *{
		pointer-events: none;
		}
/* ボタンの色設定 */
.button{
	background-color: rgb(79 169 232);
	}
.button:hover{
	background-color: rgba(79, 169, 232, .8);
	}
.button.alert{
	background-color: rgb(231 26 32);
	}
.button.alert:hover{
	background-color: rgba(231, 26, 32, .8);
	}
	.button.alert > span{
		background-color: #fff5f6;
		}
		.button.alert > span > i{
			color: rgb(231 26 32);
			}
.button.success{
	background-color: rgb(27 97 171);
	}
.button.success:hover{
	background-color: rgba(27, 97, 171, .8);
	}
	.button.success > span{
		background-color: #eaf4ff;
		}
.button.secondary{
	background-color: rgb(102 102 102);
	}
.button.secondary:hover{
	background-color: rgba(102, 102, 102, .8);
	}
	.button.secondary > span{
		background-color: #eaeaea;
		}
	
	.support-show .button.secondary {
		padding: 0;
	}
@media screen and (max-width: 999px) {
.button{
	height: 50px;
	line-height: 50px;
	padding-left: 30px;
	}
.button.large{
	height: 70px;
	line-height: 70px;
	padding-left: 40px;
	}
	.button.large > span > i{
		font-size: 180%;
		vertical-align: -.4em;
		}
.button.small{
	height: 60px;
	line-height: 60px;
	font-size: 1rem;
	}
	.button > span{
		top: 5px;
		left: 5px;
		}
	.button.small > span{
		width: 50px;
		height: 50px;
		}
		.button.small > span > i{
			font-size: 170%;
			vertical-align: -.4em;
			}
}
@media screen and (min-width: 1000px) {
.button{
	height: 70px;
	line-height: 70px;
	padding-left: 30px;
	}
.button.large{
	height: 75px;
	line-height: 75px;
	padding-left: 40px;
	}
	.button.large > small{
		padding-top: .4rem;
		font-size: .7rem;
		}
	.button.large > small > br{
		display: none;
		}
.button.small{
	height: 60px;
	line-height: 60px;
	font-size: 1rem;
	}
	.button > span{
		top: 7px;
		left: 7px;
		}
	.button.small > span{
		width: 46px;
		height: 46px;
		}
}


/* header
-------------------------------- */
#header{}

.header_inner {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #ededed;
}

.header-logo {
	margin: 0 10px 5px 0;
	height: 16.5px;
}

#header p:not(.site){
	font-size: 1.2rem;
	margin: 0 0 .1em;
	font-weight: bold;
}

#header p.site{
	margin: 0;
	padding: .5em 0;
	background: #ededed;
	font-size: 80%;
}
/* footer
-------------------------------- */
#footer{
	/* padding-top: 1rem; */
	text-align:center;
	}
	#footer .privacy{
		padding: 1.5em 0;
		background: #f5f5f5;
		}
	#footer .privacy > a{
		display: inline-block;
		color: #4D4D4D;
		line-height: 1;
		padding: 0 1rem;
		text-decoration: none;
		}
.copyright{
	margin: 0;
	color: #fff;
	background: #333;
	}
@media screen and (min-width: 1000px) {
.copyright{
	font-size: .75rem;
	padding: .8rem 0;
	}
}

/* 見出し */
.ttl-h2{
	color: #e71a20;
	font-weight: bold;
	}
@media screen and (max-width: 999px) {
.ttl-h2{
	margin: 0;
	padding: 10px 16px;
	text-indent: 20px;
	border-bottom: solid 4px #fdd9de;
	background: url(../img/ico_denki.png) #fee9ec no-repeat 5px 50%;
	background-size: auto 30px;
	font-size: 130%;
	}
}
@media screen and (min-width: 1000px) {
.ttl-h2{
	max-width: 820px;
	margin: 30px auto 10px;
	padding: 8px 50px;
	border-bottom:2px solid #fdd9de;
	background: url(../img/ico_denki.png) #fee9ec no-repeat 3px 50%;
	background-size: 46px auto;
	font-size: 26px;
	}
#contents section{
	margin-bottom: 40px;
	}
}


/* コンテンツエリア
-------------------------------- */
/* KV */
.kv{
	margin: 0 !important;
	padding: 0;
	}
	.kv > h1{
		margin: 0;
		padding: 0;
		font-size: 1rem;
		line-height: 0;
		text-align: center;
		background: #f8d6db;
		}
.button-wrap{
	padding: 10px 0 30px;
	background: #f8f8f8;
	}
@media screen and (min-width: 1000px) {
.button-wrap{
	max-width: 880px;
	margin: 0 auto;
	padding: 10px 20px 20px;
	}
	.button-wrap .wrap{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		}
		.button-wrap a{
			width: 430px;
			}
	.button-box{
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		}
		.button-box a{
			width: 300px;
			margin: .5rem 1rem;
			}
}

/* flow */
#flow{
	padding-bottom: 2rem;
	background:#fff5f6;
	}
#flow section{
	position: relative;
	margin-top: 2rem;
	padding: 0 1.5rem 1.5rem;
	background: #fff;
	counter-increment: section;
	box-shadow: 2px 3px 10px 0 rgba(232, 49, 54, 0.5);
	border-radius: 10px;
	}
#flow section:not(:last-child){
	margin-bottom: 4rem;
	}
	#flow section:not(:last-child)::after{
		display: block;
		position: absolute;
		left: 50%;
		bottom: -2rem;
		width: 0;
		height: 0;
		margin-left: -12px;
		border-style: solid;
		border-width: 12px 12px 0 12px;
		border-color: #999 transparent transparent transparent;
		content: '';
		}
	#flow section h3{
		position: relative;
		margin: 0;
		padding-top: 2rem;
		padding-bottom: 1em;
		border-bottom: 1px solid #f36f81;
		font-size: 1.2rem;
		color: #f36f81;
		text-align: center;
		}
		#flow section h3 > span{
			position: absolute;
			width: 5.4em;
			top: -1rem;
			left: 50%;
			margin-left: -2.7em;
			padding: .3rem 0 .6rem;
			text-align: center;
			border-radius: 20px;
			line-height: 1;
			background: #f36f81;
			font-weight: normal;
			color: #fff;
			content: 'STEP0'counter(section);
			}
			#flow section h3 > span > strong{
				padding-left: .5rem;
				font-size: 120%;
				font-weight: normal;
				}
	#flow section p{
		margin-top: .5rem;
		margin-bottom: 0;
		font-size: 1.2rem;
		}
	#flow .trigger-inside{
		box-shadow: none;
		background: #f8f8f8;
		}
	#flow .trigger-inside p{
		font-size: 1rem;
		line-height: 1.2;
		}

	#flow .trigger-inside .support-show p{
		margin: 1rem auto 0;
		font-size: .85rem;
	}
@media screen and (min-width: 1000px) {
	#flow{
		padding-top: 1rem;
		}
}

/* アコーディオン */
.faq {
	}
.faq > dt {
	background-image: none;
	border: 1px solid #999999;
	padding: 10px 20px;
	border-radius: 10px;
	font-weight: bold !important;
	font-size: 14px;
	margin-bottom:10px;
	line-height: 1.3;
}
.faq dt::before {
	content: "Q.";
	color: #ff6666;
	margin-right:5px;
}
.faq dd {
	margin: 20px 20px 40px;
	text-indent: -20px;
	padding-left: 20px;
	font-size: 14px;
}
@media screen and (max-width: 999px) {
.faq > dt {
	display: flex;
	align-items: center;
	min-height: 2.5em;;
	}
.faq dd {
	display:none;
	}
}
.faq dd::before {
	content: "A.";
	color: #3366ff;
	margin-right:5px;
	font-weight: bold;
}

.trigger{
	cursor: pointer;
	}
.trigger::after{
	font-family: "Font Awesome 5 Free";
	content: "\f067";
	font-weight: bold;
	margin-top: -.5rem;
	font-size: 1.2rem;
	}
.trigger.active::after{
	content: "\f068";
	}
.trigger-inside{
	display: none;
	margin: 1rem 0 2rem;
	padding: 1rem;
	background: #fff;
	border-radius: 10px;
	text-align: center;
	box-shadow: 2px 4px 16px 0px rgba(152, 139, 139, 0.25);
	}
	.trigger-inside p{
		margin: 0;
		font-size: 1.1rem;
	}

	.trigger-inside .support-show{
		display: none;
	}

	.trigger-inside .support-show p{
		margin: 1rem auto 0;
		font-size: .85rem;
	}

	.trigger-inside .text-blue{
		font-weight: bold;
		font-size: 1.3rem;
		}

/* メンテナンス */
.maintenance {
	margin: 10px;
	padding: 10px;
	border: 1px dashed #f00;
	color: #f00;
	}
	.maintenance h2 {
		margin: 0;
		font-size: 14px;
		font-weight: bold;
		text-align: center;
		}
	.maintenance p {
		margin: 0;
		font-size: 12px;
		}
@media screen and (min-width: 1000px) {
.maintenance {
	margin: 30px auto;
	padding: 15px 30px;
	max-width: 860px;
	}
	.maintenance p {
		font-size: 14px;
		text-align: center;
		}
}

/* エリア確認フォーム */
.area-form{
	padding-bottom: 1px;
	background: #f5ffeb;
	}
	.area-form h2{
		margin: 0 0 10px;
		padding: 1.7rem 0;
		font-size: 18px;
		line-height: 1.2;
		text-align: center;
		background-image:url(../img/bg_area_l.png),url(../img/bg_area_r.png);
		background-repeat:  no-repeat,no-repeat;
		background-position: 0 0, 100% 0;
		background-size: auto 100%,auto 100%;
		background-color: #e8ffd1;
		}
.button.primary{
	width: 100%;
	height: auto;
	margin: 1rem auto;
	padding: .4em 0 .4em 1.8em;
	border-radius: 6px;
	font-size: 1.5rem;
	background: url(../img/ico_area.png) #1bab44 no-repeat 20px 15px;
	background-size: 33px 32px;
	color: #fff;
	}
.button.primary[disabled]{
	padding-left: 0;
	background: #E0E0E0;
	opacity: .5;
	cursor: auto;
	box-shadow: none;
	}
.button.primary:hover{
	background-color:rgb(27 171 68 / .8);
	}
input:focus,
select:focus,
textarea:focus{
	outline: none;
	}
input[type="text"],
input[type="number"],
input[type="tel"],
input[type="email"],
select,
textarea{
	border:none;
	border-radius:4px;
	background: #fff;
	border:1px solid #AFAFAF;
	font-size: 16px;
	}
input[type="text"],
input[type="number"],
input[type="tel"],
input[type="email"],
textarea{
	width: calc(100% - 1.2em);
	padding: .5em;
	}
select {
	width:100%;
	height: 2.2em;
	text-indent: .5em;
	}
.ERR {
	color: #db2b5d;
	margin: .5rem 0 0;
	}
.required-focus{
	background: #fce2e2 !important;
	border-color: #db2b5d !important;
	}
.any,
.required{
	padding: .1em .5em;
	font-size: 10px;
	color: #fff;
	vertical-align: middle;
	font-weight: normal;
	}
.any{
	background: #666666;
	}
.required{
	background: #db2b5d;
	}
.area-form table {
	width: 100%;
	border-collapse: collapse;
	box-shadow: 0px 2px 4px 0px rgb(7 4 4 / 6%);
	}
.area-form th{
	text-align: left;
	font-weight: normal;
	background: #f5f5f5;
	}
.area-form th,
.area-form td{
	padding: .5em 1em;
	display: block;
	border-color: #fff;
	}
.area-form td {
	background: #fff;
	}
@media only screen and (min-width: 781px) {
.area-form{
	max-width: 920px;
	margin: 0 auto;
}
	.area-form h2{
		font-size: 32px;
		}
	.area-form .wrap p:first-child{
		font-size: 14px;
		text-align: center;
		}
.area-form table {
	width: calc(100% - 60px);
	margin: 20px auto 0;
	}
	.area-form th,
	.area-form td {
		width: auto;
		display: table-cell;
		padding: 10px 20px;
		border-bottom:1px solid #ebebeb;
		}
	.area-form th {
		width: 200px;
		font-size: 16px;
		}
input[type="text"],
input[type="number"],
input[type="tel"],
input[type="email"],
textarea{
	width:calc(100% - 1.6em);
	padding: 1em .8em;
	}
select {
	height: 3.3em;
}
.button.primary{
	max-width: 380px;
	margin: 1rem auto 3rem;
	padding-left: 70px;
	background-position: 40px 28px;
	}
}

@media screen and (max-width: 999px) {
	.has-note + .button {
		margin-top: 2.4rem;
	}
}
@media screen and (min-width: 1000px) {
	.button:nth-child(odd).has-note + .button + .button,
	.button:nth-child(odd).has-note + .button + .button + .button {
		margin-top: 2.4rem;
	}
	.button:nth-child(even).has-note + .button,
	.button:nth-child(even).has-note + .button + .button {
		margin-top: 2.4rem;
	}
}

.button-note {
	width: 100%;
	margin: 0;
	text-align: center;
	line-height: 1;
	font-size: 1rem;
	position: absolute;
	left: 0;
	bottom: -1.6rem;
	line-height: 1.2;
	color: #4e4644;
}

.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.mt-30 { margin-top: 30px; }

#flow section .button-note {
	font-size: 1rem;
}

@media screen and (max-width: 999px) {
	#flow section {
		padding-bottom: 2.6rem;
	}
}

@media screen and (min-width: 1000px) {
	.button-box {
		padding-bottom: 2rem;
	}
}

/*========== simple LP ===========*/
@media screen and (max-width: 38.74em){
	.wrap {
    width: auto;
    padding: 0 25px;
	}
}

#simple .button{
	border-radius: 5px;
	font-weight: 400;
	font-size: 15px;
	background: #e71a20;
	padding: 15px;
	height: unset;
	line-height: unset;
}

#simple .button.support-show{
	width: 390px;
	margin: 15px auto 0;
	font-size: 1.3rem;
}

#simple .button > span {
	display: block;
	position: relative;
	width: auto;
	height: auto;
	line-height: normal;
	background: none;
	color: #fff;
	margin: 10px 0;
}

@media screen and (max-width: 999px){
	#simple .button > span {
    top: unset;
    left: unset;
	}
}

#simple .button.secondary {
	background: #555;
}

#simple .button:not(.trigger)::after{
	font-family: unset;
	content: "";
	font-weight: bold;
}

@media screen and (min-width: 1000px) {
	#simple .lead{
		text-align: center;
	}
	#simple .button-group{
		max-width: 790px;
		display: flex;
		margin: 0 auto;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	#simple .button-group > .button {
    width: 390px;
    font-size: 1.3rem;
	}
}

#simple .kv{
	padding: 25px;
}

#simple .kv .sub-title{
	font-size: 13px;
	margin: 0 0 7px;
	text-align: center;
}

#simple .kv > h1{
	margin: 0;
	font-size: 1.75rem;
	line-height: 1.6;
	text-align: center;
	background: 0;
	color: #e71a20;
	font-weight: 600;
	letter-spacing: 3px;
}

#simple .kv .h1_under{
	background: #f2f2f2;
	font-size: 14px;
	padding: 0 20px;
	margin: 20px auto 0;
	border-radius: 20px;
	width: fit-content;
}

#simple .kv_under .wrap{
	margin: 0 auto 35px;
}

#simple .kv .h1_under span{
	color: #045f00;
	font-size: 17px;
	font-weight: bold;
}

#simple .kv_under h2{
	font-size: 14px;
}

#simple .lead{
	padding: 0 .9375rem;
	font-size: 13px;
}

@media screen and (max-width: 360px) {
  .button.large{
    font-size: 1.15rem;
  }
}