@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;
	--header: 126px;
	--container:1410px;
	--wide:1680px;
	--inner:8%;
	--fontcolor:#3d4f4a;
	--keycolor:#3d4f4a;
	--accent:#77aa11;
	--gray:#f4f4f4;
	--lgray:#a8a8a8;
	--dgray:#7a7a7a;
	--green:#bbccb5;
	--dgreen:#93a994;
	--green02:#778381;
	--reverse:invert(1);
	--white:brightness(0) invert(1);
	--font: "HelveticaNowDisplay-Md","MFW-PA1GothicStdN-Medium", "Noto Sans JP", sans-serif;
	--fontL:"HelveticaNowDisplay-Lt", "MFW-PA1GothicStdN-Light","Noto Sans JP", sans-serif;
	--fontR:"HelveticaNowDisplay-Md", "MFW-PA1GothicStdN-Regular","Noto Sans JP", sans-serif;
	--fontB:"HelveticaNowDisplay-Bd", "MFW-PA1GothicStdN-Bold","Noto Sans JP", sans-serif;
}
:root img{
	transition:opacity .4s,filter .4s;
}
:root a{
	transition:var(--hover);
}
html {
	background: #FFFFFF;
	color: var(--fontcolor);
	font-family:var(--font);
	font-size: 16px;
	line-height: 1.4;
	scroll-padding:var(--header);
	scroll-behavior:smooth;
	font-feature-settings:'palt';
	font-optical-sizing: auto;
	font-style: normal;
}
html :is([lang="en"],.eng){
	font-family: "HelveticaNowDisplay-Md", "Manrope", sans-serif;
}
html .goti{
	font-family:var(--font);
}
html .mincho{
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-style: normal;
}
body {
	width: 100%;
	font-size: 100%;
	text-align: center;
	min-width: var(--container);
	font-family:var(--font);
	position: relative;
	z-index: 2;
}
main {
	overflow: clip;
	width: 100%;
}
body img,
body svg {
	max-width: 100%;
	height: auto;
}
*:has( > ruby){
	line-height:2;
}
ruby {
	position:relative;
	letter-spacing:0.1em;
	z-index:2;
}
ruby rt{
	position:absolute;
	top:-0.75em;
	font-size:min(0.45em,0.85rem)!important;
	margin:0 auto;
	left:0;
	right:0;
	text-align:center;
	letter-spacing:-0.03em;
	z-index:-1;
}
.sitewrap,
.widewrap{
	width: var(--container);
	/* min-width: var(--container); */
	margin: 0 auto;
	text-align: left;
	box-sizing: border-box;
}
.widewrap{
	max-width: 1800px;
	padding-inline:1em;
	width:auto;
}
*:has( > .sitewrap ){
	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;
}
@media screen and (max-width:1580px) {
	:root{
		--container:100%;
		--header: 96px;
	}
	html {
		font-size: 14px;
	}
	body,
	.sitewrap {
		width: 100%;
		min-width: 0;
	}
	.sitewrap > * {
		padding-inline:var(--inner);
	}
}
@media screen and (max-width:1200px) {
	:root{
		--inner:5%;
	}
	header#fix_menu{
		--header:100px;
	}
}
@media screen and (max-width:767px) {
	header#fix_menu{
		--header:60px;
	}
	:root{
		--inner:2.28rem;
		--header: 80px;
	}
	html {
		font-size: 14px;
	}
}
@media screen and (max-width:413px) {
	:root{
		--inner:1.71rem;
	}
}

/* header
-------------------------------------------------------------------*/
header#fix_menu {
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	right: 0;
	display:flex;
	align-items: center;
	transition: top .4s .2s, background .2s;
	padding: 0em 0em 0em;
	height:var(--header);
	font-family: var(--fontL);
}
header#fix_menu:after{
	content:"";
	display:block;
	inset:0 0 auto;
	height:var(--header);
	background:transparent;
	position:absolute;
	z-index:-1;
	transition:background .2s ;
	backdrop-filter: blur(0.25em);
}

