/* ==================================================================
   ERTH Living Spaces - WooCommerce product listings (desktop first)
   Covers: shop, product categories, tags, search results, related,
   up-sells, cross-sells, [products] shortcodes and Elementor widgets.
   Phones (<=920px) are refined further in mobile-app.css.
   ================================================================== */

/* ---------- 0. Neutralise WooCommerce default float layout ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(var(--erth-cols, 4), minmax(0, 1fr));
	gap: 26px 24px;
	margin: 0 0 8px !important;
	padding: 0 !important;
	list-style: none !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after {
	content: none !important;
	display: none !important;
}

ul.products.columns-1 { --erth-cols: 1; }
ul.products.columns-2 { --erth-cols: 2; }
ul.products.columns-3 { --erth-cols: 3; }
ul.products.columns-4 { --erth-cols: 4; }
ul.products.columns-5 { --erth-cols: 5; }
ul.products.columns-6 { --erth-cols: 6; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	float: none !important;
	clear: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 18px;
	overflow: hidden;
	transition: transform .3s cubic-bezier(.22, .61, .36, 1), box-shadow .3s cubic-bezier(.22, .61, .36, 1), border-color .3s;
}

.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after,
ul.products li.product::before,
ul.products li.product::after {
	content: none !important;
	display: none !important;
}

ul.products li.product:hover {
	transform: translateY(-5px);
	border-color: #E4D5AC;
	box-shadow: 0 16px 34px rgba(27, 59, 43, .10);
}

/* ---------- 1. Card media ---------- */
ul.products li.product .card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: #F4F1EA;
	overflow: hidden;
}

ul.products li.product .card__link {
	display: block;
	width: 100%;
	height: 100%;
}

ul.products li.product .card__media img,
ul.products li.product img.attachment-woocommerce_thumbnail,
ul.products li.product .woocommerce-placeholder {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	object-fit: cover;
	transition: transform .55s cubic-bezier(.22, .61, .36, 1);
}

ul.products li.product:hover .card__media img {
	transform: scale(1.05);
}

ul.products li.product .badge,
ul.products li.product span.onsale {
	position: absolute !important;
	top: 12px !important;
	inset-inline-end: 12px !important;
	inset-inline-start: auto !important;
	left: auto !important;
	right: auto !important;
	margin: 0 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 5px 11px !important;
	border-radius: 9px !important;
	background: #B0413E;
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.5 !important;
	z-index: 2;
}

ul.products li.product .wish {
	position: absolute;
	top: 12px;
	inset-inline-start: 12px;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity .25s, transform .25s, background .25s;
	z-index: 2;
}

ul.products li.product:hover .wish {
	opacity: 1;
	transform: none;
}

ul.products li.product .wish svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: #1B3B2B;
	stroke-width: 1.7;
}

ul.products li.product .wish:hover {
	background: #C5A85C;
}

ul.products li.product .wish:hover svg {
	stroke: #fff;
}

ul.products li.product .quick {
	position: absolute;
	inset-inline: 12px;
	bottom: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	border-radius: 10px;
	background: rgba(27, 59, 43, .94);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .28s cubic-bezier(.22, .61, .36, 1), transform .28s cubic-bezier(.22, .61, .36, 1);
	z-index: 2;
}

ul.products li.product:hover .quick {
	opacity: 1;
	transform: none;
}

/* ---------- 2. Card body ---------- */
ul.products li.product .card__body {
	display: flex;
	flex-direction: column;
	gap: 7px;
	flex: 1 1 auto;
	padding: 16px 16px 18px;
	text-align: start;
}

ul.products li.product .card__cat {
	font-size: 11.5px;
	color: #8b8880;
	letter-spacing: .2px;
}

ul.products li.product .card__cat a {
	color: inherit;
	text-decoration: none;
}

ul.products li.product .card__title,
ul.products li.product .woocommerce-loop-product__title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 15.5px !important;
	font-weight: 700;
	line-height: 1.55;
	color: #222;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.9em;
}

ul.products li.product .card__title a {
	color: inherit;
	text-decoration: none;
	transition: color .25s;
}

ul.products li.product .card__title a:hover {
	color: #1B3B2B;
}

ul.products li.product .rating {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #6E6A63;
}

ul.products li.product .rating .stars {
	color: #C5A85C;
	letter-spacing: -1px;
}

ul.products li.product .star-rating {
	margin: 0 !important;
	font-size: 12px;
	color: #C5A85C;
	float: none !important;
}

ul.products li.product .prices,
ul.products li.product .price {
	display: flex !important;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 2px 0 0 !important;
	font-size: 17px !important;
	font-weight: 800;
	color: #1B3B2B !important;
}

ul.products li.product .prices del,
ul.products li.product .price del {
	opacity: 1;
	font-size: 13px;
	font-weight: 500;
	color: #a5a29b;
}

ul.products li.product .prices ins,
ul.products li.product .price ins {
	background: none;
	text-decoration: none;
	font-weight: 800;
}

