@charset "utf-8";

/* ---------- */
/* デザイン共通 */
/* ---------- */
*::before,
*::after{
	box-sizing:border-box;
	background-repeat: no-repeat;
	transition: 0.3s ease-out;
}
html,body,section,article,div,span,applet,object,iframe,strong,h1,h2,h3,h4,h5,h6,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,ins,kbd,q,s,samp,small,strike,sub,sup,tt,var,fieldset,form,legend,caption,tbody,tfoot,thead,table,label,tr,th,td,p,img,figure,ul,ol,dl,dt,dd{
	background-repeat: no-repeat;
	margin:0;
	padding:0;
	border:none;
	box-sizing:border-box;
}
@media screen and (max-width:1024px) {
	html{ font-size:14px;}
}
@media print,screen and (min-width:1025px) {
	/* html,body,section,article,div,span,applet,object,iframe,strong,h1,h2,h3,h4,h5,h6,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,ins,kbd,q,s,samp,small,strike,sub,sup,tt,var,fieldset,form,legend,caption,tbody,tfoot,thead,table,label,tr,th,td,p,img,figure,ul,ol,dl,dt,dd{
		cursor: none;
	} */
	/* ↑ 20230320変更 */
	html{ font-size:16px;}
}
html{ background-color: #FFF;}
body{
	position: relative;/*疑似カーソルの為*/
	overflow-x: hidden;
	overflow-y: scroll;
	background:#fff;
	color:#222;
	/* font-family:'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic W3',YakuHanJP_Narrow, "游ゴシック体", "Yu Gothic", YuGothic, 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif; */
	font-family:YakuHanJP_Narrow, "游ゴシック体", "Yu Gothic", YuGothic,'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
	font-weight: 500;
	font-style: normal;
	line-height:1.75;
	-webkit-text-size-adjust:100%;
	transition: 0.75s ease-out;
	/* background-image: url(../images/body_bg.svg); */
	background-size: 1200px;
	background-position: top center;
	background-repeat: repeat-y;
}
body.en{
	font-family: futura-pt, sans-serif;
	font-weight: 400;
}
body #wrapper{
	opacity: 0;
	transition: 0.75s ease-out;
}
body.loaded #wrapper{opacity: 1;}
a{
	color:#222;
	text-decoration: none;
	transition: 0.3s ease-out;
}
a:hover{
	color:#009051;
}

figure {text-align: center;}

img{
	max-width:100%;
	height:auto;
	vertical-align:top;
	transition: 0.3s ease-out;
}

ul,ol {list-style: none;}

/*↓ 20230322 add */
.list-style-disc{ list-style: disc; }
.list-style-disc li{ margin-left: 2rem; margin-bottom: 10px; }

/* input[type="button"],
input[type="submit"],
input[type="image"] {cursor: pointer} */
form input,
form textarea {
	font-family:YakuHanJP_Narrow, "游ゴシック体", "Yu Gothic", YuGothic,'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
form input[type="text"] {
	border: none;
	border-radius: 0;
}
form input::placeholder
form textarea::placeholder {color: #bbb;}
form input[type="button"],
form input[type="submit"] {
	padding: 0.675rem 1rem 0.5rem;
	border: none;
	border-radius: 0;
	font-size: 1rem;
	font-family:YakuHanJP_Narrow, "游ゴシック体", "Yu Gothic", YuGothic,'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
	transition: 0.5s ease-out;
	-webkit-appearance: none;/*ios用の記述*/
}
/* form input[type="button"]:hover,
form input[type="submit"]:hover {
	cursor: pointer;
} */
/*ios用の記述*/
select,textarea,input[type="text"],input[type="tel"],input[type="email"]  {
	border-radius: 0;
	-webkit-appearance: none;
}
p.caoution,
ul.caoution li {
	position: relative;
	padding-left: 1.2em;
}
p.caoution::before,
ul.caoution li::before {
	content: "※";
	position: absolute;
	top: 0;
	left: 0;
}

.font_source_han_gothic{font-family:source-han-sans-japanese,'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', "游ゴシック体", "Yu Gothic", YuGothic, 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;}
.font_gothic{font-family:YakuHanJP_Narrow, "游ゴシック体", "Yu Gothic", YuGothic,'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;}
.font_serif{font-family:"游明朝","Yu Mincho","YuMincho", 'メイリオ', Meiryo, serif;}
.text_en {font-family: futura-pt, sans-serif;}

table{border-collapse:collapse}

.bg_grad {
	color: #fff;
	background: linear-gradient(135deg, #009051 0%,#0071A7 100%);
	border: none;
}
.bg_gray {
	background-color: #F3F3F3;
}
.color_theme {
	color: #009051;
}
.text_grad {
	color: #009051;
	background: linear-gradient(135deg, #009051 0%,#0071A7 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
@media all and (-ms-high-contrast: none) {
	.text_grad {
		background: transparent;
	}
}

/* ---------------- */
/* 画面幅毎の表示制御 */
/* ---------------- */
.pc_s_disp{display: none;}
@media screen and (max-width:767px) {
	.sp_none{display:none !important;}
}
@media print,screen and (min-width:1025px) {
	.pc_none{display:none !important;}
}
@media print,screen and (min-width:768px) and (max-width:1024px) {
	.tb_none{display:none !important;}
	.tb_disp{display:block !important;}
}
@media print,print,screen and (min-width:1025px) and (max-width:1366px) {
	.pc_s_none{display:none !important;}
	.pc_s_disp{display:block !important;}
}
@media print,print,screen and (min-width:1025px) and (max-width:1599px) {
	.pc_l_none{display:none !important;}
}
@media print,screen and (min-width:1600px) {
	.pc_ll_none{display:none !important;}
}
/* -------- */
/* #loader */
/* -------- */
#loader_wrap {
	width: 100%;
	height: 100vh;
	background-color: #fff;
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: 0.2s ease-out;
	z-index: 1200;
}
#loader {
	width: 165px;
	height: 125px;
}

/*#loader,
#loader:before,
#loader:after {
	border-radius: 50%;
	width: 2.5em;
	height: 2.5em;
	animation-fill-mode: both;
	animation: loader_dot 1.8s infinite ease-in-out;
}
#loader {
	color: #009051;
	font-size: 10px;
	margin: 80px auto;
	position: relative;
	transform: translateZ(0);
	animation-delay: -0.16s;
}
#loader:before,
#loader:after {
	content: '';
	position: absolute;
	top: 0;
}
#loader:before {
	left: -3.5em;
	animation-delay: -0.32s;
}
#loader:after {
	left: 3.5em;
}
@keyframes loader_dot {
	0%,
	80%,
	100% {
		box-shadow: 0 2.5em 0 -1.3em;
	}
	40% {
		box-shadow: 0 2.5em 0 0;
	}
}
@media all and (-ms-high-contrast: none) {
	#loader_wrap {
		justify-content: flex-start;
	}
}
*/
/* -------- */
/* #wrapper */
/* -------- */
#wrapper{
	width: 100%;
	position: relative;
}
.fixed + #burger_btn > div {position: fixed;}


/* -------- */
/* .pseudo_cursor */
/* -------- */
.pseudo_cursor,
.pseudo_cursor_follower {
	display: none;
}
@media print,screen and (min-width:1025px) {
	.pseudo_cursor,
	.pseudo_cursor_follower {
		display: block;
		border-radius: 50%;
		position: absolute;
		top: 0;
		left: 0;
		pointer-events: none;
		width: 8px;
		height: 8px;
		background: #000;
		z-index: 1002;
		opacity: 0;
		transform: scale(1,1);
		transition: opacity 0.3s ease,transform 0.3s ease;
	}
	.pseudo_cursor_follower {
		z-index: 1001;
	}
	.pseudo_cursor_follower.cursor_active {
		transform: scale(7,7);
		opacity: 0.4!important;
		filter: invert(100%);
		mix-blend-mode: difference;
	}
}
::-webkit-full-page-media, :future, :root .pseudo_cursor {
	width: 64px;
	height: 64px;
    transform: scale(0.125,0.125) translate(-220px, -220px);
}
::-webkit-full-page-media, :future, :root .pseudo_cursor_follower {
	width: 64px;
	height: 64px;
    transform: scale(0.125,0.125) translate(-110px, -110px);
}
::-webkit-full-page-media, :future, :root .pseudo_cursor_follower.cursor_active {
	transform: scale(1,1) translate(-28px, -28px);
}


/* ---- */
/* main */
/* ---- */
main{
	display: block;
	position: relative;
	z-index: 1;
}
main,
main *{box-sizing: border-box;}

@media screen and (max-width:1024px) {
	main{
		padding-top: 44px;
	}
}
@media print,screen and (min-width:1025px) {
	main{
		padding-top: 100px;
	}
}
/* ----------- */
/* 	 header    */
/* ----------- */

header,
header *{box-sizing: border-box;}
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	box-shadow: 0px 0px 6px rgba(0,0,0,0.16);
}
#header_wrap{
	background-color: #fff;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
}
#hd_inner{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
#header_wrap nav{width: 100%;}
#header_wrap nav ul li a:hover{color: #009051;}
header .head_logo a:hover {opacity: 0.7;}

#head_btn .lang_btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	background-color: #22222233;
}
@media print{
    header{position: relative;}

}

