@charset "utf-8";
/* all
-------------------------------------------------------------------*/
:root{
	--f12:0.75rem;
	--f14:0.875rem;
	--f18:1.25rem;
	--f19:1.1875rem;
	--f20:1.25rem;
	--f22:1.375rem;
	--hover:background .4s,color .4s,border-color .4s,opacity .4s,text-decoration-color .4s,transform .4s,filter .4s,box-shadow .4s,outline .4s;
	--sidebar:330px;
	--header:60px;
	--container:1200px;
	--wide:1680px;
	--inner: 4%;
	--over:calc(var(--inner) * -1);
	--fontcolor:#282828;
	--keycolor:#338800;
	--keyD:#33691E;
	--keyW:#F2F7EE;
	--accent:#D63C24;
	--accent2:#fabe00;
	--gray:#F2F2F2;
	--dgray:#A1A1A1;
	--color01:#D63C24;
	--color02:#338800;
	--color03: #1665ab;
	--color04:#B35900;
	--color05:#057CB3;
	--color06:#802C99;
	--color07:#827070;
	--color08:#e32053;
	--filterB: brightness(0) invert(0);
	--filterW: brightness(1) invert(0);
}
:root *,
:root *:before,
:root *:after{
	box-sizing: border-box;
}
:root img{
	transition:opacity .4s,filter .4s, transform .4s;
}
:root :is(a,label,button){
	transition:var(--hover);
	cursor:pointer;
}
:root :is(a,label,button) :is(i,span),
:root :is(a,label,button):before,
:root :is(a,label,button):after,
:root :is(a,label,button) :is(i,span):before,
:root :is(a,label,button) :is(i,span):after{
	transition:var(--hover);
}
:root a:not(.btn){
	text-decoration-line:underline;
	text-decoration-style: solid ;
	text-decoration-color:transparent;
	text-underline-offset:0.3em;
}
:root .text_link a{
	text-decoration:underline solid 1px;
	word-break: break-all;
}
:root .text_link a:has(>strong){
	color:#dd2200;
}
:root ul:after,
:root dl:after{
	display:none;
}
@media (any-hover: hover) {
	:root .text_link a:hover{
		text-decoration-color:transparent;
	}
}
:root sup{
	vertical-align:text-top;
	font-size:0.66em;
}
html {
	background: #FFFFFF;
	color: var(--fontcolor);
	font-size: 16px;
	line-height: 1.5;
	scroll-padding:var(--header);
	scroll-behavior:smooth;
	font-feature-settings:'palt';
	letter-spacing:0.03em;
}
body{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 500;
	font-style: normal;
}
html :is(.goti,form .goti){
	font-family: "Noto Sans JP", sans-serif;
}
html :is(.mincho,form .mincho){
	font-family: "Noto Serif JP", serif;
}
html :is(.eng,[lang="en"]){
	font-family: "Roboto", "Noto Sans JP", sans-serif;
}
body {
	width: 100%;
	font-size: 100%;
	display:flex;
	flex-direction:column;
	min-height:100vh;
	overflow-x: clip;
	position: relative;
}
header{
	width:var(--sidebar);
	position:fixed;
	left:0;
	top:0;
	bottom:0;
	padding: 1.25em 1.25em;
	border-top:solid 10px var(--keycolor);
	overflow-y:auto;
	scrollbar-width:thin;
	z-index: 5;
	overscroll-behavior:contain;
	background:#fff;
	box-shadow:0 0 10px rgba(0,0,0,0.1);
}
header .head_logo{
	text-align:center;
	margin-block: 0em 1.5em;
}
header .head_logo a{
	display:block;
	padding:0.5em;
	outline:solid 1px transparent;
	border-radius:0.5rem;
}
header .head_logo a:is(:hover,:focus){
	outline-color:var(--keycolor);
}
header .site_search .gsc-control-cse{
	padding:0;
}
header .site_search .gsc-control-cse .gsc-input-box{
	border-radius:0.35rem;
	border:solid 1px var(--fontcolor);
	background:#eee;
}
header .site_search .gsc-control-cse .gsc-input{
	padding-right:0.5rem;
}
header .site_search .gsc-control-cse form.gsc-search-box{
	margin:0;
}
header .site_search .gsc-control-cse .gsc-input-box input{
	mix-blend-mode:multiply;
}
header .site_search .gsc-control-cse .gsc-search-button-v2{
	background:var(--keycolor);
	border:solid 1px var(--keycolor);
	border-radius: 0.35rem;
	display:flex;
	align-items:center;
	min-height:2.125rem;
	padding:0.25rem 1.25rem;
	margin:0;
}
header :is(.head-search label,.head_sitemenu > label):has(input[type="checkbox"]){
	display:none;
}
header .lang_menu{
	display:flex;
	justify-content:space-between;
	gap: 5%;
	margin-block: 1.25em 1.65em;
}
header .lang_menu > *{
	flex-grow:1;
}

