@charset "utf-8";

/* =======================================

        CommonElements

======================================= */
body {
	font-size: 16px;
	line-height: 1.8;
	color: #000;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
}

.gramond {
	font-family: 'EB Garamond', serif;
	letter-spacing: 0.1em;
}

.mincyo {
	font-family: 'Noto Serif JP', serif;
}

.mplus {
	font-family: 'M PLUS 1p', sans-serif;
}

.wf-hannari {
	font-family: "Hannari";
}

.wf-notosansjapanese {
	font-family: "Noto Sans Japanese";
}

.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.clearfix {
	display: block;
}

.pc_none {
	display: none;
}

img {
	max-width: 100%;
}

.cmn960 {
	width: 100%;
	max-width: 960px;
	margin: auto;
}

.cmn980 {
	width: 980px;
	margin: auto;
}

.cmn1110 {
	width: 1110px;
	margin: auto;
}

.cmn1100 {
	width: 1100px;
	margin: auto;
}

.cmn1200 {
	width: 100%;
	max-width: 1200px;
	margin: auto;
}

.cmn1400 {
	width: 100%;
	max-width: 1400px;
	margin: auto;
}

@media screen and (max-width: 1220px) {
	.cmn1200 {
		padding: 0 20px;
	}
}

@media screen and (max-width: 1420px) {
	.cmn1400 {
		padding: 0 20px;
	}
}

@media screen and (max-width: 988px) {
	.cmn960 {
		padding: 0 20px;
	}
}


/* =======================================

        CommonElements（下層）

======================================= */

.page_ttl {
	width: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	background: url("../img/cmn/page_mainvbg.jpg") no-repeat center center / cover;
	padding: 97px 0 0 0;
	height: 390px;
}

.page_ttl .title {
	color: #000;
	display: flex;
	align-items: center;
	font-size: 36px;
	width: calc((100% - 1200px) / 2 + 440px);
	height: 88px;
	background: rgba(255, 255, 255, 0.62);
	padding: 0 0 0 calc((100% - 1200px) / 2);
}

@media screen and (max-width: 1220px) {
	.page_ttl .title {
		width: 50%;
		padding: 0 20px;
	}
}

@media screen and (max-width: 968px) {
	.page_ttl .title {
		width: 60%;
	}
}

.head_page_cmn {
	text-align: center;
}

.head_page_cmn span {
	position: relative;
	display: inline-block;
	text-align: center;
	color: #144C84;
	font-size: 36px;
	padding: 0 70px;
}

.head_page_cmn span::before,
.head_page_cmn span::after {
	content: "";
	position: absolute;
	top: 50%;
	display: inline-block;
	width: 80px;
	height: 2px;
	background: #144C84;
	transform: rotate(-55deg);
}

.head_page_cmn span::before {
	left: 0;
}

.head_page_cmn span::after {
	right: 0;
}

@media screen and (max-width: 968px) {
	.head_page_cmn span {
		font-size: 28px;
	}
}

.head_page_cmn2 {
	position: relative;
	text-align: center;
	padding: 80px 0 10px 0;
}

.head_page_cmn2::after {
	content: "";
	position: absolute;
	bottom: 0px;
	left: 50%;
	transform: translateX(-50%);
	background: #144C84;
	width: 186px;
	height: 5px;
}

.head_page_cmn2 .ja {
	display: block;
	line-height: 1;
	color: #144C84;
	font-size: 36px;
}

.head_page_cmn2 .en {
	display: block;
	line-height: 1;
	font-size: 18px;
	margin: 20px 0 20px 0;
}

@media screen and (max-width: 968px) {
	.head_page_cmn2 .ja {
		font-size: 28px;
	}
}

.text_orange {
	color: #EC6800;
}

/* パンくず */
#breadcrumb {
	background: #EEF4FA;
	padding: 15px 0;
}

#breadcrumb li {
	color: #144C84;
	font-size: 13px;
	display: inline;
	position: relative;
}

#breadcrumb li+li {
	padding-left: 2.5em;
}

