@charset "UTF-8";
@import url("https://use.typekit.net/vwf1oys.css");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
body {
	font-family : "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, "Helvetica Neue", sans-serif;
	font-weight : 400;
}

p {
	font-size : 1.5rem;
	line-height : 2;
	margin-bottom : 1em;
}

span.bold {
	font-weight : 600;
}

.alpha-num {
	font-family : din-1451-lt-pro, sans-serif;
	font-style : normal;
}

.mizole {
	font-family : mizoletbokutoh, sans-serif;
	font-style : normal;
	font-weight : 400;
}

.title_bg_circle1 {
	color : #384d00;
	font-family : mizoletbokutoh, sans-serif;
	font-size : 3.6rem;
	margin-bottom : 40px;
	padding-bottom : 24px;
	padding-top : 24px;
	position : relative;
	text-align : center;
	z-index : 1;
}
@media (max-width: 768px) {
	.title_bg_circle1 {
		font-size : 2.4rem;
		margin-bottom : 24px;
	}
}
.title_bg_circle1::after {
	background-image : url(../images/module/title_bg.svg);
	background-size : contain;
	content : "";
	display : block;
	height : 88px;
	left : 50%;
	mix-blend-mode : multiply;
	position : absolute;
	top : 50%;
	-webkit-transform : translate(-50%, -50%);
	        transform : translate(-50%, -50%);
	width : 88px;
	z-index : -1;
}
@media (max-width: 768px) {
	.title_bg_circle1::after {
		height : 60px;
		width : 60px;
	}
}

/*
===============
Global Styles
===============
*/
*, ::after, ::before {
	-webkit-box-sizing : border-box;
	        box-sizing : border-box;
	margin : 0;
	padding : 0;
}

html {
	color : #333333;
	font-size : 62.5%;
	overflow-y : scroll;
}

body {
	-webkit-animation : fadeIn 2s ease 0s 1 normal;
	        animation : fadeIn 2s ease 0s 1 normal;
	background : #f8f6f3;
	-webkit-box-direction : normal;
	-webkit-box-orient : vertical;
	color : #000000;
	display : -webkit-box;
	display : -ms-flexbox;
	display : flex;
	-ms-flex-direction : column;
	    flex-direction : column;
	-webkit-font-feature-settings : "palt" 1;
	        font-feature-settings : "palt" 1;
	font-size : 1.5rem;
	letter-spacing : 0.05em;
	line-height : 1.5;
	min-height : 100vh;
	overflow-x : hidden;
	-webkit-text-size-adjust : 100%;
}
@media (min-width: 769px) {
	body {
		min-width : 1200px;
	}
}
body.open {
	height : 100vh;
	overflow : hidden;
}
body.modal-open {
	height : 100vh;
	overflow : hidden;
}

main {
	-webkit-box-flex : 1;
	-ms-flex : 1;
	    flex : 1;
}

ul {
	list-style-type : none;
}

a {
	text-decoration : none;
}

img {
	height : auto;
	vertical-align : bottom;
	width : 100%;
}

h1, h2, h3, h4 {
	font-weight : 400;
	line-height : 1.25;
}

.padding_left_1em {
	padding-left : 1em;
}

.inline_block {
	display : inline-block;
}

.align_center {
	text-align : center;
}

.align_left {
	text-align : left;
}

.margin_rl_auto {
	margin-left : auto;
	margin-right : auto;
}

@media (max-width: 768px) {
	.sp_margin_rl_auto {
		margin-left : auto;
		margin-right : auto;
	}
}
.justify_content_center {
	-webkit-box-pack : center;
	-ms-flex-pack : center;
	justify-content : center;
}

@media (min-width: 769px) {
	a[href^="tel:"] {
		pointer-events : none;
	}
	.sp_visible {
		display : none;
	}
	.pc_align_center {
		text-align : center;
	}
}
@media (max-width: 768px) {
	.pc_visible {
		display : none;
	}
	.sp_add_pd {
		padding-left : 16px;
		padding-right : 16px;
	}
}
.flex_block {
	display : -webkit-box;
	display : -ms-flexbox;
	display : flex;
	-ms-flex-wrap : wrap;
	    flex-wrap : wrap;
}

