/* ==========================================================================
   base
========================================================================== */
body {
	position: relative;
	width: 100%;
	font-family: YakuHanJPs, "Zen Kaku Gothic New", sans-serif;
	font-size: 3.7333vw;
	font-weight: 400;
	font-style: normal;
	line-height: 1.85;
	letter-spacing: .08em;
}

body::before {
	content: "";
	width: 100vw;
	height: 100vh;
	background: url(../images/common/bg.webp) no-repeat;
	background-size: cover;
	background-position: 62.5% 50%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
}

img {
	display: block;
	width: 100%;
}


/* ==========================================================================
   common
========================================================================== */
.c-mt-s {
	margin-top: 6.6666vw;
}

.c-mt-m {
	margin-top: 10.6666vw;
}

.c-inner {
	padding: 0 7.4666vw;
}

@media screen and (min-width: 581px) {
	
	.c-mt-s {
		margin-top: 30px;
	}
	
	.c-mt-m {
		margin-top: 50px;
	}
	
	.c-inner {
		padding: 0 32px;
	}
}


/* ==========================================================================
   l-toggle
========================================================================== */
.l-toggle {
	position: fixed;
	top: 15px;
	left: 20px;
	z-index: 100;
}

.l-toggle__inner {
	position: relative;
	width: 30px;
	height: 7px;
}

.l-toggle__inner span {
	position: absolute;
	left: 0;
	width: 100%;
	display: block;
	background: #000;
}

.l-toggle__inner span:nth-child(1) {
	top: 0;
	height: 3px;
}

.l-toggle__inner span:nth-child(2) {
	bottom: 0;
	height: 1px;
}

.l-toggle__text {
	font-family: "Times New Roman", Times, "serif";
	font-size: 10px;
	margin-top: 2px;
	text-align: center;
}

@media screen and (min-width: 581px) {
	.l-toggle {
		left: auto;
		right: 30px;
	}
}

@media screen and (min-width: 1081px) {
	.l-toggle {
		display: none;
	}
}


/* ==========================================================================
   l-drawer
========================================================================== */
.l-drawer {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f2eede;
	opacity: 0;
    visibility: hidden;
	transition: all .5s;
	z-index: 90;
}

.l-drawer.is-open {
	opacity: 1;
	visibility: visible;
}

.l-drawer__menu li {
	font-family: "Times New Roman", Times, "serif";
	font-size: 14px;
	text-align: center;
}

.l-drawer__menu li + li {
	margin-top: 20px;
}

@media screen and (min-width: 581px) {
	
	.l-drawer__menu li {
		font-size: 16px;
	}
	
	.l-drawer__menu li + li {
		margin-top: 30px;
	}
}

@media screen and (min-width: 1081px) {
	.l-drawer {
		display: none;
	}
}


/* ==========================================================================
   l-cta
========================================================================== */
.l-cta {
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
	display: flex;
	gap: 5px;
	padding: 8px;
	z-index: 80;
}

@media screen and (min-width: 581px) {
	
	.l-cta {
		max-width: 400px;
	}
}

@media screen and (min-width: 769px) {
	
	.l-cta {
		max-width: 450px;
		margin: 0 auto 0 10vw;
	}
}

@media screen and (min-width: 1081px) {
	
	.l-cta {
		left: auto;
		right: 40px;
		bottom: 20px;
		max-width: 450px;
		margin: 0;
		padding: 0;
	}
}


/* ==========================================================================
   l-content
========================================================================== */
.l-content {
	display: block;
	width: 100%;
	background: #fff;
}

@media screen and (min-width: 581px) {
	
	.l-content {
		max-width: 430px;
		padding: 0 5px;
	}
}

@media screen and (min-width: 769px) {
	
	.l-content {
		margin: 0 auto 0 10vw;
	}
}

@media screen and (min-width: 1081px) {
	
	.l-content {
		margin: 0 auto 0 15vw;
	}
}


/* ==========================================================================
   l-header
========================================================================== */
.l-header {
	position: fixed;
	top: 40px;
	right: 40px;
	display: none;
}

.l-header__menu li {
	font-family: "Times New Roman", Times, "serif";
	font-size: 13px;
	letter-spacing: .1em;
	text-align: right;
}

