@charset "UTF-8";
@import url(normalize.css);
@import url(reset.css);
@import url(hack.css);

body {font-family: "Noto Sans JP", serif; letter-spacing: 0.12em;}
@media screen and (max-width:768px) {
	body {font-family: "Noto Sans JP", serif; overflow-x: hidden;}
}

@media screen and (min-width:768px) and ( max-width:1024px) {
}

@media screen and (min-width:768px) {
	.sp {display:none !important;}
	.pc {}
}

@media screen and (max-width:768px) {
	.sp {}
	.pc {display:none !important;}
}

.Mg70Bottom {
	margin-bottom: 70px;
}

img {vertical-align: middle;}


/* アコーディオン全体のコンテナ */
.accordion-container {
	position: fixed;
	top: 10px;
	right: 10px;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	z-index: 1000;
	background: #fff;
	height: calc(100% - 20px);
	border-radius: 10px;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	padding: 10px 0;
	box-sizing: border-box;
}

@media screen and (max-width:768px) {
	.accordion-container {
		position: fixed;
		top: 10px;
		right: 10px;
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 10px;
		z-index: 1000;
		background: #fff;
		height: 70px;
		border-radius: 10px;
		box-shadow: 0 0 10px rgba(0,0,0,0.1);
		padding: 10px 0;
		box-sizing: border-box;
	}
}

/* 各メニュー項目のラッパー */
.accordion-item {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
}

/* トリガーとなるボタン */
.accordion-btn {
	background-color: #fff;
	color: #000;
	width: 60px;
	height: 45px;
	border: none;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 2;
	transition: all 0.4s ease;
}

.accordion-container.mode-focus .accordion-btn:not(.active) {
    opacity: 0;
    pointer-events: none;
}

.accordion-btn_line {
	border-top: 1px solid #DDDDDD;
	border-bottom: 1px solid #DDDDDD;
}

.accordion-btn_line.is-inactive {
	display: none;
}

.accordion-btn .icon {
	font-size: 7pt;
}

.accordion-btn .icon::after {
	content: "日本語";
}

.accordion-btn.active .icon::after {
	content: "閉じる";
}

.accordion-btn:hover {
	background-color: #fff;
}

/* 開いたときのアクティブスタイル */
.accordion-btn.active {
	background-color: #fff;
	border-top: none;
	border-bottom: none;
}

/* 中身のコンテンツエリア */
.accordion-content {
	background-color: #fff;
	height: 100%;
	width: 0;
	display: flex;
	align-items: center;
	transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1), padding 0.4s;
	padding: 0; 
	white-space: nowrap;
}

/* コンテンツが開いた状態 */
.accordion-content.active {
	width: calc(100vw - 90px);
    padding-left: 20px;
}

/* コンテンツ内のテキスト */
.accordion-text {
	opacity: 0;
	transition: opacity 0.3s ease 0.1s; /* 少し遅れて表示 */
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	display: inline-block;
}

.accordion-content.active .accordion-text {
	opacity: 1;
}

