/* Solve It — shop / category grid modelled on laundor.com/collections/all. Logical properties so RTL mirrors itself. */

body.sv-shop-page #content > .col-full { max-width: none; padding: 0; margin: 0; }
body.sv-shop-page .site-main, body.sv-shop-page #primary { width: 100%; max-width: none; margin: 0; padding: 0; }

.sv-shop {
	--sv-ink: #121212;
	--sv-red: #FF2727;
	--sv-display: "Jost", "Futura", "Century Gothic", sans-serif;
	--sv-body: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	font-family: var(--sv-body);
	color: var(--sv-ink);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
.sv-shop *, .sv-shop *::before, .sv-shop *::after { box-sizing: border-box; }
.sv-shop__wrap { padding: 16px 80px 80px; }
.sv-shop__notices:not(:has(.woocommerce-message, .woocommerce-error, .woocommerce-info)) { display: none; }

/* toolbar */
.sv-shop__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 23px; }
.sv-shop .sv-filter-toggle, .sv-shop .sv-filter-toggle:hover, .sv-shop .sv-filter-toggle:focus {
	display: inline-flex; align-items: center; gap: 8px; padding: 12.8px 17.6px !important; border: 0 !important; border-radius: 24px !important;
	background: rgba(18, 18, 18, .1) !important; color: var(--sv-ink) !important; font-family: var(--sv-body) !important; font-size: 16px !important; font-weight: 700 !important;
	line-height: 19px; text-transform: none !important; letter-spacing: normal !important; box-shadow: none !important; cursor: pointer;
}
.sv-filter-toggle:active { opacity: .8; }
.sv-filter-toggle svg { transition: transform .3s; }
.sv-filter-toggle[aria-expanded="true"] svg { transform: rotateY(180deg); }
.sv-filter-toggle__hide { display: none; }
.sv-filter-toggle[aria-expanded="true"] .sv-filter-toggle__show { display: none; }
.sv-filter-toggle[aria-expanded="true"] .sv-filter-toggle__hide { display: inline; }
.sv-shop__count { font-size: 14px; font-weight: 500; color: var(--sv-ink); }