@-webkit-keyframes fadeIn {
	0% {
		opacity : 0;
	}
	100% {
		opacity : 1;
	}
}

@keyframes fadeIn {
	0% {
		opacity : 0;
	}
	100% {
		opacity : 1;
	}
}
@media (min-width: 769px) {
	.inner {
		margin-left : auto;
		margin-right : auto;
		width : 1200px;
	}
}

.btn a {
	border-radius : 30px;
	display : block;
	font-size : 1.4rem;
	line-height : 1;
	margin-left : auto;
	margin-right : auto;
	padding : 22px;
	text-align : center;
	-webkit-transition : all 0.3s;
	        transition : all 0.3s;
	width : 300px;
}
.btn a:hover {
	opacity : 0.7;
}
.btn.small a {
	border-radius : 19px;
	font-size : 1.3rem;
	padding : 12px;
	width : 192px;
}

.mt5 {
	margin-top : 5px;
}

.mb5 {
	margin-bottom : 5px;
}

.mt10 {
	margin-top : 10px;
}

.mb10 {
	margin-bottom : 10px;
}

.mt15 {
	margin-top : 15px;
}

.mb15 {
	margin-bottom : 15px;
}

.mt20 {
	margin-top : 20px;
}

.mb20 {
	margin-bottom : 20px;
}

.mt25 {
	margin-top : 25px;
}

.mb25 {
	margin-bottom : 25px;
}

.mt30 {
	margin-top : 30px;
}

.mb30 {
	margin-bottom : 30px;
}

.mt35 {
	margin-top : 35px;
}

.mb35 {
	margin-bottom : 35px;
}

.mt40 {
	margin-top : 40px;
}

.mb40 {
	margin-bottom : 40px;
}

.mt45 {
	margin-top : 45px;
}

.mb45 {
	margin-bottom : 45px;
}

.mt50 {
	margin-top : 50px;
}

.mb50 {
	margin-bottom : 50px;
}

