// mixin / extend / variable
@import "_setting";

/* FONT ------------------------------------------->
'Inter': 100 - 900
'Noto Serif JP': 200 - 900
'Noto Sans JP': 100 - 900
Thin: 100 / .f_thin
ExtraLight: 200 / .f_eLight
Light: 300 / .f_light
Regular: 400 / .f_reg
Medium: 500 / .f_med
SemiBold: 600 / .f_sbold
Bold: 700 / .f_bold
ExtraBold: 800 / .f_ebold
Black: 900 / .f_black


/*-------------------------------------------> font */
.f_thin { font-weight: 100; }
.f_eLight { font-weight: 200; }
.f_light { font-weight: 300; }
.f_reg { font-weight: 400; }
.f_med, .f_def { font-weight: 500;}
.f_sbold { font-weight: 600; }
.f_bold { font-weight: 700; }
.f_black { font-weight: 900; }
.f_serif { font-family: "Noto Serif JP", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif"; }
.f_sans, .ja { font-family: "Noto Sans JP", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif; }
.f_en, .en { font-family: "Inter", "Noto Sans JP", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif; font-variation-settings: "slnt" 0; }

/*-------------------------------------------> html / body style */
html, body {
	transition: background-color 0.3s linear;
}
html {
	height: 100%;
	background: $WHITE;
}
body {
	width: 100%;
	min-width: 100%;
	height: 100%;
	background: $WHITE;
	color: $BASE;
	font-family: "Noto Sans JP", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	font-weight: 400;
	font-optical-sizing: auto;
	line-break: strict;
	line-height: 1;
	overflow-x: hidden;
	overflow-y: auto;
	// overflow-y: hidden;
	& > * {
		font-feature-settings: "palt"; // kerning
	}
}
.hide {
	display: none;
}
.safari {
	.svg {
		shape-rendering: geometricPrecision;
	}
}


/*-------------------------------------------> link style */
a {
	color: inherit;
	outline: none;
	cursor: pointer;
	&:link {
		text-decoration: none;
	}
	&:visited {
		text-decoration: none;
	}
	&:hover {
		text-decoration: none;
	}
	&:active {
		text-decoration: none;
	}
}


/*-------------------------------------------> Common style */
img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}

.siteFrame {
  display: grid; 
  grid-template-columns: 100%; 
  grid-template-rows: vw(192) 1fr vw(256); 
  gap: 0px 0px;
	height: clamp(100svh, 100%, 100vh);
}
#Header { grid-area: 1 / 1 / 2 / 2; }
#Footer { grid-area: 3 / 1 / 4 / 2; }
#Main { grid-area: 2 / 1 / 3 / 2; }

#Main {
	// margin: 0 0 auto;
	// overflow-y: auto;
	overflow: hidden;
	height: vw(2188);
}

/*-------------------------------------------> Header */
#Header {
	width: 100%;
	height: vw(190);
	text-align: center;
	.fixed {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 1000;
		width: 100%;
		height: vw(190);
		padding-left: vw(64);
		padding-right: vw(64);
		display: flex;
		justify-content: space-between;
		align-items: center;
		background: rgb(0 1 28 / 1);
		transition: all .3s ease-out;
		&::after {
			content: '';
			display: block;
			width: vw(32);
		}
	}
	.logo {
		width: vw(336);
		margin: 0 auto;
	}
	.menuBtn {
		text-align: left;
	}

	.Scroll &, .MOpen & {
		color: $WHITE;
		.svg {
			.fill-logo, .fill-sns, .fill-cart {
				fill: $WHITE;
			}
		}
		.fixed {
			background: rgb(0 1 28 / 0.87);
		}
	}
	.MOpen & {
		.fixed {
			background: rgb(0 1 28 / 0);
		}
		.logo {
			opacity: 0;
		}
	}
}

#MenuBtn {
	button {
		position: relative;
		display: block;
		width: vw(64);
		height: vw(48);
		cursor: pointer;
		span {
			width: 100%;
			height: vw(6);
			background: $WHITE;
			position: absolute;
			left: calc(50% - vw(32));
			top: 50%;
			transition: all .3s ease-out;
			&:nth-child(1) { translate: 0 vw(24); }
			&:nth-child(2) {
				width: 24px;
				left: 0px;
				opacity: 1;
			}
			&:nth-child(3) { translate: 0 vw(-24); }
		}
	}
	.Scroll &, .MOpen & {
		span {
			background: $WHITE;
		}
	}
	.MOpen & {
		span {
			&:nth-child(1) { translate: 0 0; rotate: 45deg; }
			&:nth-child(2) {
				opacity: 0;
			}
			&:nth-child(3) { translate: 0 0; rotate: -45deg; }
		}
	}
}

