/* ==========================================================================
   HS Kids - Store pages
   Category archive, single product, cart and checkout
   (taxonomy-product-cat.php, single-product.php, cart.php / page-cart.php,
   checkout.php / page-checkout.php). Loaded on store pages only, after root.css.
   Colours, fonts and buttons come from root.css; this file only adds the layout
   and component styling of those pages.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Page scaffolding + consistent overrides of the Bootstrap utilities used
      inside the store templates
   -------------------------------------------------------------------------- */
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) {
  background: var(--hs-cream);
  padding-block: clamp(1.5rem, 3vw, 2.5rem) clamp(3rem, 5vw, 4.5rem) !important;
}

.cursor-pointer { cursor: pointer; }

/* Long CTA labels ("Add to shopping bag", "Checkout via WhatsApp") must fit their box.
   The templates add .fs-5 / .fs-6 to big buttons, which is too large for uppercase labels. */
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page, #mobileFilterDrawer) .btn {
  min-width: 0;
  white-space: normal;
  letter-spacing: .12em;
  text-align: center;
}

:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .btn:is(.fs-5, .fs-6) { font-size: .78rem !important; }

/* Small helper buttons (price presets, "Update bag") read better in normal case */
:is(.kw-filter-section, #mobileFilterDrawer) .btn-sm.btn-light {
  letter-spacing: 0;
  text-transform: none;
  font-family: var(--hs-font-body);
  font-weight: 500;
}

/* Free-delivery meter: brand gold instead of Bootstrap green */
:is(.kw-cart-page, .kw-checkout-page) .progress-bar.bg-success { background-color: var(--hs-gold) !important; }

/* Square, calm controls (the templates add .rounded-pill to many buttons / inputs) */
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page, #mobileFilterDrawer) :is(.btn, .form-control, .form-select, .input-group-text).rounded-pill,
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page, #mobileFilterDrawer) .input-group :is(.rounded-start-pill, .rounded-end-pill) {
  border-radius: var(--hs-radius-sm) !important;
}

:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6).fw-bold,
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) :is(.display-5, .display-6).fw-bold {
  font-weight: 600 !important;
}

:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
  letter-spacing: 0;
  text-transform: none;
}

/* White panels used across all four pages */
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .bg-white.border {
  border-color: var(--hs-border) !important;
}

:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .shadow-sm {
  box-shadow: 0 2px 14px rgba(var(--hs-ink-rgb), .05) !important;
}

:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .rounded-4 { border-radius: 6px !important; }
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .rounded-3 { border-radius: 4px !important; }

:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .bg-light { background-color: var(--hs-sand) !important; }
:is(.kw-archive-page, .kw-single-product-page, .kw-cart-page, .kw-checkout-page) .btn-light { --bs-btn-border-color: var(--hs-border); }

/* Prices and totals */
.kw-current-price { font-size: 1.9rem !important; font-weight: 600 !important; color: var(--hs-ink) !important; }

/* --------------------------------------------------------------------------
   2. Shared page furniture: breadcrumb, kicker, section heads, links
   -------------------------------------------------------------------------- */
.kw-breadcrumb .breadcrumb {
  --bs-breadcrumb-divider: '›';
  --bs-breadcrumb-divider-color: var(--hs-gold-soft);
  --bs-breadcrumb-item-active-color: var(--hs-ink);
  font-size: .8rem;
  font-weight: 500;
}

.kw-breadcrumb a { color: var(--hs-muted); }
.kw-breadcrumb a:hover { color: var(--hs-gold-dark); }
.kw-breadcrumb .breadcrumb-item.active { font-weight: 600; }

.kw-kicker-pill,
.kw-kicker {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--hs-font-heading);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--hs-gold-dark);
}

.kw-kicker-pill {
  padding: .35rem .95rem;
  border: 1px solid var(--hs-gold-soft);
  border-radius: var(--hs-radius-pill);
  background: rgba(255, 255, 255, .7);
}

.kw-kicker-pill i { color: var(--hs-gold) !important; }

.kw-section-title {
  font-size: var(--hs-h2-size);
  font-weight: var(--hs-h2-weight);
  color: var(--hs-ink);
}

.kw-hl,
.kw-head--pink .kw-hl { color: var(--hs-gold); background: none; padding: 0; }

.kw-section-sub { max-width: 560px; color: var(--hs-muted); font-size: .92rem; }
.text-center .kw-section-sub { margin-inline: auto; }

.kw-link-more {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--hs-font-heading);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--hs-gold-dark);
}

.kw-link-more:hover { color: var(--hs-brown); }
.kw-link-more i { transition: transform var(--hs-t); }
.kw-link-more:hover i { transform: translateX(4px); }
.kw-link-more:hover i.fa-arrow-left { transform: translateX(-4px); }

/* --------------------------------------------------------------------------
   3. Shared controls: wishlist heart, badges, quantity stepper
   -------------------------------------------------------------------------- */
.kw-wish {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .94);
  color: var(--hs-ink);
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(var(--hs-ink-rgb), .08);
  transition: color var(--hs-t-fast), transform var(--hs-t), background-color var(--hs-t-fast);
  z-index: 3;
}

.kw-wish svg { width: 17px; height: 17px; }
.kw-wish svg path { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; }

.kw-wish:hover,
.kw-wish.active,
.kw-wish[aria-pressed="true"] { color: var(--hs-sale); transform: scale(1.1); }

.kw-wish.active svg path,
.kw-wish[aria-pressed="true"] svg path { fill: currentColor; }

.kw-badge {
  display: inline-block;
  width: fit-content;
  padding: .3rem .65rem;
  border-radius: var(--hs-radius-sm);
  background: #fff;
  font-family: var(--hs-font-heading);
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--hs-ink);
}

.kw-badge--sale    { background: var(--hs-sale); color: #fff; }
.kw-badge--new     { background: #fff; color: var(--hs-ink); }
.kw-badge--hot     { background: var(--hs-gold); color: #fff; }
.kw-badge--organic { background: var(--hs-brown); color: #fff; }

.kw-qty-stepper { border-color: var(--hs-border) !important; }
.kw-qty-stepper input::-webkit-outer-spin-button,
.kw-qty-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.kw-qty-stepper input { -moz-appearance: textfield; appearance: textfield; background: transparent; }

.kw-qty-btn {
  width: 32px;
  height: 32px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
}

.kw-qty-btn:hover { background-color: var(--hs-gold) !important; color: #fff; transform: none; box-shadow: none; }

/* --------------------------------------------------------------------------
   4. Product card (category grid + "You May Also Love")
   -------------------------------------------------------------------------- */
/* Same look as the home page "New Arrivals" cards: photo first, no box */
.kw-product {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: transparent;
  transition: transform var(--hs-t);
}

.kw-product:hover { transform: translateY(-4px); }

.kw-product__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border-radius: var(--hs-radius);
  background: var(--hs-sand);
  transition: box-shadow var(--hs-t);
}

.kw-product:hover .kw-product__media { box-shadow: var(--hs-shadow-lg); }

.kw-product__name a {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 1px;
  transition: background-size .4s var(--hs-ease), color var(--hs-t-fast);
}

.kw-product__name a:hover { background-size: 100% 1px; }

.kw-product__media > a { display: block; height: 100%; }

.kw-product__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform .9s var(--hs-ease), opacity .5s ease;
}

.kw-product:hover .kw-product__media img { transform: scale(1.06); }

.kw-product__media .kw-badge { position: absolute; top: .75rem; left: .75rem; z-index: 2; }
.kw-product__media .kw-wish  { position: absolute; top: .65rem; right: .65rem; }

.kw-product__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 1rem 0 0;
}

.kw-product__cat {
  margin: 0 0 .25rem;
  padding: 0;
  font-size: .62rem !important;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--hs-muted) !important;
}

.kw-product__name {
  display: -webkit-box;
  min-height: 2.7em;
  margin: 0 0 .35rem;
  padding: 0;
  overflow: hidden;
  font-family: var(--hs-font-body);
  font-size: .93rem;
  font-weight: 500;
  line-height: 1.35;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}

.kw-product__name a { color: var(--hs-ink); }
.kw-product__name a:hover { color: var(--hs-gold-dark) !important; }

.kw-product__rating {
  display: flex;
  align-items: center;
  gap: .15rem;
  margin-bottom: .45rem;
  color: var(--hs-gold);
  font-size: .68rem;
}

.kw-product__rating span { margin-left: .3rem; color: var(--hs-muted); }
.kw-product__sizes { margin: 0; padding: 0; color: var(--hs-muted); font-size: .8rem; }
.kw-product .kw-btn--sm { padding-inline: .75rem; }

.kw-price { margin: 0; }
.kw-price__now { font-family: var(--hs-font-heading); font-size: 1.05rem; font-weight: 600; color: var(--hs-ink); }
.kw-price__old { color: var(--hs-muted); font-size: .82rem; text-decoration: line-through; }

/* Second photo cross-fades in on hover */
.kw-product-img-link { position: relative; overflow: hidden; }
.kw-hover-img { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.kw-product:hover .kw-hover-img { opacity: 1; }

/* Quick view button slides up over the photo */
.kw-quick-btn {
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  left: .75rem;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .7rem;
  border: 0;
  border-radius: var(--hs-radius);
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-family: var(--hs-font-heading);
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hs-ink);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity var(--hs-t), transform var(--hs-t), background-color var(--hs-t-fast), color var(--hs-t-fast);
}

.kw-quick-btn:hover { background: var(--hs-ink); color: #fff; }
.kw-product:hover .kw-quick-btn,
.kw-quick-btn:focus-visible { opacity: 1; transform: none; }

.kw-product__swatches { display: flex; gap: .3rem; margin: .1rem 0 .9rem; }

.kw-color-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 50%;
}

/* Add to bag: icon slides in on hover (same as the home page card) */
.kw-product__btn { --bs-btn-padding-y: .75rem; --bs-btn-font-size: .64rem; width: 100%; margin-top: auto; }
.kw-product__btn i { max-width: 0; margin-right: -.55rem; overflow: hidden; opacity: 0; transition: max-width var(--hs-t), margin var(--hs-t), opacity var(--hs-t); }

@media (hover: hover) and (pointer: fine) {
  .kw-product__btn:hover { --bs-btn-hover-bg: var(--hs-brown); --bs-btn-hover-border-color: var(--hs-brown); }
  .kw-product__btn:hover i { max-width: 1.2em; margin-right: 0; opacity: 1; }
}

/* Touch screens: no hover, so show quick view + icon */
@media (hover: none) {
  .kw-quick-btn { opacity: 1; transform: none; left: auto; padding: .55rem .7rem; font-size: 0; gap: 0; }
  .kw-quick-btn i { font-size: .85rem; }
  .kw-product__btn i { max-width: 1.2em; margin-right: 0; opacity: 1; }
}

/* --------------------------------------------------------------------------
   5. Shop / category page
   -------------------------------------------------------------------------- */
.kw-archive-page { padding-top: 0 !important; }

/* Page header band */
.kw-category-hero {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  border-bottom: 1px solid var(--hs-border-soft);
  background: linear-gradient(180deg, var(--hs-sand) 0%, var(--hs-cream) 100%);
}

.kw-category-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
  gap: 2.5rem;
  align-items: center;
  padding-block: clamp(1.75rem, 4vw, 3rem);
}

