@charset "utf-8";
/*--------------------------------------------
  GoodsDetail.css
  商品詳細 ショップ共通CSS
--------------------------------------------*/

/* 全体レイアウト ---------------------------- */
.goodsDetailInner {
	margin-bottom: clamp(40px, -20px + 10vw, 80px);
}

.goodsDetailContents {
	display: grid;
	grid-template-columns: min(55%, 530px) 1fr;
	grid-template-rows: auto;
	margin-bottom: 40px;

	& .goodDetail_left_area {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
		padding-right: 30px;
	}

	& .goodsDetail_order_area {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
		padding-left: 20px;
	}
}

.topGroupName section+section {
	margin-top: clamp(40px, -20px + 10vw, 80px);
}

@media screen and (max-width: 960px) {
	.contents {
		&.twoColumns {
			& form[name="formMain"] {
				padding-right: 0;
			}
		}
	}

	section:not(.goodsDetailContents):not(.browsingGoods) {
		& .accordionContents:not(:has(.carouselWrap)) {
			padding-left: 10px;
			padding-right: 10px;
		}
	}
}

@media screen and (max-width: 768px) {
	.goodsDetailInner {
		margin-bottom: 40px;
	}

	.goodsDetailContents {
		display: block;

		& .goodDetail_left_area {
			padding-right: 10px;
		}

		& .goodsDetail_order_area {
			padding-left: 10px;
		}
	}

	.topGroupName section+section {
		margin-top: 40px;
	}
}


.goodsDetail_h2 {
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 1.3;
	border-bottom: 2px solid #ccc;
	padding-bottom: 5px;
	color: #000;
}

@media screen and (max-width: 960px) {
	.goodsDetail_h2 {
		padding: 0 15px 5px;
	}
}

@media screen and (max-width: 768px) {
	.goodsDetail_h2 {
		background: #0B318F;
		color: #fff;
		font-size: 16px;
		font-weight: bold;
		line-height: 1.5;
		padding: .85em .8em .75em;
	}

	.goodsDetailInner {

		& .goodsDetail_h2,
		& .set_contents_title {
			position: relative;
			border: 2px solid #6D83BC;
			background-color: #6D83BC;
			color: #fff;
			font-size: 18px;
			width: calc(100% - 20px);
			margin: 0 auto;
			padding: .6em 2em .5em .8em;

			&::before,
			&::after {
				content: "";
				display: block;
				width: 20px;
				height: 4px;
				position: absolute;
				top: 0;
				bottom: 0;
				right: 10px;
				margin: auto 0;
				background-color: #fff;
				transition: .2s;
			}

			&::after {
				transform: rotate(90deg);
			}

			&.active {
				background-color: transparent;
				color: #000;

				&::before,
				&::after {
					background-color: #6D83BC;
				}

				&::after {
					transform: rotate(0deg);
				}
			}

		}
	}
}

.carouselWrap:not(:has(.swiper-button-lock)) {
	width: calc(100% - 60px);
	margin: 0 auto;
}

@media screen and (max-width: 960px) {
	.carouselWrap:not(:has(.swiper-button-lock)) {
		width: 100%;
	}
}


/* あとでshop.common.cssに移すかも？ */


/* 商品画像エリア ---------------------------- */
.goodDetail_left_area {
	display: block;
	position: relative;

	& .itemDetailCatchCopy {
		margin-bottom: 15px;
		font-size: 15px;
		line-height: 1.5;
		padding: 13px 10px 10px 50px;
		background: url(../img/common/goods_detail/icn_catchcopy.gif) no-repeat 0 16px #F0F0F0;

		&:has(strong:empty) {
			display: none;
		}
	}

	& .detail_icon_list {
		display: none;
	}

	& .goodDetail_image_area {
		position: relative;
		font-size: 12px;

		& .goodDetail_image {
			& img {
				width: 100%;
			}

			& figcaption {
				font-size: 1rem;
				margin-top: 10px;
			}
		}

		& .swiper-button-prev,
		& .swiper-button-next {
			width: 3.8em;
			height: 3.8em;
			background-size: contain;

			&::after {
				display: none;
			}
		}

		& .swiper-button-prev {
			left: -21px;
			background: url(../img/common/goods_detail/slider_prev.png) no-repeat center center;
		}

		& .swiper-button-next {
			right: -21px;
			background: url(../img/common/goods_detail/slider_next.png) no-repeat center center;
		}
		& .goodsMainImage.area_Photo {
			width: 100%;
		}
	}

	& .slider-thumbnail-wrap,
	& .slider-sku-thumbnail-wrap {
		position: relative;
		margin-top: 40px;
		opacity: 0;

		&:has(.goods_images:empty) {
			display: none;
		}

		& .goods_images {

			& li {
				position: relative;
				cursor: pointer;

				&.swiper-slide-thumb-active {


					&::before {
						content: "";
						display: block;
						width: calc(100% - 5px);
						height: calc(100% - 5px);
						position: absolute;
						top: 0;
						left: 0;
						bottom: 0;
						right: 0;
						border: 3px solid #6D83BC;
						z-index: 1;
					}
				}
			}
		}
	}
}

