/* Pet Records — Puppy Search: PHP-port glue only.
   market.css is kept verbatim from the design. This file holds the few small
   adjustments needed because the server-rendered markup uses semantic form
   controls (labels wrapping hidden inputs, anchor chips) where the React
   prototype used <button>/<div> + state. Visual output is unchanged. */

/* Filter checkboxes/radios are real <label>s wrapping a hidden input. */
.filter-rail .check,
.filter-rail .vlevel { user-select: none; }
.filter-rail .check input,
.filter-rail .vlevel input,
.segmented input { position: absolute; opacity: 0; pointer-events: none; }

/* Segmented control rendered as labels rather than buttons. */
.segmented label {
  flex: 1; padding: 8px 6px; border-radius: 7px; font-size: 13px; color: var(--ink-3);
  font-weight: 500; text-align: center; cursor: pointer; transition: background .12s, color .12s;
}
.segmented label.on { background: var(--surface); color: var(--ink); box-shadow: 0 1px 2px rgba(20,28,24,.08); }

/* Active-filter chips are anchors (each removes itself); the X sits inside. */
a.fchip { text-decoration: none; cursor: pointer; }
.fchip .x-btn {
  width: 17px; height: 17px; border-radius: 50%; display: grid; place-items: center;
  color: var(--accent-ink); opacity: .7;
}
.fchip:hover .x-btn { opacity: 1; }

/* The breed "Clear" link inside the filter heading. */
.fgroup h4 a.clear { text-decoration: none; }

/* Real lead photo on a puppy card (DB-backed listings). Fills the same
   placeholder area; the diagonal-line texture is for empty placeholders only,
   so it's suppressed when a real photo is present. The label scrim stays for
   legibility. */
.pcard .ph .ph-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
.pcard .ph.has-photo::after { display: none; }
.pcard .ph.has-photo .ph-lbl { z-index: 1; }

/* Kennel mini-card avatar can carry a real logo. */
.kmini .km-av.has-logo { background-size: cover; background-position: center; }
.kmini .km-av.has-logo::after { display: none; }

/* Breeder/kennel avatars carrying a real logo (detail + profile). */
.breeder-card .bc-avatar.has-logo,
.kennel-avatar.has-logo { background-size: cover; background-position: center; }
.breeder-card .bc-avatar.has-logo::after,
.kennel-avatar.has-logo::after { display: none; }

/* Puppy detail gallery with real photos. */
.gallery .main .g-main-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
}
.gallery .main:has(.g-main-img)::after { display: none; }
.gthumb.has-img { background-size: cover; background-position: center; }
.gthumb.has-img::after { display: none; }