.kw-category-hero__media {
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border-radius: var(--hs-radius-lg);
  box-shadow: var(--hs-shadow);
}

.kw-category-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 80% 70%; }

.kw-category-hero .kw-breadcrumb { margin-bottom: .9rem; }

.kw-cat-heading {
  padding: 0;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 500 !important;
  letter-spacing: -.02em;
  color: var(--hs-ink);
}

.kw-cat-subtext { max-width: 520px; margin-top: .5rem; color: var(--hs-text); }

.kw-quick-pills {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-top: 1.5rem;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-inline: 4px;
  overflow-x: auto;
  scrollbar-width: none;
}

.kw-quick-pills::-webkit-scrollbar { display: none; }

.kw-pill-chip {
  display: inline-block;
  flex-shrink: 0;
  padding: .55rem 1.25rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-pill, 9999px);
  background: #fff;
  font-family: var(--hs-font-body);
  font-size: 1rem;
  font-weight: 500;
  white-space: nowrap;
  color: var(--hs-ink);
  text-decoration: none;
  transition: background-color var(--hs-t-fast), border-color var(--hs-t-fast), color var(--hs-t-fast), transform var(--hs-t-fast), box-shadow var(--hs-t-fast);
}

.kw-pill-chip:hover {
  transform: translateY(-2px);
  border-color: var(--hs-ink);
  color: var(--hs-ink);
  box-shadow: 0 4px 12px rgba(74, 54, 38, 0.08);
}

.kw-pill-chip.active {
  background: var(--hs-ink);
  border-color: var(--hs-ink);
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(74, 54, 38, 0.2);
}

@media (max-width: 991.98px) {
  .kw-category-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .kw-category-hero__media { display: none; }
}

/* Toolbar */
.kw-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--hs-border);
}

.kw-toolbar__left { display: flex; align-items: center; gap: 1.25rem; }

.kw-toolbar__filter {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .6rem 1.05rem;
  border: 1px solid var(--hs-ink);
  border-radius: var(--hs-radius-sm);
  background: transparent;
  font-family: var(--hs-font-heading);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--hs-ink);
  transition: background-color var(--hs-t-fast), color var(--hs-t-fast);
}

.kw-toolbar__filter:hover { background: var(--hs-ink); color: #fff; }
.kw-toolbar__count { font-size: .82rem; color: var(--hs-muted); }
.kw-toolbar__count strong { color: var(--hs-ink); font-weight: 600; }
.kw-toolbar__tags { align-items: center; gap: .5rem; }
.kw-toolbar__clear { font-size: .78rem; font-weight: 500; color: var(--hs-sale); text-decoration: underline; text-underline-offset: 3px; }

.kw-toolbar__sort { display: flex; align-items: center; gap: .6rem; }
.kw-toolbar__sort label { font-family: var(--hs-font-heading); font-size: .64rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--hs-muted); white-space: nowrap; }
.kw-toolbar__sort .form-select { min-width: 190px; padding-block: .55rem; font-size: .85rem; }

.kw-active-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: .3rem .5rem .3rem .8rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-pill);
  background: #fff;
  font-size: .75rem;
  font-weight: 500;
  color: var(--hs-ink);
}

.kw-tag-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--hs-sand);
  font-size: .85rem;
  line-height: 1;
  color: var(--hs-ink);
  cursor: pointer;
  transition: background-color var(--hs-t-fast), color var(--hs-t-fast);
}

.kw-tag-remove:hover { background: var(--hs-sale); color: #fff; }

@media (max-width: 575.98px) {
  .kw-toolbar__count { display: none; }
  .kw-toolbar__sort label { display: none; }
  .kw-toolbar__sort .form-select { min-width: 0; }
}

/* Sidebar */
.kw-sidebar-col { transition: opacity var(--hs-t); }
.kw-sidebar-col.hidden { display: none !important; }

.kw-filter-card { position: sticky; top: 100px; }

@media (min-width: 992px) {
  .kw-filter .offcanvas-body { display: block !important; }
  .kw-filter__footer { display: none; }
}

.kw-filter-section { padding-block: 1.1rem; border-bottom: 1px solid var(--hs-border); }
.kw-filter-section:first-child { padding-top: 0; }

.kw-filter-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-bottom: .2rem;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--hs-font-heading);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--hs-ink);
}

.kw-filter-section .collapse,
.kw-filter-section .collapsing { margin-top: .85rem; }

.kw-acc-chevron { font-size: .65rem; color: var(--hs-muted); transition: transform var(--hs-t); }
[aria-expanded="false"] > .kw-acc-chevron { transform: rotate(180deg); }

.kw-check-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }

.kw-check {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .86rem;
  color: var(--hs-text);
  cursor: pointer;
  transition: color var(--hs-t-fast);
}

.kw-check:hover { color: var(--hs-ink); }
.kw-check .form-check-input { flex-shrink: 0; margin: 0; }
.kw-check small { margin-left: auto; font-size: .72rem; color: var(--hs-muted); }
.kw-check .hs-rating__stars { font-size: .72rem; }

.kw-size-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap: .4rem; }

.kw-size-pill {
  padding: .5rem .25rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-sm);
  background: #fff;
  font-size: .76rem;
  font-weight: 500;
  color: var(--hs-ink);
  cursor: pointer;
  transition: background-color var(--hs-t-fast), border-color var(--hs-t-fast), color var(--hs-t-fast);
}

.kw-size-pill:hover { border-color: var(--hs-ink); }
.kw-size-pill.active { background: var(--hs-ink); border-color: var(--hs-ink); color: #fff !important; }

.kw-price-range { margin-bottom: .75rem; }
.kw-price-inputs { display: flex; align-items: center; gap: .5rem; color: var(--hs-muted); }
.kw-price-inputs label { flex: 1; }
.kw-price-inputs label span { display: block; margin-bottom: .2rem; font-size: .66rem; color: var(--hs-muted); }
.kw-price-inputs .form-control { padding: .45rem .6rem; font-size: .82rem; }

.kw-swatch-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem .25rem; }

.kw-swatch-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .3rem;
  padding: 0;
  border: 0;
  background: none;
  font-size: .68rem;
  color: var(--hs-text);
}

.kw-swatch-circle {
  display: block;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 50%;
  box-shadow: 0 0 0 3px #fff, 0 0 0 4px transparent;
  transition: box-shadow var(--hs-t-fast), transform var(--hs-t);
}

.kw-swatch-btn:hover .kw-swatch-circle { transform: scale(1.1); }
.kw-swatch-btn.active .kw-swatch-circle { box-shadow: 0 0 0 3px var(--hs-cream), 0 0 0 4px var(--hs-ink); }
.kw-swatch-btn.active .kw-swatch-name { color: var(--hs-ink); font-weight: 600; }

.kw-filter .form-switch { margin-bottom: .5rem; font-size: .86rem; }

.kw-reset-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: 1.1rem;
  font-size: .8rem;
  font-weight: 500;
  color: var(--hs-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kw-reset-link:hover { color: var(--hs-sale); }

/* Mobile drawer version of the sidebar */
@media (max-width: 991.98px) {
  .kw-filter { --bs-offcanvas-width: min(88vw, 360px); --bs-offcanvas-bg: var(--hs-cream); }
  .kw-filter .offcanvas-header { border-bottom: 1px solid var(--hs-border-soft); }
  .kw-filter .offcanvas-title { font-size: .8rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; padding: 0; }
  .kw-filter .offcanvas-body { padding: 1.25rem 1.5rem; }
  .kw-filter-card { position: static; }
  .kw-filter__footer { display: grid; grid-template-columns: 1fr 1.4fr; gap: .5rem; padding: 1rem 1.5rem; border-top: 1px solid var(--hs-border); background: var(--hs-sand); }
  .kw-sidebar-col { flex: 0 0 0; width: 0; padding: 0; }
}

/* Pagination */
.kw-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}

.kw-pagination__num,
.kw-pagination__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 .5rem;
  border: 1px solid var(--hs-border);
  border-radius: 50%;
  background: #fff;
  font-family: var(--hs-font-heading);
  font-size: .82rem;
  font-weight: 500;
  color: var(--hs-ink);
  transition: background-color var(--hs-t-fast), border-color var(--hs-t-fast), color var(--hs-t-fast), transform var(--hs-t-fast);
}

.kw-pagination__num:hover,
.kw-pagination__arrow:hover { border-color: var(--hs-ink); transform: translateY(-2px); }
.kw-pagination__num.is-current { background: var(--hs-ink); border-color: var(--hs-ink); color: #fff; }
.kw-pagination__arrow.is-disabled { opacity: .4; pointer-events: none; }
.kw-pagination__dots { padding: 0 .25rem; color: var(--hs-muted); }

/* Trust strip (full width under the grid) */
.kw-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: clamp(3rem, 6vw, 4.5rem) 0 0;
  padding: 1.5rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-lg);
  background: #fff;
  list-style: none;
}

.kw-trust-strip li { display: flex; align-items: center; gap: .85rem; padding-inline: .5rem; }
.kw-trust-strip li + li { border-left: 1px solid var(--hs-border-soft); padding-left: 1.25rem; }

.kw-trust-strip i {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--hs-sand);
  color: var(--hs-gold-dark) !important;
  transition: background-color var(--hs-t-fast), color var(--hs-t-fast), transform var(--hs-t);
}

