@charset "utf-8";

:root {
	--bg-base: #FBF9F5;
	--bg-band: #EFEDE8;
	--bg-card: #FFFFFF;
	--ink: #3C332B;
	--ink-body: #4A4239;
	--ink-muted: #8A8175;
	--wood: #8B6A45;
	--line: #DCD6CB;
	--line-soft: #E8E3DA;
	--bad: #A2432F;
	--radius: 6px;
	--pill: 999px;
	--font-en: "EB Garamond", "Times New Roman", serif;
	--font-body: "Shippori Mincho B1", "EB Garamond", Georgia, serif;
	--wrap: 1180px;
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--bg-base);
	color: var(--ink-body);
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.9;
	letter-spacing: .02em;
	-webkit-font-smoothing: antialiased;
}

body.is-locked {
	overflow: hidden;
}

h1, h2, h3 {
	color: var(--ink);
	font-weight: 600;
	line-height: 1.5;
}

a {
	text-decoration: none;
	transition: opacity .25s;
}

a:hover {
	opacity: .7;
}

.keep {
	display: inline-block;
}

.dib {
	display: inline-block;
}

br.pc {
	display: none;
}

.not {
	flex-shrink: 0;
}

.fixedContent {
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 0 20px;
}

.module {
	padding: 56px 0;
}

.module.-flat {
	padding-top: 8px;
}

.module.-soft {
	background: #F6F3EE;
}

.mod_band {
	background: var(--bg-band);
}

.side {
	display: none;
}

/* ---------- drawer ---------- */

.toggle-menu__checkbox {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.toggle-menu__button {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 63;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--bg-base);
	border: 1px solid var(--line);
}

.toggle-menu__button label {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	cursor: pointer;
	gap: 9px;
}

.toggle-menu__button-line {
	position: relative;
	display: block;
	width: 18px;
	height: 1.5px;
	margin-top: 6px;
	background: var(--ink);
	transition: background .2s;
}

.toggle-menu__button-line::before,
.toggle-menu__button-line::after {
	content: "";
	position: absolute;
	left: 0;
	width: 18px;
	height: 1.5px;
	background: var(--ink);
	transition: transform .25s, top .25s;
}

.toggle-menu__button-line::before {
	top: -6px;
}

.toggle-menu__button-line::after {
	top: 6px;
}

.toggle-menu__button-text {
	font-family: var(--font-en);
	font-size: 8px;
	line-height: 1;
	letter-spacing: .12em;
	color: var(--ink);
}

.toggle-menu__checkbox:checked ~ .toggle-menu__button.-cross .toggle-menu__button-line {
	background: transparent;
}

.toggle-menu__checkbox:checked ~ .toggle-menu__button.-cross .toggle-menu__button-line::before {
	top: 0;
	transform: rotate(45deg);
}

.toggle-menu__checkbox:checked ~ .toggle-menu__button.-cross .toggle-menu__button-line::after {
	top: 0;
	transform: rotate(-45deg);
}

.toggle-menu__nav {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	z-index: 62;
	width: 84%;
	max-width: 340px;
	overflow-y: auto;
	padding: 78px 24px 36px;
	background: var(--bg-base);
	transform: translateX(-104%);
	transition: transform .3s ease;
}

.toggle-menu.-left .toggle-menu__checkbox:checked ~ .toggle-menu__nav {
	transform: translateX(0);
}

.toggle-menu__nav-item + .toggle-menu__nav-item {
	margin-top: 22px;
}

.d-nav li a {
	display: block;
	padding: 12px 2px;
	border-bottom: 1px solid var(--line-soft);
	color: var(--ink);
	font-size: 15px;
}

.d-nav li a.is-current {
	color: var(--wood);
}

.contentslist {
	margin: 0;
	padding: 0;
}

.d-links li a {
	display: block;
	padding: 5px 0;
	font-size: 13px;
	color: var(--ink-muted);
}

.d-tel {
	margin-top: 18px;
}

.d-tel a {
	font-size: 17px;
	font-weight: 600;
	color: var(--ink);
}

.toggle-menu__overlay {
	position: fixed;
	inset: 0;
	z-index: 61;
	display: none;
	background: rgba(40, 32, 24, .42);
}

.toggle-menu__checkbox:checked ~ .toggle-menu__overlay {
	display: block;
}

/* ---------- header ---------- */

.header__sp {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 68px;
	padding: 0 64px;
}

