@charset "UTF-8";

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
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}
nav ul{list-style:none}
blockquote,q{quotes:none}
blockquote:before,blockquote:after,q:before,q:after{content:none}
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}
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}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
input,select{vertical-align:middle}

html{
	font-size: 62.5%;
}
body{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;	/* Regular */
	-webkit-text-size-adjust: 100%;
	line-height: 1.6;
	padding: 90px 0 0;
	color: #333333;
}
body *{
	box-sizing: border-box;
}
ul li,
ol li{
	list-style: none;
}
input,select,button,textarea{
	font-family: inherit;
}
input[type=submit]{
	cursor: pointer;
}
img{
	max-width: 100%;
}
@media screen and (max-width: 950px) {
	body{
		padding: 60px 0 0;
	}
}
a:hover{
	opacity: 0.5;
}
.font-barlow {
	font-family: 'Barlow', sans-serif;
}
/* module
------------------------------------------------------------------------ */
.clearfix:after{
	content:".";
	display:block;
	height:0px;
	clear:both;
	visibility:hidden;
	font-size: 0.1em;
}
.clearfix{
	display:block;
}
.inner{
	margin: 0 auto;
	padding: 0 50px;
	max-width: 1100px;
}
@media screen and (max-width: 767px) {
	.inner{
		padding: 0 4%;
	}
}
.sp { display: none; }
@media screen and (max-width: 767px) {
	.sp { display: block; }
	.pc { display: none; }
}
.btn{
	background: #FAC543;
	background: -webkit-linear-gradient(-45deg,  #FAC543 45%,#FDDE4B 100%);
	background: linear-gradient(135deg,  #FAC543 45%,#FDDE4B 100%);
	border: none;
	letter-spacing: .05em;
	border-radius: 5px;
	width: 100%;
	max-width: 450px;
	height: 80px;
	font-size: 2.0rem;
	color: #004B74;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
	text-decoration: none;
	position: relative;
}
.btn::before {
	content: "";
	background: url("../img/icon_chevron-right.0ebfb7a75992.png") no-repeat center;
	background-size: contain;
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto 0;
	right: 20px;
	width: 11px;
	height: 20px;
}
@media screen and (min-width: 768px) {
	.btn.btn-large {
		max-width: 490px;
	}
}
@media screen and (max-width: 767px) {
	.btn{
		/* background: #FAC543;
		background: url("../img/icon_chevron-right.0ebfb7a75992.png") no-repeat right 15px center #FAC543;
		background-size: 11px auto, 100% 100%; */
		max-width: 315px;
		height: 60px;
		font-size: 1.8rem;
	}
	.btn::before {
		right: 15px;
	}
}
.text {
	font-size: 1.4rem;
	line-height: 2;
	font-weight: 400;
}
.marker {
	background: linear-gradient(#FFC40E, #FFC40E) 100% 100% / 100% 3px no-repeat;
	display: inline;
	font-weight: 700;
}

/* section
------------------------------------------------------------------------ */
.section {
	padding: 80px 0;
}
.section a{
	color: #004B74;
}
.section-copy{
	margin: 0 auto 50px;
	text-align: center;
}
.section-copy-head{
	font-size: 2.8rem;
	letter-spacing: 0.1em;
	line-height: 1.46;
	font-weight: 500;
	color: #004B74;
}
.section-copy-text{
	margin-top: 50px;
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
	.section{
		padding: 50px 0;
	}
	.section .inner {
		padding-left: 8%;
		padding-right: 8%;
	}
	.section-copy{
		margin-bottom: 25px;
	}
	.section-copy-head{
		font-size: 2.0rem;
		line-height: 1.7;
	}
	.section-copy-text{
		margin-top: 25px;
		font-size: 1.4rem;
		letter-spacing: 0;
	}
}


/* header
------------------------------------------------------------------------ */
header{
	background-color: #ffffff;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 2;
}
header a{
	color: #004B74;
	text-decoration: none;
}
header .inner{
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 60px;
}
@media screen and (min-width: 951px) {
	header{
		padding: 30px 0 0;
	}
	.header-logo{
		width: 150px;
	}
	.header-menu-open{
		display: none;
	}
	.header-menu-close{
		display: none;
	}
	.header-menu ul{
		display: flex;
		font-size: 1.5rem;
		letter-spacing: 0.05em;
	}
	.header-menu ul li + li::before{
		content: '｜';
		margin: 0 15px;
		color: #004B74;
	}
}
@media screen and (max-width: 950px) {
	.header-logo{
		width: 150px;
	}
	.header-menu-open{
		width: 23px;
	}
	.header-menu-wrap{
		transition: opacity .3s ease-in-out;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		background-color: rgba(0, 0, 0, .5);
		opacity: 0;
		pointer-events: none;
		z-index: 2;
	}
	.header-menu-wrap.open{
		opacity: 1;
		pointer-events: unset;
	}
	.header-menu{
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		background-color: #F7F9FC;
	}
	.header-menu-close{
		background-color: #ffffff;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		padding: 0 20px;
		height: 60px;
	}
	.header-menu-close img{
		width: 23px;
	}
	.header-menu ul{
		padding: 15px 30px;
		font-size: 1.4rem;
		letter-spacing: 0.05em;
		font-weight: 400;
	}
	.header-menu ul li{
		margin: 20px 0;
	}
}

/* mv
------------------------------------------------------------------------ */
#mv{
	overflow: hidden;
	position: relative;
	z-index: 1;
	padding-top: 50px;
	padding-bottom: 40px;
}
.mv-inner {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1;
	padding-left: 50px;
	padding-right: 50px;
	margin: 0 auto;
	max-width: 1100px;
	height: 100%;
}
.mv-item {
	margin-top: 50px;
	width: 88.6%;
	max-width: 886px;
}
.mv-item img {
	width: 100%;
	backface-visibility: hidden;
	vertical-align: top;
}
.mv-title {
	color: #004B74;
	font-weight: 700;
	letter-spacing: .1em;
}
.mv-title > span {
	display: block;
	line-height: 1;
	font-size: 3.6rem;
}
.mv-title > span.sub {
	line-height: 1.5;
	font-size: 2.2rem;
	margin-bottom: 5px;
}
.mv-title .marker {
	padding-left: 5px;
	padding-right: 5px;
	background: linear-gradient(#FFC40E, #FFC40E) 100% 90% / 100% 10px no-repeat;
}
@media screen and (max-width: 767px) {
	#mv{
		padding-top: 30px;
		padding-bottom: 0;
		margin-bottom: -30px;
	}
	.mv-inner {
		padding-left: 4%;
		padding-right: 4%;
	}
	.mv-item {
		margin-top: 40px;
		width: 100%;
		max-width: 452px;
	}
	.mv-title > span {
		font-size: 2.9rem;
		line-height: 1.4;
	}
	.mv-title > span.sub {
		line-height: 1.5;
		font-size: 1.6rem;
		margin-bottom: 2px;
	}
	.mv-title .marker {
		padding-left: 2px;
		padding-right: 2px;
	}
}

/* service
------------------------------------------------------------------------ */
/* intro ----------------- */
section.intro {
	position: relative;
	padding-top: 89px;
}
section.intro::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	content: '';
	background: repeating-linear-gradient( -60deg, #E5ECF1, #E5ECF1 0.5%, #fff 0, #fff 0.58% );
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	z-index: -1;
}
.intro-lead {
	color: #004B74;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.6667;
	letter-spacing: .1em;
}
.intro-lead + * {
	margin-top: 50px;
}
.intro-pointList {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-column-gap: 19px;
	grid-row-gap: 19px;
	margin-top: 50px;
	counter-reset: number 0;
}
.intro-point {
	background-color: #ffffff;
	overflow: hidden;
	height: 100%;
}
.intro-point-head {
	background-color: #004B74;
	display: flex;
	align-items: center;
	padding: 14px 20px;
	position: relative;
	min-height: 84px;
}
.intro-point-head .title {
	color: #ffffff;
	font-weight: 700;
	font-size: 1.6rem;
	letter-spacing: .05em;
	line-height: 1.75;
	flex: 1;
}
.intro-point-head > span {
	text-align: center;
	display: block;
	flex-shrink: 0;
	font-size: 1.0rem;
	font-weight: 700;
	color: #FFC40E;
	font-family: 'Barlow', sans-serif;
	line-height: 1;
	letter-spacing: .1em;
	margin-right: 20px;
}
.intro-point-head > span::after {
	counter-increment: number 1;
	content: counter(number);
	display: block;
	font-size: 3.9rem;
	font-weight: 700;
	color: #FFC40E;
}
.intro-point-body {
	padding: 30px;
}
.intro-point-body .img {
	text-align: center;
	margin-bottom: 30px;
}
.intro-point-body .img img {
	height: 85px;
}
@media screen and (min-width: 768px) {
	.intro-point-head.center .title {
		text-align: center;
	}
}
@media screen and (max-width: 767px) {
	section.intro {
		padding-top: 73px;
	}
	.intro-lead {
		text-align: left;
		font-size: 1.6rem;
		line-height: 1.88889;
		letter-spacing: .08em;
	}
	.intro-pointList {
		display: block;
		margin-top: 30px;
		margin-left: -4.762%;
		margin-right: -4.762%;
	}
	.intro-pointList > * + * {
		margin-top: 10px;
	}
	.intro-point-head::before {
		top: 14px;
		width: 54px;
		height: 66px;
	}
	.intro-point-body {
		padding: 20px 15px 15px;
	}
	.intro-point-body .img {
		margin-bottom: 20px;
	}
}

/* case
------------------------------------------------------------------------ */
.section.case {
	padding-top: 160px;
}
.case-header {
	border-radius: 5px;
	background-color: #E6ECEF;
	position: relative;
	padding: 30px;
	margin-bottom: 30px;
}
.case-header::after {
	content: "";
	position: absolute;
	bottom: -27px;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 66px 24px 0 24px;
	border-color: #E6ECEF transparent transparent transparent;
	transform: rotate(38deg);
	z-index: -1;
}
.case-header .title {
	color: #195C80;
	font-size: 2.2rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .1em;
	margin-bottom: 10px;
}
.case-header .sub {
	display: block;
	color: #195C80;
	font-size: 1.4rem;
	font-weight: 500;
}
.case-review {
	display: flex;
}
.case-review + * {
	margin-top: 49px;
}
.case-review-img {
	flex-shrink: 0;
	width: 290px;
}
.case-review-img img {
	width: 100%;
	vertical-align: top;
}
.case-review-main {
	padding-left: 35px;
	flex-grow: 1;
}
.case-review-main > p {
	line-height: 2;
	font-size: 1.4rem;
}
.case-point {
	position: relative;
	border-radius: 5px;
	background-color: #E6ECEF;
	padding: 30px 150px 30px 35px;
}
.case-point-name {
	color: #004B74;
	letter-spacing: .05em;
	line-height: 1.6;
	font-size: 2.0rem;
	font-weight: 500;
	margin-bottom: 11px;
}
.case-point-text {
	line-height: 2;
	font-size: 1.4rem;
}
.case-point-text a {
	text-decoration: underline;
	color: #1C6CC1;
}
.case-point-text + .case-point-text {
	margin-top: 20px;
}
.case-point-img {
	position: absolute;
	top: 23px;
	right: 23px;
	width: 100px;
}
.case-point-img img {
	vertical-align: top;
}
@media screen and (max-width: 767px) {
	.section.case {
		padding-top: 100px;
	}
	.case-container {
		margin-left: -4.762%;
		margin-right: -4.762%;
	}
	.case-header {
		padding: 15px;
		margin-bottom: 30px;
	}
	.case-header::after {
		bottom: -20px;
		border-width: 48px 19px 0 19px;
	}
	.case-header .title {
		font-size: 1.6rem;
		line-height: 2;
		margin-bottom: 10px;
	}
	.case-header .sub {
		font-size: 1.2rem;
	}
	.case-review {
		flex-direction: column;
	}
	.case-review-img {
		text-align: center;
		width: auto;
	}
	.case-review-main {
		padding-left: 15px;
		padding-right: 15px;
		margin-top: 20px;
	}
	.case-review-main > p {
		font-size: 1.2rem;
	}
	.case-point {
		padding: 25px 15px;
	}
	.case-point-name {
		line-height: 1.7778;
		font-size: 1.8rem;
		margin-bottom: 24px;
		letter-spacing: .05em;
	}
	.case-point-text {
		font-size: 1.2rem;
	}
	.case-point-text + .case-point-text {
		margin-top: 7px;
	}
	.case-point-img {
		position: static;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 26px;
	}
}

/* step
------------------------------------------------------------------------ */
.step-list {
	overflow: hidden;
	counter-reset: num;
	display: flex;
}
.step-list li {
	background-color: #E6ECEF;
	width: calc(100%/3);
	position: relative;
}
.step-list li:first-child {
	border-radius: 5px 0 0 5px;
}
.step-list li:last-child {
	border-radius: 0 5px 5px 0;
}
.step-list li + li {
	padding-left: 15px;
}
.step-list li + li::before {
	content: "";
	background: url("../img/step_icon.91b6404591f6.png") no-repeat center;
	background-size: cover;
	position: absolute;
	top: 0;
	left: -10px;
	width: 35px;
	height: 100%;
	margin: auto;
}
.step-item {
	padding: 28px 30px 30px;
}
.step-item-number {
	text-align: center;
}
.step-item-number > span {
	border-bottom: 1px dotted #004B74;
	color: #004B74;
	display: inline-flex;
	align-items: center;
	text-transform: uppercase;
	line-height: 1.2;
	font-family: 'Barlow', sans-serif;
	font-size: 2.0rem;
	letter-spacing: .1em;
	font-weight: 700;
	position: relative;
	padding-bottom: 2px;
	margin-bottom: 30px;
}
.step-item-number > span::after {
	counter-increment: num;
	content: counter(num);
	display: inline-block;
	font-size: 4.0rem;
	margin-left: 10px;
	line-height: 1;
	position: relative;
	top: -3px;
}
.step-item-title {
	color: #004B74;
	font-size: 2.0rem;
	letter-spacing: .05em;
	font-weight: 500;
	line-height: 1.6;
	margin-bottom: 20px;
	min-height: 64px;
}
.step-item-text {
	font-size: 1.4rem;
	line-height: 2;
}
.step-item-text a {
	text-decoration: underline;
	color: #1C6CC1;
}
@media screen and (max-width: 767px) {
	.step .section-copy-head {
		text-align: left;
	}
	.step-list {
		flex-direction: column;
		margin-left: -4.762%;
		margin-right: -4.762%;
	}
	.step-list li {
		width: 100%;
	}
	.step-list li:first-child {
		border-radius: 5px 5px 0 0;
	}
	.step-list li:last-child {
		border-radius: 0 0 5px 5px;
	}
	.step-list li + li {
		padding-left: 0;
		padding-top: 8vw;
	}
	.step-list li + li::before {
		background-image: url("../img/step_icon_down.a433e873692d.png");
		left: 0;
		width: 100%;
		height: 8vw;
	}
	.step-item {
		padding: 7.246% 15px 25px;
	}
	.step-item-number > span {
		font-size: 1.8rem;
		padding-bottom: 0;
		margin-bottom: 25px;
	}
	.step-item-number > span::after {
		font-size: 3.5rem;
		top: -3px;
	}
	.step-item-title {
		font-size: 1.8rem;
		margin-bottom: 15px;
		min-height: auto;
	}
}

/* option
------------------------------------------------------------------------ */
.option-price {
	display: flex;
	margin-left: -60px;
}
.option-price-item {
	padding-left: 60px;
	width: 50%;
}
.option-price-item:nth-child(2) {
	position: relative;
}
.option-price-item:nth-child(2)::before {
	content: "";
	background: url("../img/icon_plus.d5959e5c1a8f.png") no-repeat center;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 20px;
	bottom: 0;
	margin: auto 0;
	width: 20px;
	height: 20px;
}
.option-price-main {
	text-align: center;
	color: #ffffff;
	border-radius: 5px;
	background-color: #004B74;
	padding-top: 30px;
	padding-bottom: 30px;
	height: 100%;
}
.option-price-sub {
	letter-spacing: .05em;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.7778;
	margin-bottom: 5px;
}
.option-price-num {
	letter-spacing: .05em;
	font-size: 3.0rem;
	font-weight: 700;
	line-height: 1.3;
}
.option-price-num .unit {
	font-weight: 300;
}
.option-price-num small {
	display: inline-block;
	font-size: 1.2rem;
}
.option-note {
	margin-top: 20px;
}
.option-note li {
	position: relative;
	font-size: 1.2rem;
	line-height: 2;
	padding-left: 14px;
}
.option-note li::before {
	content: "※";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
}
.option-note li + li {
	margin-top: 6px;
}
.option-note a {
	text-decoration: underline;
	color: #1C6CC1;
}
@media screen and (max-width: 767px) {
	.option .section-copy-head {
		text-align: center;
	}
	.option-price {
		flex-direction: column;
		margin-left: 0;
	}
	.option-price-item {
		padding-left: 0;
		width: 100%;
	}
	.option-price-item + .option-price-item {
		padding-top: 50px;
	}
	.option-price-item:nth-child(2)::before {
		top: 12px;
		left: 0;
		right: 0;
		bottom: auto;
		margin: auto;
	}
	.option-price-main {
		padding-top: 20px;
		padding-bottom: 20px;
		height: auto;
	}
	.option-price-sub {
		margin-bottom: 0;
	}
	.option-price-num small {
		letter-spacing: .05em;
	}
	.option-note li {
		line-height: 1.667;
	}
	.option-note li + li {
		margin-top: 10px;
	}
}

/* contact
------------------------------------------------------------------------ */
.contact {
	padding-bottom: 233px;
}
.contact .section-copy {
	margin-bottom: 44px;
}
.contact-sub {
	text-align: center;
	color: #004B74;
	font-size: 2.0rem;
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1.45;
}
.contact-btn {
	margin-top: 30px;
}
.contact-btn + * {
	margin-top: 60px;
}
@media screen and (max-width: 767px) {
	.contact {
		padding-bottom: 145px;
	}
	.contact .section-copy {
		margin-bottom: 35px;
	}
	.contact .section-copy-head {
		text-align: center;
	}
	.contact .section-copy-text {
		text-align: left;
	}
	.contact .section-copy-text.center {
		text-align: center;
	}
	.contact-sub {
		text-align: left;
		font-size: 1.8rem;
		letter-spacing: .05em;
		line-height: 1.5;
		padding-left: 15px;
		padding-right: 15px;
	}
	.contact-btn {
		margin-top: 20px;
	}
	.contact-btn + * {
		margin-top: 55px;
	}
	.contact-btn a {
		line-height: 1.38;
	}
}

/* pagetop
------------------------------------ ------------------------------------ */
#pagetop a{
	display: block;
	position: absolute;
	right: 0;
	bottom: 35px;
	line-height: 0;
	width: 50px;
}
@media screen and (min-width: 768px) {
	#pagetop{
		position: fixed;
		margin: 0 0 0 425px;
		z-index: 10;
		right: 100px;
		bottom: 80px;
	}

}
@media screen and (max-width: 767px) {
	#pagetop .inner{
		position: relative;
	}
	#pagetop a{
		right: 10px;
		bottom: 20px;
		width: 40px;
	}
}

