/* .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_tables{
					> table{
						width: 100%;
						margin-bottom: 0;
						border: none;
						td, th{
							padding: 0.25em 0;
							border: none;
							vertical-align: middle;
							text-align: left;
							line-height: 1.5;
							font-weight: var(--WGT-M);
						}
						td{
							padding-left: 0.5em;
						}
						td > div{
							float: left;
							padding-right: 0.5em;
						}
					}
				}
				> .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;
			}
			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;
				}
				> 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;
					}
				}
				> 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 ************************/
.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;
	}
	.input_num input[type="text"]{
		width: 4em;
		height: 2.5em;
		text-align: center;
	}
	select {
		padding:0.6em;
		background-color:var(--COL-WHT);
		border:solid 1rem var(--COL-GRY);
		border-radius:3rem;
		/* -webkit-appearance: none;セレクトボックス系は外さない */
	}
	input[type="checkbox"],
	input[type="radio"]{
		vertical-align: middle;
	}

	button[type="submit"],
	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;
	}
	button[type="submit"] {
		width: 100%;
		height: 3em;
		font-size: 18rem;
		background: var(--COL-TXT);
		border: solid 1rem var(--COL-TXT);
		svg{
			width: 24rem;
			height: 24rem;
			fill: var(--COL-WHT);
			transition-property: fill;
		}
		&:hover{
			color: var(--COL-TXT);
			background-color: var(--COL-WHT);
			svg{
				fill: var(--COL-TXT);
			}
		}
	}
	button[type="button"] {
		width: 8em;
		height: 2.5em;
		font-size: 1.2em;
		background: var(--COL-GRY);
		border: solid 1rem var(--COL-GRY);
		&:hover{
			color: var(--COL-GRY);
			background-color: var(--COL-WHT);
		}
	}
	button[type="button"].btn_disabled {
		cursor:default;
		&:hover{
			color: var(--COL-WHT);
			background-color: var(--COL-GRY);
		}
	}

}

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

