.image-placeholder {
    aspect-ratio: 4 / 3;
    max-width: 100%;
    display: grid;
    place-items: center;
    border-radius: 1px;
    background: var(--trim-white);
    border: 1px dashed var(--umber-soft);
    color: var(--umber-soft);
    font-size: var(--type-label);
    text-align: center;
    padding: 20px;
}

.portal-shot {
    background: var(--trim-white);
    border: 1px solid var(--rule);
    border-radius: 1px;
    padding: 12px;
}

.portal-shot img {
    display: block;
    width: 100%;
    height: auto;
}

/* The owner mock ends well above its frame; crop the blank page below it. */
.portal-shot.is-cropped img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: top left;
}

.photo-frame {
    position: relative;
}

.photo-frame img {
    width: 100%;
    object-fit: cover;
    border-radius: 3px;
}

.listing-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}

.listing {
    background: var(--trim-white);
    border: 1px solid var(--rule);
    border-radius: 1px;
    overflow: hidden;
}

.listing .image-placeholder {
    border-radius: 0;
    aspect-ratio: 16 / 10;
}

.listing-body {
    padding: 20px;
}

.listing-price {
    display: inline-block;
    margin-bottom: 4px;
}

.listing-price .figure {
    font-size: var(--type-numeral);
}

.listing-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-block: 6px 14px;
    font-size: var(--type-label);
    color: var(--umber-soft);
}
