@charset "UTF-8";
/*
商品一覧（/products/）だけで読み込む
2026-11-10 BANTORRA-10
色・文字・余白は ver2（assets/sass/foundation/_mixin.scss）に合わせる
文字 #2f2725／補足 #6d6461／線 #dcd6d0／紙 #f6f3ef／差し色 #ef8862（ホバー #df7550）
PC 960px〜／タブレット 〜959px／SP 〜750px
*/

/*
----------------------------------------
折り返し（.inner の break-all だと「19:00」などが途中で切れるため、このページは単語の途中で切らない）
----------------------------------------
*/
#products .inner {
	word-break: normal;
	overflow-wrap: anywhere;
}

/*
----------------------------------------
ボタン（商品一覧・商品詳細で共通の形）
----------------------------------------
*/
.p-shopBtn {
	display: inline-grid;
	place-items: center;
	min-width: 24rem;
	min-height: 5.6rem;
	padding: 1rem 3.2rem;
	border: 1px solid #2f2725;
	background: transparent;
	color: #2f2725;
	font-family: inherit;
	font-size: 1.6rem;
	line-height: 1.5;
	letter-spacing: 0.16em;
	text-align: center;
	cursor: pointer;
	transition: background-color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.p-shopBtn--accent {
	border-color: #ef8862;
	background: #ef8862;
	color: #ffffff;
}

.p-shopBtn--disabled,
.p-shopBtn:disabled {
	border-color: #dcd6d0;
	background: #f6f3ef;
	color: #6d6461;
	cursor: not-allowed;
}

@media (hover: hover) {
	.p-shopBtn:where(:any-link, :enabled):hover {
		background: #2f2725;
		color: #ffffff;
	}

	.p-shopBtn--accent:where(:any-link, :enabled):hover {
		border-color: #df7550;
		background: #df7550;
	}
}

@media (max-width: 750px) {
	.p-shopBtn {
		width: 100%;
		min-width: 0;
		min-height: 5.2rem;
		padding-inline: 1.6rem;
		font-size: 1.5rem;
		letter-spacing: 0.12em;
	}
}

/*
----------------------------------------
ファーストビュー
----------------------------------------
*/
.p-productsMv {
	background: #f6f3ef url(../img/common/paper.png) repeat;
	padding-block: 8rem;
}

.p-productsMv .inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 46rem);
	align-items: center;
	gap: 6.4rem;
}

.p-productsMv__sub {
	font-size: 1.6rem;
	letter-spacing: 0.2em;
	color: #ef8862;
}

.p-productsMv__ttl {
	margin-top: 1.2rem;
	font-size: 4rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.16em;
}

.p-productsMv__points {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem 0;
	margin-top: 3.2rem;
	border-top: 1px solid #dcd6d0;
	border-bottom: 1px solid #dcd6d0;
	padding-block: 1.6rem;
}

.p-productsMv__points li {
	font-size: 1.6rem;
	line-height: 1.6;
	letter-spacing: 0.12em;
}

.p-productsMv__points li:not(:last-child)::after {
	content: "／";
	margin-inline: 0.8rem;
	color: #dcd6d0;
}

.p-productsMv__text {
	margin-top: 3.2rem;
	font-size: 1.6rem;
}

.p-productsMv__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 1.6rem;
	margin-top: 4rem;
}

.p-productsMv__img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

@media (max-width: 959px) {
	.p-productsMv {
		padding-block: 6.4rem;
	}

	.p-productsMv .inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 28rem);
		gap: 4rem;
	}

	.p-productsMv__ttl {
		font-size: 2.8rem;
		letter-spacing: 0.12em;
	}
}

@media (max-width: 750px) {
	.p-productsMv {
		padding-block: 0 5.6rem;
	}

	.p-productsMv .inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 3.2rem;
	}

	/* SP は写真を先に、左右いっぱい */
	.p-productsMv__img {
		order: -1;
		margin-inline: -1.5rem;
	}

	.p-productsMv__sub {
		font-size: 1.4rem;
	}

	.p-productsMv__ttl {
		font-size: 2.6rem;
		letter-spacing: 0.12em;
	}

	.p-productsMv__points {
		margin-top: 2.4rem;
	}

	.p-productsMv__points li {
		font-size: 1.4rem;
	}

	.p-productsMv__text {
		margin-top: 2.4rem;
		font-size: 1.5rem;
	}

	.p-productsMv__btns {
		flex-direction: column;
		align-items: center;
		gap: 1.2rem;
		margin-top: 3.2rem;
	}
}

