/* ========== root ========== */

:root {
	--color-black: rgba(0,0,0,1);
	--color-white: rgba(255,255,255,1);
	--color-text: rgba(51,51,51,1);
	--color-navy: rgba(3,0,70,1);
	--color-gold: rgba(176,163,141,1);
	--color-lightgold: rgba(217,208,183,1);
	--color-bggold: rgba(244,241,234,1);
	--length-base: 40px;
	--length-5: 5px;
	--length-10: 10px;
	--length-15: 15px;
	--length-20: 20px;
	--length-30: 30px;
	--length-40: 40px;
	--length-50: 50px;
	--length-60: 60px;
	--length-70: 70px;
	--length-80: 80px;
	--length-90: 90px;
	--length-100: 100px;
	--length-110: 110px;
	--length-120: 120px;
	--fontsize-xs: 0.75em;
	--fontsize-sm: 0.875em;
	--fontsize-md: 1em;
	--fontsize-lg: 1.125em;
	--fontsize-xl: 1.25em;
	--fontsize-xxl: 1.5em;
	--fontsize-xxxl: 1.75em;
	--lineheight-1: 1;
	--lineheight-sm: 1.333;
	--lineheight-md: 1.75;
	--lineheight-lg: 2;
}

/* ========== base ========== */

* {
	box-sizing: border-box;
}

body {
	display: flex;
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.75;
	color: var(--color-text);
	letter-spacing: 0.05em;
	font-family: "游明朝 Medium", "Yu Mincho Medium", "YuMincho Medium", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
	font-weight: 400;
	font-style: normal;
	font-optical-sizing: auto;
	font-feature-settings: "palt";
	background: var(--color-bggold)
}

img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}

a {
	color: var(--color-gold);
	text-decoration: underline;
}

a:hover {
	text-decoration: none;
}

ul, li, ol {
	list-style-type: none;
}

h2 {
	font-size: 2em;
	font-weight: 700;
}

h3 {
	font-size: 1.8em;
	line-height: var(--lineheight-sm);
	font-weight: 700;
}

.main-content {
	width: 75%;
	overflow: hidden;
}

.wrapper {
	width: 100%;
	padding-left: var(--length-base);
	padding-right: var(--length-base);
}

/* ========== global utility ========== */

/* font-size */
.u-fs-xs { font-size: 0.75rem; }
.u-fs-sm { font-size: 0.875rem; }
.u-fs-md { font-size: 1rem; }
.u-fs-lg { font-size: 1.125rem; }
.u-fs-xl { font-size: 1.25rem; }
.u-fs-xxl { font-size: 1.5rem; }
.u-fs-xxxl { font-size: 1.75rem; }

/* font-weight */
.u-fw-100 { font-weight: 100; }
.u-fw-200 { font-weight: 200; }
.u-fw-300 { font-weight: 300; }
.u-fw-400, .u-fw-normal { font-weight: 400; }
.u-fw-500 { font-weight: 500; }
.u-fw-600 { font-weight: 600; }
.u-fw-700, .u-fw-bold { font-weight: 700; }
.u-fw-800 { font-weight: 800; }
.u-fw-900 { font-weight: 900; }

/* font-family */
.u-ff-shippori { font-family: "Shippori Mincho", serif; }

/* margin-bottom */
.u-mb-xs { margin-bottom: 0.25em; }
.u-mb-sm { margin-bottom: 0.5em; }
.u-mb-md { margin-bottom: 1em; }
.u-mb-lg { margin-bottom: 2em; }
.u-mb-xl { margin-bottom: 3em; }

/* padding */
.u-p-xs { padding: 0.25em; }
.u-p-sm { padding: 0.5em; }
.u-p-md { padding: 1em; }
.u-p-lg { padding: 2em; }

/* text-align */
.u-ta-center { text-align: center; }
.u-ta-left { text-align: left; }
.u-ta-right { text-align: right; }

/* ========== side navigation ========== */

.side-nav {
	align-self: flex-start;
	display: block;
	position: sticky;
	top: 0;
	width: 25%;
	height: 100vh;
	padding: var(--length-base);
	color: var(--color-gold);
	text-align: center;
	background: var(--color-navy)
}

.side-nav a {
	text-decoration: none;
	transition: filter 0.5s;
}

.side-nav a:hover {
	filter: brightness(1.4) drop-shadow(0 0px var(--length-5) rgba(176,163,141,1));
}

.side-nav .side-nav__logo {
	margin: 0 auto;
}

.side-nav .side-nav__logo img {
	width: 70%;
	height: auto;
}