@media screen and (max-width: 960px) {
	.goodDetail_left_area {
		padding: 0 10px;

		& .itemDetailCatchCopy {
			display: none;
		}

		& .detail_icon_list {
			display: grid;
			grid-template-columns: repeat(4, minmax(0, 1fr));
			margin: 10px 0;
			gap: 6px;

			& li {
				display: flex;
				align-items: center;
				justify-content: center;

				& span {
					display: flex;
					align-items: center;
					justify-content: center;
					width: 100%;
					height: 100%;
				}

				& img {
					display: block;
					max-width: 100%;
					height: auto;
					margin: 0 auto;
				}
			}
		}

		& .goodDetail_image_area {
			width: calc(100% - 40px);
			max-width: 400px;
			margin: 0 auto;
		}

		& .swiper-scrollbar {
			width: 100%;
			height: 4px;
			background-color: transparent;

			& .swiper-scrollbar-drag {
				margin-top: 15px;
				background-color: #c0c0c0;
			}
		}
	}
}

/* 商品情報エリア ---------------------------- */
.goodsDetail_order_area {
	padding-left: 20px;
	border-left: 1px solid #ccc;

	/* 商品アイコン */
	& .detail_icon_list {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 6px;

		& li {
			display: flex;
			align-items: center;
			justify-content: center;

			& span {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 100%;
				height: 100%;
			}

			& img {
				display: block;
				max-width: 100%;
				height: auto;
				margin: 0 auto;
			}
		}
	}

	& .goods_name {
		font-weight: bold;
		margin: 17px 0 5px;
	}

	/* 上部 レビュー表示 */
	& .overall_review_wrap {
		margin: 10px 0 20px;

		& .overall_review {
			display: inline-flex;
			align-items: flex-end;
			line-height: 1;
			color: var(--text-color);
			opacity: 0;
			transition: .3s;

			&:has(.initialized) {
				opacity: 1;
			}

			& .overall_review_evaluation {
				color: #ffd000;
				font-size: 1.125rem;

				& span {
					&+span {
						margin-left: .2em;
					}
				}
			}

			& .overall_review_evaluation_score {
				padding-left: .7em;
			}

			& .overall_review_num {
				padding-left: .3em;

				&::before {
					content: "(";
				}

				&::after {
					content: ")";
				}
			}
		}
	}

	& .itemDetailCatchCopy {
		display: none;
	}

	/* 商品詳細情報部分 */
	.detail_sku_item {
		display: none;
	}

	& .table.goods_detail {
		margin: 1.5em 0 1em;
		font-size: 1rem;

		& .tr {

			& .th,
			& .td {
				border-bottom: 1px dotted #ccc;
				border-left: none;
				border-right: none;
				padding-left: 1em;
			}

			&:first-of-type {

				& .th,
				& .td {
					border-top: 1px dotted #ccc;
				}
			}

			& .th {
				width: 10em;
				color: #666;

				& label {
					font-weight: bold;
				}
			}

			& .td {

				& .goods_price,
				& .goods_special_price {
					font-weight: bold;
					display: inline-block;
				}

				&:has(.salePrice) {
					& .goods_price:not(.salePrice) {
						font-size: var(--font-size-s);
						text-decoration: line-through;
						display: block;
					}

					& .goods_price.salePrice {
						color: var(--text-color-alert);
						padding-right: .5em;
					}
				}

				& .promoPeriod {
					display: inline-block;
					color: var(--text-color-alert);
					font-size: var(--font-size-s);

				}

				& .price_off {
					display: inline-block;
					font-size: .875rem;
					line-height: 1;
					border: 2px solid #ff0000;
					font-weight: bold;
					color: #ff0000;
					padding: 5px;
					margin-left: 10px;
				}

				& .mile_mag_incr {
					&::before {
						content: "(";
					}

					&::after {
						content: "倍)";
					}
				}
			}
		}
	}

	/* 商品アラートエリア */
	& .alert_area {
		& p {
			margin-bottom: 0;
		}

		& .liquor_message {
			color: var(--text-color-alert);
			font-weight: bold;
			font-size: 1.125em;
			margin-bottom: .7em;
			border: 1px solid var(--border-color-alert);
			padding: 5px 10px;
			line-height: 1.5;
		}

		& .old_sales_price_period {
			font-size: var(--font-size-s);
			margin: 1em 0;

			&::before {
				content: "旧販売価格：";
			}

			& span {
				display: inline-block;
				margin-right: 1em;
			}
		}
	}

	/* 商品詳細カート部分 */
	& .area_cart {
		margin-top: 1.5em;
		background-color: #f2f2f2;

		& .area_cart_title {
			background-color: #DBDBDB;
			font-weight: bold;
			font-size: .875rem;
			padding: 10px;
			margin: 0;
		}

		/* SKU選択 */
		& .skuSelectedGroup {
			& .skuClassifyGroup {
				padding: 15px 20px 0;

				& .skuClassifyName {
					font-size: .875rem;
					font-weight: bold;
					margin-bottom: .5em;
				}

				& .sku_choices_wrap {
					& .items {
						display: flex;
						flex-wrap: wrap;
						overflow-x: auto;
						padding-bottom: 10px;
						scrollbar-color: #c0c0c0 transparent;
						scrollbar-width: thin;
						gap: 10px;
					}
				}

				& input[type="radio"] {
					display: none;

					&:checked+label {
						background-color: var(--bg-color-section);

						&::before {
							content: "";
							display: block;
							position: absolute;
							top: 0;
							left: 0;
							bottom: 0;
							right: 0;
							margin: auto;
							border: 3px solid #6D83BC;
							z-index: 1;
						}
					}
				}

				& label {
					position: relative;
					display: inline-block;
					width: auto;
					color: #000;
					background-color: #fff;
					padding: 4px 15px;
					border: 1px solid #ccc;
					width: max-content;
					min-width: 100px;
					max-width: 180px;
					height: 100%;
					cursor: pointer;

					&:hover {
						background-color: var(--bg-color-section);
					}
				}

			}
		}

		.detail_sku_box {
			display: none;
		}

		/* 数量選択・カートボタンエリア */
		& .area_cart_contents {
			display: grid;
			grid-template-columns: 1fr 135px;
			grid-template-rows: auto auto auto;
			padding: 20px;

			/* 数量選択 */
			& .quantity_area {
				grid-column: 1 / 2;
				grid-row: 2 / 3;
				display: grid;
				grid-template-columns: 3em 1fr;
				align-items: center;
				padding-right: 1em;

				& p {
					grid-column: 1 / 2;
					margin: 0;
					padding-right: 1em;
					font-size: .75rem;
					font-weight: bold;
					color: #666565;
				}

				& select {
					grid-column: 2 / 3;
					height: 40px;
					max-width: 176px;
					width: 100%;
				}
			}

			/* カートに入れる */
			& .btn_cart {
				grid-column: 1 / 3;
				grid-row: 3 / 4;
				margin-top: 1em;

				& a.btn_1 {
					position: relative;
					width: 100%;
					font-size: 1.125rem;
					font-weight: bold;
					padding: 10px 30px;
					color: #fff;

					&::before {
						content: "";
						display: block;
						width: 30px;
						height: 30px;
						background: var(--icon-cart-wh);
						background-size: contain;
						margin-right: 10px;
					}
				}
			}

			/* 入荷お知らせボタン・お気に入りボタン */
			& .goods_btn_wrap {
				grid-column: 2 / 3;
				grid-row: 2 / 3;

				& a {
					display: block;
					border-radius: 3px;
					font-size: .875rem;
					white-space: nowrap;
					padding: 4px 10px;
					text-align: center;
					text-decoration: none;
					color: #fff;
					cursor: pointer;

					&:hover {
						opacity: .7;
					}

					& span {
						color: #fff;
						margin-left: .5em;
					}
				}

				& .btn_stock {
					& a {
						background: linear-gradient(to bottom, #818181 0%, #747474 51%, #696969 80%);
						text-shadow: 0 1px 3px rgba(0, 0, 0, .5);
					}

					&.registered {
						& a {
							background: #ccc;
							text-shadow: none;

							& span {
								color: var(--text-color-sub2);
								margin-left: 0;
							}
						}
					}
				}

				& .icon_favorite {
					margin-top: .5em;

					& a {
						background-color: #f53e81;
					}

					&.registered {
						& a {
							background-color: #ccc;

							& span {
								color: var(--text-color-sub2);
								margin-left: 0;
							}
						}
					}
				}
			}
		}
	}
}

@media screen and (max-width: 768px) {
	.goodsDetail_order_area {
		padding-right: 10px;
		margin-top: 40px;

		& .detail_icon_list {
			display: none;
		}

		& .goods_name {
			font-size: 1.25rem;
		}

		& .itemDetailCatchCopy {
			display: block;

			&:has(.detail_copy:empty) {
				display: none;
			}
		}

		& .table.goods_detail {
			& .tr {

				& .th,
				& .td {
					padding: .7em;
				}

				& .th {
					font-size: 14px;
				}
			}
		}

		& .area_cart {

			/* SKU選択肢 */
			& .skuSelectedGroup {
				& .skuClassifyGroup {
					& .sku_choices_wrap {
						& .items {
							flex-wrap: nowrap;
						}
					}
				}
			}

			& .area_cart_contents {
				display: flex;
				flex-wrap: wrap;

				& .quantity_area {
					width: 100%;
					padding-right: 0;

					& select {
						max-width: 100%;
						margin-right: 0;
					}
				}

				& .btn_cart {
					width: 100%;
				}

				& .goods_btn_wrap {
					width: 100%;
					order: 4;
					display: flex;
					justify-content: center;
					align-items: center;
					gap: 10px;
					margin-top: 15px;

					& .btn_stock,
					& .icon_favorite {
						width: 50%;
					}

					& .icon_favorite {
						margin-top: 0;
					}
				}
			}
		}
	}
}

/* アイテム紹介 ---------------------------- */
.goodsDetail_info_area {
	margin: 60px 0;
	color: #000;

	& .detail_info {
		padding-top: 20px;
	}
}

/* バリエーションから見る ---------------------------- */
.sku_variation_area {
	& .variation_name {
		padding-top: .5em;
	}
}

/* ブランド紹介 ---------------------------- */
.brand_info_area {
	& .brand_info_wrap {
		display: grid;
		grid-template-columns: 150px 1fr;
		grid-template-rows: auto;
		max-width: 949px;
		margin: 20px auto 0;
		padding: 0 0 10px;
		gap: 30px;

		& .brand_image_wrap {
			grid-column: 1 / 2;
			grid-row: 1 / 2;
			display: flex;
			justify-content: center;
			align-items: center;
		}

		& .brand_info {
			grid-column: 2 / 3;
			grid-row: 1 / 2;

			& .brand_name {
				font-weight: bold;
				font-size: 130%;
				padding-bottom: 10px;
			}
		}
	}
}

@media screen and (max-width: 768px) {
	.brand_info_area {
		& .accordionContents {
			display: none;
		}

		& .brand_info_wrap {
			display: flex;
			flex-wrap: wrap;
			gap: 0;

			& .brand_image_wrap {
				max-width: 150px;
				margin: 0 auto;
			}

			& .brand_info {
				margin-top: 20px;
				width: 100%;

				& .brand_name {
					font-size: 110%;
				}
			}
		}
	}
}

/* セット内容 ---------------------------- */
.set_contents_area {
	border: solid 3px #e6e6e6;
	margin-top: 60px;

	& .set_contents_title {
		background: #f2f2f2;
		font-weight: bold;
		font-size: 20px;
		padding: .5em;
	}

	& .setContentsList {
		& .setContentsRow {
			display: grid;
			grid-template-columns: 140px 1fr;
			grid-template-rows: auto;
			padding: 20px;
			gap: 15px;

			&+.setContentsRow {
				border-top: 1px solid #C6C6C6;
			}

			& .setContentsGoodsImgItemWrap {
				grid-column: 1 / 2;
				grid-row: 1 / 2;
			}

			& .setContentsGoodsInfoGroup {
				grid-column: 2 / 3;
				grid-row: 1 / 2;

				& .setContentsGoodsName {
					font-weight: bold;
					font-size: 1.125rem;
				}

				& .setContentsGoodsExp {
					position: relative;
					word-break: break-word;
					margin-top: 1em;
					white-space: pre-wrap;
					will-change: max-height;
					overflow: hidden;
					display: -webkit-box;
					-webkit-box-orient: vertical;
					line-clamp: 3;
					/* 3行 */
					-webkit-line-clamp: 3;
					transition: max-height .25s ease;

					&.is-overflow::after {
						content: "";
						position: absolute;
						left: 0;
						right: 0;
						bottom: 0;
						height: 2.4em;
						pointer-events: none;
						background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 40%, #fff 100%);
					}

					&.is-anim {
						display: block;
						-webkit-line-clamp: unset;
						/* JS 管理に切替 */
					}

					@media (prefers-reduced-motion: reduce) {
						.setContentsGoodsExp.is-anim {
							transition: none;
						}
					}
				}

				/* トグルボタン */
				.expToggle {
					margin: 6px auto 0;
					display: flex;
					align-items: center;
					justify-content: center;
					gap: .4em;
					font-size: 0.9rem;
					line-height: 1;
					padding: .5em .8em;
					background-color: transparent;
					border: none;
					cursor: pointer;
					font-weight: bold;

					&::after {
						content: "";
						display: block;
						width: 1em;
						height: 1em;
						background: url(../img/common/icon/arw_blue_b.svg) no-repeat center center / contain;
						transition: 0.2s;
					}

					&[aria-expanded="true"] {
						&::after {
							transform: rotate(180deg);
						}
					}
				}

				/* 開いた状態の見た目（任意） */
				.setContentsGoodsExp.is-open {
					/* style不要。is-clampedを外すだけで全開表示 */
				}

				& .setContentsGoodsSpec {
					margin-top: 1em;

					& .setContentsGoodsSpecList {
						& li {
							text-indent: -1.2em;
							padding-left: 1.2em;

							&::before {
								content: "\25CF";
								margin-right: .2em;
							}
						}
					}
				}
			}
		}
	}
}

.js .setContentsGoodsExp {
	display: -webkit-box;
	line-clamp: 3;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

@media screen and (max-width: 960px) {
	.goodsDetailInner section.set_contents_area {
		width: calc(100% - 20px);
		margin: 40px auto 0;
	}
}

@media screen and (max-width: 768px) {
	.set_contents_area {
		border: none;

		& .accordionContents {
			display: none;
		}

		& .set_contents_title {
			width: 100%;
			font-size: 18px;
			line-height: 1.3;
			padding: .6em 2em .5em .8em;
			background-color: #6D83BC;
		}

		& #setContentsList {
			padding: 0;

			& .setContentsRow {
				padding: 1.5em 0 20px;
				display: flex;
				flex-wrap: wrap;
				gap: 10px;
				border-top: none;
				border-bottom: 1px solid #C6C6C6;

				& .setContentsGoodsImgGroup {
					max-width: 150px;
					margin: 0 auto;
				}

				& .setContentsGoodsInfoGroup {
					width: 100%;

					& .setContentsGoodsName {
						font-size: 1rem;
					}

					& .setContentsGoodsExp {
						font-size: 15px;
						margin-top: .5em;
					}

					& .setContentsGoodsSpec {
						font-size: 15px;
						margin-top: .5em;
						padding-top: .5em;
						border-top: 1px dotted #C6C6C6;
					}
				}
			}
		}
	}
}

/* スペック ---------------------------- */
.goods_spec_area {
	& .table.goods_spec_data {
		margin-top: 20px;
		font-size: 1rem;

		& .tr {
			& .th {
				padding-left: 40px;

				& label {
					font-weight: bold;
				}
			}

			& .td {
				padding: 14px 17px;
			}
		}
	}
}

@media screen and (max-width: 768px) {
	.goods_spec_area {
		& .table.goods_spec_data {
			font-size: .875rem;

			& .tr {

				& .th,
				& .td {
					padding: .8em;
					vertical-align: top;

					& label {
						font-weight: normal;
					}
				}
			}
		}
	}
}

/* この商品に関連したおススメ商品 ---------------------------- */
.swiper-slide a,
.swiper-slide .skuVariationItemArea {
	display: block;
	position: relative;
	padding-top: 1.7em;
	color: var(--text-color-strong);
}

#relatedGoods {
	& p a {
		position: relative;
		color: #000;
		font-size: 1.125rem;
		font-weight: bold;
		padding-left: 20px;
		margin-top: 20px;

		&::before {
			content: "";
			display: inline-block;
			width: 18px;
			height: 18px;
			background: url(../img/common/icon/arw_blue_r.png) center center no-repeat;
			background-size: contain;
			position: absolute;
			left: 0;
			top: 0;
			bottom: 0;
			margin: auto 0;
		}
	}
}

