@charset "utf-8";

/* Back Ground
----------------------*/
.main-bg {
	background: url("../img/bg_yellow.webp") center top / 700px auto no-repeat;
	width: 100vw;
	height: 100vh;
	min-height: 100lvh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 0;
}
.main-bg img {
	mix-blend-mode: multiply;
	width: 1400px;
	height: 4160px;
	position: absolute;
	top: 0;
	left: -700px;
	opacity: .95;
	transition: .5s ease-out;
	-webkit-transform: translateY(100vh);
	transform: translateY(100vh);
	will-change: transform;
}
.main-bg.bg-after img {
	left: 0;
	-webkit-transform: translateY(-70px);
	transform: translateY(-70px);
}
.loading {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	align-items: center;
	background-color: rgba(0,0,0,.9);
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 40;
	transition: .2s ease-out;
}
.wf-active .loading {
	opacity: 0;
	pointer-events: none;
}
.loading img {
	max-width: 40px;
}
@media (min-width: 700px) {
	.main-bg {
		background-size: 1400px auto;
	}
	.main-bg img {
		width: 200%;
		left: -100%;
	}
}
@media (min-width: 1400px) {
	.main-bg {
		background-size: cover;
	}
}

/* Afternoon */
#morning {
	padding-bottom: 122px;
}
#afternoon {
	background: linear-gradient(#64280a, #1e0a00);
	color: #fff;
	position: relative;
}
#afternoon::before {
	display: block;
	content: "";
	background: url("../img/after/bg_top.webp") -500px bottom / 100% 10px repeat-x;
	width: 100%;
	height: 62px;
	position: absolute;
	top: -61px;
	left: 0;
	transition: background 1s ease-out;
}
.bg-dark #afternoon::before {
	background-position: 0 bottom;
	background-size: 100% 62px;
}

/* Swiper
----------------------*/
.swiper-container {
	overflow: hidden;
}
.swiper-slide {
	width: 220px;
}
.swiper-slide img {
	border-radius: 12px;
}
@media (max-width: 768px) {
	.swiper-container {
		width: calc(100% + 50px);
		margin-left: -25px;
	}
	
}

/* Wrapper
----------------------*/
.wrapper {
	max-width: 1400px;
	padding-left: 450px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	overflow: hidden;
	-webkit-filter: blur(10px);
	filter: blur(10px);
	transition: opacity .2s ease-out;
}
.wf-active .wrapper {
	-webkit-filter: unset;
	filter: unset;
}
@media (max-width: 950px) {
	.wrapper {
		padding-left: calc(100% - 500px);
	}
}
@media (max-width: 768px) {
	.wrapper {
		padding: 0 25px;
		overflow: hidden;
	}
}

/* Header
----------------------*/
.ct-header {
	width: 100%;
	max-width: 1400px;
	height: 100vh;
	font-family: var(--font-helvatica);
	position: fixed;
	top: 0;
	left: 50%;
	z-index: 20;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	pointer-events: none;
}
.ct-header > * {
	position: absolute;
	pointer-events: auto;
}
.h-logo {
	width: 208px;
	top: 60px;
	left: 40px;
	transition: .2s ease-out;
}
.bg-dark .h-logo {
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
	transition-delay: .4s;
}
.h-logo a:hover img {
	animation: logo 1s linear infinite alternate;
}
@keyframes logo {
	from {
		filter: blur(0);
	}
	to {
		filter: blur(1px);
	}
}
@media (max-width: 768px) {
	.ct-header {
		height: auto;
	}
	.h-logo {
		width: 144px;
		top: 20px;
		left: 50px;
	}
	.h-logo.h-logo-hide {
		-webkit-transform: translateY(-80px);
		transform: translateY(-80px);
	}
}