#breadcrumb li+li:after {
	content: '>';
	position: absolute;
	left: 1em;
	top: 50%;
	transform: translateY(-50%);
	color: #6C6C6C;
}

#breadcrumb li a {
	color: #6C6C6C;
}

#breadcrumb li a:hover {
	opacity: 0.9;
}

#content {
	padding-bottom: 100px;
}

/* コンテンツ(共通パーツ)
--------------------------------------------*/

/* 外部js用 */

/* コンテンツ */
.inbox {
	width: 100%;
	max-width: 1200px;
	margin: auto;
}

@media screen and (max-width: 1220px) {
	.inbox {
		padding: 0 20px;
	}
}

.inbox section {
	margin: 100px 0 0;
}

/* table  */
.cmn_table dl {
	position: relative;
	border-bottom: 1px solid #ddd;
}

.cmn_table dl:first-child {
	border-top: 1px solid #ddd;
}

.cmn_table dl dt,
.cmn_table dl dd {
	vertical-align: top;
	display: table-cell;
	box-sizing: border-box;
}

.cmn_table dl dt {
	width: 180px;
	color: #222;
	text-align: left;
	padding: 15px 20px;
	background-color: #f5f2ed;
}

.cmn_table dl dd {
	width: 820px;
	padding: 15px 20px;
}

/* price */
.tabale_scroll {
	overflow-x: auto;
}

.tabale_scroll table {
	width: 100%;
	border-collapse: collapse;
	white-space: nowrap;
	margin: 0 0 70px 0;
}

table.price caption {
	font-size: 20px;
	margin: 0 0 20px 0;
}

table.price th,
table.price td {
	font-size: 20px;
	padding: 10px 20px;
	line-height: 2.5;
}

table.price th:nth-child(1),
table.price td:nth-child(1) {
	width: 24%;
}

table.price1 {
	width: 100%;
}

table.price1 th {
	background: #DAE8F6;
	font-weight: bold;
}

table.price1 th:nth-child(n+3),
table.price1 td:nth-child(n+3) {
	text-align: center;
}

table.price1 tbody tr:nth-child(even) td {
	background: #fff;
}

table.price3 {
	width: 76.5%;
}

table.price3 tbody tr:nth-child(odd) td {
	background: #fff;
}

table.price3 td:nth-child(1) {
	width: 32%;
}

table.price3 td:nth-child(n+2) {
	width: 34%;
}

table.price3 td:nth-child(3) {
	text-align: right;
}

/* list */
ul.check_img {}

ul.check_img li {
	position: relative;
	line-height: 2.83333;
	padding: 0 0 0 48px;
	font-size: 24px;
}

ul.check_img li::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: url("../img/cmn/icon_check.png")no-repeat center center / contain;
	width: 38px;
	height: 38px;
	margin: 0 0 0 -48px;
}

@media screen and (max-width: 968px) {
	ul.check_img li {
		font-size: 18px;
	}
}

ul.price li {
	font-size: 16px;
}

ul.area {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 20px 0;
}

ul.area li {
	border-radius: 6px;
	line-height: 1;
	background: #EFF2F6;
	font-size: 20px;
	padding: 5px 20px;
	margin: 0 7px 20px 0;
}

dl.qa {
	border-bottom: 1px solid #888;
	margin: 20px 0 20px 0;
}

dl.qa dt {
	position: relative;
	font-size: 18px;
	padding: 10px 0 10px 35px;
	margin: 20px 0 20px 0;
}

dl.qa dt::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
	background: url("../img/cmn/icon_q.png")no-repeat center center / cover;
	width: 25px;
	height: 18px;
}

dl.qa dt::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
	background: url("../img/cmn/icon_plus1.png")no-repeat center center / cover;
	width: 36px;
	height: 36px;
}

dl.qa dt.active::after {
	background: url("../img/cmn/icon_minus1.png")no-repeat center center / cover;
}

dl.qa dd {
	font-size: 18px;
	margin: 20px 0 20px 0;
}