#relatedGoods p {
	display: flex;
	justify-content: flex-end;
}

/* この商品を見た方がよく見ている商品 ---------------------------- */
.recommendIncludeArea {
	& .secTtl {
		display: none;
	}

	& .categoryCarouselAWrap {
		margin-top: 0;
	}

	& .areaBtn {
		display: none;
	}
}

/* 商品レビュー---------------------------- */
.dispReviewInfo {
	& .reviewList {
		margin-top: 20px;

		& .reviewListRow {
			display: grid;
			grid-template-columns: 180px 1fr;
			grid-template-rows: auto;
			margin-bottom: 10px;
			padding: 10px;
			background-color: var(--bg-color-section);

			& .review_info {
				grid-column: 1 / 2;
				grid-row: 1 / 2;
				padding: 10px 5px;

				& span {
					display: block;
					font-size: .875rem;
					color: #000;

					&.addDate {
						margin-top: auto;
						color: #666;
					}
				}
			}

			& .review_contents {
				grid-column: 2 / 3;
				grid-row: 1 / 2;
				background-color: #fff;
				padding: 10px 15px 15px;

				& .evaluation {
					color: #ffd000;
				}

				& .evaluation_score {
					font-weight: bold;
					padding-left: .7em;
				}
			}
		}
	}
}