/*-------------------------------------------> Navi */
#Navi {
	position: fixed;
	top: vw(190);
	left: 0;
	z-index: 999;
	width: 100%;
	height: calc(100svh - vw(190));
	text-align: left;
	color: $WHITE;
	pointer-events: none;
	.base, .logoGuide, .menu {
		opacity: 0;
		transition: opacity .3s ease-out;
	}
	.base {
		position: fixed;
		z-index: 1;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: rgb(0 1 28 / 0.97);
	}
	a.active, .active a {
		opacity: 0.3;
	}
	.MOpen & {
		pointer-events: auto;
		.base, .logoGuide, .menu {
			opacity: 1;
		}

	}

	.mainMenu {
		position: relative;
		z-index: 999;
		.logoGuide {
			width: vw(1160);
			margin-top: vw(234);
			margin-left: auto;
			margin-right: auto;
		}
		.menu {
			width: vw(1242);
			margin-top: vw(284);
			margin-left: auto;
			margin-right: auto;
			ul {
				li {
					a {
						display: block;
					}
					+ li {
						margin-top: vw(44);
					}
				}
			}
		}
	}
}

/*-------------------------------------------> Footer */
#Footer {
	position: relative;
	background: $BASE;
	color: $WHITE;
	.navi {
		display: flex;
		.link {
			position: relative;
			flex: 0 0 50%;
			height: vw(256);
			background: $BASE;
			a {
				position: relative;
				z-index: 1;
				display: block;
				color: $WHITE;
				width: 100%;
				height: 100%;
				img {
					width: auto;
					height: 100%;
				}
				&::after {
					content: '';
					display: block;
					width: 100%;
					height: 100%;
					pointer-events: none;
					position: absolute;
					top: 0;
					left: 0;
					z-index: 10;
				}
			}
			&.prev {
				text-align: left;
				a {
					&::after {
						background: url(../images/svg/btn_prev.svg) no-repeat left top;
						background-size: 100% 100%;
					}
				}
			}
			&.next {
				text-align: left;
				a {
					&::after {
						background: url(../images/svg/btn_next.svg) no-repeat left top;
						background-size: 100% 100%;
					}
				}
			}
		}
	}
}

/*-------------------------------------------> Main */
.page {
	padding-top: vw(96);
	.pageTitle {
		width: vw(1728);
		margin: 0 auto;
	}
	.image {
		width: vw(1728);
		margin-left: auto;
		margin-right: auto;
		margin-bottom: vw(60);
	}
	.textArea {
		width: 100%;
		padding-left: vw(64);
		padding-right: vw(64);
		@include fsvw(44, 80, 40);
		text-align: left;
		margin-bottom: vw(70);
	}
	.step {
		width: max-content;
		border-top: solid 1px rgb(0 1 28 / 0.32);
		margin-left: auto;
		margin-right: auto;
		ol {
			display: flex;
			width: 100%;
			margin-top: vw(60);
			&.column3 {
				width: vw(1983);
				padding-left: vw(1);
				li {
					flex: 1 0 calc(100% / 3);
				}
			}
			&.column4 {
				width: vw(1984);
				li {
					flex: 1 0 calc(100% / 4);
				}
			}
			li {
				padding: 0 vw(34);
				+ li {
					border-left: solid 1px rgb(0 1 28 / 0.32);
				}
			}
		}
		dl {
			dt {
				display: flex;
				align-items: center;
				.mark {
					width: vw(40);
					margin-right: 0.2em;
					vertical-align: middle;
				}
				@include fsvw(38, 46, 0);
				margin-bottom: vw(30);
			}
		}
		.thumb {
			button {
				position: relative;
				cursor: pointer;
				display: block;
				&::after {
					display: block;
					content: '';
					width: 100%;
					height: 100%;
					background-repeat: no-repeat;
					background-position: center center;
					background-size: vw(50) vw(50);
					pointer-events: none;
					position: absolute;
					top: 0;
					left: 0;
				}
				&.movie {
					&::after {
						background-image: url(../images/svg/icon_play.svg);
					}
				}
				&.slide {
					&::after {
						background-image: url(../images/svg/icon_zoom.svg);
					}
				}
			}
		}
		.text {
			@include fsvw(36, 52, 40);
			margin-top: vw(20);
		}
	}

	&#chapter1 {
		.pageTitle {
			margin-bottom: vw(91);
		}
		.step {
			.step3 {
				dt {
					white-space: nowrap;
					span {
						display: inline-block;
						scale: 0.9 1;
						transform-origin: center left;
					}
				}
			}
		}
	}
}