header .lang_menu #google_translate_element :is(.skiptranslate,.goog-te-gadget-simple){
	display:flex;
	align-items:center;
	height:100%;
	width:100%;
}
header .lang_menu #google_translate_element .goog-te-gadget-simple{
	padding: 0.25em 0.5em;
	border:solid 1px var(--dgray);
}

header .lang_menu #site_translate_element{
	background:var(--keycolor);
	border-radius:0.25rem;
	position:relative;
	z-index:2;
	transition:var(--hover);
}
header .lang_menu #site_translate_element select{
	font-size:0.875rem;
	appearance:none;
	background:transparent;
	color:#fff;
	border:none;
	line-height: 2.10em;
	padding: 0 1em 0 2.25em;
	display:block;
	width:100%;
	cursor:pointer;
	transition:var(--hover);
	border-radius:0.25rem;
}
header .lang_menu #site_translate_element:before,
header .lang_menu #site_translate_element:after{
	content:"";
	display:block;
	background:url(../img/ico_lang.png) no-repeat top center /contain;
	aspect-ratio:1 / 1;
	height:15px;
	position:absolute;
	inset:0 auto 0 0.65em;
	margin:auto;
	z-index:-1
}
header .lang_menu #site_translate_element:after{
	background:none;
	height:7px;
	inset: 0 0.75em 0 auto;
	border-top:solid 1px #FFF;
	border-right:solid 1px #FFF;
	transform:rotate(135deg);
}
header .lang_menu #site_translate_element select option{
	color:var(--fontcolor)
}
header .lang_menu #site_translate_element:has(select:is(:hover,:focus)){
	background-color:var(--fontcolor)
}