/* Navi */
.h-navi {
	width: calc(100% - 500px);
	max-width: 450px;
	top: 0;
	left: 0;
	padding-top: 310px;
	pointer-events: none;
}
.h-navi > * {
	pointer-events: auto;
}
.btn-menu {
	display: none;
	background: url("../img/bg_button.webp") center / contain no-repeat;
	width: 60px;
	height: 60px;
	position: fixed;
	top: 10px;
	right: 10px;
	z-index: 30;
	-webkit-filter: drop-shadow(-10px 10px 20px rgba(123,0,82,.5));
	filter: drop-shadow(-10px 10px 20px rgba(123,0,82,.5));
	transition: .2s ease-out, filter .2s ease-out;
	cursor: pointer;
	will-change: filter;
}
.bg-dark .btn-menu {
	background-image: url("../img/bg_button_after.webp");
	transition: .2s ease-out, filter .2s ease-out .4s;
}
.btn-menu:hover {
	-webkit-filter: drop-shadow(-1px 10px 20px rgba(123,0,82,.5));
	filter: drop-shadow(-3px 3px 10px rgba(123,0,82,.5));
}
.btn-menu span,
.btn-menu::before,
.btn-menu::after {
	display: block;
	content: "";
	background-color: var(--black);
	width: 20px;
	height: 0;
	padding-top: 2px;
	position: absolute;
	top: calc(50% - 1px);
	left: calc(50% - 10px);
	overflow: hidden;
	transition: .2s ease-out;
}
.bg-dark .btn-menu span,
.bg-dark .btn-menu::before,
.bg-dark .btn-menu::after {
	background-color: var(--white);
}
.btn-menu::before {
	-webkit-transform: translateY(-6px);
	transform: translateY(-6px);
}
.btn-menu::after {
	-webkit-transform: translateY(6px);
	transform: translateY(6px);
}
body.body-fixed {
	overflow: hidden;
}
.btn-menu.btn-close span {
	opacity: 0;
}
.btn-menu.btn-close::before {
	-webkit-transform: translateY(0) rotate(135deg);
	transform: translateY(0) rotate(135deg);
}
.btn-menu.btn-close::after {
	-webkit-transform: translateY(0) rotate(-135deg);
	transform: translateY(0) rotate(-135deg);
}
.nav-menu {
	pointer-events: none;
}
.nav-menu ul {
	display: -webkit-box;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	width: fit-content;
	margin: 0 90px 0 auto;
	pointer-events: auto;
}
.nav-menu li:nth-of-type(n + 2) {
	margin-top: 10px;
}
.nav-menu a {
	font-family: var(--font-helvatica);
	font-size: 1.25rem;
	font-weight: 300;
	position: relative;
	z-index: 2;
	overflow: hidden;
	transition: .2s ease-out, filter .2s ease-out .1s;
}
.bg-dark .nav-menu a {
	transition: .2s ease-out, filter .2s ease-out .2s;
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}
.nav-menu a:before {
	display: block;
	content: "";
	background-color: var(--black);
	width: 0;
	height: 1px;
	position: absolute;
	bottom: .2em;
	left: 0;
	transition: .2s ease-out;
}
.nav-menu a:hover::before {
	width: 100%;
}
.nav-menu a[target="_blank"]::after {
	display: inline-block;
	content: "";
	background: url("../img/ico_blank.svg") center / contain no-repeat;
	width: 10px;
	height: 10px;
	margin-left: 5px;
	-webkit-transform: translateY(-.2em);
	transform: translateY(-.2em);
}
@media (max-width: 800px) {
	.btn-menu {
		display: block;
	}
	.nav-menu ul {
		margin: 0 auto 0 25px;
	}
}
@media (max-width: 768px) {
	.h-navi {
		width: 100%;
		max-width: none;
		padding-top: 0;
	}
	.h-navi > dl {
		display: -webkit-box;
		display: flex;
		-webkit-box-pack: center;
		justify-content: center;
		-webkit-box-align: center;
		align-items: center;
		width: 100%;
		height: 100vh;
		position: fixed;
		overflow: hidden;
		pointer-events: none;
	}
	.h-navi > dl > * {
		pointer-events: auto;
	}
	.h-navi > dl > .nav-menu {
		position: relative;
		opacity: 0;		
		-webkit-filter: blur(10px);
		filter: blur(10px);
		transition: .4s ease-out;
		-webkit-transform: scale(1.5) rotate(10deg);
		transform: scale(1.5) rotate(10deg);
		pointer-events: none;
	}
	.h-navi > dl > .nav-menu.menu-open {
		opacity: 1;
		-webkit-filter: blur(0);
		filter: blur(0);
		pointer-events: auto;
		-webkit-transform: scale(1) rotate(0);
		transform: scale(1) rotate(0);
	}
	.nav-menu::after {
		display: block;
		content: "";
		background: url("../img/bg_button.webp") center / contain no-repeat;
		width: 456px;
		aspect-ratio: 1 / 1;
		position: absolute;
		top: 50%;
		left: 50%;
		-webkit-transform: translate(-50%, -50%);
		transform: translate(-50%, -50%);
	}
	.bg-dark .nav-menu::after {
		background-image: url("../img/bg_button_after.webp");
	}
	.nav-menu ul {
		margin: 0;
		pointer-events: unset;
	}
}