/* accordion */
.acc_btn {
	cursor: pointer;
}

.acc_body {}

/* head */
.head_top {
	position: relative;
	text-align: center;
	z-index: 2;
}

.head_top .ja {
	position: relative;
	line-height: 1;
	font-size: 36px;
}

.head_top .ja::after {
	content: "";
	position: absolute;
	bottom: -30px;
	left: 50%;
	transform: translateX(-50%);
	background: #144C84;
	width: 186px;
	height: 5px;
	margin: 10px 0 0 0;
}

@media screen and (max-width: 968px) {
	.head_top .ja {
		font-size: 28px;
	}
}

.head_area {
	position: relative;
	color: #144C84;
	font-size: 26px;
	padding: 10px 0 10px 20px;
}

.head_area::before {
	content: "-";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
}

.head_area::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
	background: url("../img/cmn/icon_plus2.png")no-repeat center center / cover;
	width: 36px;
	height: 36px;
}

.head_area.active::after {
	background: url("../img/cmn/icon_minus2.png")no-repeat center center / cover;
}

.head_page {
	margin: 0 0 100px 0;
}

.head_page .ja {
	position: initial;
	margin: 0 0 100px 0;
}

/* btn */
.btn {
	position: relative;
}

.btn.btn_cmn {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #144C84;
	color: #144C84;
	width: 412px;
	height: 68px;
	font-size: 22px;
	margin: 0 auto;
}

.btn.btn_cmn::after {
	content: "";
	position: absolute;
	right: 0;
	top: calc(50% + 1px);
	background: #144C84;
	width: 54px;
	height: 2px;
	margin: 0 -27px 0 0;
}

.btn.btn_cmn:hover {
	animation-name: btnCmnAnime;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
	color: #fff;
}

/* card */
.card_wrap {}

.card {}

/* card_reason_top */
.card_wrap_reason_top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
}

.card_reason_top {
	display: flex;
	flex-direction: column;
	width: calc(50% - 37.5px);
	margin: 0 0 40px 0;
}

.card_reason_top .card_title {
	color: #144C84;
	line-height: 1.3;
	font-weight: bold;
	font-size: 36px;
	margin: 15px 0;
}

.card_reason_top .card_text {
	line-height: 2;
	font-size: 18px;
}

@media screen and (max-width: 1220px) {
	.card_reason_top {
		width: calc(50% - 12.5px);
	}

	.card_reason_top .card_title {
		font-size: 32px;
	}
}

@media screen and (max-width: 968px) {
	.card_reason_top .card_title {
		font-size: 24px;
	}

	.card_reason_top .card_text {
		font-size: 16px;
	}
}

/* card_reason_bottom */
.card_wrap_reason_bottom {
	margin: 20px 0 0 0;
}

.card_reason_bottom {
	display: flex;
	flex-wrap: wrap;
	background: #fff;
	padding: 30px 20px;
	margin: 0 0 80px 0;
}

.card_reason_bottom .card_img {
	width: 50%;
}

.card_reason_bottom .card_img img {
	width: 100%;
}

.card_reason_bottom .card_body {
	width: 50%;
	padding: 0 10px 0 0;
}

.card_reason_bottom .card_title {
	position: relative;
	color: #144C84;
	font-weight: bold;
	line-height: 1.25;
	font-size: 38px;
	padding: 0 0 30px 120px;
}

.card_reason_bottom .card_title::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	background: url("../img/top/person.png")no-repeat center center / contain;
	width: 133px;
	height: 197px;
}

.card_reason_bottom .card_text {
	line-height: 2;
	font-size: 18px;
}

@media screen and (max-width: 1220px) {
	.card_reason_bottom .card_title {
		font-size: 28px;
		padding: 0 0 30px 120px;
	}

	.card_reason_bottom .card_text {
		font-size: 16px;
	}
}

@media screen and (max-width: 968px) {
	.card_reason_bottom .card_img {
		width: 100%;
	}

	.card_reason_bottom .card_img img {
		width: 100%;
	}

	.card_reason_bottom .card_body {
		width: 100%;
		padding: 0 0px 20px 0;
	}
}

