/* ============================================================
   AURA AVENUE — cat.css
   Agent catalogue: filters, product grid, product pages.
   On top of aura.css. ct- prefixed.
   ============================================================ */

.ct-hero { border-bottom: 1px solid var(--au-line); }
.ct-hero > .au-wrap { padding-top: calc(var(--au-bar) + clamp(1.6rem, 6vh, 3.5rem)); }
.ct-stats { display: flex; flex-wrap: wrap; gap: clamp(1.2rem, 4vw, 3rem); margin: 0; padding: 0; }
.ct-stat { margin: 0; }
.ct-stat dt { font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--au-muted); }
.ct-stat dd { margin: 0.3rem 0 0; font-family: var(--au-display); font-size: clamp(1.3rem,1rem+1.1vw,1.9rem); color: var(--au-bronze); }

/* ---------- Filter bar ---------- */
.ct-filters { position: sticky; top: var(--au-bar); z-index: 45; background: rgba(11,11,12,0.94); backdrop-filter: blur(14px); border-bottom: 1px solid var(--au-line); }
.ct-filters__inner { max-width: var(--au-wrap); margin: 0 auto; padding: 0.85rem var(--au-gutter); display: grid; gap: 0.7rem; }
.ct-row { display: flex; gap: 0.4rem; overflow-x: auto; scrollbar-width: none; align-items: center; }
.ct-row::-webkit-scrollbar { display: none; }
.ct-rowlabel { flex: 0 0 auto; font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--au-muted); margin-right: 0.4rem; }
.ct-pill {
  flex: 0 0 auto; cursor: pointer; padding: 0.4rem 0.85rem;
  border: 1px solid var(--au-line); border-radius: 100px; background: none;
  color: var(--au-muted); font: inherit; font-size: 0.7rem; letter-spacing: 0.1em;
  white-space: nowrap; transition: color 0.2s var(--au-ease), border-color 0.2s var(--au-ease);
}
.ct-pill:hover { color: var(--au-cream); border-color: var(--au-line-2); }
.ct-pill[aria-pressed="true"] { color: var(--au-bronze); border-color: var(--au-bronze); background: rgba(176,141,87,0.1); }
.ct-count { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--au-muted); }
.ct-count strong { color: var(--au-bronze); font-weight: 400; }

/* ---------- Product grid ---------- */
.ct-sec { border-top: 1px solid var(--au-line); scroll-margin-top: 9rem; }
.ct-sec__idx { font-size: 0.66rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--au-bronze); margin: 0 0 0.5rem; }
.ct-grid { display: grid; gap: clamp(0.8rem,2.2vw,1.1rem); grid-template-columns: repeat(auto-fill, minmax(min(100%,20rem),1fr)); }
.ct-card {
  display: flex; flex-direction: column; text-decoration: none;
  background: var(--au-panel); border: 1px solid var(--au-line); border-radius: 2px;
  overflow: hidden; transition: border-color 0.25s var(--au-ease), transform 0.25s var(--au-ease);
}
.ct-card:hover { border-color: rgba(176,141,87,0.42); transform: translateY(-2px); }
.ct-card.is-hidden { display: none; }
.ct-shot { position: relative; margin: 0; aspect-ratio: 3/2; background: var(--au-ink-2); border-bottom: 1px solid var(--au-line); display: grid; place-items: center; }
.ct-shot__ph { font-family: var(--au-display); font-size: 2.4rem; color: rgba(176,141,87,0.3); }
.ct-flag { position: absolute; top: 0.6rem; left: 0.6rem; padding: 0.2rem 0.55rem; background: var(--au-bronze); color: var(--au-ink); font-size: 0.55rem; letter-spacing: 0.18em; text-transform: uppercase; border-radius: 2px; }
.ct-body { padding: clamp(1rem,2.6vw,1.35rem); display: flex; flex-direction: column; flex: 1; }
.ct-cat { font-size: 0.56rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--au-muted); margin: 0 0 0.45rem; }
.ct-name { font-family: var(--au-display); font-weight: 400; font-size: 1.22rem; line-height: 1.25; margin: 0 0 0.5rem; color: var(--au-cream); }
.ct-blurb { margin: 0 0 1rem; color: var(--au-muted); font-size: 0.9em; }
.ct-meta { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 0.9rem; padding: 0; list-style: none; }
.ct-meta li { padding: 0.18rem 0.5rem; border: 1px solid var(--au-line); border-radius: 100px; font-size: 0.6rem; letter-spacing: 0.06em; color: var(--au-muted); }
.ct-foot { margin: auto 0 0; padding-top: 0.9rem; border-top: 1px solid var(--au-line); display: flex; justify-content: space-between; align-items: baseline; gap: 0.8rem; }
.ct-price { font-family: var(--au-display); font-size: 1.35rem; color: var(--au-bronze); }
.ct-price span { display: block; font-family: var(--au-body); font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--au-muted); }
.ct-hours { font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--au-muted); }
.ct-rating { font-size: 0.66rem; color: var(--au-bronze-hi); }

