@charset "utf-8";

body,p,td,li, h5,h6 {
	font-family: "Noto Sans JP", "Roboto", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size:1rem;
	line-height:1.8em;
}
h1,h2,h3,h4,.h1,.h2,.h3,.h4,.h5,.h6 {
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	line-height:1.5em;
}

.font-g {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
.font-m {
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
.bold {
	font-weight:700;
}
.ex-bold {
	font-weight:800;
}
.baskerville {
	font-family: "Libre Baskerville", serif;
	font-weight: 400;
	font-style: normal;
}
.caslon {
	font-family: "Libre Caslon Text", serif;
	font-weight: 400;
	font-style: normal;
}


.container {
	max-width: 1164px;
}
@media (max-width: 1199.98px) {
	.container {
		padding-right: calc(var(--bs-gutter-x) * 1.5);
		padding-left: calc(var(--bs-gutter-x) * 1.5);
	}
}

/* 文字サイズ
==================================================== */
h1 { font-size:1.5rem; }

@media (min-width: 576px) {
	h1 { font-size:1.8rem;letter-spacing:2px; }
}
@media (min-width: 768px) {
	h1 { font-size:1.8rem; }
}
@media (min-width: 1200px) {
	h1 { font-size:2rem;letter-spacing:2px; }
}
@media (min-width: 1400px) {
	h1 { font-size:2.2rem;letter-spacing:2px; }
}

.fs-18px {
	font-size: clamp(1rem, 0.939rem + 0.26vw, 1.125rem);
}
.fs-20px {
	font-size: clamp(1rem, 0.877rem + 0.52vw, 1.25rem);
}
.fs-22px {
	font-size: clamp(1.125rem, 1.002rem + 0.52vw, 1.375rem);
}
.fs-28px {
	font-size: clamp(1.125rem, 0.898rem + 1.14vw, 1.75rem);
}
.fs-38px {
	font-size: clamp(1.625rem, 1.352rem + 1.36vw, 2.375rem);
}


/* マージン、パディング
==================================================== */
.mt-40, .my-40 { margin-top:40px; }
.mb-40, .my-40 { margin-bottom:40px; }
.ms-40, .mx-40 { margin-left: 40px; }
.me-40, .mx-40 { margin-right: 40px; }
.pt-40, .py-40 { padding-top:40px; }
.pb-40, .py-40 { padding-bottom:40px; }
.ps-40, .px-40 { padding-left:40px; }
.pe-40, .px-40 { padding-right:40px; }
.mt-80, .my-80 { margin-top:80px; }
.mb-80, .my-80 { margin-bottom:80px; }
.ms-80, .mx-80 { margin-left:calc(80 / 1140 * 100vw); }
.me-80, .mx-80 { margin-right:calc(80 / 1140 * 100vw); }
.pt-80, .py-80 { padding-top:80px; }
.pb-80, .py-80 { padding-bottom:80px; }
.ps-80, .px-80 { padding-left:calc(80 / 1140 * 100vw); }
.pe-80, .px-80 { padding-right:calc(80 / 1140 * 100vw); }
.mt-110, .my-110 { margin-top:110px; }
.mb-110, .my-110 { margin-bottom:110px; }
.pt-110, .py-110 { padding-top:110px; }
.pb-110, .py-110 { padding-bottom:110px; }
.ps-110, .px-110 { padding-left: 110px; }
.pe-110, .px-110 { padding-right: 110px; }

@media (max-width: 767.98px) {
	.mt-40, .my-40, .mt-80, .my-80 { margin-top:30px; }
	.mb-40, .my-40, .mb-80, .my-80 { margin-bottom:30px; }
	.mt-110, .my-110 { margin-top:60px; }
	.mb-110, .my-110 { margin-bottom:60px; }
	.ms-40, .mx-40, .ms-80, .mx-80 { margin-left: calc(1.5rem * 1.5); }
	.me-40, .mx-40, .me-80, .mx-80 { margin-right: calc(1.5rem * 1.5); }
	.pt-40, .py-40, .pt-80, .py-80 { padding-top:30px; }
	.pb-40, .py-40, .pb-80, .py-80 { padding-bottom:30px; }
	.ps-40, .px-40, .ps-80, .px-80 { padding-left:calc(1.5rem * 1.5); }
	.pe-40, .px-40, .pe-80, .px-80 { padding-right:calc(1.5rem * 1.5); }
	.pt-110, .py-110 { padding-top:60px; }
	.pb-110, .py-110 { padding-bottom:60px; }
	.ps-110, .px-110 { padding-left:40px; }
	.pe-110, .px-110 { padding-right:40px; }
	
	/* ネガティブマージン */
	.nmt-40, .nmt-80 { margin-top:-30px; }
	.nmt-110 { margin-top:-60px; }
}

.lh-1 { line-height: 1em; }
.lh-2 { line-height: 2em; }
.lh-3 { line-height: 3em; }


/* リンク
==================================================== */
a {
	color: #231815;
}
a.fax {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}
@media (min-width: 992px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}

/* Loading
==================================================== */
#loading {
	width: 100svw;
	height: 100svh;
	transition: all 1s;
	background-color: #060b0f;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	opacity: 1;
	visibility: visible;
}
#loading.is-active {
	opacity: 0;
	visibility: hidden;
}
#loadingAnimation {
	width: 100svw;
	height: 100svh;
	transition: all 1s;
	background-color: #c5171e;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
}
#loadingAnimation.is-active {
	opacity: 1;
	visibility: visible;
}


