/*
 * Rupture Fest — WooCommerce Styles
 * Overrides WooCommerce defaults to match the festival theme.
 */

/* =====================================================
   SHOP PAGE — PRODUCT GRID
===================================================== */
.rf-woo-wrap { padding: 60px 0; }

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--ink);
	color: var(--bone);
	border-left: 8px solid var(--hazard);
	border-top: 4px solid var(--blaze);
	box-shadow: 4px 4px 0 rgba(0,0,0,.25);
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	display: block;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
	font-family: var(--rf-heading-font);
	font-size: 20px;
	text-transform: uppercase;
	color: var(--bone);
	padding: 14px 16px 4px;
	margin: 0;
}

.woocommerce ul.products li.product .price {
	color: var(--hazard);
	font-weight: 700;
	font-size: 16px;
	padding: 0 16px 10px;
	display: block;
}

.woocommerce ul.products li.product .price del {
	color: var(--concrete);
	font-size: 13px;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
	background: var(--blaze);
	color: var(--bone);
	border: none;
	padding: 12px 18px;
	font-family: var(--rf-body-font);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
	display: block;
	text-align: center;
	margin: auto 16px 16px;
	text-decoration: none;
	transition: background .15s;
}

.woocommerce ul.products li.product .button:hover {
	background: var(--hazard);
	color: var(--ink);
}

/* Sale badge */
.woocommerce ul.products li.product .onsale {
	background: var(--hazard);
	color: var(--ink);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	border-radius: 0;
	padding: 4px 8px;
	min-height: auto;
	min-width: auto;
	line-height: 1.4;
}

/* =====================================================
   SINGLE PRODUCT PAGE
===================================================== */
.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: start;
}

.woocommerce div.product .woocommerce-product-gallery {
	border: 3px solid var(--ink);
	box-shadow: 6px 6px 0 rgba(0,0,0,.2);
}

.woocommerce div.product .summary {
	padding: 20px 0;
}

.woocommerce div.product .product_title {
	font-family: var(--rf-heading-font);
	font-size: clamp(28px, 4vw, 46px);
	text-transform: uppercase;
	color: var(--ink);
	margin: 0 0 10px;
}

.woocommerce div.product .price {
	font-size: 26px;
	font-weight: 700;
	color: var(--blaze);
	margin-bottom: 18px;
	display: block;
}

.woocommerce div.product .single_add_to_cart_button {
	background: var(--blaze);
	color: var(--bone);
	border: none;
	padding: 16px 32px;
	font-family: var(--rf-body-font);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 4px 4px 0 var(--hazard);
	transition: transform .15s, box-shadow .15s;
}

.woocommerce div.product .single_add_to_cart_button:hover {
	transform: translate(-2px,-2px);
	box-shadow: 6px 6px 0 var(--hazard);
}

/* Quantity input */
.woocommerce div.product .quantity input {
	border: 2px solid var(--ink);
	font-size: 16px;
	padding: 8px 12px;
	font-family: var(--rf-body-font);
	width: 70px;
}

/* =====================================================
   CART & CHECKOUT
===================================================== */
.woocommerce table.shop_table {
	border: 3px solid var(--ink);
	border-collapse: collapse;
	width: 100%;
}

.woocommerce table.shop_table th {
	background: var(--ink);
	color: var(--bone);
	font-family: var(--rf-heading-font);
	font-size: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
	padding: 12px 16px;
	border: none;
}

.woocommerce table.shop_table td {
	padding: 14px 16px;
	border-bottom: 2px solid var(--bone-dim);
	vertical-align: middle;
}

.woocommerce table.cart td.product-name a {
	font-weight: 700;
	color: var(--ink);
	text-decoration: none;
}

.woocommerce table.cart .cart_item:hover td {
	background: rgba(242,217,15,.08);
}

/* Cart totals box */
.woocommerce .cart-collaterals .cart_totals {
	background: var(--ink);
	color: var(--bone);
	padding: 24px;
	border-top: 4px solid var(--hazard);
}

.woocommerce .cart_totals h2 {
	font-family: var(--rf-heading-font);
	font-size: 22px;
	color: var(--bone);
	text-transform: uppercase;
	margin-bottom: 16px;
}

.woocommerce .cart_totals table td,
.woocommerce .cart_totals table th {
	color: var(--bone);
	border-color: var(--concrete);
}

.woocommerce .cart_totals .order-total td,
.woocommerce .cart_totals .order-total th {
	color: var(--hazard);
	font-weight: 700;
	font-size: 18px;
}

/* Checkout button */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--blaze) !important;
	color: var(--bone) !important;
	border: none;
	padding: 16px 28px;
	font-family: var(--rf-body-font);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	border-radius: 0;
	box-shadow: 4px 4px 0 var(--hazard);
	transition: transform .15s, box-shadow .15s;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce a.button.alt:hover {
	transform: translate(-2px,-2px);
	box-shadow: 6px 6px 0 var(--hazard);
	background: var(--blaze) !important;
}

/* Checkout form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
	border: 2px solid var(--ink);
	padding: 10px 14px;
	font-family: var(--rf-body-font);
	font-size: 13px;
	border-radius: 0;
	width: 100%;
	box-sizing: border-box;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
	outline: 2px solid var(--hazard);
	border-color: var(--ink);
}

.woocommerce form .form-row label {
	font-size: 12px;
	letter-spacing: 1px;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--ink);
}

/* Order notes */
.woocommerce form .form-row.notes textarea {
	min-height: 100px;
}

