/* ==========================================================================
   Clickbay — WooCommerce styling (shop, product, cart, checkout, account)
   ========================================================================== */

.woocommerce .woocommerce-result-count { color: var(--cb-muted); font-size: .92rem; margin: 0 0 24px; line-height: 48px; }
.woocommerce .woocommerce-ordering { margin: 0 0 24px; }
.woocommerce .woocommerce-ordering select { min-width: 220px; }

/* Product grid */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0 0 32px !important; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; background: #fff; border: 1px solid var(--cb-line);
	border-radius: var(--cb-radius-lg); overflow: hidden; display: flex; flex-direction: column; position: relative;
	transition: transform .35s var(--cb-ease), box-shadow .35s, border-color .35s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--cb-shadow-lg); border-color: transparent; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: inherit; }
.woocommerce ul.products li.product a img { margin: 0 !important; aspect-ratio: 1 / 1; object-fit: cover; background: var(--cb-grey); transition: transform .8s var(--cb-ease); }
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--cb-font-head); font-size: 1.02rem !important; font-weight: 600; color: var(--cb-black); padding: 16px 18px 4px !important; line-height: 1.3;
}
.woocommerce ul.products li.product .price { color: var(--cb-black) !important; font-family: var(--cb-font-head); font-weight: 700; font-size: 1.15rem !important; padding: 0 18px; margin-bottom: 14px !important; }
.woocommerce ul.products li.product .price del { color: var(--cb-muted); font-weight: 500; font-size: .9em; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 0 18px 8px !important; }
.woocommerce ul.products li.product .button {
	margin: auto 18px 18px !important; background: var(--cb-black); color: #fff; border-radius: var(--cb-radius); font-size: .92rem; padding: .85em 1em; text-align: center;
}
.woocommerce ul.products li.product .button:hover { background: var(--cb-orange); color: var(--cb-black); }
.woocommerce ul.products li.product .added_to_cart { margin: -10px 18px 16px; font-size: .88rem; font-weight: 600; }
.woocommerce ul.products li.product .cb-loop-meta { padding: 0 18px 10px; font-size: .8rem; color: var(--cb-muted); display: flex; gap: 10px; flex-wrap: wrap; }
.woocommerce span.onsale {
	background: var(--cb-orange) !important; color: var(--cb-black) !important; border-radius: 4px !important; min-height: 0 !important; min-width: 0 !important;
	line-height: 1 !important; padding: 7px 10px !important; font-family: var(--cb-font-head); font-weight: 700; top: 12px !important; left: 12px !important; right: auto !important; margin: 0 !important;
}
@media (max-width: 1100px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .92rem !important; padding: 12px 12px 4px !important; } .woocommerce ul.products li.product .price { padding: 0 12px; } .woocommerce ul.products li.product .button { margin: auto 12px 12px !important; white-space: normal; } }

/* Category tiles (product_categories shortcode) */
.woocommerce ul.products li.product-category { text-align: center; }
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title { font-family: var(--cb-font-head); font-size: 1rem !important; padding: 14px 10px !important; margin: 0; }
.woocommerce ul.products li.product-category mark { background: none; color: var(--cb-orange-dark); }

