/* FAJR Solar Kit – catalog module (indicative prices, social slots, legal links, partner badge). Uses tokens.css. */

/* Indicative price */
.fajr-ind-price { margin: 6px 0 10px; }
.fajr-ind-price > p { margin: 0 !important; }
.fajr-ind-price__value { font-size: var(--fs-sm, .9rem); line-height: 1.4; color: var(--text); }
.fajr-ind-price__label { color: var(--muted); font-weight: 500; }
.fajr-ind-price__value strong { font-weight: 700; color: var(--text); white-space: nowrap; }
.fajr-ind-price__note { margin-top: 4px !important; font-size: var(--fs-xs, .78rem); line-height: 1.45; color: var(--muted); }
.fajr-ind-price.is-on-request .fajr-ind-price__value { color: var(--muted); font-weight: 600; }
.fajr-ind-price--single { margin: 14px 0 18px; padding: 14px 18px; border-radius: var(--radius-card, 18px); border: 1px solid var(--line); background: var(--glass, transparent); }
.fajr-ind-price--single .fajr-ind-price__value { font-size: var(--fs-base, 1rem); }
.fajr-ind-price--single .fajr-ind-price__value strong { font-size: var(--fs-lg, 1.15rem); white-space: normal; }
.fajr-ind-price--single .fajr-ind-price__note { font-size: var(--fs-sm, .9rem); }
.fajr-ind-price--card { text-align: inherit; }
@media (max-width: 480px) { .fajr-ind-price__value strong { white-space: normal; } }

/* r2: prices hidden – product page price slot "Price: Contact for price" (modules/no-prices) */
.fajr-np-price > p { margin: 0 !important; }
.fajr-np-price__value { font-size: var(--fs-base, 1rem); line-height: 1.4; color: var(--muted); }
.fajr-np-price__value strong { color: var(--text); font-weight: 600; }

/* Social / WhatsApp / hours slots */
.fajr-social { margin-top: 18px; }
.fajr-social > * { margin: 0; }
.fajr-social__title { font-size: var(--fs-xs, .78rem); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px !important; }
.fajr-social__list { list-style: none; padding: 0 !important; margin: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.fajr-social__item { margin: 0 !important; }
.fajr-social__link { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px; border-radius: var(--radius-pill, 999px); border: 1px solid var(--line); color: var(--text); text-decoration: none; font-size: var(--fs-xs, .78rem); font-weight: 600; line-height: 1.2; transition: border-color var(--dur-fast, .15s), color var(--dur-fast, .15s), background-color var(--dur-fast, .15s); }
a.fajr-social__link[href]:hover, a.fajr-social__link[href]:focus-visible { border-color: var(--energy); color: var(--energy-ink, var(--text)); }
.fajr-social__item.is-soon .fajr-social__link { color: var(--muted); border-style: dashed; cursor: default; }
.fajr-social__soon { font-weight: 500; font-size: .92em; } /* r2: no opacity – muted text must stay >= 4.5:1 (was 4.38:1) */
.fajr-social__item.is-soon .fajr-social__soon::before { content: "·"; margin-right: 4px; }
.fajr-social__hours { margin-top: 12px !important; font-size: var(--fs-sm, .9rem); color: var(--text); line-height: 1.5; }
.fajr-social__hours-label { font-weight: 600; margin-right: 6px; }
.fajr-social__hours.is-soon .fajr-social__soon { color: var(--muted); }
.fajr-social--card { margin-top: 0; }
@media (max-width: 480px) { .fajr-social__soon { display: none; } .fajr-social__hours.is-soon .fajr-social__soon { display: inline; } }

/* Legal links (footer bottom bar) */
.fajr-legal ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.fajr-legal li { margin: 0; }
.fajr-legal a { color: var(--muted); font-size: var(--fs-sm, .9rem); text-decoration: none; }
.fajr-legal a:hover, .fajr-legal a:focus-visible { color: var(--text); text-decoration: underline; }

/* FAJR × Solar City Pakistan badge */
.fajr-partner { display: flex; align-items: center; gap: 10px; margin-top: 18px; }
.fajr-partner__chip { display: inline-flex; padding: 6px 10px; border-radius: 12px; background: #fff; border: 1px solid rgba(0, 0, 0, .06); box-shadow: var(--shadow-sm, none); }
.fajr-partner__chip img { display: block; width: 80px; height: auto; }
.fajr-partner__text { font-size: var(--fs-xs, .78rem); font-weight: 600; color: var(--muted); letter-spacing: .02em; }
.fajr-social--card .fajr-social__title { display: none; }
/* Compact footer variant: icon + name pills, one shared "coming soon" caption */
.fajr-social--footer .fajr-social__list { gap: 6px; }
.fajr-social--footer .fajr-social__link { min-height: 32px; padding: 5px 10px; }
.fajr-social--footer .fajr-social__soon { display: none; }
.fajr-social--footer .fajr-social__hours.is-soon .fajr-social__soon { display: inline; }
.fajr-social__caption { margin-top: 8px !important; font-size: var(--fs-xs, .78rem); color: var(--muted); }
/* The theme hides empty WooCommerce price blocks (".fajr-product__price:not(:has(.amount))"); the indicative price
   re-uses those classes for padding, so keep it visible. */
.fajr-ind-price.fajr-product__price, .fajr-ind-price.fajr-product-card__price { display: block !important; }

/* ===== r2 2026-10-18 (B-M2): self-service catalogue blocks (modules/catalog-blocks). This file loads AFTER the
   theme stylesheet (fajr_catalog_styles), so equal-specificity rules here win. Card look = kit.css/theme.css (K3). */

/* Product grid (fajr/product-grid) */
.fajr-products__grid { display: grid; grid-template-columns: repeat(var(--fajr-cols, 4), minmax(0, 1fr)); gap: var(--space-5); list-style: none; margin: 0 !important; padding: 0 !important; }
.fajr-products__item { display: flex; min-width: 0; margin: 0 !important; }
.fajr-products__item > .fajr-product-card { width: 100%; }
.fajr-products > .fajr-section-head { margin-bottom: var(--space-6); }
.fajr-product-card__img a { display: block; width: 100%; height: 100%; }
.fajr-product-card__cat { margin: 0 !important; }
.fajr-products .fajr-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; }
@media (max-width: 1100px) { .fajr-products__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 782px) { .fajr-products .fajr-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px !important; } }

