/*
Theme Name: Shoptimizer Child Theme
Theme URI: 
Description: Child theme of Shoptimizer
Author: CommerceGurus
Author URI: 
Template: shoptimizer
Version: 1.2.3
License:         	GNU General Public License v2 or later
License URI:     	http://www.gnu.org/licenses/gpl-2.0.html
*/

/**
 * Equal-height product cards (Shoptimizer PLP)
 * Scope: shop archives + product loops in content area (not header mega menu).
 */

/* -------------------------------------------------------------------------
   Card shell: stretch to row height, stack image + body vertically
   ------------------------------------------------------------------------- */

#primary ul.products li.product:not(.product-category),
.related.products ul.products li.product:not(.product-category),
.upsells.products ul.products li.product:not(.product-category),
.cross-sells ul.products li.product:not(.product-category),
.mdt-product-grid ul.products li.product:not(.product-category) {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.no-cta-buttons #primary ul.products li.product:not(.product-category),
.no-cta-buttons .related.products ul.products li.product:not(.product-category),
.no-cta-buttons .upsells.products ul.products li.product:not(.product-category),
.no-cta-buttons .cross-sells ul.products li.product:not(.product-category),
.no-cta-buttons .mdt-product-grid ul.products li.product:not(.product-category) {
	margin-bottom: 0;
	padding-bottom: 0;
}

/* -------------------------------------------------------------------------
   Desktop: CSS Grid rows instead of flex + float (equal card heights per row)
   ------------------------------------------------------------------------- */

@media (min-width: 993px) {
	#primary ul.products,
	.related.products ul.products,
	.upsells.products ul.products,
	.cross-sells ul.products {
		display: grid;
		width: 100%;
		margin-left: 0;
		column-gap: 30px;
		row-gap: 30px;
	}

	#primary ul.products.columns-2,
	#primary .columns-2 ul.products,
	.related.products ul.products.columns-2,
	.upsells.products ul.products.columns-2,
	.cross-sells ul.products.columns-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#primary ul.products.columns-3,
	#primary .columns-3 ul.products,
	.related.products ul.products.columns-3,
	.upsells.products ul.products.columns-3,
	.cross-sells ul.products.columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	#primary ul.products.columns-4,
	#primary .columns-4 ul.products,
	.related.products ul.products.columns-4,
	.upsells.products ul.products.columns-4,
	.cross-sells ul.products.columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	#primary ul.products.columns-5,
	#primary .columns-5 ul.products {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	#primary ul.products.columns-6,
	#primary .columns-6 ul.products {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	#primary ul.products li.product,
	.related.products ul.products li.product,
	.upsells.products ul.products li.product,
	.cross-sells ul.products li.product {
		float: none;
		width: 100% !important;
		padding-left: 0;
		padding-right: 0;
		align-self: stretch;
	}
}

/* -------------------------------------------------------------------------
   Fixed image box + contain (prevents portrait/landscape height jumps)
   ------------------------------------------------------------------------- */

#primary ul.products li.product:not(.product-category) .woocommerce-image__wrapper,
.related.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper,
.upsells.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper,
.cross-sells ul.products li.product:not(.product-category) .woocommerce-image__wrapper {
	flex: 0 0 auto;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

#primary ul.products li.product:not(.product-category) .woocommerce-image__wrapper .woocommerce-LoopProduct-link,
.related.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .woocommerce-LoopProduct-link,
.upsells.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .woocommerce-LoopProduct-link,
.cross-sells ul.products li.product:not(.product-category) .woocommerce-image__wrapper .woocommerce-LoopProduct-link,
#primary ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container,
.related.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container,
.upsells.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container,
.cross-sells ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container,
#primary ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper,
.related.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper,
.upsells.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper,
.cross-sells ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

#primary ul.products li.product:not(.product-category) .woocommerce-image__wrapper img,
.related.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper img,
.upsells.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper img,
.cross-sells ul.products li.product:not(.product-category) .woocommerce-image__wrapper img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

/* Keep hover scale inside the image box */
#primary ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper,
.related.products ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper,
.upsells.products ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper,
.cross-sells ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper {
	transform: none;
}

#primary ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper img,
.related.products ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper img,
.upsells.products ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper img,
.cross-sells ul.products li.product:not(.product-category):hover .woocommerce-image__wrapper img {
	transform: scale(0.98);
}

/* -------------------------------------------------------------------------
   Card body: grow + bottom-aligned price
   ------------------------------------------------------------------------- */

#primary ul.products li.product:not(.product-category) .woocommerce-card__header,
.related.products ul.products li.product:not(.product-category) .woocommerce-card__header,
.upsells.products ul.products li.product:not(.product-category) .woocommerce-card__header,
.cross-sells ul.products li.product:not(.product-category) .woocommerce-card__header {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}

#primary ul.products li.product p.product__categories,
.related.products ul.products li.product p.product__categories,
.upsells.products ul.products li.product p.product__categories,
.cross-sells ul.products li.product p.product__categories {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	margin-bottom: 0.25rem;
}

#primary ul.products li.product .woocommerce-loop-product__title,
.related.products ul.products li.product .woocommerce-loop-product__title,
.upsells.products ul.products li.product .woocommerce-loop-product__title,
.cross-sells ul.products li.product .woocommerce-loop-product__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	word-break: break-word;
}

#primary ul.products li.product .price,
.related.products ul.products li.product .price,
.upsells.products ul.products li.product .price,
.cross-sells ul.products li.product .price {
	margin-top: auto;
	margin-bottom: 0;
}

/* Mobile: Shoptimizer already uses grid — reinforce image/body rules */
@media (max-width: 992px) {
	#primary ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container img,
	.related.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container img,
	.upsells.products ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container img,
	.cross-sells ul.products li.product:not(.product-category) .woocommerce-image__wrapper .shoptimizer-plp-carousel-container img {
		object-fit: contain;
	}
}

/* -------------------------------------------------------------------------
   Custom footer (matches live Additional CSS — now in child theme)
   ------------------------------------------------------------------------- */

.mdt-footer {
	width: 100% !important;
	box-sizing: border-box;
	background: #000;
	color: #fff;
	padding: 70px 0;
}

.mdt-footer-inner {
	max-width: none !important;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 50px;
	padding-left: var(--mdt-archive-gutter, clamp(1.25rem, 3vw, 3.5rem)) !important;
	padding-right: var(--mdt-archive-gutter, clamp(1.25rem, 3vw, 3.5rem)) !important;
	width: 100%;
	box-sizing: border-box;
}

.mdt-footer-about img {
	max-width: 220px;
	margin-bottom: 20px;
	height: auto;
}

.mdt-footer-about p {
	color: #d0d0d0;
	line-height: 1.6;
	margin: 0;
}

.mdt-footer-email {
	margin-top: 14px !important;
}

.mdt-footer-about .mdt-footer-email a {
	color: #d9b54a;
	font-weight: 600;
	text-decoration: none;
}

.mdt-footer-about .mdt-footer-email a:hover {
	text-decoration: underline;
}

.mdt-footer h4 {
	font-family: "Chakra Petch", Inter, ui-sans-serif, system-ui, sans-serif;
	font-size: 22px;
	margin: 0 0 18px;
	color: #fff;
}

.mdt-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.mdt-footer ul li {
	margin-bottom: 12px;
}

.mdt-footer ul li a {
	color: #d0d0d0;
	text-decoration: none;
	position: relative;
	padding-left: 18px;
}

.mdt-footer ul li a::before {
	content: "›";
	position: absolute;
	left: 0;
	top: 0;
	color: #fff;
	font-size: 20px;
	line-height: 1;
}

.mdt-footer ul li a:hover {
	color: #fff;
}

.mdt-footer-social {
	display: grid;
	grid-template-columns: repeat(3, 40px);
	gap: 20px;
	align-content: start;
}

.mdt-footer-social .mdt-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	overflow: visible;
	color: #fff;
	text-decoration: none;
	font-size: 0;
	line-height: 0;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.mdt-footer-social .mdt-social-link:hover {
	transform: scale(1.15);
	opacity: 1;
}

.mdt-footer-social .mdt-social-link__icon {
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	overflow: visible;
}

@media (max-width: 900px) {
	.mdt-footer-inner {
		grid-template-columns: 1fr;
		text-align: left;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}

	.mdt-footer-about,
	.mdt-footer h4,
	.mdt-footer ul,
	.mdt-footer ul li {
		text-align: left;
	}

	.mdt-footer-social {
		justify-content: flex-start;
	}
}

@media (max-width: 992px) {
	.below-content .col-full,
	footer.site-footer > .col-full,
	footer.copyright > .col-full {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
}

/* Shoptimizer default footer wrappers (below-content, site-footer, copyright) */
.below-content .col-full,
footer.site-footer .col-full,
footer.site-footer > .col-full,
footer.copyright .col-full,
footer.copyright > .col-full {
	max-width: none !important;
	padding-left: var(--mdt-archive-gutter, clamp(1.25rem, 3vw, 3.5rem)) !important;
	padding-right: var(--mdt-archive-gutter, clamp(1.25rem, 3vw, 3.5rem)) !important;
	box-sizing: border-box;
}

/* -------------------------------------------------------------------------
   Breathing room above footer on WooCommerce pages
   ------------------------------------------------------------------------- */

.woocommerce .site-content,
.woocommerce-page .site-content {
	padding-bottom: clamp(2.5rem, 4vw, 4rem);
}

.single-product .related.products,
.single-product .upsells.products,
.single-product .cross-sells {
	margin-bottom: clamp(2rem, 3vw, 3rem);
}

.post-type-archive-product .site-main,
.tax-product_cat .site-main,
.tax-product_tag .site-main,
.tax-product_brand .site-main,
.tax-spieler .site-main {
	padding-bottom: clamp(1.5rem, 2.5vw, 2.5rem);
}

/* Checkout: ship-to-different-address spacing (was Customizer Additional CSS) */
.woocommerce-checkout #ship-to-different-address {
	margin-bottom: 1.5rem;
	padding-top: 2rem;
	border-top: 1px solid #fff;
	font-size: clamp(1rem, 0.7459rem + 0.813vw, 1.25rem);
}

/* Category SEO block below product grid */
.below-woocommerce-category {
	margin: 2rem 0;
}

/* -------------------------------------------------------------------------
   Archive pages: hide category banner images (more compact, modern PLP)
   ------------------------------------------------------------------------- */

header.woocommerce-products-header img.cg-cat-image {
	display: none !important;
}

header.woocommerce-products-header:not(:has(.term-description)) {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Filter Everything Pro: price range slider (gold / black CI)
   ------------------------------------------------------------------------- */

.widget_wpc_filters_widget {
	--mdt-gold: #d9b54a;
	--mdt-gold-dark: #b8942f;
	--mdt-track: #e8e8e8;
	--mdt-black: #111111;
}

.widget_wpc_filters_widget .wpc-filters-range-wrapper input[type="number"] {
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 6px 1.25rem 6px 8px;
	font-size: 0.875rem;
	line-height: 1.25;
	color: var(--mdt-black);
	background: #fff;
	transition: border-color 0.15s ease;
	min-width: 100px;
	width: 100%;
	-moz-appearance: textfield;
	appearance: textfield;
}

/* Remove number spinner arrows so the full price value fits */
.widget_wpc_filters_widget .wpc-filters-range-wrapper input[type="number"]::-webkit-outer-spin-button,
.widget_wpc_filters_widget .wpc-filters-range-wrapper input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.widget_wpc_filters_widget .wpc-filters-range-wrapper input[type="number"]:focus {
	border-color: var(--mdt-gold);
	outline: none;
	box-shadow: 0 0 0 1px var(--mdt-gold);
}

.widget_wpc_filters_widget .wpc-filters-range-slider-wrapper {
	margin: 1.25em 8px 8px;
}

.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-slider-horizontal {
	height: 2px;
	background: var(--mdt-track);
	border-radius: 1px;
}

.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-slider-horizontal .ui-slider-range {
	background: var(--mdt-gold);
}

.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-slider .ui-slider-handle {
	width: 16px;
	height: 16px;
	border: 2px solid var(--mdt-gold);
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
	cursor: grab;
}

.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-slider-horizontal .ui-slider-handle {
	top: -7px;
	margin-left: -8px;
}

.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-slider .ui-slider-handle:active,
.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-slider .ui-slider-handle.ui-state-active {
	cursor: grabbing;
	border-color: var(--mdt-gold-dark);
	background: var(--mdt-gold);
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.18);
}

.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-state-active,
.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-widget-content .ui-state-active,
.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-widget-header .ui-state-active,
.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-button.ui-state-active:hover,
.widget_wpc_filters_widget .wpc-filters-range-inputs .ui-button:active,
.widget_wpc_filters_widget .wpc-filters-range-inputs a.ui-button:active {
	border-color: var(--mdt-gold);
	background: var(--mdt-gold);
	color: var(--mdt-black);
}

/* -------------------------------------------------------------------------
   Filter Everything Pro: active filters + empty chips bar
   ------------------------------------------------------------------------- */

/* Hide chip row when no filter is active (avoids empty bar under category title) */
.wpc-custom-selected-terms:has(.wpc-empty-chips-container) {
	display: none !important;
}

/* Active filter chips above product grid */
.wpc-filter-chips-list:not(.wpc-empty-chips-container) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
}

