@charset "UTF-8";
/* このCSSは[php/set_03_style/style_05_mainview.php]により生成されます。 */

#mainview_wrap #mainview_slider{z-index:1}
#mainview_slider:not(.slick-initialized) > .slide_item:not(:first-child){
	display:none;
}
#mainview_slider:not(.slick-initialized) > .slide_item:first-child{
	display:block;
}
#mainview_wrap .slide_caption_wrap{
	z-index:2;
	top:0;
	right:0;
	bottom:0;
	left:0;
	pointer-events:none;
	opacity:0;
	transition:880ms ease;
}
#mainview_slider.is_ready .slick-current .slide_caption_wrap{
	opacity:1;
	transition-delay:440ms;
}
#mainview_slider.initial-caption #slide-01 .slide_caption_wrap{
	opacity:1;
	transition:none;
}
#mainview_wrap .slide_caption_inner{padding:36px 52px;}
#mainview_wrap .slide_caption_inner *{pointer-events: auto}
#mainview_slider .slide_item{padding:0}
#mainview_slider .slide_img_wrap{height:100svh;}
#mainview_slider .slide_img{
	filter:grayscale(90%);
	transform:scale(1.2);
transition:transform 2.4s cubic-bezier(.645, .045, .355, 1);
}
#mainview_slider .slick-slide.slick-current .slide_img{transform: scale(1);opacity:1}
#mainview_slider .slick-prev,
#mainview_slider .slick-next {
	position: absolute;
	z-index: 5;
	border: none;
	width: 28px;
	height: 28px;
	top:50%;
	transform: translateY(-50%);
	border-radius:12%;
	background: rgba(63,56,39,0.4);
	border:1px solid rgba(255,255,255,0.8);
	color:#ffffff;
	cursor: pointer;
	transition: background 0.4s;
}
#mainview_slider .slick-prev {left:8px}
#mainview_slider .slick-next {right:8px}
#mainview_slider .svg_icon {font-size:11px}
#mainview_dots{
	width:100%;
	position: absolute;
	left: 0;
	bottom: 8px;
	z-index:5;
	pointer-events:none;
}
#mainview_dots .slick-dots{
	display: flex !important;
	justify-content:center;
	gap: 12px;
	margin:1em 0;
	padding:0;
	list-style:none;
}
#mainview_dots .slick-dots button {
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	width: 20px;
	height: 20px;
	padding:0;
	border:none;
	background:none;
	font-size:0;
	cursor: pointer;
	pointer-events:auto
}
#mainview_dots .slick-dots button::after{
	content:"";
	display:block;
	transition:all .4s ease-out;
	border:1px solid #ffffff;
	width:100%;	height:100%;	flex: 0 0 100%;
	border-radius:4px;
	background: #f4f2ed;
}
#mainview_dots .slick-dots li.slick-active button::after{
	background: #bf937c;
}

@media all and (min-width:768px){

	#mainview_slider .slide_img_wrap{	height:100svh;}

}

@media all and (min-width:1024px){

	#mainview_slider .slide_img_wrap{
		height:100svh;
	}
	#mainview_wrap .slide_caption_inner{padding:32px 56px;}
	#mainview_slider .slick-prev,
	#mainview_slider .slick-next {
		width: 32px;
		height: 32px;
	}
	#mainview_slider .svg_icon {font-size:13px}
	#mainview_dots .slick-dots button {
		width: 16px;
		height: 16px;
	}
	#mainview_dots .slick-dots button::after{
		border-radius:3px;
	}

}

@media all and (min-width:1280px){


}

@media all and (min-width:1440px){

	#mainview_slider .slick-prev,
	#mainview_slider .slick-next {
		width:48px;
		height:48px;
	}
	#mainview_slider .svg_icon{font-size:19px}
	#mainview_wrap .slide_caption_inner{padding:32px 72px;}

}

@media (hover: hover) and (pointer: fine) {

	#mainview_slider .slick-prev:hover,
	#mainview_slider .slick-next:hover {
		background: rgba(63,56,39,0.8);
	}
	#mainview_dots .slick-dots li:hover button::after{
		background: #bf937c;
	}

}

/* ==================================================
   メインビュー：SCROLLインジケーター（タイプ1）
================================================== */
#mainview_scroll{
	position:absolute;
	left:10px;
	bottom:20px;
	z-index:10;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:14px;
	pointer-events:none;
	color:#ffffff;
}
#mainview_scroll .mainview_scroll_text{
	font-size:10px;
	font-weight:600;
	letter-spacing:.2em;
	writing-mode:vertical-rl;
	color:inherit;
	line-height:1;
}
#mainview_scroll .mainview_scroll_line{
	position:relative;
	display:block;
	width:1px;
	height:64px;
	overflow:hidden;
}
#mainview_scroll .mainview_scroll_line::before{
	content:"";
	position:absolute;
	inset:0;
	background:currentColor;
	opacity:.35;
}
#mainview_scroll .mainview_scroll_line::after{
	position:absolute;
	top:-35%;
	left:0;
	width:100%;
	height:35%;
	background:currentColor;
	content:"";
	animation:mainview_scroll_animation 2.5s ease-in-out infinite;
}
@keyframes mainview_scroll_animation{
	0%{
		transform:translateY(0);
	}
	100%{
		transform:translateY(280px);
	}
}
@media(min-width:768px){
	#mainview_scroll{
		left:24px;
		bottom:30px;
		gap:18px;
	}
	#mainview_scroll .mainview_scroll_line{
		height:90px;
	}
}
@media(prefers-reduced-motion:reduce){
	#mainview_scroll .mainview_scroll_line::after{
		animation:none;
		top:0;
	}
}
/* ==================================================
   メインビュー：キャプションアニメーション
================================================== */
#mainview_slider{
	--caption-delay:500ms;
	--caption-duration:1800ms;
	--caption-x:0px;
	--caption-y:60px;
}
#mainview_slider #slide-02 .slide_caption_inner,
#mainview_slider #slide-03 .slide_caption_inner,
#mainview_slider #slide-04 .slide_caption_inner,
#mainview_slider.is-second-loop #slide-01 .slide_caption_inner{
	opacity:0;
}
#mainview_slider #slide-02.slick-active .slide_caption_inner,
#mainview_slider #slide-03.slick-active .slide_caption_inner,
#mainview_slider #slide-04.slick-active .slide_caption_inner,
#mainview_slider.is-second-loop #slide-01.slick-active .slide_caption_inner{
	animation:mainview_caption_fade var(--caption-duration) ease-out var(--caption-delay) both;
}
@keyframes mainview_caption_fade{
	0%{
		opacity:0;
		transform:translate(var(--caption-x),var(--caption-y));
	}
	100%{
		opacity:1;
		transform:translate(0,0);
	}
}
@media(prefers-reduced-motion:reduce){
	#mainview_slider .slide_item.slick-active .slide_caption_inner{
		animation:none;
		opacity:1;
		transform:none;
	}
}
/* ==================================================
   メインビュー：キャプションのフェードアウト
================================================== */
#mainview_slider{
	--caption-out-x:0px;
	--caption-out-y:-30px;
}
#mainview_slider .slide_item.caption-leaving .slide_caption_inner{
	animation:mainview_caption_out .8s ease-in-out both;
}
@keyframes mainview_caption_out{
	0%{
		opacity:1;
		transform:translate(0,0);
	}
	100%{
		opacity:0;
		transform:translate(var(--caption-out-x),var(--caption-out-y));
	}
}
@media(prefers-reduced-motion:reduce){
	#mainview_slider .slide_item.caption-leaving .slide_caption_inner{
		animation:none;
	}
}