header .quick_menu{
	margin-inline:-1.25rem;
	padding:1.25rem;
	background:var(--keyW);
	display:flex;
	flex-wrap:wrap;
	gap: 0.75em;
}
header .quick_menu li:nth-child(n+3){
	flex-basis: calc((100% - 1.5em) / 3);
}
header .quick_menu li:nth-child(-n+2){
	flex-basis: calc((100% - 0.75em) / 2);
}
header .quick_menu li a{
	display:flex;
	background:#fff;
	border:solid 1px var(--keyD);
	height:100%;
	border-radius:0.5rem;
	justify-content:center;
	align-items:center;
	gap:0.5em;
	color:var(--keyD);
	line-height:1.2;
	font-weight:600;
	padding:0.5em 0.25em;
	letter-spacing:0;
}
header .quick_menu li a:is(:hover,:focus){
	background:var(--keyD);
	color:#fff;
}
header .quick_menu li:nth-child(n+3) a{
	flex-direction:column;
	gap:0;
}
header .link_menu{
	padding-block:1.5em;
}
header .link_menu a{
	display:flex;
	gap:0.5em;
	align-items:center;
	width:fit-content;
	color: var(--keyD);
}
header .sub_link {
	font-size:0.875rem;
}
header .link_menu .general_infos{
	position:relative;
	z-index:1;
	margin-bottom: 1em;
}
header .link_menu .general_infos label{
	background:var(--keyW);
}
header .link_menu .general_infos label:is(:has(#info_menu:checked),:has(#info_menu:focus),:hover){
	background:var(--keyD);
	color:#fff;
}
header .link_menu .general_infos label:is(:has(#info_menu:checked),:has(#info_menu:focus),:hover):after{
	border-color:#fff;
}
header .link_menu .info_menu{
	display:flex;
	flex-direction:column;
	gap:0.5em;
	position:absolute;
	background:var(--keycolor);
	left:0;
	right:0;
	padding:1em;
	border-radius:0.35rem;
}
header .link_menu .info_menu a{
	color:#fff;
}
header .link_menu .info_menu a:is(:hover,:focus){
	transform:translateX(0.5em);
	text-decoration-color:#fff;
	color: #fff;
}
header .link_menu .common_link{
	display:flex;
	flex-direction:column;
	gap:0.5em;
	margin-bottom:1em;
}
header .link_menu .common_link a{
	--color-cate:var(--color01);
	font-weight:500;
	color:var(--fontcolor);
}
header .link_menu .common_link a[href*="04_zoo"]{
	--color-cate:var(--color01);	
}
header .link_menu .common_link a[href*="05_plant"]{
	--color-cate:var(--color02);	
}
header .link_menu .common_link a[href*="facilities"]{
	--color-cate:var(--color03);	
}
header .link_menu .common_link a[href*="16_evolution"]{
	--color-cate:var(--color04);	
}
header .link_menu .common_link a[href*="support"]{
	--color-cate:var(--color05);	
}
header .link_menu .common_link a[href*="group"]{
	--color-cate:var(--color06);	
}
header .link_menu .common_link a[href*="education_guide"]{
	--color-cate:var(--color07);	
}
header .link_menu .common_link a .arrow{
	background:var(--color-cate);
	display:flex;
	align-items:center;
	justify-content:center;
	aspect-ratio:1 / 1;
	height:1.25em;
	border-radius:50%;
	color:#fff;
}
header .link_menu .common_link a .arrow:before{
	content:"";
	aspect-ratio:1 / 1;
	display:block;
	background:none;
	height:0.35em;
	border-top:solid 1px;
	border-right:solid 1px;
	transform:rotate(45deg) skew(-2.5deg,-2.5deg);
	margin-left: 0;
}
header .link_menu a:is(:hover,:focus){
	color:var(--color-cate);
	transform:translateX(0.5em);
	text-decoration-color:var(--color-cate);
}
header .sns_menu p{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:0.25em;
	color:var(--keyD);
	letter-spacing:0;
	font-weight:600;
	margin-bottom:1em;
}
main{
	position:relative;
	z-index: 6;
}
#fixed_bnr{
	position:fixed;
	right:2em;
	bottom:2em;
	z-index: 15;
}
#fixed_bnr.is-stopped{
	position:absolute;
	bottom:8em;
}
footer {
	position:relative;
	z-index: 7;
}
footer .footer_top{
	background:var(--keyW);
	padding-block: 3.25rem 1.75rem;
	border-radius:4.375rem 4.375rem 0 0;
}
footer .footer_top .site_wrapper{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
}
footer .footer_top .site_links{
	width:300px;
}
footer .footer_top .site_links .logo{
	display:block;
	width:fit-content;
	margin-top: 0.5em;
}
footer .footer_top .site_links .sns_icons{
	margin-block: 1.75em;
	justify-content:flex-start;
}
footer .footer_top .site_links .sns_icons a{
	height:2.75em;
}
footer .footer_top .site_links .sns_icons img{
	height:25px;
	width:auto;
}
footer .footer_top .site_links .foot-banner{
	display:flex;
	justify-content:space-between;
}
footer .footer_top table caption{
	text-align:left;
	font-size:1.25rem;
	font-weight:600;
	margin-bottom: 0.5em;
}
footer .footer_top table :is(th,td){
	font-size:0.875rem;
	font-weight:500;
	padding:0.25em;
	vertical-align:top;
}
footer .footer_top table th span{
	background:var(--keycolor);
	color:#fff;
	text-align:center;
	white-space:nowrap;
	border-radius:0.35rem;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:0.1em 0.5em;
	min-width:6.5em;
}
footer .footer_top table td{
	padding: 0.25em 0.25em;
	letter-spacing:0;
}
footer .footer_top .site_infos{
	width:400px;
}
footer .footer_top .site_license{
	width:360px;
}
footer .footer_bottom{
	border-block:solid 1px var(--keyD);
	padding-block: 0.5em;
}
footer .footer_bottom ul{
	display:flex;
	flex-wrap:wrap;
	justify-content: center;
	font-size:0.875rem;
	gap: 4em;
}
footer .footer_bottom ul a{
	color:var(--keyD);
	font-weight:600;
}
footer .footer_bottom ul a:is(:hover,:focus){
	text-decoration-color:var(--keyD);
}
footer .copyright{
	background:var(--keycolor);
	color:#fff;
	font-size: 0.875rem;
	padding-block: 0.75em;
}
:is(.ac_wrap,.ac_wrap_sp) > label:has(input[type="checkbox"]){
	display:flex;
	align-items:center;
	padding:0.5em;
	gap:0.5em;
	border:solid 1px var(--keyD);
	border-radius:0.45rem;
	position:relative;
	z-index:2;
	color:var(--keyD);
}
:is(.ac_wrap,.ac_wrap_sp) > label:has(input[type="checkbox"]):after{
	aspect-ratio:1 / 1;
	content:"";
	display:block;
	background:none;
	height:8px;
	inset:0 1em 0 auto;
	border-top:solid 1px var(--keyD);
	border-right:solid 1px var(--keyD);
	transform:rotate(135deg);
	position:absolute;
	margin:auto;
	z-index:-1;
}
:is(.ac_wrap,.ac_wrap_sp) > label input[type="checkbox"]{
	appearance:none;
	width:0;
	height:0;
	opacity:0;
	position:absolute;
	z-index:-1;	
}
.ac_wrap .ac_body{
	transition:max-height .2s,opacity .2s;
	max-height:0;
	opacity:0;
	overflow:hidden;
	z-index: -1;
	pointer-events: none;
}
.ac_wrap .ac_body > *{
	visibility: hidden;
}
.ac_wrap:has(input[type="checkbox"]:checked) .ac_body{
	max-height:fit-content;
	opacity:1;
	z-index: 1;
	pointer-events: auto;
	visibility: visible;
}
.ac_wrap:has(input[type="checkbox"]:checked) .ac_body > *{
	visibility: visible;
}

