/* SOLEIL catalog v2: purpose-built layout, independent of WooCommerce loop CSS. */
.soleil-catalog {
  padding: 20px 0 72px;
  color: var(--soleil-color-text);
}
.soleil-catalog__header {
  margin: 0 0 34px;
}
.soleil-catalog__title {
  margin: 0;
  font-size: clamp(29px, 2.7vw, 38px);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -.035em;
}
.soleil-catalog__description {
  max-width: 760px;
  margin-top: 14px;
  color: #77716e;
  font-size: 14px;
  line-height: 1.7;
}
.soleil-catalog__description:empty { display: none; }
.soleil-catalog__description > :first-child,
.soleil-catalog__description > :first-child > :first-child { margin-top: 0; }
.soleil-catalog__description > :last-child,
.soleil-catalog__description > :last-child > :last-child { margin-bottom: 0; }

.soleil-catalog__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px 22px;
  margin: 0 0 23px;
}
.soleil-catalog .woocommerce-result-count,
.soleil-catalog .woocommerce-ordering {
  float: none;
  margin: 0;
}
.soleil-catalog .woocommerce-result-count {
  color: #77716e;
  font-size: 13px;
  line-height: 1.5;
}
.soleil-catalog .woocommerce-ordering select {
  display: block;
  min-height: 42px;
  max-width: 100%;
  padding: 9px 38px 9px 14px;
  border: 1px solid #e3e0de;
  border-radius: 8px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath fill='none' stroke='%236b6562' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.4' d='m1 1 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  color: #272323;
  font: inherit;
  font-size: 13px;
  line-height: 1.4;
  appearance: none;
  cursor: pointer;
}
.soleil-catalog .woocommerce-ordering select:focus-visible {
  outline: 2px solid var(--soleil-color-accent);
  outline-offset: 2px;
}

/* Cards are plain grid items, not WooCommerce li.product elements. */
.soleil-catalog__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 35px 22px;
  margin: 0;
  padding: 0;
}
.soleil-catalog__item {
  min-width: 0;
  margin: 0;
  padding: 0;
}
.soleil-catalog__item .soleil-product-card { height: 100%; }

.soleil-catalog__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 43px 0 0;
}
.soleil-catalog__pagination > :is(a, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 39px;
  min-height: 39px;
  padding: 6px 10px;
  border: 1px solid #eae6e4;
  border-radius: 7px;
  background: #fff;
  color: #272323;
  font-size: 13px;
  line-height: 1.2;
  text-decoration: none;
}
.soleil-catalog__pagination > :is(a:hover, a:focus-visible, span.current) {
  border-color: var(--soleil-color-accent);
  background: var(--soleil-color-accent);
  color: #fff;
}
.soleil-catalog__pagination > .dots {
  border: none;
  background: transparent;
  color: #888;
}
.soleil-catalog__empty {
  margin: 0;
  padding: 22px 0 50px;
  color: #77716e;
  font-size: 14px;
}

@media (max-width: 1100px) {
  .soleil-catalog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .soleil-catalog { padding: 18px 0 48px; }
  .soleil-catalog__header { margin-bottom: 24px; }
  .soleil-catalog__description { font-size: 13px; }
  .soleil-catalog__toolbar { align-items: flex-start; gap: 13px; margin-bottom: 17px; }
  .soleil-catalog .woocommerce-ordering select { min-height: 40px; }
  .soleil-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 27px 13px; }
  .soleil-catalog__pagination { margin-top: 31px; }
}
@media (max-width: 390px) {
  .soleil-catalog__toolbar { flex-direction: column; }
  .soleil-catalog__grid { column-gap: 10px; }
}
