/**
 * Asbab — WooCommerce refinements (block-based shop, cart & checkout).
 * Uses logical properties for RTL/LTR.
 */

/* Product cards */
.wc-block-product-template .wc-block-product,
.wp-block-woocommerce-product-template > li {
	text-align: start;
}
.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img {
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--base-2);
	transition: transform 500ms cubic-bezier(.2,.7,.3,1);
}
.wc-block-components-product-image,
.wp-block-woocommerce-product-image { overflow: hidden; border-radius: var(--wp--custom--radius--medium); }
.wc-block-product:hover .wc-block-components-product-image img,
.wp-block-woocommerce-product-template li:hover .wp-block-woocommerce-product-image img { transform: scale(1.04); }

.wc-block-components-product-price,
.wp-block-woocommerce-product-price { font-weight: 600; color: var(--wp--preset--color--accent); }
.wc-block-components-product-price del { color: var(--wp--preset--color--contrast-2); font-weight: 400; opacity: .7; }

/* Sale badge */
.wc-block-components-product-sale-badge,
.wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--accent-3) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 0 !important;
	border-radius: var(--wp--custom--radius--pill) !important;
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 600;
	padding: 0.3em 0.8em !important;
	text-transform: none !important;
}

/* Buttons */
.wc-block-components-product-button .wp-block-button__link,
.wp-block-woocommerce-product-button .wp-block-button__link,
.wc-block-components-button:not(.is-link),
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
	border-radius: var(--wp--custom--radius--pill) !important;
	font-weight: 500;
}
.wc-block-components-product-button .wp-block-button__link,
.wp-block-woocommerce-product-button .wp-block-button__link {
	background: var(--wp--preset--color--base-2) !important;
	color: var(--wp--preset--color--contrast) !important;
	font-size: var(--wp--preset--font-size--x-small);
	padding: 0.6rem 1.1rem;
}
.wc-block-components-product-button .wp-block-button__link:hover,
.wp-block-woocommerce-product-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--base) !important;
}
.wc-block-components-button:not(.is-link) {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}
.wc-block-components-button:not(.is-link):hover { background: var(--wp--preset--color--accent-2); }

/* Single product */
.wp-block-woocommerce-product-image-gallery img,
.woocommerce-product-gallery img { border-radius: var(--wp--custom--radius--medium); }
.wp-block-add-to-cart-form .quantity .qty,
.woocommerce .quantity .qty {
	border-radius: var(--wp--custom--radius--pill);
	min-width: 4.5rem; text-align: center;
}
.wp-block-add-to-cart-form .single_add_to_cart_button {
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
	border: 0; border-radius: var(--wp--custom--radius--pill); padding: 0.85rem 1.8rem; font: inherit; font-weight: 500;
}
.wp-block-add-to-cart-form .single_add_to_cart_button:hover { background: var(--wp--preset--color--accent-2); }
.wp-block-woocommerce-product-details .wc-tabs { border-bottom: 1px solid var(--wp--preset--color--border); }
.wp-block-woocommerce-product-details .wc-tabs li a { text-decoration: none; }

/* Mini cart */
.wc-block-mini-cart__button { padding: 0.4rem; border-radius: var(--wp--custom--radius--pill); }
.wc-block-mini-cart__button:hover { background: var(--wp--preset--color--base-2); }
.wc-block-mini-cart__badge { background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--base) !important; border-color: var(--wp--preset--color--base) !important; }
.wc-block-mini-cart__drawer .components-modal__content { padding-inline: var(--wp--preset--spacing--40); }

/* Cart & checkout */
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select {
	border-radius: var(--wp--custom--radius--small) !important;
	border-color: var(--wp--preset--color--border) !important;
}
.wc-block-components-totals-wrapper, .wc-block-components-order-summary { border-color: var(--wp--preset--color--border) !important; }
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	background: var(--wp--preset--color--base-2);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--30);
}

/* Notices */
.wc-block-components-notice-banner { border-radius: var(--wp--custom--radius--small); }

/* Store breadcrumbs / result count */
.wp-block-woocommerce-breadcrumbs, .woocommerce-result-count { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--small); }
.wp-block-woocommerce-breadcrumbs a { text-decoration: none; }

/* Pagination */
.woocommerce-pagination .page-numbers li .page-numbers { border-radius: 50%; min-width: 2.5rem; height: 2.5rem; display: inline-grid; place-items: center; }
.wc-block-components-product-button, .wp-block-woocommerce-product-button { justify-content: flex-start !important; align-items: flex-start !important; text-align: start !important; }
.single-product .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); }
.woocommerce .quantity .qty, .wp-block-add-to-cart-form .qty { font-family: inherit; }

/* Single product */
.asbab-product__media .wc-block-product-gallery img,
.asbab-product__media .wp-block-woocommerce-product-image img { transform: none !important; background: transparent; }
.asbab-product__media .wc-block-product-gallery-large-image,
.asbab-product__media .wc-block-product-gallery-large-image__inner-blocks { border-radius: var(--wp--custom--radius--large); overflow: hidden; }