.sns_icons {
	display:flex;
	align-items:center;
	justify-content:center;
	gap:0.5em;
}
.sns_icons a{
	display:flex;
	align-items: center;
	justify-content:center;
	border-radius:50%;
	background:#fff;
	aspect-ratio:1 / 1;
	height:3.125rem;
	box-shadow:0 0 8px rgba(0,0,0,0.15);
	outline:solid 1px transparent;
}
.sns_icons a:is(:hover,:focus){
	transform:translateY(-0.25em);
	outline-color:var(--dgray);
}

.arrows a{
	display: inline-flex;
	align-items:center;
	gap:0.5em;
}
.arrows a:before,
.arrows a i:before{
	content:"";
	aspect-ratio:1 / 1;
	display:block;
	background:none;
	height:0.5em;
	border-top:solid 1px;
	border-right:solid 1px;
	transform:rotate(45deg) skew(-2.5deg,-2.5deg);
	margin:auto;
}
.arrows a:has(:is(> i,i.arrow)):before{
	display:none;
}
.arrows a i{
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    height: 1.25rem;
    border-radius: 50%;
    color: #fff;
	background:var(--keyD);
}
.arrows a i:before{
	height:0.35rem;
}
.arrows.affter a{
	flex-direction:row-reverse;
}
.arrows a:is(:hover,:focus){
	text-decoration-color: inherit;
	color: var(--keyD);
}
main .btn{
	display:flex;
	align-items:center;
	gap:0.25em;
	position:relative;
	z-index:1;
	font-size:1.125rem;
	--basecolor:#fff;
	--subcolor:var(--keyD);
	background:var(--basecolor);
	color:var(--subcolor);
	border-radius:2em;
	padding:0.25em 1.5em;
	min-height:3em;
	line-height:1.25;
	font-weight:600;
	border:solid 1px;
}
main .btn:has(i.arrow){
	padding-right: 2.5em;
}
main .btn i.arrow{
	display:flex;
	align-items:center;
	justify-content:center;
	position:absolute;
	right:0.75em;
}
main .btn i.arrow{
	background:var(--subcolor);
	display:flex;
	align-items:center;
	justify-content:center;
	aspect-ratio:1 / 1;
	height:1.0em;
	border-radius:50%;
	color:var(--basecolor);
}
main .btn i.arrow:before{
	content:"";
	aspect-ratio:1 / 1;
	display:block;
	background:none;
	height:0.35em;
	border-top:solid 1px;
	border-right:solid 1px;
	transform:rotate(45deg) skew(-2.5deg,-2.5deg);
	margin-left:-0.15em;
}
main .btn:is(:hover,:focus){
	color:var(--basecolor);
	background:var(--subcolor);
}
main .btn:is(:hover,:focus) i.arrow{
	background:#fff;
	color: var(--subcolor);
}
/*	タブ切替	*/
.tab_change .controller input[type="radio"] {
	appearance:none;
	border:none;
	background:none;
	outline:none;
	position:absolute;
	z-index:-1;
}
.tab_change .tab_content {
	overflow: hidden;
	opacity: 0;
	max-height: 0;
	z-index: -10;
	visibility: hidden;
	transition: opacity .4s;
}
.tab_change:has(.controller input[id$="01"]:checked) .tab_table div[class$="01"],
.tab_change:has(.controller input[id$="02"]:checked) .tab_table div[class$="02"],
.tab_change:has(.controller input[id$="03"]:checked) .tab_table div[class$="03"],
.tab_change:has(.controller input[id$="04"]:checked) .tab_table div[class$="04"],
.tab_change:has(.controller input[id$="05"]:checked) .tab_table div[class$="05"],
.tab_change:has(.controller input[id$="06"]:checked) .tab_table div[class$="06"],
.tab_change:has(.controller input[id$="07"]:checked) .tab_table div[class$="07"],
.tab_change:has(.controller input[id$="08"]:checked) .tab_table div[class$="08"],
.tab_change:has(.controller a) .tab_content  {
	opacity: 1;
	z-index: 10;
	visibility: visible;
	max-height:fit-content;
	overflow: visible;
	width: 100%;
}
.tab_change .controller {
	display: flex;
	justify-content: flex-start;
	margin: 0;
	flex-wrap: wrap;
	gap: 0.5em;
	border-bottom:solid 3px var(--keyD);
}
.tab_change .controller :is(label,a){
    display:flex;
    align-items:center;
    justify-content:center;
    flex:1;
    background:var(--dgray);
    min-height:3em;
    padding: 0.35em 0.25em 0em;
    font-size:1rem;
    font-weight:700;
    gap:0.5em;
    /* border:solid 1px var(--dgray); */
    border-radius:0.75rem 0.75rem 0 0;
    max-width:183px;
    color:#fff;
}
.tab_change .controller label:has(:checked),
.tab_change .controller a.current{
	background:var(--keyD);
}
@media (any-hover: hover) {
	.tab_change .controller :is(a,label):is(:hover,:has(>:focus)){
		background:#202020;
	}
}
.tab_change .controller [lang="en"]{
	font-size:1.75rem;

}
.style_news .news-body .article{
	border-bottom:solid 1px #999;
	display:flex;
	min-height: 4.875em;
	align-items:center;
	text-decoration:none;
}
.style_news .news-body .article:hover{
	background:var(--keyW)
}
.style_news .news-body .article > *{
	transition:var(--hover)
}
.style_news .news-body .article:hover > *{
	transform: translateX(1rem);
}

