@charset "utf-8";
/*--------------------------------------------
  goodsList.css
  商品一覧画面用CSS
--------------------------------------------*/
#contents {
	& form {
		font-size: 14px;
		margin-right: 10px;
	}
}
#sideContents {
	margin-left: 10px;
}
.notificationModal {
	display: none;
}
@media screen and (max-width: 960px) {
	#contents {
		& form {
			font-size: 12px;
			margin-right: 0;
		}
	}
	.sideContents {
		display: none;
	}
}

/*---------------------------------------------
	goodsList 商品一覧(全体)
---------------------------------------------*/
.goodsList {
	& .pageInfo {
		margin-top: 1em;
		border-bottom: 2px solid #ededed;
		padding-bottom: 5px;
		float: none;
		display: flex;
		align-items: center;
		/* 表示ページ */
		& .pageCurrent {
			&::after {
				content: "ページ目を表示しています";
			}
		}
	}
	/* header */
	& .matrix-header {
		& .pageInfo {
			margin: 1.5em 0 1em;
		}
	}
	/* footer */
	& .matrix-footer {
		& .resultsPagingResultsShow {
			display: none;
		}
	}
}
@media screen and (max-width: 960px) {
	.goodsList {
		& .pageInfo {
			justify-content: center;
			border-top: 2px solid #ededed;
			padding-top: 5px;
			/* 表示ページ */
			& .pageCurrent {
				display: none;
			}
			/* ページネーション */
			& ul.pagination {
				margin: 0 auto;
			}
		}
		/* footer */
		& .matrix-footer {
			& .resultsPagingResultsShow {
				display: block;
				text-align: center;
			}
		}
	}
}


/*---------------------------------------------
	goodsSort 商品一覧(ソート)
---------------------------------------------*/
.pageInfoTop {
	margin-top: 1.5em;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	& select {
		margin: 0;
		width: 160px;
	}
}
.sortGroup {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}
/* 表示件数 */
.displayNumComboItemWrap {
	& .resultsShowMaxLine {
		margin: 0;
		& .maxLineSelectLabel {
			display: none;
		}
		&::before {
			content: none;
		}
	}
}
/* 表示形式 */
.displayTypeGroup {
	display: none;
}
@media screen and (max-width: 768px) {
	.pageInfoTop {
		margin-left: 1em;
		margin-right: 1em;
		& select {
			width: auto;
		}
	}
	.sort {
		margin-left: auto;
	}
}

