/*
 * WooCommerce presentation — shop, filters, PDP, cart drawer, checkout, account.
 * Editorial and restrained; photography-led. Consumes tokens.css + components.css.
 * We style Woo's own classes and a few slim template overrides to stay upgrade-safe.
 */

/* ============================================================ Buttons (Woo) */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce div.product form.cart .button,
.woocommerce .checkout button.button, .woocommerce-cart .wc-proceed-to-checkout .button {
	background: var(--c-primary); color: var(--c-primary-ink);
	border: 0; border-radius: var(--radius-sm);
	font-family: var(--font-head); font-size: var(--fs-200);
	letter-spacing: var(--tracking-caps); text-transform: uppercase; font-weight: 500;
	padding: var(--sp-3) var(--sp-6); line-height: 1.4; transition: background var(--dur) var(--ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce div.product form.cart .button:hover, .woocommerce #respond input#submit:hover { background: var(--c-primary-dk); color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--c-ink); }
.woocommerce a.button.alt:hover { background: var(--c-primary); }

/* Tighter top on shop/archive so the title leads near the header, as on live. */
.section.section--shop { padding-top: var(--sp-5); }

/* ============================================================ Shop header */
.shop-header { margin-bottom: var(--sp-5); }
.shop-header__title { font-size: var(--fs-700); margin: 0; }
.shop-header .eyebrow { color: var(--c-muted); }
.woocommerce-result-count { color: var(--c-muted); font-size: var(--fs-200); margin: 0; }

/* ============================================================ Shop layout */
.shop-layout { display: block; }
@media (min-width: 1024px) {
	.shop-layout { display: grid; grid-template-columns: 240px 1fr; gap: var(--sp-8); align-items: start; }
	.shop-filters { position: sticky; top: calc(var(--header-h) + var(--sp-4)); }
}
.shop-filters { display: none; }
@media (min-width: 1024px) { .shop-filters { display: block; } }
.shop-filters__title { font-family: var(--font-head); font-size: var(--fs-100); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-muted); margin: 0 0 var(--sp-4); }

/* Toolbar */
.shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); padding-bottom: var(--sp-5); margin-bottom: var(--sp-5); border-bottom: 1px solid var(--c-line); }
.shop-toolbar__controls { display: flex; align-items: center; gap: var(--sp-3); }
.shop-toolbar__sort-label { font-family: var(--font-head); font-size: var(--fs-200); color: var(--c-ink-soft); white-space: nowrap; }
@media (max-width: 1023px) { .shop-toolbar__sort-label { display: none; } }
.woocommerce .woocommerce-ordering select, .shop-toolbar select {
	font-family: var(--font-head); font-size: var(--fs-200); padding: var(--sp-2) var(--sp-5) var(--sp-2) var(--sp-3);
	border: 1px solid var(--c-line); border-radius: var(--radius-sm); background: var(--c-bg);
}
.shop-filter-toggle { display: none; }
@media (max-width: 1023px) { .shop-filter-toggle { display: inline-flex; padding: var(--sp-2) var(--sp-4); font-size: var(--fs-100); } }

/* Filters form — collapsible groups (native <details>) mirroring the live rail */
.filters__group { border: 0; border-bottom: 1px solid var(--c-line); padding: 0 0 var(--sp-4); margin: 0 0 var(--sp-4); }
.filters__group > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-family: var(--font-head); font-size: var(--fs-200); font-weight: 500; padding: 0; }
.filters__group > summary::-webkit-details-marker { display: none; }
.filters__group > summary::after { content: "\002B"; color: var(--c-muted); font-weight: 400; line-height: 1; margin-left: var(--sp-2); }
.filters__group[open] > summary::after { content: "\2212"; }
.filters__options { display: flex; flex-direction: column; gap: 2px; margin-top: var(--sp-3); }
.filters__option { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-200); color: var(--c-ink-soft); cursor: pointer; padding: var(--sp-1) 0; }
.filters__option input { width: auto; }
.filters__option span:first-of-type { flex: 1; }
.filters__count { color: var(--c-muted); font-size: var(--fs-100); }
.filters__actions { display: flex; align-items: center; gap: var(--sp-4); margin-top: var(--sp-4); }

