@charset "utf-8";

/* 各ページごとの個別設定 ---------------------------------- */


main#sitetop {
	position: relative;
	padding-top: 0;
	z-index: 1;
}
main#sitetop::before {
	display: none;
}
main#sitetop .main_visual {
	position: relative;
	width: 100%;
	height: calc(100vh - 25px);
	min-height: 500px;
	padding-bottom: 200px;
}
main#sitetop .main_visual .swiper-container {
	width: 100%;
	height: 100%;
}
main#sitetop .main_visual .swiper-wrapper {
	width: 100%;
	height: 100%;
}
main#sitetop .main_visual .swiper-slide {
	width: 100%;
	height: 100%;
}
main#sitetop .main_visual .slide1 {
	display: block;
	width: 100%;
	height: 100%;
	background: url(../img/sp/top/main_top.png) right bottom / cover no-repeat;
}
@media screen and (min-width: 1421px) {
	main#sitetop .main_visual .slide1 {
		background-size: cover;
	}
}
main#sitetop .message {
	position: absolute;
	top: 70px;
	left: 20px;
	display: block;
	z-index: 100;
	color: #000;
	text-shadow: 1px 1px 5px #333;
}
main#sitetop .msg01 {
	width: 100%;
	margin-bottom: 0.5em;
	font-size: 2.4rem;
	font-family: "Times New Roman", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", "メイリオ", Meiryo, serif;
	line-height: 1.2;
	text-align: left;
	letter-spacing: .01em;
	text-shadow: 1px 1px 5px rgba(255, 255, 255, 0.667);
}
main#sitetop .msg01 strong {
	font-weight: normal;
	color: #02a4e3;
	animation: strongtext1 2000ms ease 5000ms alternate forwards;
}
main#sitetop .msg01 strong:nth-of-type(2) {
	animation: strongtext2 2000ms ease 6000ms alternate forwards;
}
@keyframes strongtext1 {
	0% {text-shadow: 0 0 0 #ffffff00;}
	50% {text-shadow: 0px 0px 5px #ffffff;}
	100% {text-shadow: 0 0 0 #ffffff00;}
}
@keyframes strongtext2 {
	0% {text-shadow: 0 0 0 rgba(255, 255, 255, 0);}
	50% {text-shadow: 0px 0px 5px #ffffff;}
	100% {text-shadow: 0 0 0 rgba(255, 255, 255, 0);}
}
main#sitetop .msg01 span.small {
	font-size: 80%;
}
main#sitetop .msg02 {
	width: 100%;
	font-size: 1.2rem;
	font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', '游ゴシック  Medium', meiryo, 'ＭＳ Ｐゴシック', sans-serif;
	line-height: 1.2;
	text-align: left;
	letter-spacing: .0;
	text-shadow: 1px 1px 5px rgba(255, 255, 255, 0.667);
}

main#sitetop .sec01 h2,
main#sitetop .sec02 h2,
main#sitetop .sec03 h2 {
	font-family: "Times New Roman", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", "メイリオ", Meiryo, serif;
}
main#sitetop .sec01 {
	position: absolute;
	bottom: 20px;
	left: 20px;
	width: calc(100% - 40px);
	margin: 0 auto 0;
	padding: 20px 20px 10px;
	background: rgba(0, 0, 0, 0.533);
	border-radius: 5px;
	text-align: center;
	color: #fff;
	z-index: 10;
	animation: anime1 5000ms ease 0ms infinite forwards;
}
@keyframes anime1 {
	0% {
		background: rgba(0, 0, 0, 0.533);
	}
	50% {
		background: rgba(0, 0, 0, 0.667);
	}
	100% {
		background: rgba(0, 0, 0, 0.533);
	}
}
main#sitetop .sec01 h2 {
	color: #fff;
	text-shadow: 2px 2px 2px rgba(34, 34, 34, 0.667);
}
main#sitetop .sec01 h2::before,
main#sitetop .sec01 h2::after {
	display: none;
}
main#sitetop .sec01 h2 {
	margin: 0 0 15px;
	padding: 0;
	color: #fff;
	font-size: 1.8rem;
	text-shadow: 2px 2px 2px rgba(34, 34, 34, 0.667);
}
main#sitetop .sec01 .btn03 {
	margin: 0;
}
main#sitetop .sec01 .ul06 {
	margin-bottom: 10px;
}
main#sitetop .sec01 .ul06 li {
	text-align: left;
	font-size: 1.1rem;
}
main#sitetop .sec01 .ul06 li::before {
	content: "";
	position: absolute;
	left: 0;
	display: inline-block;
	width: 12px;
	height: 100%;
	background: url(../img/common/li_item_01.png) center center / contain no-repeat;
}