/* price */
.card_wrap_price {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% + 32px);
	margin: 0 -16px;
}

.card_price {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: #E2E9F3;
	width: calc(25% - 32px);
	margin: 0 16px 32px 16px;
	padding: 10px 15px;
}

.card_price .card_img img {
	width: 100%;
}

.card_price .card_body {
	margin: auto 0 0 0;
}

.card_price .card_title {
	text-align: center;
	color: #144C84;
	line-height: 1.25;
	font-size: 24px;
	margin: 10px 0 0 0;
}

.card_price .card_text {
	text-align: center;
	line-height: 1;
	font-size: 24px;
}

.card_price .card_text strong {
	font-size: 56px;
	line-height: 0.85;
}

@media screen and (max-width: 1220px) {
	.card_price .card_title {
		font-size: 20px;
	}
}

@media screen and (max-width: 968px) {
	.card_price {
		width: calc(33.3333% - 32px);
	}
}

/* works */
.card_wrap_works {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% + 40px);
	margin: 0 -20px;
}

.card_wrap_works>a {
	width: calc(33.33333% - 40px);
	margin: 0 20px 0px 20px;
}

.card_works {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.card_works::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	background: #144C84;
	height: 100%;
	width: 2px;
	margin: 0 0 0 25px;
}

.card_works .card_img {
	width: 440px;
	height: 330px;
}

.card_works .card_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.card_works .card_body {
	padding: 0 0 0 50px;
}

.card_works .card_title {
	line-height: 1.25;
	font-size: 18px;
	margin: 20px 0 10px 0;
	overflow-wrap: break-word;
}

.card_works .card_text {
	line-height: 1.25;
	font-size: 18px;
	overflow-wrap: break-word;
}

@media screen and (max-width: 968px) {
	.card_wrap_works {
		width: calc(100% + 20px);
		margin: 0 -10px;
	}

	.card_wrap_works>a {
		width: calc(33.33333% - 20px);
		margin: 0 10px 0px 10px;
	}

	.card_works::before {
		margin: 0 0 0 10px;
	}

	.card_works .card_body {
		padding: 0 0 0 20px;
	}
}

/* card_news */
.card_wrap_news {}

.card_news {
	position: relative;
}

.card_news:hover .card_img::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.4);
	z-index: 2;
}

.card_news .card_img {
	width: 100%;
	height: 380px;
}

.card_news .card_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
}

.card_news .card_body {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	text-align: center;
	width: 70%;
	z-index: 3;
	opacity: 0;
}

.card_news:hover .card_body {
	opacity: 1;
}

.card_news time {
	line-height: 1;
	font-size: 18px;
}

.card_news .card_title {
	position: relative;
	line-height: 1;
	font-size: 22px;
	padding: 0 0 20px 0;
	margin: 30px 0 20px 0;
}

.card_news .card_title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 109px;
	height: 1px;
	background: #fff;
}

.card_news .card_text {
	line-height: 1.5;
	font-size: 18px;
}

/* card_wrap_type */
.card_wrap_type {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% + 40px);
	margin: 0 -20px;
}

.card_type {
	display: flex;
	flex-direction: column;
	width: calc(33.33333% - 40px);
	margin: 0 20px 40px 20px;
}

.card_type .card_title {
	color: #144C84;
	line-height: 1.3;
	font-weight: bold;
	font-size: 24px;
	margin: 10px 0;
}

.card_type .card_text {
	line-height: 2;
	font-size: 18px;
}

@media screen and (max-width: 968px) {
	.card_type {
		width: calc(50% - 30px);
		margin: 0 15px 40px 15px;
	}

	.card_type .card_img img {
		width: 100%;
	}

	.card_type .card_title {
		font-size: 24px;
	}

	.card_type .card_text {
		font-size: 16px;
	}
}