.style_news .news-body .article .data{
	display:flex;
	gap:1em;
	padding:1em 1em 1em 0; 
	align-items:flex-start;
	line-height:1.6;
	width:100%;
}
.style_news .news-body .article time{
	width:5.5rem;
	color:#727272;
	padding-block:0.1em;
}
.style_news .news-body .article mark{
	min-width: 7.5em;
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--basecolor);
	background:var(--subcolor);
	transition:var(--hover);
	border-radius:1.5em;
	--basecolor:#666;
	--subcolor:#eee;
	padding:0.1em 0.75em;
	font-weight:700;
}
.style_news .news-body .article mark.ct_zoo{
	--basecolor:var(--color01);
	--subcolor:#fff0ee;
}
.style_news .news-body .article mark.ct_gad{
	--basecolor:var(--color02);
	--subcolor:#f2f7ee;
}
.style_news .news-body .article mark.ct_cyc{
	--basecolor:var(--color04);
	--subcolor:#f9f6ee;
}
.style_news .news-body .article mark.ct_pre{
	--basecolor:var(--color05);
	--subcolor:#f0f9ff;
}
.style_news .news-body .article mark.cate_name{
	--basecolor:var(--color06);
	--subcolor:#f9eeff;
}
.style_news .news-body .article p{
	max-width:calc(100% - 14.5rem);
	font-weight:400;
	flex-grow:1;
	padding-block:0.1em;
}
.style_news .news-body a.article p{
}