/* Header
==================================================== */
:root {
	--header-height:50px;
}
@media (min-width: 992px) {
	:root {
		--header-height:100px;
	}
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-height);
}
body {
	background-color: #fff;
	color: #231815;
	padding-top: var(--header-height);
}

.set_color { color: #a97d56; }

.set_text { color: #efefef; }

.btn_gold { 
	background-color: #a97d56 !important;
	color: #fff !important;
}

.btn-original.btn_gold:hover span {
  color: #a97d56;
}
.btn-original.btn_gold:hover .btn-original-circle {
  border: 1px solid #a97d56;
}

	#globalHeader {}
#globalHeader .navbar {
	height: var(--header-height);
}
#globalHeader .navbar-brand {
	width: calc(340 / 750 * 100vw);
	max-width: 340px;
}
#globalHeader .navbar-tel {
	width: 18px;
}
#globalHeader .navbar-mail {
	width: 25px;
}
#globalHeader .navbar-toggler {
	width: 22px;
}
@media (min-width: 992px) {
	#globalHeader .navbar-brand {
		width: calc(396 / 1140 * 100vw);
		max-width: 396px;
	}
	#globalHeader .navbar-tel {
		width: 36px;
	}
	#globalHeader .navbar-mail {
		width: 50px;
	}
	#globalHeader .navbar-toggler {
		width: 42px;
	}
}


/* Main
==================================================== */
#main {}

/* Footer
==================================================== */
#globalFooter {}


/* トップへ戻る
==================================================== */
a.page-top {
	position:fixed;
	bottom:60px;
	right:10px;
	opacity:0.5;
	display:block;
}
a.page-top:hover {
	opacity:0.7;
}


/* TOP page
==================================================== */
#firstview {}
@media (min-width: 576px) {
	#firstview .object-fit-cover {
		max-height: calc(100vh - var(--header-height) - 1rem);
	}
}

/* 縦書き */
.tategaki {
	-webkit-writing-mode: vertical-rl;
	-moz-writing-mode: vertical-rl;
	-ms-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
	display: inline-block;
	hanging-punctuation: allow-end;
}

/* テキスト表示アニメーション */
.animeTitle {
	overflow: hidden;
	transform: translate(-100%, 0);
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
	transition-delay: 1s;
}
.tategaki .animeTitle {
	transform: translate(0, -100%);
}
.animeTitle span {
	display: block;
	transform: translate(100%, 0);
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
	transition-delay: 1s;
}
.tategaki .animeTitle span {
	transform: translate(0, 100%);
}
.animeTitle.is-show,
.animeTitle.is-show span {
	transform: translate(0, 0);
}
.animeSentence {
	overflow: hidden;
	transform: translate(-100%, 0);
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
	transition-delay: 1s;
}
.animeSentence span {
	display: block;
	transform: translate(100%, 0);
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
	transition-delay: 1s;
}
.animeSentence.is-show,
.animeSentence.is-show span {
	transform: translate(0, 0);
}