@media screen and (max-width:1024px) {
	#logo {
		position: relative;
		z-index: 101;
		height: 100%;
	}
	#logo a {
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: flex-start;
		align-items: center;
		background-image: url(../images/logo_w.svg);
		background-size: 18.93vw 35px;
		background-position: center;
	}
	body.en #logo a {
		background-image: url(../images/logo_w_en.svg);
	}
	#logo img {
		max-width: 18.93vw;
		max-height: 35px;
	}
	.spmenu_on #logo img {
		opacity: 0;
	}
	#header_wrap {
		height: 44px;
		position: relative;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		box-sizing: border-box;
		padding-left: 2.66vw;
	}
	#head_btn {
		position: relative;
		z-index: 101;
		display: flex;
		align-items: center;
		margin-right:44px;
	}
	#head_btn > * {
		height: 44px;
	}
	#head_btn .lang_btn a {
		padding: 0 13px;
		background-color: #D2D2D2;
	}


	#head_btn .contact_btn a {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 44px;
		height: 44px;
	}
	#head_btn .contact_btn span {
		display: none;
	}
	
	.menu-item-has-children{
		position: relative;
	}
	.menu-item-has-children > div {
		position: absolute;
		top: 0;
		right: 0;
		width: 44px;
		height: 44px;
	}

	.menu-item-has-children > div::before,
	.menu-item-has-children .accordion_trigger::before {
		display: block;
		width: 6px;
		height: 6px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		transform: translate(0, -50%) rotate(135deg);
		position: absolute;
		top:50%;
		right:0;
		content: '';
	}
	.menu-item-has-children.open_acord > div::before,
	.menu-item-has-children .accordion_trigger.accordion_open::before {
		transform: translate(0, -50%) rotate(-45deg);
	}
	.menu-item-has-children > div span {
		display: none;
	}
	.menu-item-has-children .sub-menu,
	.head_accordion_wrap ul {
		display: none;
	}
	.head_accordion_wrap ul li a {
		font-size: 12px;
	}
}


@media screen and (min-width:1420px) {
    .g_nav > li:not(:last-child) {
		margin-right: 3.125vw;
	}
}

@media screen and (max-width:1420px) {
    .g_nav > li:not(:last-child) {
		margin-right: 2vw;
	}
    .g_nav .sub-menu.long_box > li{font-size: 13px;}
}

@media screen and (max-width:1220px) {
.g_nav .sub-menu.long_box > li{font-size: 12px;}
.g_nav .menu-item-has-children:hover > div.long_box span:last-of-type{text-align: center;}
    
    .g_nav .sub-menu.long_box{padding-right: 1vw;}
}