header #site_ttl {
	display:flex;
	gap:2em;
	align-items: center;
	margin-inline: 3.5em;
	margin-top: 2em;
}
header #site_ttl a {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5em;
	text-decoration: none;
}
header #site_ttl a img{
	display:block;
	max-width:inherit;
}
header #site_ttl .translate_wrap{
	position:relative;
	z-index:2;
	transition:var(--hover);
	border:solid 1px #121213;
	border-radius:0.25em;
	background:#121213;
}
header #site_ttl .translate_wrap select{
	appearance:none;
	background:transparent;
	color:#fff;
	width: 140px;
	display:flex;
	align-items:center;
	height: 2.25rem;
	padding-inline: 1.75em 1.25em;
	font-size:0.875rem;
	cursor:pointer;
	border-radius:0.25rem;
	border:none;
	font-family:var(--fontB);
	font-weight:600;
	letter-spacing:-0.03em;
	padding-block: 0;
	margin-bottom: 0;
}
header #site_ttl .translate_wrap img{
	position:absolute;
	inset: 0 auto 0 0.35em;
	margin:auto;
	z-index:-1;
}
header #site_ttl .translate_wrap:after{
	content:"";
	display:block;
	width:0.45rem;
	height:0.325rem;
	position:absolute;
	inset:0 0.65em 0 auto;
	margin:auto;
	z-index:-1;
	background:#fff;
	clip-path: polygon(0% 0%, 100% 0%, 50% 100%);

}
header #site_ttl .translate_wrap option{
	color:var(--fontcolor);
}
@media (any-hover: hover) {
	header #site_ttl .translate_wrap:has(select:is(:hover,:focus)){
		background:#000;
	}
}
header .drop_menu{
	margin-left:auto;
	display: flex;
	align-items: flex-start;
	gap: 1.75em;
}
header .drop_menu > a{
	margin-top:0.5em;
}
header #NavWrap{
}
header #NavWrap .scroll_wrap{
	display:flex;
	gap: 0;
	position: relative;
	z-index: 2;
}
header .ac_hover{
	cursor:pointer;
	/* margin-top:2em; */
	border-radius:2em;
	transition:border-radius .2s;
	text-align:left;
	border-radius:5em;
	overflow:hidden;
	width:var(--width);
	background:var(--keycolor);
	position:fixed;
	right:1.5em;
	font-weight: 600;
}
header .ac_hover dt{
	display:flex;
	align-items:center;
	padding: 1em 1.5em 1em 1.75em;
	gap:1em;
	background:var(--keycolor);
	justify-content:space-between;
}
header .ac_hover dt i{
	width:1em;
	height:2px;
	background:#fff;
	position:relative;
	transition:transform .2s;
}
header .ac_hover dt i:after{
	content:"";
	display:block;
	width:1em;
	height:2px;
	background:#fff;
	transform:rotate(90deg);
	transition:transform .2s;
}
header .ac_hover dd{
	max-height:0;
	overflow:hidden;
	transition:max-height .2s,padding .2s;
	padding-block:0;
	width:var(--width);
}
header .ac_hover dd a{
	display:flex;
	padding:0.5em 1.75em;
	justify-content:space-between;
	align-items:center;
	gap:0.5em;
	white-space:nowrap;
}
header#fix_menu .ac_hover dd a{
	color: inherit;	
}
header .ac_hover dd a:after{
	content:"";
	display:block;
	width:0.5em;
	height:0.5em;
	border-top:solid 2px #fff;
	border-right:solid 2px #fff;
	transform:rotate(45deg);
}

header .ac_hover:hover{
	border-radius:0.25em;
}
header .ac_hover:hover dt i{
	transform:rotate(180deg)
}
header .ac_hover:hover dt i:after{
	transform:rotate(180deg)
}
header .ac_hover:hover dd{
	border-radius:0.25em;
	max-height:7em;
	padding-block:0em 1em;
}

header #NavWrap .translate_wrap{
	position:relative;
	z-index:2;
	display:flex;
	align-items:center;
	gap: 0.75em;
}
header #NavWrap .translate_wrap p{
	display:flex;
	align-items:center;
	gap:1em;
	line-height:1;
	font-weight:600;
}
header #NavWrap .translate_wrap p:nth-child(n+2){
	border-left:solid 1px #fff;
	padding-left: 0.75em;
	transition:border-color .4s;
}
@media (any-hover: hover) {
	header .drop_menu > a:hover{
		filter: invert(1);
	}
}
header #NavWrap .translate_wrap dd{
	display:none;
}
header #NavWrap ul{
	flex-basis:100%;
	display:flex;
	justify-content:flex-end;
	margin-inline: 0 2.5em;
	gap: 1.15em;
	font-weight:500;
	z-index: -1;
	padding: 0;
	margin-bottom: 0;
}
header #NavWrap ul li{
	display:flex;
	align-items:center;
	justify-content:center;
	letter-spacing: 0.06em;
	font-weight: 400;
	z-index: 2;
}
header #NavWrap ul li.home{
	display:none;
}
header #NavWrap ul li > :is(p,a){
	display:flex;
	gap:0.5em;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	padding: 0.75em 0.5em;
}
header #NavWrap ul li.drop_wrap {
	z-index:1;
	cursor:pointer;
}
header #NavWrap ul li > :is(p,a){
	position:relative;
	z-index:1;
}
header #NavWrap .scroll_content > li > *{
	margin-top:2.25em;
}