/* Single product */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images img { border-radius: var(--cb-radius-lg); background: var(--cb-grey); }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .product_title { font-size: clamp(1.8rem, 3vw, 2.5rem); margin-bottom: 12px; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--cb-black) !important; font-family: var(--cb-font-head); font-weight: 800; font-size: 1.9rem !important; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--cb-muted); }
.woocommerce div.product .stock { font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.woocommerce div.product .stock.in-stock { color: var(--cb-success) !important; }
.woocommerce div.product .stock.out-of-stock { color: var(--cb-danger) !important; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 24px 0 !important; }
.woocommerce div.product form.cart .quantity .qty { width: 90px; height: 54px; text-align: center; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 200px; height: 54px; background: var(--cb-orange) !important; color: var(--cb-black) !important; font-size: 1.05rem; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--cb-black) !important; color: #fff !important; }
.woocommerce div.product .product_meta { border-top: 1px solid var(--cb-line); padding-top: 18px; margin-top: 18px; font-size: .92rem; color: var(--cb-muted); display: grid; gap: 6px; }
.cb-product-enquiry { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 18px; }
.cb-product-enquiry .cb-btn { flex: 1 1 200px; padding: .85em 1em; }
.woocommerce div.product .woocommerce-tabs { margin-top: 24px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 24px !important; display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 2px solid var(--cb-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent !important; border: 0 !important; margin: 0 !important; padding: 0 !important; border-radius: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 18px !important; font-family: var(--cb-font-head); font-weight: 600; color: var(--cb-muted) !important; border-bottom: 3px solid transparent; margin-bottom: -2px; display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--cb-black) !important; border-bottom-color: var(--cb-orange); }
.woocommerce table.shop_attributes { border: 1px solid var(--cb-line) !important; border-radius: var(--cb-radius); }
.woocommerce table.shop_attributes th { background: var(--cb-grey); width: 220px; font-family: var(--cb-font-head); padding: 12px 14px !important; }
.woocommerce table.shop_attributes td { padding: 12px 14px !important; font-style: normal !important; }
.woocommerce table.shop_attributes td p { margin: 0; padding: 0 !important; }
.woocommerce .related > h2, .woocommerce .upsells > h2 { margin: 48px 0 24px; }
@media (max-width: 860px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 28px; } }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--cb-orange) !important; background: var(--cb-grey) !important; border-radius: var(--cb-radius); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--cb-orange) !important; }
.woocommerce-error { border-top-color: var(--cb-danger) !important; }
.woocommerce-message .button, .woocommerce-info .button { background: var(--cb-black) !important; color: #fff !important; }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	background: var(--cb-black); color: #fff; border-radius: var(--cb-radius); font-family: var(--cb-font-head); font-weight: 600; padding: .9em 1.4em;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--cb-orange); color: var(--cb-black); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #place_order { background: var(--cb-orange) !important; color: var(--cb-black) !important; }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #place_order:hover { background: var(--cb-black) !important; color: #fff !important; }

/* Cart & checkout */
.cb-wc-page .woocommerce table.shop_table { border-radius: var(--cb-radius-lg); border-color: var(--cb-line); border-collapse: separate; overflow: hidden; }
.cb-wc-page .woocommerce table.shop_table th { font-family: var(--cb-font-head); background: var(--cb-grey); }
.cb-wc-page .woocommerce table.shop_table td, .cb-wc-page .woocommerce table.shop_table th { padding: 14px 16px; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout-review-order { background: var(--cb-grey); border-radius: var(--cb-radius-lg); padding: 24px; }
.woocommerce .cart-collaterals .cart_totals table { background: #fff; }
.woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.woocommerce form.checkout .col2-set { width: 100%; float: none; }
.woocommerce form.checkout .col2-set .col-1, .woocommerce form.checkout .col2-set .col-2 { width: 100%; float: none; }
.woocommerce form.checkout #order_review_heading, .woocommerce form.checkout #order_review { grid-column: 2; }
.woocommerce form.checkout .col2-set { grid-column: 1; grid-row: 1 / span 3; }
.woocommerce form .form-row { margin-bottom: 16px; }
.woocommerce form .form-row label { margin-bottom: 6px; display: block; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select { min-height: 48px; }
.woocommerce-checkout #payment { background: #fff !important; border-radius: var(--cb-radius-lg) !important; border: 1px solid var(--cb-line); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--cb-line) !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--cb-orange-soft) !important; color: var(--cb-ink) !important; border-radius: var(--cb-radius); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--cb-orange-soft) !important; }
.select2-container .select2-selection--single { height: 48px !important; border: 1.5px solid #D6D6D6 !important; border-radius: var(--cb-radius) !important; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px !important; padding-left: 14px !important; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 46px !important; }
@media (max-width: 900px) {
	.woocommerce form.checkout { grid-template-columns: 1fr; }
	.woocommerce form.checkout #order_review_heading, .woocommerce form.checkout #order_review, .woocommerce form.checkout .col2-set { grid-column: 1; grid-row: auto; }
}
/* Responsive cart table */
@media (max-width: 768px) {
	.woocommerce table.shop_table_responsive tr td { padding: 10px 12px !important; }
}

/* My account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 10px; background: var(--cb-grey); border-radius: var(--cb-radius-lg); }
.woocommerce-MyAccount-navigation a { display: block; padding: 11px 14px; border-radius: var(--cb-radius); color: var(--cb-black); font-weight: 600; font-family: var(--cb-font-head); }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--cb-black); color: #fff; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { width: auto !important; float: none !important; background: var(--cb-grey); border-radius: var(--cb-radius-lg); padding: 28px; }
.woocommerce form.login, .woocommerce form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; }
@media (max-width: 860px) {
	.woocommerce-account .woocommerce, .woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}

/* Star ratings */
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--cb-orange); }

/* Widgets: filters */
.cb-shop__filters .widget_price_filter .ui-slider .ui-slider-range, .cb-shop__filters .widget_price_filter .ui-slider .ui-slider-handle { background: var(--cb-orange); }
.cb-shop .cb-filters-toggle { display: none; width: 100%; margin-bottom: 16px; }
@media (max-width: 960px) {
	.cb-shop .cb-filters-toggle { display: inline-flex; }
	.cb-shop__filters-inner { display: none; }
	.cb-shop__filters-inner.is-open { display: block; }
}

/* Sample product ribbon (added by Clickbay Core for products tagged "sample-product") */
.cb-sample-ribbon { position: absolute; top: 12px; right: 12px; z-index: 2; background: var(--cb-black); color: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 8px; border-radius: 3px; }
.cb-sample-notice { background: var(--cb-orange-soft); border-left: 4px solid var(--cb-orange); padding: 12px 16px; border-radius: 0 var(--cb-radius) var(--cb-radius) 0; font-size: .9rem; margin: 12px 0; }