@media print,screen and (min-width:1025px) {
	#header_wrap{
		height: 100px;
		padding-left: 1.5625vw;
		padding-right: 1.5625vw;
	}
	#logo {
		max-width: 20%;
		max-height: 64px;
	}
	#hd_inner,
	#hd_inner nav{
		height: 100%;
	}
	#hd_inner .nav_inner {
		display: flex;
		height: 100px;
	}
	#head_contact {
		display: none;
	}
	.g_nav{
		display: flex;
		float: right;
		align-items: center;
		height: 100%;
		font-weight: bold;
	}
	.g_nav > li {
		height: 100%;
	}

	.g_nav > li > a {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		height: 100px;
	}
	.g_nav > li:hover > a {
		position: relative;
		height: 140px;
		padding-bottom: 40px;
	}
	.g_nav > li.menu-item-has-children > a {
		padding-right: 1.5625vw;
	}
	.g_nav > li > a::before{
		content: "";
		position: absolute;
		bottom: 0px;
		right: 50%;
		width: 0;
		height: 5px;
		background-color: #009051;
		transition:0.3s ease-out;
	}
	.g_nav > li.current_page_item > a::before,
	.g_nav > li:hover > a::before{
		width: 100%;
		right: 0;
		bottom: 40px;
	}
	.g_nav > li.menu-item-has-children > a::after{
		content: "";
		position: absolute;
		top: calc(50px - 8px);
		right: 0;
		display: block;
		height: 8px;
		width: 8px;
		border-top: solid #222 1px;
		border-right: solid #222 1px;
		transform: rotate(135deg);
		transition: 0.3s ease-out;
	}
	.g_nav > li.menu-item-has-children:hover > a::after{
		top: calc(50px - 3px);
		transform: rotate(-45deg);
	}

	/*.menu-item-has-children*/	
	.g_nav .menu-item-has-children{position:relative;}
	.g_nav .menu-item-has-children > a{
		letter-spacing: normal;
		position:relative;
		z-index:2;
		transition:0.3s ease-out;
	}
	.g_nav .menu-item-has-children > a:hover{
		color: #009051;
	}
	.g_nav .menu-item-has-children > a:hover span::before{
		opacity: 0;
	}
	.g_nav .menu-item-has-children > a:hover span::after{
		opacity: 1;
	}
	/* .g_nav .menu-item-has-children::before,
	.g_nav .menu-item-has-children::after, */
	.g_nav .sub-menu::before {
		content: "";
		visibility:hidden;
		position:absolute;
		z-index:2;
		display:flex;
		padding:0;
		opacity:0;
		transition:0.3s ease-out;
	}
	.g_nav .sub-menu{
		visibility:hidden;
		position:absolute;
		top: 140px;
		left: 50%;
		z-index:1;
		display:flex;
		flex-direction: column;
		width: 41.66vw;
		height: 240px;
		margin: -1rem 0 0;/*topやbottomでの調整ではなくmarginでfadein-downを表現*/
		padding:30px 2.6vw 0 calc(15.625vw + 2.6vw);
		background-color: #fff;
		opacity:0;
		text-align:left;
		white-space:nowrap;
		transition: 0.3s ease-out;
		transform:translate(-50%,0);
	}
    
    .g_nav .sub-menu.long_box{font-size: 15px;height: 280px;}

    .g_nav .sub-menu.long_box--lage{font-size: 15px;height: 360px;}/* 20230322 add */
    
	.g_nav .menu-item-has-children > div.long_box{height: 280px;bottom: calc(-280px - 40px + 1rem);}

	/* 20230322 add */
    /* .g_nav .menu-item-has-children > div.long_box--lage{height: 360px;bottom: calc(-280px - 40px + 1rem);} */

    .g_nav .menu-item-has-children > div.long_box::before,
    .g_nav .menu-item-has-children > div.long_box::after
    {height: 280px;}

	/* 20230322 add */
	.g_nav .menu-item-has-children > div.long_box--lage::before,
    .g_nav .menu-item-has-children > div.long_box--lage::after
    {height: 360px;}

    .g_nav .menu-item-has-children:hover > div.long_box{bottom: calc(-280px - 40px);}

	.g_nav .menu-item-has-children:hover > div span.margin-top-minus-m-size{
		margin-top: -40px;
	}

	/* 20230322 add */
    /* .g_nav .menu-item-has-children:hover > div.long_box--lage{bottom: calc(-360px - 40px);} */

	/*    
    .g_nav .sub-menu.long_box{height: 320px;}
    
    .g_nav .menu-item-has-children > div.long_box{bottom: calc(-320px - 40px + 1rem);}
    
    .g_nav .menu-item-has-children > div.long_box,
    .g_nav .menu-item-has-children > div.long_box::before,
    .g_nav .menu-item-has-children > div.long_box::after
    {height: 300px;}
*/
    
    
    
	.g_nav .menu-item-has-children:not(:hover) .sub-menu{
		pointer-events: none;
	}
	.g_nav .menu-item-has-children:hover .sub-menu{
		margin: 0;
	}


	.g_nav .sub-menu::before {
		top: -1rem;
		left: 50%;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 0 20px 20px 20px;
		border-color: transparent transparent #fff transparent;
		margin:0;
		opacity:0;
		transform:translate(-50%,0);
	}
	.g_nav .menu-item-has-children:hover .sub-menu,
	.g_nav .menu-item-has-children:hover .sub-menu::before,
	.g_nav .menu-item-has-children:hover > div {
		visibility:visible;
		opacity:1;
	}

	.g_nav .menu-item-has-children > div {
		position: absolute;
		z-index: 2;
		bottom: calc(-240px - 40px + 1rem);
		left: calc(50% - (41.66vw / 2));
		width: 15.625vw;
		height: 240px;
		margin:0;
		visibility:hidden;
		opacity: 0;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		transition: 0.3s ease-out;
		pointer-events: none;
	}
	.g_nav .menu-item-has-children:hover > div {
		bottom: calc(-240px - 40px);
	}
	.g_nav .menu-item-has-children:hover > div span {
		position: relative;
		z-index: 3;
		color: #fff;
		margin: 5px 0;
	}
	.g_nav .menu-item-has-children:hover > div span:first-of-type {
		font-size: 30px;
	}
	.g_nav .menu-item-has-children:hover > div span:last-of-type {
		font-size: 18px;
		font-family: futura-pt, sans-serif;
		font-weight: normal;
	}
	body.en .g_nav .menu-item-has-children:hover > div span {
		font-size: 30px;
		font-weight: 700;
		text-align: center;
		line-height: 1.5;
	}


	.g_nav .menu-item-has-children > div::before,
	.g_nav .menu-item-has-children > div::after {
		content: "";
		position: absolute;
		display: block;
		top: 0;
		left: -1px;/*widthが比率なので1pxずれ対応*/
		width: 15.625vw;
		height: 240px;
		margin:0;
	}
	.g_nav .menu-item-has-children > div::before{
		background-color: #009051;
		mix-blend-mode:multiply;
		z-index: 3;
	}
	.g_nav .menu-item-has-children > div::after {
		z-index: 2;
		background-size: cover;
		background-position: center;
	}


	.g_nav .nav_business_areas.menu-item-has-children > div::after {
		background-image: url(../images/nav_bg_business_areas.jpg);
	}
	.g_nav .nav_company.menu-item-has-children > div::after{
		background-image: url(../images/nav_bg_company.jpg);
	}
	.g_nav .nav_ir.menu-item-has-children > div::after{
		background-image: url(../images/nav_bg_ir.jpg);
	}
	.g_nav .nav_csr.menu-item-has-children > div::after{
		background-image: url(../images/nav_bg_csr.jpg);
	}
	.g_nav .nav_recruit.menu-item-has-children > div::after{
		background-image: url(../images/nav_bg_recruit.jpg);
	}

	.g_nav .sub-menu > li {
		margin-bottom: 10px;
	}
	.g_nav .sub-menu > li > a,
	.g_nav .sub-menu span.accordion_trigger{
		display:flex;
		justify-content: flex-start;
		align-items: center;
		height: 30px;
		line-height: 1em;
		padding:0 0 10px;
		position:relative;
		text-decoration: none;
	}
	.g_nav .sub-menu span.accordion_trigger{
		transition: 0.3s ease-out;
	}
	.g_nav .sub-menu .head_accordion_wrap{
		border-bottom: #22222233 solid 1px;
	}
	.g_nav .sub-menu span.accordion_trigger + ul {
		display: none;
		padding-bottom: 10px;
	}
	.g_nav .sub-menu span.accordion_trigger + ul li a {
		font-size: 14px;
		margin-bottom: 0;
		padding-left: 10px;
		border: none;
	}
	.g_nav .sub-menu span.accordion_trigger + ul li:not(:first-child) a {
		margin-top: 5px;
	}


	.g_nav .sub-menu span.accordion_trigger + ul li a::before {
		content: "-";
		margin-right: 0.25em;
	}
	.g_nav .sub-menu span.accordion_trigger + ul li a::after {
		display: none;
	}


	.g_nav .sub-menu > li > a::before,
	.g_nav .sub-menu span.accordion_trigger::before{
		content: "";
		position: absolute;
		top: 0.5em;
		right: 0;
		display: block;
		height: 8px;
		width: 8px;
		border-top: solid #222 1px;
		border-right: solid #222 1px;
		transform: translate(0,-50%) rotate(45deg);
		transition:0.3s ease-out;
	}
	.g_nav .sub-menu > li > a:hover::before{
		border-top: solid #009051 1px;
		border-right: solid #009051 1px;
		right: 0.5em;
	}

	.g_nav .sub-menu span.accordion_trigger::before{
		transform: translate(0,-50%) rotate(135deg);
	}
	.g_nav .sub-menu span.accordion_trigger.accordion_open {
		color: #009051;
	}
	.g_nav .sub-menu span.accordion_trigger.accordion_open::before{
		border-color: #009051;
		transform: translate(0,-50%) rotate(-45deg);
	}

	#head_btn {
		display: flex;
		align-items: center;
		margin-left:5.2vw;
	}

	#head_btn > * {
		height: 60px;
	}

	#head_btn .lang_btn a {
		min-width: 4.89vw;
		padding: 0 10px;
	}
	#head_btn .lang_btn a:hover {
		color: #fff;
		background-color: #222;
	}


}



@media screen and (min-width:1025px) and (max-width:1280px) {
	.g_nav {
		font-size: 12px;
	}
	.g_nav > li:not(:last-child) {
		margin-right: 1.5vw;
	}
	.g_nav > li > a {
		white-space: nowrap;
	}
	.g_nav .menu-item-has-children:hover > div span:first-of-type {
		font-size: 18px;
	}
	#head_btn {
		margin-left: 2.65vw;
	}
}
@media screen and (min-width:1280px) and (max-width:1377px) {
	.g_nav {
		font-size: 12px;
	}
	.g_nav .menu-item-has-children:hover > div span:first-of-type {
		font-size: 24px;
	}
}

@media screen and (max-width:1380px)  {
   	.g_nav {
		font-size: 12px;
	} 
    
}

@media screen and (min-width:1381px) and (max-width:1600px) {
	.g_nav {
		font-size: 14px;
	}
	.g_nav .menu-item-has-children:hover > div span:first-of-type {
		font-size: 24px;
	}
}
@media screen and (min-width:1601px)  {
}

/*ie用*/
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
	#header_wrap{
		box-shadow: 0 0 0 #fff;
	}
	#hd_inner nav {
		margin-right: 3.12vw;
	}
	#head_btn {
		margin: 0 3.12vw 0 0;
	}
	.g_nav .menu-item-has-children > div {
		bottom: calc(-240px - 40px);
	}
	.g_nav .menu-item-has-children > div::before {
		opacity: 0.7;
	}
	.g_nav .sub-menu{
		margin: 0;
	}
	#head_btn .lang_btn a {
		background-color: #d2d2d2;
	}
}










