/* Shared property card styles (homepage featured + property archive).
 * Reusable card markup lives in template-parts/content-property.php and is
 * rendered on the front page AND the archive, so the card CSS ships on both.
 * Archive-only chrome (filter panel, results bar, empty state) stays in
 * property-archive.css. Icons are hard-constrained at the component scope so
 * an unsized inline <svg> can never blow up to card width again.
 */

/* ---- Card ---- */
.alsakan-property-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow-soft);transition:border-color .22s var(--ui-ease),box-shadow .22s var(--ui-ease),transform .22s var(--ui-ease)}
.alsakan-property-card:hover{border-color:rgba(77,189,184,.75);box-shadow:var(--ui-shadow);transform:translateY(-4px)}
.alsakan-property-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ui-alt)}
.alsakan-property-card__media-link{display:block;width:100%;height:100%}
.alsakan-property-card__image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ui-ease)}
.alsakan-property-card:hover .alsakan-property-card__image{transform:scale(1.05)}
.alsakan-property-card__media--placeholder{display:flex;align-items:center;justify-content:center}
.alsakan-property-card__media--placeholder .alsakan-icon,.alsakan-property-card__media--placeholder svg{flex:0 0 3rem;width:3rem;height:3rem;min-width:3rem;max-width:3rem;min-height:3rem;max-height:3rem;color:rgba(10,22,40,.22)}
.alsakan-property-card__body{display:flex;flex-direction:column;flex:1;padding:1rem 1.1rem 1.1rem}
.alsakan-property-card__title{margin:0 0 .5rem;font-family:Cairo,sans-serif;font-size:1.04rem;font-weight:800;line-height:1.7;color:var(--ui-ink)}
.alsakan-property-card__title a{color:inherit;text-decoration:none}
.alsakan-property-card__title a:hover{color:var(--ui-teal-dark)}
.alsakan-property-card__location{display:flex;align-items:flex-start;gap:.4rem;margin-bottom:.85rem;color:var(--ui-muted);font-size:.87rem;line-height:1.75}
.alsakan-property-card__location svg{flex:0 0 1rem;width:1rem;height:1rem;min-width:1rem;max-width:1rem;min-height:1rem;max-height:1rem;margin-top:.28rem;color:var(--ui-teal)}
.alsakan-property-card__metrics{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin:0 0 .95rem;padding:.7rem 0;border-top:1px solid rgba(77,189,184,.2);border-bottom:1px solid rgba(77,189,184,.2);list-style:none}
.alsakan-property-metric{display:inline-flex;align-items:center;gap:.38rem;color:#334155;font-size:.88rem;font-weight:700}
.alsakan-property-metric span{display:grid;gap:.22rem;line-height:1.6;align-items:start}.alsakan-property-metric small{color:var(--ui-muted);font-size:.68rem;font-weight:600;line-height:1.5}.alsakan-property-metric strong{font:800 .86rem/1.5 Cairo,sans-serif;color:#334155}
.alsakan-property-metric svg{flex:0 0 1.05rem;width:1.05rem;height:1.05rem;min-width:1.05rem;max-width:1.05rem;min-height:1.05rem;max-height:1.05rem;color:var(--ui-teal-dark)}
.alsakan-property-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto}
.alsakan-property-card__price{font-family:Cairo,sans-serif;font-size:1.12rem;font-weight:800;color:var(--ui-teal-dark);white-space:nowrap}
.alsakan-property-card__price .saudi-riyal-icon{font-size:.95em}
.alsakan-property-card__unit{font-family:Tajawal,sans-serif;font-size:.78rem;font-weight:600;color:var(--ui-muted)}
.alsakan-property-card__link{color:var(--ui-teal-dark);font-weight:700;font-size:.88rem}

/* ---- Purpose badge (lives on the card media) ---- */
.alsakan-purpose-badge{position:absolute;top:.7rem;inset-inline-start:.7rem;z-index:2;display:inline-flex;align-items:center;gap:.42rem;padding:.3rem .7rem;border-radius:999px;border:1px solid;font-family:Cairo,sans-serif;font-size:.8rem;font-weight:800;line-height:1.4}
.alsakan-purpose-badge::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.alsakan-purpose-badge.is-sale{background:#e7f6f0;color:#126247;border-color:#bfe3d4}
.alsakan-purpose-badge.is-rent{background:#e8f1fc;color:#175c96;border-color:#c5dcf3}
.alsakan-purpose-badge.is-valuation{background:#fff3dd;color:#855800;border-color:#f0dcae}
