@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700&display=swap&subset=japanese");

/*-- IMI - Base --
----------------------------------
サイト全体の基礎設定とヘッダー、ナビゲーション、
本文エリア、フッターの設定が記述されています。

Preload
Base
Main header
Main area
Main footer

Media Queries 1500 1300 1000 800 500 (print 1280)

----------------------------------
----------------------------------*/

/*-----
Disable transition on page load
-----*/
.preload *{
	transition:none !important;
}
/*-----
Hide the entire page in white until the page is loaded
-----*/
.preload::before{
	content:"";
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	display:block;
	background-color:rgb(255,255,255);
	background-image:url("../img/icon-loader.gif");
	background-position:center center;
	background-repeat:no-repeat;
	animation-name:preloadcover;
	animation-duration:.3s;
	animation-delay:2s;
	animation-fill-mode:both;
	z-index:1999;
	pointer-events:none;
}
@keyframes preloadcover{
	0%{opacity:1;}
	100%{opacity:0;}
}

/*-----------------------------
	Base
-----------------------------*/
*,
*::before,
*::after{
	box-sizing:border-box;
}
html{
	font-size:100%;
}
body{
	margin:0;
	font-family:
		"Noto Sans JP",
		sans-serif;
	font-size:1em;
	font-weight:400;
	color:rgb(60,60,60);
	font-feature-settings:"palt";
	line-height:1.8;
	-webkit-text-size-adjust:100%;
}
body.front_page_bg{
	background:url("../img/bg_common_01.png") center top no-repeat;
	background-size:contain;
}
main{
	display:block;
}
p{
	margin:.6em 0;
}
.wrapper{
	font-size:.937rem;
}
.clearfix::after{
	content:"";
	display:table;
	clear:both;
}
.pagebreak{
	break-after:page;
}

/*-----------------------------
	Main header
-----------------------------*/
.main_header{
	position:fixed;
	display:flex;
	justify-content:space-between;
	align-content:center;
	align-items:center;
	margin:0 auto;
	padding:10px var(--main-pad);
	width:100%;
	background-color:rgb(255,255,255,.7);
	-webkit-backdrop-filter:blur(5px);
	backdrop-filter:blur(5px);
	z-index:2000;
	transform:translateZ(0);
}
.main_header h1{
	display:flex;
	align-items:center;
	margin:0;
	width:430px;
	transition:.15s ease-out;
	transition-property:width,height;
	z-index:500;
	pointer-events:none;
}
.main_header h1 a{
	display:block;
	font-size:.5rem;
	color:rgb(255,255,255);
	line-height:1;
	text-decoration:none;
	transition:opacity .2s ease-out;
	pointer-events:auto;
}
.main_header h1 .univ{
	margin-right:2%;
	width:18.7%;
}
.main_header h1 .imi{
	width:79.3%;
}
.main_header h1 a:hover{
	opacity:.5;
}
.main_header h1 a img{
	vertical-align:bottom;
	line-height:.5;
	width:100%;
}

