@charset "utf-8";

/* all
-------------------------------------------------------------------*/
:root{
	--hover:background .4s,color .4s,border-color .4s,opacity .4s,text-decoration-color .4s,transform .4s,filter .4s,box-shadow .4s;
	--header: 80px;
	--container:1200px;
	--wide:1920px;
	--side:375px;
	--inner:5%;
	--outer:calc(var(--inner) * -1);
	--fontcolor:#4b3e24;
	--key:#f77e29;
	--accent:#179c10;
	--black:#3e382c;
	--bg:#fef5e3;
	--gray:#f0f0f0;
	--reverse:invert(1);
	--white:brightness(0) invert(1);
	--keyf:brightness(0) saturate(100%) invert(50%) sepia(67%) saturate(600%) hue-rotate(341deg) brightness(101%) contrast(94%);
	--accf:brightness(0) saturate(100%) invert(42%) sepia(30%) saturate(4526%) hue-rotate(86deg) brightness(94%) contrast(87%);
	font-weight:600;
}
:root img{
	transition:opacity .4s,filter .4s;
}
:root a{
	transition:var(--hover);
}
:root a :is(span,b,i,img){
	transition:var(--hover);
}
html {
	background: #FFFFFF;
	color: var(--fontcolor);
	font-size: 16px;
	line-height: 1.6;
	scroll-padding:var(--header);
	scroll-behavior:smooth;
	font-feature-settings:'palt';
	font-optical-sizing: auto;
	font-style: normal;
	letter-spacing:0.06em;
}
:root body {
	width: 100%;
	font-size: 100%;
	text-align: center;
	min-width: var(--container);
	position: relative;
	z-index: 2;
	color: var(--fontcolor);
	font-family: "Noto Sans JP", sans-serif;
}
:root a.skip-link{
	display:flex;
	font-size:0.75rem;
	align-items:center;
	justify-content: center;
	color:#fff;
	background:var(--key);
	position:absolute;
	top: calc(var(--header) + 1px);
	left:0;
	padding:0.5em;
	z-index:-5;
	box-shadow:0 0 1em rgba(0,0,0,0.25);
	opacity:0;
	width:8em;
	height:8em;
}
:root a.skip-link:focus{
	opacity:1;
	z-index:15;
	text-decoration:underline dotted 1px;
}
.all-content{
	overflow: clip;
}
main {
	width: 100%;
	position: relative;
	z-index: 10;
	padding-top:var(--header)
}
body img,
body svg {
	max-width: 100%;
	height: auto;
}
.sitewrap,
.widewrap{
	width: var(--container);
	margin: 0 auto;
	text-align: left;
	box-sizing: border-box;
}
.widewrap{
	max-width:var(--wide);
	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:1240px) {
	:root{
		--container:100%;
	}
	.sitewrap{
		padding-inline:var(--inner);
	}
}
@media screen and (max-width:980px) {
	:root{
		--header: 70px;
	}	
}
@media screen and (max-width:767px) {
	header#fix_menu{
		--header:60px;
	}
	:root{
		--header: 60px;
		--inner:15px;
	}
	html {
		font-size: 14px;
	}
}
is(header,footer) * {
	margin:0;
	padding:0;
	line-height:inherit;
}
/* header
-------------------------------------------------------------------*/
#global-header {
	position: fixed;
	z-index: 50;
	top: 0;
	left: 0;
	right: 0;
	display:flex;
	align-items: center;
	transition: top .4s .2s, background .2s;
	padding: 0;
	height:var(--header);
	width:100%;
	max-width:var(--wide);
	margin-inline:auto;
	background:#fff;
}

