@charset "UTF-8";
/* CSS Document */
/*=======================================
  共　通
=======================================*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@100..900&display=swap');

:root {
	--vw: 1500;
	--vw_px: 1500px;
	--vh: 835;
	--vh_px: 835px;
	--green: #46FFA3;
	--blue: #004FEE;
	--yello: #FFE346;
	--or: #FFBF36;

	--sb-track-color: rgba(255,255,255,0.3);
	--sb-thumb-color: #ffffff;
	--sb-size: 5px;
	--sb-radius: 0px;
}

/*
: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;
}
body.is-loaded #loadArea{
	animation: loadedAni 2s linear 0s 1 normal both;
}
@keyframes loadedAni {
	0%   {opacity: 1; visibility: visible;}
	90%  {opacity: 0; visibility: visible;}
	100% {opacity: 0; visibility: hidden;}
}

/* #loadArea {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	visibility: visible;
	opacity: 1;
	background: #FFF;
	filter: url(#dissolve);
}
body.is-loaded #loadArea{
	animation: loadedAni 4s linear 0s 1 normal both;
}
@keyframes loadedAni {
	0%   {opacity: 1; visibility: visible;}
	70%  {opacity: 1; visibility: visible;}
	90%  {opacity: 0; visibility: visible;}
	100% {opacity: 0; visibility: hidden;}
} 



#loadArea svg{display: none;}*/

#loadArea .logo{
	aspect-ratio: 162/73;
  width: 200px;
	margin: auto;
}
/* #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: #FFF;
	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: dnp-shuei-gothic-kin-std, 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%;
	/*スマホ文字拡大対策*/
}

.fgo_l {
	font-family: dnp-shuei-gothic-kin-std, sans-serif !important;
	font-weight: 400 !important;
}

.fgo_m {
	font-family: dnp-shuei-gothic-kin-std, sans-serif !important;
	font-weight: 500 !important;
}

.fgo_b {
	font-family: dnp-shuei-gothic-kin-std, sans-serif !important;
	font-weight: 600 !important;
}

.fen_l {
	font-family: neue-haas-grotesk-display, sans-serif !important;
	font-weight: 400 !important;
}

.fengo_l {
	font-family: neue-haas-grotesk-display, dnp-shuei-gothic-kin-std, sans-serif !important;
	font-weight: 400 !important;
}

.ofAuto,
.pc_ofAuto {
	overflow: auto;
}

.ofAuto::-webkit-scrollbar,
.pc_ofAuto::-webkit-scrollbar {
	width: var(--sb-size);
}

.ofAuto::-webkit-scrollbar-track,
.pc_ofAuto::-webkit-scrollbar-track {
	background: var(--sb-track-color);
	border-radius: var(--sb-radius);
}

.ofAuto::-webkit-scrollbar-thumb,
.pc_ofAuto::-webkit-scrollbar-thumb {
	background: var(--sb-thumb-color);
	border-radius: var(--sb-radius);
}

@supports not selector(::-webkit-scrollbar) {
	.ofAuto,
	.pc_ofAuto {
		scrollbar-color: var(--sb-thumb-color) var(--sb-track-color);
	}
}


.simplebar-scrollbar::before {
	background-color: var(--sb-thumb-color);
}

.simplebar-track.simplebar-vertical {
	width: var(--sb-size);
}

.simplebar-track {
	background: var(--sb-track-color);
	width: var(--sb-size);
}

.simplebar-scrollbar {
	background: var(--sb-thumb-color);
	border-radius: var(--sb-radius);
	top: 0;
	right: 0;
}



::selection {
	color: #000;
	background-color: #FFF;
}

/* --A-- */
a {
	color: #FFF;
	cursor: pointer;
	text-decoration: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	/*リンクタップ時のハイライト表示無効*/
}

a.noLink {
	cursor: default;
}

a:hover {
	text-decoration: none;
}

