@charset "utf-8";

/* === 基本リセット === */
* { box-sizing: border-box; margin: 0; padding: 0; }

body {
	font-family: "Noto Sans JP", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.75;
	color: #232323;
	/* グラデーションパターンの定義 */
	/* 画像の配色: 青 -> 紫 -> 赤 -> 黄 -> 緑 */
	background: linear-gradient(
		180deg, 
		#CCD9FF 0%,   /* 青 */
		#E0CCFF 25%,  /* 紫 */
		#FFCCE0 50%,  /* 赤みピンク */
		#FFFECC 75%,  /* 黄色 */
		#A3CCA3 100%  /* 緑 */
	);
	
	/* アニメーションを滑らかにするために、背景のサイズを拡大する */
	background-size: 100% 400%;
	
	/* アニメーションの設定 */
	/* 名前: gradientAnimation, 時間: 15秒, 速度: 一定速度, 方向: 往復, 再生: 無限ループ */
	animation: gradientAnimation 30s ease infinite;
}

/* アニメーションのキープoint設定 */
@keyframes gradientAnimation {
	0% {
		background-position: 0% 0%;
	}
	50% {
		background-position: 0% 100%;
	}
	100% {
		background-position: 0% 0%;
	}
}

a { word-break: break-all; }
a:link { color: #cf5b98; }
a:visited { color: #cf5b98; }
a:hover { color: #f6cd96; }
a:active { color: #f6cd96; }

/* === コンテナ（PC/スマホ共通）=== */
.container {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	justify-content: center; 
	align-items: stretch; 
	background-color: #f4f4f4; 
	box-shadow: -moz-box-shadow: 0px 0px 8px 1px rgba(0, 0, 0, 0.6);
	-webkit-box-shadow: 0px 0px 8px 1px rgba(0, 0, 0, 0.6);
	-ms-box-shadow: 0px 0px 8px 1px rgba(0, 0, 0, 0.6);
	box-shadow: 0px 0px 8px 1px rgba(0, 0, 0, 0.6);
}

.sidebar, main {
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.sidebar {
	width: 230px;
	background-color: #289bd7;
	color: #fff;
	font-weight: 700;
	position: relative;
	padding-top: 30px;
	z-index: 10;
}

.sidebar ul { list-style: none; }

.sidebar a {
	color: #fff;
	display: block;
	padding: 10px 5px;
	text-decoration: none;
	font-size: 1rem;
	font-weight: 700;
}
.sidebar a:hover {
	background-color: white;
	color: #289bd7;
	font-weight: 700;
}
.sidebar a.active {
	background-color: white;
	color: #289bd7;
	font-weight: 700;
}
.sidebar a.active2 {
	background-color: white;
	color: #b30622;
	font-weight: 700;
}
.sidebar a.regist {
	background-color: #289bd7;
	color: white;
	font-weight: 700;
}
.sidebar a.regist:hover {
	background-color: white;
	color: #289bd7;
	font-weight: 700;
}

main {
	width: 730px;
	background: url("../images/bg.jpg") no-repeat;
	background-size: contain;
	background-color: #fff;
}

.top-text { max-width: 730px; }

/* === ロゴ & メニューボタン === */
.logo {
	max-width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
	flex-shrink: 1;
	margin-bottom: 15px;
}

.menu-btn {
	font-size: 24px;
	cursor: pointer;
	background: none;
	border: none;
	color: #232323;
	position: fixed;
	top: 15px;
	right: 15px;
	z-index: 9998;
	display: block;
}

/* 【PC表示時のみロゴ最大幅を制限】 */
@media screen and (min-width: 769px) {
	.logo { max-width: 200px; }
	.menu-btn { display: none; }
}

#top_bottom_area {
	margin: 0px 20px 30px 20px;
	padding: 15px;
	opacity: 0.9;
}
#whatsnew h2 {
	font-weight: 700;
	line-height: 1.3;
	border-bottom: 3px solid;
	border-image: linear-gradient(
		90deg,
		hsl(211deg 64% 41%) 0%,
		hsl(218deg 61% 40%) 14%,
		hsl(228deg 52% 39%) 29%,
		hsl(267deg 39% 44%) 43%,
		hsl(309deg 38% 49%) 57%,
		hsl(344deg 70% 64%) 71%,
		hsl(28deg 69% 65%) 86%,
		hsl(85deg 46% 73%) 100%
		);
	border-image-slice: 1;
	color: #232323;
	text-align: left;
}
.info-icon {
	display: inline-block;
	background: linear-gradient(
		135deg,
		hsl(211deg 64% 41%) 0%,
		hsl(221deg 59% 40%) 14%,
		hsl(252deg 40% 43%) 29%,
		hsl(309deg 38% 49%) 43%,
		hsl(1deg 75% 69%) 57%,
		hsl(58deg 42% 65%) 71%,
		hsl(85deg 46% 73%) 86%,
		hsl(85deg 46% 73%) 100%
		);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
#whatsnew_list li {
	margin: 10px 0 0 0;
	list-style: none;
	list-style-position: inside;
	color: #232323;
	padding-left: 5.4em;
	text-indent: -5.3em;
}
.whatsnew_day {
	color: #289bd7;
	font-weight: 700;
}
#whatsnew_a:link { color: #1d3152; }
#whatsnew_a:visited { color: #1d3152; }
#whatsnew_a:hover { color: #fff; }
#whatsnew_a:active { color: #fff; }

main.other {
}

.other-text { max-width: 100%; }

#text_area {
	margin: 20px 20px 0px 20px;
	padding: 25px 20px 20px 20px;
	color: #232323;
	background: rgba(255,255,255,0.95);
}
#text_area p {
	margin: 1em 0;
}
#text_header h1 {
	margin-top: -5px;
	padding: 10px 0;
	text-align: center;
	line-height: 1.3;
	color: #fff;
	font-weight: 700;
	background: linear-gradient(
		90deg,
		hsl(211deg 64% 41%) 0%,
		hsl(218deg 61% 40%) 14%,
		hsl(228deg 52% 39%) 29%,
		hsl(267deg 39% 44%) 43%,
		hsl(309deg 38% 49%) 57%,
		hsl(344deg 70% 64%) 71%,
		hsl(28deg 69% 65%) 86%,
		hsl(85deg 46% 73%) 100%
		);
}
#text_area h2 {
	padding: .5em .75em;
	background: rgb(200, 228, 255);
	background: linear-gradient(90deg, rgba(200, 228, 255,1) 0%, rgba(255,255,255,0) 100%);
	border-left: 6px solid #289bd7;
	font-weight: 700;
	font-size: x-large;
}
#underconstruction {
	margin: 170px 0px;
	text-align: center;
}
#underconstruction h2 {
	padding: 0;
	border: 0;
	background: none;
	background-color: none;
	font-size: x-large;
	font-size: 27px;
	color: #289bd7;
}
#underconstruction h5 {
	margin-top: 0px;
	font-size: 15px;
	font-weight: 400;
	color: #289bd7;
}
h3 {
	padding: .1em 0;
	border-bottom: solid 3px #c8e4ff;
	position: relative;
}
h3:after {
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 3px #289bd7;
	bottom: -3px;
	width: 20%;
}
h4 {
	padding: .25em 0 .25em .5em;
	border-left: 6px solid #1d3152;
}
.kome {
	list-style: none;
	padding-left: 0.1em;
	margin-left: 1em;
}
.kome li {
	text-indent: -1.2em;
}
table.standard {
	width: 100%;
	background-color: #d4eed1;
	text-align: left;
	border-collapse: collapse;
	border-spacing: 0;
	margin-top: 30px;
	margin-left: auto;
	margin-right: auto;
}
table.standard td, table.standard th {
	border: 1px solid #bcbcbc;
	padding: 10px;
}
table.standard td:nth-child(even) {
	background: #fff;
}
table.standard thead {
	background: #ff87b1;
}
table.standard thead th {
	font-weight: bold;
	color: #fff;
	text-align: center;
}
.greeting_header {
	display: flex;
	align-items: flex-end;
	font-weight: 700;
	text-align: right;
}
.chairman_text {
	margin: 0 0 0 auto;
}
.chairman_pic_area {
	margin-left: 15px;
}
.chairman_pic {
	max-width: 190px;
	height: auto;
	margin: 0 0 0 auto;
}
table.outline {
	width: 100%;
	text-align: left;
	border-collapse: collapse;
	border-spacing: 0;
}
table.outline th {
	padding: 10px;
	border-bottom: solid 4px #289bd7;
	color: #083388
}
table.outline td {
	padding: 10px;
	border-bottom: solid 1px #289bd7;
}