/*
----------------------------------------
絞り込み・件数・並び替え
----------------------------------------
*/
.p-productsList {
	padding-block: 12rem 16rem;
}

.p-productsFilter {
	border-top: 1px solid #2f2725;
}

.p-productsFilter__row {
	display: grid;
	grid-template-columns: 12rem minmax(0, 1fr);
	align-items: center;
	gap: 2.4rem;
	padding-block: 2rem;
	border-bottom: 1px solid #dcd6d0;
}

.p-productsFilter__label {
	font-size: 1.6rem;
	letter-spacing: 0.2em;
}

.p-productsFilter__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.p-productsFilter__chips a {
	display: block;
	padding: 0.6rem 2rem;
	border: 1px solid #dcd6d0;
	background: #ffffff;
	font-size: 1.6rem;
	line-height: 1.6;
	letter-spacing: 0.1em;
	transition: border-color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background-color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.p-productsFilter__chips a[aria-current="true"] {
	border-color: #2f2725;
	background: #2f2725;
	color: #ffffff;
}

@media (hover: hover) {
	.p-productsFilter__chips a:hover {
		border-color: #2f2725;
	}
}

.p-productsBar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.6rem 3.2rem;
	margin-top: 4rem;
}

.p-productsBar__count {
	font-size: 1.6rem;
	letter-spacing: 0.12em;
}

.p-productsBar__count .num {
	font-family: "Cormorant Garamond", "Noto Serif JP", serif;
	font-size: 2.6rem;
	line-height: 1;
}

.p-productsBar__sort {
	display: flex;
	flex-wrap: wrap;
}

.p-productsBar__sort li + li::before {
	content: "｜";
	color: #dcd6d0;
}

.p-productsBar__sort a {
	font-size: 1.6rem;
	letter-spacing: 0.1em;
	color: #6d6461;
	transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.p-productsBar__sort a[aria-current="true"] {
	color: #2f2725;
	border-bottom: 1px solid #2f2725;
}

@media (hover: hover) {
	.p-productsBar__sort a:hover {
		color: #ef8862;
	}
}

@media (max-width: 959px) {
	.p-productsList {
		padding-block: 9.6rem 12rem;
	}
}

@media (max-width: 750px) {
	.p-productsList {
		padding-block: 6.4rem 9.6rem;
	}

	.p-productsFilter__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.2rem;
		padding-block: 1.6rem;
	}

	.p-productsFilter__label {
		font-size: 1.4rem;
	}

	.p-productsFilter__chips {
		gap: 0.8rem;
	}

	.p-productsFilter__chips a {
		padding: 0.4rem 1.4rem;
		font-size: 1.4rem;
	}

	.p-productsBar {
		margin-top: 3.2rem;
	}

	.p-productsBar__count {
		font-size: 1.4rem;
	}

	.p-productsBar__sort a {
		font-size: 1.4rem;
	}
}

/*
----------------------------------------
カテゴリーごとの商品
----------------------------------------
*/
.p-productsGroup {
	margin-top: 12rem;
	scroll-margin-top: 16rem;
}

.p-productsGroup__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6.4rem 4rem;
	margin-top: 6.4rem;
}

.p-productsList__empty {
	margin-top: 8rem;
	text-align: center;
}

.p-productsPager {
	margin-top: 8rem;
}

@media (max-width: 959px) {
	.p-productsGroup {
		margin-top: 9.6rem;
		scroll-margin-top: 9rem;
	}

	.p-productsGroup__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 5.6rem 3.2rem;
	}
}

@media (max-width: 750px) {
	.p-productsGroup {
		margin-top: 8rem;
		scroll-margin-top: 8rem;
	}

	.p-productsGroup__list {
		grid-template-columns: minmax(0, 1fr);
		gap: 5.6rem;
		margin-top: 4.8rem;
	}
}

/*
----------------------------------------
商品のカード
----------------------------------------
*/
.p-productCard {
	display: flex;
	flex-direction: column;
}

.p-productCard__img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.p-productCard.is-soldout .p-productCard__img img {
	opacity: 0.6;
}

.p-productCard__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-top: 2rem;
}