/*---------------------------------------------
	goodsItem 商品一覧(商品行)
---------------------------------------------*/
#results {
	margin-bottom: 2em;
	& .matrix-body {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		& .goodsItem {
			border-right: 1px solid var(--border-color-goods-list);
			border-top: 1px solid var(--border-color-goods-list);
			padding: 2em 1em 1em 1em;
			&:nth-child(4n) {
				border-right: none;
			}
			& .goodsImgItemWrap {
				& .goodsImg {
					display: flex;
					align-items: center;
					justify-content: center;
					& img {
						max-width: 154px;
						width: 100%;
					}
				}
			}
			& .goodsInfo {
				position: relative;
				/* アイコン */
				& .itemIconArea {
					margin-top: 10px;
					gap: 5px;
				}
				& .itemIcon {
					display: grid;
					grid-template-columns: repeat(2, calc((50% - 5px / 2) * 0.88));
					gap: 5px;
					justify-content: center;
					& .goodsDispIconImgItemWrap {
						width: 100%;
						& .items,
						& .detailsImg {
							display: flex;
							justify-content: center;
						}
						& img {
							display: block;
							max-width: 100%;
							height: auto;
						}
					}
				}
				& .favoritePriceArea {
					display: flex;
					align-items: center;
					justify-content: space-between;
					& .addFavoriteLinkItemWrap {
						flex: 1;
						margin-top: 5px;
					}
				}
				& .addFavoriteLink {
					color: var(--color-btn);
					font-size: 33px;
					line-height: 1;
					&::before {
						content: "\f004";
						font-family: 'Font Awesome 5 Free';
					}
					&.active {
						&::before {
							font-weight: bold;
						}
					}
					&:hover {
						text-decoration: none;
						&::before {
							font-weight: bold;
						}
					}
				}
				/* レビュー */
				& .overall_review_wrap {
					margin-top: 10px;
					& .fa-star {
						&::before {
							color: var(--color-gold);
						}
					}
					& .overall_review_num {
						&::before {
							content: "(";
						}
						&::after {
							content: ")";
						}
					}
				}
				/* 商品名 */
				& .goodsNameItemWrap {
					margin-top: 5px;
					& a {
						display: -webkit-box;
						-webkit-box-orient: vertical;
						-webkit-line-clamp: 3;
						overflow: hidden;
						text-overflow: ellipsis;
					}
				}
				/* 金額 */
				& .priceSummaryArea {
					flex-direction: column;
					display: flex;
					justify-content: space-between;
				}
				& .priceItemWrap, & .discountedPriceItemWrap, & .limitedPriceItemWrap {
					text-align: right;
					& span {
						font-weight: bold;
					}
				}
				& .priceArea {
					margin-top: 5px;
					& .priceItemWrap:has( ~ .discountedPriceItemWrap),
					&:has( ~ .limitedPriceItemWrap) {
						& span {
							text-decoration: line-through;
						}
					}
					.discountedPriceItemWrap {
						color: var(--text-color-alert);
					}
				}
				& .limitedPriceItemWrap {
					color: var(--text-color-alert);
					line-height: 1.3;
				}
				& .limitedPeriodItemWrap {
					color: var(--text-color-alert);
					text-align: right;
				}
				& .mileItemWrap {
					margin-top: 5px;
					text-align: right;
				}
				/* 在庫 */
				& .saleStatusItemWrap {
					margin-top: 10px;
				}
				& .saleStatus {
					background-color: var(--bg-color-l-gray);
					display: block;
					padding: 0.5em;
					text-align: center;
				}
				& .saleStatusPreLabel, & .saleStatusSuffixLabel {
					display: none;
				}
				/* 割引率 */
				.discountRateItemWrap {
					display: none;
				}
			}
		}
		&:has( > :nth-child(-n+4):last-child) {
			& .goodsItem {
				border-top: none;
				&:last-child {
					border-right: none;
				}
			}
		}
	}
}

/* 非表示 */
.addCountItemWrap, .addCartItemWrap {
	display: none;
}

@media screen and (max-width: 1320px) {
	#results {
 	& .matrix-body {
 		grid-template-columns: repeat(3, 1fr);
			& .goodsItem {
				&:nth-child(3n) {
 				border-right: none;
 			}
 			&:nth-child(4n) {
 				border-right: 1px solid var(--border-color-goods-list);
 			}
			}
		}
	}
}
@media screen and (max-width: 960px) {
	.goodsList {
		& .matrix-body {
			grid-template-columns: repeat(3, 1fr);
			& .goodsItem {
				&:nth-child(4n) {
					border-right: 1px solid #e6e6e6;
				}
				&:nth-child(3n) {
					border-right: none;
				}
			}
		}
	}
}
@media screen and (max-width: 600px) {
#results {
 	& .matrix-body {
 		grid-template-columns: repeat(2, 1fr);
			& .goodsItem {
				&:nth-child(2n) {
 				border-right: none;
 			}
 			&:nth-child(3n) {
 				border-right: 1px solid var(--border-color-goods-list);
 			}
			}
			& .goodsInfo {
				/* 金額 */
				& .mileItemWrap {
					font-size: 0.86em;
				}
			}
		}
}
}

/*---------------------------------------------
	キーワードマッチ
---------------------------------------------*/
.keyMatchList {
	& #keyMatchListResults {
		margin-bottom: 0;
	}
}
.resultAreaWrap {
	& .result span {
		font-size: 1.43em;
	}
}
.resultAreaList {
	margin-top: 1em;
}
.campaignResult {
	> a {
		display: flex;
		gap: 10px;
		margin-bottom: 5px;
		padding: clamp(5px, 1vw, 10px);
		&:hover {
			background-color: #f7f8fa;
			color: var(--text-color);
			text-decoration: none;
			& img {
				opacity: unset;
			}
		}
	}
}
.campaignResultText {
	flex: 1 0 0%;
	& h3 {
		font-size: 16px;
		font-weight: bold;
		margin-bottom: 5px;
	}
}
.campaignResultImage {
	width: 220px;
}
@media screen and (max-width: 768px) {
	.resultAreaWrap {
		margin-left: 1em;
		margin-right: 1em;
	}
	.campaignResultText {
		& h3 {
			font-size: 0.94em;
			margin-bottom: 3px;
		}
		& p {
			font-size: 0.86em;
		}
	}
	.campaignResultImage {
		width: 40%;
	}
}