.side-nav .side-nav__menu {
	margin: 3vh 0;
	font-size: var(--fontsize-xl);
	line-height: 5vh;
}

.side-nav .side-nav__social {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--length-20);
	margin-bottom: 3vh;
}

.side-nav .side-nav__social a {
	display: block;
	width: var(--length-40);
}

.side-nav .side-nav__address {
	font-size: var(--fontsize-sm);
}

/* ========== mobile header ========== */

.mobile-header {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: var(--length-10) 0;
	background: linear-gradient(0deg,rgba(244,241,234,0) 0%, rgba(244,241,234,1) 100%);
	z-index: 1000;
}

.mobile-header .wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.mobile-header .mobile-header__logo img {
	width: auto;
	height: 6vw;
}

.mobile-header .hiraku-open-btn {
	padding: var(--length-5);
	border: none;
	border-radius: none;
}

.mobile-header .hiraku-open-btn-line {
	width: var(--length-30);
	background-color: var(--color-gold);
}

.mobile-header [aria-expanded="true"] .hiraku-open-btn-line {
	background-color: transparent;
}

.mobile-header .hiraku-open-btn-line:before {
	top: calc( 0px - var(--length-10) );
	background-color: var(--color-gold);
}

.mobile-header [aria-expanded="true"] .hiraku-open-btn-line:before {
	top: 0;
	width: 34px;
    transform: translate(-2px, 0) rotate(45deg);
}

.mobile-header .hiraku-open-btn .hiraku-open-btn-line:after {
	bottom: calc( 0px - var(--length-10) );
	background-color: var(--color-gold);
}

.mobile-header [aria-expanded="true"] .hiraku-open-btn-line:after {
	top: 0;
	width: 34px;
    transform: translate(-2px, 0) rotate(-45deg);
}

/* ========== drawer menu ========== */

.js-hiraku-offcanvas-body-active .js-hiraku-offcanvas-sidebar-right,
.js-hiraku-offcanvas-body-active .js-hiraku-offcanvas-sidebar-left {
	background: var(--color-navy);
	height: 100dvh !important;
	min-height: 100svh !important;
}

.drawer-menu__inner {
	padding: var(--length-base);
	color: var(--color-gold);
	text-align: center;
}

.drawer-menu__inner a {
	text-decoration: none;
	transition: filter 0.5s;
}

.drawer-menu__inner a:hover {
	filter: brightness(1.4) drop-shadow(0 0px var(--length-5) rgba(176,163,141,1));
}

.drawer-menu__inner .drawer-menu__logo {
	margin: 0 auto;
}

.drawer-menu__inner .drawer-menu__logo img {
	width: 35%;
	height: auto;
}

.drawer-menu__inner .drawer-menu__nav {
	margin: 3vh 0;
	font-size: var(--fontsize-xxl);
	line-height: 5vh;
}

.drawer-menu__inner .drawer-menu__social {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--length-20);
	margin-bottom: 3vh;
}

.drawer-menu__inner .drawer-menu__social a {
	display: block;
	width: var(--length-40);
}

.drawer-menu__inner .drawer-menu__address {
	font-size: var(--fontsize-sm);
}

/* ========== footer ========== */

.footer {
	padding: var(--length-40) 0;
	font-size: var(--fontsize-xs);
	color: var(--color-white);
	background: var(--color-gold);
}

.footer .wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--length-40);
}

.footer .footer__nav ul {
	display: flex;
	gap: var(--length-20);
}

.footer a {
	color: var(--color-white);
}

/* ========== hero section ========== */

.hero {
	position: relative;
	width: 100%;
	height: 100dvh;
}

.hero .hero__slider {
	padding: var(--length-base);
	width: 100%;
	height: calc( 100dvh - 5.5em - var(--length-10) );
}

.hero .hero__slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero .swiper-slide {
	overflow: hidden;
	border-radius: var(--length-80);
}

.hero .hero__text {
	position: absolute;
	bottom: var(--length-base);
	left: var(--length-80);
	z-index: 100;
}

.hero .hero__text-line {
	display: block;
}

.hero .hero__text-line + .hero__text-line {
	margin-top: var(--length-10);
}

.hero .hero__text-inner {
	display: inline-block;
	padding: 0.25em 0.5em;
	color: var(--color-white);
	background: rgba(3,0,70,0.85);
	border-radius: var(--length-5);
}

.hero h1 {
	font-size: 2.5em;
	font-weight: 400;
	line-height: 1;
}