@media (min-width: 769px) {
	header .toggle_btn {
		display : none;
	}
}
@media (max-width: 768px) {
	header .toggle_btn {
		cursor : pointer;
		height : 48px;
		padding : 17px 12px;
		position : fixed;
		right : 8px;
		top : 0;
		width : 48px;
		z-index : 100;
	}
	header .toggle_btn span {
		background-color : #384d00;
		display : block;
		height : 2px;
		line-height : 1.2;
		width : 100%;
	}
	header .toggle_btn span:nth-child(1) {
		margin-bottom : 4px;
	}
	header .toggle_btn span:nth-child(2) {
		margin-bottom : 4px;
	}
	header .toggle_btn.open span {
		background-color : #ffffff;
	}
}
@media (min-width: 769px) {
	header .header {
		align-items : center;
		-webkit-box-align : center;
		-webkit-box-pack : justify;
		display : -webkit-box;
		display : -ms-flexbox;
		display : flex;
		-ms-flex-align : center;
		-ms-flex-pack : justify;
		height : 120px;
		justify-content : space-between;
		margin-left : auto;
		margin-right : auto;
		width : 1080px;
	}
}
@media (max-width: 768px) {
	header .header {
		padding : 36px 16px 8px;
	}
}
header .header .gtranslate_wrapper a {
	color : #384d00;
}
@media (max-width: 768px) {
	header .site_title {
		text-align : center;
	}
}
header .site_title a {
	display : block;
}
header .site_title img {
	height : auto;
	width : 500px;
}
@media (max-width: 768px) {
	header .site_title img {
		margin-bottom : 16px;
		width : 300px;
	}
}
header .site_description {
	letter-spacing : 0.075em;
}
@media (min-width: 769px) {
	header .site_description {
		font-size : 1.3rem;
		width : 240px;
	}
}
@media (max-width: 768px) {
	header .site_description {
		display : none;
		font-size : 1rem;
		letter-spacing : 0.05em;
		margin-bottom : 16px;
		text-align : center;
	}
}
header .board {
	height : 48px;
	position : relative;
	width : 196px;
	z-index : 10;
}
@media (max-width: 768px) {
	header .board {
		height : 36px;
		margin : auto;
		width : 145px;
	}
}
header .board::before {
	background-image : url(../images/module/board_date.svg);
	background-repeat : no-repeat;
	background-size : contain;
	content : "";
	display : block;
	height : 48px;
	width : 196px;
}
@media (max-width: 768px) {
	header .board::before {
		height : 36px;
		height : 38px;
		margin-top : 8px;
		width : 145px;
		width : 156px;
	}
}
header .board .date {
	font-size : 2.6rem;
	left : 50%;
	letter-spacing : 0.01em;
	line-height : 1;
	position : absolute;
	top : 50%;
	-webkit-transform : translate(-50%, -36%);
	        transform : translate(-50%, -36%);
	width : -webkit-max-content;
	width :    -moz-max-content;
	width :         max-content;
}
@media (max-width: 768px) {
	header .board .date {
		font-size : 1.9rem;
		font-size : 2rem;
		-webkit-transform : translate(-45%, -42%);
		        transform : translate(-45%, -42%);
	}
}
header .board .date span > span {
	display : inline-block;
	font-size : 1.7rem;
}
@media (max-width: 768px) {
	header .board .date span > span {
		font-size : 1.2rem;
		font-size : 1.4rem;
	}
}
header .board .date .start::after {
	background-image : url(../images/module/arrow_right.svg);
	background-repeat : no-repeat;
	background-size : contain;
	content : "";
	display : inline-block;
	height : 10px;
	margin-left : 8px;
	margin-right : 8px;
	width : 16px;
}
@media (max-width: 768px) {
	header .board .date .start::after {
		height : 8px;
		margin-left : 5px;
		margin-right : 5px;
		width : 12px;
	}
}
@media (min-width: 769px) {
	header .gnav {
		border-radius : 30px;
		height : 60px;
		margin-left : auto;
		margin-right : auto;
		overflow : hidden;
		position : relative;
		width : 1125px;
		/* 初期表示で右影が見えるようにする */
		/* shadow_right クラスで右影ON */
		/* shadow_left クラスで左影ON */
		/* 逆にOFFにするときは自動でopacity 0に */
	}
	header .gnav::before, header .gnav::after {
		bottom : 0;
		content : "";
		pointer-events : none;
		position : absolute;
		top : 0;
		-webkit-transition : opacity 0.3s ease;
		        transition : opacity 0.3s ease;
		width : 60px;
		z-index : 3;
	}
	header .gnav::after {
		background : -webkit-gradient(linear, right top, left top, from(rgba(255, 255, 255, 0.7)), to(rgba(255, 255, 255, 0)));
		background : -webkit-linear-gradient(right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0));
		background :         linear-gradient(to left, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0));
		opacity : 1;
		right : 0;
	}
	header .gnav::before {
		background : -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.7)), to(rgba(255, 255, 255, 0)));
		background : -webkit-linear-gradient(left, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0));
		background :         linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0));
		left : 0;
		opacity : 0; /* 初期状態で左影は非表示 */
	}
	header .gnav.shadow_right::after {
		opacity : 1;
	}
	header .gnav.shadow_left::before {
		opacity : 1;
	}
	header .gnav:not(.shadow_right)::after {
		opacity : 0;
	}
	header .gnav:not(.shadow_left)::before {
		opacity : 0;
	}
}
@media (max-width: 768px) {
	header .gnav {
		background-color : #6d9403;
		inset : 0 -100% 0 100%;
		position : fixed;
		-webkit-transition : -webkit-transform 0.4s;
		        transition : -webkit-transform 0.4s;
		        transition :         transform 0.4s;
		        transition :         transform 0.4s, -webkit-transform 0.4s;
		z-index : 50;
	}
	header .gnav.open {
		-webkit-transform : translateX(-100%);
		        transform : translateX(-100%);
	}
}
@media (min-width: 769px) {
	header .gnav .nav_inner {
		-webkit-overflow-scrolling : touch;
		-webkit-overflow-scrolling : touch;
		-ms-overflow-style : none; /* IE/Edge */
		overflow-x : auto;
		overflow-x : auto;
		position : relative;
		scrollbar-width : none; /* Firefox */
		z-index : 2;
	}
	header .gnav .nav_inner::-webkit-scrollbar {
		display : none; /* Chrome, Safari */
	}
}
@media (min-width: 769px) {
	header .gnav ul {
		display : -webkit-box;
		display : -ms-flexbox;
		display : flex;
		white-space : nowrap;
	}
}
@media (max-width: 768px) {
	header .gnav ul {
		padding-top : 71px;
	}
}
@media (min-width: 769px) {
	header .gnav ul li {
		width: 33.3%;
		-webkit-box-flex : 1;
		-ms-flex : 1 1 auto;
		    flex : 1 1 auto;
	}
	header .gnav ul li + li {
		border-left : 1px solid #c5d49a;
	}
}
@media (min-width: 769px) {
	header .gnav ul li:first-child a {
		border-bottom-left-radius : 30px;
		border-top-left-radius : 30px;
	}
	header .gnav ul li:last-child a {
		border-bottom-right-radius : 30px;
		border-top-right-radius : 30px;
	}
}
header .gnav ul li a {
	background-color : #6d9403;
	color : #ffffff;
	font-size : 1.3rem;
	letter-spacing : 0.075em;
	padding-left : 18px;
	padding-right : 18px;
	-webkit-transition : all 0.3s;
	        transition : all 0.3s;
}
@media (min-width: 769px) {
	header .gnav ul li a {
		display : block;
		height : 60px;
		line-height : 60px;
		text-align : center;
		white-space : nowrap;
	}
}
@media (max-width: 768px) {
	header .gnav ul li a {
		display : block;
		font-size : 1.4rem;
		padding-bottom : 16px;
		padding-top : 16px;
		text-align : center;
	}
}
header .gnav ul li a:hover {
	background-color : #476100;
}
header .gnav ul li a img.instagram {
	height : 15px;
	width : 15px;
}
header .gnav ul li.event a {
	background-color : #7f50a3;
}
header .gnav ul li.event a:hover {
	background-color : #643f81;
}
header .gnav ul li.instagram a {
	overflow : hidden;
	position : relative;
	text-indent : -9999px; /* テキストを画面外に追いやる */
}
@media (min-width: 769px) {
	header .gnav ul li.instagram a {
		display : block;
	}
}
header .gnav ul li.instagram a::before {
	background-image : url("../images/module/icon_instagram.svg");
	background-repeat : no-repeat;
	background-size : contain;
	content : "";
	display : block;
	height : 15px; /* アイコンの高さ */
	left : 50%;
	position : absolute;
	top : 50%;
	-webkit-transform : translate(-50%, -50%);
	        transform : translate(-50%, -50%);
	width : 15px; /* アイコンの幅 */
}
header .gnav ul li.current-menu-item a {
	background-color : #476100;
}
header .gnav ul li.event.current-menu-item a {
	background-color : #643f81;
}