/* ----------- */
/* #burger_btn */
/* ----------- */
@media screen and (max-width:1024px) {
	#burger_btn,
	#burger_btn *{box-sizing: border-box;}
	#burger_btn {
		width: 44px;
		height: 44px;
		background-color: #222;
		position: fixed;
		top: 0;
		right: 0;
		transition: background 200ms;
		transition: 0.5s ease-out;
		/* cursor:pointer; */
		z-index: 150;
	}
	#burger_btn.open_menu {
		background-color: #FFF;
	}
	#burger_btn.opt {opacity: 0;}
	#burger_btn::after{display: block;}
	#burger_btn .btn_mark{
		width: 20px;
		height: 12px;
		background: transparent;
		display: block;
		position: absolute;
		top: 50%;
		right: 50%;
		transform: translate(50%,-50%);
		transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	}
	#burger_btn.open_menu {
		position: fixed;
		opacity: 1;
	}
	#burger_btn.open_menu .btn_mark{background: transparent;}
	#burger_btn .btn_mark::before,
	#burger_btn .btn_mark::after,
	#burger_btn .btn_mark span{
		width: 100%;
		height: 1px;
		background: #FFF;
		display: block;
		position: absolute;
		left: 0;
		transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	}
	#burger_btn .btn_mark::before,
	#burger_btn .btn_mark::after{
		content: "";
	}

	.ud_page #burger_btn .btn_mark::before,
	.fixed + #burger_btn .btn_mark::before{
		width: 100%;
		height: 100%;
		background: #FFF;
		display: block;
		position: absolute;
		content: "";
		left: 0;
		transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	}

	.ud_page #burger_btn .btn_mark::after,
	.fixed + #burger_btn .btn_mark::after{
		width: 85%;
		height: 100%;
		background: #FFF;
		display: block;
		position: absolute;
		content: "";
		left: 0;
		transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	}
	.sp_accordion_trigger::before {
		width: 11px;
		height: 1px;
		top: 50%;
		right: 0.625rem;
	}
	.sp_accordion_trigger::after {
		width: 1px;
		height: 11px;
		top: calc(50% - 5px);
		right: calc(0.625rem + 5px);
	}
	#burger_btn .btn_mark::before{top: 0px;}
	#burger_btn.open_menu .btn_mark::before{
		transform: rotate(45deg);
	}
	#burger_btn .btn_mark::after{bottom: 0;}
	#burger_btn.open_menu .btn_mark::after{
		width: 100%;
		transform: rotate(-45deg);
	}
	#burger_btn .btn_mark span{
		top: 50%;
		transform: scale(1,1) translate(0,-50%);
	}
	#burger_btn.open_menu .btn_mark span{
		transform: scale(0,1) translate(0,-50%);
	}
	#burger_btn.open_menu .btn_mark::before,
	#burger_btn.open_menu .btn_mark::after{
		top: 5px;
		background-color: #222;
	}
}

/* ------------------- */
/* #drawer_global_navi */
/* ------------------- */
@media screen and (max-width:1279px) {
	#drawer_global_navi,
	#drawer_global_navi *{box-sizing: border-box;}
	#drawer_global_navi {
		display: none;
		width:100%;
		height:100%;
		background-color: #222;
		position:fixed;
		z-index:100;
		top:0;
		right: 0;
		margin:0;
		padding: 13.5vh 5.33vw 0;
		font-size: 1rem;
		box-sizing:border-box;
		transition:200ms visibility;
		overflow-y: scroll;
		/* ↑ 20230322 add スクロールが出来ない状態になっていたため追加*/
	}
	.sp_nav {
		padding: 0.13vw 0;
		display: flex;
		flex-direction: column;
		float: none;
	}
	.sp_nav > li{
		padding: 0.75em 0;
		border-bottom: 1px solid #ffffff33;
	}
	.sp_nav .contact_btn {
		display: none;
	}
	.sp_nav ul li {
		padding-left: 0.75em;
	}
	.sp_nav a,
	.sp_nav .accordion_trigger{
		width: 100%;
		display: block;
		position: relative;
		padding: 0.5rem 0;
		font-size: 1rem;
		color: #fff;
		line-height: 1.25;
		text-decoration: none;
	}
	.sp_nav a:hover{color: #FFF!important;}
	.sp_nav ul li a {
		padding: 0.375em 0 0.375em 0;
		background-repeat: no-repeat;
		background-position: left center;
	}
	.sp_nav ul li a::before {
		content: '-';
		padding-right: 0.25em;
	}
}
@media print,screen and (min-width:1280px) {
	#drawer_global_navi {display: none;}
}


/* ----------------- */
/* ----------------- */
/* 共通 */
/* ----------------- */
/* ----------------- */


/* -------- */
/* .content_wrap */
/* -------- */
@media screen and (max-width:767px) {
	.content_wrap {
		max-width: 100vw;
		margin: 0;
		padding: 13.33vw 5.33vw;
		overflow: hidden;
	}
	.content_wrap + .content_wrap {
		padding: 0 5.33vw 13.33vw;
	}
}
@media screen and (min-width:768px) and (max-width:1024px) {
	.content_wrap {
		padding: 50px 30px;
	}
	.content_wrap + .content_wrap {
		padding: 0px 30px 50px;
	}
}
@media print,screen and (min-width:1025px) {
	.content_wrap {
		max-width: calc(1200px + 4vw);
		margin: 0 auto;
		padding: 100px 2vw;
	}
	.content_wrap + .content_wrap {
		padding: 0px 2vw 100px;
	}
	.content_wrap.size_l {
		max-width: calc(1264px + 4vw);
	}
}

/* -------- */
/* .border_anime_list */
/* -------- */
.border_anime_list li a,
.border_anime_list.head_accordion_wrap {/*globalナビでも使用しているのでliは必要*/
	position: relative;
	border-bottom: #22222233 solid 1px;
}
@media print,screen and (min-width:1025px) {
	.border_anime_list li a,
	.border_anime_list.head_accordion_wrap {
		box-sizing: border-box;
		display: block;
	}
	.border_anime_list li a::after,
	.border_anime_list.head_accordion_wrap::after {
		content: '';
		position: absolute;
		z-index: 1;
		right: 0;
		left: auto;
		width: 0;
		bottom: -1px;
		height: 1px;
		box-sizing: border-box;
		background: #009051;
		transition: 0.3s;
	}
	.border_anime_list li a:hover::after,
	.border_anime_list.head_accordion_wrap:hover::after {
		width: 100%;
		left: 0;
	}
}


/* ----------- */
/* .title_type1 */
/* ----------- */
.title_type1 {
	text-align: center;
	font-size: 1.875rem;
	margin-bottom: 50px;
}
body.en .title_type1 {
	color: #009051;
}
.title_type1.style_left {
	text-align: left;
}
.title_type1 .text_small,
.title_type1 .text_en {
	font-size: 1.125rem;
	font-weight: normal;
	display: block;
	color: #009051;
}
.title_type1.color_white .text_en{
	color: #fff;
}
@media screen and (max-width:1024px) {
	.title_type1 {
		font-size: 22px;
		margin-bottom: 30px;
	}
	.title_type1 .text_small,
	.title_type1 .text_en {
		font-size: 1rem;
		line-height: 1.25;
	}

}