.kw-trust-strip li:hover i { background: var(--hs-gold); color: #fff !important; transform: translateY(-3px); }
.kw-trust-strip strong { display: block; font-size: .86rem; font-weight: 600; color: var(--hs-ink); }
.kw-trust-strip span { font-size: .76rem; color: var(--hs-muted); }

@media (max-width: 991.98px) {
  .kw-trust-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kw-trust-strip li + li { border-left: 0; padding-left: .5rem; }
}

@media (max-width: 575.98px) {
  .kw-trust-strip { grid-template-columns: minmax(0, 1fr); }
}

/* Quick view modal */
.kw-qv .modal-content { position: relative; overflow: hidden; border: 0; border-radius: 14px; background: #fff; }
.kw-qv__close { position: absolute; top: 1rem; right: 1rem; z-index: 2; }
.kw-qv__grid { display: grid; grid-template-columns: 1fr 1fr; }
.kw-qv__media { background: var(--hs-sand); }
.kw-qv__media img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.kw-qv__info { display: flex; flex-direction: column; gap: .75rem; padding: 2.25rem 2rem; }
.kw-qv__title { padding: 0; font-size: 1.5rem; font-weight: 500; }
.kw-qv__price { font-size: 1.15rem; }
.kw-qv__text { font-size: .86rem; }
.kw-qv__label { font-family: var(--hs-font-heading); font-size: .66rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--hs-ink); }
.kw-qv__add { margin-top: .5rem; }
.kw-qv__more { align-self: flex-start; }

@media (max-width: 767.98px) {
  .kw-qv__grid { grid-template-columns: 1fr; }
  .kw-qv__media img { aspect-ratio: 4 / 3; }
  .kw-qv__info { padding: 1.5rem; }
}

/* --------------------------------------------------------------------------
   6. Single product
   -------------------------------------------------------------------------- */

/* Gallery: vertical thumbnail rail + main stage (desktop), thumbs under the photo (mobile) */
.kw-pdp-gallery {
  position: sticky;
  top: 100px;
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  grid-template-areas: "thumbs stage";
  gap: 1rem;
}

.kw-pdp-main-stage {
  grid-area: stage;
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: var(--hs-radius-lg);
  background: var(--hs-sand);
  cursor: zoom-in;
}

.kw-pdp-main-stage #kwPdpMainImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform .3s ease, opacity .2s ease;
  will-change: transform;
}

.kw-pdp-main-stage.is-zooming #kwPdpMainImg { transform: scale(1.9); }

.kw-pdp-badges {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.kw-pdp-main-stage .kw-pdp-wish-btn {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 42px;
  height: 42px;
}

.kw-stage-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--hs-ink);
  font-size: .8rem;
  box-shadow: 0 4px 14px rgba(var(--hs-ink-rgb), .12);
  opacity: 0;
  transform: translateY(-50%) scale(.85);
  transition: opacity var(--hs-t), transform var(--hs-t), background-color var(--hs-t-fast), color var(--hs-t-fast);
}

.kw-stage-nav--prev { left: 1rem; }
.kw-stage-nav--next { right: 1rem; }
.kw-stage-nav:hover { background: var(--hs-gold); color: #fff; }

.kw-pdp-main-stage:hover .kw-stage-nav { opacity: 1; transform: translateY(-50%) scale(1); }
.kw-pdp-main-stage.is-zooming .kw-stage-nav,
.kw-pdp-main-stage.is-zooming .kw-pdp-badges,
.kw-pdp-main-stage.is-zooming .kw-stage-count { opacity: 0; }

.kw-stage-count,
.kw-zoom-hint {
  position: absolute;
  bottom: 1rem;
  z-index: 3;
  padding: .35rem .75rem;
  border-radius: var(--hs-radius-pill);
  background: rgba(255, 255, 255, .9);
  font-size: .72rem;
  font-weight: 500;
  color: var(--hs-ink);
  pointer-events: none;
  transition: opacity var(--hs-t);
}

.kw-stage-count { left: 1rem; font-family: var(--hs-font-heading); letter-spacing: .08em; }
.kw-zoom-hint { right: 1rem; color: var(--hs-text); }
.kw-pdp-main-stage.is-zooming .kw-zoom-hint { opacity: 0; }

.kw-pdp-thumbnails {
  grid-area: thumbs;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  max-height: 100%;
  overflow-y: auto;
  scrollbar-width: none;
}

.kw-pdp-thumbnails::-webkit-scrollbar { display: none; }

.kw-thumb-btn {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 4 / 5;
  padding: 0;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: var(--hs-radius);
  background: var(--hs-sand);
  opacity: .6;
  cursor: pointer;
  transition: border-color var(--hs-t-fast), opacity var(--hs-t-fast), transform var(--hs-t);
}

.kw-thumb-btn img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--hs-ease); }
.kw-thumb-btn:hover { opacity: 1; }
.kw-thumb-btn:hover img { transform: scale(1.08); }
.kw-thumb-btn.active { opacity: 1; border-color: var(--hs-ink); }
.kw-thumb-btn:focus-visible { outline: 2px solid var(--hs-gold-dark); outline-offset: 2px; }

@media (max-width: 991.98px) {
  .kw-pdp-gallery {
    position: static;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "stage" "thumbs";
  }

  .kw-pdp-thumbnails { flex-direction: row; overflow-x: auto; overflow-y: visible; }
  .kw-thumb-btn { width: 72px; }
  .kw-stage-nav { opacity: 1; transform: translateY(-50%) scale(1); width: 36px; height: 36px; }
  .kw-zoom-hint { display: none; }
}

/* Buy panel: no box, generous spacing, thin dividers */
.kw-pdp-buy-box {
  position: sticky;
  top: 100px;
}

.kw-pdp-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .75rem;
}

.kw-pdp-sku { font-size: .72rem; color: var(--hs-muted); letter-spacing: .04em; }

.kw-pdp-title {
  padding: 0;
  font-size: clamp(1.55rem, 2.4vw, 2.05rem) !important;
  font-weight: 500 !important;
  line-height: 1.22;
  color: var(--hs-ink);
}

.kw-pdp-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem 1rem;
  margin-top: .85rem;
  font-size: .82rem;
  color: var(--hs-text);
}

.kw-pdp-rating__stars { color: var(--hs-gold); font-size: .75rem; letter-spacing: .1em; }
.kw-pdp-rating a { text-decoration: underline; text-underline-offset: 3px; color: var(--hs-text); }
.kw-pdp-rating a:hover { color: var(--hs-gold-dark); }

.kw-pdp-stock {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-left: auto;
  font-size: .75rem;
  font-weight: 500;
  color: var(--hs-success);
}

.kw-pdp-stock__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--hs-success);
  box-shadow: 0 0 0 3px rgba(111, 138, 91, .2);
}

.kw-pdp-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .4rem .9rem;
  margin-top: 1.4rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--hs-border);
}

.kw-pdp-price .kw-current-price {
  font-family: var(--hs-font-heading);
  font-size: 1.85rem !important;
  font-weight: 500 !important;
  line-height: 1;
}

.kw-pdp-price del { font-size: 1rem; color: var(--hs-muted); }

.kw-pdp-save {
  padding: .3rem .65rem;
  border-radius: var(--hs-radius-sm);
  background: rgba(181, 83, 60, .1);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--hs-sale);
}

.kw-pdp-note { margin-top: .35rem; padding: 0; font-size: .76rem; color: var(--hs-muted); }

.kw-pdp-lead {
  margin: 1.25rem 0 0;
  padding: 1.25rem 0 0;
  border-top: 1px solid var(--hs-border);
  font-size: .92rem;
  line-height: 1.75;
}

.kw-pdp-option-group { margin-top: 1.5rem; }

.kw-pdp-option-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .75rem;
  font-family: var(--hs-font-heading);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hs-ink);
}

.kw-pdp-option-head strong { font-weight: 500; letter-spacing: .04em; text-transform: none; color: var(--hs-gold-dark); font-size: .85rem; }
.kw-pdp-option-head .text-muted { font-weight: 500; letter-spacing: .04em; text-transform: none; font-family: var(--hs-font-body); }

.kw-pdp-guide {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  letter-spacing: .1em;
  color: var(--hs-text);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.kw-pdp-guide:hover { color: var(--hs-gold-dark); }

.kw-color-swatch-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 3px;
  border: 1px solid transparent;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: border-color var(--hs-t-fast), transform var(--hs-t);
}

.kw-color-swatch-btn .kw-swatch-inner {
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 50%;
  background-color: var(--swatch-color);
}

.kw-color-swatch-btn:hover { transform: scale(1.1); border-color: var(--hs-gold-soft); }
.kw-color-swatch-btn.active { border-color: var(--hs-ink); }

.kw-pdp-sizes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: .5rem;
}

.kw-pdp-size-btn {
  position: relative;
  padding: .75rem .25rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-sm);
  background: #fff;
  font-size: .8rem;
  font-weight: 500;
  color: var(--hs-ink);
  cursor: pointer;
  transition: background-color var(--hs-t-fast), border-color var(--hs-t-fast), color var(--hs-t-fast), transform var(--hs-t-fast), box-shadow var(--hs-t-fast);
}

