@charset "UTF-8";
/* body
---------------------------------------- */
[data-page-type="home"] {
	background: rgb(var(--bg-color-primary));
}

[data-page-type="sub"] {
	background: rgb(var(--bg-color-light));
}

/* header & main & layout
---------------------------------------- */
header, main, footer {
	overflow: hidden;
}

/* header
---------------------------------------- */
.header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 100;
	background: url(../../images/common/bg/bg-washi.webp) center center repeat-x;

	.header__inner {
		max-width: 1360px;
		padding-block: 0;
		margin-inline: auto;
	}

	.header__logo {
		width: fit-content;
		padding-block: 13px;
		padding-inline: var(--layout-inline-gutter);

		.header__logo-img {
			position: relative;
			z-index: 200;
			width: 200px;
		}
	}
}

@media (width >= 811px) {
	.header {
		.header__logo {
			padding-block: 16px;

			.header__logo-img {
				width: 240px;
			}
		}
	}
}

/* layout
---------------------------------------- */
/* wrapper */
.wrapper {
	margin-block: var(--header-height) 0;
}

/* container */
.container {
	max-width: 1360px;
	margin-inline: auto;
	padding-block: var(--layout-block-start) var(--layout-block-end);

	&.container--bg {
		padding-block: var(--space-24) var(--space-28);
	}
}

@media (width >= 960px) {
	.grid {
		display: grid;
		gap: 24px;
	}
}

/* footer
---------------------------------------- */
.footer {
	background: rgb(var(--color-light));

	.footer__content {
		max-width: 1360px;
		margin-block: 0;
		margin-inline: auto;
		padding-block: var(--space-24) var(--space-20);
		padding-inline: var(--layout-inline-gutter);
	}

	.footer__logo {
		margin-block: 0 var(--space-12);
		width: 240px;
	}

	.footer-nav {
		.footer-nav__list {
			display: flex;
			flex-wrap: wrap;
			column-gap: 24px;
			justify-content: flex-end;
			line-height: 1.8;
			list-style: none;

			.footer-nav__item {
				width: 160px;
				margin-block: 0.6em 0;

				&:nth-of-type(2) {
					margin-block: 0.6em 0.4em;
				}

				.footer__shop-btn {
					margin-block: 0 1.2em;
				}
			}

			.footer-nav__sub-list {
				margin-inline: 0.8em 0;
				line-height: 1.6;
				list-style: none;

				.footer-nav__sub-item {
					margin-block: var(--space-04) 0;
				}
			}
		}
	}

	.footer__sns {
		padding-block: var(--space-28) var(--space-16);

		.sns-list {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 20px;
			width: fit-content;
			margin-inline: auto;
			list-style: none;

			.sns-list__item {
				width: clamp(28px,7.8vw,32px);
			}
		}
	}

	.footer__inner {
		background: rgb(var(--color-tertiary));

		.copyright {
			color: rgb(var(--color-light));
			font-weight: 600;
			font-size: var(--font-size-xs);
			line-height: 48px;
			text-align: center;
		}
	}
}

@media (hover:hover) {
	.footer {
		.footer__sns {
			.sns-list__item:hover {
				.sns__image {
					transform: scale(1.1);
					transition: transform 0.1s;
				}
			}
		}
	}
}

/* page top */
.page-top {
	position: fixed;
	right: 12px;
	bottom: 16px;
	z-index: 20;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s, visibility 0.5s;

	&.is-show {
		opacity: 1;
		visibility: visible;
	}

	.page-top__link {
		position: relative;
		display: block;
		width: 36px;
		height: 36px;
		background: rgb(var(--color-dark) / 80%);
		border-radius: 50%;
		text-align: center;
		line-height: 36px;
		font-size: 0;
		transition: background 0.3s ease;

		&::after {
			content: '';
			display: block;
			position: absolute;
			left: 8px;
			top: 12px;
			width: 20px;
			height: 12px;
			margin-inline: auto;
			background: rgb(var(--color-light));
			clip-path: polygon(0 8px, 0 12px, 50% 4px, 100% 12px, 100% 8px, 50% 0);
		}
	}
}

@media (hover:hover) {
	.page-top {
		.page-top__link:hover {
			background: rgb(var(--color-secondary));
			color: rgb(var(--color-light) / 50%);
		}
	}
}

.page-top {
	.page-top__link:active {
		background: rgb(var(--color-secondary));
		color: rgb(var(--color-light) / 50%);
	}
}

@media (width >= 1360px) {
	.page-top {
		right: calc((100% - 1360px + 26px) / 2);
	}
}