main#sitetop .sec02 {
	margin-top: 5px;
	margin-bottom: 30px;
	background: url(../img/sp/common/bg01.png) left top / 98px auto no-repeat;
	border-top: 1px solid #cfdb0f;
}
main#sitetop .sec03 {
	margin-top: 5px;
	margin-bottom: 30px;
	padding-bottom: 120px;
	background: url(../img/sp/common/bg04.png) right bottom / 98px auto no-repeat;
	border-bottom: 1px solid #cfdb0f;
}
main#sitetop .sec02 .inner,
main#sitetop .sec03 .inner {
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
	z-index: 10;
}

main#sitetop .sec02 h2,
main#sitetop .sec03 h2 {
	position: relative;
	font-size: 1.6rem;
	text-align: center;
	line-height: 1.5;
}
main#sitetop .sec02 h2::before,
main#sitetop .sec03 h2::before,
main#sitetop .sec02 h2::after,
main#sitetop .sec03 h2::after {
	display: none;
}
main#sitetop .sec02 h2 > span,
main#sitetop .sec03 h2 > span {
	position: relative;
	display: inline-block;
	padding: 2px .75em;
}

main#sitetop .sec02 .column,
main#sitetop .sec03 .column {
	position: relative;
	overflow: hidden;
	text-align: right;
}
main#sitetop .sec02 .column::before,
main#sitetop .sec03 .column::before {
	content: "";
	position: absolute;
	top: -60px;
	display: block;
	width: calc(100% - 30px);
	height: 220px;
	background: #cfdb0f;
	transform: skewY(-15deg);
	z-index: -1;
}
main#sitetop .sec02 .column h3,
main#sitetop .sec03 .column h3 {
	position: relative;
	margin: 5px 0 0.5em;
	padding-right: 30px;
	overflow: hidden;
	color: #222;
	text-align: center;
}
main#sitetop .sec02 .column h3::before,
main#sitetop .sec03 .column h3::before {
	display: none;
}
main#sitetop .sec02 .column p,
main#sitetop .sec03 .column p {
	width: calc(100% - 70px);
	margin: 0 0 15px 20px;
	padding: 10px;
	background: #f5f5cf;
	font-size: 1.1rem;
	text-align: left;
}
main#sitetop .sec02 .column img,
main#sitetop .sec03 .column img {
	width: calc(100% - 30px);
	height: auto;
}
main#sitetop .sec02 .column .btn03,
main#sitetop .sec03 .column .btn03 {
	position: absolute;
	bottom: 0;
	right: 0;
	margin: 0;
}



main#sitetop .sec04 {
	margin-bottom: 40px;
	padding: 40px 0 0;
	background: url(../img/common/bg02.png) center top repeat;
}
main#sitetop .sec04 .inner {
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
	z-index: 10;
}
main .col2l2 {
}
main .col2l2 > .column {
	width: 100%;
	margin: 0 0 30px 0;
}
main .col2l2 > .column.gray {
	padding: 15px;
	background: #fafafa;
}

main#sitetop .sec04 .inner {
	padding-left: 0;
	padding-right: 0;
}
main#sitetop .sec04 h2::before {
	display: none;
}
main#sitetop .sec04 h2::after {
	display: none;
}
main#sitetop .sec04 .information {
	width: calc(100% - 40px);
	margin: 0 20px 30px;
	padding: 5px 20px 15px;
	background: #fff;
}
main#sitetop .sec04 .information h2 {
	margin: 0;
	text-align: center;
	color: #a5ae05;
}
main#sitetop .sec04 .information > div {
	height: 150px;
	overflow-y: auto;
}
main#sitetop .sec04 .information dl::after {
	content: "";
	display: block;
	clear: both;
}
main#sitetop .sec04 .information dl dt {
	float: left;
	width: 100px;
	padding: 0.2em 0;
	line-height: 1.5;
	font-size: 1.0rem;
}
main#sitetop .sec04 .information dl dd {
	padding: 0.2em 0;
	padding-left: 100px;
	font-size: 1.0rem;
	line-height: 1.5;
	border-bottom: 1px dashed #ddd;
}