.kw-pdp-size-btn:hover:not(:disabled) { border-color: var(--hs-ink); transform: translateY(-2px); box-shadow: 0 4px 10px rgba(var(--hs-ink-rgb), .08); }
.kw-pdp-size-btn.active { border-color: var(--hs-ink); background: var(--hs-ink); color: #fff; }

.kw-pdp-size-btn.is-out {
  color: var(--hs-muted);
  background: linear-gradient(to top right, transparent calc(50% - .5px), var(--hs-border) calc(50% - .5px), var(--hs-border) calc(50% + .5px), transparent calc(50% + .5px)), var(--hs-cream);
  cursor: not-allowed;
}

.kw-pdp-low {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: .85rem;
  font-size: .78rem;
  color: var(--hs-sale);
}

.kw-pdp-low__bar { flex: 1; height: 3px; overflow: hidden; border-radius: 3px; background: var(--hs-border-soft); }
.kw-pdp-low__bar span { display: block; height: 100%; background: var(--hs-sale); }

.kw-pdp-actions {
  display: flex;
  gap: .6rem;
  margin-top: 1.6rem;
}

.kw-pdp-actions .kw-qty-stepper {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  border: 1px solid var(--hs-border) !important;
  border-radius: var(--hs-radius-sm);
  background: #fff;
}

.kw-pdp-actions .kw-qty-stepper input {
  width: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  font-weight: 600;
  box-shadow: none;
}

.kw-pdp-actions .kw-qty-btn {
  width: 40px;
  height: 100%;
  min-height: 50px;
  background: transparent;
  color: var(--hs-ink);
  font-size: .7rem;
  transition: background-color var(--hs-t-fast), color var(--hs-t-fast);
}

.kw-pdp-add { flex: 1 1 auto; min-height: 52px; }

.kw-pdp-add i { transition: transform var(--hs-t); }
.kw-pdp-add:hover i { transform: translateY(-2px) rotate(-8deg); }

#kwAddToCartBtn.btn-success {
  --bs-btn-bg: var(--hs-brown);
  --bs-btn-border-color: var(--hs-brown);
  background: var(--hs-brown);
  border-color: var(--hs-brown);
  color: #fff;
}

.kw-pdp-actions-alt {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .6rem;
  margin-top: .6rem;
}

.kw-pdp-actions-alt .btn { min-height: 48px; font-size: .66rem; }

.kw-pdp-wa {
  --bs-btn-color: #1E8E4B;
  --bs-btn-border-color: rgba(37, 211, 102, .55);
  --bs-btn-bg: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--hs-whatsapp);
  --bs-btn-hover-border-color: var(--hs-whatsapp);
}

.kw-pdp-wa i { font-size: 1rem; }

.kw-pdp-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  margin: 1.5rem 0 0;
  padding: 1.1rem 0;
  border-block: 1px solid var(--hs-border);
  list-style: none;
}

.kw-pdp-trust li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .45rem;
  text-align: center;
  font-size: .75rem;
  font-weight: 600;
  color: var(--hs-ink);
}

.kw-pdp-trust i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--hs-sand);
  color: var(--hs-gold-dark);
  font-size: .85rem;
  transition: background-color var(--hs-t-fast), color var(--hs-t-fast), transform var(--hs-t);
}

.kw-pdp-trust li:hover i { background: var(--hs-gold); color: #fff; transform: translateY(-3px); }
.kw-pdp-trust small { display: block; margin-top: .1rem; font-size: .68rem; font-weight: 400; color: var(--hs-muted); }

.kw-pdp-dispatch {
  margin-top: .9rem;
  padding: 0;
  font-size: .78rem;
  color: var(--hs-text);
}

.kw-pdp-dispatch i { margin-right: .35rem; color: var(--hs-gold-dark); }
.kw-pdp-dispatch strong { color: var(--hs-ink); }

.kw-pdp-accordion { margin-top: 1.25rem; border-top: 1px solid var(--hs-border); }
.kw-pdp-acc { border-bottom: 1px solid var(--hs-border); }

.kw-pdp-acc__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1rem 0;
  border: 0;
  background: none;
  font-family: var(--hs-font-heading);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hs-ink);
  transition: color var(--hs-t-fast);
}

.kw-pdp-acc__btn:hover { color: var(--hs-gold-dark); }
.kw-pdp-acc__btn i { font-size: .7rem; transition: transform var(--hs-t); }
.kw-pdp-acc__btn:not(.collapsed) i { transform: rotate(45deg); }

.kw-pdp-acc__body { padding: 0 0 1.1rem; font-size: .86rem; line-height: 1.75; color: var(--hs-text); }

@media (max-width: 991.98px) {
  .kw-pdp-buy-box { position: static; }
}

@media (max-width: 575.98px) {
  .kw-pdp-actions-alt { grid-template-columns: 1fr; }
  .kw-pdp-trust { grid-template-columns: 1fr; text-align: left; }
  .kw-pdp-trust li { flex-direction: row; text-align: left; }
}

/* Details / specs section */
.kw-specs-section {
  position: relative;
  border: 0;
  border-radius: var(--hs-radius-lg);
  background: var(--hs-sand);
}

/* Underline tabs */
.kw-specs-nav {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 2rem;
  width: 100%;
  margin-inline: auto;
  padding: 0;
  overflow-x: auto;
  border-bottom: 1px solid var(--hs-border);
  scrollbar-width: none;
}

.kw-specs-nav::-webkit-scrollbar { display: none; }

.kw-specs-nav .nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: .9rem 0 !important;
  border-radius: 0 !important;
  background: none !important;
  font-family: var(--hs-font-heading);
  font-size: .78rem;
  font-weight: 500 !important;
  letter-spacing: .04em;
  white-space: nowrap;
  color: var(--hs-text);
  transition: color var(--hs-t-fast);
}

.kw-specs-nav .nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--hs-gold);
  transform: scaleX(0);
  transition: transform var(--hs-t);
}

.kw-specs-nav .nav-link:hover { color: var(--hs-ink); }
.kw-specs-nav .nav-link:hover::after { transform: scaleX(.4); }
.kw-specs-nav .nav-link.active { color: var(--hs-ink); box-shadow: none; }
.kw-specs-nav .nav-link.active::after { transform: scaleX(1); }

@media (max-width: 767.98px) {
  .kw-specs-nav { justify-content: flex-start; gap: 1.5rem; }
}

.kw-spec-card {
  border-color: var(--hs-border) !important;
  transition: transform var(--hs-t), box-shadow var(--hs-t), border-color var(--hs-t);
}

.kw-spec-card:hover { transform: translateY(-4px); border-color: var(--hs-gold-soft) !important; box-shadow: var(--hs-shadow); }

.kw-spec-icon-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 1.1rem;
}

.kw-spec-feature { position: relative; height: 100%; min-height: 320px; overflow: hidden; border-radius: var(--hs-radius-lg); background: var(--hs-sand); }
.kw-spec-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.kw-spec-feature__caption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .85rem 1rem;
  border-radius: var(--hs-radius);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 24px rgba(var(--hs-ink-rgb), .12);
}

.kw-spec-feature__caption strong { display: block; font-size: .88rem; color: var(--hs-ink); }
.kw-spec-feature__caption span { font-size: .76rem; color: var(--hs-muted); }

.kw-size-table thead th { background: var(--hs-sand); color: var(--hs-ink); font-weight: 600; }
.kw-size-table .is-sample td { background: var(--hs-sand); font-weight: 600; }

/* Reviews */
.kw-rating-summary {
  padding: 1.75rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-lg);
  background: linear-gradient(160deg, var(--hs-sand) 0%, #fff 70%);
}

.kw-rating-summary__score { font-family: var(--hs-font-heading); font-size: 3.2rem; font-weight: 500; line-height: 1; color: var(--hs-ink); }
.kw-rating-summary__stars { color: var(--hs-gold); font-size: 1rem; }

.kw-rating-bars { display: grid; gap: .45rem; margin: 1.25rem 0; padding: 0; list-style: none; }

.kw-rating-bars li {
  display: grid;
  grid-template-columns: 2.2rem 1fr 2rem;
  align-items: center;
  gap: .6rem;
  font-size: .78rem;
  font-weight: 500;
  color: var(--hs-muted);
}

.kw-rating-bars li > span:last-child { text-align: right; }
.kw-rating-bar { height: 6px; overflow: hidden; border-radius: var(--hs-radius-pill); background: var(--hs-border-soft); }
.kw-rating-bar span { display: block; height: 100%; border-radius: inherit; background: var(--hs-gold); }

.kw-fit-meter { padding-top: 1.1rem; border-top: 1px dashed var(--hs-gold-soft); }
.kw-fit-meter__track { position: relative; height: 6px; margin: .6rem 0 .4rem; border-radius: var(--hs-radius-pill); background: linear-gradient(90deg, var(--hs-border-soft), var(--hs-gold-soft), var(--hs-border-soft)); }

.kw-fit-meter__dot {
  position: absolute;
  top: 50%;
  width: 16px;
  height: 16px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--hs-brown);
  box-shadow: 0 2px 6px rgba(var(--hs-ink-rgb), .25);
  transform: translate(-50%, -50%);
}

.kw-fit-meter__labels { display: flex; justify-content: space-between; font-size: .7rem; font-weight: 500; color: var(--hs-muted); }

.kw-review {
  padding: 1.35rem 1.5rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-lg);
  background: #fff;
  transition: box-shadow var(--hs-t), border-color var(--hs-t), transform var(--hs-t);
}

.kw-review:hover { border-color: var(--hs-gold-soft); box-shadow: var(--hs-shadow); transform: translateY(-2px); }

.kw-review__head { display: flex; align-items: center; gap: .85rem; margin-bottom: .85rem; }

.kw-review__avatar {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--avatar-bg, var(--hs-sand));
  color: var(--avatar-ink, var(--hs-brown));
  font-size: .85rem;
  font-weight: 600;
}

.kw-review__name { font-size: .92rem; color: var(--hs-ink); }
.kw-review__verified { display: inline-flex; align-items: center; gap: .25rem; margin-left: .4rem; font-size: .7rem; font-weight: 600; color: var(--hs-success); }
.kw-review__meta { font-size: .76rem; color: var(--hs-muted); }
.kw-review__stars { margin-left: auto; font-size: .78rem; white-space: nowrap; color: var(--hs-gold); }
.kw-review__title { margin-bottom: .4rem; font-size: .98rem; font-weight: 600; color: var(--hs-ink); }
.kw-review__text { margin-bottom: .9rem; font-size: .9rem; line-height: 1.7; color: var(--hs-text); }
.kw-review__foot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }

.kw-review__chip {
  padding: .2rem .65rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-pill);
  background: var(--hs-sand);
  font-size: .72rem;
  font-weight: 500;
  color: var(--hs-ink);
}

.kw-review__helpful {
  margin-left: auto;
  padding: .25rem .8rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-pill);
  background: transparent;
  font-size: .76rem;
  font-weight: 500;
  color: var(--hs-text);
  transition: color var(--hs-t-fast), border-color var(--hs-t-fast), background-color var(--hs-t-fast);
}

.kw-review__helpful:hover,
.kw-review__helpful[aria-pressed="true"] { border-color: var(--hs-gold); background: var(--hs-sand); color: var(--hs-brown); }

