@charset "utf-8";
/*================================================================================
	要素のスタイリング
================================================================================*/
@keyframes fade-in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
html {
	scroll-behavior: smooth;
	animation: 0.2s linear fade-in;
}
body {
	background-color: #e8fbbf;
	background-image: url(../images/bg_body.jpg);
	background-repeat: repeat-x;
	background-position: top;
	text-align: center;
	font-size: 14px;
	color: #666666;
	font-family: "Helvetica Neue", "Helvetica", "Yu Gothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Meiryo", sans-serif;
	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: normal; /* 単語の分割はデフォルトに依存 */
	line-break: strict;
}
/* IE6用の文字サイズ指定 */
* html body {
	font-size: 88%;
}
/* IE6用の文字サイズ指定 */
* html body th, * html body td {
	font-size: 100%;
}
a:link {
	color: #009354;
}
a:visited {
	color: #009354;
}
a:hover {
	color: #00ff7f;
}
em {
	color: #739922;
}
/*================================================================================
	コンテンツ全体（#container）
================================================================================*/
#container {
	margin: 0px auto 96px;
	background-color: #e8fbbf;
	text-align: left;
	width: 850px;
	/* height: 100%; */
	position: relative;
	min-height: calc(100vh - 96px);
	display: flex;
	flex-direction: column;
}
/*================================================================================
	ヘッダ（#header）
================================================================================*/
#header {
	padding-right: 10px;
	background-color: #8ece48;
	width: 840px;
	height: 135px;
	position: relative;
	flex: 0 0 auto;
}
#header h1 {
	width: 325px;
	height: 55px;
	position: absolute;
	top: 40px;
	left: 12px;
}
#header dt {
	width: 216px;
	height: 40px;
	position: absolute;
	right: 5px;
	bottom: 0px;
}
#header dd {
	margin-top: 5px;
	font-size: 71%;
	line-height: 1.4;
	color: #ffffff;
	width: 216px;
	position: absolute;
	right: 5px;
	bottom: 45px;
}
#header p {
	width: 310px;
	height: 40px;
	position: absolute;
	right: 5px;
	bottom: 0px;
}
/*================================================================================
	コンテンツ（#content）
================================================================================*/
#content {
	background-image: url(../images/bg_content.gif);
	background-repeat: repeat-y;
	border-top: solid 5px #8ece48;
	flex: 1 0 auto;
}
/* Start clear fix */
#content::after {
	font-size: 1px;
	content: ".";
	display: block;
	height: 0px;
	clear: both;
}
#content {
	zoom: 1;
}
/* End clear fix */