.ttl_set{
	display:flex;
	flex-direction:column;
	align-items:center;
	margin-bottom:2em;
	font-size:1.25rem;
	gap: 0.25em;
}
.ttl_set :is(h2,h3,h4,h5){
	font-weight:600;
}
.ttl_set [lang="en"]{
	order:-1;
	font-size:3em;
	line-height:1;
	font-weight:600;
}
:root .btn_type01 :is(a,button){
	box-shadow:none;
	--basecolor:var(--keyD);
	--subcolor:#fff;
	background:var(--basecolor);
	border:solid 1px var(--basecolor);
	color:var(--subcolor);
	position:relative;
	font-size:1.125rem;
	min-width: 400px;
	min-height: 4.125em;
	text-decoration: none;
}
:root .btn_type01 :is(a,button):before,
:root .btn_type01 :is(a,button):after{
	content:"";
	display:block;
	aspect-ratio:1 / 1;
	height:1.15rem;
	position:absolute;
	background:var(--subcolor);
	border-radius:50%;
	right:1.5rem;
	z-index:1;
}
:root .btn_type01 :is(a,button):after{
	border-color:var(--basecolor);
	z-index:3;
	transform:rotate(45deg);
	right:1.9rem;
	border-radius:0;
	background:none;
	width:auto;
	height:0.4rem;
	border-width:1px;
	
}
:root .btn_type01 :is(a,button):hover{
	color:var(--basecolor);
}
:root .btn_type01 :is(a,button):hover:before{
	background:var(--basecolor);
}
:root .btn_type01 :is(a,button):hover:after{
	border-color:var(--subcolor);
}
@media (max-width: 1600px) {
	:root{
		--sidebar:270px;
		--container:100%;
	}
	header{
		    padding-inline:1em;
	}
	header .head_logo img{
		max-width:100%;
		height:auto;
	}
	header .gsc-control{
		max-width:100%;
	}
	@media (min-width:1201px) {
		header .lang_menu{
			flex-direction:column;
			gap:0.5em;
			width:fit-content;
			margin-inline:auto;
			margin-block:1em;
		}
		header .lang_menu > *{
			flex-grow:inherit;
		}
		header .quick_menu {
			gap:0.35em 2%;
		    margin-inline: -1rem;
		}
		header .quick_menu li:nth-child(n){
			flex-basis:49%;
			margin:0;
		}
		header .quick_menu li:nth-child(n) a{
			flex-direction:row;
			padding:0.25em;
			font-size:0.825rem;
		}
	}
	.site_wrapper{
		padding-inline:var(--inner);
	}
	footer .footer_top .site_wrapper{
		padding-inline:var(--inner);
		justify-content: center;
		gap:1em 2%;
	}
	footer .footer_top .site_wrapper > *{
		padding-inline:0;
	}
	footer .footer_top .site_links{
		margin-inline: 25%;
	}
}
@media (max-width: 1200px) {
	:root{
		--sidebar:0;
	}
	header{
		width:auto;
		right:0;
		bottom:auto;
		height: var(--header);
		border-width:4px;
		padding:0;

	}
	header .head_top{
		background:var(--keycolor);
		display:flex;
		justify-content: space-between;
		position: relative;
		z-index: 5;
	}
	header .head_logo{
		margin:0 auto 0 0;
		background:#fff;
		border-radius:0 1em 0 0;
		display:flex;
		height:calc(var(--header) - 4px);
		align-items:flex-end;
		padding: 0 0.85em 0;
	}
	header .head_logo a{
		
	}
	header .head_logo img{
		max-width:172px;
	}
	header :is(.head-search,.head_sitemenu){
		width: 170px;
	}
	header :is(.head-search label,.head_sitemenu > label):has(input[type="checkbox"]){
		display:flex;
		border:none;
		color:#fff;
		height:calc(var(--header) - 4px);
		align-items:center;
		justify-content: center;
		width:100%;
	}
	header .ac_wrap_sp .ac_body{
		transition:max-height .2s,opacity .2s;
		max-height:0;
		opacity:0;
		overflow:hidden;
	}
	header .ac_wrap_sp:has(input[type="checkbox"]:checked) > .ac_body{
		max-height:fit-content;
		opacity:1;
        max-height: calc(100dvh - var(--header));
        height: calc(100dvh - var(--header));
	}
	header .head_top .head-search > label:after{
		display:none;
	}
	header .head_top :is(.search_menu,.site_menu){
		top:var(--header);
		position:fixed;
		left:0;
		right:0;
	}
	header .head_top .head-search .site_search{
		background:#fff;
		padding:1rem;
	}
	header .gsc-control{
		margin-inline:auto 0;
	}
	header .head_top .head_sitemenu label{
		gap:1em;
	}
	header .head_top .head_sitemenu > label:after{
		display:none;
	}
	header .head_top .head_sitemenu label i{
		height:1.25em;
		aspect-ratio:1 / 1;
		display:flex;
		position:relative;
		align-items:center;
	}
	header .head_top .head_sitemenu label i span,
	header .head_top .head_sitemenu label i:before,
	header .head_top .head_sitemenu label i:after{
		display:block;
		position:absolute;
		inset:auto 0;
		height:2px;
		background:#fff;
	}
	header .head_top .head_sitemenu label i span{
		content:none;
		margin:auto;
	}
	header .head_top .head_sitemenu label i:before{
		content:"";
		margin-top:-12px;
	}
	header .head_top .head_sitemenu label i:after{
		content:"";
		margin-bottom:-12px;
	}
	header .head_top .head_sitemenu :is(.open,.close){
		width:3.5em;
		text-align:left;
	}
	header .head_top .head_sitemenu:has(#site_menu:checked) label i{
		transform:rotate(180deg)
	}
	header .head_top .head_sitemenu:has(#site_menu:checked) label i span,
	header .head_top .head_sitemenu:has(#site_menu:checked) label i:before{
		transform:rotate(45deg);
		margin:0;
	}
	header .head_top .head_sitemenu:has(#site_menu:checked) label i:after{
		transform:rotate(135deg);
		margin:0;
	}
	header .head_top .head_sitemenu .close,
	header .head_top .head_sitemenu:has(#site_menu:checked) .open{
		display:none;
	}
	header .head_top .head_sitemenu:has(#site_menu:checked) .close{
		display:block;
	}
	header .head_top nav{
		background:#fff;
		padding:1em;
		height: 100%;
	}
	header .lang_menu{
		width:fit-content;
		margin:0 auto 1em;
		gap:4%;
	}
	header .lang_menu > *{
		flex-basis:48%;
		min-width:140px;
	}
	header .quick_menu li a{
		flex-direction:column;
		gap:0;
	}
	header .quick_menu li a br{
		display:none;
	}
	header .link_menu .common_link{
		flex-wrap:wrap;
		flex-direction:row;
		gap:2%;
	}
	header .link_menu .common_link > a{
		flex-basis:32%;
		border-bottom:solid 1px var(--dgray);
		padding-block:0.375em;
		line-height:1.15;
		min-height:3em;
	}
	header .head-bottom{
		display:block;
		position: fixed;
		left:0;
		right:0;
		background:#fff;
		padding:1em 0;
		z-index: 1;
		box-shadow:2px 0 6px rgba(0,0,0,0.2);
	}
	header .head-bottom .quick_menu{
		margin:0;
		padding:0;
		gap:1px;
		background:#c7d5bf;
	}
	header .head-bottom .quick_menu li:nth-child(n){
		flex-basis:calc((100% - 4px) / 5);
	}
	header .head-bottom .quick_menu li a{
		border:none;
		border-radius:0;
		
	}
	footer .footer_top .site_links{
		width:auto;
		flex-basis:100%;
		display:flex;
		gap: 1em;
		flex-wrap:wrap;
		justify-content:center;
		align-items:center;
		margin: 0 auto;
	}
	footer .footer_top .foot-banner{
		gap:4%;
	}
	footer .footer_top .site_links .sns_icons{
		margin-block:0;
	}
	footer .footer_top .foot-banner a{
		display:block;
	}
	footer .footer_top .site_infos{
		width:49%;
	}
	footer .footer_top .site_license{
		width:49%;
	}
	footer .footer_bottom ul{
		gap: 0.5em 1em;
		justify-content: center;
		font-size:0.75rem;
	}
	header,
	header > *{
		transition:transform 0.2s,opacity .2s .2s;
	}
	body:has(#site_menu:not(:checked)) header.is-hide,
	body:has(#site_menu:not(:checked)) header.is-hide > .head_top{
		transform: translateY(-130px);
		opacity:0;
	}
	body:has(#site_menu:not(:checked)) header.is-hide > .head-bottom{
		transform: translateY(-70px);
		opacity:0;
	}
}
@media screen and (max-width:767px) {
	header .head_logo{
		width:210px;
	}
	header .head_logo a{
		padding-block:0;
	    outline:none;
	}
	header :is(.head-search,.head_sitemenu){
		width: calc((100% - 210px) / 2);
	}
	header :is(.head-search label,.head_sitemenu > label):has(input[type="checkbox"]){
		gap: 0.25em;
	}
	header .head-bottom{
		padding-block:10px;
		height:70px;
		display: flex;
		align-items:center;
	}
	header .head-bottom .quick_menu{
		width: 100%;
	}
	header .quick_menu li a{
		padding-block:0;
		height:100%;
		font-size:0.785rem;
		height:50px;
	}
	footer .footer_wrap{
		position:relative;
	}
	footer .footer_top{
		border-radius:2em 2em 0 0;
		padding-block:3em 1em;
	}
	footer .footer_top .site_links .logo img{
		width:229px;
		height:auto;
	}
	footer .footer_top .site_links .logo span{
		font-size:1.142rem;
		margin:1.5em auto 0.25em;
		text-align:center;
	}
	footer .footer_top .site_links .sns_icons img{
		height:26px;
		width:auto;
	}
	footer .footer_top .foot-banner{
		position:absolute;
		bottom:1em;
	}
	footer .footer_top .site_infos,
	footer .footer_top .site_license{
		width:100%;
	}
	footer .footer_bottom ul{
		gap:0;
	}
	footer .footer_bottom ul li{
		flex-basis:50%;
		flex-grow:1;
	}
	.tab_change .controller :is(label,a){
		flex-direction:column;
		gap:0;
		max-width:110px;
		font-size:0.857rem;
		height:63px;
	}
	.tab_change .controller [lang="en"]{
		line-height:1;
		font-size:2.21em;
	}
	.style_news .news-body .article .data{
		flex-wrap:wrap;
		gap: 0.25em 1em;
		line-height: 1.25;
	}
	.style_news .news-body .article time{
		line-height:1.5;
	}
	.style_news .news-body .article mark{
		min-width:7em;
		font-size:0.857rem;
	}
	.style_news .news-body .article p{
		max-width: 100%;
	}
	.ttl_set{
		margin-bottom:2em;
		font-size:0.857rem;
		gap: 0.25em;
	}
	.ttl_set :is(h2,h3,h4,h5){
		font-weight:600;
		font-size:0.875rem;
	}
	.ttl_set [lang="en"]{
		font-size:2.583em;
		font-weight:700;
	}
	:root .btn_type01 :is(a,button){
		min-width:0;
		width:267px;
		font-size:1rem;
	}
	:root .btn_type01 :is(a,button):before,
	:root .btn_type01 :is(a,button):after{
		right:1.0rem;
	}
	:root .btn_type01 :is(a,button):after{
		right:1.45rem;
	}
	.ac_wrap_sp .ac_body{
		transition:max-height .2s,opacity .2s;
		max-height:0;
		opacity:0;
		overflow:hidden;
	}
	.ac_wrap_sp:has(input[type="checkbox"]:checked) > .ac_body{
		max-height:fit-content;
		opacity:1;
	}
	#fixed_bnr{
		right:1em;
		bottom:1em;
		max-width:220px;
	}
	#fixed_bnr.is-stopped{
		bottom:6em;
	}
}