main .col2l2 > .column:nth-of-type(2) {
	width: 100%;
	padding: 20px;
	background: #fff;
}
main#sitetop .sec04 .sec04-2 a {
	position: relative;
	display: block;
	padding-top: 25px;
}
main#sitetop .sec04 .sec04-2 a:hover {
	text-decoration: none;
}
main#sitetop .sec04 .sec04-2 h2 {
	position: absolute;
	top: 0;
	left: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 190px;
	height: 40px;
	padding: 0 15px 0 0;
	font-size: 1.8rem;
	line-height: 1;
	z-index: 1;
}
main#sitetop .sec04 .sec04-2 h2::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #cfdb0f;
	transform: skewX(-40deg);
}
main#sitetop .sec04 .sec04-2 h2::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	right: 20px;
	width: 30px;
	height: 100%;
	background: url(../img/common/ico_arrow_r.png) center center no-repeat;
}
main#sitetop .sec04 .sec04-2 h2 span {
	position: relative;
	z-index: 2;
}




/* module - table-wrap */
.table-wrap {
	margin: 0 0 20px;
	padding: 0 0 3px;
	overflow-x: auto;
	font-size: 1.2rem;
}
.table-wrap::-webkit-scrollbar {
	height: 10px;
}
.table-wrap::-webkit-scrollbar-thumb{
	background: rgba(38, 15, 129, 0.75);
	border-radius: 5px;
}
.table-wrap::-webkit-scrollbar-track-piece {
	background: #efefef;
}
.table-wrap table {
	width: auto;
	min-width: 100%;
	border-top: 1px solid #ccc;
	border-left: 1px solid #ccc;
}
.table-wrap table td {
	width: auto;
	padding: 5px;
	border-bottom: 1px solid #ccc;
	border-right: 1px solid #ccc;
}
.table-wrap table thead th,
.table-wrap table thead td {
	padding: 0.25em 0;
	width: auto;
	background: #B3D9FF80;
	white-space: nowrap;
	border-bottom: 1px solid #ccc;
	border-right: 1px solid #ccc;
}
.table-wrap table th,
.table-wrap table td {
	letter-spacing: 0;
}
.table-wrap table tbody tr:nth-of-type(even) {
	background: #f8f8f8;
}
.table-wrap table .line-break {
	white-space: normal;
	word-wrap: break-word;
}
.table-wrap.td2break tbody tr td:nth-of-type(2) {
	white-space: normal !important;
	word-wrap: break-word;
}



section.imgbox::after {
	content: "";
	display: block;
	clear: both;
}
section.imgbox > div {
	float: left;
	width: 48%;
	margin-left: 4%;
}
section.imgbox.big > div {
	width: 100%;
	margin-left: 0;
}
section.imgbox > div img {
	width: 100%;
}
section.imgbox:not(.big) > div:nth-of-type(2n+1) {
	margin-left: 0;
}
section.imgbox > div h3 {
	font-size: 1.6rem;
	letter-spacing: -0.02em;
}
section.imgbox > div figure {
	margin: 0;
	padding: 0;
}
section.imgbox > div figcaption {
	margin-top: 0.5em;
}



/* サイトマップ */
/* .sitemap */
.smap {
	margin-left: 5px;
	margin-bottom: 20px;
}
.smap ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
.smap li {
	margin: 0;
	padding-bottom: 5px;
}
.smap a {
	display: block;
	color: #000000;
	width: 100%;
	padding: 2px 10px;
	text-decoration: none;
	margin-bottom: 5px;
	margin-top: 5px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #CCCCCC;
	background-image: none;
}
.smap .nolink {
	display: block;
	color: #000000;
	width: 500px;
	padding: 2px 10px;
	text-decoration: none;
	margin-bottom: 5px;
	margin-top: 5px;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #CCCCCC;
	background-image: none;
}
.smap a:hover {
	color: #333;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #CCCCCC;
}
.smap ul ul {
	margin-left: 20px;
	padding: 0;
	list-style-type: none;
}
.smap li li a {
	display: block;
	color: #333;
	width: 280px;
	padding: 5px 10px;
	margin: 0;
	text-decoration: none;
	border-left-width: 1px;
	border-top-style: none;
	border-bottom-style: dotted;
	border-left-style: solid;
	border-left-color: #CCCCCC;
	border-bottom-width: 1px;
	border-bottom-color: #CCCCCC;
}
/* 第一階層 */
.smap > li > a {
	font-size: 110%;
	font-weight: bold;
}