/* Price slider — two overlaid range inputs (dual-handle), fill shows the chosen span */
.price-filter { padding-top: var(--sp-3); }
.price-filter__slider { position: relative; height: 24px; margin: 0 8px; }
.price-filter__slider::before { content: ""; position: absolute; left: 0; right: 0; top: 11px; height: 3px; border-radius: 2px; background: var(--c-line); }
.price-filter__fill { position: absolute; top: 11px; height: 3px; border-radius: 2px; background: var(--c-primary); z-index: 1; }
.price-filter__handle { position: absolute; top: 0; left: 0; width: 100%; height: 24px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; z-index: 2; }
.price-filter__handle::-webkit-slider-runnable-track { background: none; border: 0; }
.price-filter__handle::-moz-range-track { background: none; border: 0; }
.price-filter__handle::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid var(--c-primary); cursor: pointer; pointer-events: auto; }
.price-filter__handle::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid var(--c-primary); cursor: pointer; pointer-events: auto; }
.price-filter__inputs { display: flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-4); }
.price-filter__cur { font-size: var(--fs-100); color: var(--c-muted); }
.price-filter__num { flex: 1; min-width: 0; padding: var(--sp-2) var(--sp-2); border: 1px solid var(--c-line); border-radius: var(--radius-sm); font-size: var(--fs-200); color: var(--c-ink); background: var(--c-bg); -moz-appearance: textfield; }
.price-filter__num::-webkit-outer-spin-button, .price-filter__num::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.price-filter__dash { color: var(--c-muted); }

/* "Filter:" divider between the category accordions and the availability/price facets */
.filters__divider { font-family: var(--font-head); font-weight: 500; font-size: var(--fs-300); color: var(--c-ink); margin: var(--sp-4) 0 var(--sp-3); }
.filters__reset { font-size: var(--fs-100); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--c-muted); }
.filters__reset:hover { color: var(--c-ink); }

/* Mobile filter sheet */
.filter-sheet { position: fixed; inset: 0; z-index: var(--z-drawer); }
.filter-sheet::before { content: ""; position: absolute; inset: 0; background: var(--c-overlay-dk); }
.filter-sheet__panel { position: absolute; inset: 0 0 0 auto; width: min(90vw, 380px); background: var(--c-bg); padding: var(--sp-5) var(--gutter); overflow-y: auto; box-shadow: var(--shadow); animation: sheet-in var(--dur) var(--ease); }
@keyframes sheet-in { from { transform: translateX(100%); } to { transform: none; } }
.filter-sheet__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-5); }
.filter-sheet__head h2 { margin: 0; font-size: var(--fs-500); }
.filter-sheet__close { border: 0; background: transparent; font-size: 1.8rem; line-height: 1; color: var(--c-ink); }

/* Product loop grid (native Woo loop uses ul.products) */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-6) var(--sp-4); margin: 0; padding: 0; list-style: none; }
@media (min-width: 700px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-7) var(--sp-5); } }
@media (min-width: 1024px) { .shop-main .woocommerce ul.products, .shop-main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Fill the grid track. WooCommerce's woocommerce-layout.css sets li.product { width:30.75% }
   for its float layout and loads AFTER our stylesheet, so (equal specificity) it wins and
   shrinks each grid item — and its card image — to ~30% of the track. Force the fill. */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { margin: 0; width: 100% !important; max-width: 100%; min-width: 0; float: none; clear: none; }
.woocommerce ul.products li.product::before { display: none; }
.product-card, .product-card__media { width: 100%; }
/* WooCommerce adds clearfix ::before/::after on ul.products; in a grid these become
   phantom cells (an empty first cell). Neutralise them. */
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; display: none; }

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin-top: var(--sp-8); text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: var(--sp-1); }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--c-line); border-radius: var(--radius-sm); min-width: 40px; padding: var(--sp-2); font-family: var(--font-head);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--c-ink); color: #fff; border-color: var(--c-ink); }