.modal {
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	background: rgb(0 1 28 / 0.97);
	display: flex;
	justify-content: center;
	align-items: center;
	color: $WHITE;
	opacity: 0;
	transition: opacity .15s ease-out;
	pointer-events: none;
	&.show {
		opacity: 1;
		pointer-events: auto;
	}
	.contentsWrap {
		position: relative;
		width: 100%;
		.close {
			position: absolute;
			top: 0;
			right: vw(64);
			width: vw(50);
			height: vw(50);
			button {
				cursor: pointer;
				display: block;
				width: 100%;
			}
		}
	}
	.modalTitle {
		@include fsvw(72, 72, 40);
		margin-left: vw(64);
		margin-bottom: vw(40);
	}
	.caption {
		@include fsvw(44, 52, 80);
		width: max-content;
		margin: vw(120) auto 0;
	}
	&.movie {
		.contents {
			position: relative;
			width: 100%;
			height: 0;
			padding-top: calc( (9 / 16) * 100% );
			background: #CCC;
			video {
				width: 100%;
				height: 100%;
				position: absolute;
				top: 0;
				left: 0;
			}
		}
	}
	&.slide {
		.modalTitle {
			margin-left: vw(160);
		}
		.contents {
			position: relative;
			.slider-counter {
				position: absolute;
				bottom: vw(-70);
				right: vw(160);
				text-align: right;
				@include fsvw(32, 32, 0);
				color: #a0a0a0;
				.current-slide {
					@include fsvw(40, 32, 0);
					color: $WHITE;
				}
			}
		}
		.slideWrap {
			position: relative;
			width: vw(1728);
			margin-left: auto;
			margin-right: auto;
		}
	}
}

#rotation {
	display: none;
}
@media screen and ($landscape) {
	#rotation {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 9999;
		width: 100%;
		height: 100svh;
		display: flex;
		justify-content: center;
		align-items: center;
		background: $BASE;
		.message {
			font-size: vw(100);
			color: $WHITE;
		}
	}
}
/*-------------------------------------------> plugin style */

/* Slick */
/* Slider */

.slick-slider {
	position: relative;
	display: block;
	box-sizing: border-box;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-ms-touch-action: pan-y;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}
.slick-list {
	position: relative;
	overflow: hidden;
	display: block;
	margin: 0;
	padding: 0;

	&:focus {
			outline: none;
	}

	&.dragging {
			cursor: pointer;
			cursor: hand;
	}
}
.slick-slider .slick-track,
.slick-slider .slick-list {
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
	-ms-transform: translate3d(0, 0, 0);
	-o-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

.slick-track {
	position: relative;
	left: 0;
	top: 0;
	display: block;
	margin-left: auto;
	margin-right: auto;

	&:before,
	&:after {
			content: "";
			display: table;
	}

	&:after {
			clear: both;
	}

	.slick-loading & {
			visibility: hidden;
	}
}
.slick-slide {
	float: left;
	height: 100%;
	min-height: 1px;
	[dir="rtl"] & {
			float: right;
	}
	img {
			display: block;
	}
	&.slick-loading img {
			display: none;
	}

	display: none;

	&.dragging img {
			pointer-events: none;
	}

	.slick-initialized & {
			display: block;
	}

	.slick-loading & {
			visibility: hidden;
	}

	.slick-vertical & {
			display: block;
			height: auto;
			border: 1px solid transparent;
	}
}
.slick-arrow.slick-hidden {
	display: none;
}

/* Arrows */
.slick-prev,
.slick-next {
	position: absolute;
	z-index: 10;
	display: block;
	height: 100%;
	width: vw(96);
	line-height: 0px;
	font-size: 0px;
	cursor: pointer;
	background: transparent;
	color: transparent;
	top: 0;
	padding: 0;
	border: none;
	outline: none;
	overflow: hidden;
	&:hover, &:focus {
		outline: none;
	}
	&.slick-disabled:before {
		opacity: 0.2;
	}
	&:before {
		transition: all .15s ease-out;
		position: absolute;
		top: calc(50% - vw(48));
		display: block;
		width: vw(96);
		height: vw(96);
		margin-top: 0px;
		text-indent: -999px;
		background-position: left top;
		background-repeat: no-repeat;
		background-size: contain;
		font-size: 20px;
		line-height: 1;
		color: $BASE;
		opacity: 1;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

.slick-prev {
	left: vw(-120);
	[dir="rtl"] & {
		left: auto;
		right: vw(-120);
	}
	&:before {
		content: '';
		background-image: url(../images/svg/slick_prev.svg);
		[dir="rtl"] & {
			content: '';
			background-image: url(../images/svg/slick_next.svg);
		}
	}
}

.slick-next {
	right: vw(-120);
	[dir="rtl"] & {
		left: vw(-120);
		right: auto;
	}
	&:before {
		content: '';
		background-image: url(../images/svg/slick_next.svg);
		[dir="rtl"] & {
			content: '';
			background-image: url(../images/svg/slick_prev.svg);
		}
	}
}