#global-header #site_ttl {
	margin-inline: 2em;
}
#global-header #site_ttl a {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5em;
	text-decoration: none;
}
#global-header #site_ttl:hover img{
	opacity:0.5;
}
#global-header .nav-wrap{
	display:flex;
	margin-inline:  auto 0;
	align-items:center;
}
#global-header .nav-wrap button{
	display:none;
}
#global-header #global-nav{
	display:flex;
	align-items:center;
	gap: 2.5em;
}
#global-header #global-nav > ul{
	display:flex;
	gap:0em;
	align-items:center;
	font-weight: 500;
	filter: drop-shadow(2px 2px 2px rgb(247 246 240));
}
#global-header #global-nav > ul > li:not(.display_sp){
	height: var(--header);
	display:flex;
	align-items:center;
}
#global-header #global-nav br{
	display:none;
}
#global-header #global-nav .drop_wrap{
	position:relative;
	cursor:pointer;
}
#global-header #global-nav .drop_head{
	position:relative;
	display:flex;
	gap:0.5em;
}
#global-header #global-nav .drop_head:after{
	clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
	background:var(--key);
	aspect-ratio:1 / 0.8;
	width:1em;
	content:"";
	transition:transform .2s;
}
#global-header #global-nav .drop_wrap:hover .drop_head:after{
	transform:scale(-1);
}
#global-header #global-nav .drop_body{
	position:absolute;
	left:50%;
	transform:translateX(-50%);
	white-space:nowrap;
	border:solid 4px var(--key);
	padding:1em 1.5em;
	border-radius:1em;
	display:flex;
	flex-direction:column;
	gap:0.5em;
	background:#fff;
	transition:var(--hover);
	opacity:0;
	pointer-events:none;
	z-index:-5;
	top:calc(100% - 1em);
}
#global-header #global-nav .drop_wrap:hover .drop_body{
	opacity:1;
	pointer-events: auto;
	z-index:5;
}
#global-header #global-nav .drop_body li{
	list-style:disc;
	margin-left:1.5em;
}
#global-header #global-nav .drop_body li::marker{
	font-size:0.75em;
	color:var(--key);
}
#global-header #global-nav > ul > li{
	padding-block:0.5em;
}
#global-header #global-nav > ul > li > :is(a,p){
	display:flex;
	align-items:center;
	height:100%;
	padding: 0.5em 0.75em;
	font-weight:700;
	line-height:1.25;
	text-decoration:transparent;
	max-width:12em;
}
#global-header #global-nav > ul > li > a:hover{
	color:var(--key);
	background:var(--bg)
}
#global-header .lnag{
	padding:1em;
	display:flex;
	align-items:center;
}
#global-header .lnag .gt_float_wrapper{
	position:relative;
	z-index:2;
	display:flex;
	align-items:center;
}
#global-header .lnag #gt_float_wrapper{
	display:flex;
}
#global-header .lnag .gt_float_switcher{
	box-shadow:none;
	border:solid 1px;
	margin:0;
	padding:0;
	font-family:inherit;
	
}
#global-header .lnag .gt-current-lang{
	padding: 0.25em;
}
#global-header .gt_float_switcher .gt_options{
	position:absolute;
	max-width:fit-content !important;
	font-size:1rem;
	background:#fff;
	margin-top:0.5em;
	text-align:left;
	border:solid 1px;
}
#global-header .gt_float_switcher .gt_options a{
	transition:var(--hover);
}

