@charset "UTF-8";
/* CSS Document */
/*=======================================
  共　通
=======================================*/
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+Antique:wght@400;500&family=Zen+Old+Mincho&display=swap');
:root {
	--inw_px: 996px;
	--inw: 996;
	--blue01:#0779D1;
	--blue02:#50B0DE;
}
/*
: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;
	padding: 100px 60px;
}
body.is-loaded #loadArea{
	visibility: hidden;
	opacity: 0;
}

#loadArea .txt{
	width: fit-content;
	margin: auto;
	font-size: 0.25rem;
	letter-spacing: 0.2em;
	line-height: calc(36/25);
	color: #707070;
}



html {
	background: url(/content/images/bg.webp) no-repeat fixed center center/cover;
	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: "Zen Old Mincho", serif;
	font-weight: 400;
	font-feature-settings: "palt";/*Google Notoは効く、Adobe notoは効かない、メイリオは効かない*/
	line-height:1.0;
	letter-spacing:0px;
	-webkit-text-size-adjust: 100%;/*スマホ文字拡大対策*/
}
.fgo_r{font-family: "Zen Kaku Gothic Antique", sans-serif !important;font-weight: 400 !important;}
.fgo_m{font-family: "Zen Kaku Gothic Antique", sans-serif !important;font-weight: 500 !important;}

::selection {
  color: white;
  background-color: blue;
}

/* --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;
	font-weight: 400;
	/*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_ae,.pc_f_ae			{align-items: flex-end;}
.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;
	transition: opacity 0.25s ease;
}
.opBtf a:not(.noLink):hover,
a.opBtf:not(.noLink):hover{
	opacity: 0.5;
	transition: opacity 0.35s ease;
}

a.opHov_key .opHov{
	opacity: 1;
	transition: opacity 0.25s ease;
}
a.opHov_key:not(.noLink):hover .opHov{
	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{
	transform: scale(1);
	transition: transform 0.75s ease;
}
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 a.zoomImg_hov img.imgShowAni{
	opacity: 0;
	transform: scale(1.3);
	transition:
		opacity 1s ease,
		transform 1s ease;
}
.imgShowKey.show img.imgShowAni,
.imgShowKey.show a.zoomImg_hov img.imgShowAni{
	opacity: 1;
	transform: scale(1.0);
}

a.txt_hovAni {
  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_hovAni: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;
}

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;
	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_w,
a.icon_next .icon_bk{
	display: grid;
	place-content: center;
	place-items: center;
	padding-left: 5px;
	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;
	mask-image: url('/content/images/icon_next.svg');
	mask-size: 100% 100%;
	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;
}

@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_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_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;
	}
}


.oneByOneTxt,
.oneByOneTxt span{opacity: 0;}
.oneByOneTxt span{display: inline-block; position: relative; top: 0.35em;}
.oneByOneTxt.startAni{opacity: 1;}
.oneByOneTxt.startAni span{animation: oneByOneAni 0.35s ease-out forwards;}
@-webkit-keyframes oneByOneAni {
	0% {
		top: 0.35em;
		opacity: 0;
	}
	100% {
		top:0;
		opacity: 1;
	}
}
@keyframes         oneByOneAni {
	0% {
		top: 0.35em;
		opacity: 0;
	}
	100% {
		top:0;
		opacity: 1;
	}
}

/*deSVG
=============================*/
/*
.svgImg path{
	fill: #FFF;
}*/
/*=============================
  header
=============================*/
header::before{
	content: '';
	width: 100%;
	height: 100%;
	position: fixed;
	top:0;
	left:0;
	background: linear-gradient(to right,  rgba(0,58,125,0) 0%,rgba(0,58,125,0.9) 90%,rgba(0,58,125,1) 100%);
	mix-blend-mode: multiply;
	pointer-events:none;
	transform: translate(100px,0%);
	opacity: 0;
	z-index: 10;
	transition:
		transform 0.25s ease,
		opacity 0.25s ease;
}
header.open::before{
	transform: translate(0px,0%);
	opacity: 1;
	transition:
		transform 0.8s ease,
		opacity 0.8s ease;
}


header .logo {
	position: fixed;
	width: 185px;
	top:60px;
	left:60px;
	z-index:500;
}

