/**
 * WC Stock Status Pro — Frontend Styles
 * Style: Icon + text, clean & minimal
 *
 * CSS custom properties let you override any colour in your child theme:
 *
 *   :root {
 *     --wcsp-in-stock-color:   #2a7a2a;
 *     --wcsp-supplier-color:   #b7610a;
 *     --wcsp-collection-color: #1a6680;
 *     --wcsp-call-color:       #9b2335;
 *     --wcsp-oos-color:        #c0392b;
 *     --wcsp-low-stock-color:  #b7610a;
 *     --wcsp-eta-color:        #1a5e99;
 *   }
 */

/* ── Tokens ──────────────────────────────────────────────────────────────── */
:root {
	/* stock_holder options */
	--wcsp-in-stock-color:   #2a7a2a;   /* ✓ green  – In Stock / Flow N Go same day */
	--wcsp-supplier-color:   #8a5c00;   /* ◎ amber  – In Stock with Supplier        */
	--wcsp-collection-color: #1a6680;   /* ✓ teal   – Collection only               */
	--wcsp-call-color:       #9b2335;   /* ⚠ deep red – Call us to confirm          */

	/* Fallback states */
	--wcsp-oos-color:        #c0392b;   /* ✕ red    – Sold Out                      */
	--wcsp-low-stock-color:  #b7610a;   /* ⚠ amber  – Only X left                  */
	--wcsp-eta-color:        #1a5e99;   /* ⏱ blue   – Est. delivery                 */
	--wcsp-arriving-color:  #e67e22;   /* ↗ orange – Stock Arriving Soon           */
	--wcsp-restock-color:    #555;      /* italic restock notice                    */
	--wcsp-separator-color:  #888;

	--wcsp-font-size: 0.88em;
	--wcsp-line-gap:  5px;
	--wcsp-icon-gap:  6px;
}

/* ── Wrapper ─────────────────────────────────────────────────────────────── */
p.stock.wcsp-stock-wrapper {
	display:        flex !important; /* override WC hiding on archives */
	flex-direction: column;
	gap:            var(--wcsp-line-gap);
	margin:         0.75em 0;
}

/* ── Shared status span ──────────────────────────────────────────────────── */
.wcsp-status {
	display:     inline-flex;
	align-items: baseline;
	gap:         var(--wcsp-icon-gap);
	font-size:   var(--wcsp-font-size);
	line-height: 1.5;
	font-weight: normal;
}

