@charset "utf-8";

*, *::before, *::after {
	box-sizing: border-box;
}

/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap');

/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("animation.css");
@import url("inview.css");


/*全体の設定
---------------------------------------------------------------------------*/
html, body {
	margin: 0; padding: 0;
	height: 100%;
	font-size: 13px;
}

body {
	font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
	-webkit-text-size-adjust: none;
	background: #fff;
	color: #777;
	line-height: 2;
	overflow-x: hidden;
}

/*リセット*/
figure { margin: 0; }
dd { margin: 0; }
nav { margin: 0; padding: 0; }

table { border-collapse: collapse; }

img { border: none; max-width: 100%; height: auto; vertical-align: middle; }

video { max-width: 100%; }

main ul,
main ol {
	margin-bottom: 30px;
}


/*リンクテキスト全般
---------------------------------------------------------------------------*/
a {
	color: #57524b;
	transition: 0.3s;
}
a:hover {
	opacity: 0.8;
}


/*sectionタグと詳細ページの共通設定
---------------------------------------------------------------------------*/
section,
main > article {
	margin: 0 auto;
	max-width: 1300px;
	padding: 2% 5%;
}


/*containerブロック
---------------------------------------------------------------------------*/
#container {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}


/*header
---------------------------------------------------------------------------*/
header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #7d6964;
	color: #fff;
	position: relative;
	z-index: 1;
}

header a {
	color: #fff;
}

header #logo img { display: block; }
header #logo {
	margin: 0;
	padding: 15px 20px;
}


/*menubarブロック初期設定
---------------------------------------------------------------------------*/
#menubar ul { list-style: none; margin: 0; padding: 0; }
#menubar { display: none; }
#menubar.db { display: block; }
#menubar.dn { display: none; }

#menubar a {
	display: block;
	text-decoration: none;
	text-align: center;
	letter-spacing: 0.1em;
}


/*小さな端末時にアイコン類だけ横並びにする
---------------------------------------------------------------------------*/
.s #menubar.db li.inline,
.s #menubar.db li.inline a {
	display: inline-block;
}


/*小さな端末用の開閉ブロック設定
---------------------------------------------------------------------------*/
.s #menubar.db {
	position: fixed; overflow: auto; z-index: 100;
	left: 0px; top: 0px;
	width: 100%; height: 100%;
	padding: 70px 0;
	background: rgba(0,0,0,0.9);
	color: #fff;
	animation: animation1 0.2s both;
	text-align: center;
}

.s #menubar.db a {
	color: #fff;
	padding: 20px;
}


/*ドロップダウンメニュー
---------------------------------------------------------------------------*/
#menubar .ddmenu_parent ul { display: none; }

a.ddmenu::before {
	font-family: "Font Awesome 6 Free";
	content: "\f103";
	font-weight: 900;
	font-style: normal;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	margin-right: 0.5em;
}

a.ddmenu { cursor: default; }

.ddmenu_parent ul a {
	background: rgba(0,0,0,0.8);
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
#menubar_hdr.db { display: flex; }
#menubar_hdr.dn { display: none; }

#menubar_hdr {
	position: fixed; z-index: 101;
	cursor: pointer;
	right: 3%; top: 0px;
	padding: 16px 14px;
	width: 52px; height: 52px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	order: 0;
	background: rgba(0,0,0,0.5);
}

#menubar_hdr span {
	display: block;
	transition: 0.3s;
	border-top: 2px solid #fff;
}

#menubar_hdr.ham span:nth-of-type(1),
#menubar_hdr.ham span:nth-of-type(3) {
	transform-origin: center center;
	width: 26px;
}

#menubar_hdr.ham span:nth-of-type(1) {
	transform: rotate(45deg) translate(6px, 7px);
}

#menubar_hdr.ham span:nth-of-type(3) {
	transform: rotate(-45deg) translate(6px, -7px);
}

#menubar_hdr.ham span:nth-of-type(2) { display: none; }


/*mainブロック設定
---------------------------------------------------------------------------*/
main { flex: 1; }

body:not(.home) main { padding-top: 80px; }

main h2 {
	margin-bottom: 30px;
	position: relative;
	letter-spacing: 0.1em;
	border-bottom: 3px solid #f5f5f5;
}

main h2 .uline {
	display: inline-block; position: relative;
	padding: 10px 20px;
	bottom: -3px;
}
main h2 .uline::before {
	content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%;
	height: 3px;
	background: #f89d9d;
	transition: 1s 0.5s;
	transform: scaleX(0);
	transform-origin: left top;
}
main h2.linestyle .uline::before { transform: scaleX(1); }

main h3 { margin-bottom: 20px; }