/* ============================================================ Single product */
.woocommerce div.product { display: block; }
.single-product .woocommerce-wrap { max-width: var(--container); }
.woocommerce div.product .product_title { font-size: clamp(1.375rem, 2.2vw, 1.75rem); font-weight: var(--fw-head); margin: 0 0 var(--sp-3); }

/* Two-column PDP. minmax(0,…) stops the gallery track collapsing to its (flexslider-sized)
   content — without it the fr track shrinks and the main image renders tiny. */
@media (min-width: 900px) {
	.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--sp-8); align-items: start; }
	.woocommerce div.product .woocommerce-product-gallery { grid-column: 1; width: 100%; position: sticky; top: calc(var(--header-h) + var(--sp-4)); }
	.woocommerce div.product .summary { grid-column: 2; margin: 0; }
	.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .up-sells { grid-column: 1 / -1; }
}
/* WooCommerce's default float layout sets div.images / div.summary to width:48% with
   higher specificity than a plain class rule — inside our grid that shrinks each to 48%
   of its track. Override both so they fill their columns. */
.woocommerce div.product div.images.woocommerce-product-gallery,
.woocommerce div.product div.summary.entry-summary { width: 100%; float: none; }

/* Gallery */
.woocommerce div.product div.images { margin: 0; }
.woocommerce div.product div.images img { border-radius: var(--radius); }
.woocommerce div.product .flex-control-thumbs { gap: var(--sp-2); display: flex; flex-wrap: wrap; margin: var(--sp-3) 0 0; padding: 0; list-style: none; }
.woocommerce div.product .flex-control-thumbs li { width: 72px; }
.woocommerce div.product .flex-control-thumbs img { border-radius: var(--radius-sm); opacity: 0.55; cursor: pointer; transition: opacity var(--dur) var(--ease); }
.woocommerce div.product .flex-control-thumbs img.flex-active, .woocommerce div.product .flex-control-thumbs img:hover { opacity: 1; }

/* WooCommerce hides the gallery (opacity:0) until its slider JS reveals it; keep it
   visible so the image still shows if that script is slow or fails. */
.woocommerce div.product .woocommerce-product-gallery { opacity: 1 !important; }
.woocommerce div.product .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }

/* Vertical thumbnail strip to the left of the main image (as on the live PDP). Uses a
   left gutter + absolutely-positioned thumbs so flexslider still measures the main image
   at the (reduced) content width — a flex container here breaks its width calculation. */
@media (min-width: 700px) {
	.woocommerce div.product .woocommerce-product-gallery { position: relative; padding-left: 94px; }
	.woocommerce div.product .woocommerce-product-gallery__wrapper, .woocommerce div.product .flex-viewport { width: 100%; margin: 0; }
	.woocommerce div.product .flex-control-thumbs { position: absolute; left: 0; top: 0; width: 78px; margin: 0; flex-direction: column; }
	.woocommerce div.product .flex-control-thumbs li { width: 100%; }
}