/* nav
--------------------*/
.main_header #gnav_button{
	display:none;
}
.main_header nav{
	line-height:1.4;
}
.main_header nav .main_nav{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	width:100%;
}
/* main */
.main_header nav .main_01{
	display:flex;
	margin:0;
	padding:0;
	list-style:none;
	line-height:1.4;
}
.main_header nav .main_01 > li{
	position:relative;
	display:flex;
	flex-wrap:wrap;
}
.main_header nav .main_01 > li + li{
	margin-left:1px;
}
.main_header nav .main_01 > li > a{
	position:relative;
	display:block;
	padding:.7rem 1rem .7rem 1rem;
	font-size:.937rem;
	font-weight:700;
	color:rgb(46,74,45);
	line-height:1.2;
	text-align:center;
	text-decoration:none;
	transition:.15s ease-out;
	transition-property:width,height,background-color;
}
.wrapper:not(.touch_device) .main_header nav .main_01 > li:hover > a{
	background:rgb(54,107,52);
	color:rgb(255,255,255);
}
.main_header nav .main_01 > li .icon{
	height:1.1em;
	margin:0 .2em;
	vertical-align:-15%;
}
.main_header nav .main_01 > li .touch_arrow{
	position:relative;
	display:none;
	align-items:center;
	align-content:center;
	margin-left:-6px;
	padding:5px 8px;
	background:rgb(54,107,52);
	box-shadow:-1px -1px 1px rgba(0,0,0,.7) inset, 1px 1px 1px rgba(0,0,0,.4) inset;
	border-width:1px;
	border-radius:.7rem;
	transition:.2s ease-out;
	transition-property:color;
}
.main_header nav .main_01 > li .touch_arrow::before{
	content:"";
	display:block;
	border-width:0 2px 2px 0;
	border-style:solid;
	border-color:rgb(255,255,255);
	width:.5rem;
	height:.5rem;
	transition:.2s ease-out;
	transition-property:transform;
	transform:rotate(45deg);
}
.touch_device .main_header nav .main_01 > li .touch_arrow{
	display:flex;
}
.touch_device .main_header nav .main_01 > li .touch_arrow.active{
	background:rgb(130,160,130);
}
.touch_device .main_header nav .main_01 > li .touch_arrow.active::before{
	border-color:rgb(255,255,255);
	transform:translateY(3px) rotate(225deg);
}
.main_header nav .layer2{
	position:absolute;
	top:100%;
	right:0;
	display:flex;
	flex-wrap:wrap;
	margin:0 auto;
	padding:0;
	width:13.5rem;
	height:0;
	background:rgb(255,255,255);
	box-shadow:0 1px 4px rgba(0,0,0,.4);
	transition:.15s ease-out .1s;
	transition-property:opacity;
	overflow:hidden;
	opacity:0;
	list-style:none;
}
.wrapper:not(.touch_device) .main_header nav li:hover .layer2,
.touch_device .main_header nav li .touch_arrow.active + .layer2{
	padding:.5rem;
	height:auto;
	opacity:1;
	z-index:1;
}
.main_header nav .layer2 li{
	width:100%;
}
.main_header nav .layer2 a{
	position:relative;
	display:block;
	padding:.4em 1rem;
	font-size:.875rem;
	font-weight:500;
	color:inherit;
	line-height:1.2;
	letter-spacing:0.05em;
	text-decoration:none;
	text-shadow:1px 1px 2px rgba(0,0,0,.2);
	transition:.2s ease-out;
	transition-property:background-color,color;
}
.main_header nav .layer2 a::before{
	position:absolute;
	left:0;
	top:50%;
	content:"";
	display:inline-block;
	margin-right:3px;
	border-width:2px 2px 0 0;
	border-style:solid;
	border-color:rgb(46,74,45);
	width:.5rem;
	height:.5rem;
	transform:rotate(45deg) translateY(-50%);
	transition:border .15s ease-out;
}
.main_header nav .layer2 a:hover{
	background:rgb(54,107,52);
	color:rgb(255,255,255);
}
.main_header nav .layer2 a:hover::before{
	border-color:rgb(255,255,255);
}
.main_header nav .sns{
	display:flex;
	margin:0;
	padding:0;
	list-style:none;
}
.main_header nav .sns li{
	width:50px;
}
.main_header nav .sns li + li{
	margin-left:1rem;
}
.main_header nav .sns a{
	display:block;
	color:rgb(255,255,255);
	line-height:1;
	text-decoration:none;
	transition:opacity .2s ease-out;
	pointer-events:auto;
}
.main_header nav .sns a:hover{
	opacity:.5;
}
.main_header nav .sns a img{
	width:100%;
	vertical-align:bottom;
	line-height:1;
}
/* emphasis */
.main_header nav .emphasis{
	display:flex;
	margin:0 0 0 1rem;
	padding:0;
	list-style:none;
	transition:.15s ease-out;
	transition-property:width,height;
}
.main_header nav .emphasis li{
	display:flex;
	width:100%;
	border-left:1px solid rgb(93,138,66);
}
.main_header nav .emphasis a,
.main_header nav .emphasis button{
	position:relative;
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	align-content:center;
	justify-content:center;
	padding:0 .3rem;
	width:82px;
	background:none;
	border:none;
	font-family:inherit;
	font-size:.675rem;
	font-weight:700;
	color:rgb(54,107,52);
	text-decoration:none;
	transition:.15s ease-out;
	transition-property:opacity;
}
.main_header nav .emphasis button{
	cursor:pointer;
}
.main_header nav .emphasis a:hover,
.main_header nav .emphasis button:hover{
	opacity:.5;
}
/* Modify TranslatePress*/
.trp_language_switcher_shortcode{
	display:flex;
	width:100%;
}
.trp_language_switcher_shortcode .trp-language-switcher.trp-language-switcher-container{
	display:flex;
	margin:0;
	width:100%;
	border:none;
}
.trp_language_switcher_shortcode .trp-ls-shortcode-current-language{
	display:none;
}
.trp_language_switcher_shortcode .trp-ls-shortcode-disabled-language.trp-ls-disabled-language{
	display:none;
}
.trp_language_switcher_shortcode .trp-ls-shortcode-language{
	display:flex!important;
	justify-content:center;
	height:auto!important;
	width:auto!important;
	margin:0;
	padding:0;
	width:100%!important;
	background:none;
	border:none;
	visibility:visible!important;
}
.trp_language_switcher_shortcode .trp-language-switcher.trp-language-switcher-container:hover .trp-ls-shortcode-language,
.trp_language_switcher_shortcode .trp-language-switcher.trp-language-switcher-container:focus .trp-ls-shortcode-language{
	display:flex!important;
	position:static;
}
.trp_language_switcher_shortcode .trp-ls-shortcode-language a::before{
	content:"";
	display:block;
	width:36px;
	aspect-ratio:1 / 1;
	background:url("../img/icon_language_01.svg") center center no-repeat;
	background-size:100% 100%;
}
/* Modal box */
.modal_box {
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:100%;
	z-index:9999;
	opacity:0;
	visibility:hidden;
	transition:opacity .2s ease-out;
}
.modal_box.is-show {
	opacity:1;
	visibility:visible;
}
.modal_box > .inner {
	position:absolute;
	box-sizing:border-box;
	left:50%;
	top:35%;
	max-width:650px;
	width:100%;
	padding:.5rem 1.5rem 1.5rem;
	background-color:rgb(255,255,255);
	border-radius:10px;
	font-size:.937rem;
	line-height:1.4;
	z-index:2;
	overflow-y:auto;
	transform:translate(-50%,-50%);
}
.modal_box > .inner .title{
	margin-bottom:.8em;
	padding-bottom:.6em;
	border-bottom:dotted 1px rgb(180,180,180);
	font-size:1.125rem;
	font-weight:700;
	color:rgb(54,107,52);
	text-align:center;
}
.modal_box .close-btn {
	position:absolute;
	right:0;
	top:0;
	width:40px;
	height:40px;
	background:rgba(0,0,0,.2);
	border-radius:10px;
	font-size:20px;
	line-height:40px;
	text-align:center;
	cursor:pointer;
}
.modal_box .black-background {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
	background-color:rgba(0,0,0,.8);
	z-index:1;
	cursor:pointer;
}
.modal_box .searchbox_01 > form{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
}
.modal_box .searchbox_01 > form .s-box{
	padding:.2rem .5rem;
	width:calc(100% - 5rem);
	background:rgb(250,250,250);
	border:none;
	border-radius:10px;
	font-family:inherit;
	font-size:1rem;
	font-weight:500;
	box-shadow:0 2px 4px rgb(0,0,0,.2) inset;
}
.modal_box .searchbox_01 > form .select_archive{
	margin-top:.5rem;
	order:3;
}
.modal_box .searchbox_01 > form .select_archive label{
	font-weight:700;
}
.modal_box .searchbox_01 > form .select_archive label .s-check-archive{
	margin:.2rem .3rem .2rem 0;
	width:1rem;
	height:1rem;
	vertical-align:-15%;
}
.modal_box .searchbox_01 > form .s-btn-area{
	padding:.2rem .5rem;
	width:4.5rem;
	background:rgb(90,141,58);
	border:none;
	border-radius:10px;
	box-shadow:0 1px 4px rgba(0,0,0,.2);
	font-family:inherit;
	font-size:1rem;
	font-weight:500;
	color:rgb(255,255,255);
}

