@charset "utf-8";

:root {
	--pcv: / 1440 * 100vw;
	--pcp: / 1440 * 100%;
	
	--spv: / 375 * 100vw;
	--spp: / 375 * 100%;
}

/* -------------------------------------------------
	font
------------------------------------------------- */

/*
Adobe Fonts (Acumin Pro ExtraCondensed)
https://fonts.adobe.com/fonts/acumin-extra-condensed

	Acumin Pro ExtraCondensed Medium
	font-family: "acumin-pro-extra-condensed", sans-serif;
	font-weight: 500;
	font-style: normal;

	Acumin Pro ExtraCondensed Semibold
	font-family: "acumin-pro-extra-condensed", sans-serif;
	font-weight: 600;
	font-style: normal;
	
	Acumin Pro ExtraCondensed Bold
	font-family: "acumin-pro-extra-condensed", sans-serif;
	font-weight: 700;
	font-style: normal;
*/

/*
Adobe Fonts
DNP ShueiGoGinStd L (DNP 秀英角ゴシック銀 Std)
https://fonts.adobe.com/fonts/dnp-shuei-gothic-gin-std

	font-family: "dnp-shuei-gothic-gin-std", sans-serif;
	font-weight: 400;
	font-style: normal;
*/

/* -------------------------------------------------
	reset
------------------------------------------------- */

* {
	margin: 0;
	padding: 0;
	vertical-align: top;
	box-sizing: border-box;
}

html {
}

body {
	line-height: 1;
	-webkit-text-size-adjust: 100%;
	position: relative;
	font-family: "acumin-pro-extra-condensed", "dnp-shuei-gothic-gin-std", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
	font-weight: 600;
}

button {
	font-family: "acumin-pro-extra-condensed", "dnp-shuei-gothic-gin-std", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

p, h1, h2, h3, h4, th, td, li, dt, dd, figcaption, input, select, textarea {
	font-weight: 600;
	letter-spacing: 0.02em;
}

img {
	border: none;
	max-width: 100%;
	height: auto;
}

iframe {
	border: none;
}

a {
	text-decoration: none;
	color: #000;
}
a:hover {
	
}

ul, ol {
	list-style-type: none;
}

main {
	display: block;
}

@media print, screen and (min-width:768px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}

@media screen and (max-width:767px) {
	
}

/* -------------------------------------------------
	box
------------------------------------------------- */

.box920 {
	width: 96%;
	max-width: 920px;
	margin: 0 auto;
	position: relative;
}

@media screen and (max-width:767px) {
	.box920 {
		width: auto;
	}
	.box-sp {
		margin: 0 4%;
	}
}

/* -------------------------------------------------
	fv h1
------------------------------------------------- */

#fv {
	width: 100%;
	position: sticky;
	top: 0;
	z-index: 10;
}

#fv .video-container {
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 4;
}
#fv video {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}
#fv.tate video {
	aspect-ratio: 9 / 16;
}

#fv .spacer {
	display: block;
	position: relative;
	z-index: 2;
}
#fv .spacer.tate {
	display: none;
}
#fv.yoko .spacer.tate,
#fv.tate .spacer.yoko {
	display: none;
}
#fv.tate .spacer.tate,
#fv.yoko .spacer.yoko {
	display: block;
}

/* 縦動画来るまでの仮の設定 
#fv.tate {
	width: 100%;
	overflow: hidden;
}
#fv.tate .video-container {
	width: 317%;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
}
#fv.tate .video-container video {
	aspect-ratio: 16 / 9;
}*/

/* -------------------------------------------------
	.scroll
------------------------------------------------- */

.scroll {
	width: 1px;
	height: 6vw;
	position: fixed;
	left: 50%;
	overflow: hidden;
	z-index: 12;
	mix-blend-mode: difference;
	transition: opacity 0.2s ease-out;
}
.scroll.hidden {
	opacity: 0;
}
.scroll .bar {
	width: 100%;
	height: 100%;
	background: #fff;
	transform: translateY(-100%);
	animation: scroll 3s ease-out 0s infinite;
}

#fv.yoko + .scroll {
	top: 44vw;
}
#fv.tate + .scroll {
	top: 140vw;
	height: 20vw;
}

@keyframes scroll {
	0% { transform: translateY(-100%); opacity: 1; }
	20% { opacity: 1; }
	100% { transform: translateY(200%); opacity: 0; }
}