.kw-related { padding-top: clamp(3rem, 6vw, 4.5rem); }

/* Product tabs (Description / Additional info / Reviews) */
.kw-pdp-tabs {
  margin-top: clamp(3rem, 6vw, 5rem);
  padding: .75rem clamp(1.25rem, 4vw, 3rem) clamp(2rem, 4vw, 3rem);
}

.kw-pdp-tabs__content { padding-top: clamp(1.75rem, 4vw, 2.75rem); }

.kw-pdp-tabs__title {
  margin-bottom: .75rem;
  padding: 0;
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: 500;
}

.kw-pdp-tabs__note {
  display: flex;
  gap: .5rem;
  margin-top: 1rem;
  padding: 0;
  font-size: .82rem;
}

.kw-pdp-tabs__note i { margin-top: .25rem; color: var(--hs-gold-dark); }

.kw-feature-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 1.5rem;
  margin: 1.75rem 0 0;
  padding: 0;
  list-style: none;
}

.kw-feature-list li { display: flex; gap: .85rem; align-items: flex-start; }

.kw-feature-list i {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  color: var(--hs-gold-dark);
  font-size: .85rem;
}

.kw-feature-list strong { display: block; margin-bottom: .1rem; font-size: .9rem; font-weight: 600; color: var(--hs-ink); }
.kw-feature-list span { font-size: .82rem; color: var(--hs-text); }

.kw-spec-feature .kw-spec-icon-badge { background: var(--hs-sand); color: var(--hs-gold-dark); }

.kw-info-table {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  margin: 0;
  border-top: 1px solid var(--hs-border);
}

.kw-info-table dt,
.kw-info-table dd {
  margin: 0;
  padding: .75rem 0;
  border-bottom: 1px solid var(--hs-border);
  font-size: .86rem;
}

.kw-info-table dt { font-family: var(--hs-font-heading); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--hs-ink); padding-top: .95rem; }
.kw-info-table dd { color: var(--hs-text); }

.kw-size-table-wrap { overflow: hidden; border: 1px solid var(--hs-border); border-radius: var(--hs-radius-lg); background: #fff; }
.kw-size-table { --bs-table-bg: #fff; --bs-table-border-color: var(--hs-border-soft); font-size: .84rem; }
.kw-size-table th { padding-block: .85rem; font-family: var(--hs-font-heading); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; }
.kw-size-table td:first-child { font-weight: 600; color: var(--hs-ink); }
.kw-size-table .is-sample td { --bs-table-bg: var(--hs-sand); }

.kw-size-modal .modal-content { padding: 1rem; border: 0; border-radius: 14px; background: var(--hs-cream); }

@media (max-width: 575.98px) {
  .kw-feature-list { grid-template-columns: minmax(0, 1fr); }
  .kw-info-table { grid-template-columns: 90px minmax(0, 1fr); }
}

/* Sticky add-to-bag bar (mobile). It takes the place of the bottom nav bar. */
.kw-sticky-atc {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1036;
  display: none;
  align-items: center;
  gap: .75rem;
  padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--hs-border);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 -8px 24px rgba(var(--hs-ink-rgb), .08);
  transform: translateY(110%);
  transition: transform var(--hs-t);
}

.kw-sticky-atc img { width: 44px; height: 56px; flex-shrink: 0; border-radius: var(--hs-radius); object-fit: cover; background: var(--hs-sand); }
.kw-sticky-atc__info { flex: 1; min-width: 0; line-height: 1.3; }
.kw-sticky-atc__info strong { display: block; overflow: hidden; font-size: .85rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; color: var(--hs-ink); }
.kw-sticky-atc__info span { font-size: .78rem; color: var(--hs-muted); }
.kw-sticky-atc .btn { --bs-btn-padding-x: 1.1rem; flex-shrink: 0; }

@media (max-width: 991.98px) {
  .kw-sticky-atc { display: flex; }
  .mobile-bar { transition: transform var(--hs-t); }
  body.has-sticky-atc .kw-sticky-atc { transform: none; }
  body.has-sticky-atc .mobile-bar { transform: translateY(110%); }
}

@media (max-width: 575.98px) {
  .kw-review { padding: 1.1rem; }
  .kw-review__head { flex-wrap: wrap; }
  .kw-review__stars { width: 100%; margin-left: calc(44px + .85rem); }
}

/* --------------------------------------------------------------------------
   7. Cart + checkout
   -------------------------------------------------------------------------- */
.kw-order-summary-card.sticky-top,
.kw-checkout-summary-card.sticky-top { z-index: 10; }

.kw-order-summary-card,
.kw-checkout-summary-card { border-radius: var(--hs-radius-lg) !important; }

.kw-cart-item { border-color: var(--hs-border-soft) !important; transition: background-color var(--hs-t-fast); }
.kw-cart-item:hover { background: rgba(var(--hs-gold-rgb), .05); }

.kw-cart-item img { width: 90px; height: 90px; object-fit: cover; background: var(--hs-sand); border-radius: var(--hs-radius) !important; transition: transform var(--hs-t); }
.kw-cart-item:hover img { transform: scale(1.04); }
.kw-checkout-summary-card img { width: 64px; height: 64px; object-fit: cover; background: var(--hs-sand); }

.kw-cart-item .h6 a:hover { color: var(--hs-gold-dark) !important; }
.kw-remove-btn { font-weight: 500; }

.kw-free-shipping-card,
.kw-express-banner {
  border: 1px solid var(--hs-border) !important;
  background:
    radial-gradient(circle at 100% 0, rgba(var(--hs-gold-rgb), .18) 0, transparent 50%),
    linear-gradient(135deg, var(--hs-sand) 0%, #fff 100%);
}

.kw-radio-card {
  background: #fff;
  border-color: var(--hs-border) !important;
  transition: border-color var(--hs-t-fast), background-color var(--hs-t-fast), box-shadow var(--hs-t-fast), transform var(--hs-t-fast);
}

.kw-radio-card:hover { border-color: var(--hs-gold-soft) !important; transform: translateY(-1px); }

.kw-radio-card:has(input:checked) {
  border-color: var(--hs-gold) !important;
  background: var(--hs-cream);
  box-shadow: 0 0 0 3px rgba(var(--hs-gold-rgb), .2);
}

.kw-checkout-section-title { display: flex; align-items: center; gap: .6rem; }

.kw-step-num {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--hs-gold);
  color: #fff;
  font-family: var(--hs-font-heading);
  font-size: .75rem;
  font-weight: 600;
}

/* Checkout progress stepper */
.kw-steps { display: flex; justify-content: center; align-items: flex-start; max-width: 520px; margin: 0 auto; padding: 0; list-style: none; }

.kw-steps li {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  font-weight: 500;
  text-align: center;
  color: var(--hs-muted);
}

.kw-steps li + li::before {
  content: '';
  position: absolute;
  top: 17px;
  right: calc(50% + 24px);
  left: calc(-50% + 24px);
  height: 1px;
  background: var(--hs-border);
}

.kw-steps li.is-done + li::before,
.kw-steps li.is-done::before { background: var(--hs-gold); }

.kw-steps__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--hs-border);
  border-radius: 50%;
  background: #fff;
  font-size: .8rem;
}

.kw-steps li.is-done .kw-steps__icon { border-color: var(--hs-gold); background: var(--hs-gold); color: #fff; }
.kw-steps li.is-done,
.kw-steps li.is-done a { color: var(--hs-gold-dark); }
.kw-steps li.is-current { color: var(--hs-ink); }
.kw-steps li.is-current .kw-steps__icon { border-color: var(--hs-brown); background: var(--hs-brown); color: #fff; box-shadow: 0 0 0 4px rgba(var(--hs-gold-rgb), .25); }

/* --------------------------------------------------------------------------
   8. Mobile filter drawer (category page)
   -------------------------------------------------------------------------- */
#mobileFilterDrawer { --bs-offcanvas-bg: var(--hs-cream); }
#mobileFilterDrawer .offcanvas-footer { background: var(--hs-sand) !important; }

/* ==========================================================================
   9. WooCommerce markup (real products)
   WooCommerce's own CSS still loads; the rules below bring its markup into
   the HS Kids look (and win over its purple buttons / floats).
   ========================================================================== */

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  margin: 0 0 1.5rem !important;
  padding: 1rem 1.25rem 1rem 3rem !important;
  border: 1px solid var(--hs-border) !important;
  border-top: 0 !important;
  border-left: 3px solid var(--hs-gold) !important;
  border-radius: var(--hs-radius) !important;
  background: #fff !important;
  font-size: .88rem;
  color: var(--hs-ink) !important;
}

.woocommerce-error { border-left-color: var(--hs-sale) !important; }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--hs-gold) !important; top: 1rem !important; left: 1.1rem !important; }
.woocommerce-error::before { color: var(--hs-sale) !important; top: 1rem !important; left: 1.1rem !important; }

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  float: right;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  font-family: var(--hs-font-heading);
  font-size: .7rem !important;
  font-weight: 600 !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--hs-gold-dark) !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Prices (WooCommerce price HTML) */
.kw-price,
.kw-current-price { color: var(--hs-ink); }

.kw-price .woocommerce-Price-amount { font-family: var(--hs-font-heading); font-size: 1.02rem; font-weight: 600; color: var(--hs-ink); }
.kw-price del, .kw-current-price del { margin-right: .4rem; opacity: 1; color: var(--hs-muted); }
.kw-price del .woocommerce-Price-amount { font-size: .82rem; font-weight: 400; color: var(--hs-muted); }
.kw-price ins, .kw-current-price ins { text-decoration: none; }
.kw-price ins .woocommerce-Price-amount, .kw-current-price ins .woocommerce-Price-amount { color: var(--hs-sale); }
.kw-current-price del .woocommerce-Price-amount { font-size: 1rem; font-weight: 400; color: var(--hs-muted); }

/* AJAX add-to-cart states on cards */
.kw-product__btn.loading { opacity: .6; pointer-events: none; }
.kw-product__btn.added i::before { content: '\f00c'; }
a.added_to_cart { display: none !important; }