/*gnavBt
=============================*/
header #gnavBt {
	position: fixed;
	width: 100px;
	top:60px;
	right:0;
	z-index:500;
}
header #gnavBt::before{
	content: '';
	display: block;
	width: 44px;
	height: 1px;
	background: #FFF;
	position: absolute;
	top:50%;
	right:0;
}
header #gnavBt:has(> a.open)::before{
	width: 40px;
}
header #gnavBt a{
	display: inline-block;
}
header #gnavBt a img{
	height: 12px;
	width: auto;
	display: none;
}
header #gnavBt a:not(.open) img.openImg,
header #gnavBt a.open img.closeImg{
	display: block;
}




/*gnav ani
=============================*/
nav#gnav {
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	z-index: 200;
	display: none;
	overflow: auto;
}

nav#gnav > .inner{
	width: fit-content;
	margin-left: auto;
}



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% {
		transform: translate(100px,0%);
		opacity: 0.0;
	}
	100% {
		transform: translate(0%,0%);
		opacity: 1.0;
	}
}
@keyframes         closing {
	0% {
		transform: translate(0%,0%);
		opacity: 1.0;
	}
	100% {
		transform: translate(100px,0%);
		opacity: 0;
	}
}


#gmenu{
	padding-top: 125px;
}
#gmenu > li{
	text-align: right;
	padding-right: 50px;
}
#gmenu > li:nth-child(n+2){
	margin-top: 20px;
}
#gmenu > li img{height: 11px; width: auto;}
#gmenu > li img.himg{height: 14px; width: auto;}




/*fw ani
=============================*/
#fw_bg_grad{
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to top,  rgba(0,58,125,0.5) 0%,rgba(0,58,125,1) 100%);
	mix-blend-mode: multiply;
	pointer-events:none;
	z-index: 600;
	opacity: 0;
	transition: opacity 0.8s ease;
}
#fw_bg_grad.show{
	opacity: 1;
	transition: opacity 0.25s ease;
}



.fw {
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	z-index: 601;
	display: none;
	padding: 100px 60px;
	overflow: auto;
}

.fw > .fw_bg{
	position: fixed;
	top:0;
	left:0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
/*
.fw > .fw_outer{
	width: 100%;
	margin:auto;
	padding: 0 60px;
	position: relative;
	z-index: 1;
}*/
.fw > .fw_inner{
	margin:auto;
	position: relative;
	z-index: 1;
}
.fw > .fw_close{
	position: fixed;
	top:40px;
	right: 45px;
	z-index: 1;
}
.fw > .fw_close a{
	width: 154px;
	height: 54px;
	border: 1px solid #FFF;
	text-align: center;
	font-size: 0.15rem;
	letter-spacing: 0.4em;
	padding-left: 0.4em;
	background: rgba(255,255,255,0.1);
}

.fw.opening {
	display: flex;
	animation: fwopening 0.8s ease 0s 1 normal both;
}
.fw.opened{display: flex;}

.fw.closing {
	display: flex;
	animation: fwclosing 0.25s ease 0s 1 normal both;
}
.fw.closed{display: none;}



@keyframes fwopening {
	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         fwclosing {
	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;
	}
}






/*bookInfo_fv
=============================*/
#bookInfo_fv{
	position: fixed;
	bottom:25px;
	right: 25px;
	z-index: 201;
	display: block!important;
	opacity: 1!important;
}
#bookInfo_fv a{
	display: block;
}
#bookInfo_fv .txt{
	text-align: center;
	font-size: 0.15rem;
	letter-spacing: 0.2em;
}
#bookInfo_fv .list{
	margin-top: 20px;
	padding-top: 15px;
	position: relative;
	column-gap: 15px;
}
#bookInfo_fv .list::before{
	content: '';
	display: block;
	aspect-ratio: 1/1;
	width: 200px;
	border: 1px solid #FFF;
	position: absolute;
	top:0;
	z-index: -1;
	left:calc(50% - 100px);
	isolation: isolate;
	border-radius: 9999px;
}
#bookInfo_fv .list p{
	width: 108px;
}
#bookInfo_fv .list p:nth-child(2){
	margin-top: 55px;
}

/*=============================
  footer
=============================*/
footer{
	padding: 0 60px 80px;
	margin-top: 100px;
}
footer > .inner{
  max-width: var(--inw_px);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
footer .logo{
	margin-right: auto;
}
footer .copyRight{
	font-size: 0.09rem;
	letter-spacing: 0.2em;
}