main h3::before {
	display: inline-block;
	content: "■";
	transform: scale(0.5);
	padding-right: 10px;
	margin-left: -0.4em;
}

main p { margin: 0 20px 30px; }


/*フッター設定
---------------------------------------------------------------------------*/
footer small { font-size: 100%; }

footer {
	font-size: 0.7rem;
	text-align: center;
	padding: 20px;
	background: #7d6964;
	color: #fff;
}

footer a { text-decoration: none; color: #fff; }
footer .pr { display: block; }


/*フッターメニュー
---------------------------------------------------------------------------*/
#footermenu {
	margin: 0; padding: 0;
	margin-bottom: 15px;
}

#footermenu li {
	display: inline-block;
	padding: 0 10px;
	font-size: 1.2em;
}


/*スライドショー（slick）
---------------------------------------------------------------------------*/
.mainimg { position: relative; }

.mainimg img {
	width: 100%;
	height: auto;
	display: block;
}

ul.slick-dots {
	margin: 0; padding: 0;
	line-height: 1;
	width: 100%;
	text-align: center;
	position: absolute;
	bottom: 10px;
}

ul.slick-dots li {
	display: inline-block;
	margin: 0 10px;
	cursor: pointer;
}

ul.slick-dots li button {
	border: none; padding: 0;
	display: block;
	text-indent: -9999px;
	width: 12px; height: 12px;
	border-radius: 50%;
	cursor: pointer;
	background: #fff;
}

ul.slick-dots li.slick-active button { background: #f89d9d; }


/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
#new {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	padding: 0 20px;
}

#new dt, #new dd { padding: 5px 0; }

#new dt {
	width: 8em;
}

#new dt span { display: none; }

#new dd { width: calc(100% - 8em); }


/*listブロック
---------------------------------------------------------------------------*/
.list {
	margin-bottom: 30px;
	padding: 20px;
	background: #fff;
	color: #999;
	box-shadow: 5px 5px 20px rgba(0,0,0,0.1);
	position: relative;
}

