/* .product ******************/

.product{

	@media screen and (min-width: 768px) {
		padding: 40rem;
		background-color: rgba(var(--COL-CML-rgb),0.15);
		.product_img_info,
		.product_explain{
			width: 100%;
			max-width: 880rem;
			margin: 0 auto;
		}
	}
	@media screen and (max-width: 767px) {
		padding-left: 16rem;
		padding-right: 16rem;
	}

	.product_img_info{
		display: flex;
		@media screen and (min-width: 768px) {
			flex-direction: row-reverse;
			justify-content: space-between;
			align-items: stretch;
			> .product_img{
				width: 62.5%;
			}
			> .product_info{
				width: 32%
			}
		}
		@media screen and (max-width: 767px) {
			flex-direction: column-reverse;
			align-items: stretch;
			gap: 32rem;
		}

		> .product_info{
			display: flex;
			flex-direction: column;
			align-items: stretch;
			gap: 1em;
			> .label_product_name{
				padding-top: 0.4em;
				font-family: var(--FNT-bold);
				border-bottom: solid 3rem rgba(var(--COL-TXT-rgb), 0.6);
				&::after{
					display: block;
					width: 100%;
					height: 1rem;
					content: "";
					margin: 0.4em 0 2rem;
					background-color: rgba(var(--COL-TXT-rgb), 0.6);
				}
				@media screen and (min-width: 768px) {
					font-size: 22rem;
				}
				@media screen and (max-width: 767px) {
					font-size: 20rem;
				}
			}
			> .expl{
				@media screen and (min-width: 768px) {
					font-size: 15rem;
				}
				@media screen and (max-width: 767px) {
				}
			}
			> .product_info_price{
				> .product_price{
					display: flex;
					justify-content: flex-start;
					align-items: center;
					gap: 1em;
					padding-bottom: 0.5em;
					> .price{
						@media screen and (min-width: 768px) {
							font-size: 20rem;
						}
						@media screen and (max-width: 767px) {
							font-size: 18rem;
						}
					}
				}
				> dl{
					display: flex;
					justify-content: flex-start;
					align-items: flex-start;
					> dt{
						width: 5em;
					}
					> dd{
						width: calc(100% - 5em);
					}
				}
			}
			> .product_info_option{
				display: flex;
				flex-direction: column;
				align-items: flex-start;
				gap: 1em;
				@media screen and (min-width: 768px) {
					font-size: 15rem;
				}
				@media screen and (max-width: 767px) {
					font-size: 14rem;
				}
				> .option_tables,
				> .option_selects{
					display: flex;
					flex-direction: column;
					align-items: flex-start;
					gap: 1em;
					width: 100%;
				}
				> .option_selects{
					> .option_select{
						width: 100%;
						> div{
							padding-bottom: 0.2em;
						}
					}
				}
			}
			> .product_info_order{
				display: flex;
				flex-direction: column;
				align-items: center;
				@media screen and (min-width: 768px) {
					gap: 0.75em;
					padding: 1.25em 1.5em;
					background-color: rgba(var(--COL-WHT-rgb),0.5);
				}
				@media screen and (max-width: 767px) {
					gap: 1em;
					padding: 1.5em 1.5em;
					background-color: rgba(var(--COL-WHT-rgb),0.7);
				}
				.order_num{
					display: flex;
					justify-content: flex-start;
					align-items: center;
					gap: 1em;
					.input_num{
						display: flex;
						justify-content: flex-start;
						align-items: center;
						gap: 0.2em;
						@media screen and (min-width: 768px) {
						}
						@media screen and (max-width: 767px) {
							font-size: 18rem;
						}
						> a{
							display: block;
							padding: 0.5em;
						}
					}
				}
				.order_btn{
					display: flex;
					justify-content: center;
					width: 100%;
				}
				.order_gift{
					padding-top: 0.25em;
					.label{
						display: flex;
						justify-content: center;
						align-items: center;
						gap: 0.25em;
						&::before{
							display: block;
							width: 16rem;
							height: 16rem;
							content: "";
							background: url(https://img21.shop-pro.jp/PA01518/289/etc_base64/aWNuX2dpZnQ.png?cmsp_timestamp=20250728105303) 50% 50% no-repeat;
							background-size: contain;
						}
						@media screen and (min-width: 768px) {
							font-size: 14rem;
						}
					}
				}
			}
			.product_info_link{
				display: flex;
				flex-direction: column;
				align-items: stretch;
				gap: 0.75em;
				.list_link{
					> li{
						display: flex;
						justify-content: flex-start;
						> a{
							display: flex;
							justify-content: flex-start;
							align-items: center;
							gap: 10rem;
							@media screen and (min-width: 768px) {
								padding: 0.1em 0.2em;
								font-size: 14rem;
								transition: color 0.3s;
								&:hover{
									color: rgba(var(--COL-TXT-rgb), 0.6);
									text-decoration: underline;
									text-decoration-color: rgba(var(--COL-TXT-rgb),0.6);
								}
							}
							@media screen and (max-width: 767px) {
								padding: 0.3em 0.2em;
								font-size: 13rem;
							}
							&::before{
								display: block;
								width: 0.4em;
								height: 0.4em;
								content: "";
								border-top: solid 1rem var(--COL-TXT);
								border-right: solid 1rem var(--COL-TXT);
								transform: rotate(45deg);
								transition: border 0.3s;
							}
						}
					}
				}
			}
			
		}
		> .product_img{
			.p-product-img__main{
				/*padding: 1.7%;*/
				background-color: rgba(var(--COL-WHT-rgb),0.8);
				.p-product-img__main-item{
					display: flex;
					justify-content: center;
					align-items: center;
					/*background-color: rgba(var(--COL-BLK-rgb),0.08);*/
				}
			}
			.p-product-img__thumb{
				.p-product-thumb-list{
					display: flex;
					flex-wrap: wrap;
					justify-content: flex-start;
					align-items: stretch;
					.p-product-thumb-list__item{
						/*display: flex;
						justify-content: center;
						align-items: center;
						background-color: rgba(var(--COL-BLK-rgb),0.08);*/
						background-color: rgba(var(--COL-WHT-rgb),1);
						cursor: pointer;
						.p-product-thumb-list__img{
							position: relative;
							width: 100%;
							padding-top: 75%;
							> img{
								position: absolute;
								top: 0;
								left: 0;
								width: 100%;
								height: 100%;
								object-fit: cover;
							}
						}
					}
					.p-product-thumb-list__item.is-current{
						cursor: default;
						.p-product-thumb-list__img{
						  opacity: 0.7;
						}
					}
					@media screen and (min-width: 768px) {
						gap: 16rem;
						padding-top: 16rem;
						.p-product-thumb-list__item{
							width: calc(25% - 12rem);
						}
					}
					@media screen and (max-width: 767px) {
						gap: 8rem;
						padding-top: 8rem;
						.p-product-thumb-list__item{
							width: calc(25% - 6rem);
						}
					}
				}
			}
		}

	}
	.product_explain{
		@media screen and (min-width: 768px) {
			margin-top: 3em;
			padding: 3.5em 5em;
			background-color: rgba(var(--COL-WHT-rgb),0.8);
			border-radius: 0.5em;
		}
		@media screen and (max-width: 767px) {
			margin-top: 3em;
			margin-left: -16rem;
			margin-right: -16rem;
			padding: 3em 1.5em;
			background-color: rgba(var(--COL-WHT-rgb),0.9);
			border-radius: 1.5em;
		}

		> .body{
			line-height: 1.75;
			ul{
				list-style: disc;
				padding-left: 1em;
			}
		}
	}
}

/* MacOS safari 対応のため入れ子にしない */
.product .product_img_info .product_info .product_info_option .option_tables table.table-bordered{
	width: 100%;
	margin-bottom: 0;
	border: none;
	border-collapse: collapse;
}
.product .product_img_info .product_info .product_info_option .option_tables table.table-bordered td,
.product .product_img_info .product_info .product_info_option .option_tables table.table-bordered th{
	padding: 0.25em 0;
	border: none;
	vertical-align: middle;
	text-align: left;
	line-height: 1.5;
	font-weight: var(--WGT-M);
}
.product .product_img_info .product_info .product_info_option .option_tables table.table-bordered td{
	padding-left: 0.5em;
}
.product .product_img_info .product_info .product_info_option .option_tables table.table-bordered td > div{
	float: left;
	padding-right: 0.5em;
}

/* MacOS safari 対応のため入れ子にしない */
.product_explain .body dl{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: stretch;
	margin-top: 2em;
	line-height: 1.5;
	border-bottom: solid 1rem rgba(var(--COL-TXT-rgb), 0.4);
	@media screen and (min-width: 768px) {
		font-size: 14rem;
	}
	@media screen and (max-width: 767px) {
		font-size: 13rem;
	}
}
.product_explain .body dl dt{
	width: 8em;
	font-weight: var(--WGT-M);
	text-align: left;
	padding: 0.75em 0;
	border-top: solid 1rem rgba(var(--COL-TXT-rgb), 0.4);
	@media screen and (min-width: 768px) {
		width: 10em;
	}
	@media screen and (max-width: 767px) {
		width: 8em;
	}
}
.product_explain .body dl dd{
	text-align: left;
	margin-left: 0;
	padding: 0.75em 0;
	border-top: solid 1rem rgba(var(--COL-TXT-rgb), 0.4);
	@media screen and (min-width: 768px) {
		width: calc(100% - 10em);
	}
	@media screen and (max-width: 767px) {
		width: calc(100% - 8em);
	}
}

/* form ************************/

/* MacOS safari 対応のため入れ子にしない */
.product_info input[type="text"]{
	padding:0.6em;
	background-color:var(--COL-WHT);
	border:solid 1rem var(--COL-GRY);
	border-radius:3rem;
	-webkit-appearance: none;
}
.product_info .input_num input[type="text"]{
	width: 4em;
	height: 2.5em;
	text-align: center;
}
@media screen and (min-width: 768px) {
	.product_info .input_num input[type="text"]{
		width: 56px;
		height: 35px;
	}
}

.product_info select {
	padding:0.6em;
	background-color:var(--COL-WHT);
	border:solid 1rem var(--COL-GRY);
	border-radius:3rem;
	/* -webkit-appearance: none;セレクトボックス系は外さない */
}
.product_info input[type="checkbox"],
.product_info input[type="radio"]{
	vertical-align: middle;
}

.product_info button[type="submit"],
.product_info button[type="button"] {
	-webkit-appearance: none;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5em;
	color:var(--COL-WHT);
	letter-spacing: 0.05em;
	border-radius: 3rem;
	transition: all 0.3s ease-out;
	position: relative;
	cursor:pointer;
	line-height: 1;
}
.product_info button[type="submit"] {
	width: 100%;
	height: 3em;
	font-size: 18rem;
	background: var(--COL-TXT);
	border: solid 1rem var(--COL-TXT);
}
.product_info button[type="submit"] svg{
	width: 24px;
	height: 24px;
	fill: var(--COL-WHT);
	transition-property: fill;
}
.product_info button[type="submit"]:hover{
	color: var(--COL-TXT);
	background-color: var(--COL-WHT);
}
.product_info button[type="submit"]:hover svg{
	fill: var(--COL-TXT);
}
.product_info button[type="button"] {
	width: 8em;
	height: 2.5em;
	font-size: 1.2em;
	background: var(--COL-GRY);
	border: solid 1rem var(--COL-GRY);
}
.product_info button[type="button"]:hover{
	color: var(--COL-GRY);
	background-color: var(--COL-WHT);
}
.product_info button[type="button"].btn_disabled {
	cursor:default;
}
.product_info button[type="button"]:hover{
	color: var(--COL-WHT);
	background-color: var(--COL-GRY);
}

.stock_error {
  color: var(--COL-RED);
}

