/* v1.14 consolidated base declarations migrated from creative.store.css.
   Canonical component declarations below remain authoritative. */
.kimo-filter-input {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--kimo-border);
  border-radius: var(--kimo-input-radius);
  font-size: 13px;
  font-weight: 600;
  background: var(--kimo-surface);
  color: var(--kimo-text);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
  font-family: var(--kimo-font-body);
}
.kimo-filter-input:focus {
  border-color: var(--kimo-accent);
  box-shadow: 0 0 0 3px rgba(255, 193, 7, .10);
}
.kimo-filter-small {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--kimo-border);
  border-radius: var(--kimo-input-radius);
  font-size: 13px;
  font-weight: 700;
  background: var(--kimo-surface);
  color: var(--kimo-text);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
  font-family: var(--kimo-font-body);
}
.kimo-filter-small:focus {
  border-color: var(--kimo-accent);
  box-shadow: 0 0 0 3px rgba(255, 193, 7, .10);
}
.kimo-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--kimo-text);
  cursor: pointer;
  padding: 6px 0;
}
.kimo-filter-actions {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kimo-filter-actions .kimo-btn {
  text-align: center;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .3px;
  padding: 10px 16px;
}
.kimo-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: 14px 0;
  margin: 0;
  list-style: none;
  font-size: 13px;
  font-weight: 600;
}
.kimo-breadcrumb a {
  color: var(--kimo-text-secondary);
  text-decoration: none;
  transition: color var(--kimo-duration-fast);
  padding: 2px 0;
}
.kimo-breadcrumb a:hover {
  color: var(--kimo-accent);
}
.kimo-filter-section {
  margin-bottom: 20px;
  border-bottom: 1px solid #EAEAEA;
  padding-bottom: 16px;
}

/* CPS eShop product listing */
/* ── Products Page Enhancements ────────────────────────── */
  .kimo-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--kimo-muted);
    flex-wrap: wrap;
  }
  .kimo-breadcrumb a {
    text-decoration: none;
    color: var(--kimo-muted);
    transition: color .15s ease;
  }
  .kimo-breadcrumb a:hover { color: var(--kimo-primary-dark); }
  .kimo-breadcrumb-sep { color: var(--kimo-border); }
  .kimo-breadcrumb-active { color: var(--kimo-text); font-weight: 900; }

  /* Filter sidebar improvements */
  .kimo-filter-input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--kimo-border);
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    background: #FFFFFF;
    color: var(--kimo-text);
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
  }
  .kimo-filter-input:focus {
    border-color: var(--kimo-accent);
    box-shadow: 0 0 0 3px rgba(255,193,7,.10);
  }
  .kimo-filter-small {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--kimo-border);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    background: #FFFFFF;
    color: var(--kimo-text);
    outline: none;
    transition: border-color .2s ease;
  }
  .kimo-filter-small:focus {
    border-color: var(--kimo-accent);
    box-shadow: 0 0 0 3px rgba(255,193,7,.10);
  }

  /* Keep the product-card overlay available on touch devices. */
  @media (hover: none) {
    .kimo-card-atc-overlay {
      opacity: 1 !important;
      pointer-events: auto !important;
    }
    .kimo-card-atc-overlay .kimo-btn {
      opacity: 1 !important;
      transform: none !important;
    }
    .kimo-card-wish-btn {
      opacity: 1 !important;
      transform: scale(1) !important;
    }
  }