/* Category cards (fajr/product-categories): 1–5 cards in one row, 6 = 3×2, 7–8 = 4 per row (desktop) */
@media (min-width: 1001px) { .fajr-cats__grid[style*="--fajr-cols"] { grid-template-columns: repeat(var(--fajr-cols), minmax(0, 1fr)); } }

/* Category description below the grid (fajr/term-intro part=full) */
.fajr-term-guide { margin-top: var(--space-8) !important; padding: clamp(20px, 3vw, 40px); border-radius: var(--radius-panel, 28px); background: var(--surface); border: 1px solid var(--line); }
.fajr-term-guide__title { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem) !important; margin: 0 0 .6em !important; }
.fajr-term-guide__body { max-width: 860px; color: var(--muted); line-height: 1.7; }
.fajr-term-guide__body :is(h2, h3) { color: var(--text); font-size: 1.15rem; margin: 1.4em 0 .4em; }
.fajr-term-guide__body > :first-child { margin-top: 0; }
.fajr-term-guide__body a { color: var(--energy-ink); }

/* Product gallery (fajr/product-gallery): fixed square frame, contain on white */
.fajr-gallery__frame { position: relative; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border-radius: var(--radius-panel, 28px); background: #fff; border: 1px solid var(--line); }
[data-theme="dark"] .fajr-gallery__frame { background: #F1F1EC; border-color: transparent; }
.fajr-gallery__main { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: contain; padding: 8%; box-sizing: border-box; mix-blend-mode: multiply; }
.fajr-gallery__full { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #161815; box-shadow: var(--shadow-sm); }
.fajr-gallery__full:hover, .fajr-gallery__full:focus-visible { background: var(--energy); color: #1a0e04; }
.fajr-gallery__thumbs { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 0 !important; padding: 0 !important; list-style: none; }
.fajr-gallery__thumbs li { margin: 0; }
.fajr-gallery__thumb { display: block; width: 72px; height: 72px; padding: 6px; border-radius: 12px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.fajr-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.fajr-gallery__thumb[aria-pressed="true"] { border-color: var(--energy); box-shadow: 0 0 0 2px color-mix(in srgb, var(--energy) 40%, transparent); }
.fajr-gallery__thumb:focus-visible { outline: 2px solid var(--energy-ink); outline-offset: 2px; }

/* Short description (fajr/short-description): keep lists readable */
.fajr-short-desc > :first-child { margin-top: 0; }
.fajr-short-desc > :last-child { margin-bottom: 0; }
.fajr-short-desc ul, .fajr-short-desc ol { padding-left: 1.2em; margin: .4em 0; }
.fajr-short-desc li { margin: .2em 0; }

/* Price slot + enquiry box (fajr/product-cta) */
.fajr-product-cta > * + * { margin-top: var(--space-4) !important; }

/* Product details without tabs (fajr/product-details) */
.fajr-pd__section + .fajr-pd__section { margin-top: var(--space-7); padding-top: var(--space-6); border-top: 1px solid var(--line); }
.fajr-pd__title { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.8rem) !important; margin: 0 0 var(--space-4) !important; }
.fajr-pd__body { max-width: 860px; }
.fajr-pd__body :is(h1, h2, h3) { font-size: clamp(1.15rem, 1.05rem + .5vw, 1.45rem); margin: 1.6em 0 .5em; }
.fajr-pd__body > :first-child { margin-top: 0; }
.fajr-pd__body :is(p, li, td) { color: var(--muted); }
.fajr-pd__body strong, .fajr-pd__body th { color: var(--text); }
/* Narrow 2-up cards (phones): full-width, centred "Contact for price" so it stays on one line where it fits */
@media (max-width: 480px) {
	.fajr-products .fajr-product-card__btn { padding-inline: 0 !important; }
	.fajr-products .fajr-product-card__btn .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; text-align: center; padding: .65em .5em !important; font-size: 12.5px !important; line-height: 1.25; }
}