/* ハンバーガーメニューの線を描画するエリア */
.hamburger-lines {
	width: 14px;
	height: 7px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/* 3本の線共通スタイル */
.hamburger-lines span {
	display: block;
	width: 100%;
	height: 1px;
	background-color: #000;
	border-radius: 2px;
	transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
	transform-origin: center;
}

.hamburger-lines .hiraku {
	width: 100%;
	text-align: center;
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 7pt;
}

.accordion-btn.active .hamburger-lines .hiraku {
	display: none;
}

.hamburger-lines .tojiru {
	width: 100%;
	text-align: center;
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 7pt;
	display: none;
}

.accordion-btn.active .hamburger-lines .tojiru {
	display: block;
}

/* --- アニメーション（開いた時に✕になる） --- */

/* 1本目を斜めに */
.accordion-btn.active .hamburger-lines span:nth-child(1) {
	transform: translateY(3px) rotate(45deg);
}

/* 2本目を消す */
.accordion-btn.active .hamburger-lines span:nth-child(2) {
	opacity: 0;
	transform: scale(0);
}

/* 3本目を逆斜めに */
.accordion-btn.active .hamburger-lines span:nth-child(3) {
	transform: translateY(-3px) rotate(-45deg);
}


header {
	width: 70px;
	height: 100%;
	height: 100vh;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 1000;
}

.header_area {
	width: 100%;
	height: 100%;
	padding: 10px;
	box-sizing: border-box;
	position: relative;
}

@media screen and (max-width:768px) {
	.header_area {
		width: 100%;
		height: 100%;
		padding: 10px;
		box-sizing: border-box;
		position: relative;
		display: none;
	}
}

.header_box {
	width: 100%;
	height: 100%;
	background: #fff;
	border-radius: 7px;
	padding: 60px 0 0 0;
	box-sizing: border-box;
}

/*------------------------ドロワーメニュー------------------------*/

.nav_BOX {
	width: 100%;
	height: calc(100vh - 30px);
	border-radius: 7px;
	box-sizing: border-box;
	background: #fff;
	position: absolute;
	top: 50%;
}

.nav_BOX2 {
	width: 100%;
	border-radius: 7px;
	box-sizing: border-box;
	background: #fff;
	display: none;
}

.active .nav_BOX2 {
	display: block;
}

.nav_BOX_in {
	width: 100%;
	height: auto;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.nav_BOX_in2 {
	width: 100%;
	height: auto;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateY(-50%) translateX(-50%);
}

.nav_inbox1 {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.nav_inbox1 .title {
	width: 100%;
	text-align: center;
	color: #0E7411;
	font-size: 2em;
	font-weight: 300;
	margin-bottom: 20px;
}

@media screen and (max-width:768px) {
	.nav_inbox1 .title {
		width: 100%;
		text-align: center;
		color: #0E7411;
		font-size: 2em;
		font-weight: 300;
		margin-bottom: 20px;
	}
}

.nav_inbox1 .text {
	width: 100%;
	text-align: center;
	color: #0E7411;
	margin-bottom: 80px;
	font-size: 0.8em;
}

@media screen and (max-width:768px) {
	.nav_inbox1 .text {
		width: 100%;
		text-align: center;
		color: #0E7411;
		margin-bottom: 40px;
		font-size: 0.8em;
	}
}

.nav_inbox2 {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.nav_inbox2 .inbox {
	width: 50%;
	padding: 0 100px;
	box-sizing: border-box;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox {
		width: 100%;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.nav_inbox2 .inbox .link_list {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	padding-top: 20px;
	margin-bottom: 20px;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox .link_list {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		padding-top: 35px;
		margin-bottom: 0;
		border-top: 1px solid #0C7410;
	}
}

.nav_inbox2 .inbox .link_list li {
	width: 48%;
	margin-right: 4%;
	border-bottom: 1px solid #0C7410;
	position: relative;
	margin-bottom: 35px;
}

.nav_inbox2 .inbox .link_list li:nth-child(2n) {
	margin-right: 0;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox .link_list li {
		width: 100%;
		margin-right: 0;
		border-bottom: 1px solid #0C7410;
		position: relative;
		margin-bottom: 35px;
	}

	.nav_inbox2 .inbox .link_list li:nth-child(2n) {
		margin-right: 0;
	}
}

.nav_inbox2 .inbox .link_list li a {
	width: 100%;
	display: inline-block;
	padding: 0 40px 30px 0;
	box-sizing: border-box;
	text-align: left;
	color: #0C7410;
	font-size: 0.9em;
}

.nav_inbox2 .inbox .link_list li a::after {
	content: "→";
	position: absolute;
	right: 0;
	top: 0;
}

.nav_inbox2 .inbox2 {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox2 {
		width: 100%;
		display: flex;
		align-items: baseline;
		flex-wrap: wrap;
	}
}

.nav_inbox2 .inbox2 .link_list2 {
	width: 50%;
	text-align: left;
	padding: 0 0 0 20px;
	box-sizing: border-box;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox2 .link_list2 {
		width: 100%;
		text-align: left;
		padding: 0 0 0 20px;
		box-sizing: border-box;
	}
}

.nav_inbox2 .inbox2 .link_list2 li {
	width: 100%;
	position: relative;
	margin-bottom: 10px;
}

.nav_inbox2 .inbox2 .link_list2 li:nth-child(2) {
	margin-bottom: 0;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox2 .link_list2 li {
		width: 100%;
		position: relative;
		margin-bottom: 20px;
	}

	.nav_inbox2 .inbox2 .link_list2 li:nth-child(2) {
		margin-bottom: 40px;
	}
}

.nav_inbox2 .inbox2 .link_list2 li::before {
	content: "・";
	color: #0C7410;
	position: absolute;
	left: -20px;
	top: 50%;
	transform: translateY(-50%);
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox2 .link_list2 li::before {
		content: "・";
		color: #0C7410;
		position: absolute;
		left: -30px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 2em;
	}
}

.nav_inbox2 .inbox2 .link_list2 li a {
	width: 100%;
	text-align: left;
	color: #0C7410;
	font-size: 0.9em;
}

.nav_inbox2 .inbox2 .icon_box {
	width: 50%;
	text-align: right;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox2 .icon_box {
		width: 100%;
		text-align: center;
		display: flex;
		justify-content: center;
		margin-bottom: 50px;
		margin-top: 10px;
	}
}

.nav_inbox2 .inbox2 .icon_box a {
	margin-left: 20px;
	display: inline-block;
}

.nav_inbox2 .inbox2 .icon_box a img {
	width: 20px;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox2 .icon_box a {
		margin-left: 10px;
	}
	
	.nav_inbox2 .inbox2 .icon_box a img {
		width: 50px;
		padding: 0 10px;
	}
}

.nav_inbox2 .in_box {
	width: 50%;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .in_box {
		width: 100%;
	}
}

.nav_inbox2 .in_box .imgbox {
	width: 100%;
	margin-bottom: 70px;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .in_box .imgbox {
		width: 100%;
		margin-bottom: 20px;
		display: none;
	}
}

.nav_inbox2 .in_box .imgbox img {
	width: 100%;
}

.nav_inbox2 .in_box .textbox {
	width: 100%;
	text-align: left;
	font-size: 0.9em;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .in_box .textbox {
		width: 100%;
		font-size: 0.9em;
		padding: 0 30px;
		box-sizing: border-box;
		display: flex;
		justify-content: center;
	}
}

.nav_inbox2 .in_box .textbox a {
	margin-right: 10px;
	font-weight: 0.8em;
}

.nav_inbox2 .in_box .textbox a span {
	color: #0C7410;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .in_box .textbox a {
		margin-right: 10px;
		font-weight: 0.8em;
		position: relative;
		display: inline-block;
		padding: 0 0 0 25px;
	}
	
	.nav_inbox2 .in_box .textbox a span {
		color: #0C7410;
		font-size: 2em;
		position: absolute;
		left: 0;
		top: -10px;
		display: inline-block;
	}
}

.nav_inbox3 {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}

.nav_inbox3 .in_box {
	width: 100%;
	box-sizing: border-box;
}

.nav_inbox3 .in_box .imgbox {
	width: 100%;
	margin-bottom: 70px;
}

.nav_inbox3 .in_box .imgbox img {
	width: 100%;
}

.nav_inbox3 .in_box .textbox {
	width: 100%;
	text-align: left;
}

.nav_inbox3 .in_box .textbox a {
	margin-right: 15px;
	font-size: 0.8em;
}

.nav_inbox3 .in_box .textbox a span {
	color: #0C7410;
}

@media screen and (max-width:768px) {
	.nav_inbox2 .inbox {
		width: 100%;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.nav_end {
	width: 100%;
	padding: 0 0 0 110px;
	box-sizing: border-box;
	text-align: left;
	font-size: 0.8em;
	color: #0E7411;
	position: absolute;
    bottom: 35px;
	fomt-si
	0.7em;
}

@media screen and (max-width:768px) {
	.nav_end {
		width: auto;
		padding: 0 0 0 110px;
		position: absolute;
		bottom: 35px;
		left: 0;
		font-size: 0.8em;
		color: #0E7411;
		display: none;
	}
}

.nav_text {
	width: 100%;
	text-align: center;
	font-size: 0.5em;
	font-weight: 500;
	position: absolute;
	top: 14px;
	letter-spacing: 0.02em;
}

.openNav .nav_text {
	display: none;
}

.nav_text2 {
	display: none;
	width: 100%;
	font-size: 0.5em;
	font-weight: 500;
	position: absolute;
	top: 14px;
	left: 0;
	letter-spacing: 0.02em;
}
/*------------------------ドロワーメニュー------------------------*/

.yoyaku_link {
	width: 60px;
	line-height: 1em;
	transition: opacity 0.3s ease, visibility 0.3s; /* ふわっと消すためのアニメーション */
    opacity: 1;
    visibility: visible;
	position: relative;
	z-index: 1000;
}

.menu-is-open .yoyaku_link {
	opacity: 0;
    visibility: hidden;
}

.yoyaku_link a {
	width: 100%;
	display: inline-block;
	background: #0C7410;
	padding: 15px 0;
	box-sizing: border-box;
	font-size: 0.7em;
	color: #fff;
}

.side_text {
	width: 100%;
	height: calc(100% - 310px);
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	writing-mode: vertical-rl;
	letter-spacing: 0.6em;
	font-size: 0.8em;
	transition: opacity 0.3s ease, visibility 0.3s; /* ふわっと消すためのアニメーション */
    opacity: 1;
    visibility: visible;
}

.menu-is-open .side_text {
	opacity: 0;
    visibility: hidden;
}

.side_x {
	position: absolute;
	bottom: 30px;
	right: 21px;
	width: auto;
	text-align: center;
	transition: opacity 0.3s ease, visibility 0.3s; /* ふわっと消すためのアニメーション */
    opacity: 1;
    visibility: visible;
}

.menu-is-open .side_x {
	opacity: 0;
    visibility: hidden;
}

.side_instagram {
	position: absolute;
	bottom: 70px;
	right: 20px;
	width: auto;
	text-align: center;
	transition: opacity 0.3s ease, visibility 0.3s; /* ふわっと消すためのアニメーション */
    opacity: 1;
    visibility: visible;
}

.menu-is-open .side_instagram {
	opacity: 0;
    visibility: hidden;
}

.menu-is-open .side_gengo {
	opacity: 0;
    visibility: hidden;
}



.top_section {
	width: 100%;
	height: 100%;
	height: 100vh;
	background: url("../images/bg.png") center center no-repeat;
	background-size: cover;
	margin-bottom: 150px;
	position: relative;
}

@media screen and (max-width:768px) {
	.top_section {
		width: 100%;
		height: 100%;
		height: 100vh;
		background: url("../images/bg_sp.png") center center no-repeat;
		background-size: cover;
		margin-bottom: 150px;
		position: relative;
	}
}

.base_logo {
	width: auto;
	position: absolute;
	top: 15px;
	left: 100px;
}

@media screen and (max-width:768px) {
	.base_logo {
		width: auto;
		position: absolute;
		top: 15px;
		left: 20px;
	}
}

.base_logo_temp {
	width: auto;
	position: absolute;
	top: 15px;
	left: 0;
}

@media screen and (max-width:768px) {
	.base_logo_temp {
		width: auto;
		position: absolute;
		top: 15px;
		left: 0;
	}
}

.top_logo {
	width: auto;
	position: absolute;
	left: 100px;
	bottom: 80px;
	text-align: left;
}

@media screen and (max-width:768px) {
	.top_logo {
		width: auto;
		position: absolute;
		left: 20px;
		bottom: 20px;
		text-align: left;
	}
}

.top_logo h1 {
	font-size: 4.7em;
	line-height: 1.4em;
	font-weight: 200;
	color: #fff;
	text-shadow: 0 0 5px #999;
	margin-bottom: 25px;
}

.top_logo p {
	font-size: 1.6em;
	line-height: 1.4em;
	font-weight: 200;
	color: #fff;
	text-shadow: 0 0 5px #999;
}

@media screen and (max-width:768px) {
	.top_logo h1 {
		font-size: 3.6em;
		line-height: 1.4em;
		font-weight: 100;
		color: #fff;
		text-shadow: 0 0 5px #999;
		margin-bottom: 25px;
	}

	.top_logo p {
		font-size: 1.2em;
		line-height: 1.4em;
		font-weight: 100;
		color: #fff;
		text-shadow: 0 0 5px #999;
	}
}

.top_section2 {
	width: 100%;
	position: relative;
}

.section_area {
	width: 100%;
	max-width: 1400px;
	height: auto;
	min-height: 10px;
	margin: 0 auto;
	position: relative;
}

.section_box {
	width: 100%;
	position: relative;
}

.section_area2 {
	width: 100%;
	max-width: 1400px;
	height: auto;
	min-height: 10px;
	margin: 0 auto;
}

.section_box2 {
	width: 100%;
}

.top_box {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 350px;
	position: relative;
}

@media screen and (max-width:768px) {
	.top_box {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		margin-bottom: 250px;
		position: relative;
	}
}

.top_box2 {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	margin-bottom: 200px;
	position: relative;
}

.top_title {
	width: 100%;
	text-align: center;
	color: #0C7410;
	font-size: 3em;
	font-weight: 300;
	margin-bottom: 60px;
	line-height: 2em;
}

.top_text {
	width: 100%;
	text-align: center;
	color: #0C7410;
	line-height: 2.4em;
}

@media screen and (max-width:768px) {
	.top_text {
		width: 100%;
		text-align: center;
		color: #0C7410;
		line-height: 2.4em;
		margin-bottom: 100px;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.top_photo1 {
	width: auto;
	position: absolute;
	left: 0;
	top: -60px;
	z-index: -1;
}

.top_photo2 {
	width: auto;
	position: absolute;
	right: 0;
	top: 150px;
	z-index: -1;
}

.top_photo3 {
	width: auto;
	position: absolute;
	right: 230px;
	top: 340px;
	z-index: -1;
}

@media screen and (max-width:768px) {
	.top_photo1 {
		width: 100%;
		position: relative;
		left: 20px;
		top: -20px;
		z-index: -1;
		margin-right: 0;
	}

	.top_photo2 {
		width: 45%;
		position: relative;
		right: 0;
		top: 0;
		z-index: -1;
	}

	.top_photo3 {
		margin-top: 0;
		width: 45%;
		text-align: left;
		margin-left: auto;
		position: relative;
		right: 0;
		top: 0;
		z-index: -1;
	}
}


.top_left {
	width: 40%;
	text-align: left;
	position: sticky;
	top: 20px;
}

@media screen and (max-width:768px) {
	.top_left {
		width: 100%;
		text-align: left;
		padding: 0 30px;
		box-sizing: border-box;
		margin-bottom: 50px;
	}
}

.top_left .title {
	width: 100%;
	color: #0C7410;
	font-size: 3em;
	font-weight: 200;
	margin-bottom: 35px;
}

.top_left .text {
	width: 100%;
	color: #0C7410;
	margin-bottom: 100px;
	line-height: 2.2em;
}

@media screen and (max-width:768px) {
	.top_left .text {
		width: 100%;
		color: #0C7410;
		margin-bottom: 30px;
	}
}

.top_left2 {
	width: 100%;
	text-align: center;
	margin-bottom: 100px;
}

@media screen and (max-width:768px) {
	.top_left2 {
		width: 100%;
		text-align: left;
		padding: 0 30px;
		box-sizing: border-box;
		margin-bottom: 100px;
	}
}

.top_left2 .title {
	width: 100%;
	color: #0C7410;
	font-size: 2.2em;
	font-weight: 200;
	margin-bottom: 35px;
}

.top_left2 .text {
	width: 100%;
	color: #0C7410;
	margin-bottom: 100px;
	line-height: 2.4em;
}

@media screen and (max-width:768px) {
	.top_left2 .text {
		width: 100%;
		color: #0C7410;
		margin-bottom: 30px;
		line-height: 2.4em;
	}
}


.top_link {
	width: 100%;
}

.top_link a {
	width: auto;
	display: inline-block;
	padding: 17px 100px 17px 25px;
	box-sizing: border-box;
	border: 1px solid #0C7410;
	position: relative;
	border-radius: 6px;
	color: #0C7410;
	font-size: 0.9em;
}

@media screen and (max-width:768px) {
	.top_link a {
		width: 100%;
		display: inline-block;
		padding: 17px 100px 17px 25px;
		box-sizing: border-box;
		border: 1px solid #0C7410;
		position: relative;
		border-radius: 6px;
		color: #0C7410;
		font-size: 0.9em;
	}
}

.top_link a::after {
	content: "→";
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	background: #0C7410;
	color: #fff;
	padding: 0 10px 0 20px;
	border-radius: 4px;
}

.top_right {
	width: 60%;
}

@media screen and (max-width:768px) {
	.top_right {
		width: 100%;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.top_right2 {
	width: 100%;
}

@media screen and (max-width:768px) {
	.top_right2 {
		width: 100%;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.top_spot_title {
	width: 100%;
	text-align: center;
	margin-bottom: 70px;
}

.top_spot_title h2 {
	width: 100%;
	color: #0C7410;
	font-size: 3em;
	font-weight: 200;
}

@media screen and (max-width:768px) {
	.top_spot_title {
		width: 100%;
		text-align: center;
		margin-bottom: 70px;
		padding: 0 30px;
		box-sizing: border-box;
	}

	.top_spot_title h2 {
		width: 100%;
		color: #0C7410;
		font-size: 2.0em;
		font-weight: 200;
	}
}

.top_section3 {
	width: 100%;
	height: 100vh;
	position: relative;
	background: #F5F8EF;
}

.top_bg {
	width: 50%;
	height: 100%;
	background: url("../images/bg2.png") center center no-repeat;
	background-size: cover;
	position: absolute;
	right: 0;
	top: 0;
}

.top_bg_2 {
	width: 50%;
	height: 100%;
	background: url("../images/bg2_2.png") center center no-repeat;
	background-size: cover;
	position: absolute;
	right: 0;
	top: 0;
}

.top_bg_3 {
	width: 50%;
	height: 100%;
	background: url("../images/bg2_3.png") center center no-repeat;
	background-size: cover;
	position: absolute;
	right: 0;
	top: 0;
}

@media screen and (max-width:768px) {
	.top_bg {
		width: 50%;
		height: 100%;
		background: url("../images/bg2.png") center center no-repeat;
		background-size: cover;
		position: absolute;
		right: 0;
		top: 0;
		display: none;
	}
	
	.top_bg_2 {
		width: 50%;
		height: 100%;
		background: url("../images/bg2_2.png") center center no-repeat;
		background-size: cover;
		position: absolute;
		right: 0;
		top: 0;
		display: none;
	}
	
	.top_bg_3 {
		width: 50%;
		height: 100%;
		background: url("../images/bg2_3.png") center center no-repeat;
		background-size: cover;
		position: absolute;
		right: 0;
		top: 0;
		display: none;
	}
}


.top_spot_left {
	width: 50%;
	padding: 130px 0;
	box-sizing: border-box;
	text-align: left;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}

@media screen and (max-width:768px) {
	.top_spot_left {
		width: 100%;
		padding: 50px 30px;
		box-sizing: border-box;
		text-align: left;
		position: relative;
		top: 0;
	}
}

.top_spot_left .subtitle {
	width: 100%;
	margin-bottom: 20px;
	color: #0C7410;
	font-size: 0.8em;
	font-weight: 300;
	letter-spacing: 0.01em;
	position: relative;
	padding: 0 0 0 30px;
	box-sizing: border-box;
}

.top_spot_left .subtitle::before {
	content: "";
	width: 20px;
	height: 1px;
	background: #0C7410;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.top_spot_left .title {
	width: 100%;
	font-size: 2.6em;
	font-weight: 200;
	color: #0C7410;
	margin-bottom: 35px;
}

.top_spot_left .text {
	width: 100%;
	color: #0C7410;
	line-height: 2.4em;
	margin-bottom: 40px;
}

.top_spot_left .photo {
	width: 100%;
	margin-top: 55px;
}

@media screen and (max-width:768px) {
	.top_spot_left .photo img {
		width: 100%;
	}
}

.top_section4 {
	width: 100%;
	position: relative;
	padding: 100px 0 30px 0;
	background: #fff;
}

@media screen and (max-width:768px) {
	.top_section4 {
		width: 100%;
		position: relative;
		padding: 100px 0 30px 0;
		background: #fff;
	}
}

.top_spot_list_all {
	width: 100%;
}

.top_spot_list {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

@media screen and (max-width:768px) {
	.top_spot_list_all {
		width: 100%;
		overflow-x: scroll;
		padding: 0 30px;
		box-sizing: border-box;
	}
	.top_spot_list {
		width: 1200px;
		display: flex;
		flex-wrap: wrap;
	}
}

.top_spot_list ul {
	width: 18.4%;
	margin-right: 2%;
	margin-bottom: 50px;
	text-align: left;
}

.top_spot_list ul:nth-child(5n) {
	margin-right: 0;
}

.top_spot_list ul .img {
	width: 100%;
	margin-bottom: 20px;
}

.top_spot_list ul .img img {
	width: 100%;
}

.top_spot_list ul .title {
	width: 100%;
	margin-bottom: 20px;
	color: #0C7410;
	font-size: 1em;
	font-weight: 400;
}

.top_spot_list ul .text {
	width: 100%;
	margin-bottom: 35px;
	font-size: 0.8em;
	font-weight: 400;
}

.top_spot_list ul .link {
	width: 100%;
	text-align: right;
}

.top_spot_list ul .link a {
	width: auto;
	display: inline-block;
	padding: 0 70px 0 0;
	box-sizing: border-box;
	position: relative;
	color: #0C7410;
	font-size: 0.8em;
}

.top_spot_list ul .link a::after {
	content: "→";
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	background: #0C7410;
	color: #fff;
	padding: 0 10px 0 20px;
	border-radius: 4px;
}

.top_section5 {
	width: 100%;
	position: relative;
	background: url("../images/news1.png") top center no-repeat;
	background-size: cover;
}

@media screen and (max-width:768px) {
	.top_section5 {
		width: 100%;
		position: relative;
		background: url("../images/news1.png") top center no-repeat;
		background-size: cover;
		border-radius: 10px;
	}
}

.top_news_mtitle {
	width: 100%;
	text-align: center;
}

.top_news_mtitle h2 {
	font-size: 2.6em;
	font-weight: 300;
	letter-spacing: 0.3em;
	color: #fff;
	font-family: "Noto Serif JP", serif;
	padding: 350px 0;
}

.top_section6 {
	width: 100%;
	background-size: cover;
	padding: 150px 0;
}

@media screen and (max-width:768px) {
	.top_section6 {
		width: 100%;
		background-size: cover;
		padding: 150px 30px;
		box-sizing: border-box;
	}
}

.top_news_box {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.top_news_left {
	width: 40%;
	text-align: left;
}

@media screen and (max-width:768px) {
	.top_news_left {
		width: 100%;
		text-align: left;
		margin-bottom: 100px;
	}
}

.top_news_left .title {
    width: 100%;
    font-size: 2.6em;
    font-weight: 200;
    color: #0C7410;
    margin-bottom: 35px;
}

@media screen and (max-width:768px) {
	.top_news_left .title {
		width: 100%;
		font-size: 2.2em;
		font-weight: 200;
		color: #0C7410;
		margin-bottom: 35px;
	}
}

.top_news_left .text {
    width: 100%;
    color: #0C7410;
    line-height: 2.4em;
    margin-bottom: 100px;
}

@media screen and (max-width:768px) {
	.top_news_left .text {
		width: 100%;
		color: #0C7410;
		line-height: 2.4em;
		margin-bottom: 30px;
	}
}

.top_news_right {
	width: 60%;
}

@media screen and (max-width:768px) {
	.top_news_right {
		width: 100%;
	}
}

.top_news_right ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	border-top: 1px solid #DDDDDD;
	padding: 20px 0;
}

.top_news_right ul:last-child {
	border-bottom: 1px solid #DDDDDD;
}

.top_news_right ul .timebox {
	width: 16%;
	text-align: left;
}

@media screen and (max-width:768px) {
	.top_news_right ul .timebox {
		width: 100%;
		text-align: left;
		display: flex;
		flex-wrap: wrap;
	}
}

.top_news_right ul .timebox .time {
	width: 100%;
	font-size: 0.8em;
	font-weight: 400;
	margin-bottom: 5px;
}

.top_news_right ul .timebox .cat {
	width: auto;
	font-size: 0.7em;
	font-weight: 400;
	color: #0E7411;
	background: #F6F8EF;
	display: inline-block;
	letter-spacing: 0.02em;
	padding: 2px 10px;
	box-sizing: border-box;
	border-radius: 7px;
}

@media screen and (max-width:768px) {
	.top_news_right ul .timebox .time {
		width: auto;
		font-size: 0.9em;
		font-weight: 200;
		margin-right: 15px;
	}

	.top_news_right ul .timebox .cat {
		width: auto;
		font-size: 0.8em;
		font-weight: 200;
		color: #0E7411;
		background: #F6F8EF;
		display: inline-block;
		padding: 1px 10px;
		box-sizing: border-box;
		border-radius: 5px;
	}
}

.top_news_right ul .textbox {
	width: 84%;
	text-align: left;
	padding: 0 50px 0 0;
	box-sizing: border-box;
	position: relative;
}

.top_news_right ul .textbox::after {
	content: "→";
	position: absolute;
	right: 0;
	color: #0E7411;
}

@media screen and (max-width:768px) {
	.top_news_right ul .textbox {
		width: 100%;
		text-align: left;
		padding: 15px 0 0 0;
		box-sizing: border-box;
		position: relative;
	}

	.top_news_right ul .textbox::after {
		content: "→";
		position: absolute;
		top: -25px;
		right: 0;
		color: #0E7411;
	}
}

.top_news_right ul .textbox a {
	color: #0E7411;
}

.footer {
	width: 100%;
	background-size: cover;
	padding: 80px 0;
	background: #F6F8EF;
}

.footer .inbox {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.footer .inbox .footer_left {
	width: 50%;
	padding: 0 50px 0 20px;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
}

@media screen and (max-width:768px) {
	.footer .inbox .footer_left {
		width: 50%;
		padding: 0 50px 0 20px;
		box-sizing: border-box;
		display: none;
		flex-wrap: wrap;
	}
}

.footer .inbox .footer_left .footer_manu {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 30px;
}

.footer .inbox .footer_left .footer_manu li {
	width: 48%;
	margin-right: 4%;
	text-align: left;
	border-bottom: 1px solid #0E7411;
	box-sizing: border-box;
	padding: 20px 0 30px 0;
	position: relative;
}

.footer .inbox .footer_left .footer_manu li:nth-child(2n) {
	margin-right: 0;
}

.footer .inbox .footer_left .footer_manu li:nth-child(3) {
	margin-top: 20px;
}

.footer .inbox .footer_left .footer_manu li:nth-child(4) {
	margin-top: 20px;
}

.footer .inbox .footer_left .footer_manu li a {
	color: #0E7411;
	font-size: 0.9em;
}

.footer .inbox .footer_left .footer_manu li a::after {
	content: "→";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

.footer .inbox .footer_left .footer_submanu {
	width: 50%;
	display: flex;
	flex-wrap: wrap;
	text-align: left;
}

.footer .inbox .footer_left .footer_submanu li {
	width: 100%;
	font-size: 0.9em;
	margin-bottom: 15px;
}

.footer .inbox .footer_left .footer_submanu li:last-child {
	margin-bottom: 0;
}

.footer .inbox .footer_left .footer_submanu li a {
	width: 100%;
	display: inline-block;
	padding: 0 0 0 25px;
	color: #0E7411;
	position: relative;
}

.footer .inbox .footer_left .footer_submanu li a::after {
	content: "・";
	font-size: 1.4em;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.footer .inbox .footer_left .footer_icon {
	width: 50%;
	text-align: right;
	box-sizing: border-box;
	padding: 30px 0 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.footer .inbox .footer_left .footer_icon a {
	margin-left: 15px;
}

.footer_icon2 {
	width: 100%;
	text-align: center;
	box-sizing: border-box;
	padding: 30px 0 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.footer_icon2 a {
	margin-left: 15px;
}

.footer .inbox .footer_right {
	width: 50%;
	padding: 0 50px 0 20px;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	text-align: center;
}

@media screen and (max-width:768px) {
	.footer .inbox .footer_right {
		width: 100%;
		padding: 0 0 0 0;
		box-sizing: border-box;
		display: flex;
		flex-wrap: wrap;
		text-align: center;
	}
}

.footer .inbox .footer_right .footer_text {
	width: 100%;
	font-size: 0.7em;
	font-weight: 400;
	margin-bottom: 30px;
	color: #0E7411;
}

.footer .inbox .footer_right .footer_text span {
	width: 100%;
	display: inline-block;
	font-size: 2.6em;
	font-weight: 400;
	padding-top: 10px;
	color: #0E7411;
	margin-bottom: 15px;
}

.footer .inbox .footer_right .footer_text2 {
	width: 100%;
	font-size: 0.9em;
}

.footer .inbox .footer_right .footer_text3 {
	width: 100%;
	font-size: 0.7em;
	line-height: 2.4em;
}

@media screen and (max-width:768px) {
	.footer .inbox .footer_right .footer_text3 {
		width: 100%;
		font-size: 0.7em;
		margin-bottom: 60px;
		line-height: 2.4em;
	}
	
	.footer .inbox .footer_right .footer_icon {
		text-align: center;
		width: 100%;
	}
}

footer {
	width: 100%;
	text-align: center;
	padding: 25px 0;
	box-sizing: border-box;
}

footer p {
	width: 100%;
	text-align: center;
	color: #0E7411;
	font-size: 0.7em;
}


/*---内部---*/

.temp_section {
	width: 100%;
	height: auto;
	background: #F6F8EF;
	margin-bottom: 90px;
	position: relative;
}

.temp_section_w {
	width: 100%;
	height: auto;
	position: relative;
}

@media screen and (max-width:768px) {
	.temp_section {
		width: 100%;
		height: auto;
		background: #F6F8EF;
		margin-bottom: 60px;
		position: relative;
		padding: 0 30px;
		box-sizing: border-box;
	}

	.temp_section_w {
		width: 100%;
		height: auto;
		position: relative;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.temp_header {
	width: 100%;
	padding: 120px 0 70px 0;
	box-sizing: border-box;
	position: relative;
	display: flex;
	flex-wrap: wrap;
}

.temp_header_w {
	width: 100%;
	padding: 120px 0 0 0;
	box-sizing: border-box;
	position: relative;
	display: flex;
	flex-wrap: wrap;
}

.pankuzu {
	width: 100%;
	text-align: left;
	font-size: 0.8em;
	color: #999999;
	margin-bottom: 15px;
}

.temp_subtext {
	width: 100%;
}

@media screen and (max-width:768px) {
	.temp_subtext {
		width: 100%;
		text-align: left;
	}
}

.temp_subtext_company {
	width: 100%;
	text-align: left;
	margin-bottom: 50px;
	padding-top: 20px;
	line-height: 2.4em;
}

@media screen and (max-width:768px) {
	.temp_subtext_company {
		width: 100%;
		text-align: left;
		margin-bottom: 50px;
		padding-top: 20px;
		line-height: 2.4em;
	}
}

.temp_title {
	width: 100%;
	text-align: left;
	font-size: 3em;
	font-weight: 200;
	color: #0C7410;
	line-height: 1.2em;
	margin-bottom: 50px;
}

@media screen and (max-width:768px) {
	.temp_title {
		width: 100%;
		text-align: left;
		font-size: 2.6em;
		font-weight: 200;
		color: #0C7410;
		line-height: 1.2em;
		margin-bottom: 50px;
	}
}

.temp_text {
	width: 100%;
	text-align: left;
	color: #0C7410;
	line-height: 2.4em;
	margin-bottom: 50px;
}

.temp_link {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.temp_link li {
	width: auto;
	margin-right: 10px;
	text-align: left;
}


.temp_link li a {
	width: auto;
	display: inline-block;
	padding: 12px 70px 12px 17px;
	box-sizing: border-box;
	border: 1px solid #0C7410;
	position: relative;
	border-radius: 6px;
	color: #0C7410;
	background: #fff;
	font-size: 0.9em;
}

.temp_link li a::after {
	content: "∨";
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	background: #0C7410;
	color: #fff;
	padding: 3px 10px 3px 10px;
	border-radius: 4px;
	text-align: center;
	font-size: 0.7em;
}

.temp_link li a:hover {
	color: #fff;
	background: #0C7410;
}


.temp_section2 {
	width: 100%;
	position: relative;
	padding: 0 0 150px 0;
}

.temp_section3 {
	width: 100%;
	position: relative;
}

@media screen and (max-width:768px) {
	.temp_section2 {
		width: 100%;
		position: relative;
		padding: 0 30px 80px 30px;
		box-sizing: border-box;
	}

	.temp_section3 {
		width: 100%;
		position: relative;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.temp_bg {
	width: 55%;
	height: 100%;
	background: url("../images/bg2.png") center center no-repeat;
	background-size: cover;
	position: absolute;
	right: 0;
	top: 0;
}

@media screen and (max-width:768px) {
	.temp_bg {
		width: 100%;
		height: 320px;
		background: url("../images/bg2.png") center center no-repeat;
		background-size: cover;
		position: relative;
		margin-bottom: 50px;
	}
}


.temp_spot_left {
	width: 45%;
	padding: 20px 0 130px 0;
	box-sizing: border-box;
	text-align: left;
}

@media screen and (max-width:768px) {
	.temp_spot_left {
		width: 100%;
		padding: 20px 0 50px 0;
		box-sizing: border-box;
		text-align: left;
	}
}

.temp_spot_left .subtitle {
	width: 100%;
	margin-bottom: 20px;
	color: #0C7410;
	font-weight: 100;
	position: relative;
	padding: 0 0 0 30px;
	box-sizing: border-box;
}

.temp_spot_left .subtitle::before {
	content: "";
	width: 20px;
	height: 1px;
	background: #0C7410;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.temp_spot_left .title {
	width: 100%;
	font-size: 2.2em;
	font-weight: 200;
	color: #0C7410;
	margin-bottom: 35px;
}

.temp_spot_left .text {
	width: 100%;
	color: #0C7410;
	line-height: 2.4em;
	margin-bottom: 40px;
}

.temp_spot_left .photo {
	width: 100%;
	margin-top: 55px;
}

.temp_spot {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.temp_spot_bg {
	width: 100%;
	height: auto;
	min-height: 520px;
	background-size: cover;
	margin-bottom: 50px;
}

@media screen and (max-width:768px) {
	.temp_spot_bg {
		width: 100%;
		height: auto;
		min-height: 320px;
		background-size: cover;
		margin-bottom: 50px;
	}
}

.temp_spot_text {
	width: 100%;
	text-align: left;
	margin-bottom: 70px;
	line-height: 2.4em;
}

.temp_spot_box {
	width: 100%;
	padding: 100px 170px;
	box-sizing: border-box;
	background: #F6F8EF;
	margin-bottom: 100px;
	border-radius: 10px;
}

@media screen and (max-width:768px) {
	.temp_spot_box {
		width: 100%;
		padding: 50px 30px;
		box-sizing: border-box;
		background: #F6F8EF;
		margin-bottom: 100px;
		border-radius: 10px;
	}
}

.googlemap_link {
	width: auto;
	background: #0E7411;
	color: #fff;
	font-size: 0.8em;
	display: inline-block;
	margin-left: 20px;
	padding: 7px 20px;
	border-radius: 5px;
}

.temp_spot_box ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	text-align: left;
	border-top: 1px solid #DDDDDD;
	padding: 30px 0;
}

.temp_spot_box ul:last-child {
	border-bottom: 1px solid #DDDDDD;
}

.temp_spot_box ul .title {
	width: 15%;
}

.temp_spot_box ul .text {
	width: 85%;
}

@media screen and (max-width:768px) {
	.temp_spot_box ul .title {
		width: 100%;
		font-weight: 500;
	}

	.temp_spot_box ul .text {
		width: 100%;
	}
}

.temp_spot_main_title {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 70px;
}

.temp_spot_main_title h3 {
	width: 60%;
	font-size: 2.6em;
	font-weight: 200;
	text-align: left;
	color: #0C7410;
}

@media screen and (max-width:768px) {
	.temp_spot_main_title h3 {
		width: 100%;
		font-size: 2.2em;
		font-weight: 200;
		text-align: left;
		color: #0C7410;
		margin-bottom: 20px;
	}
}

.spot_link {
	width: 40%;
	text-align: right;
}

@media screen and (max-width:768px) {
	.spot_link {
		width: 100%;
		text-align: right;
	}
}

.spot_link a {
	width: auto;
	display: inline-block;
	padding: 17px 100px 17px 25px;
	box-sizing: border-box;
	border: 1px solid #0C7410;
	position: relative;
	border-radius: 6px;
	color: #0C7410;
}

.spot_link a::after {
	content: "→";
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	background: #0C7410;
	color: #fff;
	padding: 0 10px 0 20px;
	border-radius: 4px;
}

.temp_section4 {
	width: 100%;
	position: relative;
	background: #F6F8EF;
}

@media screen and (max-width:768px) {
	.temp_section4 {
		width: 100%;
		position: relative;
		background: #F6F8EF;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.temp_company {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	padding: 120px 100px;
	box-sizing: border-box;
}

@media screen and (max-width:768px) {
	.temp_company {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		padding: 120px 0;
		box-sizing: border-box;
	}
}

.company_left {
	width: 50%;
}

.company_right {
	width: 50%;
	text-align: left;
}

@media screen and (max-width:768px) {
	.company_left {
		width: 100%;
		margin-bottom: 50px;
	}

	.company_right {
		width: 100%;
		text-align: left;
	}
}

.company_right h3 {
	width: 100%;
	color: #0C7410;
	font-weight: 200;
	font-size: 2.2em;
	line-height: 2em;
	position: relative;
	margin-bottom: 50px;
}

.company_right h3::after {
	content: "";
	width: 55%;
	height: 1px;
	background: #0C7410;
	position: absolute;
	bottom: 25px;
	right: 0;
}


@media screen and (max-width:768px) {
	.company_right h3 {
		width: 100%;
		color: #0C7410;
		font-weight: 200;
		font-size: 2.2em;
		position: relative;
		margin-bottom: 50px;
	}

	.company_right h3::after {
		content: "";
		width: 100%;
		height: 1px;
		background: #0C7410;
		position: absolute;
		bottom: -10px;
		right: 0;
	}
}

.company_right p {
	width: 100%;
	line-height: 2.4em;
}

.temp_section5 {
	width: 100%;
	position: relative;
}

@media screen and (max-width:768px) {
	.temp_section5 {
		width: 100%;
		position: relative;
		padding: 0 30px;
		box-sizing: border-box;
	}
}

.company_title {
	width: 100%;
	color: #0C7410;
	text-align: left;
	font-weight: 200;
	font-size: 2.2em;
	position: relative;
	margin-bottom: 50px;
}

.company_list {
	width: 100%;
	padding: 0 50px;
	box-sizing: border-box;
	margin-bottom: 50px;
}

@media screen and (max-width:768px) {
	.company_list {
		width: 100%;
		padding: 0 0;
		box-sizing: border-box;
		margin-bottom: 50px;
	}
}

.company_list ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	padding: 30px 0;
	box-sizing: border-box;
	border-top: 1px solid #DDDDDD;
}

.company_list ul:last-child {
	border-bottom: 1px solid #DDDDDD;
}

.company_list ul .title {
	width: 10%;
	text-align: left;
}

.company_list ul .text {
	width: 90%;
	text-align: left;
}

.company_pdf {
	width: 100%;
	padding: 0 50px;
	box-sizing: border-box;
	text-align: left;
}

.company_pdf a {
	width: auto;
	margin-right: 5px;
	display: inline-block;
	border: 1px solid #0E7411;
	box-sizing: border-box;
	padding: 15px 80px 15px 15px;
	position: relative;
	color: #0E7411;
	border-radius: 5px;
}

.company_pdf a::after {
	content: "";
	background: url("../images/pdf.svg") center center no-repeat;
	width: 20px;
	height: 19px;
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
}

.company_textbox {
	width: 100%;
	text-align: left;
}

.company_textbox p {
	width: 100%;
	margin-bottom: 30px;
}

.company_textbox .list_text {
	width: 100%;
	padding: 0 0 0 25px;
	box-sizing: border-box;
}

.company_textbox .list_text li {
	width: 100%;
	position: relative;
	margin-bottom: 10px;
	
}

.company_textbox .list_text li::before {
	content: "・";
	position: absolute;
	left: -25px;
	top: -7px;
	color: #0C7410;
	font-size: 1.6em;
}

.temp_info {
	width: 100%;
	padding: 0 150px;
	box-sizing: border-box;
	margin-bottom: 70px;
}

@media screen and (max-width:768px) {
	.temp_info {
		width: 100%;
		padding: 0 0;
		box-sizing: border-box;
		margin-bottom: 70px;
	}
}

.temp_info ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	border-top: 1px solid #DDDDDD;
	padding: 20px 0;
}

.temp_info ul:last-child {
	border-bottom: 1px solid #DDDDDD;
}

.temp_info ul .timebox {
	width: 16%;
	text-align: left;
}

.temp_info ul .timebox .time {
	width: 100%;
	font-size: 0.9em;
	font-weight: 200;
}

.temp_info ul .timebox .cat {
	width: auto;
	font-size: 0.8em;
	font-weight: 200;
	color: #0E7411;
	background: #F6F8EF;
	display: inline-block;
	padding: 1px 10px;
	box-sizing: border-box;
	border-radius: 5px;
}

@media screen and (max-width:768px) {
	.temp_info ul .timebox {
		width: 100%;
		text-align: left;
		display: flex;
	}
	
	.temp_info ul .timebox .time {
		width: auto;
		font-size: 0.9em;
		font-weight: 200;
		margin-right: 15px;
	}

	.temp_info ul .timebox .cat {
		width: auto;
		font-size: 0.8em;
		font-weight: 200;
		color: #0E7411;
		background: #F6F8EF;
		display: inline-block;
		padding: 1px 10px;
		box-sizing: border-box;
		border-radius: 5px;
	}
}


.temp_info ul .textbox {
	width: 84%;
	text-align: left;
	padding: 0 50px 0 0;
	box-sizing: border-box;
	position: relative;
}

.temp_info ul .textbox::after {
	content: "→";
	position: absolute;
	right: 0;
	color: #0E7411;
}

@media screen and (max-width:768px) {
	.temp_info ul .textbox {
		width: 100%;
		text-align: left;
		padding: 10px 50px 0 0;
		box-sizing: border-box;
		position: relative;
	}

	.temp_info ul .textbox::after {
		content: "→";
		position: absolute;
		top: -20px;
		right: 0;
		color: #0E7411;
	}
}

.temp_info ul .textbox a {
	color: #0E7411;
}

.temp_info_link {
	width: 100%;
	text-align: center;
	margin-bottom: 100px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

.temp_info_link a {
	width: auto;
	margin: 0 10px;
	color: #0E7411;
}

.temp_info_link .return {
	width: auto;
	display: inline-block;
	border: 1px solid #0E7411;
	padding: 0 15px;
	border-radius: 5px;
}


.temp_info_link .next {
	width: auto;
	display: inline-block;
	border: 1px solid #0E7411;
	padding: 0 15px;
	border-radius: 5px;
}

.temp_info_page {
	width: 100%;
	padding: 0 150px;
	box-sizing:border-box;
}

@media screen and (max-width:768px) {
	.temp_info_page {
		width: 100%;
		padding: 0 0;
		box-sizing:border-box;
	}
}

.temp_info_page h2 {
	width: 100%;
	text-align: left;
	color: #0E7411;
	font-size: 2.2em;
	font-weight: 300;
	line-height: 1.4em;
	border-top: 1px solid #666666;
	padding-top: 30px;
	margin-bottom: 35px;
}

@media screen and (max-width:768px) {
	.temp_info_page h2 {
		width: 100%;
		text-align: left;
		color: #0E7411;
		font-size: 2em;
		font-weight: 300;
		line-height: 1.4em;
		border-top: 1px solid #666666;
		padding-top: 30px;
		margin-bottom: 20px;
	}
}

.temp_info_page .timebox {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 50px;
}

.temp_info_page .timebox .time {
	width: auto;
	margin-right: 20px;
	color: #666666;
	font-size: 0.9em;
	font-weight: 200;
}

.temp_info_page .timebox .cat {
	width: auto;
	font-size: 0.8em;
	font-weight: 200;
	color: #0E7411;
	background: #F6F8EF;
	padding: 2px 10px;
}

.temp_info_page2 {
	width: 100%;
	text-align: left;
	line-height: 2.4em;
}

.temp_info_page2 p {
	margin-bottom: 50px;
}

.temp_info_page2 h3 {
	width: 100%;
	border-top: 1px solid #CCCCCC;
	color: #0E7411;
	font-weight: 300;
	font-size: 1.8em;
	margin-bottom: 20px;
	padding-top: 20px;
	position: relative;
}

.temp_info_page2 h3::after {
	width: 50px;
	height: 1px;
	content: "";
	background: #0E7411;
	position: absolute;
	left: 0;
	top: -1px;
}

.temp_info_page2 h4 {
	width: auto;
	display: inline-block;
	border-top: 1px dotted #AAAAAA;
	font-weight: 300;
	font-size: 1.5em;
	margin-bottom: 20px;
	padding-top: 20px;
}

.temp_info_page2 h5 {
	width: 100%;
	position: relative;
	font-weight: 300;
	font-size: 1.2em;
	padding: 0 0 0 25px;
	box-sizing: border-box;
	margin-bottom: 20px;
}

.temp_info_page2 h5::before {
	content: "";
	background: url("../images/maru.svg") center center no-repeat;
	width: 16px;
	height: 16px;
	position: absolute;
	left: 0;
	top: 11px;
}

.temp_info_page2 ul {
	width: 100%;
	margin-bottom: 50px;
}

.temp_info_page2 ul li {
	width: 100%;
	position: relative;
	padding: 0 0 0 25px;
	box-sizing: border-box;
}

.temp_info_page2 ul li::before {
	content: "・";
	font-size: 2em;
	color: #0E7411;
	position: absolute;
	left: -5px;
	top: 0;
}

.temp_info_page3 {
	width: 100%;
	border-top: 1px solid #222222;
	padding-top: 30px;
	margin-bottom: 100px;
	position: relative;
}


.temp_info_page3 .return {
	width: auto;
	padding: 0 0 0 70px;
	position: absolute;
	left: 0;
	top: 40px;
	color: #0E7411;
}

@media screen and (max-width:768px) {
	.temp_info_page3 .return {
		width: auto;
		padding: 0 0 0 70px;
		position: absolute;
		left: 0;
		top: 100px;
		color: #0E7411;
	}
}

.temp_info_page3 .return::before {
	content: "←";
	position: absolute;
	left: 0;
	top: 2px;
	border: 1px solid #0E7411;
	padding: 3px 20px;
	border-radius: 5px;
	line-height: 1em;
	color: #0E7411;
}

.temp_info_page3 .next {
	width: auto;
	padding: 0 70px 0 0;
	position: absolute;
	right: 0;
	top: 40px;
	color: #0E7411;
}

@media screen and (max-width:768px) {
	.temp_info_page3 .next {
		width: auto;
		padding: 0 70px 0 0;
		position: absolute;
		right: 0;
		top: 100px;
		color: #0E7411;
	}
}

.temp_info_page3 .next::after {
	content: "→";
	position: absolute;
	right: 0;
	top: 2px;
	border: 1px solid #0E7411;
	padding: 3px 20px;
	border-radius: 5px;
	line-height: 1em;
	color: #0E7411;
}

.temp_info_page3 .link {
	width: auto;
	display: inline-block;
	border: 1px solid #0E7411;
	padding: 10px 20px;
	border-radius: 5px;
	box-sizing: border-box;
	color: #0E7411;
}

.temp_contact_page {
	width: 100%;
	padding: 0 150px;
	box-sizing:border-box;
}

@media screen and (max-width:768px) {
	.temp_contact_page {
		width: 100%;
		padding: 0 0;
		box-sizing:border-box;
	}
}

.temp_contact_text {
	width: 100%;
	text-align: left;
	margin-bottom: 50px;
	line-height: 2.4em;
}

.temp_contact_page2 {
	width: 100%;
	padding: 0 150px;
	box-sizing:border-box;
}

@media screen and (max-width:768px) {
	.temp_contact_page2 {
		width: 100%;
		padding: 0 0;
		box-sizing:border-box;
	}
}

.temp_contact_title {
	width: 100%;
	text-align: left;
	margin-bottom: 10px;
}

.temp_contact_title span {
	color: #ff0000;
}

.temp_contact_box {
	width: 100%;
	margin-bottom: 20px;
	text-align: left;
}

.form1 {
	width: 100%;
	padding: 15px;
	box-sizing: border-box;
	border: 1px solid #999999;
	border-radius: 5px;
}

.select {
	padding: 15px;
	box-sizing: border-box;
	border: 1px solid #999999;
	border-radius: 5px;
	margin-bottom: 10px;
	
}

.temp_contact_privacy {
	width: 100%;
	text-align: center;
	margin-top: 50px;
	margin-bottom: 50px;
}

.temp_contact_bottan {
	width: 100%;
	text-align: center;
	margin-bottom: 150px;
}

.bottan {
	padding: 15px 50px;
	background: #0E7411;
	color: #fff;
	border: none;
}

.p-8 {
	padding: 0 !important;
}

/* 例: 初期状態 (非表示) */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    
    /* ★重要: transitionプロパティを必ず定義してください */
    /* ここで指定した秒数でアニメーションが実行されます */
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    
    /* transition-delayはJavaScriptが設定するため、ここでは不要です */
}

/* 例: 表示状態 (アニメーション完了) */
.fade-in.show {
    opacity: 1;
    transform: translateY(0);
}

#gallery {
    /* 画面全体に固定される想定のレイアウト */
	width: 100%;
    position: relative; 
    height: 100vh; /* 固定中の表示エリア */
    overflow: hidden; /* 子要素がはみ出さないように */
    display: flex; /* 子要素を中央に配置する場合などに利用 */
    justify-content: center;
    align-items: center;
}

.gallery-item {
    position: absolute; /* 親要素内で重ねて配置 */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* 中央寄せ */
    width: 100%; /* サイズ調整 */
    padding: 20px;
    /* GSAPが opacity と y を初期値として設定するため、CSSでの設定は不要です */
}

/* ベースのスタイリング */

.menu-is-open .main-nav {
	opacity: 0;
    visibility: hidden;
}

.main-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.main-nav li {
    position: relative; 
	border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    width: 60px;
	padding: 15px 0;
}

.main-nav .m_link {
	font-size: 0.7em;
}

.main-nav a {
    display: inline-block;
    padding: 10px;
    text-decoration: none;
    color: #333;
}

.submenu {
    position: absolute;
    top: -40px;
    left: -170px;
    width: 170px;
    z-index: 10;
    opacity: 0;
    transform: translateX(10px); 
    pointer-events: none;
    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

.submenu li {
    border-bottom: none;
	border-top: none;
	width: 160px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
	text-align: left;
	padding: 20px;
	box-sizing: border-box;
}

.submenu li div {
	width: 100%;
}

.submenu li div p {
	width: 100%;
	position: relative;
}

.submenu li div p a {
	width: 100%;
	display: inline-block;
	font-size: 0.9em;
	padding: 10px 10px 10px 30px;
	box-sizing: border-box;
}

.submenu li div p a::before {
	content: "・";
	font-size: 2em;
	position: absolute;
	left: 0;
	top: 0;
}

.submenu li div p a:hover::after {
	content: "";
	width: 60px;
	height: 1px;
	background: #000;
	position: absolute;
	left: 30px;
	bottom: 5px;
}

.submenu li div p a:hover::before {
	color: #0C7410
}

.show-submenu {
    opacity: 1; 
    transform: translateX(0);
    pointer-events: auto;
}

/*-------*/

.top_section_scroll {
	width: 100%;
	background: #F5F8EF;
	padding-bottom: 500px;
}


.scroll-trigger-wrapper {
	height: 300vh; 
	position: relative;
}

.pinned-section {
	position: relative; 
	width: 100%;
	height: 100vh;
	overflow: hidden; 
}

.pinned-section.is-fixed {
	position: fixed;
	top: 0 !important;
	left: 0;
}

.slide-section {
	position: absolute; 
	top: 0;
	left: 0;
	width: 100%;
	height: 100%; 
	opacity: 0; 
	transition: opacity 0.8s ease-in-out; 
	pointer-events: none;
	z-index: 1; 
}

.slide-section.is-active {
	opacity: 1; 
	z-index: 5; 
	pointer-events: auto; 
}

#slide-1 { }
#slide-2 { }
#slide-3 { }

.slide-content {
	box-sizing: border-box;
	max-width: 100%;
}

.custom-controls {
	position: fixed; 
	bottom: 30px;
	right: 30px;
	z-index: 10;
	text-align: right;
	display: none;
}

.counter-display {
	font-size: 28px;
	font-weight: bold;
	color: #333;
	margin-bottom: 10px;
}
.current-num {
	color: #4CAF50;
	font-size: 1.2em;
}

.navigation-buttons button {
	cursor: pointer;
	background-color: #fff;
	border: 1px solid #ccc;
	padding: 5px 15px;
	margin-left: 5px;
	transition: background-color 0.3s;
}
.navigation-buttons button:hover {
	background-color: #eee;
}

.Mg80Bottom {
	margin-bottom: 80px;
}

.Mg100Bottom {
	margin-bottom: 100px;
}

.Mg120Bottom {
	margin-bottom: 120px;
}

.Mg140Bottom {
	margin-bottom: 140px;
}

*, *::before, *::after {
  box-sizing: border-box;
}

/* ------------------------------------------- */
/* 1. スライダーの表示領域設定 (変更なし) */
/* ------------------------------------------- */
.slider-wrapper {
  width: 100%;
  overflow: hidden;
}

/* ------------------------------------------- */
/* 2. コンテナとアニメーション設定 (修正) */
/* ------------------------------------------- */
.slider-container {
  display: flex;
  width: 275%; 
  animation: scroll-loop 35s linear infinite;
}

/* ------------------------------------------- */
/* 3. アイテムのサイズ設定 (修正) */
/* ------------------------------------------- */
.slider-item {
	width:55%; 
  flex-shrink: 0;
  text-align: left;
}

.slider-item img {
  width: 100%;
  height: auto;
  display: block; 
  margin: 0; 
}

/* ------------------------------------------- */
/* 4. アニメーションの定義 (修正) */
/* ------------------------------------------- */
@keyframes scroll-loop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-55%);
  }
}

.confirm_area {
	width: 100%;
	padding: 0 150px;
	box-sizing:border-box;
}

.confirm_box {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px solid #999;
}

.confirm_box .title {
	width: 28%;
	background: #eee;
	padding: 15px 20px;
	box-sizing: border-box;
	text-align: left;
}

.confirm_box .title span {
	color: #cc0000;
}

.confirm_box .text {
	width: 72%;
	padding: 15px 20px;
	box-sizing: border-box;
	text-align: left;
}

.confirm_bottan {
	width: 100%;
	margin-top: 30px;
	margin-bottom: 100px;
}

.confirm_bottan input {
	padding: 15px 50px;
	background: #0E7411;
	color: #fff;
	border: none;
	margin: 0 10px;
}

@media screen and (max-width:768px) {
	.confirm_area {
		width: 100%;
		padding: 0 0;
		box-sizing:border-box;
	}

	.confirm_box {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		border-bottom: 1px solid #999;
	}

	.confirm_box .title {
		width: 100%;
		background: #eee;
		padding: 15px 20px;
		box-sizing: border-box;
		text-align: left;
	}

	.confirm_box .title span {
		color: #cc0000;
	}

	.confirm_box .text {
		width: 100%;
		padding: 15px 20px;
		box-sizing: border-box;
		text-align: left;
	}

	.confirm_bottan {
		width: 100%;
		margin-top: 30px;
		margin-bottom: 100px;
	}

	.confirm_bottan input {
		padding: 15px 50px;
		background: #0E7411;
		color: #fff;
		border: none;
		margin: 0 10px 10px 10px;
	}
}