#global-header .head-cta{
	display:flex;
}
#global-header .head-cta a{
	display:flex;
	flex-direction:column;
	height:var(--header);
	font-size: 0.875em;
	padding: 1em 1.5em;
	--color:var(--key);
	color:#fff;
	justify-content:center;
	align-items:center;
	gap:0.25em;
	font-weight:600;
	background:var(--color);
	border:solid 1px var(--color);
}
#global-header .head-cta a.lines{
	--color:var(--accent);
}
#global-header .head-cta a:hover{
	background:#fff;
	color:var(--color);
}
#global-header .head-cta a:hover img{
	filter:var(--keyf);
}
#global-header .head-cta a.lines:hover img{
	filter:var(--accf);
}
@media (max-width:1600px) {
	#global-header{
		font-size:0.94rem;
	}
	#global-header #global-nav > ul{
		gap:0;
	}
	#global-header #global-nav > ul > li{
		position:relative;
		padding-right:1px;
	}
	#global-header #global-nav > ul > li:after{
		content:"";
		display:block;
		position:absolute;
		inset:0.75em 0 0.75em auto;
		border-left:dotted 1px #999;
	}
	#global-header #global-nav > ul > li > :is(a,p){
		padding-inline:1em;
		min-width:6em;
		justify-content:center;
	}
	#global-header .head-cta a{
		padding-inline:0.25em;
		flex: 1;
		font-size:min(0.75rem);
		letter-spacing:0;
		min-width:calc(var(--header) + 1em);
		line-height:1.2;
	}
	#global-header .head-cta a img{
		width:2.5em;
	}
	#global-header .gt_float_switcher img{
		width:1.25em;
	}
}
@media (max-width:1500px) {
	#global-header{
		font-size:0.88rem;
	}
	#global-header #global-nav > ul > li > :is(a,p){
		padding-inline:0.75em;
	}
	#global-header #global-nav br{
		display:block;
	}
}
@media (max-width:1200px) {
	#global-header #global-nav{
		display:none;
	}
	#global-header {
		padding-right:var(--header);
	}
}
@media  (max-width:767px) {
	#global-header{
		padding-inline:0 var(--header);
	}
	#global-header .lnag{
		/* padding-inline:0; */
	}
	#global-header .nav-wrap{
		display:flex;
		margin-inline: auto 0;
	}
	#global-header .nav-wrap button{
		display:flex;
		appearance:none;
		padding:0.25em;
		height: var(--header);
		aspect-ratio:1 / 1;
		background: #00a596;
		border:none;
		position:relative;
		cursor:pointer;
		align-items:center;
		justify-content:center;
		z-index:100;
		transition:background .2s,right .2s;
		right:0;
	}
	#global-header .nav-wrap button:is(:hover,:focus){
		background: rgb(4 166 151 / 60%);
	}
	#global-header .nav-wrap button:before,
	#global-header .nav-wrap button:after,
	#global-header .nav-wrap button span{
		display:block;
		height:2px;
		width:2em;
		background:#fff;
		transition:transform .3s,inset .2s,opacity .2s .2s;
		transform:rotate(-180deg);
	}
	#global-header .nav-wrap button:before,
	#global-header .nav-wrap button:after{
		content:"";
		position:absolute;
		inset:0 auto;
		margin:auto;
	}
	#global-header .nav-wrap button:before{
		top:-1.25em;
	}
	#global-header .nav-wrap button:after{
		bottom:-1.25em;
	}
	#global-header #global-nav{
		position:fixed;
		width:var(--side);
		top:0;
		bottom: auto;
		right:calc(var(--side) * -1);
		flex-direction: column-reverse;
		z-index:150;
		background:var(--accent);
		transition:right .2s;
		justify-content:flex-end;
		gap:0;
	}
	#global-header #global-nav > *{
		visibility:hidden;
	}
	body.is-menu-open #global-header .nav-wrap button{
		right:var(--side);
		background: #00a596;
	}
	body.is-menu-open #global-header .nav-wrap button span{
		transform:rotate(315deg);
		position: relative;
		z-index: 0;
	}
	body.is-menu-open #global-header .nav-wrap button:before{
		transform:rotate(45deg);
		top:0;
	}
	body.is-menu-open #global-header .nav-wrap button:after{
		transform:rotate(315deg);
		bottom:0;
		opacity:0;
	}
	body #global-header .nav-wrap i{
		position: fixed;
		margin: auto;
		inset: 0;
		z-index: -1;
		display:inline-block;
		content:"";
		width: 100%;
		height: 100%;
		opacity:0;
		visibility:hidden;
	}
	body.is-menu-open #global-header .nav-wrap i{
		opacity:1;
		visibility:visible;
	}
	body.is-menu-open #global-header #global-nav{
		right:0;
	}
	body.is-menu-open #global-header #global-nav > *{
		visibility:visible;
	}
	#global-header #global-nav ul{
		flex-direction:column;
		gap:0;
		width:100%;
		border-bottom:solid 1px #fff;
		filter: none;
	}
	#global-header #global-nav ul li:not(:first-child){
		border-top:solid 1px #fff;
	}
	#global-header #global-nav ul a{
		padding: 1.5em 1em;
		min-height: 70px;
		background: var(--key);
		color: #fff;
		font-size: 0.875rem;
		display:flex;
		align-items:center;
		text-decoration:underline dotted 1px;
		text-decoration: none;
	}
	#global-header #global-nav ul a:is(:hover,:focus){
		background: #35baae;
	}
}
@media screen and (max-width:767px) {
	:root{
		--side: 100%;
	}
	#global-header > a{
		max-width:120px;
	}
	#global-header #global-nav ul a{
		font-size: 1rem;
		padding: 1em 1.5rem;
		min-height: 60px;
		text-align: left;
	}
	#global-header #global-nav ul a:is(:hover,:focus){
		background: var(--key);
	}
	
}
:root section.cta-area{
	background:var(--accent);
	padding-block:5em;
	color:#fff;
}
:root section.cta-area hgroup{
	margin-bottom:2em;
	text-align:center;
}
:root section.cta-area h2{
	text-align:center;
	font-size:2rem;
	margin-bottom:0.75em;
}
:root section.cta-area hgroup p{
	line-height:2.25;
}
:root section.cta-area ul{
	display:flex;
	flex-wrap:wrap;
	padding:0;
	margin:0 auto;
	gap:4%;
	max-width:952px;
}
:root section.cta-area ul li{
	list-style:none;
	flex-basis:48%;
}
:root section.cta-area ul li a{
	width:100%;
	--basecolor:#fff;
	--subcolor:var(--fontcolor);
	min-height:5em;
	font-size:1.125rem;
	margin-block:0.75em;;
	border-color:#fff;
	padding: 0.5em 2.5em;
}
:root section.cta-area ul li a b{
	display:block;
	font-size:1.3333em;
	font-weight:700;	
}
:root section.cta-area ul li a:before,
:root section.cta-area ul li a:after{
	right:1.75em;
}
:root section.cta-area ul li a:hover{
	--basecolor:var(--key);
	--subcolor:#fff;
}
:root section.cta-area ul li a:hover img{
	filter:var(--white);
}