/* ---------- 3. Add to cart button ---------- */
ul.products li.product .button,
ul.products li.product .add_to_cart_button,
ul.products li.product .added_to_cart {
	margin: 10px 0 0 !important;
	padding: 0 16px !important;
	min-height: 42px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	border: 0;
	border-radius: 11px;
	background: #C5A85C !important;
	color: #1B3B2B !important;
	font-family: inherit;
	font-size: 13.5px !important;
	font-weight: 700;
	line-height: 1.2 !important;
	text-decoration: none;
	cursor: pointer;
	transition: background .25s cubic-bezier(.22, .61, .36, 1), color .25s;
}

ul.products li.product .button:hover,
ul.products li.product .add_to_cart_button:hover {
	background: #1B3B2B !important;
	color: #fff !important;
}

ul.products li.product .added_to_cart {
	background: #EDF3EE !important;
	color: #2F7D4F !important;
}

ul.products li.product .button.loading::after {
	inset-inline-end: 12px;
}

/* ---------- 4. Archive toolbar ---------- */
.woocommerce .woocommerce-result-count {
	margin: 0 !important;
	font-size: 13.5px;
	color: #6E6A63;
	float: none !important;
}

.woocommerce .woocommerce-ordering {
	margin: 0 !important;
	float: none !important;
}

.woocommerce .woocommerce-ordering select {
	min-height: 42px;
	padding: 0 38px 0 14px;
	border: 1px solid #ECECEC;
	border-radius: 11px;
	background: #fff;
	font-family: inherit;
	font-size: 13.5px;
	color: #222;
	cursor: pointer;
}

.woocommerce .products header.woocommerce-products-header,
.woocommerce-products-header {
	margin-bottom: 18px;
}

.woocommerce-products-header__title {
	margin: 0 0 6px;
	font-size: 30px;
	color: #1B3B2B;
}

.woocommerce .term-description,
.woocommerce-no-products-found {
	font-size: 14.5px;
	color: #6E6A63;
	line-height: 1.9;
}

/* ---------- 5. Pagination ---------- */
.woocommerce nav.woocommerce-pagination {
	margin: 34px 0 8px;
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 42px;
	height: 42px;
	padding: 0 12px !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #ECECEC;
	border-radius: 12px;
	background: #fff;
	color: #1B3B2B;
	font-size: 14px;
	font-weight: 700;
	transition: background .25s, color .25s, border-color .25s;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: #C5A85C;
	background: #F7F5F0;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: #1B3B2B;
	border-color: #1B3B2B;
	color: #fff;
}

/* ---------- 6. Related / up-sells / cross-sells ---------- */
.related.products,
.upsells.products,
.up-sells.products,
.cross-sells {
	margin-top: 54px;
}

.related.products > h2,
.upsells.products > h2,
.up-sells.products > h2,
.cross-sells > h2 {
	margin: 0 0 20px;
	font-size: 22px;
	color: #1B3B2B;
}

.related.products ul.products,
.upsells.products ul.products,
.up-sells.products ul.products {
	--erth-cols: 4;
}

/* ---------- 7. Notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 22px !important;
	padding: 15px 18px !important;
	border: 1px solid #EAE6DC;
	border-top: 0 !important;
	border-radius: 14px;
	background: #F7F5F0 !important;
	color: #222 !important;
	font-size: 14px;
	line-height: 1.8;
	list-style: none;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	content: none !important;
}

.woocommerce-message {
	border-color: #cfe4d6;
	background: #EDF3EE !important;
}

.woocommerce-error {
	border-color: #e8c9c8;
	background: #fbf1f1 !important;
}

.woocommerce-message .button,
.woocommerce-info .button {
	margin: 0 auto 0 0 !important;
	padding: 0 18px !important;
	min-height: 38px;
	display: inline-flex;
	align-items: center;
	border-radius: 10px;
	background: #1B3B2B !important;
	color: #fff !important;
	font-size: 13px;
	font-weight: 700;
}

/* ---------- 8. Responsive columns ---------- */
@media (max-width: 1280px) {
	ul.products.columns-5,
	ul.products.columns-6 {
		--erth-cols: 4;
	}
}

@media (max-width: 1080px) {
	ul.products,
	ul.products.columns-4,
	ul.products.columns-5,
	ul.products.columns-6,
	.related.products ul.products,
	.upsells.products ul.products,
	.up-sells.products ul.products {
		--erth-cols: 3;
		gap: 20px 18px;
	}

	ul.products li.product .card__body {
		padding: 14px 14px 16px;
	}
}

@media (max-width: 920px) {
	ul.products,
	ul.products.columns-3,
	ul.products.columns-4,
	ul.products.columns-5,
	ul.products.columns-6,
	.related.products ul.products,
	.upsells.products ul.products,
	.up-sells.products ul.products {
		--erth-cols: 2;
	}

	ul.products li.product .quick {
		display: none;
	}

	ul.products li.product .wish {
		opacity: 1;
		transform: none;
	}

	ul.products li.product:hover {
		transform: none;
		box-shadow: none;
	}
}