/*-----------------------------
	Main area
-----------------------------*/
.main_area{
	margin:0;
	min-height:calc(100vh - 120px);
	background-size:100% auto;
}

/*-----------------------------
	Main footer
-----------------------------*/
.main_footer{
	position:relative;
	margin:0 auto;
	background:rgb(255,255,255);
	border-top:1px solid rgb(125,170,130);
	z-index:1;
}
.main_footer > .inner{
	margin:0 auto;
	padding:0 var(--main-pad);
	padding-top:2rem;
	padding-bottom:2rem;
}
.main_footer .site_title{
	display:flex;
	align-items:center;
	margin:0 auto 1.5rem;
	max-width:432px;
	width:100%;
}
.main_footer .site_title a{
	display:block;
	font-size:1rem;
	color:rgb(255,255,255);
	line-height:1;
	text-decoration:none;
	transition:opacity .2s ease-out;
	pointer-events:auto;
}
.main_footer .site_title .univ{
	margin-right:2%;
	width:18.7%;
}
.main_footer .site_title .imi{
	width:79.3%;
}
.main_footer .site_title a:hover{
	opacity:.5;
}
.main_footer .site_title a img{
	vertical-align:bottom;
	line-height:1;
	width:100%;
}
.main_footer .sub_nav{
	display:flex;
	justify-content:center;
	margin:0 auto;
	padding:0 0 0 1px;
	list-style:none;
}
.main_footer .sub_nav li{
	margin-left:-1px;
	border-left:1px solid rgb(125,170,130);
	border-right:1px solid rgb(125,170,130);
}
.main_footer .sub_nav a{
	display:block;
	padding:.1rem .8rem;
	font-size:.937rem;
	color:rgb(100,100,100);
	line-height:1;
	text-decoration:none;
	transition:opacity .2s ease-out;
	pointer-events:auto;
}
.main_footer .sub_nav a:hover{
	opacity:.5;
}
.main_footer .page_up{
	margin:0;
	text-align:right;
}
.main_footer .page_up a{
	position:fixed;
	right:2px;
	bottom:2px;
	display:block;
	width:80px;
	border-radius:100% 0 0 0;
	transition:opacity .2s ease-out;
	z-index:10;
	opacity:.8;
	overflow:hidden;
}
.wrapper:not(.ct-touch_device) .main_footer .page_up a:hover{
	opacity:.4;
}
.main_footer .page_up a img{
	width:100%;
	vertical-align:bottom;
}
.main_footer .copyright{
	margin:0;
	padding:.8rem var(--main-pad);
	border-top:1px solid rgb(125,170,130);
	font-size:.75rem;
	color:rgb(110,110,110);
	line-height:1.3;
	text-align:center;
}
.main_footer.en .copyright{
	padding-bottom:4.2rem;
}
.translated_deepl{
	display:none;
}
.translated_deepl{
	position:fixed;
	bottom:0;
	left:0;
	display:block;
	padding:.8rem;
	width:100%;
	background:rgba(0,0,0,.65);
	font-size:1.1rem;
	font-weight:700;
	color:rgb(255,255,255);
	letter-spacing:.05em;
	pointer-events:none;
	text-align:center;
	z-index:5000;
}