.hero .swiper-horizontal > .swiper-pagination-bullets {
	top: auto;
	bottom: 0;
	left: auto;
	right: var(--length-base);
	width: auto;
	line-height: 0;
}

.hero .swiper-pagination-bullet {
	background: var(--color-gold);
}

.hero .swiper-pagination-bullet-active {
	background: var(--color-gold);
}

/* ========== concept section ========== */

.concept {
	padding-top: var(--length-80);
}

.concept h2{
	margin-bottom: var(--length-120);
	text-align: center;
}

.concept .concept__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.concept .concept__item + .concept__item {
	margin-top: var(--length-40);
}

.concept .concept__item-text {
	position: relative;
	order: 1;
	margin-left: 0;
	margin-right: calc( 0px - var(--length-80) );
	mix-blend-mode: multiply;
	z-index: 1;
}

.concept .concept__item-text h3 {
	margin-bottom: var(--length-10);
}

.concept .concept__item-text p {
	line-height: var(--lineheight-lg);
}

.concept .concept__item:nth-child(even) .concept__item-text {
	order: 2;
	margin-left: calc( 0px - var(--length-80) );
	margin-right: 0;
}

.concept .concept__item-image {
	position: relative;
	order: 2;
	width: 66.666%;
	flex-shrink: 0;
	margin-left: 0;
	margin-right: calc( 0px - var(--length-base) );
	overflow: hidden;
	border-radius: var(--length-80) 0 0 var(--length-80);
}

.concept .concept__item:nth-child(even) .concept__item-image {
	order: 1;
	margin-left: calc( 0px - var(--length-base) );
	margin-right: 0;
	border-radius: 0 var(--length-80) var(--length-80) 0;
}

.concept .concept__item-image:after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, rgba(244,241,234,1) 0%, rgba(244,241,234,0) 50%);
}

.concept .concept__item:nth-child(even) .concept__item-image:after {
	background: linear-gradient(270deg, rgba(244,241,234,1) 0%, rgba(244,241,234,0) 50%);
}

/* ========== experience & cafe section ========== */

.item {
	padding-top: var(--length-120);
}
.item#cafe {
	padding-top: var(--length-80);
}

.item h3 {
	display: flex;
	align-items: center;
	line-height: var(--lineheight-1);
	margin-bottom: var(--length-20);
}

.item h3 span {
	display: inline-block;
	margin-right: var(--length-10);
	padding: 0.25em;
	font-size: var(--fontsize-xs);
	color: var(--color-white);
	background: rgba(3,0,70,0.85);
	border-radius: var(--length-5);
}

.item .item__description {
	margin-bottom: var(--length-40);
}

.item .item__description + .item__description {
	margin-top: calc( 0px - var(--length-30) );
}

.item .item__slider.swiper {
	overflow: visible;
}

.item .swiper-slide {
	font-size: var(--fontsize-sm);
	text-align: center;
}

.item .swiper-slide img {
	margin-bottom: var(--length-10);
	border-radius: var(--length-80) var(--length-80) var(--length-20) var(--length-20);
}

/* ========== info section ========== */

.info {
	padding-top: var(--length-120);
	padding-bottom: var(--length-120);
	text-align: center;
}

.info h3 {
	margin-bottom: var(--length-30);
}

.info .info__map {
	position: relative;
	width: 100%;
	aspect-ratio: 3/1;
	border-radius: var(--length-20);
	overflow: hidden;
}

.info .info__map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.info__details-list {
	margin: auto;
	margin-top: var(--length-30);
	text-align: left;
}

.info__details-list th,
.info__details-list td {
	vertical-align: top;
}

.info__details-list th {
	white-space: nowrap;
	padding-right: 1em;
}

.info__details-list tr + tr th,
.info__details-list tr + tr td {
	padding-top: var(--length-10);
}



/* ========================================
タブレット
======================================== */

@media (max-width: 1024px) {

/* ========== root ========== */

:root {
	--length-base: 30px;
}

/* ========== base ========== */

body {
	display: block;
	font-size: 14px;
}

h3 {
	font-size: 1.6em;
}

.main-content {
	width: 100%;
}

/* ========== side navigation ========== */

.side-nav {
	display: none;
}

/* ========== mobile header ========== */

.mobile-header {
	display: block;
}

/* ========== hero section ========== */

.hero .hero__slider {
	padding-top: calc( 6vw + var(--length-20) );
	width: 100%;
	height: calc( 100dvh - 5.5em - var(--length-10) );
}

/* ========== info section ========== */

.info .info__map {
	aspect-ratio: 2/1;
}

}



