@charset "utf-8";
/* CSS Document */
/* htag */
#maincontainer :is(:not(.mainimg):not(.mainimg div)) :where(h2, h3, h4, h5) {
	position: relative;
	line-height: 1.2;
	letter-spacing: 0.11em;
}
#maincontainer :is(:not(.mainimg):not(.mainimg div)) h2 {
	text-align: center;
	margin: 0 auto 40px;
	font-size: clamp(1.555rem, 1.367rem + 0.943vw, 2.074rem);
}
#maincontainer :is(:not(.mainimg):not(.mainimg div)) h2 span {
	display: inline-block;
}
#maincontainer :is(:not(.mainimg):not(.mainimg div)) h2 span::after {
	content: "";
	height: 8px;
	padding: 0 1em;
	background: #ffae00;
	display: block;
	position: relative;
	width: 50%;
	min-width: 50px;
	border-radius: 999px;
	margin: calc(clamp(1.375rem, 4.5vw, 2.0rem) / 2 + 8px) auto 0;
}
#maincontainer h3 {
	overflow: hidden;
	padding: 0.75rem calc(2rem + 4px) 1rem;
	color: #504538;
	border-left: 5px solid #504538;
	font-size: clamp(1.296rem, 1.139rem + 0.785vw, 1.728rem);
	margin: 0 auto 30px;
}
#maincontainer :is(:not(.mainimg):not(.mainimg div)) h2:where(* + *), #maincontainer h3:where(* + *) {
	margin-top: 60px;
}
#maincontainer h4, #maincontainer h5 {
	font-weight: 500;
}
#maincontainer h4 {
	color: #705b3f;
	border-bottom: 2px solid #705b3f;
	padding: 0.5em 1em;
	font-size: clamp(1.08rem, 0.949rem + 0.655vw, 1.44rem);
	text-wrap: balance;
}
#maincontainer h5 {
	font-size: clamp(0.9rem, 0.791rem + 0.545vw, 1.2rem);
}
#maincontainer h4:where(* + *), #maincontainer h5:where(* + *) {
	margin: 50px auto 30px;
}
/* htag */
/* mainimg */
.mainimg {
	max-height: 280px;
	height: 100vh;
	overflow: hidden;
	position: relative;
	background-size: cover;
	background-repeat: no-repeat;
}
.mainimg::before, .mainimg::after {
	content: "";
	display: block;
	position: absolute;
	height: 100%;
	width: 100%;
	left: 0;
	top: 0;
}
.mainimg::before {
	background-color: #8da0b6;
	mix-blend-mode: multiply;
	opacity: .4;
}
.mainimg::after {
	background-color: #aaa;
	mix-blend-mode: soft-light;
	opacity: .2;
}
.mainimg div {
	position: absolute;
	top: 48%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 90%;
	z-index: 1;
}
.mainimg div h2 {
	text-align: center;
	font-size: clamp(1.866rem, 1.64rem + 1.131vw, 2.488rem);
	margin-bottom: 0;
}
.mainimg h2 span {
	display: inline-block;
	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: keep-all; /* 単語の分割はデフォルトに依存 */
	line-break: strict; /* 禁則処理を厳格に適用 */
	text-wrap: balance;
	color: #fff;
	position: relative;
}
#news .mainimg {
	background-image: url("../img/title_news.jpg");
	background-position: left 20%;
}
#faq .mainimg {
	background-image: url("../img/title_faq.jpg");
	background-position: left 67%;
}
#contact .mainimg {
	background-image: url("../img/title_contact.jpg");
	background-position: left 22%;
}
#contact .mainimg div {
	top: 46%;
}
/* mainimg */
/* contents */
#sinsei, #form, #form-send, .mainimg ~ .block {
	padding: 60px 0 100px;
}
.contents {
	border-radius: 10px;
	padding: 2em 1em 3em;
}
.contents li {
	padding: 0.75rem 0;
}
.contents li + li {
	margin: 0.5rem 0;
}
.contents li:first-of-type {
	padding-top: 0;
	margin-top: 0;
}
.contents li:last-of-type {
	margin-bottom: 0;
}
.contents ol {
	position: relative;
	margin: 0 auto;
	list-style: none;
	counter-reset: li;
}
.contents ol li {
	position: relative;
	line-height: 1.5;
	text-indent: -3rem;
	padding: 0.5rem 1em 1rem 3rem;
	border-bottom: 1px solid #ddd;
}
.contents ol li + li {
	margin: 0.5rem 0;
}
.contents ol > li:before {
	position: relative;
	counter-increment: li;
	content: counter(li) "";
	display: inline-block;
	font-weight: bold;
	color: #fff;
	width: 1.725rem;
	height: 1.725rem;
	text-align: center;
	border-radius: 100%;
	line-height: 1;
	background: #feb500;
	padding: 5px 2px;
	aspect-ratio: 1 / 1;
	text-indent: 0;
	font-size: 1rem;
	margin: 0 1rem 0 1em;
	letter-spacing: 0;
}
.contents li > *{
	text-indent: 0;
	padding: 0.75rem 0.65rem;
}
.contents ul.line_list li {
	border-bottom: 1px dashed #ccc;
}
/* contents */
/* table */
main table {
	width: 100%;
}
table tr {
	display: flex;
	width: 100%;
}
table :where(th, td) {
	padding: 1rem 1.75rem;
	display: inline-block;
}
table th {
	max-width: 30%;
	min-width: 280px;
}
table td {
	width: 70%;
	min-width: calc(100% - 280px);
}
table td .comments {
	font-size: 12px;
	color: #666;
	display: inline-block;
	margin: 0.25rem 0 0;
}
table tr + tr td {
	border-top: #ddd 1px solid;
}
table tr:last-of-type td {
	border-bottom: #ddd 1px solid;
}
table.input_table {
	width: 90%;
	margin: 20px auto;
}
table.input_table td {
	width: 100%;
}
table.input_table ul {
	padding: 30px 40px;
}
table.input_table ul.input_list li {
	list-style: circle;
}
/* table */
/*--- Breadcrumb ---*/
#Breadcrumb {
	margin: 0 auto;
    max-width: 40%;
    background: #fff;
    padding: 0.5rem 2rem;
    position: relative;
    border-radius: 10px 10px 0 0;
    display: block;
    z-index: 1;
    left: 0;
    margin: -56px 0 0;
}
#Breadcrumb::after {
	content: "";
	background: url(../img/Breadcrumb_bg.png);
	display: inline-block;
	width: 10px;
	height: 10px;
	top: 46px;
	right: -10px;
	position: absolute;
}
#Breadcrumb ul {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5em 0;
	margin: 15px 0;
	padding: 0 5px;
	font-size: 0.875rem;
}
#Breadcrumb ul li {
	margin: 0;
}
#Breadcrumb ul li:before {
	content: none;
}
#Breadcrumb ul li:has(a):after {
	content: "\003e";
	margin: 0 1em;
}
/*--- Breadcrumb ---*/
/* お知らせ */
#news .contents .btn.back {
	padding: 0.8rem 3rem 0.8rem 6rem;
	color: #003975;
	border: 2px solid #003975;
}
#news .contents .btn.back:hover {
	color: #fff;
}
#news .contents .btn.back::before {
	content: "\f104";
	left: 0;
	right: auto;
	margin-right: 3rem;
	color: #003975;
}
#news .contents .btn.back:hover::before {
	color: #fff;
}
#news .contents .btn.back::after {
	background: #003975;
}
#news ul.news_list {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	margin: 0 auto;
}
#news ul.news_list li {
	padding: 1.5rem 1rem;
	border-bottom: 1px dashed #e7e7e7;
	margin: 0;
}
#news ul.news_list li:nth-child(odd) {
	width: 200px;
	text-align: center;
}
#news ul.news_list li:nth-child(odd) span {
	color: #fff;
	background: #ffb400;
	font-weight: bold;
	display: block;
	padding: 0.5rem 0;
	font-size: clamp(0.75rem, 0.875rem, 1rem);
	border-radius: 5px;
}
#news ul.news_list li:nth-child(even) {
	width: calc(100% - 200px);
	display: flex;
	align-items: center;
}
#news ul.news_list li:last-child, #news ul.news_list li:nth-last-child(2) {
	border-bottom: 0;
}
#news ul.news_list li a {
	color: inherit;
}
#news ul.news_list li a:hover {
	color: #007bff;
}
.clipbtnset.flex {
	gap: 24px 40px;
	justify-content: space-around;
	align-items: center;
	margin: 40px auto 30px;
	width: 80%;
}
#news ul.clipbtnset li {
	border-bottom: none;
	padding: 0;
	margin: 0 auto;
}
.clipbtnset li.prev:before, .clipbtnset li.next:before {
	content: none;
}
.clipbtnset li.prev:not(:has(a)) span, .clipbtnset li.next:not(:has(a)) {
	display: none;
}
.clipbtnset li.prev a.btn, .clipbtnset li.next a.btn {
	min-width: 200px;
	max-width: 300px;
}
#news .contents h2:has(~ .date.align-r) {
	margin-bottom: 20px;
}
#news .contents .date.align-r {
	margin: 0rem auto 2rem;
	padding: 0.5rem 1rem;
}
#news .contents .date.align-r span {
	display: inline-block;
	padding: 0.5rem 1rem;
	border: 2px solid #504538;
	font-weight: 500;
	color: #504538;
	border-radius: 5px;
	min-width: 180px;
	text-align: center;
}
#news .contents p + p {
	margin: 1.5rem auto;
}
#news .contents a img {
	max-height: 640px;
	transition: .3s;
}
#news .contents a:hover img {
	opacity: .6;
	transform: scale(1.02);
}
#news .date ~ .flex:has(p img) {
	justify-content: space-around;
	gap: 20px 30px;
	flex-wrap: wrap;
	margin-bottom: 1.5rem;
}
#news .date ~ .flex p + p {
	margin: 0 auto;
}
#news .contents a[href$=".xls"], #news .contents a[href$=".xlsx"], #news .contents a[href$=".doc"], #news .contents a[href$=".docx"], #news .contents a[href$=".pdf"] {
	display: inline-flex;
	align-items: center;
}
#news .contents a[href$=".xls"]::after, #news .contents a[href$=".xlsx"]::after, #news .contents a[href$=".doc"]::after, #news .contents a[href$=".docx"]::after, #news .contents a[href$=".pdf"]::after {
	content: "";
	width: 30px;
	max-width: 30px;
	aspect-ratio: 1 / 1;
	display: inline-block;
	margin-left: 1rem;
	background-size: contain;
	background-repeat: no-repeat;
}
#news .contents a[href$=".xls"]::after, #news .contents a[href$=".xlsx"]::after {
	background-image: url(../img/icon_excel.png);
}
#news .contents a[href$=".pdf"]::after {
	background-image: url(../img/icon_pdf_2.png);
}
#news .contents a[href$=".doc"]::after, #news .contents a[href$=".docx"]::after {
	background-image: url(../img/icon_word.png);
}
#news .contents .update a {
	display: inline-block;
	padding: 0 1.5rem;
	border-bottom: 2px solid;
}
#news .contents .update a.red:hover {
	color: #ff8e99;
}
/* お知らせ */
/* よくある質問　*/
#faq .cp_qa01 dt, #faq .cp_qa01 dd {
	text-indent: -3em;
	padding-left: 3em;
	line-height: 2.5rem;
}
#faq .cp_qa01 dt {
	position: relative;
	margin: 0.5rem;
}
#faq .cp_qa01 dd {
	position: relative;
	margin: 0.5rem;
	padding-bottom: 1.5em;
	border-bottom: 1px dotted #0097a7;
}
#faq .cp_qa01 dt::before, #faq .cp_qa01 dd::before {
	position: relative;
	margin: 0 0.75em 0 0;
	color: #ffffff;
	font-weight: bold;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 1.75em;
	height: 1.75em;
	aspect-ratio: 1 / 1;
	font-size: 1.25rem;
	border-radius: 999px;
	text-indent: 0;
	text-align: center;
}
#faq .cp_qa01 dt::before {
	content: 'Ｑ';
	background: #40a278;
	padding: 0 0 2px 1px;
}
#faq .cp_qa01 dd::before {
	content: 'Ａ';
	background: #ff8e1a;
	padding: 0 0 1px 2px;
}
/* お問い合わせ */
#sinsei .contents p {
	text-indent: 1em;
}
#sinsei ul.line_list li:has(.large) {
	padding: 0.25rem 0.5em;
}
#sinsei ul.line_list li .large {
	display: inline-block;
	margin-left: 0.15rem;
}
#form {
	background-color: #e9fcf3;
}
#maincontainer #form h2 span::after {
	background: #008b4f;
}
#form .form_table {
	background: #fff;
	padding: 5% 2% 8%;
	margin-bottom: 40px;
	border-radius: 10px;
}
#form .notes {
	width: 85%;
	margin: 0 auto 40px;
	line-height: 2.2;
}
.form_table table {
	margin-bottom: clamp(2.5rem, 1.611rem + 1.85vw, 3rem); /* 48 -> 40 */
}
.form_table input, .form_table textarea {
	-webkit-appearance: auto;
	appearance: auto;
}
.form_table th, .form_table td {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	word-break: break-word;
	overflow-wrap: break-word;
}
.form_table th {
	background: #47a77d;
	color: #fff;
}
.form_table th .red.small {
	font-size: 0.875rem;
	display: inline-block;
}
.form_table tr + tr th {
	border-top: #fff 1px solid;
}
.form_table tr:last-of-type th {
	border-bottom: #7ebba0 1px solid;
}
.form_table td .flex {
	gap: 1.5rem 4rem;
	width: 90%;
	flex-wrap: wrap;
}
.form_table .msg {
	color: #e2041b;
}
.form_table td :where(input[type="text"], input[type="email"], textarea) {
	width: 90%;
}