/* パララックス */
.parallax {
	width: 100%;
	min-height: 35vh;
	overflow: hidden;
	position: relative;
}
.parallax .parallax__img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-clip-path: inset(0);
	clip-path: inset(0);
}
.parallax .parallax__img .parallax__img--photo {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

/* ボーダーアニメーション */
.border-anim {
	position: relative;
	padding-bottom: 10px;
	--border-anim-color:#a97d56;
}
.border-anim.is-show::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	border-bottom: solid 1px var(--border-anim-color);
	animation-name: borderAnim;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
	animation-timing-function: ease;
	animation-delay: 1.8s;
}
@keyframes borderAnim {
	0%{
		width: 0%;
	}
	100%{
		width: 100%;
	}
}

/* スマホで横幅いっぱい */
@media (max-width: 767.98px) {
	.sp-wide-img {
		margin-left: calc(var(--bs-gutter-x) * -1.5);
		margin-right: calc(var(--bs-gutter-x) * -1.5);
	}
}

/* ボタン */
.btn-danger {
	--bs-btn-bg: #e60012;
	--bs-btn-border-color: #e60012;
	--bs-btn-hover-color: #e60012;
	--bs-btn-disabled-bg: #e60012;
	--bs-btn-disabled-border-color: #e60012;
}
.btn-light {
	--bs-btn-color: #e60012;
	--bs-btn-bg: #e9eaea;
	--bs-btn-border-color: #e9eaea;
	--bs-btn-hover-color: #e60012;
	--bs-btn-active-color: #e60012;
	--bs-btn-active-bg: #e9eaea;
	--bs-btn-active-border-color: #e9eaea;
	--bs-btn-disabled-color: #e60012;
	--bs-btn-disabled-bg: #e9eaea;
	--bs-btn-disabled-border-color: #e9eaea;
}
.btn-lg {
	--bs-btn-font-size:1.5rem;
	--bs-btn-padding-y:0.7rem;
}
.btn-original {
	display: block;
	border-radius: 100px;
	font-size: clamp(1rem, 0.877rem + 0.52vw, 1.25rem);
	line-height: 2.6em;
	padding: 0 3em;
	position: relative;
	overflow: hidden;
}
.btn-original span:not(.btn-original-circle):not(.btn-original-arrow) {
	position: relative;
	z-index: 1;
}
.btn-original-circle {
	display: block;
	border-radius: 100px;
	width: 2em;
	height: 2em;
	position: absolute;
	top: calc(50% - 1em);
	right: 0.3em;
	z-index: 0;
	transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-original-arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 2em;
	height: 2em;
	position: absolute;
	top: calc(50% - 1em);
	right: 0.3em;
	transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) {
	.btn-original.btn-danger {
		--bs-btn-hover-color: #e60012;
		--bs-btn-active-color: #e60012;
	}
	.btn-original.btn-light {
		--bs-btn-hover-color: #FFF;
		--bs-btn-hover-border-color: #e60012;
		--bs-btn-active-color: #FFF;
	}
	.btn-original:hover .btn-original-circle {
		transform: scale(30);
	}
	.btn-original:hover .btn-original-arrow {
		transform: translateX(0.2em);
	}
}


/* 1枚画像の横スクロール */
@keyframes infinity-scroll-left {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
.scroll-infinity__wrap {
	display: flex;
	overflow: hidden;
}
.scroll-infinity__list {
	display: flex;
	list-style: none;
	padding: 0
}
.scroll-infinity__list--left {
	animation: infinity-scroll-left 80s infinite linear 0.5s both;
}
.scroll-infinity__item {
	width: auto;
	height: 130px;
}
.scroll-infinity__item>img {
	width: auto;
	height: 100%;
}
@keyframes infinity-scroll-right {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(0%);
	}
}
.scroll-infinity__list--right{
	animation :infinity-scroll-right 80s infinite linear 0.5s both;
}
@media (min-width: 768px) {
	.scroll-infinity__item {
		height: 250px;
	}
}


/* 下層ページ
==================================================== */
#pageHeader {
}
.pageTitle {
}
.pageTitle span {
}
.pageTitle__en {
}
.pageTitle__ja {
}