/* -------- */
/* .news_list */
/* -------- */
.news_list{
	padding-left: 0!important;
}
.news_list li{
	list-style: none;
}
.news_list li p{
	margin: 0;
}
.news_list .news_date {
	font-weight: 300;
	color: #009051;
}
.news_list .badge_new {
	margin-top: 5px;
	padding: 2px 5px;
	background-color: #B71C1C;
	font-size: 12px;
	color: #fff;
	line-height: 1em;
}
@media screen and (max-width:1024px) {
	.news_list li {
		margin-bottom: 1rem;
	}
	.news_list li a{
		display: flex;
		align-items: center;
		flex-wrap: wrap;
	}
	.news_list .badge_new {
		display: block;
		font-size: 10px;
		padding: 5px 5px 2px;
		margin-top: 2px;
		margin-left: 1rem;
	}
	.news_list .news_title{
		width: 100%;
		margin: 5px 0;
	}
}
@media print,screen and (min-width:1025px) {
	.news_list li a {
		display: flex;
		justify-content: flex-start;
		align-items: flex-start;
		margin-bottom: 1rem;
		padding-bottom: 1rem;
	}
	.news_list li a p:not(:last-child) {
		margin-right: 20px;
	}

}

/* -------- */
/* .common_btn */
/* 構成　→　.common_btn > div > div > ボタンオブジェクト */
/* -------- */
.common_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 50px;
}
.common_btn div,
.common_btn div a,
.common_btn div input[type="button"],
.common_btn div input[type="submit"] {
	position: relative;
	border-radius: 30px;
	min-width: 250px;
	width: auto;
	height: 60px;
	margin: 0 auto;
}
.common_btn div div,
.common_btn div a,
.common_btn div input[type="button"],
.common_btn div input[type="submit"] {
	z-index: 1;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	background-color: transparent;
	padding: 0 1.25em;
}
.common_btn > div {
	position: relative;
	width: 250px;
	padding: 0;
}
.common_btn > div::before,
.common_btn > div::after {
	z-index: 1;
	content: "";
	position: absolute;
	top: 50%;
	display: block;
	width: 25px;
	height: 1px;
}
.common_btn > div::before {
	left: calc(100% - 25px);
	background-color: #fff;
	transition: 0.15s ease-in 0s;
}
.common_btn > div::after {
	left: 100%;
	background-color: #009051;
	transition: 0.15s ease-out 0.15s;
}
.common_btn > div:hover::before,
.common_btn > div:hover::after {
	width: 0;
}
.common_btn > div:hover::before {
	transition: 0.15s ease-out 0.15s;
}
.common_btn > div:hover::after {
	transition: 0.15s ease-in 0s;
}
.common_btn > div div {
	z-index: 0;
}
.common_btn.type_gray > div div {
	background-color: #D1D1D1;
}
.common_btn > div:hover div {
	background-color: transparent;
}
.common_btn div div::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 200%;
	height: 200%;
	z-index: 0;
	background: linear-gradient(135deg, #009051 0%,#009051 50%,#0071A7 100%);
	transition: 0.5s ease-in-out;
}


.common_btn > div:hover div::after {
	top: 0%;
	left: -100%;
	height: 100%;
	transition: 0.3s ease-in-out;
}

.common_btn.type_gray > div div,
.common_btn.pointer_none > div div {
	background-color: #555555;
}
.common_btn.type_gray > div:hover div,
.common_btn.pointer_none > div:hover div {
	background-color: #D1D1D1;
}
.common_btn.type_gray > div::after,
.common_btn.pointer_none > div::after {
	background-color: #D1D1D1;
}
.common_btn.type_gray div div::after,
.common_btn.pointer_none div div::after {
	background: #D1D1D1;
}
.common_btn.type_gray div:hover div::after,
.common_btn.pointer_none div:hover div::after {
	background: #555555;
}


@media screen and (max-width:1024px) {
	.common_btn {
		margin-top: 30px;
	}
	.common_btn a,
	.common_btn input[type="button"],
	.common_btn input[type="submit"] {
		min-width: 200px;
		width: auto;
		height: 40px;
		font-size: 14px;
	}
}

@media screen and (min-width:768px) and (max-width:1024px) {
	.common_btn > div{
		width: 200px;
	}
	.common_btn div,
	.common_btn div a,
	.common_btn div input[type="button"],
	.common_btn div input[type="submit"] {
		min-width: 200px;
	}
}



@media all and (-ms-high-contrast: none) {
	.common_btn {
		justify-content: flex-start;
	}
	.common_btn div div,
	.common_btn div a,
	.common_btn div input[type='button'],
	.common_btn div input[type='submit'] {
		padding: 0;
	}
}


/* -------- */
/* contact_btn */
/* -------- */
.contact_btn a {
	position: relative;
	width: 174px;
	height: 60px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	color: #fff!important;
	background-color: #009051;
	transition: 0.3s ease-out;
	overflow: hidden;
}
.contact_btn a::before {
	position: relative;
	z-index: 2;
	content: "";
	display: block;
	width: 18px;
	height: 15px;
	background-image: url(../images/icon_mail.svg);
	background-size: contain;
	position: center;
}
.contact_btn a span {
	position: relative;
	z-index: 2;
}
@media screen and (max-width:1024px) {
	main .contact_btn a::before {
		margin-right: 1em;
	}
}
@media print,screen and (min-width:1025px) {
	.contact_btn a::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 200%;
		height: 200%;
		z-index: 1;
		opacity: 1;
		background: linear-gradient(135deg, #009051 0%,#009051 50%,#0071A7 100%);
	}
	.contact_btn a::before {
		margin-right: 15px;
	}
	.contact_btn a:hover::after {
		top: -100%;
		left: -100%;
	}
}


