/**
 * Event spotlight.
 *
 * The image is a frame the source crops into rather than a graphic laid out to
 * fit. That is why the poster for an event can stay portrait and the photo for
 * another can be square: both crop to the same landscape frame, and the words
 * live in HTML beside them where they stay sharp and selectable.
 */

.srpc-spot {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    border: 1px solid var(--srpc-rule);
    border-radius: var(--srpc-radius-lg);
    overflow: hidden;
    background: var(--srpc-paper);
    margin: 0 0 2rem;
}

/* --- image --- */

.srpc-spot-media {
    position: relative;
    display: block;
    min-height: 260px;
    background: var(--srpc-navy-tint);
    border-bottom: 0;
}

/* Absolute rather than height:100%, which does not resolve against a grid
   track sized by its sibling. */
.srpc-spot-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* --- text --- */

.srpc-spot-body {
    padding: 1.6rem 1.8rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
}

.srpc-spot-kicker {
    font-family: var(--srpc-font-display);
    font-size: var(--srpc-text-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--srpc-orange-deep);
    margin-bottom: 0.35rem;
}

.srpc-spot-title {
    font-family: var(--srpc-font-display);
    font-size: var(--srpc-text-2xl);
    line-height: var(--srpc-leading-tight);
    margin: 0 0 0.45rem;
}

.srpc-spot .srpc-spot-title a {
    color: var(--srpc-navy);
    text-decoration: none;
}

.srpc-spot .srpc-spot-title a:hover,
.srpc-spot .srpc-spot-title a:focus-visible {
    color: var(--srpc-orange-deep);
}

.srpc-spot-when {
    font-size: var(--srpc-text-md);
    font-weight: 600;
    color: var(--srpc-navy);
    margin: 0 0 0.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.6rem;
}

/* Price sits with the date because the two together are what decides whether
   somebody turns up. */
.srpc-spot-cost {
    font-size: var(--srpc-text-sm);
    font-weight: 700;
    color: var(--srpc-orange-deep);
    border: 1px solid var(--srpc-orange);
    background: var(--srpc-orange-tint);
    border-radius: var(--srpc-radius);
    padding: 0.1rem 0.5rem;
    font-variant-numeric: tabular-nums;
}

.srpc-spot-excerpt {
    font-size: var(--srpc-text-sm);
    line-height: var(--srpc-leading-body);
    color: var(--srpc-ink-soft);
    margin: 0 0 1rem;
}

.srpc-spot-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 1.2rem;
    margin: 0;
    font-size: var(--srpc-text-sm);
}

.srpc-spot .srpc-spot-btn {
    display: inline-block;
    font-weight: 700;
    color: #fff;
    background: var(--srpc-orange-deep);
    border-radius: var(--srpc-radius);
    padding: 0.55rem 1.2rem;
    text-decoration: none;
}

.srpc-spot .srpc-spot-btn:hover,
.srpc-spot .srpc-spot-btn:focus-visible {
    background: var(--srpc-navy);
    color: #fff;
}

/* --- narrow --- */

@media (max-width: 780px) {
    .srpc-spot {
        grid-template-columns: 1fr;
    }

    /* A fixed aspect keeps a portrait poster from taking the whole screen on a
       phone, where 61% of the engaged sessions are. */
    .srpc-spot-media {
        aspect-ratio: 16 / 9;
        min-height: 0;
    }

    .srpc-spot-body {
        padding: 1.3rem 1.2rem 1.5rem;
    }
}
