@charset "UTF-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

html,
body {
	padding: 0;
	margin: 0;
}
#by {
	padding: 0;
	margin: 0;
	letter-spacing: 1px;
	line-height: 2;
	width: 100%;
	font-family: "Noto Sans JP", sans-serif;
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
	overflow: hidden;
}
#by ul,#by li {
	list-style: none;
	padding: 0;
	margin: 0;
}
#by a {
	color: #000000;
	text-decoration: none;
}
#by img {
	width: 100%;
	line-height: 0;
	vertical-align: bottom;
	border: none;
}
#by .en {
	font-family: "Hanken Grotesk", sans-serif;
	font-weight: 600;
}
#by p{
	margin: 5px auto;
	padding: 0;
}

#by .spview {
	display: block;
}
#by .pcview {
	display: none;
}

@media only screen and (min-width: 769px) {
	#by .spview {
		display: none;
	}
	#by .pcview {
		display: block;
		position: relative;
	}
}


/* ========== by_head ========== */

#by #by_head{
	width: 100%;
	position: relative;
	margin: 0% auto;
	overflow: hidden; /* ズームがはみ出さないよう */
}
#by #by_head .main{}

/* --- ① シネマティック・ズームイン：メイン画像 --- */
#by_head .main img {
	animation: heroZoomIn 2.4s cubic-bezier(0.16, 1, 0.3, 1) both;
	transform-origin: center center;
}
@keyframes heroZoomIn {
	0%   { opacity: 0; transform: scale(1.08); }
	100% { opacity: 1; transform: scale(1.0); }
}

/* --- ① タイトルSVG：画像より遅れてフェードアップ --- */
#by_head .title {
	animation: heroTitleIn 1.8s cubic-bezier(0.16, 1, 0.3, 1) 0.8s both;
}
@keyframes heroTitleIn {
	0%   { opacity: 0; transform: translateY(18px); }
	100% { opacity: 1; transform: translateY(0); }
}

/* --- ① ラインが横に伸びる --- */
#by_head .title::after {
	animation: heroLineIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) 1.4s both;
	transform-origin: center;
}
@keyframes heroLineIn {
	0%   { opacity: 0; width: 0; }
	100% { opacity: 1; }
}

/* --- ① テキスト：最後にしっとり登場 --- */
#by_head p {
	animation: heroTextIn 1.6s cubic-bezier(0.16, 1, 0.3, 1) 1.4s both;
}
@keyframes heroTextIn {
	0%   { opacity: 0; transform: translateY(12px); }
	100% { opacity: 1; transform: translateY(0); }
}

#by_head .center{
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 999;
}
#by_head .title{
	width: 60%;
	margin: 0 auto 50px;
	position: relative;
}
#by_head .title::after{
	content: "";
	position: absolute;
	width: 50px;
	height: 1px;
	background-color: #fff;
	left: 50%;
	top: 125%;
	transform: translate(-50%,0);
}
#by_head p{
	font-size: 11px;
	text-align: center;
	margin: 15px auto 0;
	color: #fff;
}

@media only screen and (min-width: 769px) {
	#by_head .center{
		width: 100%;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
		z-index: 999;
	}
	#by_head .title{
		max-width: 400px;
		margin: 0 auto 100px;
	}
	#by_head .title::after{
		content: "";
		position: absolute;
		width: 70px;
		height: 1px;
		background-color: #fff;
		left: 50%;
		top: 130%;
	}
	#by_head p{
		font-size: 15px;
		margin: 50px auto 0;
	}
}


/* ========== by_contents ========== */