.wrapper_all {
	position: relative;
	z-index: 2;
	padding-left: var(--sidebar);
	overflow-x: clip;
	text-align: center;
}
.site_wrapper {
	width:var(--container);
	margin-inline: auto;
	text-align: left;
}
*:has( > .site_wrapper ){
	width:100%;
	overflow: clip;
}
.center_content {
	text-align:center;
}
.center_content > *{
	margin-inline:auto;
}
.right_content {
	text-align:right;
}
.right_content > *{
	margin-inline:auto 0;
}
main {
	width: 100%;
}
main img,
main svg {
	max-width: 100%;
	height: auto;
}
@media screen and (max-width:1200px) {
	body,
	.site_wrapper {
		width: 100%;
		min-width: 0;
	}
	.site_wrapper  {
		padding-inline:var(--inner);
	}
}
@media screen and (max-width:767px) {
	:root{
		--inner:15px;
		--header: 60px;
	}
	html {
		font-size: 14px;
	}
}


:root a.skip-link{
	display:flex;
	font-size:0.75rem;
	align-items:center;
	justify-content: center;
	color:#fff;
	background:var(--keycolor);
	position:fixed;
	top: 1em;
	left:calc(var(--sidebar) + 1em);
	padding:0.75em;
	z-index:-5;
	box-shadow:0 0 1em rgba(0,0,0,0.25);
	opacity:0;
	width:7.5em;
	height:7.5em;
	text-align:center;
}
:root a.skip-link:focus{
	opacity:1;
	z-index:15;
	text-decoration:underline dotted 1px;
}


/* header
-------------------------------------------------------------------*/

@media print{
	header,
	header .head_top :is(.search_menu,.site_menu),
	header .head-bottom{
		position:absolute;
	}
	header{
		height:160px;
	}
}