@media screen and (min-width: 1081px) {
	
	.l-header {
		display: block;
	}
}


/* ==========================================================================
   l-footer
========================================================================== */
.l-footer {
	padding-bottom: 26.6666vw;
}

@media screen and (min-width: 581px) {
	
	.l-footer {
		padding-bottom: 120px;
	}
}

@media screen and (min-width: 1081px) {
	
	.l-footer {
		padding-bottom: 60px;
	}
}


/* ==========================================================================
   #recommend
========================================================================== */
.p-recommend__menu-cta {
	padding: 0 7.4666vw;
}

.p-recommend__menu-cta a {
	display: block;
	width: 80%;
}

.p-recommend__menu-cta a + a {
	margin-top: 2.1333vw;
}

@media screen and (min-width: 581px) {
	
	.p-recommend__menu-cta {
		padding: 0 30px;
	}
	
	.p-recommend__menu-cta a + a {
		margin-top: 8px;
	}
}


/* ==========================================================================
   #faq
========================================================================== */
.c-accordion {
	position: relative;
}

.c-accordion + .c-accordion {
	margin-top: 4vw;
}

.accordion__input {
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	position: absolute;
	top: 0;
	left: 0;
}

.accordion__label {
	position: relative;
	width: 100%;
	display: block;
	cursor: pointer;
	transition: 0.4s ease;
}

.accordion__label::before {
	position: absolute;
	content: '+';
	top: 5.3333vw;
	right: 9.3333vw;
	font-size: 16px;
	font-weight: 700;
}

.accordion__conte {
	position: relative;
	overflow: hidden;
	height: 0;
	margin: 0;
	transition: 0.4s ease;
	opacity: 0;
}

.accordion__input:checked ~ .accordion__conte {
	height: auto;
	opacity: 1;
	padding-bottom: 4vw;
}

.accordion__input:checked ~ .accordion__label::before {
	content: '-';
}

@media screen and (min-width: 581px) {
	
	.c-accordion + .c-accordion {
		margin-top: 10px;
	}
	
	.accordion__label::before {
		top: 25px;
		right: 35px;
		font-weight: 700;
	}
	
	.accordion__input:checked ~ .accordion__conte {
		padding-bottom: 10px;
	}
}


/* ==========================================================================
   #staff
========================================================================== */
.p-staff__item {
	position: relative;
}

.p-staff__item a {
	position: absolute;
	top: 26.6666vw;
	right: 8vw;
	width: 8.5333vw;
}

@media screen and (min-width: 581px) {
	
	.p-staff__item a {
		top: 120px;
		right: 35px;
		width: 32px;
		height: 32px;
	}
}


/* ==========================================================================
   #stories
========================================================================== */
.p-stories__slide {
	position: relative;
	margin-top: 10.6666vw;
	padding-top: 10.6666vw;
}

.p-stories__slide::before {
	position: absolute;
	content: '';
	top: 0;
	right: 0;
	width: 80%;
	height: 400px;
	background: #f2eede;
}

.p-stories__slide .swiper {
	padding-top: 60px;
}

.p-stories__slide .swiper-nav {
	position: absolute;
	top: 0;
	left: 6.6666vw;
	width: 165px;
	height: 36px;
}

.p-stories__slide .swiper-button-next,
.p-stories__slide .swiper-button-prev {
	top: 0;
	width: 80px;
	height: 36px;
	background: #dbc6b7;
	border-radius: 18px;
	margin-top: 0;
}

.p-stories__slide .swiper-button-next {
	right: 0;
}

.p-stories__slide .swiper-button-prev {
	left: 0;
}

.swiper-button-next::after,
.swiper-button-prev::after {
	color: #fff;
	font-size: 15px;
}

@media screen and (min-width: 581px) {
	
	.p-stories__slide {
		margin-top: 40px;
		padding-top: 40px;
	}
	
	.p-stories__slide .swiper {
		padding-top: 50px;
	}
	
	.p-stories__slide .swiper-nav {
		left: 30px;
		width: 200px;
		height: 40px;
	}
	
	.p-stories__slide .swiper-button-next,
	.p-stories__slide .swiper-button-prev {
		width: 95px;
		height: 40px;
		border-radius: 20px;
	}
}