/* -------------------------------------------------
	#sound
------------------------------------------------- */

#sound {
	width: 100%;
	text-align: right;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 12;
}
#sound button {
	margin: 0.6em 2em 0 0;
	font-size: 15px;
	border: none;
	background: transparent;
	color: #fff;
	cursor: pointer;
	letter-spacing: 0.02em;
}
#sound button span {
	vertical-align: baseline;
}
#sound button span::before {
	content: "OFF";
}
#sound button.on span::before {
	content: "ON";
}

@media screen and (max-width:767px) {
	#sound button {
		margin-right: 1em;
		font-size: 4vw;
	}
}

/* -------------------------------------------------
	.under-fv
------------------------------------------------- */

.under-fv {
	position: relative;
	z-index: 20;
}

#fv.yoko + .scroll + .under-fv {
	margin-top: -1px;
}

/* -------------------------------------------------
	#first-pic
------------------------------------------------- */

#first-pic {
	height: 100vh;
	background: url("../img/pic_01_yoko.webp") no-repeat center top / cover;
	color: transparent;
	font-size: 6px;
	text-indent: -50vw;
	position: sticky;
	top: 0;
}

@media print, screen and (min-width:768px) {
	#first-pic {
		
	}
}

@media screen and (max-width:767px) and (orientation: portrait) {
	#first-pic {
		height: 100vh;
		background: url("../img/pic_01_tate.webp") no-repeat center 30% / cover;
	}
}

/* -------------------------------------------------
	.under-firstPic
------------------------------------------------- */

.under-firstPic {
	position: relative;
	z-index: 10;
	background: #fff;
}

/* -------------------------------------------------
	#looks
------------------------------------------------- */

#looks {
	position: relative;
}

#looks img {
	width: 100%;
}

#looks .for-yoko {
	display: flex;
}

#fv.tate + .scroll + .under-fv #looks .for-yoko,
#fv.yoko + .scroll + .under-fv #looks .for-tate {
	display: none;
}

#looks .pic {
	border: none;
	background: #fff;
	cursor: pointer;
}

/* ----------- yoko ----------- */

#looks .for-yoko .pic {
	display: block;
}

/* col1 */
#looks .for-yoko .col1 {
	width: calc(400 var(--pcp));
	display: flex;
	flex-wrap: wrap;
}
#looks .for-yoko .col1 .pic:nth-child(1) {
	width: 100%;
}
#looks .for-yoko .col1 .pic:nth-child(2),
#looks .for-yoko .col1 .pic:nth-child(3) {
	width: 50%;
}

/* col2 */
#looks .for-yoko .col2 {
	width: calc(240 var(--pcp));
}

/* col3 */
#looks .for-yoko .col3 {
	width: calc(300 var(--pcp));
}

/* col4 */
#looks .for-yoko .col4 {
	width: calc(230 var(--pcp));
}

/* col5 */
#looks .for-yoko .col5 {
	width: calc(270 var(--pcp));
}

/* 横向き各セルの背景に画像設定(マウスおーばで見える) */
#looks .for-yoko .pic {
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
}
#looks .for-yoko .col1 .pic:nth-child(1) { background-image: url("../img/pic_tile_yoko_01_b.webp"); }
#looks .for-yoko .col1 .pic:nth-child(2) { background-image: url("../img/pic_tile_yoko_02_b.webp"); }
#looks .for-yoko .col1 .pic:nth-child(3) { background-image: url("../img/pic_tile_yoko_03_b.webp"); }
#looks .for-yoko .col2 .pic:nth-child(1) { background-image: url("../img/pic_tile_yoko_04_b.webp"); }
#looks .for-yoko .col2 .pic:nth-child(2) { background-image: url("../img/pic_tile_yoko_05_b.webp"); }
#looks .for-yoko .col3 .pic:nth-child(1) { background-image: url("../img/pic_tile_yoko_06_b.webp"); }
#looks .for-yoko .col3 .pic:nth-child(2) { background-image: url("../img/pic_tile_yoko_07_b.webp"); }
#looks .for-yoko .col4 .pic:nth-child(1) { background-image: url("../img/pic_tile_yoko_08_b.webp"); }
#looks .for-yoko .col4 .pic:nth-child(2) { background-image: url("../img/pic_tile_yoko_09_b.webp"); }
#looks .for-yoko .col4 .pic:nth-child(3) { background-image: url("../img/pic_tile_yoko_10_b.webp"); }
#looks .for-yoko .col5 .pic:nth-child(1) { background-image: url("../img/pic_tile_yoko_11_b.webp"); }
#looks .for-yoko .col5 .pic:nth-child(2) { background-image: url("../img/pic_tile_yoko_12_b.webp"); }