/*---------------------------------
---------------------------------
	Media Queries
---------------------------------
---------------------------------*/
@media screen and (max-width:1500px){
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header h1{
		width:350px;
	}
	/* nav
	--------------------*/
	.main_header nav .main_01 > li > a{
		padding:.5rem .6rem;
	}
}

@media screen and (max-width:1300px){
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header{
		padding-top:14px;
		padding-bottom:14px;
	}
	/* Gnav button
	--------------------*/
	.main_header #gnav_button{
		position:absolute;
		top:9px;
		right:40px;
		display:block;
		padding:8px 7px;
		width:40px;
		background:none;
		border:none;
		z-index:1200;
	}
	.main_header #gnav_button > span{
		display:block;
		margin:0 auto 6px;
		width:100%;
		height:3px;
		background:rgb(90,141,58);
		transition:.15s ease-out;
		transition-property:transform,background-color,width;
	}
	.main_header #gnav_button > span:nth-child(3){
		margin-bottom:0;
	}
	.main_header #gnav_button[aria-expanded="true"] > span{
		background:rgb(90,141,58);
	}
	.main_header #gnav_button[aria-expanded="true"] > span:nth-child(1){
		transform:rotate(45deg) translate(6px,7px);
	}
	.main_header #gnav_button[aria-expanded="true"] > span:nth-child(2){
		width:0px;
	}
	.main_header #gnav_button[aria-expanded="true"] > span:nth-child(3){
		transform:rotate(-45deg) translate(6px,-7px);
	}
	/* nav
	--------------------*/
	.main_header nav{
		position:fixed;
		top:0;
		right:0;
		display:flex;
		align-content:flex-start;
		width:100%;
		height:0;
		overflow-y:scroll;
		opacity:0;
		transition:.15s ease-out;
		transition-property:height,opacity;
	}
	.main_header nav .close_field{
		display:block;
		position:absolute;
		top:0;
		right:0;
		width:100%;
		height:100%;
	}
	.main_header nav.is-drawerActive{
		height:100vh;
		background:rgba(255,255,255,.85);
		z-index:1000;
		opacity:1;
	}
	/* main */
	.main_header nav .main_nav{
		flex-wrap:wrap;
		align-content:flex-start;
		align-items:flex-start;
		margin:0 auto;
		padding-top:60px;
		width:calc(100% - 40px);
		max-width:600px;
		background-color:transparent;
	}
	.main_header nav .main_01{
		flex-wrap:wrap;
	}
	.main_header nav .main_01 > li{
		width:100%;
	}
	.main_header nav .main_01 > li + li{
		margin-left:0;
		margin-top:6px;
	}
	.main_header nav .main_01 > li > a{
		width:100%;
		padding:.6rem .5rem;
		text-align:left;
	}
	.main_header nav .layer2{
		position:static;
		width:100%;
	}
	.main_header nav .main_01 > li .touch_arrow{
		position:relative;
		margin-left:-45px;
		padding:5px 12px;
	}
	.main_header nav .emphasis{
		justify-content:space-between;
		margin:15px auto 0;
		padding:0;
		width:calc(100% - 20px);
		height:auto;
		border-left:1px solid rgb(180,180,180);
		border-right:1px solid rgb(180,180,180);
	}
	.main_header nav .emphasis li{
		width:50%;
	}
	.main_header nav .emphasis li:first-child{
		border-left:0;
	}
	.main_header nav .emphasis a,
	.main_header nav .emphasis button{
		padding:.8em .5em;
		width:100%;
		font-size:.75rem;
	}
	.main_header nav .emphasis .icon{
		width:30px;
	}
	.trp_language_switcher_shortcode .trp-ls-shortcode-language a::before{
		width:30px;
	}
}