/* -------- */
/* .assembly_list */
/* -------- */
/*
.assembly_list li {
	padding-bottom: 0.875rem;
	margin-bottom: 0.875rem;
	border-bottom: 1px solid #d2d2d2;
}
.assembly_title {
	font-weight: bold;
	color: #009051;
	background-repeat: no-repeat;
	background-image: url(../images/caret_right_g.svg);
	background-position: left center;
	padding-left: 0.75em;
	margin-bottom: 0.25em;
	font-size: calc(1rem + 2px)
}

.assembly_list table:not(.table_style),
.assembly_list table:not(.table_style) th,
.assembly_list table:not(.table_style) td {
	border: none;
}

.assembly_list table:not(.table_style) th {
	font-weight: normal;
	vertical-align: top;
	white-space: nowrap;
}
.assembly_list table:not(.table_style) th::after {
	content: "：";
}

.assembly_list .meeting_link {
	padding: 0 0.5em;
}
.assembly_list .meeting_link span {
	text-decoration: underline;
}
.assembly_list .meeting_link::after {
	width: 1em;
	height: 1em;
	content: "\f35d";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	margin-left: 0.5em;
	transition: 0s;
}


@media screen and (max-width:1024px) {
	.assembly_title {
		font-size: 1rem;
	}
}
@media print,screen and (min-width:1025px) {
	.assembly_title {
		font-size: calc(1rem + 2px);
	}
}
*/
/* -------- */
/* pc-col_blocks */
/* -------- */
.pc-col_blocks {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.pc-col_blocks:not(.before-none)::before,
.pc-col_blocks.col4::after{
	content: "";
	order: 1;
}

@media screen and (max-width:767px) {
	.bg_grad .pc-col_blocks {
		padding-left: calc(10vw - 5.33vw);
		padding-right: calc(10vw - 5.33vw);
	}
	.pc-col_blocks > *,
	.pc-col_blocks::before {
		width: 100%;
	}
	.pc-col_blocks.sp-col2 > *,
	.pc-col_blocks.sp-col2::before {
		width: 42.13vw;
	}
	.pc-col_blocks.col2.sp-overflow_xscroll > * figure {
		width: 86.13vw;
		padding-right: 5.33vw;
	}
	.pc-col_blocks.col5.sp-overflow_xscroll > * {
		width: 34.66vw;
	}
	.pc-col_blocks.justify_center > *:not(:first-child),
	.pc-col_blocks.icon_small > *:not(:first-child) {
		margin-top: 20px;
	}

	.pc-col_blocks.col2 > *:nth-child(n+1),
	.pc-col_blocks.col3 > *:nth-child(n+2) {
		margin-top: 20px;
	}
	.pc-col_blocks.sp-col2 > *:nth-child(n+3) {
		margin-top: 20px;
	}
	.pc-col_blocks.justify_center.btn-col_blocks > .common_btn:first-child {
		margin-top: 0;
	}
	.pc-col_blocks.yellow_marker_block > *:not(:last-child) {
		margin-bottom: 20px;
	}

}
@media print,screen and (min-width:768px) {
	.pc-col_blocks.col2 > *,
	.pc-col_blocks.col2::before{
		width: 48.33%;
	}
	.pc-col_blocks.col2 > *:nth-child(n+3) {
		margin-top: 40px;
	}
	.pc-col_blocks.col2.small_blocks > *,
	.pc-col_blocks.col2.small_blocks::before{
		width: 44.16%;
	}
	.pc-col_blocks.col3 > *,
	.pc-col_blocks.col3::before,
	.pc-col_blocks.block_width_col3 > * {
		width: 31%;
        margin-bottom: 3.5%
	}
	.pc-col_blocks.block_width_col3 > * {
		margin-right: 1.75%;
		margin-left: 1.75%;
	}
	.pc-col_blocks.yellow_marker_block.block_width_col3 > *{
		width: 29%;
	}

	.pc-col_blocks.col4 > *,
	.pc-col_blocks.col4::before,
	.pc-col_blocks.col4::after{
		width: 22.5%;
	}
	.pc-col_blocks.col5 > *,
	.pc-col_blocks.col5::before,
	.pc-col_blocks.col5::after{
		width: 17.33%;
	}
	.pc-col_blocks.col3 > *:nth-child(n+4) {
		margin-top: 0.375rem;
	}
	.pc-col_blocks.justify_center {
		flex-wrap: nowrap;
	}
	.pc-col_blocks.justify_center.btn-col_blocks > *:not(:last-child) {
		margin-right: 55px;
	}
	.pc-col_blocks.justify_center.btn-col_blocks > .common_btn{
		margin-top: 0;
	}
}
@media screen and (min-width:768px) and (max-width:1024px) {
	.pc-col_blocks.col4 > *,
	.pc-col_blocks.col4::before,
	.pc-col_blocks.col4::after{
		width: 48.33%;
	}
	.pc-col_blocks.col4 > *:nth-child(n+3) {
		margin-top: 20px;
	}
}


/* -------- */
/* border_links */
/* -------- */
.border_links > * {
	position: relative;
	overflow: hidden;
}
.border_links > * > a {
	display: block;
}
.border_links > * > a::before,
.border_links > * > a::after {
	content: "";
	position: absolute;
	display: block;
}
.border_links > * > a::before{
	top: 0;
	left: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	border-top: #009051 5px solid;
	background-color: #fff;
}
/* .border_links > * > a::after {
	width: 300%;
	height: 300%;
	z-index: 0;
	opacity: 0;
	background: linear-gradient(135deg, #fff 0%,#fff 33%,#009051 50%,#009051 66%,#0071A7 100%);
	transition: 0.3s ease-in;
} */
.border_links > * > a::after {
	top: -100%;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #009051 0%,#0071A7 100%);
}

.border_links > * > a > * {
	position: relative;
	z-index: 1;
}

.img_wrap--icon > img{ height: 90px; }
/* 20230322 add */

@media screen and (max-width:1024px) {
	.border_links > * {
		height: 145px;
	}
	.border_links > * > a {
		padding: 33px 0 30px;
	}
	.border_links > * > a::before{
		border-top: #009051 3px solid;
	}
	.border_links figure .img_wrap {
		width: 50px;
		height: 43px;
		margin: auto;
	}
	.border_links figure .img_wrap img {
		width: 100%;
		height: 43px;
	}
	.border_links figure .img_wrap img:nth-child(2) {
		display: none;
	}
	.border_links figcaption {
		font-size: 18px;
		font-weight: bold;
		margin-top: 15px;
        line-height: 1.25;
	}
}
@media print,screen and (min-width:1025px) {
	.border_links > * {
		height: 240px;
	}
	.border_links > * > a {
		padding: 55px 0 50px;
	}
	.border_links > * > a:hover {
		color: #fff;
	}
	.border_links > *:hover > a::after {
		top: 0%;
		left: 0%;
		height: 100%;
		opacity: 1;
		transition: 0.3s ease-out;
	}
	.border_links figure .img_wrap {
		position: relative;
		height: 90px;
		display: flex;
		justify-content: center;
		align-items: flex-end;
	}
	.border_links figure .img_wrap img {
		position: relative;
		z-index: 1;
	}
	.border_links figure .img_wrap img:nth-child(2) {
		position: absolute;
		bottom:0;
		left:50%;
		z-index: 0;
		opacity: 0;
		transform: translate(-50%,0);
	}

	.border_links a:hover figure .img_wrap img:nth-child(1) {
		opacity: 0;
	}
	.border_links a:hover figure .img_wrap img:nth-child(2) {
		opacity: 1;
	}

	.border_links figcaption {
		font-size: 22px;
		font-weight: bold;
		margin-top: 30px;
        padding: 0 2%;
        line-height: 1.25;
	}
	
}


/* -------- */
/* shadow_block */
/* shadow_blocks */
/* -------- */
.shadow_block,
.shadow_blocks > *{
	box-shadow: 0 0 20px #00000029;
}
@media all and (-ms-high-contrast: none) {
	.shadow_block,
	.shadow_blocks > *{
		box-shadow: 0 0 20px #d1d1d1;
	}
}



/* -------- */
/* img_text_blocks */
/* -------- */
.img_text_blocks > * {
	background-color: #fff;
}
.img_text_blocks > * > a {
	display: flex; /*hover時のarrowの位置を安定させる為*/
	flex-direction: column;
	height: 100%;
}
.img_text_blocks figcaption {
	position: relative;
	font-size: 1.625rem;
	font-weight: bold;
	padding: 30px 0;
}
body.en .img_text_blocks figcaption {
	padding: 30px;
}
.img_text_blocks a > div p::after,
.img_text_blocks a figcaption::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    display: block;
    height: 12px;
    width: 12px;
    border-top: solid #222 1px;
    border-right: solid #222 1px;
    transform: translate(10px,-50%) rotate(45deg);
    transition: 0.3s ease-out;	
	opacity: 0;
}

.img_text_blocks figcaption .text_en {
	font-size: 1.125rem;
	font-weight: 400;
}
.img_text_blocks .img_wrap{
	overflow: hidden;
	background-color: #000;
}
.img_text_blocks > * > div {
	height: 100%;
}
.img_text_blocks > * > div .text_title,
.img_text_blocks > * > div p {
	position: relative;
	padding: 30px;
	height: 100%;
}
.img_text_blocks > * > div .text_title {
	font-weight: bold;
	height: auto;
	padding-bottom: 1rem;
	margin-bottom: 0;
	font-size: 1.125rem;
	color: #009051;
}
.img_text_blocks > * > div .text_title + p {
	padding-top: 0;
}

@media screen and (max-width:1024px) {
	.img_text_blocks figcaption {
		padding: 20px 0;
		font-size: 18px;
		line-height: 1.5;
	}
	.img_text_blocks figcaption .text_en {
		padding-top: 5px;
	}
}

@media print,screen and (min-width:1025px) {
	.img_text_blocks a:hover {
		color: #222;
	}
	.img_text_blocks a:hover .img_wrap img{
		transform: scale(1.25);
		opacity: 0.6;
	}
	.img_text_blocks a:hover > div p::after,
	.img_text_blocks a:hover figcaption::after {
		opacity: 1;
		transform: translate(0px,-50%) rotate(45deg);
	}
}


@media all and (-ms-high-contrast: none) {
	.img_text_blocks > * > a {
		max-height: 438px;
	}
}


