.cases-list {
    display: grid;
    gap: 3.75rem
}

/* Keep dimension tabs on the heading row; subcategories occupy their own row. */
.cases-filter-heading {align-items:center}
.cases-filter-options {margin-bottom:1.75rem}
.cases-filter-options[hidden] {display:none}
.cases-filter-options .xb-subfilters {
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    width:100%;
    margin:0;
    padding:1.5rem;
    border-radius:1rem;
    background:#f6f5fa;
    border:1px solid #eeebf5;
}
.cases-filter-options .xb-subfilters[hidden] {display:none}
.cases-filter-options .xb-subfilters a {
    background:#fff;
    border:1px solid #ddd8eb;
    border-radius:.5rem;
    padding:.65rem 1.25rem;
    font-size:1.25rem;
    line-height:1.5;
    color:#6d6483;
    text-decoration:none;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.cases-filter-options .xb-subfilters a:hover {background:#eae6f4;border-color:#b8accf;color:var(--purple)}
.cases-filter-options .xb-subfilters a[aria-current] {background:var(--purple);border-color:var(--purple);color:#fff}
.cases-filter-options a:focus-visible,.cases-dimensions button:focus-visible {outline:2px solid var(--purple);outline-offset:3px}
.cases-filter-status {display:flex;align-items:center;gap:.65rem;font-size:1rem;color:#827992;margin:0 0 1.5rem;min-height:1.5em}
.cases-filter-status:empty {display:none}
.cases-filter-status button {margin-left:1rem;text-decoration:underline}
.cases-list {transition:opacity .2s ease;position:relative}
.cases-catalog[aria-busy="true"] .cases-list {opacity:.35;pointer-events:none}
.cases-catalog[aria-busy="true"] .cases-filter-status::before {content:"";width:1em;height:1em;flex:none;border:2px solid #dfd8ee;border-top-color:var(--purple);border-radius:50%;animation:cases-spin .75s linear infinite}
@keyframes cases-spin {to {transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce) {.cases-list,.cases-filter-options .xb-subfilters a {transition:none}.cases-catalog[aria-busy="true"] .cases-filter-status::before {animation:none}}
.cases-card__description {white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:640px) {
    .cases-filter-heading {align-items:flex-start;flex-direction:column;gap:18px}
    .cases-dimensions {width:100%}
    .cases-dimensions button {flex:1;min-width:0}
    .cases-filter-options {margin-bottom:24px}
    .cases-filter-options .xb-subfilters {padding:14px;gap:8px;border-radius:12px}
    .cases-filter-options .xb-subfilters a {font-size:14px;padding:8px 12px}
    .cases-filter-status {font-size:13px}
}

.cases-card {
    display: grid;
    grid-template-columns: 55rem 1fr;
    min-height: 30rem;
    height: auto;
    background: var(--pale);
    border-radius: 2rem;
    overflow: hidden
}

.cases-card__image {
    height: 30rem;
    width: 55rem;
    object-fit: cover
}

.cases-card__copy {
    padding: 4rem 4rem 3rem
}

.cases-card__copy h3 {
    font-size: 2.125rem;
    color: var(--purple);
    margin-bottom: 1rem
}

.cases-card__copy p {
    font-size: 1.375rem;
    line-height: 1.9;
    margin-bottom: 1rem
}

.cases-card__copy .button-row {
    margin-top: 5rem;
    flex-wrap: nowrap
}

.cases-card__copy .button {
    font-size: 1.375rem;
    white-space: nowrap
}

.cases-card--reverse {
    grid-template-columns: 1fr 55rem
}

.cases-card--reverse .cases-card__image {
    grid-column: 2;
    grid-row: 1
}

.cases-card--reverse .cases-card__copy {
    grid-column: 1;
    grid-row: 1;
    padding-left: 5.5rem;
    padding-right: 1rem
}

@media(max-width:900px) {

    .cases-card,
    .cases-card--reverse {
        grid-template-columns: 1fr 1fr;
        height: auto
    }

    .cases-card__image {
        width: 100%;
        height: 100%;
        object-fit: cover
    }

    .cases-card__copy,
    .cases-card--reverse .cases-card__copy {
        padding: 3rem 2rem
    }

    .cases-card__copy .button-row {
        margin-top: 2rem;
        flex-wrap: wrap
    }
}

@media(max-width:640px) {
    .cases-list {
        gap: 28px
    }

    .cases-card,
    .cases-card--reverse {
        grid-template-columns: 1fr;
        border-radius: 18px
    }

    .cases-card__image,
    .cases-card--reverse .cases-card__image {
        grid-column: 1;
        grid-row: 1;
        height: 200px
    }

    .cases-card__copy,
    .cases-card--reverse .cases-card__copy {
        grid-column: 1;
        grid-row: 2;
        padding: 24px 20px
    }

    .cases-card__copy h3 {
        font-size: 22px;
        margin-bottom: 8px
    }

    .cases-card__copy p {
        font-size: 14px;
        margin-bottom: 10px
    }

    .cases-card__copy .button-row {
        margin-top: 22px;
        gap: 8px
    }

    .cases-card__copy .button {
        font-size: 12px;
        padding: 10px 12px
    }
}