/* Main
----------------------*/
main {
	width: 100%;
	max-width: 500px;
}
@media (max-width: 768px) {
	main {
		max-width: none;
	}
}
main > section {
	background: linear-gradient(180deg, rgba(255,240,73,.7), rgba(255,172,2,.7));
}

/* FV */
.title-main {
	display: -webkit-box;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
}
.title-main > * {
	-webkit-box-ordinal-group: 3;
	order: 2;
}
.fv-obj {
	width: 100%;
	padding: 0 60px;
	position: relative;
}
.fv-obj img {
	position: absolute;
	z-index: 1;
	pointer-events: none;
}
.fv-obj figcaption {
	width: fit-content;
	font-family: var(--font-minion);
	font-size: 1.875rem;
	position: relative;
	z-index: 1;
}
.fv-obj::after {
	display: block;
	content: "";
	mix-blend-mode: multiply;
	background: url("../img/top/bg_disk.webp") center / contain no-repeat;
	aspect-ratio: 1 / 1;
	position: absolute;
	z-index: 0;
	pointer-events: none;
}
.fv-obj figcaption span {
	display: block;
	font-family: var(--font-new);
	font-size: .53em;
}
.obj-morning {
	-webkit-box-ordinal-group: 2;
	order: 1;
	padding-top: 176px;
	padding-bottom: 104px;
}
.obj-after figcaption {
	padding-top: 86px;
	padding-bottom: 67px;
	margin: 0 0 0 auto;
}
.obj-morning img {
	width: 394px;
	top: -60px;
	right: -130px;
	transition: 2s ease-out;
	-webkit-transform: translate(20px, -20px) rotate(10deg);
	transform: translate(20px, -20px) rotate(10deg);
}
.obj-after img {
	width: 318px;
	top: 10px;
	left: -80px;
	transition: 1.7s ease-out;
	-webkit-transform: translate(-12px, -12px) rotate(-6deg);
	transform: translate(-12px, -12px) rotate(-6deg);
}
.wf-active .obj-morning img,
.wf-active .obj-after img {
	-webkit-transform: translate(0, 0) rotate(0);
	transform: translate(0, 0) rotate(0);
}
.obj-morning::after {
	width: 590px;
	top: -66px;
	right: -136px;
}
.obj-after::after {
	width: 494px;
	top: 10px;
	left: -236px;
}
.fv-img {
	width: calc(100% - 120px);
	margin: 0 auto;
}
.fv-img img {
	border-radius: 12px;
}
@media (max-width: 768px) {
	.fv-obj {
		padding: 0 30px;
	}
	.fv-obj figcaption {
		font-size: 1.375rem;
	}
	.fv-obj figcaption span {
		font-size: .72em;
	}
	.obj-morning {
		padding-top: 162px;
		padding-bottom: 76px;
	}
	.obj-after figcaption {
		padding-top: 60px;
		padding-bottom: 30px;
	}
	.obj-morning img {
		width: 240px;
		top: 50px;
		right: -70px;
	}
	.obj-after img {
		width: 154px;
		top: 20px;
		left: -10px;
	}
	.obj-morning::after {
		width: 360px;
		top: 56px;
		right: -90px;
	}
	.obj-after::after {
		width: 240px;
		top: 38px;
		left: -80px;
	}
	.fv-img {
		width: calc(100% - 60px);
	}
}

/* contents A */
.ct-a {
	display: -webkit-box;
	display: flex;
	-webkit-box-align: end;
	align-items: flex-end;
	column-gap: 40px;
}
.ct-a-contents {
	width: 160px;
}
.ct-a-title img {
	max-width: 148px;
}
.ct-a-image {
	width: calc(100% - 200px);
	min-height: 340px;
	position: relative;
	z-index: 0;
}
.ct-a-image img {
	height: 100%;
	object-position: left center;
	object-fit: cover;
	position: absolute;
	top: 0;
}
.ct-morning {
	padding-left: 60px;
}
.ct-morning .ct-a-image img {
	left: 0;
}
.ct-after {
	-webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	flex-direction: row-reverse;
	padding-right: 60px;
}
.ct-after .ct-a-image img {
	right: 0;
}
@media (max-width: 768px) {
	.ct-a {
		column-gap: 30px;
	}
	.ct-a-image {
		width: calc(100% - 165px);
	}
	.ct-morning {
		padding-left: 30px;
	}
	.ct-morning .ct-a-image {
		margin-right: -25px;
	}
	.ct-after {
		padding-right: 30px;
	}
	.ct-after .ct-a-image {
		margin-left: -25px;
	}
	.ct-after .ct-a-image img {
		object-position: 60% center;
	}
}