footer {
	background-color : #f0ebe4;
	padding-bottom : 40px;
	padding-top : 70px;
}
@media (max-width: 768px) {
	footer {
		padding : 40px 16px 24px;
	}
}
@media (min-width: 769px) {
	footer .footer_inner {
		-webkit-box-pack : justify;
		display : -webkit-box;
		display : -ms-flexbox;
		display : flex;
		-ms-flex-pack : justify;
		-ms-flex-wrap : wrap;
		    flex-wrap : wrap;
		justify-content : space-between;
		margin-left : auto;
		margin-right : auto;
		width : 1090px;
		flex-direction: column;
	}
}
footer .site_info {
	text-align : center;
}
@media (min-width: 769px) {
	footer .site_info {
		width : 525px;
		margin-inline: auto;
	}
}

footer .footer_link {
	text-align: center;
	margin-top: 1.8em;
}

footer .site_title {
	margin-bottom : 36px;
}
footer .site_title img {
	height : auto;
	width : 525px;
}
@media (max-width: 768px) {
	footer .site_title img {
		width : min(90%, 525px);
	}
}
footer .address {
	font-size : 1.4rem;
}
footer .site_description {
	background-color : #ffffff;
	border-radius : 18px;
	font-size : 1.3rem;
	letter-spacing : 0.075em;
	margin-bottom : 24px;
	margin-left : auto;
	margin-right : auto;
	padding-bottom : 9px;
	padding-top : 9px;
	text-align : center;
	width : 412px;
}
@media (max-width: 768px) {
	footer .site_description {
		border-radius : 17px;
		font-size : 1.1rem;
		margin-bottom : 24px;
		width : 320px;
	}
}
@media (max-width: 768px) {
	footer .flex_block {
		-webkit-box-direction : normal;
		-webkit-box-orient : vertical;
		-ms-flex-direction : column;
		    flex-direction : column;
	}
}

