@charset "utf-8";

/*-- Reset ---------------------------------------------------*/

input[type="submit"],
button{ -webkit-appearance: none; }

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}

body {line-height:1;}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { display:block;}
ul,ol {list-style:none;}
li{list-style: none;}
blockquote, q {quotes:none;}

blockquote:before, blockquote:after,
q:before, q:after {
	content:'';
	content:none;
}

a {
	margin:0;
	padding:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
	text-decoration: none;
}

ins {
	background-color:#ff9;
	color:#000;
	text-decoration:none;
}

mark {
	background-color:#ff9;
	color:#000; 
	font-style:italic;
	font-weight:bold;
}

del {text-decoration: line-through;}

abbr[title], dfn[title] {
	border-bottom:1px dotted;
	cursor:help;
}

table {border-collapse:collapse; border-spacing:0;}
input, select {vertical-align:middle;}

.select_none{
	color: rgba(0,0,0,0);
	user-select: none;
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
}


/*-- initialize -------------------------------------------*/

html {color: #000;}
body {
	font-size: 14px;
	font-family: "Noto Serif JP", YuGothic, 'Yu Gothic', 'Yu Gothic Medium', 'Meiryo', sans-serif;
	font-weight: 500;
	line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 {font-weight: normal;}
select, input, button, textarea {
	font-size: 99%;
	font-family: YuGothic, 'Yu Gothic', 'Yu Gothic Medium', 'Meiryo', sans-serif;
}
strong {font-weight: bold;}
abbr, acronym {
	border: 0;
	font-variant: normal;
}


/*-- header -------------------------------------------*/

#main_box{
	position: relative;
	z-index: 10;
}
.header_back{
	width: 100%;
	background-color: #fff;
	border-bottom: solid 3px #e5e5e5;
	position: sticky;
	z-index: 30;
	top: 0;
	left: 0;
}
.header_area{
	max-width: 1280px;
	display: flex;
	justify-content: space-between;
	box-sizing: border-box;
	margin: 0 auto;
	padding: 14px 5px 14px;
}
.head_title{
	
	& img{
		width: 90px;
		height: auto;
		vertical-align: bottom;
		margin-right: 15px;
	}
	
	& .head_subtitle{
		display: inline-block;
		line-height: 1;
		font-size: 42px;
		font-weight: bold;
		color: var(--blueTextColor);
		
		& span{
			font-size: 80%;
		}
	}
}

.header_content{
	padding-top: 3px;
	
	& .request_information,
	& .request_contact{
		text-align: center;
		font-size: 20px;
		font-weight: bold;
		margin-right: 10px;
		padding: 8px 27px 8px;
	}
}
.header_content_sp{
	display: none;
}
.request_information,
.request_contact{
	display: inline-block;
	vertical-align: middle;
	border: solid 2px #333;
	border-radius: 40px;
	color: #333;
	line-height: 1;
}
.request_information{
	color: var(--blueTextColor);
	border-color: var(--blueTextColor);
	background-color: #fff;
	
	&:hover{
		background-color: var(--blueTextColor);
		color: #fff;
	}
}
.request_contact{
	background-color: var(--orangeColor);
	border-color: var(--orangeColor);
	color: #fff;
	
	&:hover{
		background-color: #fff;
		color: var(--orangeColor);
	}
}
.request_tel{
	display: inline-block;
	vertical-align: middle;
	color: #333;
	font-family: 'Noto Sans JP';
	line-height: 1;
	text-align: center;
	
	& .phone_number{
		display: block;
		font-weight: bold;
		font-size: 27px;
		padding-bottom: 5px;
	}
	& .phone_sub{
		font-size: 14px;
	}
}


/*-- section_top -------------------------------------------*/

.section_top{
	position: relative;
	z-index: 10;
	text-align: center;
	background-image: url("../img/top_background.webp");
	background-repeat: repeat-x;
}
.section_top_image{

}
.top_main_message{
	position: absolute;
	z-index: 10;
	width: 100%;
	top: 143px;
	
	& h2{
		color: var(--blueTextColor);
		font-weight: bold;
		font-size: 77px;
		line-height: 1.2;
		
		& span{
			font-size: 70%;
		}
	}
	& .top_main_message_sub{
		display: block;
		font-size: 35px;
		font-weight: bold;
		padding-top: 9px;
	}
}
.top_problem{
	position: absolute;
	z-index: 10;
	bottom: 120px;
	left: 0;
	right: 0;
	width: 590px;
	margin: 0 auto;
	
	& h3{
		font-size: 42px;
		font-weight: bold;
		color: #f00;
		margin-bottom: 14px;
	}
}
.top_problem_check{
	margin-bottom: 17px;
	text-align: left;
	
	& img{
		width: 40px;
		height: auto;
		vertical-align: middle;
		margin-right: 7px;
	}
	& span{
		display: inline-block;
		vertical-align: middle;
		font-size: 27px;
		font-family: 'Noto Sans JP';
	}
}


/*-- section_second -------------------------------------------*/

.section_second{
	text-align: center;
	padding-bottom: 20px;
}
.section_second_h3{
	color: var(--blueTextColor);
	font-family: 'Noto Sans JP';
	font-size: 40px;
	font-weight: bold;
	line-height: 1;
	margin-bottom: 40px;
}
.section_second_image{
	width: 570px;
	height: auto;
	margin-bottom: 25px;
}
.section_second_message{
	margin-bottom: 45px;
	
	& .sub_strong{
		color: #f00;
	}
}
.sub_strong{
	display: block;
	font-size: 32px;
	margin-bottom: 9px;
}
.sub_message{
	font-size: 21px;
	font-family: 'Noto Sans JP';
}


/*-- section_blue -------------------------------------------*/

.section_blue{
	background-color: #e4fcfe;
	text-align: center;
	padding: 75px 0 10px;
}
.section_blue_message{
	margin-bottom: 65px;
	
	& .sub_strong{
		color: var(--blueTextColor);
		font-size: 37px;
	}
}


/*-- section_ach -------------------------------------------*/

.section_ach{
	padding-top: 75px;
	padding-bottom: 75px;
}
.ach_title{
	font-size: 44px;
	font-weight: bold;
	color: #f00;
	letter-spacing: 13px;
	text-align: center;
	margin-bottom: 20px;
}
.ach_comment{
	text-align: center;
	font-size: 22px;
	font-family: 'Noto Sans JP';
	margin-bottom: 56px;
}
.ach_inner{
	font-family: 'Noto Sans JP';
	max-width: 680px;
	margin: 0 auto;
}
.ach_image{
	display: flex;
	justify-content: space-between;
	
	& img{
		width: 49%;
		box-sizing: border-box;
		border: solid 1px #e7e7e7;
	}
}
.ach_item_title{
	display: block;
	font-size: 30px;
	padding: 16px 0 11px;
}
.ach_tag{
	padding-bottom: 30px;
	
	& li{
		display: inline-block;
		background: #3062C3;
		border-radius: 3px;
		color: #fff;
		font-size: 12px;
		line-height: 1;
		margin-right: 3px;
		padding: 5px 11px 6px;
	}
	
}
.ach_point{
	font-size: 18px;
	line-height: 1.6;
	
	& a{
		display: flex;
		align-items: center;
		color: #3465be;
		font-size: 18px;
		margin-top: 10px;
		
		& img{
			margin-right: 8px;
			width: 18px;
			height: auto;
		}
	}
}


/*-- section_form -------------------------------------------*/

.section_form{
	padding: 60px 0 60px;
}
.section_form_title{
	font-size: 32px;
	font-weight: bold;
	text-align: center;
	margin-bottom: 30px;
	
	&.information{
		color: var(--blueTextColor);
	}
	&.contact{
		color: var(--orangeColor);
	}
}
.section_form_message{
	text-align: center;
	font-family: 'Noto Sans JP';
	font-size: 18px;
	margin-bottom: 60px;
}
.section_form_ul{
	width: 600px;
	border-block: dashed 1px #bdbdbd;
	box-sizing: border-box;
	font-family: 'Noto Sans JP';
	margin: 0 auto;
	padding: 40px 45px 0px;

}
.section_form_li{
	border-bottom: dashed 1px #bdbdbd;
	margin-bottom: 24px;
	padding-bottom: 24px;
	
	&:last-of-type{
		border-bottom: none;
		margin-bottom: none;
	}
}
.section_form_labels{
	line-height: 1;
	padding-bottom: 8px;
}
.form_label{
	display: inline-block;
	vertical-align: middle;
	font-size: 18px;
	margin-right: 7px;
}
.form_require{
	display: inline-block;
	vertical-align: middle;
	background-color: #f00;
	border-radius: 4px;
	color: #fff;
	padding: 4px 7px 5px;
}
.section_form_action{

}
.section_form_input{
	width: 100%;
	border: solid 2px #a7a7a7;
	border-radius: 3px;
	box-sizing: border-box;
	line-height: 1.7;
	padding: 7px 11px 2px;
}
textarea.section_form_input{
	resize: vertical;
	height: 8rem;
}
.form_error{
	display: none;
	background-color: #ffacac;
	border-radius: 3px;
	color: #370404;
	line-height: 1.7;
	margin-top: 5px;
	padding: 5px 14px 4px;
}
.section_form_buttons{
	padding-top: 60px;
	text-align: center;
	
	& button{
		width: 250px;
		border-radius: 6px;
		cursor: pointer;
		font-size: 20px;
		font-weight: bold;
		line-height: 1;
		padding: 13px 0 12px;
	}
	& button.information{
		background-color: var(--blueTextColor);
		border-color: var(--blueTextColor);
		color: #fff;
		
		&:hover{
			background-color: #fff;
			color: var(--blueTextColor);
		}
	}
	& button.contact{
		background-color: var(--orangeColor);
		border-color: var(--orangeColor);
		color: #fff;
		
		&:hover{
			background-color: #fff;
			color: var(--orangeColor);
		}
	}
	
}

.form_modal_view{
	position: fixed;
	z-index: 130;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	max-height: 90vh;
	background-color: #fff;
	border-radius: 6px;
	box-sizing: border-box;
	font-family: 'Noto Sans JP';
	padding-block: 27px 34px;
	overflow-y: auto;
	overscroll-behavior: none;
	display: none;
}
.form_modal_title{
	display: block;
	text-align: center;
	font-size: 19px;
	margin-bottom: 23px;
}
.form_modal_main{
	width: 510px;
	box-sizing: border-box;
	padding-inline: 20px;
	margin-bottom: 35px;

}
.form_modal_dl{
	display: flex;
	border-bottom: dashed 1px #dbdbdb;
	font-size: 16px;
	padding: 14px 0 11px;
	
	& dt{
		width: 34%;
		font-weight: bold;
	}
	& dd{
		word-break: break-all;
	}
}
.form_modal_buttons{
	display: flex;
	justify-content: space-between;
	width: 55%;
	margin-inline: auto;
	
	& span{
		width: 110px;
		background-color: #fff;
		border: solid 2px #898989;
		border-radius: 3px;
		color: #3b3b3b;
		cursor: pointer;
		font-size: 16px;
		font-weight: bold;
		text-align: center;
		padding: 6px 0 5px;
		
		&.information{
			background-color: var(--blueTextColor);
			border-color: var(--blueTextColor);
			color: #fff;
			
			&:hover{
				background-color: #fff;
				color: var(--blueTextColor);
			}
		}
		&.contact{
			background-color: var(--orangeColor);
			border-color: var(--orangeColor);
			color: #fff;
			
			&:hover{
				background-color: #fff;
				color: var(--orangeColor);
			}
		}
	}
	
	
}
.form_modal_back{
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.2);
	display: none;
}


