@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&display=swap');

body {
    margin: 0;
    padding: 0;
    background-color: #f5f7f4;
    color: #333;
    font-family: "M PLUS Rounded 1c", sans-serif;
    -webkit-text-size-adjust: 100%;
    position: relative;
    letter-spacing: 0.08em;
	font-size: 16px;
	z-index: 1;
}
a {
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}
h2,h3,h4,h5 {
	font-weight: 500;
}
h2 {
	font-size: 1.8em;
}

header,
main,
footer {
	width: 100%;
}

header {
	background-color: #fff;
	background-size: 16px 2px;
	background-image: linear-gradient(to right,#234027 8px, transparent 8px);
	background-position: left bottom;
	background-repeat: repeat-x;
}
#header_logo {
	display: flex;
	align-items: flex-end;
	margin: 0;
	padding: 16px 0 0 0;
	font-weight: 500;
	font-size: 30px;
}
#header_logo img {
	width: auto;
	height: 36px;
	margin-right: 8px;
}
#header_logo a {
	color: #333;
	display: block;
	position: relative;
}
#header_logo a:hover {
	color: #333;
	text-decoration: none;
}
#header_logo a::after {
	content: "";
	display: block;
	width: 16px;
	height: 20px;
	background-image: url("../img/home.svg");
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	right: -24px;
	bottom: 9px;
}

#menu {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0;
	padding: 24px 0;
	z-index: 99;
}
#menu li {
	margin: 0 24px;
	list-style: none;
	position: relative;
}
#menu li a {
	display: block;
	color: #234027;
	font-weight: 500;
	font-size: 20px;
}
#menu li ul.sub_menu {
	visibility: hidden;
	opacity: 0;
	width: 195px;
	position: absolute;
	left: calc( 50% - 97.5px );
	top: 30px;
	background-color: #fff;
	padding: 0;
	margin: 0;
	border-radius: 0 0 16px 16px;
	z-index: 98;
	transition: all 0.3s;
}
#menu li ul li {
	padding: 8px 0;
	margin: 0;
}
#menu li ul li a {
	display: flex;
	justify-content: center;
	font-size: 16px;
}
#menu li ul.active_sub {
	visibility: visible;
	opacity: 1;
}


footer {
	padding-top: 48px;
	background-color: #234027;
	color: #fff;
}
footer a {
	color: #fff;
}
footer .inner {
	display: flex;
	flex-wrap: wrap;
}
footer ul,
footer li {
	margin: 0;
	padding: 0;
	list-style: none;
}
#footer_l h3 {
	margin: 0;
}
#footer_r {
	display: flex;
	margin-left: 48px;
}
#footer_r ul {
	margin-right: 2.5em;
	position: relative;
}
#footer_r ul:last-of-type {
	margin-right: 0;
}
#footer_r ul::after {
	content: "";
	display: block;
	width: 2px;
	height: 100%;
	background-color: #fff;
	border-radius: 2px;
	position: absolute;
	top: 0;
	right: -1em;
}
#footer_r ul:last-of-type::after,
#footer_r ul li ul::after {
	display: none;
}
#footer_r ul li {
	margin-bottom: 0.5em;
}
#footer_r ul li::before {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 1em;
	background-image: url("../img/arrow.svg");
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	margin-right: 4px;
}
#footer_r ul li ul li {
	margin-left: 1em;
	margin-bottom: 0;
}
#footer_r ul li ul li::before {
	display: none;
}
#footer_b {
	margin-top: 48px;
	margin-bottom: 16px;
	width: 100%;
}
#footer_b ul {
	display: flex;
	justify-content: center;
}
#footer_b ul li {
}
#footer_b ul li::after {
	content: "|";
	display: inline-block;
	width: 3em;
	text-align: center;
}
#footer_b ul li:last-of-type::after {
	display: none;
}
#copy {
	color: #fff;
	background-color: #2f6b3a;
	text-align: center;
	font-size: 0.8em;
	padding: 1em;
}

#totop {
	display: none;
	position: fixed;
	text-align: center;
	bottom: 16px;
	right: 16px;
	background-color: #2f6b3a;
	color: #fff;
	width: 50px;
	height: 50px;
	border-radius: 50%;
}
#totop img {
	display: block;
	width: 30px;
	height: auto;
	margin-top: 15px;
	margin-left: auto;
	margin-right: auto;
}

.inner {
	display: block;
	width: 90%;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
}

.text-red {
	color: #d33;
}
.text-orange {
	color: #f39a2e;
}
.text-blue {
	color: #33d;
}
.text-green {
	color: #2f6b3a;
}

.align_l {
	text-align: left;
}
.align_c {
	text-align: center;
}
.align_r {
	text-align: right;
}
.float_l {
	float: left;
}
.float_r {
	float: right;
}
.clear {
	clear: both;
}

.font-s {
	font-size: 0.8em;
}
.font-m {
	font-size: 1.2em;
}
.font-l {
	font-size: 1.5em;
}
.font-xl {
	font-size: 1.8em;
}
.font-xxl {
	font-size: 2em;
}
.pc {
	display: block;
}
.sp {
	display: none;
}
a[href*="tel:"] {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}
a.blank1[target="_blank"]::after {
	content: "";
	display: inline-block;
	height: 1em;
	width: 1em;
	background-image: url("../img/icon_blank1.svg");
	background-size: contain;
	background-repeat: no-repeat;
	margin-left: 4px;
}
a.blank2[target="_blank"]::after {
	background-image: url("../img/icon_blank2.svg");
}
a.blank3[target="_blank"]::after {
	background-image: url("../img/icon_blank2.svg");
}