@media (min-width: 769px) {
	footer ul.sub_nav {
		margin-left : auto;
		margin-right: auto;
	}
}
@media (max-width: 768px) {
	footer ul.sub_nav {
		-webkit-box-pack : center;
		display : -webkit-box;
		display : -ms-flexbox;
		display : flex;
		-ms-flex-pack : center;
		-ms-flex-wrap : wrap;
		    flex-wrap : wrap;
		justify-content : center;
		margin-top : 24px;
		flex-direction: column;
	}
}
footer ul.sub_nav li a {
	color : inherit;
	display : block;
	font-size : 1.2rem;
	padding-bottom : 6px;
	padding-top : 6px;
}

footer ul.sub_nav li a:hover {
	text-decoration: underline;
}

footer ul.sub_nav li:nth-child(1) a {
	font-size: 1.4rem;
	display: inline-block;
	background-color: #6d9403;
	color: #fff;
	padding-inline: 16px;
	border-radius: 16px;
	transition: all .3s;
	margin-bottom: 0.5em;
}
footer ul.sub_nav li:nth-child(1) a:hover {
	background-color: #476100;
	text-decoration: none;
}
@media (max-width: 768px) {
	footer ul.sub_nav li a {
		padding : 16px;
	}
	footer ul.sub_nav li:nth-child(1) a {
		padding-block: 6px;
	}
}
footer .copyright {
	font-size : 1.2rem;
	margin-top : 24px;
	text-align : center;
}
@media (min-width: 769px) {
	footer .copyright {
		margin-top : 40px;
	}
}

#contentsHeader {
	background-image : url(../images/module/bg_heading_wide.svg);
	background-position : center bottom;
	color : #384d00;
	margin-top : -60px;
	z-index : -1;
}
@media (max-width: 768px) {
	#contentsHeader {
		background-image : url(../images/module/bg_heading_sp.svg);
		background-position : 48% bottom;
	}
}
#contentsHeader .inner {
	height : 400px;
	position : relative;
}
@media (max-width: 768px) {
	#contentsHeader .inner {
		height : 380px;
	}
}
#contentsHeader h1 {
	font-size : 4rem;
	line-height : 1.5;
	position : absolute;
	text-align : center;
	width : 100%;
}
@media (min-width: 769px) {
	#contentsHeader h1 {
		left : 50%;
		top : 50%;
		-webkit-transform : translate(-52%, -50%);
		        transform : translate(-52%, -50%);
	}
}
@media (max-width: 768px) {
	#contentsHeader h1 {
		left : 50%;
		top : 50%;
		-webkit-transform : translate(-50%, -50%);
		        transform : translate(-50%, -50%);
	}
}
#contentsHeader h1 span {
	display : block;
	font-size : 1.8rem;
	margin-bottom : 20px;
}
@media (min-width: 769px) {
	#contentsHeader h1 img {
		height : 135px;
		width : 788px;
	}
}
@media (max-width: 768px) {
	#contentsHeader h1 img {
		height : auto;
		width : 280px;
	}
}