/*---------------------------------------------
	ランキング
---------------------------------------------*/
.rtoarea {
	margin-top: 10px;
}
.rto_view {
	background: #edf3fa;
	> .inner {
		> h3.ttl {
			position: relative;
			padding: 20px 0 0 88px;
			font-size: 1.5em;
			color: #062d86;
			font-weight: normal;
			&::before {
				content: "";
				display: block;
				position: absolute;
				top: 1.4em;
				bottom: 0;
				left: 25px;
				width: 49px;
				height: 16px;
				background: var(--icon-Flight) -2px -18px no-repeat;
			}
			& span {
				margin-left: 1em;
				font-size: 0.9rem;
				color: #8a95ad;
				vertical-align: middle;
			}
		}
	}
	/* slideList・swiper */
	& .slideList {
		margin: 15px 24px 0 24px;
		padding: 0 0 20px 0;
		overflow: hidden;
		& ul {
			counter-reset: listnum; /* カウンターをリセット */
		}
		& li {
			figure {
				height: 100%;
			}
			& a {
				position: relative;
				display: block;
				height: 100%;
				box-sizing: border-box;
				border: 1px solid #eaeaea;
				border-radius: 5px;
				padding: 1em 0 0.5em 0;
				color: #333;
				text-decoration: none;
				background: #fff;
				&::after {
					content: "";
					position: absolute;
					top: 2px;
					left: 2px;
					display: block;
					width: 0;
					height: 0;
					border-style: solid;
					border-width: 37px 37px 0 0;
					border-color: #062d86 transparent transparent transparent;
					z-index: 1;
				}
				& .rank_num {
					position: absolute;
					top: 3px;
					left: 3px;
					z-index: 2;
					color: #fff;
				}
			}
			&:nth-child(1) {
				& a {
					&::after {
						border-color: #ad982c transparent transparent transparent;
					}
				}
			}
			&:nth-child(2) {
				& a {
					&::after {
						border-color: #a3a9ad transparent transparent transparent;
					}
				}
			}
			&:nth-child(3) {
				& a {
					&::after {
						border-color: #c7864e transparent transparent transparent;
					}
				}
			}
			&:nth-child(-n+9) {
				& a {
					& .rank_num {
						left: 10px;
					}
				}
			}
		}
		/* 画像 */
		& .item_ph {
			max-width: 154px;
			margin: 0 auto;
		}
		/* 商品名 */
		& .item_name, & .item_price {
			box-sizing: border-box;
			padding: 0.5em 1em 0 1em;
		}
		& .item_name {
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 3;
			line-height: 1.5;
			height: 5em;
			overflow: hidden;
			text-overflow: ellipsis;
			font-size: 0.93em;
		}
		/* 金額 */
		& .item_price {
			font-size: 0.93em;
			font-weight: bold;
			text-align: right;
			&::before {
				content: "¥";
			}
			&::after {
				content: "(税込)";
			}
			&:has( ~ .discountedPriceItemWrap),
			&:has( ~ .limitedPriceItemWrap) {
				text-decoration: line-through;
				font-size: var(--font-size-ss);
			}
		}
		& .discountedPriceItemWrap,
		& .limitedPriceItemWrap {
			text-align: right;
			color: var(--text-color-alert);
			& span {
				font-weight: bold;
			}
			& .item_price {
				&::before {
					content: '￥';
				}
				&::after {
					content: '(税込)';
				}
			}
		}
		& .limitedPeriodItemWrap {
			text-align: right;
			color: var(--text-color-alert);
			padding-inline: 1em;
		}
	}
	/* next・prevボタン */
	& .carouselWrap {
		& .swiper-button-next {
			right: 5px;
			top: 36%;
		}
		& .swiper-button-prev {
			left: 5px;
			top: 36%;
		}
	}
}
@media screen and (max-width: 768px) {
	.rto_view {
		background: #fff;
		> .inner {
			> h3.ttl {
				display: none;
			}
		}
		/* slideList・swiper */
		& .slideList {
			margin: 0;
			padding: 40px 0 10px 20px;
			& li {
				& a {
					border: none;
					padding: 0;
					&::after {
						background: url(../images/cmn/icon/icon_ranking04.png) no-repeat center top / contain;
						border: none;
						width: 43px;
						height: 31px;
						left: -8px;
						top: -18px;
					}
					&::before {
						left: 6px;
						top: -3px;
						font-size: 10px;
					}
					& .rank_num {
						top: -5px;
						left: 6px;
					}
				}
				&:nth-child(1) {
				& a {
					&::after {
						background-image: url(../images/cmn/icon/icon_ranking01.png);
					}
				}
			}
			&:nth-child(2) {
				& a {
					&::after {
						background-image: url(../images/cmn/icon/icon_ranking02.png);
					}
				}
			}
			&:nth-child(3) {
				& a {
					&::after {
						background-image: url(../images/cmn/icon/icon_ranking03.png);
					}
				}
			}
			}
			/* 画像 */
			& .item_ph {
				width: 100%;
			}
		}
	}
}