.cps-products-page { padding-block:16px 40px; }
.cps-products-breadcrumb { margin-block-end:16px; }
.cps-products-layout { margin-block-start:0; }
.kimo-filter-toggle-label { display:inline-flex; align-items:center; gap:8px; }
.kimo-filter-head, .kimo-filter-head-actions, .cps-products-header, .cps-products-count-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.kimo-filter-head h3 { margin:0; font-weight:900; font-size:16px; }
.kimo-filter-head-actions { gap:8px; }
.kimo-filter-close-mobile { border:1px solid #e2e2e2; border-radius:10px; background:#fff; padding:6px 14px; font-weight:800; font-size:12px; cursor:pointer; color:var(--kimo-text); }
.kimo-filter-clear { font-weight:800; text-decoration:none; font-size:12px; }
.kimo-filter-section { margin-block-start:16px; }
.kimo-filter-section:first-of-type { margin-block-start:14px; }
.kimo-filter-label { font-weight:800; font-size:11px; text-transform:uppercase; letter-spacing:.8px; color:var(--kimo-muted); margin-block-end:8px; }
.kimo-filter-row { font-weight:900; display:flex; align-items:center; justify-content:space-between; padding-block:10px; border-block-end:1px solid var(--kimo-border); }
.kimo-filter-row input { inline-size:18px; block-size:18px; accent-color:var(--kimo-accent); }
.kimo-filter-price-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.kimo-filter-actions { margin-block-start:20px; display:flex; flex-direction:column; gap:8px; }
.kimo-filter-actions .kimo-btn { text-decoration:none; text-align:center; inline-size:100%; }
.cps-products-header { align-items:flex-end; gap:12px; flex-wrap:wrap; margin-block-end:16px; }
.cps-products-title { margin:0; font-weight:900; font-size:clamp(24px,3vw,28px); letter-spacing:-.5px; line-height:1.2; }
.cps-products-subtitle { margin-block-start:6px; font-size:14px; color:var(--kimo-muted); font-weight:600; }
.cps-products-controls { margin-block:0 16px; }
.cps-products-showing { font-size:13px; font-weight:600; color:var(--kimo-muted); }
.cps-products-showing strong { color:var(--kimo-text); font-weight:800; }
.cps-control-label { display:flex; align-items:center; gap:8px; font-weight:800; font-size:13px; }
.kimo-noimg-fill { height:100%; }
.cps-products-pager { display:flex; justify-content:center; margin-block-start:24px; }
@media (min-width: 769px) { .kimo-filter-close-mobile { display:none; } }


/* Runtime correctness guard: full catalogue pages are always responsive grids. */
.cps-products-page [data-kimo-grid],
.cps-products-page .kimo-grid,
.cps-products-page .kimo-grid-carousel {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  inline-size: 100% !important;
  max-inline-size: 100% !important;
  overflow: visible !important;
  scroll-snap-type: none !important;
  gap: 18px !important;
}
.cps-products-page [data-kimo-grid] > .kimo-card {
  min-inline-size: 0 !important;
  inline-size: 100% !important;
  max-inline-size: none !important;
  flex: initial !important;
  scroll-snap-align: none !important;
}
.cps-products-page .kimo-card-img-wrap,
.cps-products-page .kimo-card-img { background: #fff !important; }
.cps-products-page .kimo-card-img img { object-fit: contain !important; background:#fff !important; }
.cps-products-page .kimo-card-contact-overlay .kimo-btn { text-decoration:none; }
@media (max-width: 1499px) and (min-width: 1181px) {
  .cps-products-page [data-kimo-grid], .cps-products-page .kimo-grid, .cps-products-page .kimo-grid-carousel { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (max-width: 1180px) {
  .cps-products-page [data-kimo-grid], .cps-products-page .kimo-grid, .cps-products-page .kimo-grid-carousel { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 820px) {
  .cps-products-page [data-kimo-grid], .cps-products-page .kimo-grid, .cps-products-page .kimo-grid-carousel { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap:12px !important; }
}
@media (max-width: 470px) {
  .cps-products-page [data-kimo-grid], .cps-products-page .kimo-grid, .cps-products-page .kimo-grid-carousel { grid-template-columns: minmax(0, 1fr) !important; }
}

.cps-listing-card-enter { animation:kimoFadeIn .4s ease both; animation-delay:calc(var(--cps-card-index,0) * 45ms); }
.cps-listing-empty,
.cps-listing-error {
  grid-column: 1 / -1;
  min-block-size: 240px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  padding: 32px;
  border: 1px dashed var(--kimo-border);
  border-radius: var(--kimo-radius);
  background: var(--kimo-surface);
  color: var(--kimo-muted);
  text-align: center;
}
.cps-listing-empty > span { font-size: 36px; color: var(--kimo-primary-dark); }

/* Catalog discovery and resilient media. */
.kimo-filter-input:is(select) {
  inline-size: 100%;
  min-block-size: 42px;
  padding-inline: 12px 34px;
  border: 1px solid var(--kimo-border);
  border-radius: 10px;
  background: var(--kimo-surface, #fff);
  color: var(--kimo-text);
  font-size: 13px;
  font-weight: 700;
}
.cps-products-page .kimo-card-img,
.cps-products-page .kimo-card-img-wrap { aspect-ratio: 1 / 1; }
.cps-products-page .kimo-card-img { display: grid; place-items: center; overflow: hidden; }
.cps-products-page .kimo-card-img img { inline-size: 100%; block-size: 100%; padding: 14px; }
.cps-products-page .kimo-noimg {
  display: grid;
  inline-size: 100%;
  block-size: 100%;
  min-block-size: 220px;
  place-items: center;
  align-content: center;
  gap: 10px;
  background: linear-gradient(145deg, #fafafa, #f2f3f5);
  color: var(--kimo-muted);
  text-align: center;
}
.cps-products-page .kimo-noimg svg { inline-size: 54px; block-size: 54px; opacity: .55; }
.cps-products-page .kimo-noimg span { font-size: 11px; font-weight: 800; }
@media (min-width: 901px) {
  .cps-products-page .kimo-filters { position: sticky; inset-block-start: 92px; align-self: start; max-block-size: calc(100vh - 112px); overflow: auto; scrollbar-width: thin; }
}


/* Media loading: reserve card geometry and show an intentional
   shimmer until the real thumbnail has loaded/decoded. */
.cps-products-page .kimo-card-img-wrap.is-image-loading { position: relative; overflow: hidden; }
.cps-products-page .kimo-card-img-wrap.is-image-loading::after {
  content: "";
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(100deg, rgba(245,245,247,.94) 18%, rgba(255,255,255,.98) 36%, rgba(245,245,247,.94) 54%);
  background-size: 220% 100%;
  animation: cps-media-shimmer 1.05s ease-in-out infinite;
}
.cps-products-page .kimo-card-img-wrap.is-image-loading .kimo-card-wish-btn { z-index: 2; }
@keyframes cps-media-shimmer { to { background-position-x: -220%; } }
@media (prefers-reduced-motion: reduce) {
  .cps-products-page .kimo-card-img-wrap.is-image-loading::after { animation: none; background: #f5f5f7; }
}


/* Inventory visibility contract. */
.cps-listing-stock { display:flex; align-items:center; gap:6px; min-block-size:18px; color:var(--cps-muted-text,#6b7280); font-size:10.5px; font-weight:700; }
.cps-listing-stock i { inline-size:7px; block-size:7px; flex:0 0 auto; border-radius:50%; background:#9ca3af; }
.cps-listing-stock.is-available { color:var(--cps-success,#16a34a); }
.cps-listing-stock.is-available i { background:var(--cps-success,#16a34a); }
.cps-listing-stock.is-unavailable { color:var(--cps-danger,#dc2626); }
.cps-listing-stock.is-unavailable i { background:var(--cps-danger,#dc2626); }
.cps-products-page .cps-product-card__media.is-image-loading { position:relative; overflow:hidden; }
.cps-products-page .cps-product-card__media.is-image-loading::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--cps-primary,#d4af37) 8%,#fff) 42%,transparent 64%); background-size:220% 100%; animation:cps-media-shimmer 1.05s ease-in-out infinite; }
.cps-products-page .cps-product-card__media.is-image-loading .cps-product-card__wish,
.cps-products-page .cps-product-card__media.is-image-loading .cps-product-card__badges { z-index:3; }
@media (prefers-reduced-motion:reduce) { .cps-products-page .cps-product-card__media.is-image-loading::after { animation:none; background:color-mix(in srgb,var(--cps-background-dark,#f7f7f8) 80%,var(--cps-surface,#fff)); } }
/* Canonical product-listing commerce surface. */
/* ---- Product listing --------------------------------------------------- */
body.cps-eshop .cps-products-page { background:var(--cps-background); }
body.cps-eshop .kimo-layout { gap:22px; }
body.cps-eshop .kimo-sidebar { border:1px solid var(--cps-border); border-radius:var(--cps-card-radius,16px); background:var(--cps-surface); box-shadow:none; }
body.cps-eshop .cps-products-controls { border-color:var(--cps-border); background:var(--cps-surface); border-radius:var(--cps-card-radius,16px); }
body.cps-eshop .cps-products-page .kimo-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
body.cps-eshop .cps-products-page .kimo-card { border:1px solid var(--cps-border); background:var(--cps-surface); box-shadow:none; }
body.cps-eshop .cps-products-page .kimo-card:hover { border-color:color-mix(in srgb,var(--cps-primary) 45%,var(--cps-border)); box-shadow:0 9px 25px color-mix(in srgb,var(--cps-text) 7%,transparent); }
body.cps-eshop .cps-products-page .kimo-card-atc-overlay .kimo-btn-primary { background:var(--cps-primary); color:var(--cps-text); }