/* banner */
#sec_banner {
	background: url("../img/cmn/banner_bg_pc.jpg") no-repeat top center / cover;
	padding: 120px 0 85px 0;
}

#sec_banner .head_banner {
	text-align: center;
	color: #fff;
	font-weight: bold;
	font-size: 36px;
}

#sec_banner .head_banner span {
	color: #F7F38A;
}

#sec_banner .banner_btn {
	margin: 40px 0;
}

#sec_banner .banner_btn ul {
	display: flex;
	justify-content: center;
	width: calc(100% + 30px);
	margin: 0 -15px;
}

#sec_banner .banner_btn ul li {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	width: calc(33.3333% - 30px);
	height: 116px;
	margin: 0 15px 0 15px;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
}

#sec_banner .banner_btn ul li.line {
	background: #4CAF50;
}

#sec_banner .banner_btn ul li img {
	width: 67px;
}

#sec_banner .banner_btn ul li.tel {
	background: #EC6800;
}

#sec_banner .banner_btn ul li.mail {
	background: #fff;
}

#sec_banner .banner_btn ul li a {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	color: #fff;
	font-size: 28px;
	width: 100%;
	height: 100%;
}

#sec_banner .banner_btn ul li.tel a {
	font-size: 38px;
}

#sec_banner .banner_btn ul li.mail a {
	color: #306CA9;
}

#sec_banner .banner_btn ul li a .text {
	padding: 0 0 0 15px;
}

#sec_banner .info p {
	text-align: center;
	color: #fff;
	font-weight: bold;
	font-size: 24px;
}

@media screen and (max-width: 1220px) {
	#sec_banner .banner_btn ul li a {
		font-size: 24px;
	}

	#sec_banner .banner_btn ul li.tel a {
		font-size: 28px;
	}
}

@media screen and (max-width: 968px) {
	#sec_banner .head_banner {
		font-size: 30px;
	}

	#sec_banner .banner_btn ul li {
		height: 80px;
	}

	#sec_banner .banner_btn ul li a {
		font-size: 20px;
	}

	#sec_banner .banner_btn ul li img {
		width: 45px;
	}

	#sec_banner .banner_btn ul li.tel a {
		font-size: 24px;
	}

	#sec_banner .banner_btn ul li a .text {
		padding: 0 0 0 10px;
	}
}

/*flow
--------------------------------------------*/
#sec_flow .text {
	line-height: 2;
	text-align: center;
	font-size: 18px;
}

#sec_flow .flow_wrap {
	position: relative;
	margin: 55px 0 0 0px;
}

#sec_flow .flow_wrap::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 1px;
	height: 100%;
	background: #BCBCBC;
	margin: 0 0 0 35px;
}

#sec_flow .flow {
	position: relative;
	padding: 50px 0 0 0px;
	margin: 0px 0 0 0;
}

#sec_flow .flow:last-child {
	padding: 50px 0 40px 0px;
}

#sec_flow .flow .flow_num {
	position: absolute;
	left: 0;
	top: 0;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0D5072;
	color: #fff;
	font-weight: bold;
	width: 70px;
	height: 70px;
	font-size: 36px;
	margin: 83px 0 0 0;
}

#sec_flow .flow .flow_body {}

#sec_flow .flow .flow_title {
	color: #0D5072;
	border-bottom: 1px solid #0D5072;
	font-size: 28px;
	padding: 10px 0 10px 90px;
}

#sec_flow .flow .flow_text {
	line-height: 2;
	font-size: 18px;
	padding: 0 0 0 90px;
	margin: 10px 0 0 0;
}

#content.page #sec_flow .head_top_wrap .img_ttl {
	display: none;
}

/*map */
.map {
	width: 100%;
}

.map iframe {
	width: 100%;
	height: 494px;
}

/*404ページ
--------------------------------------------*/

#not_found {
	width: 100%;
}

#not_found .midashi_02 {
	margin: 0 0 50px;
}

#not_found p {
	text-align: center;
}

#not_found .found_map {
	text-align: center;
	margin: 50px 0 0;
}