#looks .for-yoko .pic:hover img {
	opacity: 0;
}

/* ----------- tate ----------- */

#looks .for-tate .group1 {
	position: relative;
}
#looks .for-tate .title {
	position: absolute;
	left: 50%;
	top: calc(22 var(--spv));
	z-index: 10;
	transform: translateX(-50%);
	color: #fff;
	font-size: calc(35 var(--spv));
}

#looks .for-tate .row {
	display: flex;
}
#looks .for-tate .row .pic {
	display: block;
	overflow: hidden;
	position: relative;
	-webkit-touch-callout: none; /* スマホの長押しメニューを無効化（一部Android） */
	touch-action: manipulation; /* ダブルタップによる拡大を無効にする */
}
#looks .for-tate .row1 .pic:nth-child(1) { width: calc(188 var(--spp)); }
#looks .for-tate .row1 .pic:nth-child(2) { width: calc(187 var(--spp)); }
#looks .for-tate .row2 .pic:nth-child(1) { width: calc(232 var(--spp)); }
#looks .for-tate .row2 .pic:nth-child(2) { width: calc(143 var(--spp)); }
#looks .for-tate .row3 .pic:nth-child(1) { width: calc(168 var(--spp)); }
#looks .for-tate .row3 .pic:nth-child(2) { width: calc(207 var(--spp)); }
#looks .for-tate .row4 .pic:nth-child(1) { width: calc(188 var(--spp)); }
#looks .for-tate .row4 .pic:nth-child(2) { width: calc(187 var(--spp)); }
#looks .for-tate .row5 .pic:nth-child(1) { width: calc(144 var(--spp)); }
#looks .for-tate .row5 .pic:nth-child(2) { width: calc(231 var(--spp)); }
#looks .for-tate .row6 .pic:nth-child(1) { width: calc(208 var(--spp)); }
#looks .for-tate .row6 .pic:nth-child(2) { width: calc(167 var(--spp)); }

/* タッチ中に画像を拡大して見せるため、背景画像とする */

#looks .for-tate * {
	-webkit-touch-callout: none; /* スマホの長押しメニューを無効化（一部Android） */
	-webkit-user-select: none; /* Safari用：テキスト選択を無効化 */
	user-select: none;
}
#looks .for-tate .pic .image {
	width: 100%;
	height: 100%;
	transform: scale(1.01);
	transition: transform 0.4s ease-out;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 4;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
#looks .for-tate .pic[data-modal="11"] .image { background-image: url(../img/pic_tile_tate_01.webp); }
#looks .for-tate .pic[data-modal="1"] .image { background-image: url(../img/pic_tile_tate_02.webp); }
#looks .for-tate .pic[data-modal="8"] .image { background-image: url(../img/pic_tile_tate_03.webp); }
#looks .for-tate .pic[data-modal="4"] .image { background-image: url(../img/pic_tile_tate_04.webp); }
#looks .for-tate .pic[data-modal="5"] .image { background-image: url(../img/pic_tile_tate_05.webp); }
#looks .for-tate .pic[data-modal="12"] .image { background-image: url(../img/pic_tile_tate_06.webp); }
#looks .for-tate .pic[data-modal="6"] .image { background-image: url(../img/pic_tile_tate_07.webp); }
#looks .for-tate .pic[data-modal="2"] .image { background-image: url(../img/pic_tile_tate_08.webp); }
#looks .for-tate .pic[data-modal="3"] .image { background-image: url(../img/pic_tile_tate_09.webp); }
#looks .for-tate .pic[data-modal="7"] .image { background-image: url(../img/pic_tile_tate_10.webp); }
#looks .for-tate .pic[data-modal="10"] .image { background-image: url(../img/pic_tile_tate_11.webp); }
#looks .for-tate .pic[data-modal="9"] .image { background-image: url(../img/pic_tile_tate_12.webp); }

#looks .for-tate .pic .image.active {
	transform: scale(1.1);
}

#looks .for-tate .pic .spacer {
	width: 100%;
	position: relative;
	z-index: 2;
}