#by_contents{
	width: 85%;
	margin: 60px auto;
	position: relative;
}
#by_contents .section .no{
	width: 14%;
	margin: 80px auto 10px;
}
#by_contents .section .sub{
	text-align: center;
	font-size: 20px;
	font-weight: 600;
	margin: 0 auto 20px;
}
#by_contents .section .right{
	position: relative;
}
#by_contents .section .right .kazari{
	position: absolute;
	bottom: 4%;
	right: -8%;
	width: 55%;
}
#by_contents .section:nth-of-type(even) .right .kazari{
	position: absolute;
	bottom: 4%;
	right: auto;
	left: -10%;
	width: 55%;
}
#by_contents .section .box .left .sub_tit{
	font-size: 15px;
	text-align: left;
	color: #d8aa68;
	margin: 20px 0 5px;
}
#by_contents .section .box .left .cmt{
	font-size: 12px;
}
#by_contents .section .box .left .name{
	font-size: 14px;
	font-weight: 600;
	margin: 40px auto 10px;
}
#by_contents .section .box .left .price{
	font-size: 10px;
	margin: 0 auto 25px;
	color: #7f7f7f;
}
#by_contents .section .box .left .btn_box{
	display:grid;
	grid-template-columns: 1fr 1fr;
	font-size: 14px;
	column-gap: 10px;
}
#by_contents .section .box .left .btn_box .buy a{
	display: block;
	width: 100%;
	margin: 0 auto;
	padding: 10px 0;
	text-align: center;
	border: 1px solid #000;
}


/* ========== スライダー ========== */

.slider-container {
	position: relative;
	width: 100%;
	max-width: 600px;
	height: 450px;
	overflow: hidden;
}
.slide-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	animation: fadeSlider 12s infinite;
}
.slide-img:nth-child(1) { animation-delay: 0s; }
.slide-img:nth-child(2) { animation-delay: 4s; }
.slide-img:nth-child(3) { animation-delay: 8s; }

@keyframes fadeSlider {
	0%   { opacity: 0; animation-timing-function: ease-in; }
	8%   { opacity: 1; }
	33%  { opacity: 1; animation-timing-function: ease-out; }
	41%  { opacity: 0; }
	100% { opacity: 0; }
}


/* ========== PC レイアウト ========== */

@media only screen and (min-width: 769px) {
	#by_contents{
		width: 100%;
		max-width: 1100px;
		margin: 60px auto;
		position: relative;
	}
	#by_contents .section{
		margin: 100px auto;
		margin-left: 7%;
	}
	#by_contents .section .box{
		display: flex;
		align-items: center;
	}
	#by_contents .section .box .right{
		width: 50%;
		order: 2;
	}
	#by_contents .section .box .left{
		width: 50%;
		order: 1;
	}
	#by_contents .section:nth-of-type(even) .box .right{ order: 1; }
	#by_contents .section:nth-of-type(even) .box .left{ order: 2; }
	#by_contents .section .no{
		width: 14%;
		margin: 0px 0 10px;
		position: relative;
	}
	#by_contents .section .sub{
		text-align: left;
		font-size: 22px;
		font-weight: 600;
		position: absolute;
		top: 0;
		left: 18%;
		line-height: 1.7;
	}
	#by_contents .section .right{ position: relative; }
	#by_contents .section .right .kazari{
		position: absolute;
		bottom: 4%;
		right: -8%;
		width: 55%;
	}
	#by_contents .section .box .left .sub_tit{
		font-size: 18px;
		text-align: left;
		color: #d8aa68;
		margin: 50px 0 10px;
	}
	#by_contents .section .box .left .cmt{
		font-size: 14px;
		width: 80%;
		margin: 0;
	}
	#by_contents .section .box .left .name{
		font-size: 16px;
		font-weight: 600;
		margin: 60px auto 10px;
	}
	#by_contents .section .box .left .price{
		font-size: 13px;
		margin: 0 auto 20px;
		color: #7f7f7f;
	}
	#by_contents .section .box .left .btn_box{
		display:grid;
		grid-template-columns: 1fr 1fr;
		font-size: 14px;
		column-gap: 10px;
		width: 80%;
	}
	#by_contents .section .box .left .btn_box .buy a{
		display: block;
		width: 100%;
		margin: 0 auto;
		padding: 7px 0;
		text-align: center;
		border: 1px solid #000;
	}
	.slider-container {
		position: relative;
		width: 100%;
		max-width: 460px;
		height: 650px;
		overflow: hidden;
	}
}


/* ========== ② kazari：左→右へ線を描くように現れる ========== */

.kazari {
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.kazari.kazari-reveal {
	clip-path: inset(0 0% 0 0);
}


/* ========== ③ スクロール フェードイン ========== */

/* セクション全体：初期状態 */
.fade-item {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
/* セクション内子要素：初期状態 */
.fade-child {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}
/* 発火後 */
.fade-item.fade-in {
	opacity: 1;
	transform: translateY(0);
}
.fade-child.fade-in {
	opacity: 1;
	transform: translateY(0);
}