.wpc-filter-chip a {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.65rem;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 0.8125rem;
	line-height: 1.3;
	color: #111;
	text-decoration: none;
	background: #fff;
}

.wpc-filter-chip a:hover {
	border-color: #d9b54a;
	color: #111;
}

/* Selected checkbox in sidebar */
.widget_wpc_filters_widget .wpc-term-item.wpc-term-selected > .wpc-term-item-content-wrapper label {
	font-weight: 600;
}

.widget_wpc_filters_widget .wpc-term-item.wpc-term-selected input[type="checkbox"] {
	accent-color: #d9b54a;
}

/* -------------------------------------------------------------------------
   PLP: Shoptimizer duplicates pagination/sorting — keep one sensible layout
   ------------------------------------------------------------------------- */

/* Pagination only below the product grid */
.shoptimizer-sorting:not(.sorting-end) .woocommerce-pagination {
	display: none;
}

/* Bottom bar: pagination only (no duplicate sort + result count) */
.shoptimizer-sorting.sorting-end .woocommerce-ordering,
.shoptimizer-sorting.sorting-end .woocommerce-result-count {
	display: none;
}

.shoptimizer-sorting.sorting-end .woocommerce-pagination {
	display: block !important;
	width: 100%;
	margin-top: 1.25rem;
}

/* -------------------------------------------------------------------------
   jQuery UI price slider — black theme
   ------------------------------------------------------------------------- */

.widget_wpc_filters_widget .ui-slider-horizontal { background: #e0e0e0 !important; border: 0 !important; height: 4px !important; border-radius: 2px !important; }
.widget_wpc_filters_widget .ui-slider-horizontal .ui-slider-range { background: #000 !important; }
.widget_wpc_filters_widget .ui-slider .ui-slider-handle { background: #fff !important; border: 2px solid #000 !important; border-radius: 50% !important; width: 16px !important; height: 16px !important; top: -7px !important; outline: 0 !important; }

/* -------------------------------------------------------------------------
   Mobile PLP: Shoptimizer sidebar drawer (not FEP bottom popup)
   ------------------------------------------------------------------------- */

@media (max-width: 992px) {
	/* FEP "Filter" button + overlay conflicts with Shoptimizer's drawer */
	body .wpc-filters-open-button-container,
	.widget_wpc_filters_widget .wpc-filters-open-button-container,
	.widget_wpc_filters_widget a.wpc-open-close-filters-button,
	.wpc-filters-overlay,
	.wpc-filters-widget-top-container {
		display: none !important;
	}
}
