/* ==========================================================================
   Content Media + Widget
   Mirrors location finder single structure: 1fr left + 450px widget right
   ========================================================================== */

.rw-cws {
    padding-top:    var( --pad-top,    30px );
    padding-bottom: var( --pad-bottom, 30px );
    padding-left:   20px;
    padding-right:  20px;
}

/* Outer two-column grid — mirrors .rw-location-finder */
.rw-cws > .rw-cws__left,
.rw-cws > .rw-cws__widget {
    /* children of the outer-grid utility class */
}

.rw-cws.rw-outer-grid {
    display:               grid;
    grid-template-columns: 1fr 450px;
    gap:                   20px;
    align-items:           stretch;
}

/* Left column — content + media side by side */
.rw-cws__left {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    min-width:             0;
    background: var(--rw-accent);
    border-radius: var(--rw-corners);
    padding: 28px 28px 28px 50px;
}

.rw-cws__left--reverse {
    direction: rtl;
}

.rw-cws__left--reverse > * {
    direction: ltr;
}

.rw-cws__content {
    min-width:  0;
    align-self: center;
}

.rw-cws__media {
    min-width:  0;
    min-height: 0;
}

/* Shared corner radius + overflow for all media types */
.rw-cws__media .rw-media__image,
.rw-cws__media .rw-media__video,
.rw-cws__media .rw-media__link-card {
    border-radius: 15px;
    overflow:      hidden;
}

/* Fill column height at full width — override global aspect-ratio default */
.rw-cws__media .rw-media,
.rw-cws__media .rw-media__video,
.rw-cws__media .rw-media__link-card {
    height:       100%;
    aspect-ratio: auto;
}

.rw-cws__media .rw-media__video iframe,
.rw-cws__media .rw-media__video video {
    width:   100%;
    height:  100%;
    display: block;
}

/* Link card — fill column height */
.rw-cws__media .rw-media__link-card {
    height: 100%;
}

/* Widget column */
.rw-cws__widget {
    min-width: 0;
}

/* ==========================================================================
   Responsive
   ========================================================================== */


@media ( max-width: 1350px ) {
    .rw-cws__left {
        grid-template-columns: 1fr;
        padding: 32px;
        gap: 20px;
    }

    .rw-cws__media .rw-media__image,
    .rw-cws__media .rw-media__video,
    .rw-cws__media .rw-media__link-card {
        aspect-ratio: 3 / 2;
        height:       auto;
    }

    .rw-cws.rw-outer-grid {
        align-items: start;
    }

    .rw-cws__widget {
        position: sticky;
        top: 20px;
    }

    .rw-cws__content {
        order: 2;
    }

}

@media ( max-width: 992px ) {

    .rw-cws__left {
        padding: 20px;
    }

    .rw-cws.rw-outer-grid {
        grid-template-columns: 1fr;
    }

    .rw-cws {
        padding-top:    calc( var( --pad-top,    20px ) / 2 );
        padding-bottom: calc( var( --pad-bottom, 20px ) / 2 );
    }

}

@media ( max-width: 768px ) {

    .rw-cws__left {
        grid-template-columns: 1fr;
    }

}

@media ( max-width: 640px ) {

    .rw-cws__widget {
        position: relative;
        top: auto;
    }

}