.contents_nav {
	color : #384d00;
}
@media (min-width: 769px) {
	.contents_nav {
		-webkit-box-pack : justify;
		display : -webkit-box;
		display : -ms-flexbox;
		display : flex;
		-ms-flex-pack : justify;
		-ms-flex-wrap : wrap;
		    flex-wrap : wrap;
		justify-content : space-between;
		margin-left : auto;
		margin-left : auto;
		margin-right : auto;
		margin-right : auto;
		margin-top : -60px;
		padding-bottom : 20px;
		padding-top : 20px;
		width : 1125px;
	}
}
@media (max-width: 768px) {
	.contents_nav {
		width : 100%;
	}
}
.contents_nav a {
	color : inherit;
}

.breadcrumb {
	display : -webkit-box;
	display : -ms-flexbox;
	display : flex;
	-ms-flex-wrap : wrap;
	    flex-wrap : wrap;
}
@media (max-width: 768px) {
	.breadcrumb {
		background-color : #384d00;
		color : #ffffff;
		padding-bottom : 12px;
		padding-left : 24px;
		padding-right : 24px;
		padding-top : 12px;
	}
}
.breadcrumb li {
	font-size : 1.4rem;
	line-height : 1.8;
}
.breadcrumb li:not(:last-child)::after {
	content : ">";
	display : inline-block;
	margin-left : 0.5em;
	margin-right : 0.5em;
}

@media (max-width: 768px) {
	.page_nav {
		background-color : #6d9403;
		text-align : center;
	}
}
@media (min-width: 769px) {
	.page_nav ul {
		display : -webkit-box;
		display : -ms-flexbox;
		display : flex;
	}
}
.page_nav ul li {
	font-size : 1.4rem;
}
@media (min-width: 769px) {
	.page_nav ul li + li {
		margin-left : 1em;
	}
}
@media (max-width: 768px) {
	.page_nav ul li + li {
		border-top : solid 1px #8aa935;
	}
}
.page_nav ul li a {
	display : block;
}
.page_nav ul li a::after {
	background-image : url(../images/module/circle_arrow.svg);
	background-size : contain;
	content : "";
	display : inline-block;
	height : 20px;
	margin-left : 5px;
	vertical-align : middle;
	width : 20px;
}
@media (max-width: 768px) {
	.page_nav ul li a::after {
		background-image : url(../images/module/circle_arrow_white.svg);
	}
}
@media (max-width: 768px) {
	.page_nav ul li a {
		color : #ffffff;
		padding-bottom : 16px;
		padding-top : 16px;
	}
}
@media (min-width: 769px) {
	.page_nav {
		margin-left : auto;
	}
}

main {
	position : relative;
}
main.about::before {
	background-image : url(../images/module/page_cover/about.jpg);
	background-position : center bottom;
	background-size : cover;
	content : "";
	display : block;
	height : 300px;
}
main.page_basic::before {
	background-image : url(../images/module/page_cover/about.jpg);
	background-position : center bottom;
	background-size : cover;
	content : "";
	display : block;
	height : 300px;
}
@media (max-width: 768px) {
	main.page_basic::before {
		height : 150px;
	}
}
main.single_page::before {
	background-image : url(../images/module/page_cover/about.jpg);
	background-position : center bottom;
	background-size : cover;
	content : "";
	display : block;
	height : 300px;
}
@media (max-width: 768px) {
	main.single_page::before {
		height : 150px;
	}
}
main.single_page::after, main.page_basic::after {
	background-color : rgba(109, 148, 3, 0.75);
	content : "";
	display : block;
	height : 300px;
	left : 0;
	position : absolute;
	top : 0;
	width : 100%;
	z-index : 1;
}
@media (max-width: 768px) {
	main.single_page::after, main.page_basic::after {
		height : 150px;
	}
}