@media screen and (max-width: 768px) {
	.dispReviewInfo {
		& .reviewList {
			padding: 0 10px;

			& .reviewListRow {
				display: flex;
				flex-wrap: wrap;

				& .review_info {
					display: flex;
					justify-content: space-between;
					align-items: center;
					width: 100%;
					padding: 0;
				}

				& .review_contents {
					width: 100%;
					margin-top: .5em;

					& .evaluation_score {
						font-size: .875rem;
					}
				}
			}
		}

		& .viewAllReviewWrap {
			padding: 0 10px;
		}
	}
}


/*インクルードエリア*/


/*ご注意*/
.attention {
	font-size: 1.0em;
}

.attention ul {
	border: 1px solid #CCC;
	padding: 7px;
}

.attention li p {
	color: #FF0000;
}

.attention li.list {
	text-indent: -1em;
	margin-left: 1em;
}



/* よりどり商品、選択エリア */
#selectGoodsArea {
	display: none;
	padding-top: 10px;
	margin-bottom: 20px;

	.yoridori-close {
		position: absolute;
		top: 8px;
		right: 8px;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 1.25em;
		height: 1.25em;
		background-color: var(--text-color-sub);
		color: #fff;
		border: none;
		border-radius: 30px;
		font-size: 20px;
		line-height: 1;
		cursor: pointer;
		margin-right: 0;
	}
}