header #NavWrap .scroll_content > li > :is(p,a):before,
header #NavWrap .scroll_content > li > :is(p,a):after{
    content: "";
    display: block;
    width: 5px;
    height: 5px;
    margin: auto;
    z-index: -1;
	position:absolute;
	border-radius:50%;
	background:var(--fontcolor);
	top:0.25em;
	transition:opacity .4s,transform .4s;
	opacity:0;
}
header #NavWrap .scroll_content > li > :is(p,a) [lang="en"]{
	display:none;
}
header #NavWrap .scroll_content > li > :is(p,a):before{
	transform:scale(1);
	opacity:0.25;
	visibility:hidden;
	transition:opacity .6s .2s,transform .4s;
}
header #NavWrap .scroll_content :is(li.drop_wrap:hover > p,li > a:hover):before{
	opacity:0;
	visibility:visible;
	transform:scale(5);
}
header #NavWrap .scroll_content :is(li.drop_wrap:hover > p,li > a:hover):after{
	opacity:1;
}
header #NavWrap ul li.drop_wrap ul{
	flex-wrap:wrap;
	z-index:5;
	justify-content:flex-start;
	gap: 0;
	margin-inline:auto 0;
	max-width: 570px;
}
header #NavWrap ul li.drop_wrap:has(.parent a) ul{
	transform: translateY(25%);	
}
header #NavWrap ul li.drop_wrap .drop_child{
	position:absolute;
	inset:0 0 auto;
	top:calc(var(--header) - 1px);
	gap:0;
	justify-content:flex-start;
	z-index: -1;
	padding:2.25em 0em 4.375em 0;
	opacity:0;
	transition:.2s;
	pointer-events:none;
	margin:0;
	border-top:solid 1px #000;
	display:flex;
	justify-content: space-between;
	align-items: flex-end;
	cursor:auto;
}
header #NavWrap ul li.drop_wrap .drop_child:after{
	content:"";
	display:block;
	background:#fafafa;
	display:block;
	position:absolute;
	z-index:-1;
	inset: 0 -4.375em 0 -4.375em;
}
header #NavWrap{
	padding-left:4.375em;
	transition:background .4s;
}
header #NavWrap:has(li.drop_wrap:hover){
	background:#fafafa;
}
header #NavWrap ul li.drop_wrap:hover .drop_child{
	opacity:1;
	transition:.4s;
	pointer-events:auto;
}
header #NavWrap ul li.drop_wrap ul a{
	white-space:nowrap;
	padding: 0.865em 1em;
	max-height:0;
	overflow:clip;
	transition:.2s;
}
header #NavWrap ul li.drop_wrap .parent{
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	align-items:flex-start;
	text-align:left;
	flex-grow: 1;
}
header #NavWrap ul li.drop_wrap .parent .ttl{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:0.25em;
	margin-bottom: 1.5em;
	font-weight:600;
}
header #NavWrap ul li.drop_wrap .parent .ttl [lang="en"]{
	font-size:2.25rem;
	font-weight:700;
	font-family:var(--fontB);
	line-height:1;
}
header #NavWrap ul li.drop_wrap .parent .ttl [lang="ja"]{
	font-size:0.75rem;
}
header #NavWrap ul li.drop_wrap .parent a{
	display:flex;
	gap:1em;
	align-items:center;
	font-weight: 500;
}
header #NavWrap ul li.drop_wrap .parent .dot{
	content:"";
	height:24px;
	display:flex;
	align-items:center;
	justify-content:center;
	aspect-ratio:1 / 1;
	background:var(--green);
	border-radius:50%;
	position:relative;
	z-index:1;
}
header #NavWrap ul li.drop_wrap .parent .dot:after{
	content:"";
	display:block;
	position:absolute;
	inset: 8px;
	background:var(--green);
	border:solid var(--fontcolor) 4px;
	z-index:2;
	border-radius:50%;
	transition:inset .2s, border-width .2s;
}
header #NavWrap ul li.drop_wrap .parent a:hover .dot:after{
	inset:0;
	border-width: 12px;
}
header #NavWrap ul li.drop_wrap:hover ul a{
	max-height: 40px;
}
header #switch {
	position: absolute;
	width: 0;
	height: 0;
	opacity: 0;
	z-index:-1;
}
header label[for="switch"] {
	display:none;
}
header #NavWrap ul li :is(a,p){
	transition:var(--hover);
	font-weight:inherit;
	margin-bottom: 0;
}
:is(header,footer) .submenu {
	display:flex;
	height:var(--header);
}
:is(header,footer) .submenu > a{
	display:flex;
	flex-direction:column;
	width:157px;
	gap:0.65em;
	text-decoration:none;
	--maincolor:#eff7f5;
	--subcolor:#000;
	--icon:invert(-1);
	background:var(--maincolor);
	color:var(--subcolor);
	align-items:center;
	justify-content:center;
}
:is(header,footer) .submenu > a[href*="contact"]{
	--maincolor:#000;
	--subcolor:#fff;
}
:is(header,footer) .submenu > a span{
	min-width:6em;
}
:is(header,footer) .submenu a img{
	filter:var(--reverse);
	display:block;
}
:is(header,footer) .submenu a span{
	display:block;
	margin:0;
}
@media (any-hover: hover) {
	:is(header,footer) .submenu a:hover{
		background:var(--dgreen);
		text-decoration:none;
		color:var(--maincolor);
	}
	:is(header,footer) .submenu a[href*="contact"]:hover{
		color:var(--maincolor);
		background:var(--green);
	}
	:is(header,footer) .submenu a:hover img{
		filter:var(--icon);
	}
	header #NavWrap .scroll_content > li > a:hover,
	header #NavWrap .scroll_content > li > p a:hover{
		text-decoration-color:transparent;
	}
	header #NavWrap ul li a:hover{
		color:var(--keycolor);
	}
	header #NavWrap ul li a:hover:after{
		border-color:var(--fontcolor);
	}
}
@media screen and (max-width:1800px) {
	header#fix_menu{
		padding-inline: 2em 0;
	}
}
@media screen and (max-width:1680px) {
	header #NavWrap {
	    padding-left: 3.5em;
	}
	header #NavWrap ul li.drop_wrap .drop_child:after{
		inset:0 -3.5em 0 -3.5em;
	}
	header #NavWrap ul{
		gap: 1em;
		margin-inline:0 1.5em;
	}
}
@media screen and (max-width:1410px) {
	header #NavWrap{
		/* padding-left:0; */
	}
	header #site_ttl{
		margin-inline:0;
	}
	header #site_ttl a img{
		width:120px;
	}
	header #NavWrap .scroll_wrap{
		justify-content:space-between;
	}
	header #NavWrap ul{
		gap: 0.75em;
		flex-grow:1;
		margin-inline:0 1.5em;
	}
	header .submenu {
		align-items:stretch;
	}
	header .submenu a{
		width: auto;
		padding: 0.5em 1.25em;
	}
}
@media screen and (max-width:1200px) {
	header#fix_menu{
		--slide:320px;
		padding-right:6em;
	}
	header#fix_menu:after{
		/* opacity:0;*/
	}
	header #NavWrap{
		position:fixed;
		top:0;
		bottom:0;
		right:0;
		justify-content:flex-start;
		align-items:flex-start;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: inherit;
		background:#fff;
		z-index:50;
		gap: 0;
		width:var(--slide);
		right:calc(-1 * var(--slide));
		transition:right .2s;
		padding:var(--header) 1em 1em;
	}
	header #NavWrap .scroll_wrap{
		width:100%;
		flex-direction:column;
		overflow-x:hidden;
		overflow-y:auto;
		scrollbar-width:thin;
		scrollbar-color:#fff rgba(125,125,125,0.75);
		max-height: 100%;
		overscroll-behavior: contain;
		height:100%;
	}
	header #NavWrap ul{
		display:block;
		gap: inherit;
		width:100%;
		margin:0;
	}
	header label[for="switch"]{
		display:block;
		order:5;
		display:flex;
		flex-direction:column;
		justify-content:center;
		align-items:center;
		height:55px;
		width: 55px;
		aspect-ratio:1 / 1;
		border-radius:0;
		background:transparent;
		font-size:0.75rem;
		padding: 0.5em 0.25em;
		gap:0.25em;
		font-weight: 600;
		transition:right .2s,background .2s,border-color .2s;
		position:fixed;
		right:2em;
		z-index:100;
		top:2em;
		border:none;
	}
	header label[for="switch"] b{
		display: flex;
		margin: auto;
		align-items: center;
		justify-content: center;
		height: 16px;
		position:relative;
		width: 100%;
		transition:transform .2s;
	}
	header label[for="switch"] b:before,
	header label[for="switch"] b:after{
		width:2em;
		height:1px;
		content:"";
		display:block;
		background:var(--fontcolor);
		position:absolute;
		inset:0;
		bottom:auto;
		margin:0 auto;
	}
	header label[for="switch"] b:after{
		top:auto;
		bottom:0;
	}
	header label[for="switch"] b span{
		width: 2em;
		height:1px;
		display:block;
		background:var(--fontcolor);
		margin: 6px auto;
	}
	header:has(#switch:checked) label[for="switch"]{
	}
	header:has(#switch:checked) label[for="switch"] b{
		transform:rotate(360deg);
	}
	header:has(#switch:checked) label[for="switch"] b:before{
		transform:rotate(20deg);
		inset:0;
		background:#fff;
		margin-top:8px;
	}
	header:has(#switch:checked) label[for="switch"] b:after{
		transform:rotate(-20deg);
		inset:0;
		background:#fff;
		margin-top:8px;
	}
	header:has(#switch) #NavWrap{
		background:rgba(0,0,0,0.9);
	}
	header:has(#switch:checked) #NavWrap{
		right:0;
	}
	header #NavWrap .scroll_content{
		/* border-bottom:solid 1px #a8a8a8; */
	}
	header #NavWrap ul li{
		display:block;
		border-top:solid 1px #a8a8a8;
		position:relative;
	}
	header #NavWrap ul li:last-child{
		border-bottom:solid 1px #a8a8a8;
	}
	header #NavWrap ul li.drop_wrap .drop_child{
		position:static;
		opacity:1;
		padding:0;
		display:block;
	}
	header #NavWrap ul li.drop_wrap .drop_child:after{
		display:none;
	}
	header #NavWrap .scroll_content > li > *{
		margin:0;
	}
	header #NavWrap ul li.drop_wrap .parent .dot{
		display:none;
	}
	header #NavWrap ul li :is(p,a){
		padding:1em 0.5em;
		display:flex;
		text-align:left;
		gap:1em;
		position:relative;
		align-items:center;
		color:#fff;
		justify-content:flex-start;
		text-decoration:none;
	}
	header #NavWrap ul li.drop_wrap:before,
	header #NavWrap ul li.drop_wrap:after{
		content:"";
		display:block;
		width:1rem;
		height:1px;
		background:#fff;
		position:absolute;
		top:1.75em;
		right:0.25em;
		cursor:pointer;
		transition:transform .2s; 
	}
	header #NavWrap ul li.drop_wrap:after{
		transform:rotate(-270deg);
	}
	header #NavWrap ul li.drop_wrap.opened:before{
		transform:rotate(180deg);
	}
	header #NavWrap ul li.drop_wrap.opened:after{
		transform:rotate(180deg);
	}
	header #NavWrap ul li.drop_wrap > :is(p,a){
		position:static;
		width:fit-content;
		margin:0;
		padding:0;
	}
	header #NavWrap ul li.drop_wrap > p a{
		pointer-events:none;
	}
	header #NavWrap ul li.drop_wrap ul{
		position:static;
		padding: 0;
		display:block;
		opacity: 1;
		width:fit-content;
		margin:0;
	}
	header #NavWrap ul li.drop_wrap:not(.opened) .drop_child a,
	header #NavWrap ul li.drop_wrap:not(.opened):hover .drop_child a{
	    max-height:0;
		padding:0 0.5em;
		gap:0.5em;
		overflow:hidden;
		opacity:0;
		transition:max-height .2s, opacity .2s;
	}
	header #NavWrap ul li.drop_wrap.opened ul{
		margin-bottom:1em;
	}
	header #NavWrap ul li.drop_wrap:has(.parent a) ul{
		transform:none;
	}
	header #NavWrap ul li.drop_wrap.opened .drop_child a{
	    max-height:inherit;
		padding:0.5em;
		opacity:1;
	}
	header #NavWrap .scroll_content :is(.drop_wrap li > a):before,
	header #NavWrap .scroll_content :is(.drop_wrap li > a:hover):before{
		content:"";
		display:block;
		width:0.35em;
		height:1px;
		background:#fff;
		opacity:1;
		visibility:visible;
		transform:none;
	}
	header #NavWrap .scroll_content > li > :is(p,a):before,
	header #NavWrap .scroll_content > li > :is(p,a):after{
		display:none;
	}
	header #NavWrap ul li.drop_wrap ul:after{
		display:none;
	}
	header #NavWrap ul li.drop_wrap ul li{
		border:none;
		margin: 0;
	}
	header #NavWrap ul li.drop_wrap .parent .ttl{
		display:none;
	}
	header #NavWrap .translate_wrap{
		margin: 0 auto;
	}
	header #NavWrap ul li a{
		text-decoration:underline solid 1px transparent;
		transition:var(--hover);
	}
	@media (any-hover: hover) {
	    header #NavWrap ul li a:hover {
	        color: var(--lgray);
			transform:translateX(0.5em);
			text-decoration-color:var(--lgray);
	    }
	}
	header .submenu{
		width:100%;
		min-height:127px;
		margin-top:1em;
	}
	header .submenu a{
		flex:1;
	}
}

