/* =========================================================================
   Little Shindig — WooCommerce
   ========================================================================= */

.ls-shop-section {
	background-color: var(--ls-maroon-deep);
	color: var(--ls-cream);
}

.ls-shop-section .ls-page__title { color: var(--ls-gold); }

.ls-shop-grid { margin-block: 2rem; }

/* Notices ---------------------------------------------------------------- */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--ls-gold);
	background: rgba(255, 255, 255, 0.08);
	color: inherit;
	font-size: 0.95rem;
}

.woocommerce-error { border-left-color: #c0392b; }

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	margin-left: 1rem;
}

/* Ordering / result count ------------------------------------------------ */
.woocommerce-result-count,
.woocommerce-ordering {
	display: inline-block;
	margin: 0 0 1.25rem;
	font-size: 0.9rem;
}

.woocommerce-ordering { float: right; }
.woocommerce-ordering select { width: auto; }

/* Single product --------------------------------------------------------- */
.single-product .ls-shop-section .product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

@media (max-width: 820px) {
	.single-product .ls-shop-section .product { grid-template-columns: 1fr; }
}

/*
 * WooCommerce's own layout stylesheet floats the gallery at 48% of its parent.
 * Inside this grid that halves it a second time, so the photo came out at a
 * quarter width with a column of empty space beside it.
 */
.single-product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin-bottom: 0;
}

.single-product .woocommerce-product-gallery__wrapper { margin: 0; }

.single-product .woocommerce-product-gallery img {
	width: 100%;
	height: auto;
	border: 3px solid var(--ls-gold);
	border-radius: 2px;
}

.single-product div.product .summary {
	width: 100% !important;
	float: none !important;
	margin-bottom: 0;
}

.single-product .product_title {
	font-size: clamp(1.9rem, 1.4rem + 2vw, 3rem);
	color: var(--ls-gold);
}

.single-product .price {
	font-size: 1.3rem;
	color: var(--ls-cream);
	margin-bottom: 1rem;
}

.single-product .woocommerce-product-details__short-description { margin-bottom: 1.25rem; }

.ls-product-includes { margin-bottom: 1.5rem; }

.single-product .variations {
	width: 100%;
	margin-bottom: 1rem;
	border-collapse: collapse;
}

.single-product .variations th,
.single-product .variations td {
	padding: 0.35rem 0;
	text-align: left;
	vertical-align: middle;
}

.single-product .variations label { font-size: 0.9rem; }

.single-product .quantity input[type="number"] { width: 5.5rem; }

.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.single-product form.variations_form { display: block; }

.single-product .product_meta {
	font-size: 0.85rem;
	opacity: 0.75;
}

.woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: 2.5rem;
}

.woocommerce-tabs .tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	margin: 0 0 1.25rem;
	padding: 0 0 0.75rem;
	border-bottom: 1px solid rgba(225, 223, 217, 0.3);
	list-style: none;
}

.woocommerce-tabs .tabs a {
	color: inherit;
	text-decoration: none;
	font-size: 0.95rem;
}

.woocommerce-tabs .tabs li.active a { color: var(--ls-gold); }

.related.products,
.upsells.products {
	grid-column: 1 / -1;
	margin-top: 3rem;
}

.related.products > h2,
.upsells.products > h2 {
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.2rem);
	color: var(--ls-gold);
}

.related.products ul.products,
.upsells.products ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 1000px) {
	ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	ul.products { grid-template-columns: 1fr; }
}

/* Buttons ---------------------------------------------------------------- */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.6rem;
	border: 1px solid var(--ls-gold);
	border-radius: var(--ls-radius);
	background: var(--ls-gold);
	color: var(--ls-ink);
	font-family: var(--ls-font-body);
	font-size: 0.95rem;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--ls-green);
	border-color: var(--ls-green);
	color: var(--ls-white);
}

.woocommerce .button.alt { background: var(--ls-green); border-color: var(--ls-green); color: var(--ls-white); }

/* Cart ------------------------------------------------------------------- */
.woocommerce-cart .ls-shop-section table.shop_table,
.woocommerce-checkout .ls-shop-section table.shop_table {
	width: 100%;
	margin-bottom: 2rem;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
	padding: 0.85rem 0.75rem;
	border-bottom: 1px solid rgba(225, 223, 217, 0.25);
	text-align: left;
	vertical-align: middle;
}

.woocommerce-cart table.shop_table img { width: 72px; height: auto; }

.cart-collaterals {
	display: grid;
	justify-content: end;
}

.cart_totals {
	min-width: min(26rem, 100%);
	padding: 1.5rem;
	border: 2px solid rgba(225, 223, 217, 0.3);
}

.cart_totals h2 { font-size: 1.4rem; color: var(--ls-gold); }

.woocommerce-cart .actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.woocommerce-cart .coupon { display: flex; gap: 0.5rem; }
.woocommerce-cart .coupon input { width: auto; }

/* Checkout --------------------------------------------------------------- */
.woocommerce-checkout .col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
}

@media (max-width: 820px) {
	.woocommerce-checkout .col2-set { grid-template-columns: 1fr; }
}

.woocommerce-checkout h3 { font-size: 1.35rem; color: var(--ls-gold); }

.woocommerce-checkout .form-row { margin-bottom: 1rem; }
.woocommerce-checkout label { display: block; margin-bottom: 0.3rem; font-size: 0.9rem; }

#order_review {
	margin-top: 2rem;
	padding: 1.5rem;
	border: 2px solid rgba(225, 223, 217, 0.3);
}

/* Sale flash ------------------------------------------------------------- */
.onsale {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 2;
	padding: 0.3rem 0.7rem;
	background: var(--ls-green);
	color: var(--ls-white);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Pagination ------------------------------------------------------------- */
.woocommerce-pagination ul,
.ls-shop-section .page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce-pagination a,
.woocommerce-pagination span {
	display: grid;
	place-items: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding-inline: 0.5rem;
	border: 1px solid rgba(225, 223, 217, 0.4);
	color: inherit;
	text-decoration: none;
}

.woocommerce-pagination .current {
	background: var(--ls-gold);
	border-color: var(--ls-gold);
	color: var(--ls-ink);
}