.header__spLogo img {
	width: auto;
	height: 44px;
}

.header__spLogo img,
.g-nav__logo img,
.f-info__logo img {
	filter: brightness(0);
}

.cartpill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--ink);
	transition: opacity .25s;
}

.cartpill:hover {
	opacity: .7;
}

.cartpill.-sp {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 46px;
	height: 46px;
	justify-content: center;
	border: 1px solid var(--line);
	border-radius: 50%;
	transform: translateY(-50%);
}

.cartpill__count {
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: var(--pill);
	background: var(--wood);
	color: #fff;
	font-size: 11px;
	line-height: 19px;
	text-align: center;
	font-family: var(--font-en);
}

.cartpill.-sp .cartpill__count {
	position: absolute;
	top: -3px;
	right: -3px;
}

.header__top,
.header__nav {
	display: none;
}

/* ---------- footer ---------- */

.footer.-type01 {
	border-top: 1px solid var(--line);
	background: var(--bg-base);
}

.footer__contentsInner {
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 52px 20px 40px;
	display: grid;
	gap: 36px;
}

.f-info__logo img {
	width: 150px;
}

.f-info__add {
	margin-top: 18px;
	font-size: 13.5px;
	line-height: 2;
}

.f-info__addTxt {
	color: var(--ink);
}

.f-info__tel a,
.f-info__mail a {
	border-bottom: 1px solid var(--line);
}

.f-info__note {
	margin-top: 8px;
	font-size: 12px;
	color: var(--ink-muted);
}

.f-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px 16px;
}

.f-nav li a {
	display: inline-block;
	padding-left: 9px;
	border-left: 1px solid var(--ink);
	font-size: 13px;
	line-height: 1.5;
	color: var(--ink);
}

.footer__txt {
	margin-top: 30px;
	padding-top: 22px;
	border-top: 1px solid var(--line-soft);
}

.f-seo {
	font-size: 12.5px;
	color: var(--ink-muted);
}

.f-legal {
	margin-top: 10px;
	font-size: 12px;
	line-height: 1.8;
	color: var(--ink-muted);
}

.f-legal a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.f-copyright {
	margin-top: 16px;
	font-family: var(--font-en);
	font-size: 12px;
	color: var(--ink-muted);
}

.f-imprint {
	display: grid;
	gap: 2px 32px;
	margin: 14px 0;
	font-size: 12.5px;
	line-height: 1.7;
}

.f-imprint div {
	display: grid;
	grid-template-columns: 122px 1fr;
	gap: 10px;
}

.f-imprint dt {
	color: var(--ink-muted);
}

.f-imprint dd {
	color: var(--ink);
}

@media screen and (min-width: 768px) {
	.f-imprint {
		grid-template-columns: 1fr 1fr;
	}
}

/* ---------- page top ---------- */

.pagetop {
	position: fixed;
	right: 14px;
	bottom: 14px;
	z-index: 50;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s;
}

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

.pagetop button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--bg-card);
	border: 1px solid var(--line);
	color: var(--ink);
}

/* ---------- cookies (gdpr / pecr) ---------- */

.cookie-note {
	position: fixed;
	left: 10px;
	right: 10px;
	bottom: 10px;
	z-index: 58;
	max-height: calc(100vh - 20px);
	overflow-y: auto;
	padding: 20px 18px 18px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--bg-card);
	box-shadow: 0 10px 30px rgba(60, 51, 43, .14);
	color: var(--ink-body);
	font-size: 13px;
	line-height: 1.75;
}

.cookie-note__title {
	font-size: 16px;
	font-weight: 600;
	color: var(--ink);
}

.cookie-note__txt {
	margin-top: 6px;
}

.cookie-note__txt a {
	color: var(--wood);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cookie-note__prefs {
	margin-top: 14px;
	border-top: 1px solid var(--line-soft);
}

.cookie-note__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 11px 0;
	border-bottom: 1px solid var(--line-soft);
}

.cookie-note__name {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ink);
}

.cookie-note__name label {
	cursor: pointer;
}

.cookie-note__desc {
	font-size: 12px;
	line-height: 1.6;
	color: var(--ink-muted);
}

.cookie-note__lock {
	flex-shrink: 0;
	font-size: 11.5px;
	white-space: nowrap;
	color: #5B6B45;
}

.cookie-note__lock.-off {
	color: var(--ink-muted);
}