/* =====================================================
   NOTICES (success, error, info)
===================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top: none;
	border-left: 8px solid var(--hazard);
	background: var(--ink);
	color: var(--bone);
	padding: 14px 20px;
	margin-bottom: 20px;
	list-style: none;
}

.woocommerce-error {
	border-left-color: var(--blaze);
}

.woocommerce-message a.button,
.woocommerce-info a.button {
	background: var(--hazard);
	color: var(--ink);
	padding: 8px 16px;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
	float: right;
	margin-top: -4px;
}

/* =====================================================
   HEADER CART BUTTON
===================================================== */
.rf-cart-btn {
	position: relative;
	color: var(--bone);
	text-decoration: none;
	font-size: 20px;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border: 2px solid var(--bone-dim);
	transition: border-color .15s;
}

.rf-cart-btn:hover {
	border-color: var(--hazard);
}

.rf-cart-count {
	background: var(--blaze);
	color: var(--bone);
	font-size: 11px;
	font-weight: 700;
	font-family: var(--rf-body-font);
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: -8px;
	right: -8px;
}

/* =====================================================
   HOMEPAGE MERCH SECTION
===================================================== */
.rf-merch { background: var(--ink); padding: 60px 0; }
.rf-merch .section-head h2 { color: var(--bone); }

.rf-product-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	margin-top: 10px;
}

.rf-product-card {
	background: var(--bone);
	color: var(--ink);
	text-decoration: none;
	border-left: 8px solid var(--blaze);
	border-top: 4px solid var(--hazard);
	box-shadow: 4px 4px 0 rgba(0,0,0,.3);
	display: flex;
	flex-direction: column;
	transition: transform .15s, box-shadow .15s;
}

.rf-product-card:hover {
	transform: translate(-2px,-2px);
	box-shadow: 6px 6px 0 rgba(0,0,0,.35);
}

.rf-product-img img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	display: block;
	filter: contrast(1.05);
}

.rf-product-info {
	padding: 14px 16px;
}

.rf-product-info h3 {
	font-family: var(--rf-heading-font);
	font-size: 18px;
	text-transform: uppercase;
	margin: 0 0 6px;
}

.rf-product-price {
	font-weight: 700;
	color: var(--blaze);
	font-size: 15px;
}

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width: 860px) {
	.woocommerce div.product {
		grid-template-columns: 1fr;
	}
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.rf-product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 540px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.rf-product-grid {
		grid-template-columns: 1fr;
	}
}

/* =====================================================
   SHOP SIDEBAR
===================================================== */

/* Two-column layout when sidebar is active */
.rf-shop-has-sidebar .rf-woo-wrap {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 40px;
	align-items: start;
}

#rf-shop-sidebar {
	position: sticky;
	top: 90px;
}

/* Individual widget */
.rf-shop-widget {
	background: var(--ink);
	color: var(--bone);
	margin-bottom: 24px;
	border-left: 8px solid var(--hazard);
	border-top: 4px solid var(--blaze);
	padding: 20px 20px 16px;
}

.rf-widget-title {
	font-family: var(--rf-heading-font);
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--hazard);
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--concrete);
}

/* Widget links */
.rf-shop-widget a {
	color: var(--bone);
	text-decoration: none;
	font-size: 13px;
}
.rf-shop-widget a:hover {
	color: var(--hazard);
}

/* Widget lists (categories, tags) */
.rf-shop-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.rf-shop-widget ul li {
	padding: 6px 0;
	border-bottom: 1px solid rgba(255,255,255,.08);
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 13px;
}
.rf-shop-widget ul li:last-child {
	border-bottom: none;
}
.rf-shop-widget ul li .count {
	background: var(--concrete);
	color: var(--bone);
	font-size: 10px;
	padding: 2px 6px;
	font-weight: 700;
}

/* WooCommerce price filter widget */
.rf-shop-widget .price_slider_wrapper .ui-slider {
	background: var(--concrete);
	border: none;
	border-radius: 0;
	height: 4px;
}
.rf-shop-widget .price_slider_wrapper .ui-slider-range {
	background: var(--hazard);
	border-radius: 0;
}
.rf-shop-widget .price_slider_wrapper .ui-slider-handle {
	background: var(--bone);
	border: 2px solid var(--hazard);
	border-radius: 0;
	width: 14px;
	height: 14px;
	top: -5px;
}
.rf-shop-widget .price_slider_amount {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 12px;
}
.rf-shop-widget .price_slider_amount .button {
	background: var(--hazard) !important;
	color: var(--ink) !important;
	border: none;
	padding: 6px 14px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
}
.rf-shop-widget .price_slider_amount .price_label {
	font-size: 13px;
	color: var(--bone-dim);
}

/* Search widget */
.rf-shop-widget .wp-block-search__input,
.rf-shop-widget input[type="search"],
.rf-shop-widget input[type="text"] {
	width: 100%;
	background: var(--bone);
	border: 2px solid var(--concrete);
	padding: 8px 12px;
	font-family: var(--rf-body-font);
	font-size: 13px;
	color: var(--ink);
	box-sizing: border-box;
}
.rf-shop-widget input[type="submit"],
.rf-shop-widget .wp-block-search__button {
	background: var(--blaze);
	color: var(--bone);
	border: none;
	padding: 8px 14px;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	width: 100%;
	margin-top: 8px;
}

/* Empty sidebar admin hint */
.rf-shop-sidebar-empty {
	background: var(--ink);
	border-left: 8px solid var(--concrete);
	border-top: 4px solid var(--concrete);
	padding: 20px;
	font-size: 12px;
}
.rf-shop-sidebar-empty a {
	color: var(--hazard);
}

/* Responsive — sidebar goes below on tablet */
@media (max-width: 860px) {
	.rf-shop-has-sidebar .rf-woo-wrap {
		grid-template-columns: 1fr;
	}
	#rf-shop-sidebar {
		position: static;
	}
}
