@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;
	position: relative;
}

.shippori-mincho-regular {
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	font-style: normal;
}
.shippori-mincho-medium {
	font-family: "Shippori Mincho", serif;
	font-weight: 500;
	font-style: normal;
}
.shippori-mincho-semibold {
	font-family: "Shippori Mincho", serif;
	font-weight: 600;
	font-style: normal;
}
.shippori-mincho-bold {
	font-family: "Shippori Mincho", serif;
	font-weight: 700;
	font-style: normal;
}
.shippori-mincho-extrabold {
	font-family: "Shippori Mincho", serif;
	font-weight: 800;
	font-style: normal;
}
.noto-sans-jp-<uniquifier> {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: <weight>;
	font-style: normal;
}

a { word-break: break-all; }
a:link { color: #e15614; }
a:visited { color: #e15614; }
a:hover { color: #c9cb48; }
a:active { color: #c9cb48; }

/* 背景 */
.hero-bg {
	position: fixed;
	inset: 0;
	background: url("../images/background.jpg") no-repeat;
	background-size: cover;
	background-color: #fff;
	overflow: hidden;
	z-index: -1;
}

/* 落ち葉コンテナ */
#leaves {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/* 落ち葉 */
.leaf {
    position: absolute;
    width: 40px;
    height: 40px;
    top: -50px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0.9;
}

/* 落下 */
@keyframes fall {
    0% {
        transform:
            translateX(0)
            translateY(0)
            rotate(0deg);
    }

    20% {
        transform:
            translateX(-40px)
            translateY(20vh)
            rotate(120deg);
    }

    40% {
        transform:
            translateX(50px)
            translateY(40vh)
            rotate(220deg);
    }

    60% {
        transform:
            translateX(-30px)
            translateY(60vh)
            rotate(320deg);
    }

    80% {
        transform:
            translateX(40px)
            translateY(80vh)
            rotate(420deg);
    }

    100% {
        transform:
            translateX(-20px)
            translateY(110vh)
            rotate(540deg);
    }
}

/* === コンテナ（PC/スマホ共通）=== */
.container {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	justify-content: center; 
	align-items: stretch; 
	background-color: #fff; 
	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);
	position: relative;
	min-height: 150vh; /* スクロール確認用 */
}

.sidebar, main {
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.sidebar {
	width: 230px;
	background-image: linear-gradient(
	90deg,
	hsl(30deg 95% 47%) 0%,
	hsl(32deg 92% 47%) 8%,
	hsl(35deg 89% 48%) 17%,
	hsl(38deg 85% 48%) 25%,
	hsl(40deg 82% 49%) 33%,
	hsl(43deg 79% 50%) 42%,
	hsl(46deg 76% 50%) 50%,
	hsl(48deg 72% 51%) 58%,
	hsl(51deg 69% 51%) 67%,
	hsl(53deg 66% 52%) 75%,
	hsl(56deg 63% 53%) 83%,
	hsl(59deg 59% 53%) 92%,
	hsl(61deg 56% 54%) 100%
	);
	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-family: "Shippori Mincho", serif;
	font-weight: 700;
}
.sidebar a:hover {
	background-color: white;
	color: #e15614;
	font-weight: 700;
}
.sidebar a.active {
	background-color: white;
	color: #e15614;
	font-weight: 700;
}
.sidebar a.active2 {
	background-color: white;
	color: #b30622;
	font-weight: 700;
}
.sidebar a.regist {
	background-color: #e15614;
	color: white;
	font-weight: 700;
}
.sidebar a.regist:hover {
	background-color: white;
	color: #e15614;
	font-weight: 700;
}

main {
	width: 730px;
	background: url("../images/top-bg.jpg") no-repeat;
	background-size: contain;
	background-color: #fff;
	position: relative;
}

.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(30deg 95% 47%) 0%,
		hsl(32deg 92% 47%) 8%,
		hsl(35deg 89% 48%) 17%,
		hsl(38deg 85% 48%) 25%,
		hsl(40deg 82% 49%) 33%,
		hsl(43deg 79% 50%) 42%,
		hsl(46deg 76% 50%) 50%,
		hsl(48deg 72% 51%) 58%,
		hsl(51deg 69% 51%) 67%,
		hsl(53deg 66% 52%) 75%,
		hsl(56deg 63% 53%) 83%,
		hsl(59deg 59% 53%) 92%,
		hsl(61deg 56% 54%) 100%
		);
	border-image-slice: 1;
	color: #232323;
	text-align: left;
}
.info-icon {
	display: inline-block;
	background: linear-gradient(
		90deg,
		hsl(30deg 95% 47%) 0%,
		hsl(32deg 92% 47%) 8%,
		hsl(35deg 89% 48%) 17%,
		hsl(38deg 85% 48%) 25%,
		hsl(40deg 82% 49%) 33%,
		hsl(43deg 79% 50%) 42%,
		hsl(46deg 76% 50%) 50%,
		hsl(48deg 72% 51%) 58%,
		hsl(51deg 69% 51%) 67%,
		hsl(53deg 66% 52%) 75%,
		hsl(56deg 63% 53%) 83%,
		hsl(59deg 59% 53%) 92%,
		hsl(61deg 56% 54%) 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: #e15614;
	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 {
	background: url("../images/other-bg.jpg") no-repeat;
}

.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;
	text-shadow: 
		 2px  2px 5px #c6a31e,
		 2px  0px 5px #c6a31e,
		 0px  2px 5px #c6a31e,
		 2px -2px 5px #c6a31e,
		-2px  2px 5px #c6a31e,
		-2px -2px 5px #c6a31e,
		-2px -0px 5px #c6a31e,
		-0px -2px 5px #c6a31e;
	background: linear-gradient(
		90deg,
		hsl(30deg 95% 47%) 0%,
		hsl(32deg 92% 47%) 8%,
		hsl(35deg 89% 48%) 17%,
		hsl(38deg 85% 48%) 25%,
		hsl(40deg 82% 49%) 33%,
		hsl(43deg 79% 50%) 42%,
		hsl(46deg 76% 50%) 50%,
		hsl(48deg 72% 51%) 58%,
		hsl(51deg 69% 51%) 67%,
		hsl(53deg 66% 52%) 75%,
		hsl(56deg 63% 53%) 83%,
		hsl(59deg 59% 53%) 92%,
		hsl(61deg 56% 54%) 100%
		);
}
#text_area h2 {
	margin-top: 1.5em;
	padding: .5em .75em;
	background: rgb(247, 203, 158);
	background: linear-gradient(90deg, rgba(249, 221, 193) 0%, rgba(241, 242, 209,0) 100%);
	border-left: 6px solid #e15614;
	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: #e15614;
}
#underconstruction h5 {
	margin-top: 0px;
	font-size: 15px;
	font-weight: 400;
	color: #e15614;
}
h3 {
	padding: .1em 0;
	border-bottom: solid 3px #c8e4ff;
	position: relative;
}
h3:after {
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 3px #e15614;
	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: 170px;
	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 #e15614;
	color: #083388
}
table.outline td {
	padding: 10px;
	border-bottom: solid 1px #e15614;
}
.btn, a.btn, button.btn {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	display: inline-block;
	padding: 1rem 4rem;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	color: #212529;
	border-radius: 0.5rem;
	margin: 10px;
	width: 80%;
}
a.btn-border1 {
	color: #fff;
	border: 2px solid #ff0000;
	border-radius: 0;
	background: #ff0000;
	padding: 1rem 4rem;
}
a.btn-border1:hover {
	color: #ff0000;
	background: #fff;
	padding: 1rem 4rem;
}
a.btn-border2 {
	color: #fff;
	border: 2px solid #0000ff;
	border-radius: 0;
	background: #0000ff;
	padding: 1rem 4rem;
}
a.btn-border2:hover {
	color: #0000ff;
	background: #fff;
	padding: 1rem 4rem;
}
a.btn-border3 {
	color: #fff;
	border: 2px solid #ff87b1;
	border-radius: 0;
	background: #ff87b1;
	padding: 1rem 4rem;
}
a.btn-border3:hover {
	color: #ff87b1;
	background: #fff;
	padding: 1rem 4rem;
}
a.btn-border4 {
	color: #fff;
	border: 2px solid #de9c00;
	border-radius: 0;
	background: #de9c00;
	padding: 1rem 4rem;
}
a.btn-border4:hover {
	color: #de9c00;
	background: #fff;
	padding: 1rem 4rem;
}
.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;
}
.office_1st-line {
	font-weight: bold;
	color: #e15614;
}
#footer_office a:hover {
	color: #c9cb48;
}
#footer_office a:active {
	color: #c9cb48;
}
#footer_copy {
	margin: 0 0 15px 0;
	font-size: .8em;
	text-align: center;
	font-family: "Helvetica", "Arial";
}

#upper-btn {
	font-size: 38px;
	color: #e15614 !important;
	text-align: right;
}
#upper-btn a {
	color: #e15614 !important;
}
html {
	scroll-behavior: smooth;
}
.go-top {
	opacity: 0.5;
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 10000;
	font-size: 1.3em;
	color: #e15614;
}
.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 { z-index: 9998; }

	.sidebar {
		position: fixed;
		top: 0;
		right: -230px; 
		width: 230px;
		bottom: 0;
		z-index: 9997;
		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;
		inset: 0;
		background: rgba(0,0,0,0.5);
		z-index: 9996;
    }
	
	#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;
	}
	.btn, a.btn, button.btn {
		padding: 1rem 1rem;
	}
	#leaves {
		display: none;
	}
}

/* 【PC/タブレット】幅が 769px 以上の場合 */
@media screen and (min-width: 769px) {
	.container { 
		flex-direction: row; 
		justify-content: center; 
	}
	main { margin-left: 0; margin-right: 0; }
}