/* よりどり商品、商品を選択するボタン */
#selectItem {
	background: #f6f6f6;
	color: #808080;
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: 10px 20px 10px 15px;
	cursor: pointer;
	margin-bottom: 5px;
}

#selectItem:hover {
	opacity: .7;
}

#selectItem::before {
	content: "\f078";
	font-family: "Font Awesome 5 Free";
	font-weight: bold;
	padding-right: 10px;
}

/* よりどり商品、選択説明文 */
.goodsSelectionNumItemWrap {
	font-size: var(--font-size-s);
	margin-bottom: 20px;
}

/* よりどり商品、対象商品見出し */
.itemSelectionGoodsTitle {
	display: block;
	font-size: .875rem;
	background-color: #DBDBDB;
	font-weight: bold;
	padding: 10px;
}

/* よりどり商品、対象商品リスト */
#itemSelectionGoodsList {
	tbody {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: var(--screen-pd-lr);
		background-color: #f2f2f2;
		padding: 20px;

		>tr {
			display: block;
			position: relative;
			background-color: #fff;
			padding: var(--screen-pd-lr);
			border-radius: 5px;
		}
	}

	td {
		display: grid;
		grid-template-columns: max(100px, 30%) 1fr;
		grid-template-rows: auto 1fr;
		grid-template-areas:
			"img name"
			"img num";
		gap: 10px;
		font-size: .93em;

		.goodsSelectionImgThumb {
			grid-area: img;
		}

		.goodsName {
			grid-area: name;
			color: var(--text-color);
		}

		.goodsCountWrap {
			grid-area: num;
			justify-self: end;
			align-self: end;
		}
	}
}