/* -------------------------------------------------
	.middle-pic
------------------------------------------------- */

.middle-pic img {
	width: 100%;
}

@media print, screen and (min-width:768px) {
	.middle-pic {
		width: calc(1000 var(--pcp));
		margin: calc(93 var(--pcv)) auto calc(132 var(--pcv));
	}
}

@media screen and (max-width:767px) {
	.middle-pic {
		margin: calc(74 var(--spv)) auto calc(70 var(--spv));
	}
}

/* -------------------------------------------------
	modal
------------------------------------------------- */

#modal-base,
#modal-cont {
	display: none;
}

#modal-base {
	width: 100%;
	height: 100vh;
	background: #000;
	opacity: 0.7;
	z-index: 100;
	position: fixed;
	left: 0;
	top: 0;
}
#modal-cont {
	max-width: 960px;
	width: 96%;
	max-height: 90vh;
	overflow: auto;
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	z-index: 110;
	opacity: 0;
}
#modal-close {
	width: 34px;
	height: 34px;
	background: none;
	border: none;
	position: absolute;
	right: 6px;
	top: 6px;
	z-index: 130;
	cursor: pointer;
}
#modal-close::before,
#modal-close::after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #000;
	position: absolute;
	top: 50%;
	left: 0;
}
#modal-close::before {
	transform: rotate(45deg);
}
#modal-close::after {
	transform: rotate(-45deg);
}

.modal-items {
	max-width: 850px;
	width: 96%;
	margin: 0 auto;
}

.modal-item {
	position: relative;
	z-index: 120;
}
.modal-items .modal-item {
	width: 100vw;
	position: absolute;
	left: -100vw;
	top: 0;
}
.modal-item .col2 .pic {
	position: relative;
}
.modal-item .col2 .texts {
	background: #fff;
	text-align: left;
}
.modal-item .col2 .texts .group {
	width: 100%;
	position: relative;
}
.modal-item .col2 .texts ul {
	padding-left: 70px;
}
.modal-item .col2 .texts ul li {
	font-size: 16px;
	letter-spacing: 0.01em;
	color: #000;
	font-weight: 500;
}
.modal-item .col2 .texts ul li + li {
	margin-top: 0.3em;
}
.modal-item .col2 .texts .text1 {
	width: 67px;
	display: inline-block;
}
.modal-item .col2 .texts .btn {
	margin: 30px 0 0 70px;
	display: inline-block;
	font-size: 28px;
	font-weight: 600;
	position: relative;
	color: #000;
}

.modal-item .slick-arrow {
	width: 10px;
	height: 10px;
	border: none;
	border-top: solid 1px #fff;
	border-right: solid 1px #fff;
	overflow: hidden;
	color: transparent;
	font-size: 1px;
	outline: none;
	cursor: pointer;
	background: transparent;
	position: absolute;
	top: 50%;
	z-index: 50;
}
.modal-item .slick-arrow.slick-prev {
	left: 10px;
	transform: translateY(-50%) rotate(-135deg);
}
.modal-item .slick-arrow.slick-next {
	right: 10px;
	transform: translateY(-50%) rotate(45deg);
}

@media print, screen and (min-width:768px) {
	.modal-item .col2 {
		margin: 0 auto;
		display: flex;
	}
	.modal-item .col2 .pic {
		width: 50%;
	}
	.modal-item .col2 .texts {
		width: 50%;
		display: flex;
		justify-content: flex-start;
		align-items: center;
	}
	.modal-item .col2 .texts {
		width: 50%;
		display: flex;
		justify-content: flex-start;
		align-items: center;
	}
	.modal-item .slick-arrow:hover,
	.modal-item .col2 .texts .btn:hover,
	#modal-close:hover {
		opacity: 0.5;
	}
}