.footer {
	grid-area: footer;
	padding: 20px;
	background: #fff;
}
#footer_office {
	display: -webkit-flex;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	text-align: left;
	margin: 1vw;
	margin-left: auto;
	margin-right: auto;
}
#footer_office-left, #footer_office-right {
	padding: 0 15px;
	flex: 1;
	font-size: .85em;
}
.office_1st-line {
	font-weight: bold;
	color: #289bd7;
}
#footer_office a:hover {
	color: #289bd7;
}
#footer_office a:active {
	color: #f6cd96;
}
#footer_copy {
	margin: 0 0 15px 0;
	font-size: .8em;
	text-align: center;
	font-family: "Helvetica", "Arial";
}

#upper-btn {
	font-size: 38px;
	color: #289bd7 !important;
	text-align: right;
}
#upper-btn a {
	color: #289bd7 !important;
}
html {
	scroll-behavior: smooth;
}
.go-top {
	opacity: 0.5;
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 10000;
	font-size: 1.3em;
	color: #289bd7;
}
.go-top:hover{
	opacity: 1;
}

/* === レスポンシブ対応（スマホ表示時）=== */
@media screen and (max-width: 768px) {
	.container { 
		flex-direction: row-reverse; 
		padding-left: 0;
		width: 100%;
	}

	main { 
		width: 100%; 
		margin: 0 auto; 
		box-shadow: none;
	}

	.logo {
		max-height: 40px;
		margin-right: auto;
	}

	.menu-btn { display: block; visibility: visible; height: auto; opacity: 1; }

	.sidebar {
		position: fixed;
		top: 0;
		right: -230px; 
		width: 230px;
		bottom: 0;
		z-index: 10;
		transition: right 0.3s ease-in-out;
		display: flex;
		flex-direction: column;
	}

	body.menu-open .sidebar { right: 0; }
  
	/* オーバーレイは全画面を確実に覆うように設定 */
	body.menu-open::after {
		content: '';
		position: fixed;
		top: 0;
		left: 0; 
		width: 100vw; /* 横幅をビューポート幅に固定 */
		height: 100vh;
		background: rgba(0,0,0,0.5); 
		z-index: 5;
	}
	
	#footer_office {
			justify-content: left;
			text-align: left;
		}
		#footer_office-left, #footer_office-right {
			flex: none;
		}
		#footer_office-right {
			margin-top: 0;
		}
		#footer_copy {
			text-align: left;
			padding: 0 2rem 1rem 2rem;
		}
		.greeting_header {
			text-align: left;
		}
	}
}

/* 【PC/タブレット】幅が 769px 以上の場合 */
@media screen and (min-width: 769px) {
	.container { 
		flex-direction: row; 
		justify-content: center; 
	}
	main { margin-left: 0; margin-right: 0; }
}