.p-productCard__tags span {
	padding: 0.2rem 1.2rem;
	border: 1px solid #ef8862;
	color: #ef8862;
	font-size: 1.6rem;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

.p-productCard__tags span.is-soldout {
	border-color: #6d6461;
	background: #6d6461;
	color: #ffffff;
}

.p-productCard__ttl {
	margin-top: 1.6rem;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

.p-productCard__vol,
.p-productCard__note {
	margin-top: 0.8rem;
	font-size: 1.6rem;
	line-height: 1.8;
	color: #6d6461;
}

.p-productCard__note {
	margin-top: 0;
}

.p-productCard__price {
	margin-top: auto;
	padding-top: 1.6rem;
	font-size: 1.6rem;
	letter-spacing: 0.08em;
}

.p-productCard__price .num {
	margin-right: 0.4rem;
	font-size: 3.2rem;
	line-height: 1;
	letter-spacing: 0.04em;
}

.p-productCard__btns {
	display: grid;
	gap: 1rem;
	margin-top: 2rem;
}

.p-productCard__btns .p-shopBtn {
	width: 100%;
	min-width: 0;
	padding-inline: 1.6rem;
}

@media (max-width: 750px) {
	.p-productCard__tags span {
		font-size: 1.3rem;
	}

	.p-productCard__ttl {
		font-size: 1.8rem;
	}

	.p-productCard__vol,
	.p-productCard__note {
		font-size: 1.4rem;
	}

	.p-productCard__price {
		font-size: 1.4rem;
	}

	.p-productCard__price .num {
		font-size: 2.8rem;
	}

	.p-productCard__btns .p-shopBtn {
		max-width: none;
	}
}

/*
----------------------------------------
ご購入にあたって
----------------------------------------
*/
.p-productsGuide {
	padding-block: 16rem;
}

.p-productsGuide__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 8rem;
	border-top: 1px solid #2f2725;
}

.p-productsGuide__item {
	display: flex;
	flex-direction: column;
	padding: 4rem 3.2rem;
	border-bottom: 1px solid #dcd6d0;
}

.p-productsGuide__item + .p-productsGuide__item {
	border-left: 1px solid #dcd6d0;
}

.p-productsGuide__ttl {
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.16em;
}

.p-productsGuide__text {
	margin-top: 1.6rem;
	font-size: 1.6rem;
}

.p-productsGuide__more {
	margin-top: auto;
	padding-top: 2.4rem;
}

.p-productsGuide__more a {
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
	color: #ef8862;
	font-size: 1.6rem;
	letter-spacing: 0.12em;
}

.p-productsGuide__more a::after {
	content: "";
	flex-shrink: 0;
	width: 3.2rem;
	height: 3.2rem;
	border-radius: 50%;
	background: #ef8862 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M0 0l8 5-8 5z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat 55% center / 0.8rem;
	transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background-color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@media (hover: hover) {
	.p-productsGuide__more a:hover::after {
		transform: translateX(0.6rem);
		background-color: #df7550;
	}
}

.p-productsGuide__note {
	margin-top: 4rem;
	font-size: 1.6rem;
	text-align: center;
	color: #6d6461;
}

@media (max-width: 959px) {
	.p-productsGuide {
		padding-block: 12rem;
	}

	/* タブレットは縦に並べる（3列だと見出しが途中で折れるため） */
	.p-productsGuide__list {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 6.4rem;
	}

	.p-productsGuide__item {
		padding: 3.2rem 0;
	}

	.p-productsGuide__item + .p-productsGuide__item {
		border-left: 0;
	}
}

@media (max-width: 750px) {
	.p-productsGuide {
		padding-block: 9.6rem;
	}

	.p-productsGuide__list {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 4.8rem;
	}

	.p-productsGuide__item {
		padding: 2.8rem 0;
	}

	.p-productsGuide__item + .p-productsGuide__item {
		border-left: 0;
	}

	.p-productsGuide__ttl {
		font-size: 1.8rem;
	}

	.p-productsGuide__text,
	.p-productsGuide__more a {
		font-size: 1.4rem;
	}

	.p-productsGuide__more a {
		display: flex;
		width: fit-content;
		margin-left: auto;
	}

	.p-productsGuide__note {
		margin-top: 3.2rem;
		font-size: 1.4rem;
		text-align: left;
	}
}
