@charset "UTF-8";
/****************************************
common parts
*****************************************/
/*btn*/
.btn_base{
	background: #2999CD;
	border-radius: 99em;
	color: #fff;
	display: inline-block;
	font-weight: 700;
	line-height: 70px;
	text-align: center;
	width: 300px;
}
.btn_white{
	background: #fff;
	color: #2999CD;
}
/*font*/
.font_itc{
	font-family: "itc-avant-garde-gothic-pro", sans-serif;
	font-weight: 700;
	font-style: normal;
}
.font_noto{
	font-family: "Noto Sans JP", sans-serif;
}
/*inner*/
.inner_wide{
	margin: 0 auto;
	width: 80%;
	max-width: 1800px;
}
.inner_middle{
	margin: 0 auto;
	width: 80%;
	max-width: 1200px;
}
@media screen and (max-width:768px){
	.inner_wide,
	.inner_middle{
		width: 90%;
	}
}
/*sec*/
.sec{
	margin-top: 160px;
}
@media screen and (max-width:768px){
	.sec{
		margin-top: 80px;
	}
}
.sec_title{
	font-size: clamp(3.75rem, 3.063rem + 2.66vw, 6.25rem);
}
@media screen and (max-width:768px){
	.sec_title{
		font-size: 50px;
	}
}
/****************************************
header
*****************************************/
.site_header{
	background: #2999CD;
	padding: 30px 40px;
	position:absolute;
	top: 0;
	width: 100%;
	z-index: 99;
}
@media screen and (max-width:768px){
	.site_header{
		padding: 20px;
	}
}
.site_header_logo{
	position: relative;
	z-index: 2;
}
.site_header_logo img{
	display: block;
	height: 40px;
}
@media screen and (max-width:768px){
	.site_header_logo img{
		height: 30px;
	}
}
/*gnav*/
@media screen and (max-width:768px){
	.gnav{
		align-items: center;
		background: #2999CD;
		display: flex;
		height: 100dvh;
		justify-content: center;
		left: 0;
		position: absolute;
		top: 0;
		width: 100%;
	}
	.gnav ul{
		width: 80%;
	}
}
@media screen and (min-width:769px){
	.gnav li{
		align-items: center;
		display: flex;
	}
}
.gnav li + li{
	margin-left: 30px;
}
@media screen and (max-width:768px){
	.gnav li + li{
		margin: 40px 0 0 0;
	}
}
.gnav a{
	color: #fff;
	font-size: 14px;
	font-weight: 700;
}
@media screen and (max-width:768px){
	.gnav a{
		display: block;
		font-size: 24px;
	}
}
@media screen and (min-width:769px){
	.gnav a:hover{
		text-decoration: underline;
	}
}
.gnav .dl a{
	background: #fff;
	border-radius: 99em;
	color: #2999CD;
	display: inline-block;
	line-height: 50px;
	text-align: center;
	width: 145px;
}
@media screen and (max-width:768px){
	.gnav .dl a{
		width: 100%;
	}
}
/*icon-humburger*/
.icon-hamburger {
	cursor: pointer;
	height: 25px;
	margin: 0 auto;
	position: absolute;
	right: 20px;
	transition: .3s;
	top: 20px;
	width: 30px;
}
.icon-hamburger .bar {
	display: inline-block;
	width: 30px;
	height: 2px;
	background-color: #fff;
	position: absolute;
	left: 0;
	transition: .25s ease-in-out;
}
#bar01 {top: 0;}
#bar02 {top: 10px;}
#bar03 {top: 20px;}
.active.bar{
	background:#fff;
}
.active#bar01 {
	top: 10px;
	transform: rotate(45deg);
}
.active#bar02 {width: 0;}
.active#bar03 {
	top: 10px;
	transform: rotate(135deg);
}
/****************************************
footer
*****************************************/
.site_footer{
	background: #000;
	color: #fff;
	padding: 70px 0 40px;
}
@media screen and (max-width:768px){
	.site_footer{
		padding: 40px 0;
	}
}
@media screen and (max-width:768px){
	.footer_cols_item + .footer_cols_item{
		margin-top: 40px;
	}
}
.footer_cols_item_title{
	color: #2999CD;
	font-size: 16px;
	font-weight: 700;
}
.footer_cols_item_text{
	font-size: 14px;
	line-height: 2;
	margin-top: 20px;
}
@media screen and (max-width:768px){
	.footer_cols_item_text{
		margin-top: 10px;
	}
}
.footer_cols_item a{
	color: #fff;
	text-decoration: underline;
}
.copyright{
	border-top: 1px solid #fff;
	font-size: 10px;
	margin-top: 60px;
	padding-top: 30px;
	text-align: center;
}
/****************************************
cv
*****************************************/
.cv{
	
}