/* Shop toolbar: WooCommerce result count + sort form */
.kw-toolbar .woocommerce-result-count { float: none; margin: 0; padding: 0; font-size: .82rem; color: var(--hs-muted); }
.kw-toolbar .woocommerce-ordering { float: none; margin: 0; }
.kw-toolbar .woocommerce-ordering select {
  min-width: 210px;
  padding: .55rem 2.25rem .55rem .9rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-sm);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%234A3626' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center / 12px;
  font-size: .85rem;
  color: var(--hs-ink);
  appearance: none;
}

/* Filter links (checkbox / radio look) */
.kw-check { text-decoration: none; }
.kw-check__box {
  position: relative;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: 1px solid var(--hs-gold-soft);
  border-radius: 3px;
  background: #fff;
  transition: background-color var(--hs-t-fast), border-color var(--hs-t-fast);
}
.kw-check--radio .kw-check__box { border-radius: 50%; }
.kw-check.is-on { color: var(--hs-ink); font-weight: 500; }
.kw-check.is-on .kw-check__box { border-color: var(--hs-gold); background: var(--hs-gold); }
.kw-check.is-on .kw-check__box::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.kw-check--radio.is-on .kw-check__box::after { top: 4px; left: 4px; width: 6px; height: 6px; border: 0; border-radius: 50%; background: #fff; transform: none; }
.kw-check:hover .kw-check__box { border-color: var(--hs-gold); }
a.kw-size-pill, a.kw-swatch-btn { text-decoration: none; text-align: center; }

.kw-empty {
  padding: 4rem 1.5rem;
  border: 1px dashed var(--hs-border);
  border-radius: var(--hs-radius-lg);
  text-align: center;
}
.kw-empty i { font-size: 2rem; color: var(--hs-gold); }
.kw-empty h2 { margin-top: 1rem; font-size: 1.3rem; }
.kw-empty p { margin-bottom: 1.25rem; }

.kw-qv__sizes { font-size: .8rem; color: var(--hs-muted); }
.kw-qv__price .woocommerce-Price-amount { font-family: var(--hs-font-heading); font-weight: 600; color: var(--hs-ink); }
.kw-qv__price del { color: var(--hs-muted); margin-right: .4rem; }
.kw-qv__price ins { text-decoration: none; }

/* Product page: WooCommerce add-to-cart form */
.kw-pdp-rating__first { font-size: .8rem; color: var(--hs-text); text-decoration: underline; text-underline-offset: 3px; }
.kw-pdp-stock.is-out { color: var(--hs-sale); }
.kw-pdp-stock.is-out .kw-pdp-stock__dot { background: var(--hs-sale); box-shadow: 0 0 0 3px rgba(181, 83, 60, .2); }
.kw-pdp-lead p { margin: 0; padding: 0; }
.kw-pdp-meta { margin-top: 1rem; padding: 0; font-size: .78rem; color: var(--hs-muted); }
.kw-pdp-meta a { color: var(--hs-text); text-decoration: underline; text-underline-offset: 3px; }

.kw-pdp-form { margin-top: 1.5rem; }
.kw-pdp-form form.cart { margin: 0 !important; }
.kw-pdp-form form.cart::before,
.kw-pdp-form form.cart::after { display: none !important; }

/* Variation rows: label on top, pills below. The <select> stays for WooCommerce, hidden. */
.kw-pdp-form table.variations { display: block; width: 100%; margin: 0 0 .5rem !important; border: 0; }
.kw-pdp-form table.variations tbody,
.kw-pdp-form table.variations tr { display: block; }
.kw-pdp-form table.variations tr { margin-bottom: 1.25rem; }
.kw-pdp-form table.variations th,
.kw-pdp-form table.variations td { display: block; padding: 0 !important; border: 0; background: none; line-height: 1.4 !important; }
.kw-pdp-form table.variations th.label { margin-bottom: .7rem; }
.kw-pdp-form table.variations label {
  display: inline !important;
  font-family: var(--hs-font-heading);
  font-size: .72rem;
  font-weight: 600 !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hs-ink);
}
.kw-var-chosen { margin-left: .5rem; font-size: .85rem; font-weight: 500; color: var(--hs-gold-dark); }
.kw-var-chosen:empty { display: none; }
.kw-pdp-form .kw-var-select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; }
.kw-var-pills { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: .5rem; }
.kw-var-pills--color { display: flex; flex-wrap: wrap; gap: .5rem; }
.kw-var-pills .kw-pdp-size-btn:disabled { cursor: not-allowed; }
.kw-pdp-form .reset_variations { display: inline-block; margin-top: .6rem; font-size: .75rem; color: var(--hs-muted) !important; text-decoration: underline; text-underline-offset: 3px; }

/* Selected variation: WooCommerce shows price / stock here. Price already shows at the top. */
.kw-pdp-form .woocommerce-variation-price { display: none; }
.kw-pdp-form .woocommerce-variation-availability p.stock { margin: 0 0 .75rem; font-size: .8rem; }
.kw-pdp-form p.stock.in-stock { color: var(--hs-success); }
.kw-pdp-form p.stock.out-of-stock { color: var(--hs-sale); }

