@charset "utf-8";
/*-----------------------------------------------
 * bless.common.css
 * レスポンシブは基本スタイルを引き継ぐ（PCファースト）
 * @media screen and (max-width:768px)
-------------------------------------------------*/
/*-----------------------------------------------
 * Reset, root
 * Bace
 * FX Layer
 * Modal
 * Header
 * Footer
 * Parts
-------------------------------------------------*/
/*-----------------------------------------------
 * Reset, root
-------------------------------------------------*/
body,div,dl,dt,dd,ul,ol,li,p,h1,h2,h3,h4,h5,h6,th,td,pre,code,blockquote,form,fieldset,legend,input,textarea,figcaption,figure{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}input,textarea,select{font-size:100%}legend{color:#FFF}hr{display:none}img{vertical-align:bottom}select,input,button,textarea{font-size:99%}table{font-size:inherit;font:100%;border-collapse:collapse;border-spacing:0}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:100%}.hd{display:block;width:0;height:0;overflow:hidden}.cf:before,.cf:after{content:"";display:table}.cf:after{clear:both}.cf{zoom:1}article,aside,details,figcaption,figure,footer,header,hgroup,hr,menu,nav,section,main{display:block}*{margin:0;padding:0;box-sizing:border-box;max-height:999999px;outline:none;}*:focus{outline: none;}button{background-color:transparent;border:none;cursor:pointer;outline:none;padding:0;}

:root {
	/* デザインサイズ */
	--vw-min: 1366;
	--vh-min: 640;
	--max-percent: 1.4056;/* 1920/1366 */

	/* フォント  */
	--font-ja: "Noto Serif JP", serif;
	--font-en: "Cormorant", serif;
	--font-main: var(--font-ja);

	/* カラー */
	--color-white: #FFFFFF;
	--color-black: #000000;
	--color-blue: #0190ff;

	/* easing */
	--easing-outquart: cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (max-width:768px){
	:root {
		/* デザインサイズ */
		--vw-min: 750;
		--vh-min: 1314;
		--max-percent: 1;
	}
}

/*-----------------------------------------------
 * Bace
-------------------------------------------------*/
body{
	-webkit-text-size-adjust: 100%;
	background-color: #fff;
	color: #000;
	font-family: var(--font-main);
	font-size: min(calc(14 / var(--vw-min) * 100vw), 14px);
	font-weight: normal;
	letter-spacing: 0.07em;
	line-height: 1.4;
	word-wrap: break-word;
}
.pc{ display: block; }
.sp{ display: none; }
a{ color: #222; }
a:hover{ text-decoration: none; }
.ah { transition: opacity .3s ease; }
.ah:hover { opacity: .7; }
::selection{
	background: #B7D4F9;
	color: #000;
}
::-moz-selection{
	background: #B7D4F9;
	color: #000;
}
@media screen and (max-width:768px){
	.sp{ display: block; }
	.pc{ display: none; }
	.ah:hover { opacity: 1; }
	body{
		font-size: calc(26 / var(--vw-min) * 100vw);
	}
}

/**
 * scroll bar
 */
::-webkit-scrollbar {
	width: 6px;
	height: 6px;
}
::-webkit-scrollbar-track {
	background: #fff;
}
::-webkit-scrollbar-thumb {
	background: #000;
	margin: 2px;
	box-shadow: none;
}


/**
 * Wrap
 * 大枠のwrap指定
 */
/* fullWrap */
#fullWrap {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	position: relative;
	z-index: 1;
}


/*-----------------------------------------------
 * FX Layer [ラメ／光漏れ]
-------------------------------------------------*/
body{
	--fx-density: .5;
	--fx-alpha: .45;
	--fx-size: 1;
	--fx-speed: 1;
	--fx-drift: 1;
	--fx-twinkle: 1;
	--fx-hue: 200;
	--fx-hue-range: 40;
	--fx-sat: 100;
	--fx-light: 68;
	--fx-prism: .2;
}

/* fxPrism: z-index は各セクション(z:1)より上・.header(z:100)より下 */
.fxPrism{
	position: fixed;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	mix-blend-mode: screen;
	opacity: var(--fx-prism);
	transition: opacity 1s ease;
	z-index: 49;
}
.fxPrism__inner{
	position: absolute;
	inset: -20%;
	background:
		radial-gradient(38% 26% at 12% 18%, rgba(0, 229, 255, .42), transparent 72%),
		radial-gradient(30% 22% at 88% 10%, rgba(255, 74, 193, .32), transparent 72%),
		radial-gradient(46% 30% at 74% 80%, rgba(126, 92, 255, .28), transparent 72%),
		radial-gradient(26% 18% at 30% 92%, rgba(255, 176, 92, .22), transparent 72%);
	/* 中央の白飛びを抑えるため、ぼかしを強めて広げる */
	filter: blur(72px);
	will-change: transform;
	animation: fxPrismDrift 28s ease-in-out infinite alternate;
}
@keyframes fxPrismDrift{
	from{ transform: translate3d(-2%, 1.5%, 0) scale(1.02); }
	to  { transform: translate3d(2.5%, -2%, 0) scale(1.12); }
}

/* fxGlitter */
.fxGlitter{
	position: fixed;
	inset: 0;
	pointer-events: none;
	/* 粒の芯の白さを少し散らして、中央のにじみを抑える */
	filter: blur(1.2px);
	z-index: 50;
}
.fxGlitter__canvas{
	display: block;
	width: 100%;
	height: 100%;
}

@media screen and (max-width:768px){
	body{
		--fx-prism: .15;
	}
	.fxPrism__inner{
		filter: blur(52px);
	}
	.fxGlitter{
		filter: blur(.8px);
	}
}

@media (prefers-reduced-motion: reduce){
	.fxPrism__inner{
		animation: none;
	}
}


/*-----------------------------------------------
 * Modal
-------------------------------------------------*/
/**
 * modalBox
 * 基盤のモーダル
 */
.modalBox{
	-webkit-overflow-scrolling: touch;
	background: rgba(1,144,255,85%);
	display: none;
	width: 100%;
	height: 100%;
	overflow: auto;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.oneModal{
	display: none;
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}
.oneModal.is-show {
	display: block;
}

/* oneModalIn */
.oneModalIn{
	display: flex;
	justify-content: center;
	align-items: center;
	height: auto;
	width: 100%;
	min-height: 100%;
	margin: 0 auto;
	position: relative;
}
.oneModalIn__cont{
	padding: 50px 0;
}
@media screen and (max-width:768px){
	.oneModalIn{
		min-width: 100%;
	}
	.oneModalIn__cont{
		width: 100%;
	}
}

/**
 * closeBtn
 * header の navBtn（is-active）と同じ×デザイン
 */
.closeBtn{
	width: min(calc(48 / var(--vw-min) * 100vw), 48px);
	height: min(calc(48 / var(--vw-min) * 100vw), 48px);
	position: fixed;
	top: 0;
	right: 0;
	margin-top: min(calc(42 / var(--vw-min) * 100vw), 42px);
	margin-right: min(calc(19 / var(--vw-min) * 100vw), 19px);
	z-index: 2;
}
.closeBtn__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	position: relative;
	cursor: pointer;
/* linecolor */
	--cbtn-linecolor: var(--color-white);
}
.closeBtn__lineWrap {
	display: block;
	width: 22px;
	height: 12px;
	position: relative;
}
.closeBtn--line {
	background-color: var(--cbtn-linecolor);
	display: block;
	width: 100%;
	height: 2px;
	margin: auto 0;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
}
.closeBtn--line:nth-child(1) {
	transform: rotate(35deg);
}
.closeBtn--line:nth-child(2) {
	transform: rotate(-35deg);
}

/**
 * iframe
 */
/* common */
.commonIframe{
	width: 100%;
	height: 100%;
	display: block;
	border: 0;
}

/* youtube */
.youtubeIframeWrap {
	width: 70%;
	max-width: 159.993vh;
	position: relative;
}
@media screen and (max-width:768px){
	.youtubeIframeWrap {
		width: 100%;
		max-width: 100%;
		margin: 50px 0;
	}
}
.youtubeIframeWrap:before{
	content: "";
	display: block;
	padding-top: 56.25%;
	z-index: 0;
}
.youtubeIframe{
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}

/**
 * Image Modal
 */
.imageModal__image{
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	height: 100svh;
}
.imageModal__image img{
	width: 100%;
	height: 100%;
	object-fit:scale-down;
}



/*-----------------------------------------------
 * Header
-------------------------------------------------*/
.header {
	width: 100%;
	position: absolute;
	top: 0;
	bottom: 0;
	pointer-events: none;
	z-index: 100;
}

.header__cont{
	position: sticky;
	top: 0;
	width: 100%;
	height: min(100vh, 100%);
	z-index: 1;
}

.header__logo{
	position: absolute;
	top: 0;
	left: 0;
	margin-top: min(calc(44 / var(--vw-min) * 100vw), 44px);
	margin-left: min(calc(32 / var(--vw-min) * 100vw), 32px);
	width: min(calc(134 / var(--vw-min) * 100vw), 134px);
}
.header__logo a{
	display: block;
	pointer-events: auto;
}
.header__logo a img{
	width: 100%;
}
@media screen and (max-width:768px){
	.header__logo{
		display: none;
	}
}
@media screen and (hover:hover) and (pointer: fine){
	.header__logo a{
		transition: transform .25s ease;
	}
	.header__logo a:hover{
		transform: scale(104.5%);
	}
}


/* inner */
.header__contInner {
	-webkit-overflow-scrolling: touch;
	width: 100%;
	overflow: auto;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	padding: 0;
	opacity: 1;
	pointer-events: none;
	z-index: 2;
	opacity: 0;
	overscroll-behavior: contain;
	transition: opacity .2s ease-in-out;
}
.header.is-active .header__contInner {
	opacity: 1;
	pointer-events: auto;
}


/** 
 * inner
**/
.header__inner{
	width: 100%;
	min-height: 100%;
	position: relative;
	z-index: 2;
}
.header__inner:before{
	content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    background-color: rgba(1, 144, 255, 85%);
}
.header__innerCont{
	width: min(calc(500 / var(--vw-min) * 100vw), 500px);
	max-width: 100%;
	min-height: 100vh;
	position: relative;
	padding: min(calc(96 / var(--vw-min) * 100vw), 96px) min(calc(48 / var(--vw-min) * 100vw), 48px);
	z-index: 1;
	margin-left: auto;
	background: linear-gradient(rgb(28, 176, 255, 20%), #fff 20%);
	background-color: var(--color-white);
	display: flex;
	flex-direction: column;
}
@media screen and (max-width:768px){
	.header__inner:before{
		background-color: var(--color-white);
	}
	.header__innerCont{
		width: 100%;
		padding: calc(140 / var(--vw-min) * 100vw) calc(48 / var(--vw-min) * 100vw);
	}
}


.header__navLogo{
	width: min(calc(134 / var(--vw-min) * 100vw), 134px);
	margin: 0 auto;
}
.header__navLogo a{
	display: block;
}
.header__navLogo img{
	width: 100%;
}
@media screen and (max-width:768px){
	.header__navLogo{
		width: calc(278 / var(--vw-min) * 100vw);
	}
}


.header__snsLists{
	padding-bottom: min(calc(48 / var(--vw-min) * 100vw), 48px);
	display: flex;
	flex-direction: column;
	gap: min(calc(32 / var(--vw-min) * 100vw), 32px);
}
.header__snsList{
	text-align: center;
}
.header__snsList--link{
	display: inline-flex;
	align-items: center;
	gap: min(calc(20 / var(--vw-min) * 100vw), 20px);
	font-family: var(--font-en);
	font-size: min(calc(22 / var(--vw-min) * 100vw), 22px);
	font-weight: 300;
	line-height: 0.6625;
	color: var(--color-blue);
	text-decoration: none;
	padding-bottom: min(calc(6 / var(--vw-min) * 100vw), 6px);
}
.icon_x{
	display: inline-block;
	width: min(calc(20 / var(--vw-min) * 100vw), 20px);
	height: min(calc(20 / var(--vw-min) * 100vw), 20px);
	mask: url(../img/common/sns/icon_x.svg) no-repeat center / contain;
	background-color: var(--color-blue);
}

@media screen and (max-width:768px){
	.header__snsLists{
		padding-bottom: calc(48 / var(--vw-min) * 100vw);
		gap: calc(56 / var(--vw-min) * 100vw);
	}
	.header__snsList--link{
		gap: calc(36 / var(--vw-min) * 100vw);
		font-size: calc(36 / var(--vw-min) * 100vw);
	}
	.icon_x{
		width: calc(50 / var(--vw-min) * 100vw);
		height: calc(50 / var(--vw-min) * 100vw);
	}
}



/**
 * headerNav
 */
.headerNav,
.headerNav__inner,
.headerNav__cont {
	width: 100%;
	height: 100%;
}

/**
 * headerNavLists
 */
.headerNavLists {
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: min(calc(32 / var(--vw-min) * 100vw), 32px);
	padding-top: min(calc(64 / var(--vw-min) * 100vw), 64px);
	padding-bottom: min(calc(68 / var(--vw-min) * 100vw), 68px);
}
@media screen and (max-width:768px){
	.headerNavLists {
		gap: calc(56 / var(--vw-min) * 100vw);
		padding-top: calc(96 / var(--vw-min) * 100vw);
		padding-bottom: calc(96 / var(--vw-min) * 100vw);
	}
}

/* a */
.headerNavLists .navList__link {
	font-family: var(--font-en);
	font-weight: 300;
	font-size: min(calc(32 / var(--vw-min) * 100vw), 32px);
	line-height: 0.6625;
	position: relative;
	text-decoration: none;
	color: var(--color-blue);
}
.headerNavLists .navList__link span{
	display: inline-block;
	padding: min(calc(6 / var(--vw-min) * 100vw), 6px) 0;
	position: relative;
}
.headerNavLists .navList__link span:before{
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	width: 0%;
	background-color: var(--color-blue);
	transition: width .3s ease;
}
.headerNavLists .navList__link.--is-active span:before{
	width: 100%;
}
@media screen and (max-width:768px){
	.headerNavLists .navList__link {
		font-size: calc(48 / var(--vw-min) * 100vw);
	}
	.headerNavLists .navList__link span{
		padding: calc(8 / var(--vw-min) * 100vw) 0;
	}
}

/**
 * navBtn
 */
.header__navBtnWrap {
	width: min(calc(48 / var(--vw-min) * 100vw), 48px);
	height: min(calc(48 / var(--vw-min) * 100vw), 48px);
	position: fixed;
	top: 0;
	right: 0;
	margin-top: min(calc(42 / var(--vw-min) * 100vw), 42px);
	margin-right: min(calc(19 / var(--vw-min) * 100vw), 19px);
	z-index: 2;
	pointer-events: auto;
}
.header__navBtn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	position: relative;
	cursor: pointer;
/* linecolor */
	--hbn-linecolor: var(--color-blue);
}
.header__navBtn__lineWrap {
	display: block;
	width: 22px;
	height: 12px;
	position: relative;
}
.header__navBtn--line {
	background-color: var(--hbn-linecolor);
	display: block;
	width: 100%;
	height: 2px;
	margin: auto 0;
	position: absolute;
	left: 0;
}
.header__navBtn--line:nth-child(1) {
	top: 0;
	bottom: calc(100% - 2px);
}
.header__navBtn--line:nth-child(2) {
	width: 81.8182%;
	top: 0;
	bottom: 0;
}
.header__navBtn--line:nth-child(3) {
	top: calc(100% - 2px);
	bottom: 0;
}

@media screen and (max-width:768px){
	.header__navBtnWrap {
		width: calc(72 / var(--vw-min) * 100vw);
		height: calc(72 / var(--vw-min) * 100vw);
		margin-top: calc(14 / var(--vw-min) * 100vw);
		margin-right: calc(14 / var(--vw-min) * 100vw);
	}
	.header__navBtn__lineWrap {
		width: calc(36 / var(--vw-min) * 100vw);
		height: calc(18 / var(--vw-min) * 100vw);
	}
	.header__navBtn--line {
		height: calc(2 / var(--vw-min) * 100vw);
	}
	.header__navBtn--line:nth-child(1) {
		bottom: calc(100% - calc(2 / var(--vw-min) * 100vw));
	}
	.header__navBtn--line:nth-child(3) {
		top: calc(100% - calc(2 / var(--vw-min) * 100vw));
	}
}




/**
 * header - active
 */
.header__inner:before{
	width: 0%;
	transition: width .25s ease;
}
.header.is-active .header__inner:before{
	width: 100%;
}
.header__innerCont{
	opacity: 0;
	transition: opacity .3s ease;
}
.header.is-active .header__innerCont{
	opacity: 1;
	transition-delay: .15s;
}
.header__navBtn--line {
	transition: transform .3s ease, opacity .3s ease, background-color .3s ease;
}
.header__navBtn.is-active .header__navBtn--line:nth-child(1) {
	transform: rotate(35deg);
	bottom: 0;
}
.header__navBtn.is-active .header__navBtn--line:nth-child(3) {
	transform: rotate(-35deg);
	top: 0;
}
.header__navBtn.is-active .header__navBtn--line:nth-child(2) {
	transform: translateX(20%);
	opacity: 0;
}
.header__navBtn.is-active{
	--hbn-linecolor: var(--color-blue);
}


/*-----------------------------------------------
 * Parts
-------------------------------------------------*/
/**
 * shareLists
 */
.shareLists {
	display: flex;
	flex-wrap: wrap;
	column-gap: min(calc(18 / var(--vw-min) * 100vw), 18px);
	row-gap: min(calc(12 / var(--vw-min) * 100vw), 12px);
}
@media screen and (max-width:768px){
	.shareLists {
		justify-content: center;
		column-gap: calc(48 / var(--vw-min) * 100vw);
		row-gap: calc(32 / var(--vw-min) * 100vw);
	}
}

/* title */
.shareLists__title{
	width: 100%;
	font-family: var(--font-en);
	color: var(--color-white);
	line-height: 1;
}
@media screen and (max-width:768px){
	.shareLists__title{
		text-align: center;
	}
}

/* item */
.shareLists__item {
	width: min(calc(20 / var(--vw-min) * 100vw), 20px);
	height: min(calc(20 / var(--vw-min) * 100vw), 20px);
}
@media screen and (max-width:768px){
	.shareLists__item{
		width: calc(56 / var(--vw-min) * 100vw);
		height: calc(56 / var(--vw-min) * 100vw);
	}
}

/* link */
.shareLists__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	position: relative;
	text-decoration: none;
}
.shareLists__link:before {
	content: "";
	width: 100%;
	height: 100%;
	background-color: var(--color-white);
	display: block;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 100%;
	mask-size: 100%;
	transition: background-color .4s ease;
}
.shareLists__link:hover:before {
	background-color: var(--color-black);
}

/* 各SNSパーツ */
.shareLists__item.is-x .shareLists__link:before {
	-webkit-mask-image: url(../img/common/sns/icon_x.svg);
	mask-image: url(../img/common/sns/icon_x.svg);
}
.shareLists__item.is-facebook .shareLists__link:before {
	-webkit-mask-image: url(../img/common/sns/icon_fb.svg);
	mask-image: url(../img/common/sns/icon_fb.svg);
}
.shareLists__item.is-line .shareLists__link:before {
	-webkit-mask-image: url(../img/common/sns/icon_line.svg);
	mask-image: url(../img/common/sns/icon_line.svg);
}



/**
* modalOpen
**/
.js-modalOpen{
	cursor: pointer;
}

/**
 * Keyframes Animation Rotate
**/
@keyframes rotate{
	0%{transform: rotate(0);}
	100%{ transform:rotate(360deg); }
}



/*-----------------------------------------------
 * Parts - section 
------------------------------------------------*/
.sectionContent{
	width: 100%;
	position: relative;
}

.content{
	width: 100%;
	position: relative;
}
.contentIn{
	width: 100%;
	max-width: calc(1366px * var(--max-percent));
	margin: 0 auto;
}

@media screen and (max-width:768px){
	.contentIn{
		max-width: 100%;
	}
}


/**
* contentTItle
**/
.contentTItle{
	text-align: center;
	width: 100%;
	position: relative;
	font-family: var(--font-en);
	font-size: min(calc(80 / var(--vw-min) * 100vw), 80px);
	font-weight: 300;
	color: var(--color-blue);
	line-height: 0.6625;
	z-index: 1;
}
.contentTItle--txt small{
	font-size: 60%;
}

@media screen and (max-width:768px){
	.contentTItle{
		font-size: calc(80 / var(--vw-min) * 100vw);
	}
}

/** Animation [Top以外] **/
body:not([data-page="top"]) .contentTItle .contentTItle--txt{
	display: inline-block;
	opacity: 0;
	transform: translateY(0.75em);
	transition: opacity .3s ease .15s, transform .4s ease .15s;
}
body:not([data-page="top"]).--is-loaded .contentTItle .contentTItle--txt{
	opacity: 1;
	transform: translateY(0);
}


/**
* linkBox
**/
.linkBox{
	position: relative;
}
.linkBox__link{
	position: relative;
	display: inline-block;
	padding: min(calc(16 / var(--vw-min) * 100vw), 16px) min(calc(64 / var(--vw-min) * 100vw), 64px);
	background-color: var(--color-black);
	color: var(--color-white);
	text-decoration: none;
}
.linkBox__link.-en{
	font-family: var(--font-en);
	font-weight: 300;
}
.linkBox__link--txt{
	position: relative;
	z-index: 1;
}
.linkBox__link--line{
	position: absolute;
	top: 0;
	bottom: 0;
	width: min(calc(42 / var(--vw-min) * 100vw), 42px);
	height: 1px;
	margin: auto 0;
}
.linkBox__link--line:before{
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	background-color: rgba(255, 255, 255, 50%);
}
.linkBox__link--line.-r{
	right: 0;
}
.linkBox__link--line.-r:before{
	right: 0;
}

.linkBox__link--line.-l{
	left: 0;
}
.linkBox__link--line.-l:before{
	left: 0;
}


@media screen and (max-width:768px){
	.linkBox__link{
		padding: calc(20 / var(--vw-min) * 100vw) calc(80 / var(--vw-min) * 100vw);
	}
	.linkBox__link--line{
		width: calc(64 / var(--vw-min) * 100vw);
	}
}

@media screen and (hover:hover) and (pointer: fine){
	.linkBox__link{
		transition: color .3s ease;
		overflow: hidden;
	}
	.linkBox__link:before{
		content: '';
		position: absolute;
		inset: 0;
		background-image: linear-gradient(var(--color-blue), var(--color-blue));
		background-repeat: no-repeat;
		background-size: 0 100%;
		transition: background-size .3s ease;
	}
	.linkBox__link--line{
		transition: transform .3s ease;
	}
	.linkBox__link--line:after{
		content: '';
		position: absolute;
		inset: 0;
		background-image: linear-gradient(var(--color-black), var(--color-black));
		background-repeat: no-repeat;
		background-size: 0 100%;
		transition: background-size .3s ease;
		transition-delay: .05s;
	}

	.linkBox__link:hover{
		color: var(--color-black);
	}


	/* Right */
	.linkBox__link:has(.linkBox__link--line.-r)::before,
	.linkBox__link--line.-r:after{
		background-position: right bottom;
	}
	.linkBox__link:has(.linkBox__link--line.-r):hover::before,
	.linkBox__link:hover .linkBox__link--line.-r:after{
		background-size: 100% 100%;
		background-position: left bottom;
	}
	.linkBox__link:hover .linkBox__link--line.-r{
		transform: translateX(33.3334%);
	}


	/* Left */
	.linkBox__link:has(.linkBox__link--line.-l)::before,
	.linkBox__link--line.-l:after{
		background-position: left bottom;
	}
	.linkBox__link--line:after{
		transition-delay: 0.05s;
	}
	.linkBox__link:has(.linkBox__link--line.-l):hover::before,
	.linkBox__link:hover .linkBox__link--line.-l:after{
		background-size: 100% 100%;
		background-position: right bottom;
	}
	.linkBox__link:hover .linkBox__link--line.-l{
		transform: translateX(-33.3334%);
	}
}



/*-----------------------------------------------
 * Footer
-------------------------------------------------*/
.footer{
	position: relative;
	width: 100%;
	padding-top: min(calc(240 / var(--vw-min) * 100vw), 240px);
	padding-left: calc(48 / var(--vw-min) * 100vw);
	padding-right: calc(48 / var(--vw-min) * 100vw);
	padding-bottom: min(calc(64 / var(--vw-min) * 100vw), 64px);
	margin-top: auto;
}
.footer__inner{
	position: relative;
	z-index: 1;
}

@media screen and (max-width:768px){
	.footer{
		padding-top: calc(184 / var(--vw-min) * 100vw);
		padding-left: calc(48 / var(--vw-min) * 100vw);
		padding-right: calc(48 / var(--vw-min) * 100vw);
		padding-bottom: calc(80 / var(--vw-min) * 100vw);
	}
}

/* footer__bannerLists */
.footer__bannerLists{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: min(calc(20 / var(--vw-min) * 100vw), 20px);
	margin-bottom: min(calc(40 / var(--vw-min) * 100vw), 40px);
}
.footer__bannerList{
	width: min(calc(240 / var(--vw-min) * 100vw), 240px);
}
.footer__bannerList a{
	display: block;
}
.footer__bannerList a img{
	width: 100%;
}
@media screen and (max-width:768px){
	.footer__bannerLists{
		gap: calc(24 / var(--vw-min) * 100vw);
	}
	.footer__bannerList{
		width: calc(312 / var(--vw-min) * 100vw);
	}
}
@media screen and (hover:hover) and (pointer: fine){
	.footer__bannerList a{
		transition: filter .3s ease;
	}
	.footer__bannerList a:hover{
		filter: brightness(112.5%);
	}
}


/* footer__linkLists */
.footer__linkLists{
	display: flex;
	gap: min(calc(20 / var(--vw-min) * 100vw), 20px);
	margin-top: min(calc(20 / var(--vw-min) * 100vw), 20px);
}
.footer__linkList--link{
	display: block;
	text-decoration: none;
	position: relative;
	padding: 2px 0;
	font-family: var(--font-en);
	color: var(--color-white);
	line-height: 1;
}
@media screen and (hover:hover) and (pointer: fine){
	.footer__linkList--link:after{
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		margin: 0 auto;
		width: 0%;
		height: 1px;
		background-color: var(--color-white);
		transition: width .4s ease;
	}
	.footer__linkList--link:hover::after{
		width: 100%;
	}
}
@media screen and (max-width:768px){
	.footer__linkLists{
		justify-content: center;
		gap: calc(26 / var(--vw-min) * 100vw);
		font-size: calc(22 / var(--vw-min) * 100vw);
		margin-top: calc(56 / var(--vw-min) * 100vw);
	}
}



/* footer__copyrights */
.footer__copyrights{
	display: flex;
	gap: 2em;
	font-size: min(calc(10 / var(--vw-min) * 100vw), 10px);
	line-height: 1;
	color: var(--color-white);
	margin-top: min(calc(32 / var(--vw-min) * 100vw), 32px);
}
.footer__copyright.-copy{
	margin-left: auto;
}

@media screen and (max-width:768px){
	.footer__copyrights{
		flex-direction: column;
		gap: calc(20 / var(--vw-min) * 100vw);
		font-size: calc(16 / var(--vw-min) * 100vw);
		margin-top: calc(48 / var(--vw-min) * 100vw);
		text-align: center;
	}
	.footer__copyright.-copy{
		margin-left: 0;
	}
}



/**
* footer__bg
**/
.footer__bg{
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.footer__bg--img{
	position: absolute;
	inset: 0;
	background: url(../img/common/bg/bg_footer.jpg) no-repeat center top / cover;
}
@supports (background-image: url("../img/common/bg/bg_footer.webp")){
	.footer__bg--img{
		background-image: url(../img/common/bg/bg_footer.webp);
	}
}
.footer__bg--bless{
	position: absolute;
	top: max(calc(-2 / var(--vw-min) * 100vw), -2px);
	left: 0;
	right: 0;
	width: min(calc(1070 / var(--vw-min) * 100vw), 1070px);
	height: min(calc(132 / var(--vw-min) * 100vw), 132px);
	background: url(../img/common/deco/deco_bless.png) no-repeat center top / contain;
	margin: 0 auto;
}

@media screen and (max-width:768px){
	.footer__bg--bless{
		width: 100%;
		padding-top: calc(92 / var(--vw-min) * 100vw);
	}
}




/*-----------------------------------------------
 * SCROLL EFFECT [GSAP ScrollTrigger]
-------------------------------------------------*/
.--js-fx .js-parallax{
	will-change: transform;
}
.--js-fx .js-imgReveal{
	opacity: 0;
	will-change: transform, opacity, filter;
}
.--js-fx .js-imgReveal img{
	will-change: transform;
}
html.is-ios .--js-fx .js-parallax,
html.is-ios .--js-fx .js-imgReveal,
html.is-ios .--js-fx .js-imgReveal img{
	will-change: auto;
}

@media (prefers-reduced-motion: reduce){
	.--js-fx .js-imgReveal{
		opacity: 1;
		filter: none;
	}
	.--js-fx .js-imgReveal img{
		transform: none;
	}
}