@charset "UTF-8";
/* CSS Document */
/*=======================================
  共　通
=======================================*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho:wght@400;500;600&display=swap');
:root {
	--ULOS-TEXT-DARK:#3C3C3C;
	--ULOS-GREEN01: #1D6051;
	--ULOS-GREEN02: #00775B;
	--ULOS-GREEN03: #176754;
	--ULOS-DARK-GREEN: #003F2A;
}

/*
:root {
	--KOKUYO-TEXT-DARK: #454545;
}
body.kc_GREEN .kc_bg{background: var(--KOKUYO-GREEN)!important;}
*/
/*
#loadArea {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	visibility: visible;
	opacity: 1;
	background: #fff;
	transition:
		opacity 0.8s ease,
		visibility 0.8s ease;
	z-index: 10000;
}
body.is-loaded #loadArea{
	visibility: hidden;
	opacity: 0;
}
#loadArea .loadpBar {
	position: fixed;
	top:50%;
	left:0;
	background: #000;
	height: 1px;
	width: 0;
	transition: width 0.2s ease;
}
#loadArea .loadPer {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 9999;
	transform: translate(-50%, -50%);
	font-size: 50px;
}
*/

html {
	background:#fff;
	color:#000;
	font-size: 625%;/*rem用100px*/
	/*scrollbar hidden*/
	/*-ms-overflow-style: none;*//* IE, Edge 対応 */
	/*scrollbar-width: none;*//* Firefox 対応 */
}
/*scrollbar hidden*/
html::-webkit-scrollbar {/* Chrome, Safari 対応 */
	/*display:none;*/
}
html.lock{
	overflow: hidden;
	-ms-touch-action: none;
	touch-action: none;
}
body{
	/*font-size:12px;*/
	font-size: 0.12em;/*rem用12px 以下rem chrome対策でem 以下fontsizeはremで1/100指定*/
	font-family: 'Noto Sans JP', sans-serif;/*Regular 400 Bold 700*/
	font-weight: 500;
	font-feature-settings: "palt";/*Google Notoは効く、Adobe notoは効かない、メイリオは効かない*/
	line-height:1.0;
	letter-spacing:0px;
	-webkit-text-size-adjust: 100%;/*スマホ文字拡大対策*/
	color:var(--ULOS-TEXT-DARK);
}
.fgo_r{font-family: 'Noto Sans JP', serif!important; font-weight: 400!important;}
.fgo_sb{font-family: 'Noto Sans JP', serif!important; font-weight: 600!important;}
.fgo_b{font-family: 'Noto Sans JP', serif!important; font-weight: 700!important;}
.fmin_r{font-family: "Shippori Mincho", serif!important; font-weight: 400!important;}
.fmin_m{font-family: "Shippori Mincho", serif!important; font-weight: 500!important;}
.fmin_sb{font-family: "Shippori Mincho", serif!important; font-weight: 600!important;}
.ls0{letter-spacing: 0!important;}
::selection {
  color: white;
  background-color: var(--ULOS-GREEN01);
}

/* --Scrollbar-- */
.sbar_css::-webkit-scrollbar {
  width: 10px;
}

.sbar_css::-webkit-scrollbar-track {
  background: #d9d9d9;
  border-radius: 0;
}

.sbar_css::-webkit-scrollbar-thumb {
  background: #000000;
  border-radius: 0;
}