/* Icon injected via ::before */
.wcsp-status::before {
	flex-shrink:  0;
	font-style:   normal;
	font-weight:  700;
	line-height:  1;
	display:      inline-block;
	width:        1em;
	text-align:   center;
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* 1. In Stock with Flow N Go for Same Day Despatch                          */
/* ─────────────────────────────────────────────────────────────────────────── */
.wcsp-holder-same-day {
	color:       var(--wcsp-in-stock-color);
	font-weight: 600;
}
.wcsp-holder-same-day::before {
	content:     "🚚";
	font-weight: normal;
	width:       auto;
	filter:      grayscale(1); /* render van in neutral grey */
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* 2. In Stock with Supplier / Stock Available (green — same confidence as    */
/*    same-day; product is available to order from principal warehouse)        */
/* ─────────────────────────────────────────────────────────────────────────── */
.wcsp-holder-supplier {
	color: var(--wcsp-in-stock-color);
}
.wcsp-holder-supplier::before {
	content:     "◎";
	color:       var(--wcsp-in-stock-color);
	font-weight: normal;
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* 3. In Stock (plain)                                                        */
/* ─────────────────────────────────────────────────────────────────────────── */
.wcsp-holder-instock,
.wcsp-in-stock {
	color: var(--wcsp-in-stock-color);
}
.wcsp-holder-instock::before,
.wcsp-in-stock::before {
	content: "✓";
	color:   var(--wcsp-in-stock-color);
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* 4. In Stock with Flow N Go — Collection only                               */
/* ─────────────────────────────────────────────────────────────────────────── */
.wcsp-holder-collection {
	color: var(--wcsp-collection-color);
}
.wcsp-holder-collection::before {
	content: "✓";
	color:   var(--wcsp-collection-color);
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* 5. Call us to confirm availability                                         */
/* ─────────────────────────────────────────────────────────────────────────── */
.wcsp-holder-call {
	color: var(--wcsp-call-color);
}
.wcsp-holder-call::before {
	content:     "☎";
	color:       var(--wcsp-call-color);
	font-weight: normal;
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* Fallback states (no stock_holder set)                                      */
/* ─────────────────────────────────────────────────────────────────────────── */

/* Low Stock */
.wcsp-low-stock {
	color: var(--wcsp-low-stock-color);
}
.wcsp-low-stock::before {
	content: "⚠";
	color:   var(--wcsp-low-stock-color);
}

/* Out of Stock, Temporarily — no icon, size and weight match Same Day Despatch */
.wcsp-out-of-stock {
	color:       var(--wcsp-oos-color);
	font-size:   1em;        /* override 0.88em base to match same-day visual size */
	font-weight: 700;
}
.wcsp-out-of-stock::before {
	content: none; /* no cross icon */
}

/* Separator + restock date portion */
.wcsp-separator {
	color:       var(--wcsp-separator-color);
	font-weight: normal;
	margin:      0 0.1em;
}
.wcsp-restock-date {
	font-style: italic;
}

/* Restock notice line (below the holder text, when OOS + date set) */
.wcsp-restock-notice {
	color:      var(--wcsp-restock-color);
	font-style: italic;
	font-size:  0.92em;
}
.wcsp-restock-notice::before {
	content:     "↺";
	font-weight: normal;
	color:       var(--wcsp-restock-color);
}

/* ── Delivery ETA ────────────────────────────────────────────────────────── */
.wcsp-delivery-eta {
	color: var(--wcsp-eta-color);
}
.wcsp-delivery-eta::before {
	content:     "⏱";
	font-weight: normal;
	color:       var(--wcsp-eta-color);
}

/* ── Woodmart native badge ────────────────────────────────────────────────── */

/* Woodmart renders its own .wd-product-stock badge with hard-coded "IN STOCK" /
/* "OUT OF STOCK" text on archive/home pages (bypasses all PHP filters).       */
/* Hide it on non-single-product pages; our injected .wcsp-stock-wrapper is    */
/* the only stock display there.                                                */
/* On single product pages the badge stays visible so the JS (PATH D) can      */
/* find it, hide it, and insert our wrapper next to it.                        */
body:not(.single-product) .wd-product-stock {
	display: none !important;
}

/* On the single product page Woodmart's badge IS driven by get_availability() */
/* for the related-products / upsells loop, so our override_availability       */
/* filter (PATH B) injects our CSS class onto it. Style it to match our design. */

/* Base reset when our class is present */
.wd-product-stock[class*="wcsp-"] {
	display:         flex !important;     /* full-width so it can be centred    */
	width:           100%;
	justify-content: center;
	text-align:      center;
	align-items:     baseline;
	gap:             var(--wcsp-icon-gap);
	font-size:       var(--wcsp-font-size);
	font-weight:     normal;
	line-height:     1.5;
	text-transform:  none; /* Override Woodmart's .wd-style-default uppercase  */
}

.wd-product-stock.wcsp-holder-same-day   { color: var(--wcsp-in-stock-color); font-weight: 600; }
.wd-product-stock.wcsp-holder-same-day::before   { content: "🚚"; font-weight: normal; margin-right: var(--wcsp-icon-gap); filter: grayscale(1); }
.wd-product-stock.wcsp-holder-supplier   { color: var(--wcsp-in-stock-color);   }
.wd-product-stock.wcsp-holder-supplier::before   { content: "◎"; margin-right: var(--wcsp-icon-gap); }
.wd-product-stock.wcsp-holder-instock    { color: var(--wcsp-in-stock-color);   }
.wd-product-stock.wcsp-holder-instock::before    { content: "✓"; margin-right: var(--wcsp-icon-gap); }
.wd-product-stock.wcsp-holder-collection { color: var(--wcsp-collection-color); }
.wd-product-stock.wcsp-holder-collection::before { content: "✓"; margin-right: var(--wcsp-icon-gap); }
.wd-product-stock.wcsp-holder-call       { color: var(--wcsp-call-color);       }
.wd-product-stock.wcsp-holder-call::before       { content: "☎"; font-weight: normal; margin-right: var(--wcsp-icon-gap); }
.wd-product-stock.wcsp-holder-arriving   { color: var(--wcsp-arriving-color);   }
.wd-product-stock.wcsp-holder-arriving::before   { content: "↗"; font-weight: 700; margin-right: var(--wcsp-icon-gap); }
.wd-product-stock.wcsp-out-of-stock      { color: var(--wcsp-oos-color); font-size: 1em; font-weight: 700; }
.wd-product-stock.wcsp-out-of-stock::before      { content: none; }
.wd-product-stock.wcsp-in-stock          { color: var(--wcsp-in-stock-color);   }
.wd-product-stock.wcsp-in-stock::before          { content: "✓"; margin-right: var(--wcsp-icon-gap); }

/* Ensure our injected wrapper is always visible in archive loops */
ul.products li.product p.stock.wcsp-stock-wrapper,
.woocommerce ul.products li.product p.stock.wcsp-stock-wrapper,
.woocommerce-page ul.products li.product p.stock.wcsp-stock-wrapper {
	display: flex !important;
}

/* ── Shop / archive loop — tighten spacing and centre on product cards ───── */
/* Woodmart uses .wd-product / .product-grid-item divs, not li.product.      */
/* Both selector groups are kept so the rule fires regardless of theme.       */
.woocommerce ul.products li.product p.stock.wcsp-stock-wrapper,
.woocommerce-page ul.products li.product p.stock.wcsp-stock-wrapper,
ul.products li.product p.stock.wcsp-stock-wrapper,
.wd-product p.stock.wcsp-stock-wrapper,
.product-grid-item p.stock.wcsp-stock-wrapper {
	margin:            0.4em auto 0.2em !important;  /* auto L/R centres block */
	width:             100%;
	gap:               3px;
	--wcsp-font-size:  0.82em;
	align-items:       center !important;   /* centres each status span       */
	justify-content:   center !important;
	text-align:        center !important;
}

/* ── Product titles — archive, home, related product cards ──────────────── */
/* Targets the standard WooCommerce loop title and Woodmart's title class.   */
/* Woodmart uses .wd-product / .product-grid-item divs, NOT li.product,      */
/* so both selector groups are required.                                      */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .wd-entities-title,
.woocommerce-page ul.products li.product .wd-entities-title,
ul.products li.product .wd-entities-title,
.wd-product .wd-entities-title,
.product-grid-item .wd-entities-title,
.wd-product .woocommerce-loop-product__title,
.product-grid-item .woocommerce-loop-product__title {
	font-size: 1.15em !important;
}

/* ── ─────────────────────────────────────────────────────────────────────── */
/* 6. Stock Arriving Soon (incoming shipment with est. arrival date)          */
/* ─────────────────────────────────────────────────────────────────────────── */
.wcsp-holder-arriving {
	color:      var(--wcsp-arriving-color);
	font-size:  1em;           /* larger than the 0.88em base — stands out */
	font-style: normal;        /* not italic */
	font-weight: 500;
}
.wcsp-holder-arriving::before {
	content:     "↗";
	font-weight: 700;
	color:       var(--wcsp-arriving-color);
}

/* "Est. DATE" — stays at the original smaller size and italic */
.wcsp-arrival-date {
	font-size:   0.82em;    /* proportionally matches the base 0.88em at body level */
	font-style:  italic;
	font-weight: normal;
	opacity:     0.9;
}

/* ── Dark mode ───────────────────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
	:root {
		--wcsp-in-stock-color:   #4caf50;
		--wcsp-supplier-color:   #ffa726;
		--wcsp-collection-color: #26c6da;
		--wcsp-call-color:       #ef5350;
		--wcsp-oos-color:        #ef5350;
		--wcsp-low-stock-color:  #ffa726;
		--wcsp-eta-color:        #42a5f5;
		--wcsp-arriving-color:  #ffa726;
		--wcsp-restock-color:    #aaa;
	}
}