.cookie-note__switch {
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	flex-shrink: 0;
	width: 42px;
	height: 24px;
	margin: 0;
	border-radius: var(--pill);
	background: var(--line);
	cursor: pointer;
	transition: background .2s;
}

.cookie-note__switch::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	transition: transform .2s;
}

.cookie-note__switch:checked {
	background: var(--wood);
}

.cookie-note__switch:checked::before {
	transform: translateX(18px);
}

.cookie-note__switch:focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 2px;
}

.cookie-note__btns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-top: 16px;
}

.cookie-note__yes,
.cookie-note__no,
.cookie-note__set,
.cookie-note__save {
	min-height: 42px;
	padding: 8px 12px;
	border-radius: var(--pill);
	font-size: 13px;
	line-height: 1.3;
	letter-spacing: .02em;
	transition: opacity .25s;
}

.cookie-note__yes,
.cookie-note__save {
	background: var(--ink);
	color: #fff;
}

.cookie-note__no {
	border: 1px solid var(--ink);
	color: var(--ink);
}

.cookie-note__set {
	grid-column: span 2;
	min-height: 32px;
	color: var(--ink-body);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cookie-note__save {
	grid-column: span 2;
}

.cookie-note__yes:hover,
.cookie-note__no:hover,
.cookie-note__save:hover {
	opacity: .8;
}

.f-cookie {
	margin-top: 10px;
}

.f-cookie__btn {
	font-size: 12px;
	color: var(--ink-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- product popup ---------- */

.goods-pop {
	position: fixed;
	inset: 0;
	z-index: 70;
}

.goods-pop__shade,
.cart-tray__shade {
	position: absolute;
	inset: 0;
	background: rgba(40, 32, 24, .55);
}

.goods-pop__panel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	max-height: 92vh;
	overflow-y: auto;
	background: var(--bg-base);
	border-radius: 12px 12px 0 0;
}

.goods-pop__close {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--bg-card);
	border: 1px solid var(--line);
	color: var(--ink);
}

.goods-pop__photo {
	background: var(--bg-band);
}

.goods-pop__photo img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.goods-pop__body {
	padding: 22px 20px 28px;
}

.goods-pop__stock {
	display: inline-block;
	padding: 2px 12px;
	border-radius: var(--pill);
	border: 1px solid var(--line);
	font-size: 12px;
	color: #5B6B45;
}

.goods-pop__stock.-out {
	color: var(--bad);
}

.goods-pop__name {
	margin-top: 10px;
	font-size: 22px;
	line-height: 1.4;
}

.goods-pop__price {
	margin-top: 4px;
	font-size: 18px;
	color: var(--ink);
}

.goods-pop__note {
	margin-top: 14px;
	font-size: 14px;
	line-height: 1.95;
}

.goods-pop__facts {
	display: grid;
	grid-template-columns: 104px 1fr;
	margin-top: 18px;
	border-top: 1px solid var(--line-soft);
	font-size: 13px;
}

.goods-pop__facts dt,
.goods-pop__facts dd {
	padding: 8px 0;
	border-bottom: 1px solid var(--line-soft);
}

.goods-pop__facts dt {
	color: var(--ink-muted);
}

.goods-pop__act {
	margin-top: 20px;
}

.goods-pop__add,
.goods-pop__ask,
.cart-tray__go {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 14px 20px;
	border-radius: var(--pill);
	font-size: 14px;
	letter-spacing: .05em;
	transition: opacity .25s;
}

.goods-pop__add,
.cart-tray__go {
	background: var(--ink);
	color: #fff;
}

.goods-pop__add:hover,
.cart-tray__go:hover {
	opacity: .8;
}

.goods-pop__ask {
	border: 1px solid var(--wood);
	color: var(--wood);
}

.goods-pop__small {
	margin-top: 12px;
	font-size: 12px;
	color: var(--ink-muted);
}

/* ---------- cart ---------- */

.cart-tray {
	position: fixed;
	inset: 0;
	z-index: 80;
}

.cart-tray__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 420px;
	background: var(--bg-base);
}

.cart-tray__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--line);
}

.cart-tray__head h2 {
	font-size: 18px;
}

.cart-tray__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	color: var(--ink);
}

.cart-tray__empty {
	padding: 26px 20px;
	font-size: 14px;
	color: var(--ink-muted);
}

.cart-tray__list {
	flex: 1;
	overflow-y: auto;
	padding: 6px 20px;
}