@supports not selector(::-webkit-scrollbar) {
  .sbar_css {scrollbar-color: #000000 #d9d9d9;}
}


/* --A-- */
a {
	color: var(--ULOS-GREEN01);
	cursor:pointer;
	text-decoration:none;
	-webkit-touch-callout: none;
	-webkit-tap-highlight-color: transparent;
}
a.noLink{cursor: default;}

a:hover {
	text-decoration:none;
}
/* --HEADLINE-- */
h1, h2, h3, h4, h5, h6 {
	font-size:100%;
	font-weight: 400;
	margin:0;
	max-height: 100%;/*android chrome対策*/
}
/* --OTHER TAGS-- */
p {
	margin-bottom:0;
	text-align:left;
	width:auto;
	max-height: 100%;/*android chrome対策*/
}
em, strong {
	font-weight:bold;
}
/* --clearfix-- */
.clf:after{
	content: ".";
	display: block;
	height: 0;
	font-size:0;
	clear: both;
	visibility:hidden;
}
.clf{
	display: inline-block;
}
	/* Hides from IE Mac */
	* html .clf{
		height: 1%;
	}
	.clf{
		display:block;
	}
	

.vm,
.vmTxt{
	display: inline-block;
	position: relative;
	top:50%;
	-moz-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}
/*========
上下中央寄せ
========*/
/*上下中央寄せ*/
.vmf,
.pc_vmf{
	display: -webkit-flex;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
/*上下左右中央寄せ*/
.vmf_c,
.pc_vmf_c{
	display: -webkit-flex;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.vmg_c,
.pc_vmg_c{
	display: grid;
	place-content: center;
	place-items: center;
}
.flex,
.pc_flex{
	display: -webkit-flex;
	display: flex;
}
.f_warp,.pc_f_warp	{flex-wrap: wrap;}
.f_ac,.pc_f_ac			{align-items: center;}
.f_as,.pc_f_as			{align-items: flex-start;}
.f_dr,.pc_f_dr			{flex-direction: row-reverse;}/*逆順*/
.f_dc,.pc_f_dc			{flex-direction: column;}
.f_cc,.pc_f_cc			{justify-content: center;}
.f_ce,.pc_f_ce			{justify-content: flex-end;}/*後ろ付き*/
.f_cb,.pc_f_cb			{justify-content: space-between;}

.grid,
.pc_grid{display: grid;}
.grid .ga1,
.pc_grid .pc_ga1{grid-area: 1/1;}



.opBtf a,
a.opBtf{
	opacity: 1;
	-webkit-transition: opacity 0.25s ease;
	transition: opacity 0.25s ease;
}

.zoomBt a,
a.zoomBt{
	-webkit-transform: scale(1.0);
		transform: scale(1.0);
	-webkit-transition: transform 0.35s ease;
	transition: transform 0.35s ease;
}
/*.opBtf a,
.opBtf a *,*/
.zoomBt a,
a.zoomBt,
.zoomBt a *,
a.zoomBt *{
	backface-visibility: hidden;/*chrome transition 1pxズレ対策*/
}
.opBtf a:not(.noLink):hover,a.opBtf:not(.noLink):hover{
	opacity: 0.5;
	-webkit-transition: opacity 0.35s ease;
	transition: opacity 0.35s ease;
}
.zoomBt a:not(.noLink):hover,
a.zoomBt:not(.noLink):hover{
	-webkit-transition: transform 0.2s ease;
	transition: transform 0.2s ease;
	-webkit-transform: scale(1.15);
	transform: scale(1.15);
}

a.op_hov .op{
	opacity: 1;
	-webkit-transition: opacity 0.25s ease;
	transition: opacity 0.25s ease;
}
a.op_hov:not(.noLink):hover .op{
	opacity: 0.5;
	-webkit-transition: opacity 0.35s ease;
	transition: opacity 0.35s ease;
}


#loaderOuter{
	position:fixed;
	width:100%;
	height:100%;
	z-index:499;
	background:#FFF;
}
#loader{
	position: fixed;
	top:50%;
	left:50%;
	z-index:90;
}
.sp{display: none !important;}
/*.pc{display: none !important;}*/

.noEvent{pointer-events:none;}/*IE11以降（IE11ではaタグには利かない）*/
.wrapper{overflow: hidden;}
.yokoSc::-webkit-scrollbar,
.yokoSc_sp::-webkit-scrollbar {
	display: none;
}

img.obFit,
img.obFit_ct{width: 100%;height: 100%;}
img.obFit   {object-fit: cover;}
img.obFit_ct{object-fit: contain;}
img.obPos_tc,
img.pc_obPos_tc{object-position: top center;}

.bdr999{
	isolation: isolate;
	-webkit-border-radius: 9999px;
	border-radius: 9999px;
}

a.aTel{cursor: default;}

a.zoomImg_hov img.zoomImg{
	transform: scale(1);
	-webkit-transition: transform 0.75s ease;
	transition: transform 0.75s ease;
}
a.zoomImg_hov:not(.noLink):hover img.zoomImg{
	transform: scale(1.1);
}





a.ring > *{
	position: relative;
	z-index: 1;
}
a.ring::after {
	content: '';
	display: block;
	position: absolute;
	z-index:0;
	border-radius: 50%;
	height: 1px;
	width: 1px;
	top: 50%;
	left: 50%;
}
a.ring.t75:hover::after {animation: t75 0.5s ease-out 0s 1 normal both;}
a.ring.t100:hover::after {animation: t100 0.5s ease-out 0s 1 normal both;}
a.ring.t200:hover::after {animation: t200 0.75s ease-out 0s 1 normal both;}
a.ring.cbl::after {background: rgba(181, 244, 253, 0.8);}
a.ring.cw::after  {background: rgba(255, 255, 255, 0.8);}
@keyframes t75 {
    0%   { opacity: 0; transform: scale(1);}
    50%  { opacity: 1; }
    100% { transform: scale(75); opacity: 0.0;}
}
@keyframes t100 {
    0%   { opacity: 0; transform: scale(1);}
    50%  { opacity: 1; }
    100% { transform: scale(100); opacity: 0.0;}
}
@keyframes t200 {
    0%   { opacity: 0; transform: scale(1);}
    50%  { opacity: 1; }
    100% { transform: scale(200); opacity: 0.0;}
}

/*txtBtAni*/
a .txtBtAni{display: inline-block;}
a:hover:not(.noLink) .txtBtAni{
	position: relative;
	animation: txtBtAni 0.5s ease 0s 1 normal both;
}
@-webkit-keyframes txtBtAni {
	0% {
		top: 0;
		opacity: 1;
	}
	30% {
		top: -0.25em;
		opacity: 0;
	}
	31% {
		top: 0.25em;
		opacity: 0;
	}
	100% {
		top:0;
		opacity: 1;
	}
}
@keyframes         txtBtAni {
	0% {
		top: 0;
		opacity: 1;
	}
	30% {
		top: -0.25em;
		opacity: 0;
	}
	31% {
		top: 0.25em;
		opacity: 0;
	}
	100% {
		top:0;
		opacity: 1;
	}
}

/*
icon_next
*/
a.icon_next .icon_w,
a.icon_next .icon_bk{
	display: grid;
	place-content: center;
	place-items: center;
	padding-left: 5px;
	-webkit-transition: background 0.35s ease;
	transition: background 0.35s ease;
}
/*icon_wにnoBgがあれば背景無し*/
a.icon_next .icon_w:not(.noBg)      {background: rgba(255,255,255,0);}
a.icon_next:hover .icon_w:not(.noBg){background: rgba(255,255,255,1);}
/*icon_bkにnoBgがあれば背景無し*/
a.icon_next .icon_bk:not(.noBg)      {background: #FFF;}
a.icon_next:hover .icon_bk:not(.noBg){background: #000;}

a.icon_next .icon_w::before,
a.icon_next .icon_bk::before{
	content: '';
	width: 15px;
	height: 20px;
	display: block;
	-webkit-mask-image: url('../img/icon_next.svg');
	mask-image: url('../img/icon_next.svg');
	mask-size: 100% 100%;
	-webkit-transition: background 0.35s ease;
	transition: background 0.35s ease;
}
a.icon_next .icon_w.h10::before,
a.icon_next .icon_bk.h10::before{
	width: 8px;
	height: 10px;
}
a.icon_next .icon_w::before{background: rgba(255,255,255,1);}
a.icon_next:hover .icon_w::before{background: #000;}

a.icon_next .icon_bk::before{background: #000;}
a.icon_next:hover .icon_bk::before{background: #FFF;}

a.icon_next:hover .icon_bk::before,
a.icon_next:hover .icon_w::before{
	animation: iconAni 0.5s ease 0.1s 1 normal both;
}
a.icon_next:hover .icon_bk.h10::before,
a.icon_next:hover .icon_w.h10::before{
	animation: iconAni_h10 0.5s ease 0.1s 1 normal both;
}
a.icon_next:hover .icon_bk.deg90::before,
a.icon_next:hover .icon_w.deg90::before{
	animation: iconAni_deg90 0.5s ease 0.1s 1 normal both;
}

@-webkit-keyframes iconAni {
	0% {
		margin-left: 0;
		opacity: 1;
	}
	50% {
		margin-left: 10px;
		opacity: 0;
	}
	51% {
		margin-left: -10px;
		opacity: 0;
	}
	100% {
		margin-left: 0;
		opacity: 1;
	}
}
@keyframes         iconAni {
	0% {
		margin-left: 0;
		opacity: 1;
	}
	50% {
		margin-left: 10px;
		opacity: 0;
	}
	51% {
		margin-left: -10px;
		opacity: 0;
	}
	100% {
		margin-left: 0;
		opacity: 1;
	}
}

@-webkit-keyframes iconAni_h10 {
	0% {
		margin-left: 0;
		opacity: 1;
	}
	50% {
		margin-left: 5px;
		opacity: 0;
	}
	51% {
		margin-left: -5px;
		opacity: 0;
	}
	100% {
		margin-left: 0;
		opacity: 1;
	}
}
@keyframes         iconAni_h10 {
	0% {
		margin-left: 0;
		opacity: 1;
	}
	50% {
		margin-left: 5px;
		opacity: 0;
	}
	51% {
		margin-left: -5px;
		opacity: 0;
	}
	100% {
		margin-left: 0;
		opacity: 1;
	}
}


@-webkit-keyframes iconAni_deg90 {
	0% {
		margin-top: 0;
		opacity: 1;
	}
	50% {
		margin-top: 10px;
		opacity: 0;
	}
	51% {
		margin-top: -10px;
		opacity: 0;
	}
	100% {
		margin-top: 0;
		opacity: 1;
	}
}
@keyframes         iconAni_deg90 {
	0% {
		margin-top: 0;
		opacity: 1;
	}
	50% {
		margin-top: 10px;
		opacity: 0;
	}
	51% {
		margin-top: -10px;
		opacity: 0;
	}
	100% {
		margin-top: 0;
		opacity: 1;
	}
}


/*imgShowkeyとinViewを併用*/
.imgShowkey img.showAni{
	opacity: 0;
	-webkit-transform: scale(1.3);
					transform: scale(1.3);
	-webkit-transition:
		opacity 1s ease,
		transform 1s ease;
	transition:
		opacity 1s ease,
		transform 1s ease;
}
.imgShowkey.show img.showAni{
	opacity: 1;
	-webkit-transform: scale(1.0);
					transform: scale(1.0);
}

/*blurShowkeyとinViewを併用*/
.blurShowkey .blurShowAni{
	opacity: 0;
	filter: blur(150px);
	-webkit-transition:
		opacity 0.5s ease,
		filter 0.5s ease;
	transition:
		opacity 0.5s ease,
		filter 0.5s ease;
}
.blurShowkey.show .blurShowAni{
	opacity: 1;
	filter: blur(0);
}



/*deSVG
=============================*/
/*
.svgImg path{
	fill: #FFF;
}*/
/*=============================
  header
=============================*/
header{
	position: absolute;
	top:35px;
	left:35px;
	z-index: 100;
}
header .logo img{
	width: 140px;
	height: auto;
}


/*=============================
  footer
=============================*/
footer{
	background: #000;
	padding: 100px 20px;
}
footer > .inner{
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
	border: 1px solid #FFF;
	border-radius: 20px;
	padding: 50px 25px;
}
footer > .inner > *{
	color: #FFF;
	text-align: center;
}
footer > .inner a{
	color: #FFF;
	text-decoration: underline;
}
footer h2{
	font-size: 0.3rem;
	letter-spacing: 0.15em;
	line-height: 1.5;
}
footer .txt01{
	font-size: 0.13rem;
	letter-spacing: 0.05em;
	line-height: 2;
	margin-top: 2em;
}
footer .txt02{
	font-size: 0.11rem;
	letter-spacing: 0.05em;
	line-height: 2;
	margin-top: 3em;
}