@media screen and (max-width:767px) {
	header:has(#switch:checked) #site_ttl a img{
		filter:none;
	}
	header#fix_menu{
		padding: 1rem;
		align-items: center;
		height:var(--header);
		--slide: 100%;
	}
	header #site_ttl{
		text-align: left;
		padding:0;
		position:fixed;
		z-index: 1;
		margin: 0;
		gap: 1.5em;
	}
	header #site_ttl a img{
		width:92px;
	}
	header .drop_menu > :is(a,.ac_hover){
		display:none;
	}
	header #NavWrap{
		justify-content:flex-end;
	}
	header #NavWrap .translate_wrap{
		position:absolute;
		top:2.5em;
		right:6.0em;
		margin:0;
	}
	header #site_ttl .translate_wrap select{
		width: 120px;
	}
	header #switch ~ label {
		top: 0;
		right: 0;
	}
	header #NavWrap .scroll_wrap{
		max-height:calc(100%);
		overflow-y:auto;
		width: 100%;
		display: block;
	}
	header #NavWrap .scroll_wrap::{
	}
	header #NavWrap ul{
		margin-top:0;
		flex-grow: inherit;
	}
	header #NavWrap ul li.drop_wrap ul{
		max-width:100%;
		width:100%;
	}
	header #NavWrap ul li:first-child{
		border-top:none;
	}
	header #NavWrap ul li.home{
		display:block;
	}
	header #NavWrap .submenu{
		display:flex;
		gap:1em;
		align-content:center;
		justify-content:center;
		padding:2em 0;
		height:auto;
		flex-wrap:wrap;
		width:100%;
	}
	header .submenu > a{
		flex-direction:row;
		min-height:4em;
		border-radius:2em;
		border:solid 1px;
	}
	header .submenu > a img{
		width:16px;
	}
	:is(header,footer) .submenu > a span{
		min-width:0;
	}
	header .submenu div{
		width:100%;
		margin-top:2em;
	}
	header .submenu div a{
		display:block;
		color:#fff;
		text-align:left;
		width:fit-content;
		padding:0;
		text-decoration:underline solid 1px #fff;
		margin-bottom:1em;
	}
	header #NavWrap .scroll_content > li a{
		align-items:flex-end;
	}
	header #NavWrap .scroll_content > li.drop_wrap ul a{
		align-items:center;
		width:100%;
	}
	header #NavWrap .scroll_content > li > :is(p,a) [lang="en"]{
		display:block;
		font-size:2rem;
		font-weight:600;
		line-height:1;
	}
	header #NavWrap ul li :is(p,a) [lang="ja"]{
		font-size:var(--f12);
		color:var(--gray)
	}
	header #NavWrap ul li a:after{
		margin-right:1em;
	}
	header #NavWrap ul li.guideline{
		display:none;
	}
	header #NavWrap ul li.drop_wrap:before,
	header #NavWrap ul li.drop_wrap:after{
		width:0.75rem;
		top: 2.0em;
		right:1.25em;
	}
	header #NavWrap ul li.drop_wrap .parent a{
		font-size:1.142rem;
		width:100%;
	}
	header #NavWrap ul li.drop_wrap .parent a span{
		display:flex;
		align-items:center;
		gap:1em;
	}
	header #NavWrap ul li.drop_wrap .parent a span:after{
		content:"";
		display:block;
		width:0.35em;
		height:0.35em;
		border-top:solid 1px #fff;
		border-left:solid 1px #fff;
		transform:rotate(135deg);
	}
}
/* contents
-------------------------------------------------------------------*/