@media screen and (max-width: 600px) {
	#itemSelectionGoodsList {
		tbody {
			grid-template-columns: repeat(1, 1fr);
			padding: 10px;
		}

		td {
			grid-template-columns: 25% 1fr;
			grid-template-rows: auto 1fr;
			grid-template-areas:
				"name name"
				"img num";
		}
	}
}

/* よりどり商品、数量プルダウン */
.goodsCount {
	width: 60px;
	padding: 5px 10px;
	font-size: 18px;
}

/* よりどり商品、現在個数、最大個数 */
.selectedNumItemWrap {
	text-align: center;
	margin-top: 20px;
	font-size: .93em;
}

.goodsSelectionNum,
.selectedNum {
	font-size: 22px;
	font-weight: bold;
}

.selectedNumItemWrap:has(.few) {
	.selectedNum {
		color: var(--text-color-alert);
	}
}

.selectedNumItemWrap:has(.over) {

	.goodsSelectionNum,
	.selectedNum {
		color: var(--text-color-alert);
	}
}

#goodsSelectionNumItemWrap .redBold {
	color: var(--text-color-alert);
}

/* よりどり商品、プログレスバー */
.selectedNumItemWrap progress {
	position: relative;
	top: -7px;
	display: inline-block;
	width: 220px;
	margin: -5px 0 5px auto;
	appearance: none;
	-webkit-appearance: none;
	/* プログレスバーのスタイルをリセット */
	-moz-appearance: none;
	/* プログレスバーのスタイルをリセット */
	background-color: var(--bg-color-section);
	border: var(--bg-color-section);
	border-radius: 5px;
	height: 5px;
}