.list h4 { margin: 0; color: #777; }
.list h4 a { color: #777; }

.list p { margin: 0; font-size: 0.8em; }

.list .new {
	font-size: 0.6em;
	background: #ff0000;
	color: #fff;
	width: 50px;
	line-height: 50px;
	border-radius: 50%;
	text-align: center;
	position: absolute;
	left: -10px; top: -10px;
	transform: rotate(-30deg);
}

.list .btn { margin-top: 1em; }
.list .btn a { display: block; }


/*FAQ
---------------------------------------------------------------------------*/
.faq { padding: 0 5px; }

.faq dt {
	border-radius: 3px;
	margin-bottom: 20px;
	background: linear-gradient(#fff, #f7f7f7);
	text-indent: -2em;
	padding: 5px 1em 5px 3em;
	border: 1px solid #e4e2d7;
}

.faq dt::before {
	font-family: "Font Awesome 6 Free";
	content: "\f059";
	font-weight: 900;
	-webkit-font-smoothing: antialiased;
	color: #e26767;
	padding-right: 1em;
}

.faq dd { padding: 5px 1em 30px 3em; }

.openclose { cursor: pointer; }

.faq dt span { text-indent: 0; }


/*btnの設定
---------------------------------------------------------------------------*/
p.btn { margin: 0; }

.btn { text-align: center; }

.btn a,
.btn input {
	display: inline-block; text-decoration: none; border: none;
	font-size: 1em;
	box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
	background: linear-gradient(150deg, #f89d9d, #e26767);
	letter-spacing: 0.1em;
	color: #fff;
	transition: 0.3s;
	padding: 1em 2em;
	margin: 0 auto 30px;
}

.btn a:hover,
.btn input:hover {
	cursor: pointer;
	opacity: 0.8;
	transform: scale(1.02);
}

.list .btn a { margin: 0; }


/*テーブル
---------------------------------------------------------------------------*/
.ta1 caption {
	font-weight: bold;
	padding: 10px 5px;
	background: #eee;
	margin-bottom: 15px;
}

.ta1 {
	border-top: 1px solid #ccc;
	width: 100%;
	margin: 0 auto 30px;
}

.ta1 tr { border-bottom: 1px solid #ccc; }

.ta1 th, .ta1 td {
	padding: 10px 5px;
	word-break: break-all;
}

.ta1 th { width: 30%; text-align: left; }

/*ta2*/
.ta2 caption {
	font-weight: bold; padding: 10px 5px;
	background: #ffe5e5; margin-bottom: 15px;
}
.ta2 { border-top: 1px solid #ccc; width: 100%; margin: 0 auto 30px; }
.ta2 tr { border-bottom: 1px solid #ccc; }
.ta2 th, .ta2 td { padding: 10px 5px; word-break: break-all; }
.ta2 th { width: 50%; text-align: left; }

/*ta3*/
.ta3 caption {
	font-weight: bold; padding: 10px 5px;
	background: #ffe5e5; margin-bottom: 15px;
}
.ta3 { border-top: 1px solid #ccc; width: 100%; margin: 0 auto 30px; }
.ta3 tr { border-bottom: 1px solid #ccc; }
.ta3 th, .ta3 td { padding: 10px 10px; word-break: break-all; }
.ta3 th { width: 30%; text-align: left; }

/*ta4*/
.ta4 caption {
	font-weight: bold; padding: 10px 5px;
	background: #ffe5e5; margin-bottom: 15px;
}
.ta4 { border-top: 1px solid #ccc; width: 100%; margin: 0 auto 30px; }
.ta4 tr { border-bottom: 1px solid #ccc; }
.ta4 th, .ta4 td { padding: 10px 10px; word-break: break-all; }
.ta4 th { width: 5%; text-align: left; }

/*ta5*/
.ta4 caption {
	font-weight: bold; padding: 10px 5px;
	background: #ffe5e5; margin-bottom: 15px;
}
.ta5 { border-top: 1px solid #ccc; width: 100%; margin: 0 auto 30px; }
.ta5 tr { border-bottom: 1px solid #ccc; }
.ta5 th, .ta5 td { padding: 10px 10px; word-break: break-all; }
.ta5th { width: 30%; text-align: left; }

/*背景色パターン
---------------------------------------------------------------------------*/
.bg1 { background: #f2ebeb; }


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show { display: block; }

.pagetop a {
	display: block; text-decoration: none; text-align: center; z-index: 99;
	position: fixed;
	right: 20px; bottom: 20px;
	color: #fff;
	font-size: 1.5em;
	background: rgba(0,0,0,0.2);
	width: 60px;
	line-height: 60px;
	border-radius: 50%;
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after { content: ""; display: block; clear: both; }
.color-theme, .color-theme a { color: #f89d9d !important; }
.color-check, .color-check a { color: #f00 !important; }
.c { text-align: center !important; }
.ws { width: 100%; display: block; }
.wl { width: 100%; display: block; }
.mb30 { margin-bottom: 30px !important; }
.mt30 { margin-top: 30px !important; }
.look { display: inline-block; padding: 0px 10px; background: #666; color: #fff; border-radius: 3px; margin: 5px 0; word-break: break-all; }
.look .color-check { color: #ffcc00 !important; }
.small { font-size: 0.6em; }


/*---------------------------------------------------------------------------
600px以上
---------------------------------------------------------------------------*/
@media screen and (min-width:600px) {

.list-container {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding: 0;
}

.list {
	display: flex;
	flex-direction: column;
	width: calc((100% - 20px) / 2);
}

.list.list-large {
	display: block;
	width: 100%;
}

.list figure {
	width: 100%;
	margin-right: 0;
}

.list .text {
	width: 100%;
	word-break: break-all;
	overflow-wrap: break-word;
	text-align: center;
}

}


/*---------------------------------------------------------------------------
900px以上
---------------------------------------------------------------------------*/
@media screen and (min-width:900px) {

html, body { font-size: 15px; }

header {
	position: fixed;
	width: 100vw;
	left: 0;
}

#menubar { font-size: 0.85em; display: block; margin-left: auto; }
#menubar ul { display: flex; }

#menubar a { padding: 20px 15px; }

#menubar .ddmenu_parent ul { position: absolute; }

#menubar_hdr { display: none; }

#new dt {
	width: 14em;
	display: flex;
	justify-content: space-between;
}

#new dt span {
	display: inline-block;
	width: 6em;
	background: #999;
	color: #fff;
	font-size: 0.8em;
	text-align: center;
	margin-right: 1em;
	align-self: flex-start;
	line-height: 1.8;
	position: relative; top: 0.4em;
}

#new dt span.icon-bg1 { background: #e26767; }

#new dd { width: calc(100% - 14em); }

.list-container {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding: 0;
}

.list {
	display: flex;
	flex-direction: column;
	width: calc((100% - 40px) / 3);
}

.list.list-large {
	display: block;
	width: calc((100% - 40px) / 3 * 2 + 20px);
}

.list figure {
	width: 100%;
	margin-right: 0;
}
.list .text {
	width: 100%;
	word-break: break-all;
	overflow-wrap: break-word;
	margin-right: 0;
	text-align: center;
}
.list h4 { margin: 10px 0; }

.ta1 caption { padding: 5px 15px; }

.ta1 th, .ta1 td { padding: 20px 15px; }

.ta1 th { width: 20%; }

.ws { width: 48%; display: inline; }

}
