/* =========================================================================
 * PBK shared kitten card (recon §9.6). Used by hero, carousels, archives, search.
 * image + hover 2nd image · wishlist heart top-right · NAME only · separator ·
 * coat·age·zodiac with icons · acid-yellow "Meet Me" pill → PDP. Price hero-only.
 * ========================================================================= */

.pbk-card{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:var(--pbk-radius-lg);box-shadow:var(--pbk-shadow-card);overflow:hidden;transition:transform var(--pbk-dur) var(--pbk-ease),box-shadow var(--pbk-dur) var(--pbk-ease)}
.pbk-card:hover{transform:translateY(-4px);box-shadow:var(--pbk-shadow-lg)}

.pbk-card__media{position:relative;aspect-ratio:1/1;background:var(--pbk-tint-2);overflow:hidden}
.pbk-card__imglink{display:block;height:100%}
.pbk-card__img{width:100%;height:100%;object-fit:cover;transition:opacity var(--pbk-dur) var(--pbk-ease),transform .5s var(--pbk-ease)}
.pbk-card__img--hover{position:absolute;inset:0;opacity:0}
.pbk-card:hover .pbk-card__img--hover{opacity:1}
.pbk-card:hover .pbk-card__img{transform:scale(1.03)}

/* wishlist heart */
.pbk-wish{position:absolute;top:12px;right:12px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:var(--pbk-shadow-sm);color:var(--pbk-ink-3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--pbk-dur) var(--pbk-ease),color var(--pbk-dur) var(--pbk-ease),background var(--pbk-dur) var(--pbk-ease)}
.pbk-wish svg{fill:none;stroke:currentColor;stroke-width:2}
.pbk-wish:hover{transform:scale(1.08);color:var(--pbk-purple)}
.pbk-wish.is-active,.pbk-wish[aria-pressed="true"]{color:#e4557b}
.pbk-wish.is-active svg,.pbk-wish[aria-pressed="true"] svg{fill:#e4557b;stroke:#e4557b}

/* empty badge slot (source renders it empty on every card) */
.pbk-card__badge{position:absolute;top:12px;left:12px;z-index:2}

/* reserved overlay (sold lifecycle — P2/P3/P4 toggle .is-reserved) */
.pbk-card__reserved{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:rgba(41,40,61,.42);color:#fff;font-family:var(--pbk-font-display);font-weight:700;font-size:1.6rem;letter-spacing:.06em;text-transform:uppercase}
.pbk-card.is-reserved .pbk-card__cta{pointer-events:auto}

/* hero price chip */
.pbk-card__price{position:absolute;left:12px;bottom:12px;z-index:3;background:var(--pbk-accent);border-radius:12px;padding:6px 12px}
.pbk-card__price p{font-family:var(--pbk-font-display);font-weight:700;font-size:1.05rem;color:var(--pbk-ink-2)}

/* body */
.pbk-card__body{display:flex;flex-direction:column;gap:10px;padding:16px}
.pbk-card__head{display:flex;flex-direction:column;gap:2px}
.pbk-card__name{display:flex;align-items:center;gap:6px;font-family:var(--pbk-font-body);font-size:1.3rem;font-weight:800;color:var(--pbk-ink-2);line-height:1.1}
.pbk-card__gender{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;flex:0 0 auto}
.pbk-card__gender svg{fill:currentColor}
.pbk-card__gender--male{background:var(--pbk-pastel-2);color:#2f6fb0}
.pbk-card__gender--female{background:#ffd9ea;color:#c74d86}
.pbk-card__breed{font-size:.86rem;font-weight:600;color:var(--pbk-purple-text)}

.pbk-card__sep{display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(52,42,65,.12),transparent)}

.pbk-card__spec{display:flex;flex-direction:column;gap:7px}
.pbk-card__spec li{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--pbk-ink-3)}
.pbk-card__spec svg{fill:var(--pbk-purple);flex:0 0 auto}
.pbk-card__spec span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.pbk-card__cta{margin-top:4px;align-self:flex-start}
.pbk-card__cta svg{fill:currentColor}

@media (max-width:560px){
  .pbk-card__name{font-size:1.1rem}
  .pbk-card__body{padding:12px;gap:8px}
}