/*================================================================================
	メインコンテンツ（#main）
================================================================================*/
#main {
	margin-right: 20px;
	width: 592px;
	float: right;
	display: inline;
}
#main p {
	margin: 1em 0px 0px 10px;
	line-height: 1.5;
}
#main div.lead p {
	margin-top: 20px;
}
#main h2 {
	margin-top: 35px;
	padding: 2px 0px 0px 24px;
	background-image: url(../images/bg_h2.gif);
	background-repeat: no-repeat;
	background-position: bottom;
	line-height: 24px;
	min-height: 24px;
	height: auto !important;
	height: 24px;
}
#main h2.top {
	margin-top: 20px;
}
#main h3 {
	margin-top: 20px;
	padding: 0px 0px 0px 32px;
	background-image: url(../images/bg_h3.gif);
	background-repeat: no-repeat;
	background-position: left top;
	font-weight: bold;
	line-height: 20px;
	color: #009900;
}
#main dl {
	margin: 0px 0px 0px 10px;
}
#main dt {
	margin: 1em 0px 0px 0px;
	padding: 0px 0px 0px 15px;
	background-image: url(../images/icon_check.gif);
	background-repeat: no-repeat;
	background-position: left top;
	font-weight: bold;
}
#main dd {
	margin: 0.5em 0px 0px 15px;
	line-height: 1.2;
}
#main ul.note {
	margin: 0px 0px 0px 28px;
	padding-top: 0.5em;
	font-size: 86%;
	color: #333333;
}
#main ul.note li {
	margin-top: 0.5em;
	line-height: 1.2;
}
#main table {
	margin: 0px 0px 0px 10px;
}
/*================================================================================
	サイドバー（#sidebar）
================================================================================*/
#sidebar {
	width: 210px;
	float: left;
}
#sidebar .menu h2,
#sidebar-toggle {
	display: none;
}
#sidebar .menu ul {
	margin-left: 5px;
	list-style: none;
}
#sidebar .menu li {
	height: 45px;
}
/*================================================================================
	フッタ（#footer）
================================================================================*/
#footer {
	background-image: url(../images/bg_footer.gif);
	background-repeat: no-repeat;
	background-position: bottom;
	height: 156px;
	position: relative;
	flex: 0 0 auto;
}
#footer h2 {
	width: 0px;
	height: 0px;
	min-height: 0px;
	overflow: hidden;
	position: absolute;
	top: 0;
}
#footer dl {
	margin: 0px 5px;
	padding-top: 75px;
	color: #FFFFFF;
}
#footer dt {
	text-align: right;
}
#footer dd {
	margin-top: 5px;
	text-align: right;
}
#footer ul {
	margin: 0px 5px;
	list-style: none;
	color: #FFFFFF;
	width: 840px;
}
#footer li {
	text-align: right;
	font-weight: bold;
	width: 200px;
	position: absolute;
	bottom: 10px;
	right: 10px;
}
#footer li.copyright {
	font-size: 86%;
	font-weight: normal;
	text-align: left;
	width: 600px;
	left: 10px;
}
#footer li a {
	font-weight: normal;
	color: #FFFFFF;
}
/*================================================================================
	フッタナビゲーション（#nav-btn）
================================================================================*/
#nav-btn {
	position: fixed;
	bottom: 0;
	width: 100%;
	z-index: 99999;
	background-color: #fff;
	ul {
		margin: 0;
		padding: 0;
		list-style: none;
		display: flex;
	}
	.nav-btn__item {
		flex: 1;
		a {
			height: 96px;
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 8px;
			font-size: 18px;
			font-weight: bold;
			line-height: 1;
			text-decoration: none;
			transition-duration: 0.2s;
			position: relative;
			left: -2px;
		}
		a:hover {
			opacity: 0.5;
		}
		img {
			position: relative;
		}
	}
	.nav-btn__item--yoyaku {
		background-color: #52a8f9;
		a {
			color: #fff;
		}
		img {
			width: 20px;
		}
	}
	.nav-btn__item--monshin {
		/* background-color: #e5f7e0; */
		background-color: #c8f9d3;
		a {
			color: #036c3f;
		}
		img {
			top: -2px;
			width: 17px;
		}
	}
}
#open-chatbot {
	appearance: none;
	border: none;
	background-color: transparent;
	position: fixed;
	bottom: 80px;
	right: 20px;
	display: block;
	width: 160px;
	height: 160px;
	background-image: url(../images/btn_NOMOCa-AI-chat.png);
	background-size: contain;
	color: rgba(0, 0, 0, 0);
	font-size: 1px;
	&:hover {
		cursor: pointer;
	}
}
/*================================================================================
	レスポンシブ対応
================================================================================*/