/****************************************
fv
*****************************************/
.fv{
	background: #2999CD;
	height: 100dvh;
}
.fv_cnt{
	color: #fff;
}
@media screen and (min-width:769px){
	.fv_cnt{
		width: 55%;
	}
}
@media screen and (max-width:768px){
	.fv_cnt{
		text-align: center;
	}
}
.fv_cnt_title{
	font-size: clamp(1.5rem, 0.727rem + 2.99vw, 4.313rem);
}
@media screen and (max-width:768px){
	.fv_cnt_title{
		font-size: 36px;
		line-height: 1.4;
	}
}
.fv_cnt_subtitle{
	font-size: clamp(1.125rem, 0.85rem + 1.06vw, 2.125rem);
	font-weight: 700;
}
@media screen and (max-width:768px){
	.fv_cnt_subtitle{
		font-size: 18px;
	}
}
.btn_fv{
	background: #F2FF00;
	color: #2999CD;
}
@media screen and (min-width:769px){
	.fv_img{
		width: 45%;
	}
}
.fv_scroll{
	bottom: 0;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
}
.fv_scroll_text{
	color: #fff;
	font-size: 10px;
}
.fv_scroll_line{
	background: #fff;
	height: 80px;
	margin: 0 auto;
	width: 1px;
}
@media screen and (max-width:768px){
	.fv_scroll_line{
		height: 40px;
	}
}
/****************************************
about
*****************************************/
.about_subtitle{
	color: #2999CD;
	font-size: clamp(2.25rem, 2.009rem + 0.93vw, 3.125rem);
	font-weight: 700;
}
@media screen and (max-width:768px){
	.about_subtitle{
		font-size: 24px;
	}
}
.solution_read_text{
	font-size: 18px;
	font-weight: 700;
	line-height: 2;
	margin-top: 30px;
	text-align: center;
}
@media screen and (max-width:768px){
	.solution_read_text{
		font-size: 16px;
		text-align: left;
	}
}
.about_cnt_text{
	font-size: 20px;
	font-weight: 700;
}
@media screen and (max-width:768px){
	.about_cnt_text{
		font-size: 16px;
	}
}
.about_cnt_text p{
	line-height: 2;
}
.about_cnt_text p + p{
	margin-top: 40px;
}
@media screen and (max-width:768px){
	.about_cnt_text p + p{
		margin-top: 20px;
	}
}
/****************************************
solution
*****************************************/
.solution{
	background: #FBFBFB;
	padding: 90px 0;
}
@media screen and (max-width:768px){
	.solution{
		padding: 40px 0;
	}
}
.solution_col{
	text-align: center;
}
@media screen and (max-width:768px){
	.solution_col + .solution_col{
		margin-top: 40px;
	}
}
.solution_col_img{
	max-width: 180px;
}
.solution_col_title{
	font-size: 20px;
	margin-top: 30px;
}
@media screen and (max-width:768px){
	.solution_col_title{
		margin-top: 20px;
	}
}
.solution_col_text{
	font-size: 14px;
	margin-top: 20px;
}
/****************************************
problems
*****************************************/
.problems_copy{
	color: #2999CD;
	font-size: clamp(1.25rem, 0.975rem + 1.06vw, 2.25rem);
	font-weight: 700;
}
@media screen and (max-width:768px){
	.problems_copy{
		xfont-size: 20px;
	}
}
@media screen and (min-width:769px){
	.slider{
		max-width: 475px;
		margin: 0 auto;
	}
}
.slider_item_img img{
	display: inline-block;
	width: 100%;
	max-width: 300px;
}
@media screen and (max-width:768px){
	.slider_item_img img{
		max-width: 200px;
	}
}
.slider_item_title{
	font-size: 24px;
	margin-top: 30px;
}
@media screen and (max-width:768px){
	.slider_item_title{
		font-size: 18px;
		margin-top: 20px;
	}
}
.slider_item_text{
	font-size: 14px;
	line-height: 2;
	margin-top: 20px;
}
.slick-dots{
	bottom: -70px;
}
@media screen and (max-width:768px){
	.slick-dots{
		bottom: -40px;
	}
}
.slick-dots li button:before{
	color: #f1f1f1;
	font-size: 20px;
	opacity: 1;
}
.slick-dots li.slick-active button:before{
	color: #B4B4B4;
	opacity: 1;
}
/****************************************
plan
*****************************************/
.plan_box_item{
	border: 2px solid #DADADA;
	border-radius: 30px;
	padding: 70px 35px 50px;
	position: relative;
}
@media screen and (max-width:768px){
	.plan_box_item{
		padding: 40px 20px;
	}
}
.plan_box_item.reco{
	border: 4px solid #2999CD;
}
.plan_reco_label{
	background: #2999CD;
	border-radius: 99em;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	left: 50%;
	line-height: 56px;
	position: absolute;
	text-align: center;
	top: 0;
	transform: translate(-50%,-50%);
	width: 180px;
}
@media screen and (max-width:768px){
	.plan_reco_label{
		font-size: 14px;
		line-height: 40px;
		width: 140px;
	}
}
.plan_name{
	color: #2999CD;
	font-size: 30px;
	text-align: center;
}
@media screen and (max-width:768px){
	.plan_name{
		font-size: 18px;
	}
}
.plan_fee{
	color: #2999CD;
	font-size: 47px;
	font-weight: 700;
	margin-top: 30px;
	text-align: center;
}
@media screen and (max-width:768px){
	.plan_fee{
		font-size: 30px;
		margin-top: 20px;
	}
}
.plan_fee span{
	font-size: 17px;
}
.plan_list{
	font-size: 20px;
	margin-top: 40px;
}
@media screen and (max-width:768px){
	.plan_list{
		font-size: 16px;
	}
}
.plan_list li{
	border-bottom: 1px solid #E3E3E3;
	padding-bottom: 20px;
}
@media screen and (max-width:768px){
	.plan_list li{
		padding-bottom: 10px;
	}
}
.plan_list li + li{
	margin-top: 20px;
}
@media screen and (max-width:768px){
	.plan_list li + li{
		margin-top: 10px;
	}
}
.plan_note{
	font-size: 10px;
	margin-top: 40px;
	text-align: center;
}
@media screen and (max-width:768px){
	.plan_note{
		margin-top: 20px;
	}
	.plan .btn_base{
		width: 100%;
	}
}
/****************************************
contact
*****************************************/
.contact_form{
	background: #F9F9F9;
	border-radius: 30px;
	padding: 60px;
}
@media screen and (max-width:768px){
	.contact_form{
		margin-top: 40px;
		padding: 30px;
	}
}
.contact_form_text{
	font-weight: 700;
}
label {
  display: block;
  font-size: 14px;
  margin-bottom: 5px;
  font-weight: bold;
}
.required {
	background: #E15252;
	border-radius: 2px;
  color: #fff;
  font-size: 10px;
  margin-left: 4px;
	padding: 3px 5px;
}
.any{
	background: #909090;
	border-radius: 2px;
	color: #fff;
	font-size: 10px;
	margin-left: 4px;
	padding: 3px 5px;
}
input, textarea {
  width: 100%;
  padding: 15px;
  font-size: 14px;
  margin-bottom: 15px;
  border: 1px solid #999;
  border-radius: 5px;
}
@media screen and (max-width:768px){
	input, textarea {
		font-size: 16px;
	}
}
textarea {
  min-height: 80px;
  resize: vertical;
}
::placeholder {
	color: #999;
}
.policy {
  font-size: 14px;
  text-align: center;
}
.policy a{
	color: #45A2FF;
	text-decoration: underline;
}
.submit-btn {
	background: #009fe8;
	border-radius: 99em;
	border: none;
	color: #fff;
	cursor: pointer;
	display: block;
	font-size: 16px;
	font-weight: 700;
	line-height: 70px;
	margin: 30px auto 0;
	text-align: center;
	width: 300px;
}
@media screen and (max-width:768px){
	.submit-btn {
		margin-top: 20px;
	}
}
.submit-btn:hover {
  background: #007bb8;
}
.name-group {
  display: flex;
  gap: 10px;
}
.name-group div {
  flex: 1;
}
/****************************************
下層ページ
*****************************************/
.page_main{
	background: #2999CD;
	padding: 70px 0;
}
@media screen and (max-width:768px){
	.page_main{
		padding: 40px 0;
	}
}
.page_title{
	color: #fff;
	font-size: 50px;
	text-align: center;
}
@media screen and (max-width:768px){
	.page_title{
		font-size: 30px;
	}
}
.page_cnt{
	background: #fff;
	font-size: 14px;
	margin-top: 40px;
	padding: 20px 20px 60px;
	word-break: break-all;
}
@media screen and (max-width:768px){
	.page_cnt{
		margin-top: 20px;
	}
}
.page_cnt h3:not(:first-child){
	margin-top: 20px;
}
.page_cnt ol{
	padding-left: 20px;
}
.page_cnt ol li{
	list-style: decimal;
}
.page_cnt ol ol li{
	list-style: lower-latin;
}
/****************************************
privacy
*****************************************/
.privacy ol ol li{
	position: relative;
	list-style-type: none;
}
.privacy ol ol li:before{
	position: absolute;
	right: calc(100% + 0.5rem);
	content: "(" counter(list-item) ")";
}
.privacy > ol > li + li{
	margin-top: 20px;
}
/****************************************
thanks
*****************************************/
.inner_thanks{
	padding: 200px 0 100px;
}