.selectedNumItemWrap progress::-webkit-progress-bar {
	background-color: var(--bg-color-section);
	border-radius: 5px;
}

.selectedNumItemWrap progress::-webkit-progress-value {
	background-color: var(--color-corporate);
	border-radius: 5px;
}

.selectedNumItemWrap progress.just::-webkit-progress-value {
	background-color: var(--text-color-accent);
}

.selectedNumItemWrap progress.just::-moz-progress-bar {
	background-color: var(--text-color-accent);
}

.selectedNumItemWrap progress.over::-webkit-progress-value {
	background-color: var(--bg-color-alert);
}

.selectedNumItemWrap progress.over::-moz-progress-bar {
	background-color: var(--bg-color-alert);
}



/* よりどり商品、選択した商品を注文する */
#orderSelectedGoodsItemWrap {
	text-align: center;
}

#addCartBySelectedItems a {
	display: inline-block;
	margin: 0 auto;
	text-decoration: none;
	background: #f6f6f6;
	color: #333;
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: 10px 20px;
}

#addCartBySelectedItems a {
	pointer-events: none;
	cursor: default;
	color: #9e9e9e;
}

#addCartBySelectedItems a:hover {
	opacity: 1;
}

#addCartBySelectedItems a.active {
	background: linear-gradient(to bottom, #fe9c21 0%, #f07403 51%, #df6900 80%);
	border: none;
	color: #fff;
	font-weight: bold;
	pointer-events: auto;
	cursor: pointer;
}

#addCartBySelectedItems a.active:hover {
	opacity: .7;
}