/* footer
------------------------------------------------------------------------ */
footer{
	background-color: #004B74;
	height: 100px;
	padding: 20px 0;
	color: #ffffff;
}
footer a{
	color: #ffffff;
	text-decoration: none;
}
footer a[target=_blank]{
	background: url("../img/icon_blank.e8386fbf6fc1.png") no-repeat right center;
	background-size: 11px auto;
	padding-right: 20px;
}
footer .inner{
	display: flex;
	justify-content: space-between;
}
.footer-logo img{
	width: 110px;
}
.footer-copyright{
	font-size: 1.1rem;
}
.footer-menu ul{
	display: flex;
	flex-wrap: wrap;
	font-size: 1.2rem;
}
.footer-menu ul li + li::before{
	content: '｜';
	margin: 0 20px;
}
@media screen and (max-width: 767px) {
	footer{
		background-color: #004B74;
		height: auto;
		padding: 20px 0 40px;
		text-align: center;
	}
	footer .inner{
		flex-direction: column-reverse;
		align-items: center;
	}
	.footer-left{
		margin: 15px 0 0;
	}
}

.sns_btn a {
	display: inline-block;
	margin: -2px 0 0;
	line-height: 24px;
	vertical-align: top;
}
.sns_btn a + a { margin-left: 5px; }
.sns_btn img { vertical-align: top; }
.sns_btn span { display: none; }
@media screen and (max-width: 950px) {
	.sns_btn a {
		display: block;
		margin: 18px 0;
	}
	.sns_btn a + a { margin-left:0; }
	.sns_btn span {
		display: inline-block;
		margin-left: 5px;
	}
}