/* ========================================
スマホ
======================================== */

@media (max-width: 767px) {

/* ========== root ========== */

:root {
	--length-base: 5vw;
	--length-5: 1vw;
	--length-10: 2vw;
	--length-15: 3vw;
	--length-20: 4vw;
	--length-30: 6vw;
	--length-40: 8vw;
	--length-50: 10vw;
	--length-60: 12vw;
	--length-70: 14vw;
	--length-80: 16vw;
	--length-90: 18vw;
	--length-100: 20vw;
	--length-110: 22vw;
	--length-120: 24vw;
}

/* ========== base ========== */

body {
	display: block;
	font-size: 3.5vw;
}

h2 {
	font-size: 1.4em;
}

h3 {
	font-size: 1.4em;
}

.main-content {
	width: 100%;
}

/* ========== mobile header ========== */

.mobile-header .mobile-header__logo img {
	width: auto;
	height: 10vw;
}

.mobile-header .hiraku-open-btn-line {
	width: var(--length-30);
}

.mobile-header [aria-expanded="true"] .hiraku-open-btn-line:before {
	width: var(--length-40);
}

.mobile-header [aria-expanded="true"] .hiraku-open-btn-line:after {
	width: var(--length-40);
}

/* ========== drawer menu ========== */

.drawer-menu__inner {
	padding-top: var(--length-60);
}

.drawer-menu__inner a {
	text-decoration: none;
	transition: filter 0.5s;
}

.drawer-menu__inner .drawer-menu__logo img {
	width: 50%;
	height: auto;
}

.drawer-menu__inner .drawer-menu__nav {
	margin: 4vh 0;
	font-size: var(--fontsize-xl);
	line-height: 5vh;
}

.drawer-menu__inner .drawer-menu__social {
	margin-bottom: 4vh;
}

.drawer-menu__inner .drawer-menu__social a {
	width: var(--length-40);
}

.drawer-menu__inner .drawer-menu__address {
	font-size: var(--fontsize-sm);
}

/* ========== footer ========== */

.footer .wrapper {
	flex-direction: column;
	gap: var(--length-40);
}

.footer .footer__nav ul {
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: var(--length-10);
}

/* ========== hero section ========== */

.hero .hero__slider {
	padding-top: calc( 10vw + var(--length-20) );
	width: 100%;
	height: calc( 100dvh - 6.75em - var(--length-50) );
}

.hero .hero__text {
	left: var(--length-base);
}

.hero h1 {
	font-size: 1.5em;
}

/* ========== concept section ========== */

.concept {
	padding-top: var(--length-100);
}

.concept .concept__item {
	display: block;
}

.concept .concept__item + .concept__item {
	margin-top: var(--length-40);
}

.concept .concept__item-text {
	margin-left: 0;
	margin-right: 0;
}

.concept .concept__item-text h3 {
	margin-bottom: var(--length-10);
}

.concept .concept__item:nth-child(even) .concept__item-text {
	margin-left: 0;
	margin-right: 0;
}

.concept .concept__item-image {
	width: calc( 100% + var(--length-base) );
	margin-left: 0;
	margin-right: 0;
	margin-bottom: var(--length-20);
}

.concept .concept__item:nth-child(even) .concept__item-image {
	left: calc( 0px - var(--length-base) );
	margin-left: 0;
	margin-right: 0;
}

.concept .concept__item-image:after {
	content: "";
	display: none;
}

/* ========== experience & cafe section ========== */

.item {
	padding-top: var(--length-120);
}
.item#cafe {
	padding-top: var(--length-80);
}

.item h3 {
	display: flex;
	align-items: center;
	line-height: var(--lineheight-1);
	margin-bottom: var(--length-20);
}

.item h3 span {
	display: inline-block;
	margin-right: var(--length-10);
	padding: 0.25em;
	font-size: var(--fontsize-xs);
	color: var(--color-white);
	background: rgba(3,0,70,0.85);
	border-radius: var(--length-5);
}

.item .item__description {
	margin-bottom: var(--length-40);
}

.item .item__description + .item__description {
	margin-top: calc( 0px - var(--length-30) );
}

.item .item__slider.swiper {
	overflow: visible;
}

.item .swiper-slide {
	font-size: var(--fontsize-sm);
	text-align: center;
}

.item .swiper-slide img {
	margin-bottom: var(--length-10);
	border-radius: var(--length-80) var(--length-80) var(--length-20) var(--length-20);
}

/* ========== info section ========== */

.info .info__map {
	aspect-ratio: 3/4;
}

}