/* contents B */
.ct-b {
	padding: 0 60px;
	position: relative;
	z-index: 2;
}
.ct-b-object {
	position: relative;
	max-width: 338px;
	margin: 0 auto;
}
.ct-b-object img {
	position: relative;
	z-index: 1;
}
.ct-b-object::after {
	display: block;
	content: "";
	mix-blend-mode: multiply;
	background: url("../img/img_shadow.webp") center / contain no-repeat;
	width: 545px;
	aspect-ratio: 1002 / 331;
	position: absolute;
	top: 34%;
	left: -50%;
	z-index: 0;
}
#afternoon .ct-b-object::after {
	left: -28%;
}
.ct-b-contents {
	max-width: 290px;
	margin: 0 auto;
}
.ct-b-contents dt {
	font-family: var(--font-mincho);
	font-size: 1.75rem;
}
.ct-b-contents dt > * {
	display: block;
}
.ct-b-ttl01 {
	width: fit-content;
	font-family: var(--font-new);
	font-size: 1.125rem;
	line-height: 1.4;
}
#morning .ct-b-ttl01 {
	background: linear-gradient(90deg, #f0be14, #f0be14) left bottom / 100% 40% no-repeat;
}
#afternoon .ct-b-ttl01 {
	background: linear-gradient(90deg, #7f4f21, #7f4f21) left bottom / 100% 40% no-repeat;
}
.ct-b-ttl02 {
	font-size: 1rem;
}
.ct-b-ttl03 {
	font-size: .9rem;
	text-align: right;
}
@media (max-width: 768px) {
	.ct-b {
		padding: 0 30px;
	}
	.ct-b-object::after {
		width: 515px;
		top: 24%;
		left: -62%;
	}
	#afternoon .ct-b-object::after {
		top: 28%;
		left: -50%;
	}
}

/* footer
----------------------*/
footer {
	background-color: #1e0a00;
	width: 100%;
	max-width: 500px;
	padding-bottom: 60px;
	position: relative;
}
footer small {
	display: block;
	color: #fff;
	font-size: 1rem;
	text-align: center;
}
@media (max-width: 768px) {
	footer {
		max-width: none;
	}
}

/* Footer Contents */
.footer-ct {
	display: -webkit-box;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	-webkit-box-align: center;
	align-items: center;
	width: 290px;
	position: fixed;
	bottom: 20px;
	left: 50%;
	transition: 1s ease-out .35s;
	-webkit-transform: translateX(calc(100% + 80px));
	transform: translateX(calc(100% + 80px));
}
.bg-dark .footer-ct {
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
	transition-delay: 0s;
}
.footer-info {
	display: -webkit-box;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	-webkit-box-align: center;
	align-items: center;
	max-width: 208px;
	font-family: var(--font-mincho);
	font-size: 1.125rem;
	text-align: center;
}
.footer-navi {
	display: -webkit-box;
	display: flex;
	column-gap: 10px;
	width: 100%;
	margin-top: 30px;
}
.footer-navi li {
	width: calc((100% - 10px) / 2);
}
.footer-navi a {
	display: -webkit-box;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	-webkit-box-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	align-items: center;
	aspect-ratio: 1 / 1;
	font-family: var(--font-helvatica);
	font-size: 1.125rem;
	border: 1px solid #232323;
	border-radius: 50%;
	position: relative;
}
.footer-navi a::after {
	display: block;
	content: "";
	width: 100%;
	height: 100%;
	border: 1px solid var(--black);
	border-radius: 50%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transition: .2s ease-out;
	pointer-events: none;
}
.footer-navi a:hover::after {
	opacity: 1;
	-webkit-transform: scale(.95);
	transform: scale(.95);
}
.footer-navi a figure {
	max-width: 43px;
}
footer aside {
	color: #fff;
	font-size: .875rem;
	padding: 0 35px;
	margin-top: 30px;
}
@media (max-width: 1340px) {
	.footer-ct {
		left: 20px;
		-webkit-transform: unset;
		transform: unset;
	}
}
@media (max-width: 830px) {
	.footer-ct {
		margin: 0 auto 60px;
		position: relative;
		bottom: auto;
		left: auto;
	}
}