/* Summary hierarchy */
.woocommerce div.product .summary { display: flex; flex-direction: column; gap: var(--sp-4); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--c-ink); font-size: var(--fs-500); font-weight: 500; margin: 0; }
/* Space between the AED symbol and the amount (AED 450, not AED450). */
.woocommerce .woocommerce-Price-currencySymbol { margin-right: 0.28em; }
.woocommerce div.product p.price del { color: var(--c-muted); font-weight: 400; }
.woocommerce div.product p.price ins { color: var(--c-sale); text-decoration: none; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--c-ink-soft); }
.woocommerce div.product form.cart { margin: var(--sp-2) 0; display: flex; gap: var(--sp-3); align-items: center; }
.woocommerce div.product form.cart .quantity input { width: 64px; text-align: center; }
.woocommerce div.product form.cart .button { flex: 1; }
.woocommerce .stock.in-stock { color: #2f6b3a; font-size: var(--fs-200); }
.woocommerce .stock.out-of-stock { color: var(--c-sale); }

/* PDP options — Colour swatch + Fabric chip (matches the live selectors) */
.pdp-options { display: flex; flex-direction: column; gap: var(--sp-4); margin: var(--sp-2) 0; }
.pdp-option__label { display: block; font-family: var(--font-head); font-size: var(--fs-200); color: var(--c-ink); margin-bottom: var(--sp-2); }
.pdp-option__values { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.pdp-swatch { width: 26px; height: 26px; border-radius: 50%; background: var(--swatch, #ccc); box-shadow: 0 0 0 1px rgba(0,0,0,0.12), inset 0 0 0 2px #fff; outline: 2px solid transparent; outline-offset: 2px; }
.pdp-swatch:hover, .pdp-swatch:focus-visible { outline-color: var(--c-primary); }
.pdp-chip { display: inline-block; padding: var(--sp-2) var(--sp-4); border: 1px solid var(--c-line); border-radius: var(--radius-sm); font-size: var(--fs-200); color: var(--c-ink); text-transform: capitalize; }
.pdp-chip.is-selected { border-color: var(--c-ink); }
.pdp-chip:hover { border-color: var(--c-primary); color: var(--c-primary); }

/* Buy It Now + safe-checkout badge + social share */
.woocommerce a.button.pdp-buy-now, .pdp-buy-now { display: block; width: 100%; text-align: center; background: var(--c-ink); color: #fff; margin-top: var(--sp-2); }
.woocommerce a.button.pdp-buy-now:hover { background: #000; color: #fff; }
.pdp-guarantee { display: flex; align-items: center; justify-content: center; gap: var(--sp-2); border: 1px solid var(--c-line); border-radius: var(--radius-sm); padding: var(--sp-3); font-family: var(--font-head); font-size: var(--fs-100); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-ink-soft); margin-top: var(--sp-2); }
.pdp-guarantee svg { width: 18px; height: 18px; color: var(--c-primary); }
.pdp-share { display: flex; gap: var(--sp-3); margin-top: var(--sp-2); }
.pdp-share__link { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--c-ink); background: var(--c-surface); transition: background var(--dur) var(--ease), color var(--dur) var(--ease); }
.pdp-share__link:hover { background: var(--c-primary); color: #fff; }
.pdp-share__link svg { width: 16px; height: 16px; }

/* Detail block below the gallery (description + specs + care + attributes) */
.pdp-details { margin-top: var(--sp-6); }
@media (min-width: 900px) { .woocommerce div.product .pdp-details { grid-column: 1; margin-top: var(--sp-7); } }
.pdp-details__desc { color: var(--c-ink-soft); font-size: var(--fs-300); margin-bottom: var(--sp-4); }
.pdp-details__desc p { margin: 0 0 var(--sp-3); }

/* Attribute definition list */
.pdp-attrs { display: grid; gap: 0; margin: var(--sp-2) 0; border-top: 1px solid var(--c-line); }
.pdp-attrs__row { display: grid; grid-template-columns: 40% 1fr; gap: var(--sp-3); padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-line); }
.pdp-attrs dt { color: var(--c-muted); font-family: var(--font-head); font-size: var(--fs-200); margin: 0; }
.pdp-attrs dd { margin: 0; font-size: var(--fs-200); }
.pdp-attrs a:hover { color: var(--c-primary); }

/* Specs table + disclosures */
.saree-specs { width: 100%; border-collapse: collapse; margin: 0; }
.saree-specs th, .saree-specs td { text-align: left; padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-line); font-size: var(--fs-200); vertical-align: top; }
.saree-specs th { width: 40%; color: var(--c-muted); font-weight: 500; font-family: var(--font-head); }
.saree-care, .pdp-disclosure { border-bottom: 1px solid var(--c-line); }
.saree-care summary, .pdp-disclosure summary { cursor: pointer; padding: var(--sp-4) 0; font-family: var(--font-head); font-size: var(--fs-200); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.saree-care summary::-webkit-details-marker, .pdp-disclosure summary::-webkit-details-marker { display: none; }
.saree-care summary::after, .pdp-disclosure summary::after { content: "+"; font-size: 1.2rem; color: var(--c-muted); }
.saree-care[open] summary::after, .pdp-disclosure[open] summary::after { content: "–"; }
.saree-care > div, .pdp-disclosure__body { padding-bottom: var(--sp-4); color: var(--c-ink-soft); font-size: var(--fs-200); }

/* Tabs (description) — de-emphasise, editorial */
.woocommerce div.product .woocommerce-tabs { margin-top: var(--sp-9); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: var(--sp-5); border-bottom: 1px solid var(--c-line); display: flex; gap: var(--sp-5); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; padding: 0 0 var(--sp-3); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: var(--font-head); font-size: var(--fs-100); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-muted); padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--c-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--c-ink); }

/* Related products */
.woocommerce div.product .related > h2, .woocommerce div.product .up-sells > h2 { font-size: var(--fs-600); margin: var(--sp-9) 0 var(--sp-6); }

/* ============================================================ Cart drawer */
.cart-drawer { position: fixed; inset: 0; z-index: var(--z-drawer); visibility: hidden; overflow: hidden; }
.cart-drawer.is-open { visibility: visible; }
.cart-drawer__overlay { position: absolute; inset: 0; background: var(--c-overlay-dk); opacity: 0; transition: opacity var(--dur) var(--ease); }
.cart-drawer.is-open .cart-drawer__overlay { opacity: 1; }
.cart-drawer__panel {
	position: absolute; inset: 0 0 0 auto; width: min(92vw, 420px); background: var(--c-bg);
	display: flex; flex-direction: column; transform: translateX(100%); transition: transform var(--dur) var(--ease); box-shadow: var(--shadow);
}
.cart-drawer.is-open .cart-drawer__panel { transform: none; }
.cart-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-5) var(--sp-5) var(--sp-4); border-bottom: 1px solid var(--c-line); }
.cart-drawer__head h2 { margin: 0; font-size: var(--fs-500); }
.cart-drawer__close { border: 0; background: transparent; font-size: 1.6rem; line-height: 1; color: var(--c-ink); }
.cart-drawer__body { flex: 1; overflow-y: auto; padding: var(--sp-4) var(--sp-5); }
.cart-drawer__foot { padding: var(--sp-5); border-top: 1px solid var(--c-line); }
.cart-drawer .widget_shopping_cart_content ul.cart_list li { padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-line); }
.cart-drawer .widget_shopping_cart_content .total { margin: var(--sp-4) 0; font-family: var(--font-head); }
.cart-drawer .buttons { display: flex; flex-direction: column; gap: var(--sp-2); }
.cart-drawer .buttons a { text-align: center; }