/* -------------- */
/* .sp-overflow-xscroll */
/* -------------- */
@media screen and (max-width:767px) {
    
/*    
	.sp-overflow_xscroll {
		overflow-x: scroll!important;
		margin-left: -5.33vw;
		margin-right: -5.33vw;
		padding-right: 5.33vw;
		padding-left: 5.33vw;
	}
	.sp-overflow_xscroll.pc-col_blocks {
		flex-wrap: nowrap;
	}
	.sp-overflow_xscroll.pc-col_blocks::before {//右端までスクロールした際のpaddingを取る為のもの
		content: '';
		order: 1;
		min-width: 1px!important;
		height: 1px;
	}
	.sp-overflow_xscroll table {
		white-space: nowrap;
		min-width: 767px;
	}
	
	.sp-overflow_xscroll::before {
		content: '//※横にスクロールできます';
	}
    
    */
}



/* -------- */
/* .mix_screen */
/* -------- */
.mix_screen {
	position: relative;
	overflow: hidden;
}
.mix_screen > * {
	position: relative;
	z-index: 1;
}

.mix_screen > .mix_screen_img {
	width: 100%;
	min-height: 100%;
	position: absolute;
	z-index: 0;
	top:50%;
	left: 50%;
	transform: translate(-50%,-50%);
	mix-blend-mode:screen;
	opacity: 0.3;
}
.mix_screen > .mix_screen_img img {
	position: absolute;
	top:50%;
	left: 50%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate(-50%,-50%);
}
@media screen and (max-width:1024px) {
	.mix_screen > .mix_screen_img img {
		min-height: 100%;
	}
}
@media all and (-ms-high-contrast: none) {
	.mix_screen > .mix_screen_img img {
		width: auto;
		max-width: none;
		min-width: 100%;
		height: auto;
		max-height: 100%;
	}
}


/* -------- */
/* footer */
/* -------- */
footer {
	background-color: #222;
}
#footer_links a {
	color: #fff;
}
#footer_links > ul{
	display: flex;
	justify-content: space-between;
}
body.en #footer_links > ul{
	justify-content: flex-start;
}
body.en #footer_links > ul > li{
	margin-right: 50px;
}
#footer_links a{display: inline-block;}
#footer_links a:hover{color: #009051;}

#copyright{
	color: #222;
}
#foot_auth_copy {
	background-color: #fff;
}
#foot_auth_member {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
}

@media screen and (max-width:767px) {
	#foot_auth_member {
		flex-wrap: wrap;
	}
	#foot_auth_fsc {
		margin-top: 20px;
	}
	#foot_auth_simestamp {
		margin-top: 20px;
	}
	#foot_auth_sustanabile{
		margin-top: 0px;
	}
	#foot_auth_IPA {
		margin-top: 20px;
	}
}
@media screen and (max-width:1024px) {
	#footer_info_wrap .contact_btn,
	#footer_links {display: none;}
	#foot_logo {
		width: 27.46vw;
		max-width: 130px;
		margin: 0 auto;
	}
	#foot_auth_copy > div {
		padding-top: 20px;
		padding-bottom: 20px;
	}
	#foot_auth_member {
		display: flex;
		justify-content: center;
		padding-bottom: 20px;
	}
	#foot_auth_privacy {
		width: 12vw;
	}
	#foot_auth_iso,
	#foot_auth_isms{
		width: 35vw;
	}
	#foot_auth_fsc {
		width: 38.66vw;
	}
	#foot_auth_simestamp {
		width: 38.66vw;
	}
	#foot_auth_simestamp figure img:nth-child(2) {
		padding-top: 3px;
	
	}
	
	#foot_auth_sustanabile img{
		width: 38.66vw;
	}
	#foot_auth_IPA img{
		width: 100%;
		padding-bottom: 10px;
	}
	#copyright{
		font-size: 12px;
		position:absolute
		bottom:10px;
	}
}

@media print,screen and (min-width:1025px) {
	#footer_info_wrap {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 50px;
	}
	#footer_links ul ul {
		margin-top: 0.675rem;
	}
	#footer_links ul ul li {
		position: relative;
		padding-left: 1rem;
		margin-top: 0.25rem;
	}
	#footer_links ul ul li::before {
		color: #fff;
		content: "-";
		position: absolute;
		top: 0;
		left: 0;
	}
	#footer_links ul ul a {
		position: relative;
		display: flex;
		justify-content: flex-start;
		align-items: center;
	}

		
	
	/*
	#footer_links ul ul a::before,
	#footer_links ul ul a::after {
		position: absolute;
		left: 0;
		top: 50%;
		width: 0.75rem;
		height: 1em;
		display: inline-block;
		background-position: left center;
		background-repeat: no-repeat;
		content: "";
		transform: translate(0,-50%);
	}
	#footer_links ul ul a::before{
		background-image: url(../images/caret_right.svg);
		opacity: 1;
	}
	#footer_links ul ul a::after{
		background-image: url(../images/caret_right_g.svg);
		opacity: 0;
	}
	#footer_links ul ul a:hover::before{
		opacity: 0;
	}
	#footer_links ul ul a:hover::after{
		opacity: 1;
	}*/

	#foot_auth_copy > div {

		justify-content: space-between;
		align-items: center;
		padding-top: 30px;
		padding-bottom: 30px;
	}

	#foot_auth_member li {
		margin-right: 10px;
		width: 180px;
		display:flex;
		flex-wrap:no-wrap;/* 改行不許可 */
		
	}
	#foot_auth_member li#foot_auth_privacy {
		width: 66px;
	}
	
	/*
	#foot_auth_iso,
	#foot_auth_isms{
		width: 110px;
	}
	#foot_auth_fsc {
		width: 55px;
	}
	#foot_auth_IPA{
		width: 55px;
}
	#foot_auth_sustanabile{
		width: 55px;
}
	#foot_auth_simestamp {
		width: 64px;
	}
*/


	#foot_auth_fsc img {
		width: 100%;
	}
	#foot_auth_simestamp figure img:nth-child(2) {
		padding-top: 5px;
	}
	#foot_auth_sustanabile img{
		width: 90%;	
	}
	#foot_auth_IPA img{
		width: 70%;	
	}
	#copyright{
		font-size: 12px;
		position:absolute
		bottom:0;
			
	}

/* -------- */
/* .page_top */
/* -------- */
#page_top {
	position: fixed !important;
	right: 20px;
	bottom: 20px;
	width: 50px;
	height: 50px;
	overflow: hidden;
	display: none;
	border-radius: 50%;
	text-align: center;
	z-index: 30;
	transition: 0s;/*jsのfadein、fadeoutによるちらつき防止*/
	transition: bottom 0.05s;/*位置指定だけアニメーション*/
}
#page_top a {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	padding-top: 0px;
	position: relative;
	background-image: url(../images/to_top.svg);
    background-position: center center;
	/*background-color: #009051;*/
}
/*
#page_top a:before{
    display: block;
    width: 18px;
    height: 18px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(0, 5px) rotate(-45deg);
    position: relative;
    content: '';
}*/

@media screen and (max-width:1024px) {
	#page_top {
		width: 44px;
		height: 44px;
		bottom: 30px;
	}
}
@media print,screen and (min-width:1025px) {
	#page_top a:hover {
		opacity: 0.5;
	}
}



