/* =========================================================
   TryLoveMe catalog / shop / product category
   Loaded only on product archives.
   ========================================================= */
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag { background:#fff; }

.tlm-catalog { background:#fff; }
.tlm-catalog .woocommerce-breadcrumb {
  width:auto; margin:0 0 26px; padding:0; color:#817a76; font-size:11px;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
}
.tlm-catalog .woocommerce-breadcrumb span { opacity:.45; }

.tlm-catalog-hero { padding:32px 0 34px; background:#fff; }
.tlm-catalog-hero__inner {
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(360px,.72fr);
  align-items:stretch; gap:18px;
}
.tlm-catalog-hero__copy {
  min-height:350px; padding:42px clamp(28px,4vw,64px); border-radius:30px;
  display:flex; flex-direction:column; justify-content:center;
  background:linear-gradient(135deg,#fff8fa 0%,#f9edef 48%,#f6e7ec 100%);
  overflow:hidden;
}
.tlm-catalog-hero__copy .tlm-eyebrow { color:#9f6677; margin-bottom:12px; }
.tlm-catalog-hero__copy h1 { margin:0; max-width:760px; font-size:clamp(48px,6vw,92px); line-height:.9; letter-spacing:-.06em; font-weight:500; }
.tlm-catalog-hero__description { max-width:680px; margin-top:22px; color:#655d59; font-size:14px; line-height:1.7; }
.tlm-catalog-hero__description p { margin:0; }
.tlm-catalog-hero__meta { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:30px; color:#817a76; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.tlm-catalog-hero__visual { position:relative; min-height:350px; border-radius:30px; overflow:hidden; background:#f8eef1; }
.tlm-catalog-hero__visual img { width:100%; height:100%; object-fit:cover; }
.tlm-catalog-hero__visual::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(36,21,27,.18)); pointer-events:none; }
.tlm-catalog-hero__stamp { position:absolute; z-index:2; right:22px; bottom:18px; color:#fff; font-size:11px; line-height:1.15; font-weight:800; letter-spacing:.16em; text-align:right; }

.tlm-catalog-categories { padding:8px 0 32px; background:#fff; }
.tlm-catalog-category-rail { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(145px,1fr); gap:12px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.tlm-catalog-category-rail::-webkit-scrollbar { display:none; }
.tlm-catalog-category {
  min-width:145px; padding:7px 7px 11px; border:1px solid rgba(23,21,20,.08); border-radius:20px;
  background:#fff; box-shadow:0 8px 24px rgba(58,39,46,.035); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.tlm-catalog-category:hover,.tlm-catalog-category.is-active { transform:translateY(-2px); border-color:rgba(184,111,127,.34); box-shadow:0 12px 28px rgba(58,39,46,.07); }
.tlm-catalog-category__media { display:block; aspect-ratio:1/1; border-radius:15px; overflow:hidden; background:linear-gradient(145deg,#fff8fa,#f3e7eb); }
.tlm-catalog-category__media img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.tlm-catalog-category:hover .tlm-catalog-category__media img { transform:scale(1.035); }
.tlm-catalog-category__placeholder { display:block; width:100%; height:100%; background:radial-gradient(circle at 70% 25%,#fff 0 8%,transparent 9%),linear-gradient(135deg,#f6dce5,#ead0d8); }
.tlm-catalog-category__name { display:block; margin:10px 4px 2px; font-size:12px; line-height:1.25; font-weight:650; }
.tlm-catalog-category__count { display:block; margin:0 4px; color:#8b817d; font-size:10px; }

.tlm-catalog-products { padding:20px 0 90px; background:#fff; }
.tlm-catalog-toolbar { position:relative; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; padding:14px 0; border-top:1px solid rgba(23,21,20,.09); border-bottom:1px solid rgba(23,21,20,.09); background:#fff; }
.tlm-catalog-toolbar__filters { display:flex; flex-wrap:wrap; gap:7px; }
.tlm-filter-chip { min-height:36px; padding:0 15px; border:1px solid rgba(23,21,20,.12); border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#fff; font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.075em; transition:border-color var(--tlm-duration-fast) var(--tlm-ease), background var(--tlm-duration-fast) var(--tlm-ease), color var(--tlm-duration-fast) var(--tlm-ease); }
.tlm-filter-chip:hover,.tlm-filter-chip.is-active { border-color:#e39aaf; background:#f9e7ed; color:#7e4055; }
.tlm-catalog-toolbar__right { display:flex; align-items:center; gap:18px; }
.tlm-catalog-toolbar .woocommerce-result-count { margin:0; color:#7d7571; font-size:11px; white-space:nowrap; }
.tlm-catalog-toolbar .woocommerce-ordering { margin:0; }
.tlm-catalog-toolbar .woocommerce-ordering select { min-width:200px; height:40px; padding:0 38px 0 14px; border:1px solid rgba(23,21,20,.12); border-radius:999px; background:#fff; color:#171514; font-size:11px; outline:none; }

.tlm-catalog-mobile-filter { display:none; margin-bottom:22px; border:1px solid rgba(23,21,20,.11); border-radius:16px; overflow:hidden; }
.tlm-catalog-mobile-filter summary { list-style:none; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.07em; }
.tlm-catalog-mobile-filter summary::-webkit-details-marker { display:none; }
.tlm-catalog-mobile-filter__body { padding:0 14px 14px; }
.tlm-catalog-mobile-filter__chips { display:flex; flex-wrap:wrap; gap:7px; }
.tlm-catalog-mobile-filter__chips a { padding:8px 11px; border-radius:999px; background:#f8eef1; font-size:11px; }

.tlm-catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 16px; }

/* Catalog-specific adjustments for the shared product card component. */

.tlm-catalog-pagination { margin-top:52px; }
.tlm-catalog-pagination .woocommerce-pagination ul.page-numbers { display:flex; justify-content:center; gap:8px; border:0; margin:0; }
.tlm-catalog-pagination .woocommerce-pagination ul.page-numbers li { border:0; }
.tlm-catalog-pagination .woocommerce-pagination .page-numbers a,.tlm-catalog-pagination .woocommerce-pagination .page-numbers span { min-width:42px; height:42px; padding:0 12px; border:1px solid rgba(23,21,20,.11); border-radius:999px; display:grid; place-items:center; background:#fff; color:#171514; font-size:12px; }
.tlm-catalog-pagination .woocommerce-pagination .page-numbers .current,.tlm-catalog-pagination .woocommerce-pagination .page-numbers a:hover { border-color:#df8ea7; background:#f8e5eb; color:#7a4053; }

@media (max-width:1279px) {
  .tlm-catalog-hero__inner { grid-template-columns:minmax(0,1fr) minmax(300px,.65fr); }
  .tlm-catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1023px) {
  .tlm-catalog-hero__inner { grid-template-columns:1fr; }
  .tlm-catalog-hero__copy { min-height:280px; }
  .tlm-catalog-hero__visual { min-height:300px; }
  .tlm-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tlm-catalog-toolbar__filters { display:none; }
  .tlm-catalog-mobile-filter { display:block; }
}
@media (max-width:767px) {
  .tlm-catalog-hero { padding:16px 0 22px; }
  .tlm-catalog-hero__copy { min-height:0; padding:26px 20px 28px; border-radius:22px; }
  .tlm-catalog-hero__copy h1 { font-size:clamp(44px,13vw,64px); }
  .tlm-catalog-hero__description { margin-top:16px; font-size:13px; }
  .tlm-catalog-hero__meta { margin-top:20px; }
  .tlm-catalog-hero__visual { min-height:220px; border-radius:22px; }
  .tlm-catalog-categories { padding-bottom:22px; }
  .tlm-catalog-category-rail { margin-right:calc(var(--tlm-gutter) * -1); padding-right:var(--tlm-gutter); grid-auto-columns:132px; }
  .tlm-catalog-products { padding-top:10px; padding-bottom:62px; }
  .tlm-catalog-toolbar { margin-bottom:14px; padding:10px 0; }
  .tlm-catalog-toolbar__right { width:100%; justify-content:space-between; gap:10px; }
  .tlm-catalog-toolbar .woocommerce-result-count { display:none; }
  .tlm-catalog-toolbar .woocommerce-ordering { width:100%; }
  .tlm-catalog-toolbar .woocommerce-ordering select { width:100%; min-width:0; }
  .tlm-catalog-grid { gap:18px 10px; }
}

/* Async catalog updates */
.tlm-catalog-fragment {
  position: relative;
  transition: opacity var(--tlm-duration-fast) var(--tlm-ease);
}
.tlm-catalog-fragment.is-loading {
  opacity: .48;
  pointer-events: none;
}
.tlm-catalog-fragment.is-loading::after {
  content: '';
  position: absolute;
  top: 84px;
  left: 50%;
  width: 30px;
  height: 30px;
  margin-left: -15px;
  border: 2px solid rgba(225,128,177,.25);
  border-top-color: var(--tlm-accent);
  border-radius: 50%;
  animation: tlmCatalogSpin .7s linear infinite;
}
@keyframes tlmCatalogSpin { to { transform: rotate(360deg); } }


/* --------------------------------------------------------------------------
   TryLoveMe Catalog v1.9.42 — mobile pagination fix
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .tlm-catalog-pagination {
    width: 100%;
    margin-top: 34px;
    overflow: hidden;
  }

  .tlm-catalog-pagination .woocommerce-pagination {
    width: 100%;
    overflow: visible;
  }

  .tlm-catalog-pagination .woocommerce-pagination ul.page-numbers {
    display: flex;
    width: 100%;
    max-width: 100%;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 5px;
    padding: 0;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: visible;
  }

  .tlm-catalog-pagination .woocommerce-pagination ul.page-numbers li {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
  }

  .tlm-catalog-pagination .woocommerce-pagination .page-numbers a,
  .tlm-catalog-pagination .woocommerce-pagination .page-numbers span {
    display: grid;
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border-radius: 50%;
    font-size: 12px;
    line-height: 1;
    box-sizing: border-box;
  }

  .tlm-catalog-pagination .woocommerce-pagination .page-numbers .prev,
  .tlm-catalog-pagination .woocommerce-pagination .page-numbers .next {
    width: 38px;
    min-width: 38px;
    padding: 0;
  }

  .tlm-catalog-pagination .woocommerce-pagination .page-numbers .dots {
    width: 24px;
    min-width: 24px;
    border-color: transparent;
    background: transparent;
  }
}

@media (max-width: 390px) {
  .tlm-catalog-pagination .woocommerce-pagination ul.page-numbers {
    gap: 3px;
  }

  .tlm-catalog-pagination .woocommerce-pagination .page-numbers a,
  .tlm-catalog-pagination .woocommerce-pagination .page-numbers span {
    width: 35px;
    min-width: 35px;
    height: 35px;
    font-size: 11px;
  }

  .tlm-catalog-pagination .woocommerce-pagination .page-numbers .prev,
  .tlm-catalog-pagination .woocommerce-pagination .page-numbers .next {
    width: 35px;
    min-width: 35px;
  }

  .tlm-catalog-pagination .woocommerce-pagination .page-numbers .dots {
    width: 18px;
    min-width: 18px;
  }
}