a:not(:has(img))[href*=".pdf"]::after {
	content: "";
	display: inline-block;
	height: 1em;
	width: 1em;
	background-image: url("../img/icon_pdf.svg");
	background-size: contain;
	background-repeat: no-repeat;
	margin-left: 4px;
}

hr {
	border: 0;
	height: 80px;
	position: relative;
}
hr::after {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background-color: #234027;
	border-radius: 2px;
	position: absolute;
	top: 50%;
	left: 0;
}

.topics_more {
	clear: both;
	display: block;
	width: 6em;
	margin-left: auto;
	margin-right: auto;
	background-color: #2f6b3a;
	color: #fff;
	text-align: center;
	border-radius: 1em;
	padding: 4px;
	position: absolute;
	bottom: 1em;
	left: calc( 50% - 3em );
}
.thumb_c,
.thumb_l {
	box-shadow: 3px 3px 0 rgba(0,0,0,0.5);
}
.thumb_c {
	display: block;
	aspect-ratio: 1 / 0.6;
	width: 180px;
	height: auto;
	object-fit: cover;
	margin-left: auto;
	margin-right: auto;
}
.thumb_l {
	aspect-ratio: 0.6 / 1;
	width: 108px;
	height: auto;
	object-fit: cover;
	float: left;
	margin-right: 1em;
	margin-bottom: 1em;
}

.alt_text::after {
	content: attr(alt);
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
}

@media screen and (max-width: 768px){
	header {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 99;
	}
	#menu_spmenu {
		position: fixed;
		top: 8px;
		right: 8px;
		cursor: pointer;
		width: 50px;
		height: 50px;
		z-index: 100;
		background-color: #2f6b3a;
		border-radius: 50%;
		transition: all .4s;
	}
	#menu_spmenu span{
		display: inline-block;
		transition: all .4s;
		position: absolute;
		left: 14px;
		height: 2px;
		border-radius: 5px;
		background: rgba(255,255,255,1) ;
		width: 45%;
	}
	#menu_spmenu span:nth-of-type(1) {
		top:14px;	
	}
	#menu_spmenu span:nth-of-type(2) {
		top:24px;
	}
	#menu_spmenu span:nth-of-type(3) {
		top:34px;
	}
	#menu_spmenu.active_sp{
		background-color: #ccc;
	}
	#menu_spmenu.active_sp span:nth-of-type(1) {
		top: 14px;
		left: 14px;
		transform: translateY(9px) rotate(-45deg);
	}
	#menu_spmenu.active_sp span:nth-of-type(2) {
		opacity: 0;
	}
	#menu_spmenu.active_sp span:nth-of-type(3){
		top: 32px;
		left: 14px;
		transform: translateY(-9px) rotate(45deg);
	}

	nav {
		visibility: hidden;
		opacity: 0;
		position: fixed;
		left: 0;
		height: 100%;
		overflow: auto;
		transition: all 0.3s;
	}
	#menu {
		visibility: hidden;
		opacity: 0;
		flex-wrap: wrap;
		background-color: #2f6b3a;
		overflow-x: scroll;
		border-radius: 0 0 16px 16px;
		width: 100%;
		transition: all 0.3s;
	}
	nav.active_sp ,
	#menu.active_sp {
		visibility: visible;
		opacity: 1;
	}
	#menu li {
		width: 100%;
		padding: 8px 0;
		position: relative;
	}
	#menu li::after {
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		border-radius: 1px;
		background-color: #fff;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	#menu li a {
		color: #fff;
	}
	.open_btn {
		display: inline-block;
		width: 1em;
		height: 1em;
		background-image: url("../img/arrow.svg");
		background-size: contain;
		background-position: center;
		background-repeat: no-repeat;
		position: absolute;
		right: 0;
		top: 0.8em;
		transition: all .2s;
	}
	.open_btn.open {
		transform: rotate( 90deg );
	}
	#menu li ul.sub_menu {
		visibility: hidden;
		opacity: 0;
		width: 100%;
		height: 0;
		position: relative;
		left: 0;
		top: 0;
		background-color: transparent;
		padding: 0;
		margin: 0;
		border-radius: 0;
	}
	#menu li ul.sub_menu li::after{
		display: none;
	}
	#menu li ul.sub_menu a {
		display: inline-block;
		color: #fff;
		margin-left: 2em;
	}
	#menu li ul.sub_menu.open {
		visibility: visible;
		opacity: 1;
		height: auto;
	}
	#menu li:last-of-type {
	}
	.menu_king {
		margin: 3em 0 !important;
	}
	.menu_king::before {
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		border-radius: 1px;
		background-color: #fff;
		position: absolute;
		top: 0;
		left: 0;
	}
	.menu_king a {
		margin: 0 24px;
	}
	.menu_other::after {
		display: none !important;
	}

	#footer_l {
		width: 100%;
		text-align: center;
	}
	#footer_b {
	}
	#footer_b ul {
		flex-wrap: wrap;
	}
	#footer_b ul li {
	}
	#footer_b ul li::after {
		width: 1em;
	}
	#footer_b ul li:last-of-type::after {
	}

	#totop {
		bottom: 8px;
		right: 8px;
	}
	
	.pc {
		display: none !important;
	}

	.sp {
		display: block;
	}
}
