:where(.component-featured-image-card) {
    :where(.card-content) {
        display: flex;
        flex-direction: column;
        gap: var(--size-small);
        block-size: 100%;

        :where(.card-image) {
            :where(img) {
                display: block;
                inline-size: 100%;
                /* wp_get_attachment_image() emits height/width attributes; without
                   resetting the height here, both dimensions are definite and
                   aspect-ratio is ignored, so the image renders at its natural height. */
                block-size: auto;
                aspect-ratio: 3 / 2;
                object-fit: cover;
                border-radius: var(--border-radius-large);
            }
        }

        :where(.card-heading) {
            /* Extra breathing room above and below the heading, on top of the
               flex gap that separates the card's sections. */
            margin-block: var(--size-x-small);

            :where(.card-title) {
                margin: 0;
                text-align: start;
                text-transform: none;
                font-size: 3.6rem;
                font-weight: var(--font-weight-light);
                line-height: 1.15;
            }
        }

        :where(.card-body) {
            :where(.card-copy) {
                margin: 0;

                :where(p:first-child) {
                    margin-block-start: 0;
                }

                :where(p:last-child) {
                    margin-block-end: 0;
                }
            }
        }

        /* Push the button to the bottom so a row of cards keeps its CTAs aligned. */
        :where(.card-footer) {
            margin-block-start: auto;
        }
    }
}