body.yoridori-dialog-open {
	overflow: hidden;
}

#yoridoriDialog {
	padding: 0;
}

#yoridoriDialog.ui-dialog-content {
	padding: 16px;
	box-sizing: border-box;
}

@media (max-width: 600px) {
	#yoridoriDialog .ui-dialog-content {
		padding: 12px;
	}
}


/* カート追加モーダル */
.notificationWrapper {
	position: relative;
}

.notificationWrapper .notificationModal01 {
	display: block;
}

.notificationModal {
	background-color: #ffff;
	border-color: #cccccc;
	border-style: solid;
	border-width: 0 0 .1rem;
	padding: 25px;
	position: fixed;
	right: 0%;
	top: -500px;
	/* transform: translateY(-100%); */
	/* 	  visibility: hidden; */
	width: 100%;
	z-index: 910;
	right: 15px;
	box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.notificationWrapper a.btn_sm.notArrow i {
	position: absolute;
	right: 11px;
	top: 50%;
	transform: translateY(-50%);
}

@media screen and (min-width: 768px) {
	.notificationModal {
		border-width: 1px;
		max-width: 400px;
		/* right: 4rem; */
	}
}

@media screen and (max-width: 767px) {
	.notificationModal {
		right: 0;
	}
}

.notificationModal.animate {
	transition: top 0.5s ease-in-out;
}

.notificationModal.active {
	/* transform: translateY(0); */
	/* transition: top 0.5s ease-in; */
	top: 72px;
	/* right: 15px; */
}

@media screen and (min-width: 768px) and (max-width : 1180px) {
	.notificationModal.active {
		top: 6.3vw;
	}
}

@media screen and (max-width: 767px) {
	.notificationModal.active {
		top: 80px;
		/* top: -1072px; */
		/* right: 0; */
	}
}

.notificationHeader {
	align-items: flex-start;
	display: flex;
}

.notificationHeading {
	align-items: center;
	display: flex;
	flex-grow: 1;
	margin: 0;
}

.notificationHeading i {
	margin-right: 5px;
}

.notificationHeading .checkmarkIcon01 {
	color: #cccccc;
	margin-right: 1rem;
	width: 1.3rem;
}

.notificationWrapper .notificationClose {
	margin: -10px -10px;
	padding: 6px;
	width: 35px;
	height: 35px;
}

.notificationLinks {
	text-align: center;
	/* margin-top: 10px; */
}

.notificationLinks>* {
	/* margin-top: 1rem; */
}

.notificationProduct {
	align-items: flex-start;
	display: flex;
	/* padding: 2rem 3rem; */
	padding: 20px 0;
}

.notificationProduct dl {
	margin: 0;
}

.notificationProductName {
	margin: 0 .5rem;
}

.notificationProductNameWrapper dl {
	font-size: .875em;
	margin: 5px 0 0 10px;
	/* float: left ; */
	clear: left;
}

.notificationProductNameWrapper dt,
.notificationProductNameWrapper dd {
	flex-basis: 100%;
}

.notificationProductNameWrapper dt {
	float: left;
	clear: both;
}

.notificationProductNameWrapper dd {
	width: 200%;
}

.notificationProductNameWrapper dt:after {
	content: ":";
	margin: 0 5px;
}

.notificationProductNameWrapper dd {
	margin-left: 5px;
	/* float: left ; */
}

.notificationWrapper .notificationLinks .notificationBtn {
	position: relative;
	width: 100%;
	padding-top: 11px;
	padding-bottom: 11px;
	color: #fff;
	background-color: #ff7800;
}

.notificationWrapper .notificationLinks .notificationContinue {
	margin-top: 10px;
	display: block;
	position: relative;
	width: 100%;
	background-color: #E6E6E6;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
}

.notificationWrapper .notificationLinks .notificationContinue .fa-times {
	position: absolute;
	right: 11px;
	top: 50%;
	transform: translateY(-50%);
}

@media screen and (min-width: 768px) {
	.notificationModal {
		right: 15px;
		left: auto;
	}
}

.notificationWrapper .cartInErrorText {
	color: #b94a48;
	display: none;
}

.notificationWrapper .is_error .cartInErrorText {
	display: block;
}

.notificationWrapper .is_error .notificationHeading {
	display: none;
}