@media screen and (max-width:767px) {
	#modal-cont {
		width: calc(320 var(--spp));
		max-height: 90vh;
	}
	#modal-close {
		width: calc(34 var(--spv));
		height: calc(34 var(--spv));
		right: calc(5 var(--spv));
		top: calc(5 var(--spv));
	}
	#modal-close::before,
	#modal-close::after {
		background: #fff;
	}
	
	.modal-item .col2 {
		width: 100%;
	}

	.modal-item .col2 .texts .group {
		padding: calc(25 var(--spv)) 0 calc(40 var(--spv)) calc(27 var(--spv));
		position: relative;
	}
	.modal-item .col2 .texts ul {
		padding-left: 0;
	}
	.modal-item .col2 .texts ul li {
		font-size: calc(16 var(--spv));
	}
	.modal-item .col2 .texts ul li + li {
		margin-top: 0.1em;
	}
	.modal-item .col2 .texts .text1 {
		width: calc(73 var(--spv));
	}
	.modal-item .col2 .texts .btn {
		font-size: calc(33 var(--spv));
		margin: 0;
		position: absolute;
		right: calc(33 var(--spv));
		bottom: calc(27 var(--spv));
	}
	
	#modal-close {
		width: calc(34 var(--spv));
		height: calc(34 var(--spv));
		right: calc(5 var(--spv));
		top: calc(5 var(--spv));
	}
	#modal-close::before,
	#modal-close::after {
		background: #fff;
	}
}

/* -------------------------------------------------
	#bottom-area
------------------------------------------------- */

#bottom-area {
	padding: 30px 0 150px;
}

#bottom-area .tax-note {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
	font-size: 17px;
	letter-spacing: 0.02em;
	font-weight: 500;
}

#bottom-area .staff-credit {
	width: 96%;
	max-width: 1200px;
	margin: 0 auto;
}
#bottom-area .staff-credit dl {
	width: 415px;
	margin-top: 40px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 0;
}
#bottom-area .staff-credit dt,
#bottom-area .staff-credit dd {
	font-size: 16px;
	letter-spacing: 0.01em;
	font-weight: 500;
}
#bottom-area .staff-credit dt {
	width: 150px;
}
#bottom-area .staff-credit dd {
	width: 250px;
}

#bottom-area .buttons {
	margin-top: 100px;
	display: flex;
	justify-content: center;
	gap: 0 245px;
}
#bottom-area .buttons li a {
	padding-bottom: 6px;
	display: inline-block;
	justify-content: center;
	align-items: center;
	font-size: 30px;
	letter-spacing: 0.02em;
	font-weight: 500;
	position: relative;
}
#bottom-area .buttons li a::after {
	width: 0;
	height: 1px;
	background: #000;
	content: "";
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	transition: width 0.2s ease-out;
}

@media print, screen and (min-width:768px) {
	#bottom-area .buttons li a:hover::after {
		width: 100%;
	}
}

@media screen and (max-width:767px) {
	#bottom-area {
		padding: calc(24 var(--spv)) 0 calc(100 var(--spv));
	}

	#bottom-area .tax-note {
		width: 83%;
		font-size: calc(15 var(--spv));
	}
	
	#bottom-area .staff-credit dl {
		width: calc(310 var(--spp));
		max-width: none;
	}
	#bottom-area .staff-credit dl {
		width: 100%;
		justify-content: space-between;
	}
	#bottom-area .staff-credit dt,
	#bottom-area .staff-credit dd {
		width: calc(50% - 7px);
		font-size: calc(17 var(--spv));
	}
	#bottom-area .staff-credit dt {
		text-align: right;
	}
	
	#bottom-area .buttons {
		margin-top: calc(75 var(--spv));
		flex-direction: column;
		align-items: center;
		gap: 10vw 0;
	}
	#bottom-area .buttons li a {
		padding-bottom: calc(6 var(--spv));
		font-size: calc(25 var(--spv));
	}
	#bottom-area .buttons li a::after {
		width: 100%;
	}
}

/* -------------------------------------------------
	responsive
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	.pc-none {
		display: none !important;
	}
}

@media screen and (max-width:767px) {
	.sp-none {
		display: none !important;
	}
}

/* -------------------------------------------------
	animation
------------------------------------------------- */

.anim {
	opacity: 0;
	filter: blur(10px);
	transform: translateY(5px);
	transition: all 2.2s cubic-bezier(.12,.92,.31,.95);
}

.anim.delay01 { transition-delay: 0.1s; }
.anim.delay02 { transition-delay: 0.2s; }
.anim.delay03 { transition-delay: 0.3s; }
.anim.delay04 { transition-delay: 0.4s; }
.anim.delay05 { transition-delay: 0.5s; }
.anim.delay06 { transition-delay: 0.6s; }

.anim.on {
	opacity: 1;
	filter: blur(0);
	transform: translate(0,0);
}

/* -------------------------------------------------
	print
------------------------------------------------- */

@media print {
	body {
		width: 980px !important;
	}
}