@media (max-width : 849px) {
	body {
		background-color: #fff;
		background-image: none;
		text-align: left;
		font-size: 16px;
		&.nav-open {
			overflow: hidden;
			&::after {
				content: '';
				width: 100vw;
				height: 100dvh;
				background-color: rgba(0, 0, 0, 0.5);
				position: fixed;
				left: 0;
				top: 0;
			}
		}
	}
	#container {
		background-color: #fff;
		width: auto;
		min-height: calc(100vh - 60px);
		margin: 0px auto 60px;
	}
	#header {
		margin-top: 45px;
		padding: 10px;
		background-color: #fff;
		width: auto;
		height: auto;
		text-align: center;
	}
	#header h1 {
		margin: 0;
		width: auto;
		position: static;
	}
	#header dl {
		display: none;
	}
	#header p {
		margin-top: 10px;
		width: auto;
		height: auto;
		position: static;
	}
	#header h1 img, #header p img {
		max-width: 100%;
	}
	#content {
		background-image: none;
	}
	#main {
		margin: 0;
		padding: 0 15px;
		width: auto;
		float: none;
		display: block;
	}
	#main h2 {
		margin-top: 35px;
		padding: 2px 0px 0px 24px;
		background-image: url(../images/bg_h2.gif);
		background-repeat: no-repeat;
		background-position: bottom left;
		line-height: 24px;
		min-height: 24px;
		height: auto !important;
		height: 24px;
	}
	#main th {
		padding: 0.2em;
		white-space: normal;
	}
	#main td,
	#main td.time {
		padding: 0.2em;
	}
	#main ul.picture li img {
			max-width: 100%;
	}
	/* #sidebar {
		margin-top: 30px;
		width: auto;
		float: none;
	} */
	/* ハンバーガーボタン：デスクトップでは非表示 */
	#sidebar-toggle {
		display: none;
	}
	/* layout.css の h2 表示を非表示にしてボタンに切り替え */
	#sidebar {
		width: 100%;
		min-height: 45px;
		top: 0;
		left: 0;
		margin-top: 0;
		position: fixed;
		z-index: 999;
	}
	#sidebar .menu h2 {
		display: none;
	}
	/* ハンバーガートグルボタン */
	#sidebar-toggle {
		display: flex;
		align-items: center;
		flex-direction: row-reverse;
		gap: 12px;
		width: 100%;
		background-color: #009900;
		color: #fff;
		border: none;
		padding: 10px 15px;
		font-size: 16px;
		font-weight: bold;
		cursor: pointer;
		text-align: left;
		box-sizing: border-box;
	}
	#sidebar-toggle:hover {
		background-color: #007700;
	}
	.hamburger-lines {
		display: flex;
		flex-direction: column;
		gap: 8px;
		flex-shrink: 0;
		width: 32px;
	}
	.hamburger-lines span {
		display: block;
		height: 3px;
		background-color: #fff;
		border-radius: 2px;
		transition: transform 0.2s, opacity 0.2s;
	}
	/* 開いているときは × 表示 */
	#sidebar-toggle.is-open .hamburger-lines span:nth-child(1) {
		transform: translateY(11px) rotate(45deg);
	}
	#sidebar-toggle.is-open .hamburger-lines span:nth-child(2) {
		opacity: 0;
	}
	#sidebar-toggle.is-open .hamburger-lines span:nth-child(3) {
		transform: translateY(-11px) rotate(-45deg);
	}
	/* メニューリストをデフォルトで非表示 */
	#sidebar .menu ul {
		display: none;
	}
	/* 開いているときに表示 */
	#sidebar .menu ul.is-open {
		display: block;
		animation: 0.5s linear fade-in;
	}
	#sidebar .menu h2 {
		width: auto;
		height: auto;
		overflow: auto;
		position: static;
		text-align: center;
		background-color: #009900;
		color: #fff;
		padding: 8px 0;
		line-height: 1;
	}
	#sidebar .menu ul {
		margin:  0;
		border-bottom: solid 1px #7AAE30;
	}
	#sidebar .menu li {
		padding: 4px 0;
		background-color: #fff;
		border-top: solid 1px #7AAE30;
		height: 40px;
		text-align: center;
	}
	#sidebar .menu li a {
		display: block;
	}
	#footer {
		margin-top: 30px;
		padding: 15px 15px 160px 15px;
		height: auto;
		background-image: none;
		background-image: linear-gradient(to bottom, #8ECE48, #6D9B22);
	}
	#footer dl {
		margin: 0px;
		padding-top: 0;
		text-align: left;
	}
	#footer dt, #footer dd {
		text-align: left;
	}
	#footer ul {
		width: auto;
	}
	#footer li {
		width: auto;
		position: static;
	}
	#footer li.copyright {
		margin-top: 15px;
		width: auto;
	}
	#nav-btn {
		.nav-btn__item {
			a {
				height: 60px;
				font-size: 16px;
			}
		}
	}
	#open-chatbot {
		width: 128px;
		height: 128px;
	}
}