/*---------------------------------------------
	goodsList2 カテゴリトップ
---------------------------------------------*/
/* swiper */
.categorynewArrivalWrap, .subCategoryRankingWrap {
	&.carouselWrap {
		margin: 0 15px 2em;
		position: relative;
		& .swiper-button-next {
			right: -25px;
			top: 36%;
		}
		& .swiper-button-prev {
			left: -25px;
			top: 36%;
		}
	}
}
.carouselWrap {
	& .slideList {
		overflow: hidden;
	}
}
/* タイトル */
.lineBottom {
	margin: 60px 0 30px;
	font-size: clamp(24px, 3.8vw, 38px);
	font-weight: bold;
	color: #0A3190;
	text-align: center;
	padding-bottom: 2px;
	margin-top: 75px;
	border-bottom: 1px solid #0B318F;
}
.categoryArea {
	> .lineBottom {
		margin-top: 0;
	}
}
.subTitle {
	margin-top: 60px;
	margin-left: 0;
	padding: 15px 0;
	background-color: #edf3fa;
	color: #0a3190;
	font-size: 30px;
	font-weight: bold;
	text-align: center;
}
.genre {
	font-size: 22px;
	border-left: 8px solid #0a3190;
	padding-left: 14px;
	margin: 30px 0 30px;
	font-weight: bold;
}
/* テキスト・金額 */
.categorynewArrivalWrap, .subCategoryRankingWrap {
	& .swiper-slide {
		& a {
			display: flex;
			flex-direction: column;
		}
	}
	& .item_name {
		margin-top: 0.5em;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	& .item_price {
		font-weight: bold;
		text-align: right;
		margin-top: auto;
		padding-top: 0.5em;
		width: 100%;
		text-align: right;
		&::after {
			content: "円(税込)";
		}
		&:has( ~ .limitedPriceItemWrap),
		&:has( ~ .discountedPriceItemWrap) {
			margin-bottom: 0;
			text-decoration: line-through;
			font-size: var(--font-size-ss);
		}
	}
	& .limitedPriceItemWrap,
	& .discountedPriceItemWrap {
		text-align: right;
		color: var(--text-color-alert);
		line-height: 1.3;
		& span {
			font-weight: bold;
		}
	}
	& .limitedPeriodItemWrap {
		text-align: right;
		color: var(--text-color-alert);
		line-height: 1.3;
	}
}
/* サブカテゴリナビ */
.subCategoryResults {
	display: none;
}
@media screen and (max-width: 768px) {
	/* swiper */
	.categorynewArrivalWrap, .subCategoryRankingWrap {
		&.carouselWrap {
			margin-right: 0;
			& .swiper-button-next {
				right: var(--screen-pd-lr);
			}
			& .swiper-button-prev {
				left: var(--screen-pd-lr);
			}
		}
	}
	.genre {
		margin: 5% 0 0 4%;
	}
}

/*---------------------------------------------
	差し込みエリア
---------------------------------------------*/
/*▼アタリなので不要になったら削除*/
.includeArea {
	border: 1px solid #D6D6D6;
	margin: 0 auto 30px;
	padding: 20px;	
	text-align: center;
}
@media screen and (max-width: 768px) {
	.includeArea {
		width: var(--cont-width);
	}
}
/*▲アタリなので不要になったら削除*/