/* ============================================================ Cart / checkout page */
.woocommerce table.shop_table { border: 1px solid var(--c-line); border-radius: var(--radius); }
.woocommerce table.shop_table th { font-family: var(--font-head); font-size: var(--fs-100); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-muted); }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout h3 { font-size: var(--fs-500); }
.woocommerce-checkout #payment { background: var(--c-surface); border-radius: var(--radius); }
.woocommerce form .form-row label { color: var(--c-ink-soft); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--c-primary); background: var(--c-surface); border-radius: var(--radius-sm); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--c-primary); }

/* ============================================================ Account */
.woocommerce-account .woocommerce { display: block; }
@media (min-width: 800px) {
	.woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 220px 1fr; gap: var(--sp-8); }
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--c-line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: var(--sp-3) 0; font-family: var(--font-head); font-size: var(--fs-200); color: var(--c-ink-soft); }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { color: var(--c-ink); }
.woocommerce-form-login, .woocommerce-form-register { border: 1px solid var(--c-line) !important; border-radius: var(--radius); padding: var(--sp-6) !important; }

/* onsale badge (native) */
.woocommerce span.onsale { background: var(--c-ink); color: #fff; border-radius: var(--radius-sm); font-family: var(--font-head); font-size: var(--fs-100); letter-spacing: var(--tracking-caps); text-transform: uppercase; padding: var(--sp-1) var(--sp-3); min-height: 0; min-width: 0; line-height: 1.6; top: var(--sp-3); left: var(--sp-3); }