@media screen and (max-width:1000px){
	html{
		font-size:93.7%;
	}
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header h1{
		width:300px;
	}
	/* Gnav button
	--------------------*/
	.main_header #gnav_button{
		top:8px;
		right:30px;
	}
}

@media screen and (max-width:800px){
	body.front_page_bg{
		background-position:left top;
		background-size:240% auto;
	}
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header h1{
		width:280px;
	}
	/* Gnav button
	--------------------*/
	.main_header #gnav_button{
		top:7px;
		right:25px;
	}
}

@media screen and (max-width:500px){
	/*-----------------------------
		Main header
	-----------------------------*/
	.main_header h1{
		width:80%;
		max-width:220px;
	}
	/* Gnav button
	--------------------*/
	.main_header #gnav_button{
		top:14%;
		right:15px;
	}
	/*-----------------------------
		Main footer
	-----------------------------*/
	/*-----------------------------
		Main footer
	-----------------------------*/
	.main_footer .sub_nav a{
		padding:.1rem .6rem;
		font-size:.875rem;
	}
}

@media print{
	body{min-width:900px;font-feature-settings:normal;}
	.print_hidden{display:none;}
	/*.main_header{position:absolute;justify-content:space-around;border-bottom:1px solid var(--theme-color-normal);}*/
	.main_header{display:none;}
	/* nav
	--------------------*/
	.main_header nav{display:none;}
	/*-----------------------------
		Main footer
	-----------------------------*/
	.main_footer{display:none;}
}
@page {
	size: A4;
	margin: 17mm 8mm 20mm;
}