@charset "UTF-8";
.container{
	margin:2em auto
}
#mainContent .container ul,
#mainContent .container ol{
	margin:.8em auto
}
#mainContent .container p{
	margin:.8em
}
.titleH2,.titleH3,.titleH4{padding:0 .4em .4em;margin:2em 0 1.5em}
.mLink a,.wpcf7-submit{padding:.4em .6em}
.mLink a::after{content:"\f138";padding-left:.2em}
.topic-cats{min-width:5em}
.topic-exe{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.gmapContainer:before {
	content:"";
	display:block;
	padding-top:56.25%;
}
.gmapContainer iframe{position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%}



.mapContainer iframe{position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%}
.home-banner{width:100%}
.home-banner .fas.fa-caret-right{
	position: absolute;
	right:8px;
	font-size:2em;
}

@media all and (min-width:576px),print{
	.topic-exe{
	  -webkit-line-clamp: 4;
	}
}
@media all and (min-width:992px),print{
	.container{
		margin:3em auto
	}
	.mLink a,.wpcf7-submit{padding:.2em .6em}
	#pageTop a{font-size:2.5em;opacity:.7}
	.home-banner{width:19%}
	.home-banner a::after{font-size:3em}
	.home-banner a{border-radius:4px}

	.home-banner .fas.fa-caret-right{
		visibility: hidden;
		font-size:.4em;
		position: static;
	}
	.gmapContainer:before {
		content:"";
		display:block;
		padding-top:30%;
	}
}


/* お問い合わせフォーム：基本 ----------------------------------------------------------- */
.contact-form{
	width:100%;
	max-width:900px;
	margin:0 auto;
}
.contact-form .form-group{
	display:block;
	margin:0 0 24px;
}
.contact-form .form-group > label{
	display:block;
	width:100%;
	margin:0 0 10px;
	padding:0;
	color:#333;
	font-size:15px;
	font-weight:600;
	line-height:1.7;
}
.contact-form .required{
	display:inline-block;
	margin-left:8px;
	padding:2px 7px;
	border-radius:3px;
	background:#c94b4b;
	color:#fff;
	font-size:11px;
	font-weight:400;
	line-height:1.5;
	vertical-align:middle;
}
.contact-form .wpcf7-form-control-wrap{
	display:block;
	width:100%;
	min-width:0;
}
/* お問い合わせフォーム：入力欄 ----------------------------------------------------------- */
.contact-form input.form-control,
.contact-form textarea.form-control{
	display:block;
	width:100% !important;
	max-width:100% !important;
	min-width:0;
	margin:0;
	padding:12px 14px;
	border:1px solid #ccc;
	border-radius:4px;
	background:#fff;
	color:#333;
	font-family:inherit;
	font-size:16px;
	line-height:1.6;
	box-sizing:border-box;
	transition:border-color .2s,box-shadow .2s;
}
.contact-form input.form-control{
	height:48px;
}
.contact-form textarea.form-control{
	height:200px;
	min-height:160px;
	resize:vertical;
}
.contact-form input.form-control:focus,
.contact-form textarea.form-control:focus{
	outline:none;
	border-color:#477caa;
	box-shadow:0 0 0 3px rgba(71,124,170,.14);
}
.contact-form input.form-control::placeholder,
.contact-form textarea.form-control::placeholder{
	color:#999;
}
/* お問い合わせフォーム：入力エラー ----------------------------------------------------------- */
.contact-form input.wpcf7-not-valid,
.contact-form textarea.wpcf7-not-valid{
	border-color:#cf5555 !important;
	background:#fffafa;
}
.contact-form input.wpcf7-not-valid:focus,
.contact-form textarea.wpcf7-not-valid:focus{
	box-shadow:0 0 0 3px rgba(207,85,85,.12);
}
.contact-form .wpcf7-not-valid-tip{
	display:block;
	margin-top:6px;
	color:#c03939;
	font-size:13px;
	line-height:1.6;
}
/* お問い合わせフォーム：送信ボタン ----------------------------------------------------------- */
.contact-form .form-group:last-child{
	display:flex;
	align-items:center;
	justify-content:center;
	flex-wrap:wrap;
	gap:12px;
	margin:36px 0 0;
}
.contact-form input.wpcf7-submit{
	display:inline-block;
	width:100%;
	max-width:300px;
	min-height:52px;
	margin:0;
	padding:12px 24px;
	border:0;
	border-radius:4px;
	background:#315f85;
	color:#fff;
	font-family:inherit;
	font-size:16px;
	font-weight:600;
	line-height:1.5;
	text-align:center;
	cursor:pointer;
	box-sizing:border-box;
	transition:background-color .2s,opacity .2s;
}
.contact-form input.wpcf7-submit:hover{
	background:#244a69;
	color:#fff;
}
.contact-form input.wpcf7-submit:disabled{
	opacity:.6;
	cursor:not-allowed;
}
/* お問い合わせフォーム：送信中スピナー ----------------------------------------------------------- */
.contact-form .wpcf7-spinner{
	display:none;
	position:fixed;
	top:50%;
	left:50%;
	z-index:10002;
	width:48px;
	height:48px;
	margin:0;
	border:4px solid rgba(49,95,133,.18);
	border-top-color:#315f85;
	border-radius:50%;
	background:transparent;
	opacity:1;
	transform:translate(-50%,-50%);
	animation:contact-spinner 0.8s linear infinite;
}
.contact-form .wpcf7-spinner::before{
	display:none;
}
.wpcf7 form.submitting .contact-form .wpcf7-spinner{
	display:block;
}
.wpcf7 form.submitting::before{
	content:"";
	position:fixed;
	inset:0;
	z-index:10000;
	background:rgba(255,255,255,.85);
}
.wpcf7 form.submitting::after{
	content:"送信中です...";
	position:fixed;
	top:calc(50% + 48px);
	left:50%;
	z-index:10002;
	transform:translateX(-50%);
	color:#315f85;
	font-size:15px;
	font-weight:600;
	white-space:nowrap;
}
@keyframes contact-spinner{
	from{
		transform:translate(-50%,-50%) rotate(0deg);
	}
	to{
		transform:translate(-50%,-50%) rotate(360deg);
	}
}
/* お問い合わせフォーム：送信結果メッセージ ----------------------------------------------------------- */
.wpcf7 form .wpcf7-response-output{
	display:block;
	width:100%;
	max-width:1100px;
	margin:28px auto 0;
	padding:16px 20px;
	border:1px solid #ccc;
	border-radius:4px;
	background:#f7f7f7;
	color:#333;
	font-size:14px;
	line-height:1.8;
	text-align:center;
	box-sizing:border-box;
}
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output{
	display:none;
}
/* お問い合わせフォーム：送信成功 ----------------------------------------------------------- */
.wpcf7 form.sent .wpcf7-response-output{
	border-color:#4c9972;
	background:#edf8f1;
	color:#256c48;
}
/* お問い合わせフォーム：入力エラー ----------------------------------------------------------- */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{
	border-color:#d6a23a;
	background:#fff8e8;
	color:#815d18;
}
/* お問い合わせフォーム：送信失敗・スパム判定 ----------------------------------------------------------- */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output{
	border-color:#cf5555;
	background:#fff0f0;
	color:#a33232;
}
/* お問い合わせフォーム：アクセシビリティ ----------------------------------------------------------- */
.wpcf7 .screen-reader-response{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}
/* お問い合わせフォーム：PC横並び ----------------------------------------------------------- */
@media (min-width:768px){
	.contact-form .form-group{
		display:grid;
		grid-template-columns:200px minmax(0,1fr);
		align-items:start;
		column-gap:28px;
		margin-bottom:28px;
	}
	.contact-form .form-group > label{
		width:auto;
		margin:0;
		padding-top:11px;
		font-size:16px;
	}
	.contact-form .form-group > .wpcf7-form-control-wrap{
		width:100%;
		min-width:0;
	}
	.contact-form .form-group:last-child{
		display:flex;
		margin-top:40px;
	}
	.wpcf7 form .wpcf7-response-output{
		margin-top:30px;
		padding:20px 28px;
		font-size:15px;
	}
}