.asbab-product__media .wc-block-product-gallery-thumbnails img { border-radius: var(--wp--custom--radius--small, 8px); border: 2px solid transparent; }
.asbab-product__box { padding-block-start: var(--wp--preset--spacing--20); }
.asbab-product__box .wp-block-post-title { margin: 0; line-height: 1.25; }
.asbab-product__price { font-weight: 800; }
.asbab-product__excerpt { color: var(--wp--preset--color--contrast-2); line-height: 1.9; }
.asbab-product__excerpt p { margin: 0 0 .7em; }
.asbab-product__excerpt a { color: var(--wp--preset--color--accent); font-weight: 600; text-decoration: none; }
.asbab-product__excerpt a:hover { text-decoration: underline; }
.asbab-product__cart table.variations { width: 100%; border: 0; margin: 0 0 var(--wp--preset--spacing--30); }
.asbab-product__cart table.variations,
.asbab-product__cart table.variations tbody,
.asbab-product__cart table.variations tr,
.asbab-product__cart table.variations th,
.asbab-product__cart table.variations td { display: block; width: 100%; padding: 0; border: 0; text-align: start; }
.asbab-product__cart table.variations th label { font-weight: 700; display: block; margin-block-end: .5rem; }
.asbab-product__cart table.variations select {
	width: 100% !important; max-width: none; height: auto !important; min-height: 3.1rem; padding: .55rem 1rem !important; line-height: 1.5 !important; font: inherit; font-size: 1rem;
	border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--medium);
	background-color: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
}
.asbab-product__cart .reset_variations { font-size: .85rem; margin-block-start: .4rem; display: inline-block; }
.asbab-product__cart .woocommerce-variation-price { margin-block-end: var(--wp--preset--spacing--20); }
.asbab-product__cart .woocommerce-variation-price .price { font-size: 1.6rem; font-weight: 800; color: var(--wp--preset--color--accent); }
.asbab-product__cart .woocommerce-variation-description { color: var(--wp--preset--color--contrast-2); font-size: .95rem; }
.asbab-product__cart form.variations_form { display: block !important; }
.asbab-product__cart .single_variation_wrap { width: 100%; }
.asbab-product__cart .woocommerce-variation-add-to-cart,
.asbab-product__cart form.cart:not(.variations_form) { width: 100%; display: flex; gap: .75rem; align-items: stretch; flex-wrap: wrap; }
.asbab-product__cart .single_add_to_cart_button { flex: 1; min-height: 3.1rem; }
.asbab-product__cart .single_add_to_cart_button.disabled { opacity: .55; }
.asbab-product__meta { border-block-start: 1px solid var(--wp--preset--color--border); padding-block-start: var(--wp--preset--spacing--30); color: var(--wp--preset--color--contrast-2); }
.asbab-product__details .woocommerce-Tabs-panel > h2:first-child { display: none; }
.asbab-product__details .woocommerce-Tabs-panel { max-width: 860px; }
.asbab-product__details .woocommerce-Tabs-panel h2 { font-size: var(--wp--preset--font-size--x-large); margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20); }
.asbab-product__details .woocommerce-Tabs-panel h3 { font-size: var(--wp--preset--font-size--large); }
.asbab-product__details .woocommerce-Tabs-panel ul { line-height: 2; }
@media (max-width: 781px) {
	.asbab-product__box { position: static !important; }
}