/* filter panel */
.sv-shop__filter { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: -8px 0 24px; padding: 16px 20px; border-radius: 16px; background: rgba(0, 0, 0, .03); }
.sv-shop__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.sv-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 20px; background: #fff; color: var(--sv-ink); font-size: 14px; font-weight: 600; text-decoration: none; border: 1px solid rgba(18, 18, 18, .12); transition: background .2s, color .2s; }
.sv-chip small { font-size: 12px; opacity: .55; }
.sv-chip:hover { border-color: var(--sv-ink); }
.sv-chip.is-active { background: var(--sv-ink); color: #fff; border-color: var(--sv-ink); }
.sv-shop__sort .woocommerce-ordering { margin: 0; float: none; }
.sv-shop__sort select { height: 40px; padding: 0 36px 0 14px; border-radius: 20px; border: 1px solid rgba(18, 18, 18, .2); background-color: #fff; font: 600 14px var(--sv-body); color: var(--sv-ink); }
html[dir="rtl"] .sv-shop__sort select { padding: 0 14px 0 36px; }

/* grid */
.sv-shop__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding-bottom: 70px; }

/* card (reference: .product-card-normal) */
.sv-gcard { position: relative; display: flex; flex-direction: column; padding: 20px; border-radius: 16px; transition: box-shadow .3s; }
.sv-gcard::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: rgba(0, 0, 0, .03); border-radius: 16px; z-index: 1; transition: opacity .3s; }
.sv-gcard::after { content: ""; position: absolute; top: calc(100% - 11px); left: 0; right: 0; height: 0; background: #fff; border-radius: 0 0 16px 16px; transition: height .3s ease-out; z-index: -1; }
.sv-gcard__badge { position: absolute; top: 20px; inset-inline-start: 20px; z-index: 4; border-radius: 20px; padding: 3px 10px; font-size: 12.4px; font-weight: 700; line-height: 1.33; letter-spacing: 0; text-transform: uppercase; background: var(--sv-red); color: #fff; }
.sv-gcard__badge--out { background: #999; }
.sv-gcard__space { height: 22px; margin-bottom: 8px; }
.sv-gcard__img { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; }
.sv-gcard__img img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .3s ease-out; }
.sv-gcard__link { display: block; text-decoration: none; color: inherit; }
.sv-gcard .sv-gcard__title { margin: 16px 0 8px !important; font-family: var(--sv-body) !important; font-size: 16px !important; font-weight: 700 !important; line-height: 19px !important; letter-spacing: .4px; color: var(--sv-ink) !important; text-transform: none !important; }
.sv-gcard__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; font-size: 16px; font-weight: 600; line-height: 19px; }
.sv-gcard__price .woocommerce-Price-amount, .sv-gcard__price bdi { font: inherit; color: inherit; }
.sv-gcard__compare { color: rgba(18, 18, 18, .6); text-decoration: line-through; }
.sv-gcard__current { color: var(--sv-ink); }

.sv-gcard__form { position: absolute; top: 100%; left: 0; right: 0; padding: 0 20px; margin-top: 10px; height: 60px; opacity: 0; z-index: 3; pointer-events: none; transform: translateY(-10px); transition: opacity .3s ease-out; }
.sv-shop .sv-gcard__btn, .sv-shop .sv-gcard__btn:focus {
	width: 100%; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .2s ease-out;
	border: 0 !important; border-radius: 50px !important; background: var(--sv-ink) !important; color: #fff !important;
	padding: 15px 0 !important; font-family: var(--sv-body) !important; font-size: 16px !important; font-weight: 700 !important; line-height: 19px !important;
	text-transform: none !important; letter-spacing: normal !important; box-shadow: none !important; cursor: pointer;
}
.sv-shop .sv-gcard__btn:hover:not(:disabled) { background: #000 !important; }
.sv-gcard__btn:disabled { opacity: .45 !important; cursor: not-allowed; }
.sv-gcard__btn-icon { display: none; }

.sv-gcard:hover { z-index: 3; box-shadow: 0 16px 24px rgba(0, 0, 0, .2); }
.sv-gcard:hover::before { opacity: 0; }
.sv-gcard:hover::after { height: 80px; box-shadow: 0 16px 24px rgba(0, 0, 0, .1); }
.sv-gcard:hover .sv-gcard__img img { transform: scale(1.02); }
.sv-gcard:hover .sv-gcard__form { opacity: 1; pointer-events: all; }
.sv-gcard:hover .sv-gcard__btn { opacity: 1; transition-delay: .1s; }
.sv-gcard.is-busy .sv-gcard__btn { opacity: .6 !important; }

/* pagination / empty */
.sv-shop__pages .woocommerce-pagination { text-align: center; }
.sv-shop__empty { padding: 40px 0; font-size: 16px; }

/* toast (shared look with the product page) */
.sv-shop .sv-toast { position: fixed; bottom: 24px; left: 50%; transform: translate(-50%, 140%); z-index: 9995; background: var(--sv-ink); color: #fff; border-radius: 50px; padding: 12px 20px; display: flex; gap: 14px; align-items: center; font-size: 14px; font-weight: 600; opacity: 0; visibility: hidden; transition: transform .3s ease, opacity .3s ease, visibility .3s; box-shadow: 0 8px 30px rgba(0, 0, 0, .2); }
.sv-shop .sv-toast.is-visible { transform: translate(-50%, 0); opacity: 1; visibility: visible; }
.sv-shop .sv-toast__link { color: #fff; text-decoration: underline; }

/* ---------- tablet & phones: the button becomes a round "+" in the card corner ---------- */
@media (max-width: 1024px) {
	.sv-shop__wrap { padding: 16px 30px 64px; }
	.sv-shop__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 999px) {
	.sv-gcard::after { display: none; }
	.sv-gcard__form { position: absolute; top: 20px; left: auto; right: auto; inset-inline-end: 20px; padding: 0; margin: 0; height: auto; width: auto; opacity: 1; transform: none; pointer-events: all; z-index: 50; }
	.sv-shop .sv-gcard__btn, .sv-shop .sv-gcard__btn:focus { width: 40px; height: 40px; padding: 0 !important; opacity: 1; }
	.sv-gcard__btn-text { display: none; }
	.sv-gcard__btn-icon { display: inline-flex; }
	.sv-gcard__btn-icon svg { width: 16px; height: 16px; }
	.sv-gcard:hover { box-shadow: none; }
	.sv-gcard:hover::before { opacity: 1; }
}
@media (max-width: 767px) {
	.sv-shop__wrap { padding: 16px 16px 48px; }
	.sv-shop__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-bottom: 24px; }
	.sv-gcard { padding: 10px; }
	.sv-gcard__badge { top: 16px; inset-inline-start: 10px; font-size: 10px; }
	.sv-gcard__form { top: 10px; inset-inline-end: 10px; }
	.sv-gcard__space { height: 30px; }
	.sv-gcard .sv-gcard__title { font-size: 12px !important; line-height: 15px !important; margin: 12px 0 6px !important; letter-spacing: .2px; }
	.sv-gcard__price { font-size: 11px; gap: 8px; }
	.sv-shop .sv-filter-toggle { font-size: 15px !important; }
	.sv-shop__filter { flex-direction: column; align-items: flex-start; }
}

/* ---------- Arabic ---------- */
html[dir="rtl"] .sv-gcard .sv-gcard__title, html[dir="rtl"] .sv-gcard__price, html[dir="rtl"] .sv-gcard__price *, html[dir="rtl"] .sv-gcard__btn, html[dir="rtl"] .sv-filter-toggle { font-family: var(--sv-ar-display, "Almarai", sans-serif) !important; letter-spacing: 0 !important; }
html[dir="rtl"] .sv-gcard .sv-gcard__title { line-height: 1.5 !important; }
html[dir="rtl"] .sv-gcard__badge { font-size: 12px; letter-spacing: 0; }

/* the filter panel stays closed until "Show Filter" (display:flex above would otherwise beat [hidden]) */
.sv-shop__filter[hidden] { display: none; }
/* content starts right under the header, like the reference */
body.sv-shop-page #content { margin-top: 0 !important; }
@media (min-width: 768px) { .sv-shop__wrap { padding-top: 24px; } }
/* mobile review: the "You Save" badge was 10px */
@media (max-width: 767px) { .sv-gcard__badge { font-size: 11px; } }
html[dir="rtl"] .sv-gcard__badge { font-size: 12px; }