/* ------------------------------------ */
/* .link_btn_merit & .link_btn_document */
/* ------------------------------------ */
.link_btn_large_wrap_ud{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin: 0px 0 100px;
}
.link_btn_large_wrap,
.link_btn_large_wrap_top{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin: 100px 0 0px;
}
.link_btn_merit{
	width: 340px;
  height: 75px;
	margin-bottom: 70px;
	position: relative;
}
.link_btn_merit:before {
	font-family: 'Font Awesome 5 Free';
	font-size: 18px;
	line-height: 1;
	z-index: 1;
	position: absolute;
	top: calc(50% - 10px);
	right: 1rem;
	margin: 0;
	padding: 0;
	content: '\f054';
	font-weight: 900;
	color: #FFF;
}
.link_btn_merit a {
	position: relative;
	display: block;
	width: 340px;
  height: 75px;
	line-height: 75px;
	text-align: center;
	background: #eb6262;
	border-bottom: 5px solid #e84450;
	border-radius: 45px;
	color: #fff;
	font-size: 24px;
	font-weight: bold;
}
.link_btn_merit a:hover{
	margin-top: 3px;
	border-top: 2px solid #333;
	border-right: 2px solid #333;
	border-left: 2px solid #333;
  border-bottom: 2px solid #333;
	color: #333;
	background: #FFF;
}
.link_btn_merit a:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 340px;
  height: 75px;
	border-radius: 45px;
	box-shadow: none;
}
.link_btn_merit a:after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 340px;
  height: 75px;
	border-radius: 45px;
	box-shadow: none;
}

.link_btn_merit:hover:before {
	font-family: 'Font Awesome 5 Free';
	font-size: 18px;
	line-height: 1;
	z-index: 1;
	position: absolute;
	margin-top: 5px;
	top: calc(50% - 7px);
	right: 1rem;
	margin: 0;
	padding: 0;
	content: '\f054';
	font-weight: 900;
	color: #333;
}


.link_btn_merit a:before {
	-webkit-animation: ripple 1.5s ease .3s;
	animation: ripple 1.5s ease .3s;
	animation-iteration-count: infinite;
}
.link_btn_merit a:after {
	-webkit-animation: rippleSecond 1.5s ease;
	animation: rippleSecond 1.5s ease;
	animation-iteration-count: infinite;
}

@-webkit-keyframes ripple {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
	100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
}
@keyframes ripple {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
	100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
}
@-webkit-keyframes rippleSecond {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
	100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
}
@keyframes rippleSecond {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
	100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
}
@media screen and (max-width:1024px) {
	.link_btn_large_wrap_ud{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin: 0px 0 50px;
		max-width: 100vw;
    padding: 0vw 5.33vw;
	}
	.link_btn_large_wrap{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin: 50px 0 0px;
	}
	.link_btn_large_wrap_top{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin: 50px 0 0px;
		max-width: 100vw;
    padding: 0vw 5.33vw;
	}
	.link_btn_merit{
		/* max-width: 340px; */
		width: 80%;
		height: 75px;
		/* margin-bottom: 70px; */
		position: relative;
		margin: 0 auto 35px;
	}
	.link_btn_merit a {
		position: relative;
		display: block;
		/* max-width: 340px; */
		width: 100%;
		height: 75px;
		line-height: 75px;
		text-align: center;
		background: #eb6262;
		border-bottom: 5px solid #e84450;
		border-radius: 45px;
		color: #fff;
		font-size: 20px;
		font-weight: bold;
	}
	.link_btn_merit a:before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 75px;
		border-radius: 45px;
		box-shadow: none;
	}
	.link_btn_merit a:after {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 75px;
		border-radius: 45px;
		box-shadow: none;
	}
	@-webkit-keyframes ripple {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
	}
	@keyframes ripple {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
	}
	@-webkit-keyframes rippleSecond {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
	}
	@keyframes rippleSecond {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(232, 68, 80,0);}
		100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(232, 68, 80,1);}
	}
}



.link_btn_document{
	width: 465px;
  height: 110px;
	position: relative;
}
.link_btn_document:before {
	font-family: 'Font Awesome 5 Free';
	font-size: 1.6rem;
	line-height: 1;
	z-index: 1;
	position: absolute;
	top: calc(50% - 0.8rem);
	right: 1rem;
	margin: 0;
	padding: 0;
	content: '\f054';
	font-weight: 900;
	color: #FFF;
}
.link_btn_document:hover:before {
	font-family: 'Font Awesome 5 Free';
	font-size: 1.6rem;
	line-height: 1;
	z-index: 1;
	position: absolute;
	margin-top: 5px;
	top: calc(50% - 7px);
	right: 1rem;
	margin: 0;
	padding: 0;
	content: '\f054';
	font-weight: 900;
	color: #333;
}
.link_btn_document a {
	position: relative;
	display: block;
	width: 465px;
	height: 110px;
	line-height: 104px;
	text-align: center;
	background: rgba(245, 161, 24, 1);
	border-top: 3px solid #f08300;
	border-right: 3px solid #f08300;
	border-left: 3px solid #f08300;
	border-bottom: 8px solid #f08300;
	border-radius: 60px;
	color: #fff;
	font-size: 24px;
	font-weight: bold;
}

.link_btn_document a:hover{
	margin-top: 5px;
	border-top: 3px solid #333;
	border-right: 3px solid #333;
	border-left: 3px solid #333;
  border-bottom: 3px solid #333;
	color: #333;
	background: #FFF;
}
.link_btn_document a:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 465px;
	height: 110px;
	border-radius: 60px;
	box-shadow: none;
}

.link_btn_document a .fas{
	font-size: 35px;
	line-height: 35px;
	top: 5px;
  position: relative;
	transition: 0.05s ease-out !important;
}
.link_btn_document a:hover .fas{
	transition: 0.005s ease-in !important;
}

.link_btn_document a:after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 465px;
	height: 110px;
	border-radius: 60px;
	box-shadow: none;
}

.link_btn_document a:before {
	-webkit-animation: ripple_02 1.5s ease .3s;
	animation: ripple_02 1.5s ease .3s;
	animation-iteration-count: infinite;
}
.link_btn_document a:after {
	-webkit-animation: rippleSecond_02 1.5s ease;
	animation: rippleSecond_02 1.5s ease;
	animation-iteration-count: infinite;
}

@-webkit-keyframes ripple_02 {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
	100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
}
@keyframes ripple_02 {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
	100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
}
@-webkit-keyframes rippleSecond_02 {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
	100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
}
@keyframes rippleSecond_02 {
	0%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
	100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
}

@media screen and (max-width:1024px) {
	.link_btn_document{
		width: 95%;
		height: 110px;
		margin: 0 auto;
		position: relative;
	}
	.link_btn_document a {
		position: relative;
		display: block;
		width: 100%;
		height: 110px;
		line-height: 104px;
		text-align: center;
		background: rgba(245, 161, 24, 1);
		border-top: 3px solid #f08300;
		border-right: 3px solid #f08300;
		border-left: 3px solid #f08300;
		border-bottom: 8px solid #f08300;
		border-radius: 60px;
		color: #fff;
		font-size: 20px;
		font-weight: bold;
	}
	.link_btn_document a:before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 110px;
		border-radius: 60px;
		box-shadow: none;
	}
	.link_btn_document a .fas{
		font-size: 30px;
		line-height: 30px;
		top: 5px;
		position: relative;
		transition: 0.05s ease-out !important;
	}
	.link_btn_document a:after {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 110px;
		border-radius: 60px;
		box-shadow: none;
	}
	@-webkit-keyframes ripple_02 {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
	}
	@keyframes ripple_02 {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		100%{opacity: 0;-webkit-transform: scale(1.1,1.15);transform: scale(1.1,1.15);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
	}
	@-webkit-keyframes rippleSecond_02 {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
	}
	@keyframes rippleSecond_02 {
		0%{opacity: 0;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		20%{opacity: 1;-webkit-transform:scale(1);transform:scale(1);box-shadow: 0 0 0 3px rgba(245, 161, 24,0);}
		100%{opacity: 0;-webkit-transform: scale(1.2,1.25);transform: scale(1.2,1.25);box-shadow: 0 0 0 4px rgba(240, 131, 0, 1);}
	}
}

/*アンカー調整*/

.anchor {
    display: block;
    padding-top: 150px;
    margin-top: -150px;
}

/* ---- */
/* LAST */
/* ---- */