/* --HEADLINE-- */
h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: 100%;
	margin: 0;
	/*max-height: 100%;android chrome 文字大きくなるバグ対策→meta initial-scale あれば大丈夫*/
}

/* --OTHER TAGS-- */
p {
	margin-bottom: 0;
	text-align: left;
	width: auto;
	/*max-height: 100%;android chrome 文字大きくなるバグ対策→meta initial-scale あれば大丈夫*/
}

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%;
	transform: translateY(-50%);
}

/*========
上下中央寄せ
========*/
/*上下中央寄せ*/
.vmf,
.pc_vmf {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/*上下左右中央寄せ*/
.vmf_c,
.pc_vmf_c {
	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: 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_ae,
.pc_f_ae {
	align-items: flex-end;
}

.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;
}

.f_warp.f_fit>*,
.f_warp.pc_f_fit>*,
.pc_f_warp.pc_f_fit>*,
.pc_f_warp.f_fit>* {
	flex: 1;
	min-width: fit-content;
}

.grid,
.pc_grid {
	display: grid;
}

.grid .ga1,
.pc_grid .pc_ga1 {
	grid-area: 1/1;
}



.opBtf a,
a.opBtf {
	opacity: 1;
	transition: opacity 0.25s ease;
}

.opBtf a:not(.noLink):hover,
a.opBtf:not(.noLink):hover {
	opacity: 0.5;
	transition: opacity 0.35s ease;
}

a.op_hov .op {
	opacity: 1;
	transition: opacity 0.25s ease;
}

a.op_hov:not(.noLink):hover .op {
	opacity: 0.5;
	transition: opacity 0.35s ease;
}


.zoomBt a,
a.zoomBt {
	transform: scale(1.0);
	transition: transform 0.35s ease;
}

.zoomBt a,
a.zoomBt,
.zoomBt a *,
a.zoomBt * {
	backface-visibility: hidden;
	/*chrome transition 1pxズレ対策*/
}

.zoomBt a:not(.noLink):hover,
a.zoomBt:not(.noLink):hover {
	transition: transform 0.2s ease;
	transform: scale(1.15);
}


a.zoomImg_hov img.zoomImg,
.zoomImg_hovKey:has(a.zoomImg_hov) img.zoomImg {
	transform: scale(1);
	transition: transform 0.75s ease;
}

a.zoomImg_hov:not(.noLink):hover img.zoomImg,
.zoomImg_hovKey:has(a.zoomImg_hov:not(.noLink):hover) img.zoomImg,
.imgShowKey.show .zoomImg_hovKey:has(a.zoomImg_hov:not(.noLink):hover) img.zoomImg,
.imgShowKey.show a.zoomImg_hov:not(.noLink):hover img.zoomImg {
	transform: scale(1.1);
}

/*imgShowKeyとinViewを併用*/
.imgShowKey img.imgShowAni,
.imgShowKey .zoomImg_hovKey:has(a.zoomImg_hov) img.imgShowAni,
.imgShowKey a.zoomImg_hov img.imgShowAni {
	opacity: 0;
	transform: scale(1.3);
	transition:
		opacity 1s ease,
		transform 1s ease;
}

.imgShowKey.show img.imgShowAni,
.imgShowKey.show .zoomImg_hovKey:has(a.zoomImg_hov) img.imgShowAni,
.imgShowKey.show a.zoomImg_hov img.imgShowAni {
	opacity: 1;
	transform: scale(1.0);
}

a.hovBlur,
a.hovBlurKey .hovBlur,
button.hovBlur,
button.hovBlurKey .hovBlur,
a.pc_hovBlur,
a.hovBlurKey .pc_hovBlur {
	filter: blur(0);
	transition: filter 0.25s ease;
}

a.hovBlur:not(.noLink):hover,
a.hovBlurKey:hover .hovBlur:not(.noLink),
button.hovBlur:not(.noLink):hover,
button.hovBlurKey:hover .hovBlur:not(.noLink),
a.pc_hovBlur:not(.noLink):hover,
a.hovBlurKey:hover .pc_hovBlur:not(.noLink) {
	filter: blur(3px);
}



a.txt_hovLineAni {
	display: inline;
	background-image: linear-gradient(#000, #000);
	background-size: 0% 1px;
	background-position: 0% 100%;
	background-repeat: no-repeat;
	transition: background 0.35s ease;
}

a.txt_hovLineAni:hover {
	background-size: 100% 1px;
}

#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_pc::-webkit-scrollbar {
	display: none;
}

.obFit,
.obFit_ct {
	width: 100%;
	height: 100%;
}

.obFit {
	object-fit: cover;
}

.obFit_ct {
	object-fit: contain;
}

.obPos_tc,
.pc_obPos_tc {
	object-position: top center;
}

.cover,
.contain {
	width: auto;
	height: auto;
	display: block;
}

.cover {
	min-width: 100%;
	min-height: 100%;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

*:has(> .cover) {
	position: relative;
	overflow: hidden;
}

.contain {
	max-width: 100%;
	max-height: 100%;
}


.bdr999 {
	isolation: isolate;
	border-radius: 9999px;
}

/*splide利用するしているページでoverflow:hiddeen;など使っている要素に*/
.willc_trans {
	will-change: transform;
}





/*txtBtAni*/
a .txtBtAni {
	display: inline-block;
}

a:hover:not(.noLink) .txtBtAni {
	position: relative;
	animation: txtBtAni 0.5s ease 0s 1 normal both;
}

@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 {
	display: grid;
	place-content: center;
	place-items: center;
	transition: background 0.35s ease;
}

a.icon_next .icon::before {
	content: '';
	display: block;
	mask-size: 100% 100%;
	transition: background 0.35s ease;
}

a.icon_next .icon_arrow01::before {
	width: 17px;
	height: 10px;
	mask-image: url('../img/icon_arrow01.svg');
}

a.icon_next .icon_bk::before {
	background: #000;
}

a.icon_next .icon_w::before {
	background: rgba(255, 255, 255, 1);
}

a.icon_next .icon_wBk::before {
	background: rgba(255, 255, 255, 1);
}

a.icon_next:hover .icon_wBk::before {
	background: rgba(0, 0, 0, 1);
}

a.icon_next:hover .icon.iconAni::before {
	animation: iconAni 0.5s ease 0.1s 1 normal both;
}

a.icon_next:hover .icon.iconAni_deg90::before {
	animation: iconAni_deg90 0.5s ease 0.1s 1 normal both;
}

a.icon_next:hover .icon.iconAni_deg-90::before {
	animation: iconAni_deg-90 0.5s ease 0.1s 1 normal both;
}

@keyframes iconAni {
	0% {
		transform: translateX(0px);
		opacity: 1;
	}

	50% {
		transform: translateX(10px);
		opacity: 0;
	}

	51% {
		transform: translateX(-10px);
		opacity: 0;
	}

	100% {
		transform: translateX(0px);
		opacity: 1;
	}
}

@keyframes iconAni_deg90 {
	0% {
		transform: translateY(0);
		opacity: 1;
	}

	50% {
		transform: translateY(10px);
		opacity: 0;
	}

	51% {
		transform: translateY(-10px);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes iconAni_deg-90 {
	0% {
		transform: translateY(0);
		opacity: 1;
	}

	50% {
		transform: translateY(-10px);
		opacity: 0;
	}

	51% {
		transform: translateY(10px);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

/*oneByOneTxt*/
.oneByOneTxt,
.oneByOneTxt span {
	opacity: 0;
}

.oneByOneTxt span {
	display: inline-block;
	transform: translateY(0.35em);
}

.oneByOneTxt.startAni {
	opacity: 1;
}

.oneByOneTxt.startAni span {
	animation: oneByOneAni 0.35s ease-out forwards;
}

@-webkit-keyframes oneByOneAni {
	0% {
		transform: translateY(0.35em);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes oneByOneAni {
	0% {
		transform: translateY(0.35em);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}


/*deSVG
=============================*/
/*
.svgImg path{
	fill: #FFF;
}*/
/*=============================
  header
=============================*/


/*gnavBt
=============================*/
header #gnavBt {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 500;
}

header #gnavBt a {
	display: block;
	width: 70px;
	height: 70px;
	position: relative;
	background: #000;
}

/*▼gnavBtアニメ*/
header #gnavBtBorder {
	z-index: 1;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-left: -20px;
	margin-top: -1px;
	display: block;
	width: 40px;
	height: 2px;
	background-color: #FFF;
	transition: transform 0.3s ease, top 0.3s ease;
}

header #gnavBtBorder:before {
	top: -8px;
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	background-color: #FFF;
	position: absolute;
	z-index: -1;
	transition: transform 0.3s ease, top 0.3s ease, margin 0.2s ease;
}

header #gnavBtBorder:after {
	top: 8px;
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	background-color: #FFF;
	position: absolute;
	z-index: -1;
	transition: transform 0.3s ease, top 0.3s ease, margin 0.2s ease;
}

header #gnavBt a:hover #gnavBtBorder:before {
	margin-top: -3px;
}

header #gnavBt a:hover #gnavBtBorder:after {
	margin-top: 3px;
}

header #gnavBt a.open #gnavBtBorder {
	background: none;
}

header #gnavBt a.open #gnavBtBorder:before {
	top: 0 !important;
	margin-top: 0 !important;
	transform: rotate(45deg);
}

