@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: 100px;
	--container:1200px;
	--wide:1920px;
	--side:375px;
	--inner:5%;
	--outer:calc(var(--inner) * -1);
	--fontcolor:#282828;
	--key01:#f98925;
	--key02:#ffd082;
	--key03:#f7edc4;
	--accent01:#1d4192;
	--subcolor:#f98925;
	--light:#ffff00;
	--gray:#ddddd3;
	--lgray:#f4f6f8;
	--dgray:#888888;
	--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);
}
:root mark{
	background:none;
	text-decoration-line:underline;
	text-decoration-thickness:0.6em;
	text-decoration-color:var(--light);
	text-decoration-style:solid;
	text-underline-offset:-0.3em;
}
:root em{
	font-family: "Cormorant Garamond", "Zen Kaku Gothic New", sans-serif;
}
:root p{
	font-weight:400;
}
html {
	background: #FFFFFF;
	color: var(--fontcolor);
	font-family: "Zen Kaku Gothic New", sans-serif;
	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.03em;
}
body {
	width: 100%;
	font-size: 100%;
	text-align: center;
	min-width: var(--container);
	position: relative;
	z-index: 2;
}
: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: 5;
}
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: absolute;
	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;
	justify-content:space-between;
}
#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;
	--color:var(--accent01)
}
#global-header .btn{
	margin:1em 1.5em;
	--key01: var(--accent01);
	padding:1em 2.5em;
}
@media screen and (max-width:980px) {
	:root{
		--side:280px;
	}
	#global-header{
		padding-inline:0 var(--header);
	}
	#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 #site_ttl{
		max-width: 160px;
		margin-inline:var(--inner);
	}
	#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 .cta-area{
	background:url(../img/bg_cta.jpg) no-repeat top center / cover;
	padding-block: 3.75em;
	color:#fff;
}
:root .cta-area .sitewrap {
	text-align:center;	
}
:root .cta-area h2{
	font-size: 2.5rem;
	margin-bottom:0.75em;
	line-height: 1.25;
}
:root .cta-area .btn{
	margin: 1.5em auto 0;
	padding-block: 1.0em;
	font-size: 1.5em;
}
@media screen and (max-width:767px){
	:root .cta-area{
		padding-block: 3em;
	}
	:root .cta-area h2{
		font-size: 1.75rem;
	}
	:root .cta-area .btn{
		font-size: 1.25em;
	}
}
/* footer
-------------------------------------------------------------------*/

#global-footer .foot_sub{
	color:#999;
	padding:1em;
	
}
a.pagetop{
	position: absolute;
	z-index: 100;
	bottom: -2em;
	right:2%;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	background:var(--key01);
	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;
}
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{
		display:flex;
		position:fixed;
		top:0;
		right:0;
		z-index:60;
		aspect-ratio:1 / 1;
		height:var(--header);
		cursor:pointer;
		padding:1.75em 1.5em;
		transition:right .2s;
	}
	#global-footer label b{
		display:block;
		position:relative;
		height:100%;
		width:100%;
		transition:transform .2s;
	}
	#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%;
	}
	#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 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) ;
	}
	#global-footer .foot_sub{
		margin-bottom: 10.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;
	}
}