/*
 * Single product page: states the template's style.css does not cover.
 * Loaded on product pages only (inc/woo-single.php).
 */

/* WooCommerce notices (added to cart, stock errors) between the banner and the product. */
.vsb-single-notices .woocommerce-message,
.vsb-single-notices .woocommerce-info,
.vsb-single-notices .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 30px;
	margin-top: 40px;
	padding: 18px 30px;
	background: #faf9ff;
	border: 1px solid #eeeeee;
	border-left: 3px solid #12a33b;
	font-size: 16px;
	line-height: 170%;
	color: #222222;
}
.vsb-single-notices .woocommerce-error {
	flex-direction: column;
	align-items: flex-start;
	border-left-color: #d05278;
}
.vsb-single-notices .woocommerce-info {
	border-left-color: #d05278;
}
.vsb-single-notices .woocommerce-message .button,
.vsb-single-notices .woocommerce-info .button {
	order: 2;
	margin-left: auto;
	font-size: 14px;
	text-transform: uppercase;
}

/* Quantity counter: velvet-checkout.css sets 16px on every .counter-input.
   The template's product counter uses the browser's default input size. */
.vsb-add-to-cart-form .counter-box input.counter-input {
	font-size: 13.3333px;
}

/* Stock line: the template only has the green in-stock state. */
.product-stock.out-of-stock {
	color: #d05278;
}
.product-stock.available-on-backorder {
	color: #666666;
}

/* Wish button while the product is in the wishlist, like the template's active card heart. */
.product-buttons .js-wishlist-toggle.active {
	background: #d05278;
	border-color: #d05278;
	color: #ffffff;
}
/* The cart button is a <button> here, so the template's mobile .btn:first-of-type
   gap would also land under the wish link. */
@media screen and (max-width: 767px) {
	.product-buttons button.btn + .js-wishlist-toggle {
		margin-bottom: 0;
	}
}

/* Review stars: the template shows five full stars; unearned ones are grey. */
.review-item__rating .star-rating li.star-rating__off i {
	color: #dddddd;
}
.review-item__content p + p {
	margin-top: 10px;
}
/* A reply has no rating, so no divider after its date. */
.review-item__head > .review-item__author:last-child .review-item__date:after {
	display: none;
}

/* Review form: keyboard focus on the stars, and the text shown instead of the form. */
.vsb-review-form .rating i:focus-visible {
	outline: 1px solid #d05278 !important;
	outline-offset: 2px;
}
.post-comment__form .vsb-review-note {
	position: relative;
	z-index: 10;
}

/* Description tab: product copy uses paragraphs, h3 subheadings and lists. */
#product-tab_description > * + * {
	margin-top: 15px;
}
#product-tab_description h3 {
	font-size: 24px;
	line-height: 130%;
	margin-top: 30px;
}
#product-tab_description ul,
#product-tab_description ol {
	padding-left: 20px;
}
#product-tab_description li {
	list-style: disc;
	font-size: 16px;
	line-height: 170%;
	color: #666666;
}
#product-tab_description ol li {
	list-style: decimal;
}