/*-- footer -------------------------------------------*/

.footer_back{
	border-top: solid 4px #e9e9e9;
	text-align: center;
}
.footer_area{
	padding: 70px 0 60px;
	
	& .request_information,
	& .request_contact{
		font-size: 27px;
		width: 350px;
		font-weight: bold;
		padding: 11px 0 11px;
		margin-bottom: 40px;
	}
	& .phone_number{
		font-size: 39px;
		padding-bottom: 11px;
	}
	& .phone_sub{
		font-size: 19px;
	}
}
.copyright{
	background-color: #e9e9e9;
	padding: 7px 0 7px;
}

.sp_br{
	display: none;
}

/*-- media query -----------------------------------*/

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

	.sp_br{
		display: inline-block;
	}
	.desktop_br{
		display: none;
	}
	.sp_none{
		display: none;
	}
	
	html{
		scroll-behavior: smooth;
	}
	body{
		font-size: 3.8vw;
	}
	.header_area{
		padding: 4vw 3vw 2vw;
	}
	.head_title{
		& img{
			width: 15vw;
			margin-right: 3vw;
		}
		& .head_subtitle{
			font-size: 9vw;
		}
	}
	
	.header_content{
		display: none;
	}
	.header_content_sp{
		display: block;
		
		& img{
			width: 10vw;
			height: auto;
		}
	}
	
	
	/* --- section_top ------------------------------------- */
	.section_top{
		overflow: hidden;
		background-image: none;
	}
	.top_main_message{
		top: 16vw;
		
		& h2{
			font-size: 9.7vw;
		}
		& .top_main_message_sub{
			font-size: 3.8vw;
			margin-top: 0;
			padding-top: 0;
		}
	}
	.top_problem{
	}
	
	.section_top_image{
		width: 129%;
		translate: -13% 0;
	}
	.top_problem{
		width: 83%;
		bottom: 11vw;
		
		& h3{
			font-size: 5.5vw;
			margin-bottom: 1vw;
		}
	}
	.top_problem_check{
		margin-bottom: 1vw;
		
		& img{
			width: 6.5vw;
			margin-right: 1vw;
		}
		& span{
			font-size: 4vw;
		}
	}
	
	/* --- section_second ------------------------------------- */
	
	.section_second{
		padding-bottom: 3vw;
	}
	.section_second_h3{
		font-size: 7vw;
		line-height: 1.4;
		margin-bottom: 6vw;
	}
	.section_second_image{
		width: 93%;
		margin-left: -10vw;
		margin-bottom: 7vw;
	}
	.sub_strong{
		font-size: 6vw;
		margin-bottom: 2vw;
	}
	.sub_message{
		display: block;
		width: 80%;
		margin: 0 auto;
		font-size: 4.6vw;
	}
	.section_second_message{
		margin-bottom: 9vw;
	}
	
	/* --- section_blue ------------------------------------- */
	
	.section_blue{
		padding: 12vw 0 2vw;
	}
	.section_blue_message{
		margin-bottom: 14vw;
		
		& .sub_strong{
			font-size: 7.2vw;
			margin-bottom: 5vw;
		}
	}
	/* --- section_ach ------------------------------------- */
	
	.section_ach{
		padding-block: 12vw 17vw;
	}
	.ach_title{
		font-size: 11vw;
		margin-bottom: 5vw;
		letter-spacing: 3vw;
	}
	.ach_comment{
		width: 85%;
		font-size: 5vw;
		margin: 0 auto 8vw;
	}
	.ach_inner{
		width: 83%;
	}
	.ach_image{
		display: block;
		text-align: center;
		
		& img{
			width: 96%;
			margin-bottom: 3vw;
		}
	}
	.ach_item_title{
		font-size: 6.8vw;
		padding: 0 0 3vw;
	}
	.ach_tag{
		padding-bottom: 5vw;
		
		& li{
			font-size: 4vw;
			padding: 2vw 4vw 2.3vw;
			margin-right: 1.5vw;
			margin-bottom: 1.5vw;
		}
	}
	.ach_point{
		font-size: 4.6vw;
		
		& a{
			font-size: 4.8vw;
			margin-top: 2vw;
			
			& img{
				width: 5vw;
				margin-right: 2vw;
			}
		}
		
	}
	
	
	/* --- footer ------------------------------------- */
	
	.footer_area{
		padding: 12vw 0 9vw;
		
		& .request_information,
		& .request_contact{
			width: 83%;
			font-size: 7.4vw;
			margin-bottom: 9vw;
			padding: 3.4vw 0 3vw;
		}
		& .phone_number{
			font-size: 10vw;
			padding-bottom: 2vw;
		}
		& .phone_sub{
			font-size: 5vw;
		}
	}
	
	/* --- section_form ------------------------------------- */
	
	.section_form{
		padding: 11vw 0 12vw;
	}
	.section_form_title{
		font-size: 8vw;
		margin-bottom: 6vw;
	}
	.section_form_message{
		font-size: 4.5vw;
		margin-bottom: 11vw;
	}
	.section_form_ul{
		width: 100%;
		padding: 11vw 6vw 0vw;
		
	}
	.section_form_li{
	
	}
	.section_form_labels{
	
	}
	.form_label{
		font-size: 5vw;
		margin-right: 2vw;
	}
	.form_require{
		font-size: 3.4vw;
		padding: 1.5vw 2vw 1.3vw;
	}
	.section_form_input{
		padding: 1.5vw 3vw 1.3vw;
	}
	.form_error{
		padding: 1vw 3vw 1vw;
		margin-top: 1.5vw;
	}
	.section_form_buttons{
		padding-top: 11vw;
		
		& button{
			width: 65%;
			font-size: 5.2vw;
			padding: 4.5vw 0 3.9vw;
		}
	}
	
	.form_modal_view{
		width: 90%;
		padding: 8vw 0vw 18vw;
	}
	.form_modal_title{
		font-size: 6vw;
		margin-bottom: 9vw;
	}
	.form_modal_main{
		width: 100%;
		padding-inline: 5vw;
		margin-bottom: 8vw;
	}
	.form_modal_dl{
		display: block;
		border-bottom: none;
		padding: 0 0 9vw;
		
		& dt{
			background-color: #dddddd;
			width: 100%;
			box-sizing: border-box;
			padding: 1.4vw 3.2vw 1.6vw;
			margin-bottom: 2vw;
		}
		
	}
	.form_modal_buttons{
		width: 89%;
		
		& span{
			width: 32vw;
			font-size: 5vw;
			padding: 2vw 0 1.9vw;
		}
		
	}
	
	
	
	/* --- section_top ------------------------------------- */
	/* --- section_top ------------------------------------- */

}