/* ==================================================================
   9. Shop UI on desktop
   FIX: every .shop-* rule only existed inside @media (max-width:920px)
   in mobile-app.css, so above 920px the toolbar, chips and trust bar
   were unstyled and their inline SVGs -- which carry a viewBox but no
   width/height -- expanded to the full container width.
   Values mirror the mobile ones, only scaled up. No colours changed.
   ================================================================== */

/* Hard icon constraint, deliberately outside any media query. */
.shop-layout__btn svg,
.shop-filter svg,
.shop-sort .chev,
.shop-chip__img--all svg,
.shop-trust__item svg,
.fdrawer__close svg {
	width: 20px;
	height: 20px;
	max-width: 20px;
	max-height: 20px;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.shop-head {
	padding: 6px 0 2px;
}

.shop-crumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 12px;
	font-size: 13px;
	color: #8b8880;
}

.shop-crumbs a {
	color: #6E6A63;
	text-decoration: none;
}

.shop-crumbs a:hover {
	color: #1B3B2B;
}

.shop-title {
	margin: 0 0 8px;
	font-size: 32px;
	line-height: 1.35;
	color: #1B3B2B;
}

.shop-sub {
	margin: 0;
	max-width: 720px;
	font-size: 14.5px;
	line-height: 1.9;
	color: #6E6A63;
}

.shop-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px;
	margin: 22px 0 18px;
	padding: 12px 16px;
	background: #fff;
	border: 1px solid #ECECEC;
	border-radius: 14px;
}

.shop-bar__count {
	margin: 0;
	font-size: 13.5px;
	color: #6E6A63;
}

.shop-bar__actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.shop-layout {
	display: inline-flex;
	gap: 6px;
}

.shop-layout__btn {
	width: 42px;
	height: 42px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #ECECEC;
	border-radius: 12px;
	background: #fff;
	color: #1B3B2B;
	cursor: pointer;
	transition: background .25s cubic-bezier(.22, .61, .36, 1), color .25s, border-color .25s;
}

.shop-layout__btn.is-active {
	background: #1B3B2B;
	border-color: #1B3B2B;
	color: #fff;
}

.shop-sort {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.shop-sort select {
	min-height: 42px;
	padding-inline: 14px 40px;
	border: 1px solid #ECECEC;
	border-radius: 12px;
	background: #fff;
	font-family: inherit;
	font-size: 13.5px;
	color: #222;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}

.shop-sort .chev {
	position: absolute;
	inset-inline-end: 12px;
	pointer-events: none;
	color: #1B3B2B;
}

.shop-filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid #ECECEC;
	border-radius: 12px;
	background: #fff;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 700;
	color: #1B3B2B;
	cursor: pointer;
}

.shop-filter:hover {
	border-color: #C5A85C;
}

/* Category chips */
.shop-chips {
	margin: 0 0 22px;
	padding-bottom: 6px;
	overflow-x: auto;
	scrollbar-width: none;
}

.shop-chips::-webkit-scrollbar {
	display: none;
}

.shop-chips__track {
	display: flex;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.shop-chip {
	flex: 0 0 auto;
	list-style: none;
}

.shop-chip a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 92px;
	text-align: center;
	text-decoration: none;
}

.shop-chip__img {
	width: 78px;
	height: 78px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid transparent;
	border-radius: 50%;
	background: #F4F1EA;
	overflow: hidden;
	transition: border-color .25s cubic-bezier(.22, .61, .36, 1), transform .25s;
}

.shop-chip__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.shop-chip__name {
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.4;
	color: #4a4a4a;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.shop-chip a:hover .shop-chip__img,
.shop-chip.is-active .shop-chip__img {
	border-color: #1B3B2B;
	transform: scale(1.03);
}

.shop-chip.is-active .shop-chip__name {
	color: #1B3B2B;
	font-weight: 700;
}

/* Trust bar */
.shop-trust {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 34px 0 8px;
	padding: 20px 16px;
	background: #F7F5F0;
	border-radius: 18px;
	list-style: none;
}

.shop-trust__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 0 8px;
	position: relative;
	text-align: start;
}

.shop-trust__item + .shop-trust__item::before {
	content: "";
	position: absolute;
	inset-inline-start: -5px;
	top: 10%;
	height: 80%;
	width: 1px;
	background: #E4E0D6;
}

.shop-trust__item svg {
	color: #1B3B2B;
	width: 24px;
	height: 24px;
	max-width: 24px;
	max-height: 24px;
}

.shop-trust__item strong {
	display: block;
	font-size: 13.5px;
	font-weight: 700;
	color: #1B3B2B;
	line-height: 1.4;
}

.shop-trust__item span {
	display: block;
	font-size: 12px;
	color: #8b8880;
	line-height: 1.4;
}

/* List layout toggle on desktop */
.shop-layout-list ul.products {
	--erth-cols: 1;
}

.shop-layout-list ul.products li.product {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	align-items: stretch;
}

.shop-layout-list ul.products li.product .card__media {
	height: 100%;
}

.shop-layout-list ul.products li.product .card__title {
	min-height: 0;
}

@media (max-width: 1080px) {
	.shop-trust {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 10px;
	}

	.shop-trust__item:nth-child(3)::before {
		display: none;
	}
}