/* Customer Instructions Box (Single Product) */
.fl-instructions {
  grid-column: 1 / -1;
  width: 100%;
  margin-bottom: 1.25rem;
  padding: 1rem 1.15rem;
  background: var(--hs-cream, #FAF5EE);
  border: 1px solid var(--hs-border, #EFE8DF);
  border-radius: var(--hs-radius-md, 12px);
  box-sizing: border-box;
}

.fl-instructions-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--hs-font-heading);
  font-size: 1rem;
  font-weight: 500;
  color: var(--hs-ink, #2C2520);
  margin-bottom: 0.5rem;
  cursor: pointer;
}

.fl-instructions-label i {
  color: var(--hs-gold, #C1A172);
  font-size: 1rem;
}

.fl-instructions-label span {
  font-family: var(--hs-font-body);
  font-size: 1rem;
  font-weight: 400;
  color: var(--hs-muted, #7A726A);
}

.fl-instructions textarea {
  display: block;
  width: 100%;
  min-height: 72px;
  max-height: 140px;
  padding: 0.75rem 1rem;
  border: 1px solid var(--hs-border, #EFE8DF);
  border-radius: var(--hs-radius-sm, 4px);
  background: #FFFFFF;
  color: var(--hs-ink, #2C2520);
  font-family: var(--hs-font-body);
  font-size: 1rem;
  line-height: 1.5;
  resize: vertical;
  transition: border-color var(--hs-t-fast), box-shadow var(--hs-t-fast);
  box-sizing: border-box;
}

.fl-instructions textarea:focus {
  border-color: var(--hs-gold, #C1A172);
  outline: none;
  box-shadow: 0 0 0 3px rgba(193, 161, 114, 0.18);
}

.fl-instructions-count {
  display: block;
  text-align: right;
  margin-top: 0.35rem;
  font-family: var(--hs-font-body);
  font-size: 1rem;
  color: var(--hs-muted, #7A726A);
}

/* Quantity + Add to bag + Buy now */
.kw-pdp-form .woocommerce-variation-add-to-cart,
.kw-pdp-form form.cart:not(.variations_form) {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .75rem;
}

.kw-pdp-form .quantity { float: none !important; margin: 0 !important; }

.quantity.fl-qty {
  display: inline-flex;
  align-items: center;
  height: 52px;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-sm, 4px);
  background: #fff;
}

.quantity.fl-qty .qty {
  width: 48px !important;
  height: 100%;
  padding: 0;
  border: 0 !important;
  background: transparent;
  text-align: center;
  font-family: var(--hs-font-body);
  font-size: 1rem !important;
  font-weight: 600;
  color: var(--hs-ink);
  -moz-appearance: textfield;
  appearance: textfield;
}

.quantity.fl-qty .qty::-webkit-outer-spin-button,
.quantity.fl-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.fl-qty-btn {
  width: 42px;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 1rem;
  color: var(--hs-ink);
  transition: background-color var(--hs-t-fast), color var(--hs-t-fast);
}

.fl-qty-btn:hover { background: var(--hs-gold); color: #fff; }

.kw-pdp-form .single_add_to_cart_button,
.kw-pdp-form .kw-buy-now {
  float: none !important;
  min-height: 52px;
  margin: 0 !important;
  padding: .85rem 1.75rem !important;
  border-radius: var(--hs-radius-sm, 4px) !important;
  font-family: var(--hs-font-heading) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
  line-height: 1.2 !important;
  transition: background-color var(--hs-t-fast), border-color var(--hs-t-fast), color var(--hs-t-fast), transform var(--hs-t-fast) !important;
}

.kw-pdp-form .single_add_to_cart_button {
  border: 1px solid var(--hs-gold) !important;
  background: var(--hs-gold) !important;
  color: #fff !important;
}

.kw-pdp-form .single_add_to_cart_button:hover { border-color: var(--hs-brown) !important; background: var(--hs-brown) !important; transform: translateY(-2px); }
.kw-pdp-form .single_add_to_cart_button.disabled { opacity: .55 !important; cursor: not-allowed; transform: none; }

.kw-pdp-form .kw-buy-now { grid-column: 1 / -1; }
.kw-pdp-form .kw-buy-now:hover { transform: translateY(-2px); }

.kw-pdp-actions-alt { grid-template-columns: auto 1fr; align-items: center; margin-top: 1rem; }
.kw-pdp-actions-alt .kw-pdp-guide { font-family: var(--hs-font-heading); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

/* Additional info: WooCommerce attributes table */
.kw-attr-table table.woocommerce-product-attributes { width: 100%; margin: 0; border: 0; border-top: 1px solid var(--hs-border); }
.kw-attr-table th,
.kw-attr-table td { padding: .8rem 0 !important; border: 0 !important; border-bottom: 1px solid var(--hs-border) !important; background: none !important; font-style: normal !important; text-align: left; }
.kw-attr-table th { width: 120px; font-family: var(--hs-font-heading); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--hs-ink); }
.kw-attr-table td { font-size: .86rem; color: var(--hs-text); }
.kw-attr-table td p { margin: 0; padding: 0; }

.kw-pdp-desc p { margin-bottom: .9rem; }
.kw-pdp-desc ul { padding-left: 1.1rem; color: var(--hs-text); }

/* Reviews tab: WooCommerce reviews + form */
.kw-pdp-reviews #reviews h2,
.kw-pdp-reviews .woocommerce-Reviews-title,
.kw-pdp-reviews #reply-title { display: block; margin-bottom: 1rem; padding: 0; font-family: var(--hs-font-heading); font-size: 1.3rem; font-weight: 500; color: var(--hs-ink); }
.kw-pdp-reviews .woocommerce-noreviews { margin-bottom: 1.5rem; color: var(--hs-muted); }
.kw-pdp-reviews ol.commentlist { margin: 0 0 2rem; padding: 0; list-style: none; }
.kw-pdp-reviews ol.commentlist li { margin-bottom: 1rem; padding: 1.25rem 1.5rem; border: 1px solid var(--hs-border); border-radius: var(--hs-radius-lg); background: #fff; }
.kw-pdp-reviews ol.commentlist li img.avatar { float: left; width: 44px; height: 44px; margin-right: 1rem; border: 0; border-radius: 50%; background: var(--hs-sand); }
.kw-pdp-reviews ol.commentlist li .comment-text { margin: 0 0 0 60px !important; padding: 0 !important; border: 0 !important; }
.kw-pdp-reviews .star-rating { color: var(--hs-gold); }
.kw-pdp-reviews .woocommerce-review__author { color: var(--hs-ink); }
.kw-pdp-reviews .woocommerce-review__published-date { font-size: .78rem; color: var(--hs-muted); }

.kw-pdp-reviews #review_form_wrapper { padding: 1.75rem; border: 1px solid var(--hs-border); border-radius: var(--hs-radius-lg); background: #fff; }
.kw-pdp-reviews .comment-form label { display: block; margin-bottom: .35rem; font-size: .8rem; font-weight: 600; color: var(--hs-ink); }
.kw-pdp-reviews .comment-form input[type="text"],
.kw-pdp-reviews .comment-form input[type="email"],
.kw-pdp-reviews .comment-form textarea { width: 100%; padding: .7rem .9rem; border: 1px solid var(--hs-border); border-radius: var(--hs-radius-sm); background: #fff; color: var(--hs-ink); }
.kw-pdp-reviews .comment-form textarea:focus,
.kw-pdp-reviews .comment-form input:focus { outline: 0; border-color: var(--hs-gold); box-shadow: 0 0 0 .2rem rgba(var(--hs-gold-rgb), .22); }
.kw-pdp-reviews p.stars a { color: var(--hs-gold) !important; }
.kw-pdp-reviews .form-submit input[type="submit"],
.kw-pdp-reviews #submit {
  padding: .85rem 1.9rem !important;
  border: 1px solid var(--hs-gold) !important;
  border-radius: var(--hs-radius-sm) !important;
  background: var(--hs-gold) !important;
  font-family: var(--hs-font-heading);
  font-size: .72rem !important;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #fff !important;
}
.kw-pdp-reviews #submit:hover { background: var(--hs-brown) !important; border-color: var(--hs-brown) !important; }

/* Cart + Checkout pages (WooCommerce Cart / Checkout blocks) */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  font-family: var(--hs-font-body) !important;
  color: var(--hs-text) !important;
  font-size: 1rem !important;
}

/* Page titles */
.wp-block-woocommerce-cart .wc-block-components-title,
.wp-block-woocommerce-checkout .wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title {
  font-family: var(--hs-font-heading) !important;
  font-weight: 500 !important;
  color: var(--hs-ink) !important;
}

/* Section step headings */
.wc-block-cart__totals-title,
.wc-block-cart-items__header th,
.wc-block-components-checkout-step__title {
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: .08em;
  text-transform: uppercase !important;
}

/* Cart Items & Cards */
.wc-block-cart-items__header th {
  padding-bottom: 0.75rem !important;
  border-bottom: 1.5px solid var(--hs-border) !important;
  color: var(--hs-ink) !important;
}

.wc-block-cart-item {
  background: #FFFFFF !important;
  border: 1px solid var(--hs-border) !important;
  border-radius: var(--hs-radius-md, 12px) !important;
  padding: 1.25rem !important;
  box-shadow: 0 4px 16px rgba(74, 54, 38, 0.04) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wc-block-cart-item:hover {
  box-shadow: 0 8px 24px rgba(74, 54, 38, 0.08) !important;
}

.wc-block-components-product-name {
  font-family: var(--hs-font-heading) !important;
  font-size: 1.15rem !important;
  font-weight: 500 !important;
  color: var(--hs-ink) !important;
  text-decoration: none !important;
  line-height: 1.35 !important;
}

.wc-block-components-product-name:hover { color: var(--hs-gold-dark) !important; }

.wc-block-cart-item__image img {
  border-radius: var(--hs-radius-md, 10px) !important;
  background: var(--hs-sand) !important;
  border: 1px solid var(--hs-border) !important;
  width: 90px !important;
  height: 90px !important;
  object-fit: cover !important;
}

.wc-block-components-product-metadata {
  font-family: var(--hs-font-body) !important;
  font-size: 1rem !important;
  color: var(--hs-muted) !important;
  margin-top: 0.35rem !important;
}

.wc-block-components-sale-badge {
  border-color: var(--hs-sale) !important;
  color: var(--hs-sale) !important;
  background: #fff !important;
  border-radius: var(--hs-radius-pill) !important;
  font-size: 1rem !important;
}

/* Sidebar Totals Card (Cart & Checkout) */
.wp-block-woocommerce-cart .wc-block-components-sidebar,
.wp-block-woocommerce-checkout .wc-block-components-sidebar {
  padding: 2rem !important;
  border: 1px solid var(--hs-border) !important;
  border-radius: var(--hs-radius-lg, 16px) !important;
  background: #fff !important;
  box-shadow: 0 10px 30px rgba(74, 54, 38, 0.06) !important;
}

.wc-block-cart__totals-title {
  border-bottom: 1.5px solid var(--hs-border) !important;
  padding-bottom: 0.85rem !important;
  margin-bottom: 1.25rem !important;
}

.wc-block-components-totals-item {
  font-family: var(--hs-font-body) !important;
  font-size: 1rem !important;
  padding-block: 0.65rem !important;
  color: var(--hs-text) !important;
}

.wc-block-components-totals-item__label {
  font-size: 1rem !important;
  color: var(--hs-text) !important;
}

.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--hs-ink) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
}

.wc-block-components-totals-footer-item {
  border-top: 1.5px solid var(--hs-border) !important;
  padding-top: 1rem !important;
  margin-top: 0.75rem !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-family: var(--hs-font-heading) !important;
  font-size: 1.2rem !important;
  font-weight: 600 !important;
  color: var(--hs-ink) !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: var(--hs-font-heading) !important;
  font-size: 1.45rem !important;
  font-weight: 700 !important;
  color: var(--hs-ink) !important;
}

.wc-block-components-button:not(.is-link) {
  min-height: 52px !important;
  border: 1px solid var(--hs-gold) !important;
  border-radius: var(--hs-radius-pill, 9999px) !important;
  background: var(--hs-gold) !important;
  color: #fff !important;
  font-family: var(--hs-font-body) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  box-shadow: 0 6px 18px rgba(193, 161, 114, 0.3) !important;
  transition: all var(--hs-t-fast) !important;
  outline: none !important;
}

.wc-block-components-button:not(.is-link):focus,
.wc-block-components-button:not(.is-link):focus-visible,
.wc-block-cart__submit-button:focus,
.wc-block-cart__submit-button:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(193, 161, 114, 0.35) !important;
}

.wc-block-components-button:not(.is-link):hover {
  border-color: var(--hs-brown) !important;
  background: var(--hs-brown) !important;
  box-shadow: 0 10px 24px rgba(112, 88, 60, 0.35) !important;
  transform: translateY(-2px) !important;
}

.wc-block-components-button.is-link,
.wp-block-woocommerce-cart a,
.wp-block-woocommerce-checkout a {
  color: var(--hs-gold-dark) !important;
  font-size: 1rem !important;
}

/* ==========================================================================
   Checkout Step & Address Form Spacing (Issue 6)
   ========================================================================== */
.wc-block-components-checkout-step {
  margin-top: 2.25rem !important;
  margin-bottom: 2.25rem !important;
  padding-bottom: 2rem !important;
  border-bottom: 1px solid var(--hs-border) !important;
}

.wc-block-components-checkout-step:first-child {
  margin-top: 0 !important;
}

.wc-block-components-checkout-step:last-of-type {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.wc-block-components-checkout-step__heading,
.wc-block-components-checkout-step__title {
  font-family: var(--hs-font-heading) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--hs-ink) !important;
  margin-top: 0 !important;
  margin-bottom: 1.5rem !important;
  padding-top: 0.5rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

.wc-block-components-checkout-step:first-child .wc-block-components-checkout-step__heading,
.wc-block-components-checkout-step:first-child .wc-block-components-checkout-step__title {
  padding-top: 0 !important;
}

.wc-block-checkout__shipping-fields .wc-block-components-checkout-step__container,
.wc-block-checkout__billing-fields .wc-block-components-checkout-step__container,
.wc-block-components-checkout-step__container {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  margin-top: 0 !important;
}

/* --------------------------------------------------------------------------
   Checkout Address Form Layout (First Name / Last Name in 2 columns)
   -------------------------------------------------------------------------- */
.wc-block-components-address-form {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 1.25rem 1rem !important;
  justify-content: space-between !important;
  margin-top: 0 !important;
  width: 100% !important;
}

/* Default fields take 50% width (side-by-side) */
.wc-block-components-address-form > .wc-block-components-text-input,
.wc-block-components-address-form > .wc-block-components-select-input,
.wc-block-components-address-form > .wc-block-components-state-input,
.wc-block-components-address-form > .wc-blocks-components-select,
.wc-block-components-address-form > .wc-block-components-combobox {
  box-sizing: border-box !important;
  flex: 1 1 calc(50% - 0.5rem) !important;
  min-width: 200px !important;
  margin: 0 !important;
}

/* Full-width address fields */
.wc-block-components-address-form > .wc-block-components-country-input,
.wc-block-components-address-form > .wc-block-components-address-form__country,
.wc-block-components-address-form > .wc-block-components-address-form__address_1,
.wc-block-components-address-form > .wc-block-components-address-form__address_2,
.wc-block-components-address-form > .wc-block-components-address-form__company,
.wc-block-components-address-form > .wc-block-components-address-form__email,
.wc-block-components-address-form > .wc-block-components-address-form__phone,
.wc-block-components-address-form > .wc-block-components-checkbox,
.wc-block-components-address-form > .wc-block-components-address-form__address_2-toggle {
  box-sizing: border-box !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  margin: 0 !important;
}

@media (max-width: 640px) {
  .wc-block-components-address-form > .wc-block-components-text-input,
  .wc-block-components-address-form > .wc-block-components-select-input,
  .wc-block-components-address-form > .wc-block-components-state-input,
  .wc-block-components-address-form > .wc-blocks-components-select,
  .wc-block-components-address-form > .wc-block-components-combobox {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   Checkout Input Controls & Floating Labels
   -------------------------------------------------------------------------- */
.wc-block-components-text-input,
.wc-block-components-combobox,
.wc-blocks-components-select {
  position: relative !important;
  margin-bottom: 0 !important;
}

/* Base input field styling */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-textarea {
  min-height: 56px !important;
  height: 56px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1.5px solid var(--hs-border) !important;
  border-radius: var(--hs-radius-sm, 6px) !important;
  background: #fff !important;
  color: var(--hs-ink) !important;
  font-family: var(--hs-font-body) !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  transition: border-color var(--hs-t-fast), box-shadow var(--hs-t-fast) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus {
  border-color: var(--hs-gold) !important;
  box-shadow: 0 0 0 .2rem rgba(var(--hs-gold-rgb), .22) !important;
  outline: 0 !important;
}

/* When empty and not focused: label is centered like a placeholder */
.wc-block-components-text-input:not(.is-active):not(:focus-within) input {
  padding: 16px 14px !important;
}

.wc-block-components-text-input:not(.is-active):not(:focus-within) label {
  position: absolute !important;
  top: 50% !important;
  left: 14px !important;
  transform: translateY(-50%) !important;
  font-family: var(--hs-font-body) !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  color: var(--hs-muted) !important;
  pointer-events: none !important;
  margin: 0 !important;
  transition: all 0.2s ease !important;
  z-index: 1 !important;
}

/* When active, focused, or autofilled: label floats to the top, input has top padding */
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input:focus-within input,
.wc-block-components-text-input input:-webkit-autofill {
  padding-top: 24px !important;
  padding-bottom: 6px !important;
  padding-left: 14px !important;
  padding-right: 14px !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  color: var(--hs-ink) !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input:focus-within label,
.wc-block-components-text-input input:-webkit-autofill + label {
  position: absolute !important;
  top: 8px !important;
  left: 14px !important;
  transform: none !important;
  font-family: var(--hs-font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: var(--hs-muted) !important;
  pointer-events: none !important;
  margin: 0 !important;
  transition: all 0.2s ease !important;
  z-index: 2 !important;
}

/* --------------------------------------------------------------------------
   Select Dropdowns & Comboboxes (Country / Region, State / County)
   -------------------------------------------------------------------------- */
.wc-block-components-select,
.wc-blocks-components-select,
.wc-block-components-country-input,
.wc-block-components-state-input,
.wc-block-components-combobox,
.wc-blocks-components-select .wc-blocks-components-select__container {
  position: relative !important;
  width: 100% !important;
}

.wc-block-components-select label,
.wc-blocks-components-select label,
.wc-block-components-country-input label,
.wc-block-components-state-input label,
.wc-block-components-combobox label,
.wc-block-components-select__label,
.wc-blocks-components-select__label,
.wc-block-components-country-input .wc-block-components-country-input__label,
.wc-block-components-state-input .wc-block-components-state-input__label {
  position: absolute !important;
  top: 7px !important;
  left: 14px !important;
  transform: none !important;
  font-family: var(--hs-font-body) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  color: var(--hs-muted) !important;
  pointer-events: none !important;
  margin: 0 !important;
  z-index: 5 !important;
  transition: all 0.2s ease !important;
}

.wc-block-components-select select,
.wc-blocks-components-select select,
.wc-block-components-select__select,
.wc-blocks-components-select__select,
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.wc-block-components-country-input input,
.wc-block-components-state-input input,
.wc-block-components-combobox input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  min-height: 56px !important;
  height: 56px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding-top: 22px !important;
  padding-bottom: 6px !important;
  padding-left: 14px !important;
  padding-right: 36px !important;
  border: 1.5px solid var(--hs-border) !important;
  border-radius: var(--hs-radius-sm, 6px) !important;
  background-color: #fff !important;
  color: var(--hs-ink) !important;
  font-family: var(--hs-font-body) !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  transition: border-color var(--hs-t-fast), box-shadow var(--hs-t-fast) !important;
}

.wc-block-components-select select:focus,
.wc-blocks-components-select select:focus,
.wc-block-components-select__select:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-combobox input:focus,
.wc-block-components-country-input input:focus,
.wc-block-components-state-input input:focus {
  border-color: var(--hs-gold) !important;
  box-shadow: 0 0 0 .2rem rgba(var(--hs-gold-rgb), .22) !important;
  outline: 0 !important;
}
  border-color: var(--hs-gold) !important;
  box-shadow: 0 0 0 .2rem rgba(var(--hs-gold-rgb), .22) !important;
  outline: 0 !important;
}

.wc-block-components-radio-control__input:checked { border-color: var(--hs-gold) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--hs-gold) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input:checked { border-color: var(--hs-gold) !important; background: var(--hs-gold) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 1.5px var(--hs-gold) !important; border-radius: var(--hs-radius) !important; }

.wc-block-components-quantity-selector {
  border-radius: var(--hs-radius-pill, 9999px) !important;
  height: 42px !important;
}
.wc-block-components-quantity-selector::after { border-color: var(--hs-border) !important; border-radius: var(--hs-radius-pill, 9999px) !important; }
.wc-block-cart-item__remove-link { color: var(--hs-muted) !important; font-size: 1rem !important; }
.wc-block-cart-item__remove-link:hover { color: var(--hs-sale) !important; }

.wc-block-cart__empty-cart__title { font-family: var(--hs-font-heading); color: var(--hs-ink); font-size: 1.5rem !important; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator { border-color: var(--hs-border); }

/* Checkout: the order summary block already sits in our white sidebar card */
.wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; border-radius: 0 !important; }
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__content { padding-inline: 0 !important; }
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper { padding-inline: 0 !important; }

/* ==========================================================================
   10. Shop AJAX filters (assets/js/shop-filters.js)
   ========================================================================== */

/* Real checkboxes / radios inside the filter labels */
.kw-check__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.kw-check { position: relative; }
.kw-check__input:checked + .kw-check__box { border-color: var(--hs-gold); background: var(--hs-gold); }
.kw-check__input:checked + .kw-check__box::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.kw-check--radio .kw-check__input:checked + .kw-check__box::after { top: 4px; left: 4px; width: 6px; height: 6px; border: 0; border-radius: 50%; background: #fff; transform: none; }
.kw-check:has(.kw-check__input:checked) { color: var(--hs-ink); font-weight: 500; }
.kw-check__input:focus-visible + .kw-check__box { outline: 2px solid var(--hs-gold-dark); outline-offset: 2px; }

/* Size pills + colour swatches are labels around a hidden checkbox */
label.kw-size-pill { display: flex; align-items: center; justify-content: center; margin: 0; }
label.kw-size-pill:has(input:checked) { background: var(--hs-ink); border-color: var(--hs-ink); color: #fff; }
label.kw-size-pill:has(input:focus-visible),
label.kw-swatch-btn:has(input:focus-visible) .kw-swatch-circle { outline: 2px solid var(--hs-gold-dark); outline-offset: 2px; }
label.kw-swatch-btn { cursor: pointer; margin: 0; }
label.kw-swatch-btn:has(input:checked) .kw-swatch-circle { box-shadow: 0 0 0 3px var(--hs-cream), 0 0 0 4px var(--hs-ink); }
label.kw-swatch-btn:has(input:checked) .kw-swatch-name { color: var(--hs-ink); font-weight: 600; }

fieldset.kw-filter-section { min-width: 0; margin: 0; border: 0; border-bottom: 1px solid var(--hs-border); }

/* Buttons that look like links / tags */
button.kw-reset-link { padding: 0; border: 0; background: none; }
button.kw-active-tag { cursor: pointer; font-family: inherit; transition: border-color var(--hs-t-fast), color var(--hs-t-fast); }
button.kw-active-tag:hover { border-color: var(--hs-sale); }
button.kw-active-tag:hover .kw-tag-remove { background: var(--hs-sale); color: #fff; }
button.kw-toolbar__clear { padding: 0; border: 0; background: none; }

/* Preloader over the grid while AJAX runs */
.kw-results { position: relative; min-height: 320px; }
.kw-results > .row,
.kw-results > .kw-pagination { transition: opacity .25s ease, filter .25s ease; }
.kw-results.is-loading > .row,
.kw-results.is-loading > .kw-pagination { opacity: .35; filter: saturate(.6); pointer-events: none; }

.kw-loader {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-top: clamp(4rem, 12vh, 8rem);
  padding: .8rem 1.25rem;
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-pill);
  background: rgba(255, 255, 255, .95);
  box-shadow: var(--hs-shadow-lg);
  font-family: var(--hs-font-heading);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hs-ink);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}

.kw-results.is-loading .kw-loader { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

.kw-loader__spinner {
  width: 18px;
  height: 18px;
  border: 2px solid var(--hs-sand);
  border-top-color: var(--hs-gold);
  border-radius: 50%;
  animation: hsSpinLoader .7s linear infinite;
}

@keyframes hsSpinLoader { to { transform: rotate(360deg); } }

/* New cards fade in after a filter / page change */
.kw-results:not(.is-loading) .kw-product-col { animation: hsCardIn .45s var(--hs-ease) both; }
.kw-results:not(.is-loading) .kw-product-col:nth-child(2) { animation-delay: .03s; }
.kw-results:not(.is-loading) .kw-product-col:nth-child(3) { animation-delay: .06s; }
.kw-results:not(.is-loading) .kw-product-col:nth-child(4) { animation-delay: .09s; }
.kw-results:not(.is-loading) .kw-product-col:nth-child(n+5) { animation-delay: .12s; }

@keyframes hsCardIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .kw-loader__spinner { animation-duration: 1.5s !important; animation-iteration-count: infinite !important; }
  .kw-results .kw-product-col { animation: none !important; }
}