header #gnavBt a.open #gnavBtBorder:after {
	top: 0 !important;
	margin-top: 0 !important;
	transform: rotate(-45deg);
}

/*gnav ani
=============================*/
/*
nav#gnav {
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	z-index: 200;
	backdrop-filter: blur(24px); 背景ぼかし
	background: rgba(0,0,0,0.8);
	display: none;
	padding: 100px 0;
	overflow: auto; togglemodal使う場合
	SP メニュースクロール用
	-webkit-overflow-scrolling: touch;togglemodal使う場合は使用禁止
}

nav#gnav > .inner{
	width: 100%;
	margin:auto;//親flexの時これで天地左右中央寄せ
}



nav#gnav.opening {
	display: flex;
	animation: opening 0.8s ease 0s 1 normal both;
}
nav#gnav.opened{display: flex;}

nav#gnav.closing {
	display: flex;
	animation: closing 0.25s ease 0s 1 normal both;
}
nav#gnav.closed{display: none;}



@keyframes opening {
	0% {
		perspective: 1300px;
		transform: scale(1.5);
		filter: alpha(opacity=000);
		opacity: 0.0;
	}
	100% {
		transform: scale(1.0);
		filter: alpha(opacity=100);
		opacity: 1.0;
	}
}
@keyframes         closing {
	0% {
		transform: scale(1.0);
		filter: alpha(opacity=100);
		opacity: 1.0;
	}
	100% {
		perspective: 1300px;
		transform: scale(1.5);
		filter: alpha(opacity=000);
		opacity: 0.0;
	}
}
*/

/*
nav#gnav {
	visibility: hidden;
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.8);
	z-index: 200;
	perspective: 1300px;
	transform: scale(1.5);
	filter: alpha(opacity=000);
	opacity: 0.0;
}
nav#gnav.opening {
	transition: all 0.8s ease;
}
nav#gnav.opened {
	visibility: visible;
	transform: scale(1.0);
	filter: alpha(opacity=100);
	opacity: 1.0;
}
*/

/*
#gmenu li ul.subMenu{
	position: absolute;
	top:46px;
	left:0;
	text-align: left;
	background: #FFF;
	width: 210px;
	overflow: hidden;
	max-height: 0;
	transition: all 0.25s ease;
}
#gmenu li.open ul.subMenu{
	max-height :350px;
	transition: all 0.75s ease-out;
}
*/

/*=============================
  footer
=============================*/