.form_table :where(input[type="text"], input[type="email"], textarea) {
	border: 1px solid #ddd;
	padding: 0.25rem 0.5rem;
	line-height: 1.5;
}
.form_table label {
	display: inline-block;
	margin-left: 0.5rem;
}
.submitbox {
	text-align: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	justify-content: center;
	align-items: center;
}
.submitbox input.btn:disabled {
	opacity: .3;
}
.submitbox input.btn:disabled:hover {
	color: #ffae00;
}
.submitbox .btn:not(:disabled):hover {
	background: #ffae00;
}
.submitbox input[type="reset"], .submitbox input.reset {
	padding: 0.5rem 1rem;
	border: 1px solid #999;
	transition: .3s;
	max-height: 3rem;
	border-radius: 999px;
}
.submitbox input[type="reset"]:hover, .submitbox input.reset:hover, .submitbox input[type="reset"]:active, .submitbox input.reset:active {
	opacity: .5;
}
.align-c input[type="button"].reset.btn {
	background: #fff;
	border: 2px solid #999;
	border-radius: 999px;
	color: #999;
	font-weight: 500;
}
.align-c input[type="button"].reset.btn:hover {
	color: #999;
	opacity: .5;
}
.form_table .align-c {
	padding-bottom: 8%;
}
/* お問い合わせ */
/* other */
main small {
	font-size: 0.694rem;
}
.caption {
	font-size: 0.833rem;
}
.large {
	font-size: 1.139rem;
}
/* other */
@media screen and (max-width: 768px) {
	#maincontainer :is(:not(.mainimg):not(.mainimg div)) h2 {
		margin: 0 auto 60px;
	}
	.mainimg {
		max-height: 250px;
	}
	.mainimg div {
		top: 50%;
	}
	#contact .mainimg div {
		top: 53%;
	}
	.mainimg h2 span {
		line-height: 1.5;
	}
	table th {
		padding: 0.5rem 1.75rem;
	}
	.form_table tr + tr th {
	    border-top: none;
	}
	table td {
		padding: 1rem 1.5rem 2rem;
	}
	table tr + tr td {
		border-top: none;
	}
	#Breadcrumb {
		max-width: 100%;
		padding: 0.25rem 1rem;
		position: relative;
		border-radius: 0;
		display: block;
		width: 100%;
		line-height: 1;
		top: auto;
		margin: 0;
	}
	#Breadcrumb::after {
		content: none;
	}
	#sinsei, #form, #form-send, .mainimg ~ .block {
		padding-top: 40px;
	}
	#form .notes {
		margin: 20px auto 40px;
		line-height: 1.8;
		font-size: 0.875rem;
		
	}
	.form_table tr {
		flex-wrap: wrap;
	}
	.form_table th, .form_table td {
		display: block;
		max-width: inherit;
		min-width: inherit;
		width: 100%;
	}
	.form_table th br {
		display: none;
	}
	.form_table td {
		text-align: center;
	}
	.form_table td p {
		margin: 1.5rem 0;
	}
	.form_table td p:first-of-type {
		margin-top: 0.5rem;
	}
	.form_table td p:last-of-type {
		margin-bottom: 0.5rem;
	}
	.form_table td p,
	.form_table td :where(input, textarea) {
		text-align:left;
	}
	.form_table td :where(input[type="text"], input[type="email"], textarea) {
		margin: 0.5rem auto;
		width: 95%;
	}
	.form_table td:has(#agree-check) {
		display: flex;
		gap: 5px;
		text-align: left;
		padding: 1.5rem 1rem 3rem;
	}
	.form_table td:has(#agree-check) label {
		width: 85%;
	}
	.submitbox {
		gap: 2rem 1.5rem;
		margin-bottom: 40px;
	}
	.submitbox input.btn {
		text-align :center;
	}
	#news #maincontainer :is(:not(.mainimg):not(.mainimg div)) h2 span {
		text-align: left;
		padding: 0 1rem;
		line-height: 1.6;
	}
	#news #maincontainer :is(:not(.mainimg):not(.mainimg div)) h2 span::after {
		width: 100%;
		min-width: inherit;
		margin: calc(clamp(1.375rem, 4.5vw, 2.0rem) / 2 + 8px) 0 0;
	}
	#news .contents .date.align-r span {
		padding: 0.25rem 1rem;
		min-width: 160px;
		font-size: 0.875rem;
	}
	#news .date ~ .flex p + p {
		margin: 2rem auto;
	}
	#news .contents a img {
		max-height: 480px;
	}
	#news ul.news_list li:nth-child(even) {
		width: 100%;
		margin: 0 0 1rem;
		padding: 0;
		align-items: flex-start;
	}
	#news ul.news_list li:nth-child(odd) {
		padding: 0.25rem 0;
		border-bottom: none;
	}
}