@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.mainVisual {
	height: 820px;
	position: relative;
	background: url(../img/index/main_visual_bg.jpg) no-repeat center top / cover;
}
.mainVisual .img01 {
	padding: 48px 9px 0 0;
	width: 50%;
    text-align: right;
    box-sizing: border-box;
}
.mainVisual .img02 {
	width: 420px;
	position: absolute;
	right: 140px;
	bottom: 238px;
}
.intro {
	padding: 110px 0 133px;
	position: relative;
	overflow: hidden;
	background: url(../img/index/bg05.jpg) left -7px top / 16px auto;
}
.intro::before {
	content: "";
	margin-top: 60px;
	width: 366px;
	height: 411px;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	background: url(../img/index/img01.png) no-repeat center / 366px auto;
}
.intro::after {
	content: "";
    margin-top: 85px;
    width: 366px;
    height: 436px;
    position: absolute;
    right: -6px;
	top: 50%;
	transform: translateY(-50%);
	background: url(../img/index/img02.png) no-repeat center / 356px auto;
}
.intro .imgBox {
	margin: 0 0 21px 23px;
	display: flex;
	justify-content: center;
}
.intro h2 {
	margin-bottom: 36px;
	color: #2957a4;
	font-size: 3.9rem;
	text-align: center;
	font-family: 'MOBO', sans-serif;
}
.intro h2 strong {
	font-size: 5.2rem;
}
.intro h2 small {
	font-size: 4.7rem;
}
.intro .imgBox .img01 {
	margin: 6px 42px 0 0;
}
.intro .txt {
	margin-bottom: 18px;
	text-align: center;
	line-height: 2.375;
}
.intro h3 {
	margin-top: -6px;
	color: #2957a4;
	font-size: 2.8rem;
	line-height: 2.071;
	font-family: 'MOBO', sans-serif;
	text-align: center;
}
.intro h3 span {
	text-align: center;
	position: relative;
}
.intro h3 span::after {
	content: "";
	width: 100%;
	height: 5px;
	position: absolute;
	left: 0;
	bottom: -12px;
	background: url(../img/common/icon14.png) repeat-x left / 24px;
}
.specialPoint {
	padding: 122px 0 84px;
	position: relative;
}
.specialPoint::after {
	content: "";
	width: 100%;
	height: 36.1%;
	left: 0;
	bottom: 0;
	position: absolute;
	background-color: #0dcad2;
	background: url(../img/index/bg04.jpg) left top / 2px auto;
	z-index: -1;
}
.specialPoint h2 {
	margin-bottom: 61px;
	color: #000;
	font-size: 3rem;
	text-align: center;
	letter-spacing: 0.025em;
	font-family: 'MOBO', sans-serif;
}
.specialPoint h2 span {
	padding: 0 40px 15px;
	display: inline-block;
	color: #2957a4;
	font-size: 2.5rem;
	letter-spacing: -0.045em;
	background: url(../img/common/icon10.png) no-repeat left top 3px / 27px auto,
	url(../img/common/icon11.png) no-repeat right top 3px / 27px auto;
}
.specialPoint h2 strong {
	color: #2957a4;
	font-size: 5.3rem;
	vertical-align: -6px;
	letter-spacing: 0.05em;
}
.specialPoint h2 strong small {
	font-size: 4.8rem;
}
.pointList {
	margin: 0 -46px 0 5px;
	display: flex;
	flex-wrap: wrap;
}
.pointList li {
	width: 298px;
	margin-right: 49px;
}
.pointList .photoBox {
	margin-bottom: 27px;
	min-height: 338px;
	display: flex;
	align-items: flex-end;
}
.pointList .textBox {
	display: flex;
}
.pointList .num {
	margin: 7px 0 0 -3px;
	height: 60px;
}
.pointList .num img {
	height: 60px;
}
.pointList h3 {
	flex: 1;
	margin-left: 22px;
	margin-right: -14px;
	margin: 0 -14px 0 22px;
	color: #000;
	font-size: 2.3rem;
	line-height: 1.565;
}
.pointList h3 span {
	color: #2957a4;
}
.point {
	padding: 146px 0 0;
	background: url(../img/index/bg03.jpg) left top / 27px auto;
}
.pointBox {
	display: flex;
	align-items: center;
}
.pointBox .textBox,
.pointBox .photoBox {
	width: 50%;
}
.pointBox .textBox {
	margin-top: -46px;
}
.pointBox .inner {
	margin: 0 47px 0 auto;
	width: 453px;
}
.pointBox h2 {
	margin-bottom: 22px;
	padding-left: 87px;
	position: relative;
	color: #000;
	font-size: 2.8rem;
	line-height: 1.607;
	background-repeat: no-repeat;
	background-size: auto 60px;
	background-position: left top 17px;
}
.pointBox h2 .color {
	color: #2957a4;
}
.pointBox h2 .special {
	padding: 5px 15px 4px 19px;
	position: absolute;
	left: 0;
	bottom: 102px;
	font-size: 2.2rem;
	background-color: #ffd600;
}
.pointBox h2 .special::after {
	content: "";
	width: 19px;
	height: 19px;
	position: absolute;
    right: 84px;
    bottom: -18px;
	background: url(../img/common/icon15.png) no-repeat center / 19px;
}
.pointBox .txt {
	line-height: 2.375;
}
.pointBox:nth-child(1) {
	padding-bottom: 108px;
}
.pointBox:nth-child(1) .photoBox img {
	margin-left: 47px;
}
.pointBox:nth-child(2) {
	padding: 70px 0 84px;
	background-color: #f6f6f4;
}
.pointBox:nth-child(2) .photoBox img {
	margin-right: 77px;
}
.pointBox:nth-child(3) {
	padding: 57px 0 128px;
	background: url(../img/index/bg05.jpg) left top / 16px;
}
.pointBox:nth-child(3) .photoBox img {
	position: relative;
	left: 72px;
	top: 54px;
}
.pointBox:nth-child(2n) {
	flex-direction: row-reverse;
}
.pointBox:nth-child(2n) .photoBox {
	text-align: right;
}
.pointBox:nth-child(2n) .inner {
	margin: 0 0 0 47px;
}
.service {
	padding: 110px 0 63px;
	background: url(../img/index/bg04.jpg) left top / 2px;
}
.service .headLine01 {
	margin-bottom: 89px;
	color: #fff;
}
.service .headLine01 span {
	margin-bottom: 10px;
	color: #fff;
	letter-spacing: 0.05em;
}
.serviceList {
	margin-right: -50px;
	display: flex;
	flex-wrap: wrap;
}
.serviceList li {
	margin: 0 50px 67px 0;
	padding: 34px 24px 37px;
	width: 300px;
	position: relative;
	background-color: #fff;
	border-radius: 15px;
	overflow: hidden;
	box-sizing: border-box;
}
.serviceList li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 59px 59px 0 0;
	border-color: #2956a4 transparent transparent transparent;
}
.serviceList .photoBox {
	margin-bottom: 25px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 160px;
}
.serviceList .ttl {
	margin-bottom: 19px;
	color: #2957a4;
	font-size: 2.2rem;
	text-align: center;
}
.serviceList .txt {
	color: #000;
	font-weight: 300;
	font-size: 1.6rem;
	line-height: 2;
	letter-spacing: -0.02em;
}
.serviceList .big {
	width: 475px;
	padding: 44px 37px 29px;
}
.serviceList .big .photoBox {
	margin-bottom: 8px;
	min-height: 211px;
}
.serviceList .big .ttl {
	margin-bottom: 22px;
	letter-spacing: -0.04em;
}
.compare {
	padding: 110px 0 175px;
}
.compare .headLine01 {
	margin-bottom: 92px;
}
.compare .imgBox {
	display: flex;
	align-items: flex-end;
}
.compare .lBox {
	margin-right: 50px;
}
.director {
	padding-bottom: 131px;
	background: url(../img/index/bg03.jpg) left top / 24px;
}
.director .headLine01 {
	margin-bottom: -15px;
	position: relative;
	top: -26px;
}
.director .txt {
	margin-bottom: 45px;
	font-size: 2.3rem;
	text-align: center;
	line-height: 2;
}
.director .txt .line {
	position: relative;
	font-size: 2.6rem;
	z-index: 1;
}
.director .txt .color {
	color: #2957a4;
}
.director .txt .line::after {
	content: "";
	position: absolute;
	width: 102%;
	height: 22px;
	left: -1%;
	bottom: -6px;
	background-color: #fffc00;
	z-index: -1;
}
.directorBox {
	display: flex;
}
.directorBox .photoBox {
	margin-right: 76px;
}
.directorBox .textBox {
	flex: 1;
	padding: 50px 0 0;
}
.directorBox .textList {
	margin-bottom: 28px;
}
.directorBox .textList li {
	margin-bottom: 21px;
	padding: 16px 0 16px 60px;
	min-height: 69px;
	font-size: 1.8rem;
	border-radius: 100px;
	border: 3px solid #2957a4;
	box-sizing: border-box;
	background: url(../img/common/icon01.png) no-repeat left 29px center / 11px auto;
}
.directorBox .textList li span {
	color: #2957a4;
	font-size: 2rem;
}
.directorBox p {
	margin-left: -36px;
	font-size: 2rem;
	text-align: center;
	line-height: 2.6;
	letter-spacing: 0.02em;
}
.directorBox p span {
	position: relative;
	padding-bottom: 14px;
	background: url(../img/common/icon14.png) repeat-x left bottom / 23px;
}
.directorBox .color {
	color: #2957a4;
	font-size: 2.4rem;
	line-height: 2.3;
}
.contact01 {
	padding: 39px 0 284px;
	position: relative;
	background: url(../img/index/bg02.jpg) center top / cover;
}
.contact01 .img {
	margin-bottom: 30px;
	text-align: center;
}
.contact01 .txt {
	margin-bottom: 50px;
	color: #fff;
	font-weight: 300;
	font-size: 2.2rem;
	text-align: center;
	letter-spacing: 0.04em;
}
.contact01 .textList {
	display: flex;
	justify-content: center;
	margin-right: -42px;
}
.contact01 .textList li {
	margin-right: 42px;
	padding: 21px;
	width: 440px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	background-color: #fff;
	box-sizing: border-box;
}
.contact01 .textList p {
	margin-left: 10px;
	font-size: 2rem;
	letter-spacing: 0.04em;
}
.contact01 .textList p span {
	color: #2957a4;
	font-size: 2.1rem;
}
.contact01 .comBtnBox {
	padding-top: 27px;
	height: 222px;
}
.contact01 .comBtnBox h2 {
	margin-bottom: 18px;
}
.promise {
	padding: 111px 0 21px;
}
.promise .headLine01 {
	margin-bottom: 42px;
}
.promiseBox {
	margin-left: 7px;
	padding: 61px 0 70px 20px;
	display: flex;
	border-bottom: 4px dotted #cccccc;
}
.promiseBox:last-child {
	border-bottom: none;
}
.promiseBox .textBox {
	margin-right: 30px;
	width: 470px;
}
.promiseBox .ttl {
	padding: 0 0 28px 118px;
	min-height: 112px;
	display: flex;
	align-items: center;
	color: #2957a4;
	font-size: 2.5rem;
	line-height: 1.68;
	box-sizing: border-box;
	background: url(../img/index/promise01.png) no-repeat left top / 98px;
}
.promiseBox .txt {
	padding: 0 0 27px 9px;
	font-weight: 300;
	line-height: 2.375;
	letter-spacing: 0.025em;
}
.promiseBox .textList {
	margin: 0  -14px 0 8px;
	display: flex;
	flex-wrap: wrap;
}
.promiseBox .textList li {
	margin: 0 14px 12px 0;
	padding: 8px 0 9px;
	width: 224px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	border-radius: 20px;
	box-sizing: border-box;
	background-color: #e2eef4;
}
.promiseBox .photoBox {
	flex: 1;
	text-align: center;
	margin-top: 44px;
}
.flow {
	padding: 111px 0 131px;
	background-color: #e2eef4;
}
.flow .headLine01 {
	margin-bottom: 106px;
}
.flowList {
	margin-right: -46px;
	display: flex;
}
.flowList li {
	margin-right: 46px;
	padding-bottom: 28px;
	width: 215px;
	position: relative;
	border-radius: 17px;
	background-color: #fff;
}
.flowList li::after {
	content: "";
    margin-top: -6px;
    width: 20px;
    height: 32px;
    position: absolute;
    right: -35px;
    top: 50%;
	transform: translateY(-50%);
	background: url(../img/common/icon17.png) no-repeat center / 20px auto;
}
.flowList li:last-child::after {
	display: none;
}
.flowList .step {
	text-align: center;
	margin: -17px 0 28px;
}
.flowList .step img {
	height: 31px;
}
.flowList .img {
	margin-bottom: 37px;
	min-height: 84px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.flowList .ttl {
	text-align: center;
	line-height: 1.6875;
}
.contact02 {
	padding: 54px 0 277px;
	position: relative;
	background-color: #2957a4;
}
.contact02::before,
.contact02::after {
	margin-top: -70px;
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.contact02::before {
	width: 281px;
	height: 411px;
	left: 0;
	background: url(../img/index/img21.png) no-repeat center / 281px;
}
.contact02::after {
	margin-top: -52px;
	width: 296px;
	height: 436px;
	right: 0;
	background: url(../img/index/img22.png) no-repeat center / 296px;
}
.contact02 .img {
	margin-bottom: 33px;
	text-align: center;
}
.contact02 .txt {
	color: #fff;
	font-weight: 300;
	font-size: 2.2rem;
	text-align: center;
	letter-spacing: 0.04em;
}
.contact02 .comBtnBox {
	padding-top: 27px;
	height: 222px;
}
.contact02 .comBtnBox h2 {
	margin-bottom: 18px;
}
.faq {
	padding: 111px 0 130px;
	background-color: #f2f2f2;
}
.faq .headLine01 {
	margin-bottom: 80px;
}
.faq .headLine01 span {
	margin-bottom: 11px;
}
.faqBox {
	margin: 0 0 26px 49px;
	width: 856px;
	background-color: #fff;
	border-radius: 10px;
}
.faqBox:last-child {
	margin-bottom: 0;
}
.faqBox h3 {
	padding: 23px 0 22px 92px;
	font-size: 1.8rem;
	line-height: 2;
	position: relative;
}
.faqBox h3::before {
	content: "Q.";
	position: absolute;
    left: 46px;
    top: 12px;
	color: #2957a4;
	font-size: 2.8rem;
}
.faqBox h3::after {
	content: "";
    margin-top: -16px;
    width: 40px;
    height: 40px;
    position: absolute;
    right: 33px;
    top: 50%;
	transition: all ease 0.3s;
	transform: rotate(90deg);
	background: url(../img/common/icon12.png) no-repeat center / 40px;
}
.faqBox h3.on::after {
	transform: rotate(180deg);
	background-image: url(../img/common/icon13.png);
}
.faqBox p {
	display: none;
	padding: 6px 110px 32px 90px;
	position: relative;
	font-weight: 300;
	line-height: 2.375;
}
.faqBox p::before {
	content: "A.";
	position: absolute;
    left: 47px;
    top: -8px;
	font-weight: 700;
	color: #2957a4;
	font-size: 2.8rem;
}
.introduction {
	padding: 91px 0 114px;
}
.introduction .headLine01 {
	margin-bottom: 59px;
	font-size: 2.56rem;
	line-height: 2.385;
}
.introduction .headLine01 span {
	margin-bottom: 31px;
}
.introduction .headLine01 .color {
	color: #2957a4;
}
.introduction .headLine01 .special {
	position: relative;
}
.introduction .headLine01 .special::before {
	content: "";
	width: 5px;
	height: 5px;
	position: absolute;
	left: 10px;
    top: -10px;
	background: url(../img/common/icon16.png) left top / 25px auto;
}
.introList {
	margin: 0 auto;
	padding-left: 32px;
	width: 720px;
	display: flex;
	flex-wrap: wrap;
}
.introList dt,
.introList dd {
	margin-bottom: 6px;
	line-height: 2.0625;
}
.introList dt {
	margin-right: 15px;
	width: 185px;
	font-weight: 700;
	box-sizing: border-box;
}
.introList dd {
	width: calc(100% - 200px);
	font-weight: 300;
	letter-spacing: 0.025em;
}
.message {
	padding: 100px 0 75px;
	background-color: #2957a4;
}
.message h2 {
	margin: 0 0 36px 95px;
	padding-left: 38px;
	position: relative;
	color: #fff;
	font-size: 2.5rem;
	line-height: 1.88;
}
.message h2::before {
	content: "";
	width: 6px;
	height: calc(100% - 20px);
	position: absolute;
	left: 0;
	top: 10px;
	background-color: #fff;
}
.message h2 span {
	margin-top: 11px;
	display: block;
	font-size: 2.4rem;
	letter-spacing: 0.025em;
}
.message h2 small {
	font-weight: 300;
	font-size: 1.5rem;
	letter-spacing: 0.14em;
}
.message p {
	margin-bottom: 22px;
	padding: 0 132px 0 92px;
	color: #fff;
	font-weight: 300;
	font-size: 1.5rem;
	line-height: 2.133;
}
.contactForm {
	padding: 110px 0 152px;
}
.contactForm .txt {
	margin: 0 0 59px -16px;
	font-size: 1.8rem;
	line-height: 2.5;
	text-align: center;
	letter-spacing: 0.02em;
}
.formBox {
	margin: 0 auto;
	width: 710px;
}
.mailForm .notice a {
	text-decoration: underline;
}
.formList {
	margin-bottom: 14px;
	display: flex;
	flex-wrap: wrap;
}
.formList dt,
.formList dd {
	margin-bottom: 25px;
}
.formList dt {
	padding: 16px 1px;
	width: 160px;
	box-sizing: border-box;
}
.formList dd {
	width: calc(100% - 160px);
}
.mailForm .notice {
	margin-bottom: 43px;
	margin-right: -10px;
	font-weight: 300;
	font-size: 1.4rem;
	text-align: center;
	letter-spacing: 0.02em;
}
.mailForm input[type="email"],
.mailForm input[type="tel"],
.mailForm input[type="text"],
.mailForm textarea {
    padding: 0 18px;
	width: 100%;
    height: 60px;
    font-size: 1.5rem;
	color: #030303;
    letter-spacing: 0.02em;
    border: none;
	border-radius: 5px;
    box-sizing: border-box;
    background-color: #f2f2f2;
    appearance:none;
}
.mailForm textarea {
	padding: 22px 18px;
	height: 275px;
	resize: vertical;
}
.mailForm .submit {
	display: flex;
	justify-content: center;
}
.mailForm .submit li {
	margin: 0 10px;
}
.mailForm .submit input {
	appearance: none;
	width: 250px;
	height: 55px;
	color: #fff;
	font-weight: 600;
	font-size: 1.6rem;
	letter-spacing: 0.02em;
	border-radius: 28px;
	border: none;
	background-color: #2957a4;
}
@media all and (min-width: 897px) {
	.mailForm .notice a:hover {
		text-decoration: none;
	}
	.mailForm .submit input:hover {
		opacity: 0.7;
		cursor: pointer;
	}
	.faqBox h3:hover {
		cursor: pointer;
	}
	.serviceList .photoBox.special {
		margin-left: -37px;
		margin-right: -37px;
	}
}
@media all and (max-width: 896px) {
	.mainVisual {
		padding-top: 60px;
		background: url(../img/index/sp_img01.png) no-repeat right bottom / 350px,
		url(../img/index/sp_main_visual_bg.png) no-repeat center / cover;
		position: relative;
	}
	.mainVisual .img01 {
		text-align: center;
		padding: 0 30px;
		width: auto;
	}
	.mainVisual .img02 {
		padding: 0 25px;
		width: auto;
		right: 0;
		bottom: 170px;
	}
	.intro {
		padding: 80px 0;
	}
	.intro .imgBox {
		margin: 0 0 20px;
		display: block;
	}
	.intro .imgBox .img01 {
		margin: 0 10% 20px 0;
		text-align: left;
	}
	.intro .imgBox .img02 {
		margin: 0 0 0 10%;
		text-align: right;
	}
	.intro::after,
	.intro::before {
		display: none;
	}
	.intro h2 {
		margin: 0 -5px 20px;
		font-size: 2.4rem;
	}
	.intro h2 strong {
		font-size: 3rem;
	}
	.intro h2 small {
		font-size: 2.8rem;
	}
	.intro .txt {
		margin: 0 -10px;
		line-height: 1.8;
		transform: rotate(0.05deg);
	}
	.intro h3 {
		margin-top: 20px;
		font-size: 1.8rem;
	}
	.specialPoint {
		padding: 80px 0 0;
	}
	.specialPoint h2 {
		letter-spacing: normal;
		font-size: 2rem;
	}
	.specialPoint h2 strong {
		font-size: 3rem;
	}
	.specialPoint h2 strong small {
		font-size: 2.8rem;
	}
	.specialPoint h2 span {
		font-size: 1.5rem;
	}
	.pointList {
		margin: 0;
		display: block;
	}
	.specialPoint::after {
		display: none;
	}
	.pointList li {
		margin-bottom: 40px;
		margin-right: 0;
		width: auto;
	}
	.pointList .photoBox {
		display: block;
		margin-bottom: 10px;
		text-align: center;
	}
	.pointList .textBox {
		padding-bottom: 15px;
		position: relative;
		justify-content: center;
	}
	.pointList .textBox::after {
		content: "";
		position: absolute;
		left: -20px;
		bottom: 0;
		width: calc(100% + 40px);
		height: 190px;
		background: url(../img/index/bg04.jpg) left top / 2px;
		z-index: -1;
	}
	.contactForm .txt {
		margin: 0 0 15px;
		font-size: 1.5rem;
		line-height: 1.6;
	}
	.point {
		padding: 120px 0 0;
	}
	.pointList .num img {
		height: 50px;
	}
	.pointList h3 {
		font-size: 2rem;
	}
	.pointBox {
		padding: 0 20px;
		display: block;
	}
	.pointBox .textBox {
		margin: 0 0 40px;
		width: auto;
	}
	.pointBox .inner {
		margin: 0 !important;
		width: auto;
	}
	.pointBox h2 {
		padding-left: 70px;
		font-size: 2.2rem;
		background-size: auto 44px;
		background-position: left 10px center;
	}
	.pointBox h2 .special {
		padding: 5px 15px;
		font-size: 1.5rem;
		bottom: 90px;
	}
	.pointBox .txt {
		font-size: 1.4rem;
		line-height: 1.8;
	}
	.pointBox .photoBox {
		width: auto;
		text-align: center !important;
	}
	.pointBox .photoBox img {
		margin: 0 !important;
	}
	.pointBox:nth-child(1) {
		padding-bottom: 60px;
	}
	.pointBox:nth-child(2),
	.pointBox:nth-child(3) {
		padding: 60px 20px;
	}
	.pointBox:nth-child(3) .photoBox img {
		left: 0;
		top: 0;
	}
	.service {
		padding: 80px 0;
	}
	.service .headLine01 {
		margin-bottom: 40px;
	}
	.serviceList {
		display: block;
		margin-right: 0;
	}
	.serviceList li {
		margin: 0 0 45px;
		padding: 30px;
		width: auto;
	}
	.serviceList .big {
		padding: 30px;
		width: auto;
	}
	.serviceList .ttl {
		margin-bottom: 18px;
		font-size: 1.8rem;
	}
	.serviceList .txt {
		font-size: 1.4rem;
		line-height: 1.8;
	}
	.compare {
		padding: 80px 0 140px;
	}
	.compare .headLine01 {
		margin-bottom: 40px;
	}
	.compare .imgBox {
		display: block;
	}
	.compare .lBox img,
	.compare .rBox img {
		width: 100%;
	}
	.compare .lBox {
		margin: 0 0 30px;
	}
	.director {
		padding-bottom: 80px;
	}
	.director .txt {
		font-size: 1.8rem;
	}
	.director .txt .line {
		font-size: 2.2rem;
	}
	.directorBox {
		display: block;
	}
	.directorBox .photoBox {
		margin: 0 0 40px;
	}
	.directorBox .photoBox img {
		width: 100%;
	}
	.directorBox .textBox {
		padding: 0;
	}
	.directorBox .textList li {
		padding: 13px 15px 11px 40px;
		background-position: left 16px center;
	}
	.directorBox p {
		margin-left: 0;
		font-size: 1.7rem;
	}
	.directorBox .color {
		font-size: 2rem;
	}
	.contact01 {
		padding: 80px 0 180px;
	}
	.contact01 .txt {
		font-size: 1.6rem;
	}
	.contact01 .textList {
		display: block;
		margin-right: 0;
	}
	.contact01 .textList li {
		padding: 15px 10px;
		margin: 0 0 20px;
		width: auto;
		min-height: 78px;
	}
	.contact01 .textList p {
		font-size: 1.6rem;
	}
	.contact01 .textList p span {
		font-size: 1.7rem;
	}
	.promise {
		padding: 80px 0 0;
	}
	.promise .headLine01 {
		margin-bottom: 40px;
	}
	.promiseBox {
		margin: 0 0 50px;
		padding: 0 0 30px;
		display: block;
	}
	.promiseBox .textBox {
		margin-right: 0;
		width: auto;
	}
	.promiseBox .ttl {
		padding: 0 0 20px 72px;
		min-height: 74px;
		font-size: 2rem;
		background-size: auto 68px;
		background-position: left top;
	}
	.promiseBox .txt {
		line-height: 1.8;
		padding-bottom: 20px;
	}
	.promiseBox .textList {
		margin: 0;
	}
	.promiseBox .textList li {
		margin-right: 0;
		width: 100%;
	}
	.promiseBox .photoBox {
		margin-top: 0;
	}
	.flow {
		padding: 80px 0;
	}
	.flow .headLine01 {
		margin-bottom: 40px;
	}
	.flowList {
		margin-right: 0;
		display: block;
	}
	.flowList li {
		margin-bottom: 75px;
		padding: 30px 0;
		width: 100%;
		height: auto;
	}
	.flowList li::after {
		margin-top: 0;
		right: 50%;
		top: auto;
		bottom: -46px;
		transform: translateX(50%) rotate(90deg);
	}
	.flowList .step {
		margin-top: 0;
	}
	.contact02::after,
	.contact02::before {
		display: none;
	}
	.contact02 {
		padding: 80px 0 180px;
	}
	.contact02 .headLine02 {
		margin: 0 -5px 40px;
		font-size: 2rem;
	}
	.contact02 .txt {
		margin: 0 -5px;
		font-size: 1.6rem;
	}
	.faq {
		padding: 80px 0;
	}
	.faq .headLine01 {
		margin-bottom: 40px;
	}
	.faqBox {
		width: auto;
		margin: 0 0 25px;
	}
	.faqBox h3 {
		padding: 12px 30px 12px 32px;
	}
	.faqBox h3::before {
		left: 6px;
		top: 6px;
		font-size: 2rem;
	}
	.faqBox h3::after {
		width: 20px;
		height: 20px;
		right: 6px;
		top: 36px;
		background-size: 20px auto;
	}
	.faqBox p {
		padding: 6px 20px 32px 36px;
		font-size: 1.4rem;
	}
	.faqBox p::before {
		font-size: 2rem;
		left: 7px;
		top: -3px;
	}
	.contact02 .comBtnBox {
		height: 150px;
	}
	.introduction {
		padding: 80px 0;
	}
	.introduction .headLine01 {
		margin-bottom: 40px;
		font-size: 1.6rem;
	}
	.introduction .headLine01 span {
		margin-bottom: 5px;
	}
	.introduction .headLine01 .special::before {
		width: 92%;
		height: 3px;
		left: 9px;
		top: -4px;
		background-size: 15px auto;
	}
	.introList {
		width: auto;
		padding-left: 0;
	}
	.introList dt {
		width: 130px;
		margin-right: 10px;
	}
	.introList dd {
		width: calc(100% - 140px);
	}
	.message {
		padding: 80px 0;
	}
	.message h2 {
		margin-left: 0;
		padding-left: 25px;
		font-size: 1.8rem;
	}
	.message h2 span {
		margin-top: 0;
		font-size: 2.2rem;
	}
	.message p {
		padding: 0;
		line-height: 1.8;
		font-size: 1.4rem;
	}
	.contactForm {
		padding: 80px 0;
	}
	.formBox {
		width: auto;
	}
	.formList {
		display: block;
	}
	.formList dt,
	.formList dd {
		width: 100%;
	}
	.formList dt {
		margin-bottom: 0;
		font-size: 1.6rem;
	}
	.formList dd {
		margin-bottom: 20px;
		font-size: 1.5rem;
	}
	.mailForm .notice {
		margin-right: 0;
	}
	.mailForm .submit {
		display: block;
	}
	.mailForm .submit li {
		margin-bottom: 15px;
		text-align: center;
	}
}
@media all and (max-width: 374px) {
	.mainVisual {
		background-size: 300px auto, cover;
	}
	.intro h2 {
		font-size: 2rem;
	}
	.intro h2 strong {
		font-size: 2.4rem;
	}
	.intro h2 small {
		font-size: 2.2rem;
	}
	.intro .txt {
		font-size: 1.1rem;
		letter-spacing: -0.05em;
	}
	.intro h3 {
		font-size: 1.6rem;
	}
	.specialPoint h2 span {
		padding-bottom: 5px;
		font-size: 1.3rem;
		background-size: 15px auto;
		background-position: left top 6px, right top 6px;
	}
	.pointBox h2 .special {
		padding: 5px;
		font-size: 1.4rem;
	}
	.pointBox h2 {
		font-size: 1.7rem;
	}
	.serviceList .ttl {
		font-size: 1.5rem;
	}
	.serviceList .txt {
		font-size: 1.3rem;
	}
	.directorBox p {
		font-size: 1.4rem;
	}
	.directorBox .color {
		font-size: 1.8rem;
	}
	.promiseBox .ttl {
		font-size: 1.6rem;
		min-height: 54px;
		background-size: auto 48px;
		background-position: left 10px top 2px;
	}
	.contact02 .txt {
		font-size: 1.2rem;
	}
	.contact02 .headLine02 {
		font-size: 1.7rem;
	}
	.contact02 .headLine02 span {
		background-position: left top 10px, right top 10px;
	}
	.introduction .headLine01 {
		font-size: 1.4rem;
	}
	.introduction .headLine01 span {
		font-size: 3.2rem;
	}
}
.errorMsg {
	margin-bottom: 30px;
	color: #f00;
}
#confirmForm .formList dt {
	padding: 0;
}