/* Shop page: sidebar + filters */
.asbab-shop-layout { display: grid; grid-template-columns: minmax(220px, 270px) minmax(0, 1fr); gap: var(--wp--preset--spacing--60, 3rem); align-items: start; }
.asbab-shop-layout--end { grid-template-columns: minmax(0, 1fr) minmax(220px, 270px); }
.asbab-shop-layout--end .asbab-shop-sidebar { order: 2; }
.asbab-shop-sidebar { position: sticky; top: calc(var(--asbab-header-h, 90px) + 16px); max-height: calc(100vh - var(--asbab-header-h, 90px) - 32px); overflow: auto; padding-inline-end: 4px; scrollbar-width: thin; }
.admin-bar .asbab-shop-sidebar { top: calc(var(--asbab-header-h, 90px) + 48px); }
.asbab-shop-sidebar > * + * { margin-block-start: var(--wp--preset--spacing--40, 1.5rem); }
.asbab-shop-search .wp-block-search__inside-wrapper { border-radius: 999px; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); padding: 4px; background: var(--wp--preset--color--base, #fff); }
.asbab-shop-search .wp-block-search__input { border: 0; background: none; padding-inline: 14px; min-height: 2.6rem; }
.asbab-shop-search .wp-block-search__button { border-radius: 999px; margin: 0; padding: .5rem .8rem; }
.asbab-filters { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40, 1.5rem); }
.asbab-filters > [class*="wp-block-woocommerce-product-filter-"]:not(.wp-block-woocommerce-product-filter-active) { padding-block-end: var(--wp--preset--spacing--40, 1.5rem); border-block-end: 1px solid color-mix(in srgb, currentColor 10%, transparent); }
.asbab-filter-title { font-weight: 700; }
.asbab-filters .wc-block-product-filter-checkbox-list__label { gap: .55rem; cursor: pointer; }
.asbab-filters .wc-block-product-filter-checkbox-list__input-wrapper input:checked { accent-color: var(--wp--preset--color--accent); }
.asbab-filters .has-dot .wc-block-product-filter-checkbox-list__text-wrapper::before { content: ""; display: inline-block; width: 16px; height: 16px; border-radius: 50%; background: var(--asbab-dot); box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); margin-inline-end: 6px; vertical-align: -3px; flex: none; }
@media (min-width: 782px) { .asbab-filters .wc-block-product-filters__open-overlay { display: none !important; } }
body:has(.wc-block-product-filters.is-overlay-opened) .asbab-wa, body:has(.wc-block-product-filters.is-overlay-opened) .asbab-sticky-cart { display: none !important; }
.asbab-filters .wc-block-product-filter-clear-button .wp-block-button__link { border-radius: 999px; }
.asbab-filters .wc-block-product-filter-price-slider .text input { border-radius: 8px; }
.asbab-shop-toolbar { align-items: center; }
.asbab-shop-toolbar .woocommerce-result-count { margin: 0; opacity: .75; }
.asbab-shop-main .wp-block-woocommerce-product-collection { margin-top: 0; }
@media (max-width: 781px) {
	.asbab-shop-layout, .asbab-shop-layout--end { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30, 1rem); }
	.asbab-shop-layout--end .asbab-shop-sidebar { order: 0; }
	.asbab-shop-sidebar { position: static; max-height: none; overflow: visible; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
	.asbab-shop-sidebar > * + * { margin-block-start: 0; }
	.asbab-shop-search { flex: 1 1 200px; }
}
.asbab-filters .wc-block-product-filters__open-overlay { display: inline-flex; align-items: center; gap: 8px; padding: .65em 1.2em; border-radius: 999px; border: 1.5px solid color-mix(in srgb, currentColor 20%, transparent); background: var(--wp--preset--color--base, #fff); color: inherit; font: inherit; font-weight: 700; cursor: pointer; }
.asbab-filters .wc-block-product-filters__apply { border-radius: 999px; }
.asbab-filters input[type="checkbox"] { accent-color: var(--wp--preset--color--accent); }
/* Product gallery: thumbnails under the image, carousel scrolling fixed for RTL */
.wc-block-product-gallery-large-image__container { direction: ltr; }
.wc-block-product-gallery-large-image__wrapper { direction: rtl; }
[dir="ltr"] .wc-block-product-gallery-large-image__wrapper, :root:not([dir="rtl"]) .wc-block-product-gallery-large-image__wrapper { direction: ltr; }
.asbab-product__media .wc-block-product-gallery { flex-direction: column; gap: 12px; }
.asbab-product__media .wc-block-product-gallery-thumbnails { width: 100%; }
.asbab-product__media .wc-block-product-gallery-thumbnails__scrollable { flex-direction: row !important; gap: 10px; }
.asbab-product__media .wc-block-product-gallery-thumbnails__thumbnail { flex: 0 0 calc(20% - 8px); max-width: 110px; cursor: pointer; }
.asbab-product__media .wc-block-product-gallery-thumbnails__thumbnail img { width: 100%; height: auto; transition: border-color .2s, opacity .2s; }
.asbab-product__media .wc-block-product-gallery-thumbnails__thumbnail__image--is-active, .asbab-product__media .wc-block-product-gallery-thumbnails__thumbnail img[aria-current="true"] { border-color: var(--wp--preset--color--accent) !important; }

/* Products per page switch */
.asbab-shop-toolbar { align-items: center; }
.asbab-shop-toolbar__end { gap: 12px !important; align-items: center; }
.asbab-shop-toolbar__end > * { margin: 0 !important; }
.asbab-perpage { display: inline-flex; align-items: center; gap: 4px; font-size: .875rem; }
.asbab-perpage__label { opacity: .7; margin-inline-end: 4px; }
.asbab-perpage__opt { display: inline-grid; place-items: center; min-width: 34px; height: 32px; padding: 0 8px; border-radius: 8px; text-decoration: none; color: inherit; border: 1px solid var(--wp--preset--color--border, rgba(0,0,0,.12)); }
.asbab-perpage a.asbab-perpage__opt:hover { border-color: var(--wp--preset--color--accent, #0E7C66); color: var(--wp--preset--color--accent, #0E7C66); }
.asbab-perpage__opt.is-on { background: var(--wp--preset--color--accent, #0E7C66); border-color: transparent; color: #fff; font-weight: 600; }
@media (max-width: 600px) { .asbab-perpage__label { display: none; } }
