:root {
	--sp: 820px;
	--container-width: 1280px;
	--header-height: 70px;
	--font-yuji: "Yuji Syuku", serif;
	--font-zen: "Zen Old Mincho", serif;
	--color-light-gray: #6d6c6a;
	--color-dark-gray: #1e1e1e;
	--color-green: #486664;
	--transition-timing: 0.8s;
	--default-opacity: 0.6;
	--10px: 0.625rem;
	--11px: 0.6875rem;
	--12px: 0.75rem;
	--13px: 0.8125rem;
	--14px: 0.875rem;
	--15px: 0.9375rem;
	--16px: 1rem;
	--17px: 1.0625rem;
	--18px: 1.125rem;
	--19px: 1.1875rem;
	--20px: 1.25rem;
	--21px: 1.3125rem;
	--22px: 1.375rem;
	--23px: 1.4375rem;
	--24px: 1.5rem;
	--25px: 1.5625rem;
	--26px: 1.625rem;
	--30px: 1.875rem;
	--32px: 2rem;
	--34px: 2.125rem;
	--36px: 2.25rem;
	--40px: 2.5rem;
	--48px: 3rem;
	--55px: 3.4375rem;
	@media screen and (max-width: 820px) {
		--calc: 780 * 100vw;
		--container-width: calc((620 / var(--calc)));
		--header-height: calc((45 / var(--calc)));
	}
}
body {
	font-family: var(--font-zen);
	margin: 0;
	padding: 0;
	scrollbar-gutter: stable;
	&.fixed {
		width: 100%;
		position: fixed;
		overflow: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
  *,
  ::before,
  ::after {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}

a {
	text-decoration: none;
}

h1,h2,h3,h4 {
	font-weight: 400;
}

.view-sp,
.view-sp-inline {
	display: none!important;
}
@media screen and (max-width: 820px) {
	.view-pc {
		display: none!important;
	}
	.view-sp {
		display: block;
	}
	.view-sp-inline {
		display: inline;
	}
}

.textwrap {
	color: currentColor;
	display: flex;
	flex-direction: column;
	.sub-text {
		font-size: 0.292em;
		@media screen and (max-width: 820px) {
			font-size: 0.423em;
		}
	}
}

.tel-link {
	pointer-events: none;
	@media screen and (max-width: 820px) {
		pointer-events: auto;
	}
}
.tel-wrapper {
	width: max-content;
	display: flex;
	gap: 15px;
	align-items: center;
	.tel-icon {
		width: 55px;
		flex-shrink: 0;
	}
	.tel-number {
		color: #ffffff;
		font-size: 56px;
		font-weight: 700;
		line-height: 1;
	}
}

.ig-withtext {
	writing-mode: vertical-rl;
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-yuji);
	.ig-withtext-text {
		color: #ffffff;
		font-size: 14px;
	}
	.ig-withtext-icon {
		width: 16px;
		height: 16px;
		flex-shrink: 0;
	}
}

.img-single {
	width: min(90%, var(--container-width));
	margin-inline: auto;
}

.img-text-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	margin-bottom: 80px;
}

/* Box elements */
.box-img img {
	width: 100%;
	height: auto;
	display: block;
}

.box-title,
.box-text {
	text-align: left;
	margin-top: 20px;
}

.box-title {
	font-size: var(--30px);
	margin-left: 50px;
	padding: 1em 0.6em;
	border-block: 1px solid var(--color-light-gray);
}
.box-text {
	font-size: var(--18px);
	line-height: 2.16;
}

@media (min-width: 821px) {
	.img-text-box {
		justify-content: flex-end;
        align-items: flex-start;
        margin-bottom: 0;
		&:nth-of-type(2n) {
			justify-content: flex-start;
		}
    }

    /* 各要素の幅設定 */
    .box-img {
        width: 600px;
        flex-shrink: 0;
    }

    .box-title,
    .box-text {
        margin-top: 0;
        flex-shrink: 0;
    }

    /* 1️⃣ 1番目: [box-img] 余白80px [box-text][box-title] 余白 */
    .img-text-box:nth-of-type(2n+1) .box-img {
        order: 3;
        margin-right: 80px;
    }
    .img-text-box:nth-of-type(2n+1) .box-text {
        order: 2;
    }
    .img-text-box:nth-of-type(2n+1) .box-title {
        order: 1;
    }

    /* 2️⃣ 2番目: 余白 [box-text][box-title] 余白80px [box-img] */
    .img-text-box:nth-of-type(2n) .box-img {
        order: 1;
        margin-left: 80px;
    }
    .img-text-box:nth-of-type(2n) .box-text {
        order: 3;
    }
    .img-text-box:nth-of-type(2n) .box-title {
        order: 2;
    }
}

@media (max-width: 820px) {
	.img-text-box {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: flex-start;
		margin-bottom: 0;
	}

	/* Widths based on the 780 px reference */
	.box-img {
		width: calc(500 / 780 * 100vw);
	}
	.box-title {
		width: calc(150 / 780 * 100vw);
	}
	.box-text {
		width: calc(620 / 780 * 100vw);
	}

    /* Reset margins */
    .box-img,
    .box-title,
    .box-text {
        margin: 0;
    }

    /* 1️⃣ 1番目: [box-img] 余白50 [box-title] 余白80 改行 余白80 [box-text] 余白80 */
    .img-text-box:nth-of-type(2n+1) .box-img {
        order: 1;
        margin-right: calc(50 / 780 * 100vw);
    }
    .img-text-box:nth-of-type(2n+1) .box-title {
        order: 2;
        margin-bottom: calc(80 / 780 * 100vw);
    }
    .img-text-box:nth-of-type(2n+1) .box-text {
        order: 3;
        margin-left: calc(80 / 780 * 100vw);
        margin-bottom: calc(80 / 780 * 100vw);
    }

    /* 2️⃣ 2番目: 余白80 [box-title] 余白50 [box-img] 改行 余白80 [box-text] 余白80 */
    .img-text-box:nth-of-type(2n) .box-img {
        order: 2;
        margin-bottom: calc(80 / 780 * 100vw);
    }
    .img-text-box:nth-of-type(2n) .box-title {
        order: 1;
        margin-left: calc(80 / 780 * 100vw);
        margin-right: calc(50 / 780 * 100vw);
    }
    .img-text-box:nth-of-type(2n) .box-text {
        order: 3;
        margin-left: calc(80 / 780 * 100vw);
        margin-bottom: calc(80 / 780 * 100vw);
    }
}

.caption {
	font-size: 0.67em;
}

.gallery-column1 {
	width: 1200px;
}
.gallery-column2,
.gallery-column3 {
	width: 100%;
	display: flex;
	justify-content: center;
}
.gallery-column2 {
	gap: 80px;
	.gallery-img {
		width: 600px;
	}
}
.gallery-column3 {
	gap: 85px;
	.gallery-img {
		width: 370px;
	}
}

/* animation */
.js-text span {
	transition: opacity var(--transition-timing) ease;
	opacity: 0;
}

.js-fadein {
	transition: opacity var(--transition-timing) ease, transform var(--transition-timing) ease;
	opacity: 0;
	transform: translateY(30px);
	&.go-anim {
		opacity: 1;
		transform: none;
	}
}

.about-content .js-fadein:is(p) {
	transition: opacity var(--transition-timing) 1.2s ease, transform var(--transition-timing) 1.2s ease;
}

:is(.about-point,.menu-content,.shop-content) .js-fadein:is(p) {
	transition: opacity var(--transition-timing) 0.4s ease, transform var(--transition-timing) 0.4s ease;
}