.ct-empty { padding: 3rem 0; text-align: center; color: var(--au-muted); }

/* ---------- Product page ---------- */
.ct-p { border-top: 1px solid var(--au-line); }
.ct-crumb { margin: 0 0 1.2rem; font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--au-muted); }
.ct-crumb a { color: var(--au-muted); text-decoration: none; }
.ct-crumb a:hover { color: var(--au-cream); }
.ct-crumb span { margin: 0 0.4rem; color: var(--au-line-2); }
.ct-book { display: grid; gap: clamp(1.2rem,3vw,2.5rem); grid-template-columns: minmax(0,1fr) minmax(0,19rem); align-items: start; }
@media (max-width: 820px) { .ct-book { grid-template-columns: 1fr; } }
.ct-panel { background: var(--au-panel); border: 1px solid var(--au-line-2); border-radius: 2px; padding: clamp(1.2rem,3vw,1.7rem); position: sticky; top: 6rem; }
@media (max-width: 820px) { .ct-panel { position: static; } }
.ct-panel__price { font-family: var(--au-display); font-size: 2.2rem; color: var(--au-bronze); line-height: 1; margin: 0; }
.ct-panel__unit { font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--au-muted); margin: 0.35rem 0 1.2rem; }
.ct-panel dl { display: grid; gap: 0.7rem; margin: 0 0 1.3rem; padding: 1.1rem 0 0; border-top: 1px solid var(--au-line); }
.ct-panel dl > div { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.88rem; }
.ct-panel dt { color: var(--au-muted); }
.ct-panel dd { margin: 0; color: var(--au-cream); text-align: right; }
.ct-inc { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid; gap: 0.45rem; }
.ct-inc li { position: relative; padding-left: 1.3rem; font-size: 0.9em; color: var(--au-muted); }
.ct-inc li::before { content: "—"; position: absolute; left: 0; color: var(--au-bronze); }
.ct-note { font-size: 0.78rem; color: var(--au-muted); margin: 1rem 0 0; }

/* ---------- Card photography ---------- */
.ct-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--au-ease); }
.ct-card:hover .ct-shot img { transform: scale(1.045); }
.ct-shot { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .ct-card:hover .ct-shot img { transform: none; } }

/* ---------- Product hero ---------- */
.ct-phero { position: relative; overflow: hidden; border-bottom: 1px solid var(--au-line); }
.ct-phero__media { position: absolute; inset: 0; z-index: 0; }
.ct-phero__media img { width: 100%; height: 100%; object-fit: cover; opacity: 0.45; }
.ct-phero__media::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, var(--au-ink) 4%, rgba(11,11,12,0.45) 55%, rgba(11,11,12,0.7) 100%); }
.ct-phero__inner { position: relative; z-index: 1; padding-top: calc(var(--au-bar) + clamp(2rem,7vh,4rem)); }
.ct-long p { max-width: 68ch; color: var(--au-muted); }
.ct-high { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0 0 1.6rem; padding: 0; }
.ct-high li { padding: 0.3rem 0.75rem; border: 1px solid rgba(176,141,87,0.4); border-radius: 100px;
  font-size: 0.68rem; letter-spacing: 0.08em; color: var(--au-bronze); }

/* ---------- Strike-through supplier price ---------- */
.ct-was { color: var(--au-muted); font-family: var(--au-body); font-size: 0.62em; margin-right: 0.3rem; }
.ct-price--enq { font-size: 1.05rem; letter-spacing: 0.04em; }