/* footer
-------------------------------------------------------------------*/
#global-footer {
	position: relative;
	z-index: 55;
}
#global-footer .sitewrap{
	display:flex;
	margin-inline:auto;
}
#global-footer .foot_main{
	background:var(--gray);
	padding: 5em 0 2.5em;
}
#global-footer .foot_main .company-data{
	display:flex;
	flex-direction:column;
	gap:0.25em;
	margin-top:2.5em;
	align-content:flex-start;
}
#global-footer .foot_main .company-data a{
	margin-top:2.0em;
}
#global-footer .foot_main .foot_top a:is(:hover , :focus){
	opacity: 0.7;
}
#global-footer .foot_main .foot_menu {
	margin-inline:auto 0;
}
#global-footer .foot_main .foot_menu .scroll_wrap{
	display:flex;
	gap:2em;
}
#global-footer .foot_main .foot_menu .scroll_wrap ul{
	display:flex;
	flex-direction:column;
	gap:0.75em;
	width:16em;
}
#global-footer .foot_main .foot_menu .scroll_wrap li{
	list-style-position:inside;
	padding-inline:1em;
}
#global-footer .foot_main .foot_menu .scroll_wrap li::marker{
	font-size:0.75em;
}
#global-footer .foot_main .foot_menu .scroll_wrap li a{
	font-weight:600;
}
#global-footer label{
	display:none;
}
#global-footer input{
	appearance:none;
	width:1px;
	height:1px;
	position:absolute;
	z-index:-1;
	border:none;
	background:none;
}
#global-footer .foot_sub{
	background:#666;
	color:#fff;
	padding:1em;
	
}
a.pagetop{
	position: fixed;
	z-index: 100;
	bottom: 2em;
	right:2%;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	background:var(--key);
	color:#fff;
	aspect-ratio:1 / 1;
	width:5em;
	border-radius:50%;
	font-weight:600;
	border:solid 4px;
	filter:drop-shadow(0 0.25em 5px rgba(0,0,0,0.25))
}
a.pagetop:is(:hover,:focus){
	text-decoration-color:transparent;
}
a.pagetop i{
	display:block;
	width:3px;
	background:#fff;
	height:1.0em;
	margin: 0;
}
a.pagetop i:before{
	content:"";
	display:block;
	width:0.75em;
	height:0.75em;
	border-top:solid 3px;
	border-right:solid 3px;
	position:absolute;
	top:0.875em;
	left:0px;
	right:1.5px;
	margin:auto;
	transform:rotate(-45deg);
}
a.pagetop:hover{
	background:#fff;
	color:var(--key);
}
a.pagetop:hover i{
	background:var(--key);
}