.cart-line {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 4px 12px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line-soft);
}

.cart-line__img {
	grid-row: span 2;
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 4px;
	background: var(--bg-band);
}

.cart-line__name {
	font-size: 14px;
	line-height: 1.5;
	color: var(--ink);
}

.cart-line__price {
	font-size: 13px;
	color: var(--ink-muted);
}

.cart-line__qty {
	display: flex;
	align-items: center;
	align-self: start;
	border: 1px solid var(--line);
	border-radius: var(--pill);
}

.cart-line__qty button {
	width: 28px;
	height: 28px;
	font-size: 15px;
	line-height: 1;
	color: var(--ink);
}

.cart-line__qty span {
	min-width: 18px;
	text-align: center;
	font-size: 13px;
}

.cart-line__rm {
	justify-self: start;
	font-size: 12px;
	color: var(--ink-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cart-tray__foot {
	padding: 16px 20px 22px;
	border-top: 1px solid var(--line);
}

.cart-tray__sub {
	display: flex;
	justify-content: space-between;
	font-size: 15px;
	color: var(--ink);
}

.cart-tray__hint {
	margin: 4px 0 14px;
	font-size: 12px;
	color: var(--ink-muted);
}

.cart-tray__go[disabled] {
	opacity: .4;
	cursor: default;
}

/* old header height was 92px, left for the inner pages until they are built */

@media screen and (min-width: 768px) {
	.module {
		padding: 80px 0;
	}

	.fixedContent,
	.footer__contentsInner {
		padding-left: 24px;
		padding-right: 24px;
	}

	.f-nav {
		grid-template-columns: repeat(3, auto);
		justify-content: start;
	}

	.cookie-note {
		right: auto;
		left: 24px;
		bottom: 24px;
		max-width: 520px;
	}

	.goods-pop__panel {
		top: 50%;
		left: 50%;
		right: auto;
		bottom: auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		width: 92vw;
		max-width: 900px;
		max-height: 88vh;
		border-radius: 8px;
		transform: translate(-50%, -50%);
	}

	.goods-pop__photo img {
		height: 100%;
	}

	.goods-pop__body {
		padding: 38px 34px 32px;
	}
}

@media screen and (min-width: 1024px) {
	body {
		font-size: 16px;
	}

	br.pc {
		display: inline;
	}

	.module {
		padding: 100px 0;
	}

	.module.-flat {
		padding-top: 20px;
	}

	.toggle-menu {
		display: none;
	}

	.header__sp {
		display: none;
	}

	.header__top {
		display: flex;
		align-items: center;
		justify-content: space-between;
		max-width: var(--wrap);
		margin: 0 auto;
		padding: 12px 24px 0;
	}

	.header__seo {
		font-size: 12px;
		color: var(--ink-muted);
	}

	.h-links {
		display: flex;
		align-items: center;
		gap: 22px;
	}

	.h-links__tel {
		font-size: 15px;
		font-weight: 600;
		color: var(--ink);
	}

	.h-links__mail {
		font-size: 13px;
		color: var(--ink-body);
	}

	.cartpill.-pc {
		padding: 7px 14px 7px 16px;
		border: 1px solid var(--line);
		border-radius: var(--pill);
		font-size: 13px;
	}

	.header__nav {
		display: block;
		padding: 6px 0 24px;
	}

	.g-nav__list {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.g-nav__list-item {
		order: 1;
	}

	.g-nav__list-item.-index {
		order: 2;
		margin: 0 34px;
	}

	.g-nav__list-item.-right {
		order: 3;
	}

	.g-nav__logoLink {
		display: block;
	}

	.g-nav__logo img {
		width: 136px;
	}

	.g-nav__link {
		display: block;
		padding: 10px 13px;
		font-size: 14px;
		letter-spacing: .06em;
		color: var(--ink);
		white-space: nowrap;
	}

	.g-nav__link.is-current {
		color: var(--wood);
	}

	.footer__contentsInner {
		grid-template-columns: 330px 1fr;
		gap: 60px;
		padding-top: 76px;
		padding-bottom: 48px;
	}

	.pagetop {
		right: 28px;
		bottom: 28px;
	}
}

@media screen and (min-width: 1200px) {
	.g-nav__link {
		padding: 10px 18px;
	}

	.g-nav__list-item.-index {
		margin: 0 44px;
	}
}