/* Swiper
==================================================== */
/* スライダーのwrapper */
.infinite-slider .swiper-wrapper {
	transition-timing-function: linear;
}
/* firstview */
.infinite-slider .swiper-slide {
	width: 80vw !important;
	max-width: 324px !important;
}
@media (min-width: 992px) {
	.infinite-slider .swiper-slide {
		width: calc(545 / 1140 * 100vw) !important;
		max-width: 545px !important;
	}
}
/* オンラインショップ */
.item-slider .swiper-slide {
	width: 240px !important;
	height: auto !important;
	margin-right: 20px;
}
.item-slider .swiper-controller {
	position: absolute;
	width: 100svw;
	top: 50%;
	left: calc(50% - 50svw);
}
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
	opacity: 0;
}


/* inview
==================================================== */
.fadeIn {
	opacity: 0;
}
.fadeIn.is-show {
	animation-name:fadeInAnime;
	animation-duration:.8s;
	animation-fill-mode:forwards;
	animation-timing-function:ease;
	animation-delay: 1.2s;
}
@keyframes fadeInAnime{
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.fadeUp {
	opacity: 0;
}
.fadeUp.is-show {
	animation-name:fadeUpAnime;
	animation-duration:.8s;
	animation-fill-mode:forwards;
	animation-timing-function:ease-out;
	animation-delay: 1.2s;
}
@keyframes fadeUpAnime{
	from {
		opacity: 0;
		transform: translateY(50px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}


/* Q&A
==================================================== */
.accordion {
	--bs-accordion-color:#231815;
	--bs-accordion-btn-bg:transparent;
	--bs-accordion-bg:transparent;
	--bs-accordion-border-color:#231815;
	--bs-accordion-btn-color:#231815;
	--bs-accordion-btn-icon-width:2rem;
	--bs-accordion-active-bg:transparent;
	--bs-accordion-btn-padding-y:1.5rem;
}
.accordion-button::after {
	--bs-accordion-btn-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iIzIzMTgxNSIgY2xhc3M9ImJpIGJpLXBsdXMtbGciIHZpZXdCb3g9IjAgMCAxNiAxNiI+DQogIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTggMmEuNS41IDAgMCAxIC41LjV2NWg1YS41LjUgMCAwIDEgMCAxaC01djVhLjUuNSAwIDAgMS0xIDB2LTVoLTVhLjUuNSAwIDAgMSAwLTFoNXYtNUEuNS41IDAgMCAxIDggMiIvPg0KPC9zdmc+");
	--bs-accordion-btn-active-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iIzIzMTgxNSIgY2xhc3M9ImJpIGJpLWRhc2gtbGciIHZpZXdCb3g9IjAgMCAxNiAxNiI+DQogIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIgOGEuNS41IDAgMCAxIC41LS41aDExYS41LjUgMCAwIDEgMCAxaC0xMUEuNS41IDAgMCAxIDIgOCIvPg0KPC9zdmc+");
}
.accordion-button:focus {
	box-shadow: none;
}
.accordion-button:not(.collapsed) {
	box-shadow: none;
}


/* メディアクエリ
==================================================== */
/*
// X-Small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap

// Small devices (landscape phones, 576px and up)
*/
@media (min-width: 576px) {}

/*// Medium devices (tablets, 768px and up)*/
@media (min-width: 768px) {}

/*// Large devices (desktops, 992px and up)*/
@media (min-width: 992px) {}

/*// X-Large devices (large desktops, 1200px and up)*/
@media (min-width: 1200px) {}

/*// XX-Large devices (larger desktops, 1400px and up)*/
@media (min-width: 1400px) {}


/*// X-Small devices (portrait phones, less than 576px)*/
@media (max-width: 575.98px) {}

/*// Small devices (landscape phones, less than 768px)*/
@media (max-width: 767.98px) {}

/*// Medium devices (tablets, less than 992px)*/
@media (max-width: 991.98px) {}

/*// Large devices (desktops, less than 1200px)*/
@media (max-width: 1199.98px) {}

/*// X-Large devices (large desktops, less than 1400px)*/
@media (max-width: 1399.98px) {}