@media (max-width:1200px) {
	#global-footer .sitewrap{
		display:block;
	}
	#global-footer .foot_top{
		width:fit-content;
		margin-inline:auto;
		text-align:center;
	}
	#global-footer .foot_top address{
		text-align:left;
	}
	#global-footer label{
		appearance:none;
		display:flex;
		position:fixed;
		top:0;
		right:0;
		z-index:60;
		cursor:pointer;
		padding: 1.5em 0em;
		transition:right .2s;
		width:var(--header);
		height:var(--header);
	}
	#global-footer label b{
		display:block;
		position:relative;
		height:100%;
		width:100%;
		transition:transform .2s;
		max-width:2.25rem;
		margin:auto;
	}
	#global-footer label b:before,
	#global-footer label b:after,
	#global-footer label b span{
		display:block;
		position:absolute;
		inset:0;
		margin:auto;
		height:3px;
		background:var(--key);
		transition:transform .2s,inset .2s;
	}
	#global-footer label b:before{
		content:"";
		inset:0 0 auto;
	}
	#global-footer label b:after{
		content:"";
		inset:auto 0 0;
	}
	#global-footer nav{
		position:fixed;
		width: var(--side);
		top:0;
		bottom:0;
		right:calc(var(--side) * -1);
		transition:opacity .2s,right .2s;
		opacity:0;
		background:#fff;
		z-index: 60;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap{
		display:none;
	}
	#global-footer:has(#switch:checked) label{
		right:var(--side);
	}
	#global-footer:has(#switch:checked)  label b{
		transform:rotate(90deg);
	}
	#global-footer:has(#switch:checked)  label b:before{
		inset:0;
		transform:rotate(-135deg);
	}
	#global-footer:has(#switch:checked)  label b:after{
		inset:0;
		transform:rotate(135deg);
	}
	#global-footer:has(#switch:checked)  label b span{
		inset:0;
		transform:rotate(135deg);		
	}
	#global-footer:has(#switch:checked) nav{
		right:0;
		opacity:1;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap{
		display:block;
		padding:1em;
		overflow-y:auto;
		scrollbar-width:thin;
		height:100%;
		overscroll-behavior:contain;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap > ul{
		gap:0;
		width:100%;
		padding:0;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap > ul:first-of-type{
		border-top:solid 1px #c7c7c7;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap ul li{
		list-style:none;
		border-bottom:solid 1px #c7c7c7;
		padding:0;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap a:not(.btn){
		display:block;
		padding:1em 1em;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap a:not(.btn):hover{
		background:var(--bg);
		color:var(--key);
		
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta{
		display:block;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta > a{
		background:var(--accent);
		margin:0;
		min-height:4em;
		width:auto;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta > a:not(:hover) img{
		filter:var(--white);
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta > a:hover{
		background:#fff;
		--subcolor:var(--accent)
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul{
		display:flex;
		flex-direction:row;
		width:100%;
		gap:0.5em;
		padding:1em 0.5em;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul li{
		border:none;
		flex:1;
		padding:0;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul li a{
		width:auto;
		margin:0;
		flex-direction:column;
		padding:1em 0.5em;;
		background:#fff;
		color:var(--accent);
		font-size:0.928rem;
		border:solid 3px var(--accent);
		border-radius:1rem;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul li a:before,
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul li a:after{
		display:none;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul li a:hover{
		background:var(--accent);
		color:#fff;
	}
	#global-footer .foot_main .foot_menu .scroll_wrap .footer-cta ul li a:hover img{
		filter:var(--white);
	}
	:root section.cta-area ul li{
		margin:0;
	}
	:root section.cta-area ul li a{
		justify-content:flex-start;
		padding-inline:1.5em 3.5em;
		min-height: 4.5em;
	}
	:root section.cta-area ul li a span{
		flex-grow:1;
		max-width:10em;
		margin-inline:auto;
	}
}

@media screen and (max-width:767px) {
	:root section.cta-area h2{
		font-size:1.5rem;
	}
	:root section.cta-area ul{
		flex-direction:column;
		margin-inline:var(--inner);
	}
	:root section.cta-area ul li a span{
		max-width:fit-content;
	}
	:root section.cta-area ul li a img{
		height:1.75em;
		width:auto;
	}
	#global-header .lnag .gt_float_switcher{
		font-size:1.25em;
	}
	#global-header .head-cta{
		display:none;
	}
	a.pagetop{
		position:absolute;
		bottom:auto;
		margin-top:1em;
		z-index: 1;
	}
	#global-footer {
		padding-block:0;
		position:static;
	}
	#global-footer .foot_main{
		margin: 0 auto 0;
	}
	#global-footer .foot_main ul{
		display: none;
	}
	#global-footer .foot_sub .foot_subinner{
		gap: 1em 4%;
		flex-direction: column;
	}
	#global-footer label{
		padding:1.25em 1em;
	}
	#global-footer:has(#switch:checked) label{
		right:0;
		z-index: 70;
	}
	#global-footer nav {
		padding-top:var(--header) ;
	}
	body.home #global-footer .foot_sub{
		margin-bottom: 4.5em;
	}	
	#global-footer .foot_top{
		text-align:left;
		position:relative;
		margin-inline:0;
		padding-top:0em;
	}
	#global-footer .foot_top > a img{
		height:1.875em;
		width:auto;
	}
	#global-footer .foot_main .company-data a{
		margin:0;
		position:absolute;
		right: 2em;
		top:0;
		width:26px;
	}
}

/* print
-------------------------------------------------------------------*/
@media print {
	*html body {
		zoom:60%;
	}
	#global-header{
		position: relative;
	}
}