/* 
 * COMPLETE REWRITE TO GRID LAYOUT 
 * Grid provides much stricter boundaries in Elementor editor than flexbox,
 * preventing images from blowing out their container widths.
 */
.bp-ctb-wrapper-6c54d251 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
}

/* Reverse layout handler */
.bp-ctb-wrapper-6c54d251.is-reversed .bp-ctb-image-container-6c54d251 {
    order: 2;
}
.bp-ctb-wrapper-6c54d251.is-reversed .bp-ctb-text-container-6c54d251 {
    order: 1;
}

.bp-ctb-column-6c54d251 {
	width: 100%;
    min-width: 0; /* Critical Grid fix: prevents grid blowout */
	box-sizing: border-box;
}

/* Let the wrapper align-items handle vertical alignment, 
   so remove align-self from columns to let them align based on container settings */
.bp-ctb-image-container-6c54d251 {
	/* Removed align-self: flex-start */
    display: flex;
}

.bp-ctb-image-container-6c54d251 img {
	width: 100%;
    max-width: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	padding: 0;
}

.bp-ctb-image-container-6c54d251,
.bp-ctb-text-container-6c54d251 {
	padding: 0;
}

.bp-ctb-heading-6c54d251 {
	margin-top: 0;
	margin-bottom: 15px;
}

/* Responsive Behavior <= 1024px (Tablet Portrait and Mobile) */
@media (max-width: 1024px) {
	.bp-ctb-wrapper-6c54d251 {
        grid-template-columns: 1fr !important;
	}

    /* Force image to top on mobile regardless of row/reverse setting */
	.bp-ctb-wrapper-6c54d251 .bp-ctb-image-container-6c54d251,
    .bp-ctb-wrapper-6c54d251.is-reversed .bp-ctb-image-container-6c54d251 {
		order: 1 !important;
	}
    
    .bp-ctb-wrapper-6c54d251 .bp-ctb-text-container-6c54d251,
    .bp-ctb-wrapper-6c54d251.is-reversed .bp-ctb-text-container-6c54d251 {
		order: 2 !important;
	}

	.bp-ctb-image-container-6c54d251,
	.bp-ctb-text-container-6c54d251 {
		padding-top: 20px;
		padding-bottom: 20px;
	}
}