.copy_style {
}
.copy_style .copy{
	font-size:1.5em;
	letter-spacing:0;
	line-height:1.2;
	margin-bottom:1em;
}
.copy_style .small{
	font-size:0.6em;
	display: block;
	margin-block: 0.25em 0;
}

/* footer
-------------------------------------------------------------------*/

#footer {
	position: relative;
	z-index: 10;
	background:var(--gray);
	padding: 6.875em 0 2.3125em;
}
#footer .footer-menu,
#footer .foot_links{
	display:flex;
	justify-content:space-between;
}
#footer .footer-menu{
	gap:2em;
	align-items:flex-start;
}
#footer .copy_style a{
	display:block;
	width:fit-content;
}
#footer .foot_links{
	flex-direction:column;
	max-width:1080px;
	flex-grow:1;
}
#footer .foot_links > ul{
	display:flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: 100%;
	gap: 1.65em;
	flex-direction:column;
	padding: 0;
	margin: 0;
}
#footer .foot_links a{
	font-weight:500;
	font-family: var(--fontL);
}
#footer .foot_links > ul > li{
	min-width: 0;
	display:flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: 100%;
	gap: 3em;
	border-top:solid 1px #000;
	padding-top: 1.65em;
	margin-block: 0;
}
#footer .foot_links > ul > li.common-link{
}
#footer .foot_links .drop_wrap .child{
	gap: 0.5em 2em;
	display:flex;
	flex-wrap:wrap;
	align-items: flex-start;
	flex-direction:column;
}
#footer .foot_links p{
	font-size:1.125rem;
}
#footer .foot_links .ttl {
	min-width:7.5em;
	margin-bottom: 0;
}
#footer .foot_links .ttl a{
	display:flex;
	flex-direction:column;
	gap:0.5em;
	font-size:var(--f14);
}
#footer .foot_links .ttl a [lang="en"]{
	font-size:1.25rem;
	font-weight:700;
	font-family:var(--fontB);
	line-height:1;
}
#footer .foot_links .drop_wrap .child {
	flex-grow:1;
}
.child {}
#footer .foot_links .drop_wrap .child > ul{
	min-width: 0;
	display:flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.5em 2.5em;
	flex-wrap: wrap;
	padding: 0;
	margin: 0;
}
#footer .foot_links .drop_wrap .child > ul > li{
	margin-bottom: 0.75em;
	position:relative;
	padding-left:0.75em;
	display:block;
	white-space: nowrap;
	margin-top: 0;
}
#footer .foot_links .drop_wrap .grandchild {
	color:var(--dgray);
	font-size:var(--f14);
	display:flex;
	/* flex-direction:column; */
	gap:0.75em 4em;
	margin-top:0.75em;
	justify-content:flex-start;
	align-items:flex-start;
	margin-bottom: 0;
	padding-left: 0;
}
#footer .foot_links .drop_wrap .grandchild li{
	margin-block:0;
}
#footer .foot_links p:before{
	background:#fff;
	height:2px;
	top:0.75em;
}
#footer .foot_links .submenu{
	width:100%;
	justify-content:flex-end;
	font-size:var(--f14);
}
#footer .foot_end{
	margin-top: 9.0em;
}
#footer .foot_end .sitewrap{
	display:flex;
	flex-direction:row-reverse;
	justify-content:space-between;
}
#footer .foot_end .sublink{
	display:flex;
	gap:2em;
	font-size:var(--f14);
	padding: 0;
	margin: 0;
}
#footer .foot_end .sublink li{
	display:flex;
	gap:2em;
	align-items:center;
	color:var(--dgreen);
	margin-block: 0;
	font-family: var(--fontL);
}
#footer .foot_end .sublink li:nth-child(n+2):before{
	content:"";
	display:block;
	height:1em;
	width:1px;
	background:var(--dgreen);
	margin:auto;	
}
#footer .foot_end small{
	font-size:var(--f12);
}
a.pagetop{
	position:absolute;
	bottom: 8em;
	right:1em;
	border:solid 1px;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:0.5em;
	background:var(--fontcolor);
	font-weight:600;
	letter-spacing:0.03em;
	flex-direction:column;
	gap:0.5em;
	font-size:var(--f12);
	padding:1.5em 0.5em;
	transition:var(--hover);
	color:#fff;
}
a.pagetop:before{
	content:"";
	display:block;
	width:0.5em;
	height:0.5em;
	border-top:solid 2px #fff;
	border-right:solid 2px #fff;
	transform:rotate(-45deg);
	transition:border-color .4s;
}
a.pagetop span{
	display:block;
}
@media (any-hover: hover) {
	a.pagetop:hover{
		transform:translateY(-0.5em);
		text-decoration-color:transparent;
		background:#fff;
		color:var(--fontcolor);
	}
	a.pagetop:hover:before{
		border-color:var(--fontcolor);
	}
	#footer a:hover{
		color:#000;
	}
}
@media screen and (max-width:1560px) {
	#footer .sitewrap {
		padding-inline:var(--inner);
		gap:2em var(--inner);
	}
	#footer .sitewrap > *{
		padding-inline:0;
	}
}
@media screen and (max-width:1410px) {
	#footer .copy_style img{
		max-width:120px;
	}
	#footer .foot_links > ul{
		gap:1.5em;
	}
	#footer .foot_links .drop_wrap .child{
		gap:1em;
		flex-wrap:wrap;
	}
	#footer .foot_links .drop_wrap .child ul{
		flex-wrap:wrap;
		gap:0.5em 1.5em;
	}
}
@media screen and (max-width:1200px) {
	#footer{
		padding: 3em 0 6em;
	}

	#footer .sitewrap{
		flex-wrap:wrap;
	}
	#footer .sitewrap .site_data{
		display:flex;
		align-items: center;
		gap:2em;
	}
	#footer .sitewrap .site_data address{
		margin:0;
	}
	#footer .foot_links{
		gap:1.5em;
		max-width:100%;
	}
	a.pagetop{
		bottom:1em;
	}
}
@media screen and (max-width:767px) {
	#footer {
		padding-block:4.0em 2em;
		position: relative;
	}
	#footer .widewrap{
		padding-inline:var(--inner);
	}
	#footer .foot_links{
		display:none;
	}
	#footer .copy_style{
		font-size:1em;
	}
	#footer .copy_style .copy{
		margin-bottom: 0.75em;
	}
	#footer .copy_style a{
		width:102px;
		margin-top:2.5em;
	}
	a.pagetop{
		padding-block:1.5em;
		gap:0.5em;
		bottom:8em;
		right:2em;
	}
	a.pagetop:before{
		border-width:1px;
	}
	#footer .foot_end .widewrap{
		justify-content:center;
	}
	#footer .foot_end .sublink{
		display:none;
	}
	#footer .foot_end{
		margin-top:6em;
	}
	#footer .foot_end .sitewrap{
		justify-content:center;
	}
}
#mouse-stalker {
	position: fixed;
	top: 0;
	left: 0;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background-color: rgb(144 255 0 / 60%);
	opacity: 1;
	pointer-events: none;
	transform: translate(-50%, -50%);
	transition: width 0.3s ease, height 0.3s ease;
	z-index: 5;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	color:#666;
	font-size: 0;
}
#mouse-stalker.is-active {
	width: 75px;
	height: 75px;
	font-size: 1.2rem;
	font-weight: bold;
}
body:not(.home) #mouse-stalker.is-active{
	font-size:0.875rem;
}
body.post-type-post #mouse-stalker{
	display:none;
}
@media (hover: none) and (pointer: coarse) {
	#mouse-stalker {
		display:none;
	}
}
@media screen and (max-width:767px) {
	#mouse-stalker{
		display:none;
	}
}
/* print
-------------------------------------------------------------------*/
*html body {
	zoom:60%;
}
