/* Impreza Plus — Vertical Wrapper columns */

.w-vwrapper.ip-vwrapper-cols,
.w-vwrapper.ip-vwrapper-cols-ready {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: var(--vwrapper-gap, 0.7rem);
}

/* Native rule adds margin-bottom to direct children — not needed with gap. */
.w-vwrapper.ip-vwrapper-cols > .ip-vwrapper-col,
.w-vwrapper.ip-vwrapper-cols > .ip-vwrapper-col:not(:last-child) {
	margin-bottom: 0;
}

.w-vwrapper.ip-vwrapper-cols_2 { --ip-vw-cols: 2; }
.w-vwrapper.ip-vwrapper-cols_3 { --ip-vw-cols: 3; }
.w-vwrapper.ip-vwrapper-cols_4 { --ip-vw-cols: 4; }
.w-vwrapper.ip-vwrapper-cols_5 { --ip-vw-cols: 5; }
.w-vwrapper.ip-vwrapper-cols_6 { --ip-vw-cols: 6; }

/* Width = 1/N of the wrapper even when there are fewer items than columns. */
.w-vwrapper.ip-vwrapper-cols > .ip-vwrapper-col {
	display: flex;
	flex-direction: column;
	flex: 0 0 calc((100% - (var(--ip-vw-cols, 1) - 1) * var(--vwrapper-gap, 0.7rem)) / var(--ip-vw-cols, 1));
	min-width: 0;
	gap: var(--vwrapper-gap, 0.7rem);
}

/* Horizontal alignment → inside columns (outer stays stretch for equal height). */
.w-vwrapper.ip-vwrapper-cols.align_left,
.w-vwrapper.ip-vwrapper-cols.align_center,
.w-vwrapper.ip-vwrapper-cols.align_right,
.w-vwrapper.ip-vwrapper-cols.align_none {
	align-items: stretch;
}

body:not(.rtl) .w-vwrapper.ip-vwrapper-cols.align_left > .ip-vwrapper-col,
.rtl .w-vwrapper.ip-vwrapper-cols.align_right > .ip-vwrapper-col {
	align-items: flex-start;
}

.w-vwrapper.ip-vwrapper-cols.align_center > .ip-vwrapper-col {
	align-items: center;
}

body:not(.rtl) .w-vwrapper.ip-vwrapper-cols.align_right > .ip-vwrapper-col,
.rtl .w-vwrapper.ip-vwrapper-cols.align_left > .ip-vwrapper-col {
	align-items: flex-end;
}

/* Vertical alignment → inside columns */
.w-vwrapper.ip-vwrapper-cols.valign_middle > .ip-vwrapper-col {
	justify-content: center;
}

.w-vwrapper.ip-vwrapper-cols.valign_bottom > .ip-vwrapper-col {
	justify-content: flex-end;
}

.w-vwrapper.ip-vwrapper-cols.valign_justify > .ip-vwrapper-col {
	justify-content: space-between;
}

.w-vwrapper.ip-vwrapper-cols .ip-vwrapper-col > .align_justify {
	width: 100%;
}

/* Live Builder approximate preview (DOM stays flat for drag-and-drop). */
body.usb_preview .w-vwrapper.ip-cols_2,
body.usb_preview .w-vwrapper.ip-cols_3,
body.usb_preview .w-vwrapper.ip-cols_4,
body.usb_preview .w-vwrapper.ip-cols_5,
body.usb_preview .w-vwrapper.ip-cols_6 {
	display: block;
	column-fill: balance;
	column-gap: var(--vwrapper-gap, 0.7rem);
}

body.usb_preview .w-vwrapper.ip-cols_2 { column-count: 2; }
body.usb_preview .w-vwrapper.ip-cols_3 { column-count: 3; }
body.usb_preview .w-vwrapper.ip-cols_4 { column-count: 4; }
body.usb_preview .w-vwrapper.ip-cols_5 { column-count: 5; }
body.usb_preview .w-vwrapper.ip-cols_6 { column-count: 6; }

body.usb_preview .w-vwrapper.ip-cols_2 > *,
body.usb_preview .w-vwrapper.ip-cols_3 > *,
body.usb_preview .w-vwrapper.ip-cols_4 > *,
body.usb_preview .w-vwrapper.ip-cols_5 > *,
body.usb_preview .w-vwrapper.ip-cols_6 > * {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin-bottom: var(--vwrapper-gap, 0.7rem);
}

@media (max-width: 767px) {
	.w-vwrapper.ip-vwrapper-cols {
		flex-direction: column;
	}

	.w-vwrapper.ip-vwrapper-cols > .ip-vwrapper-col {
		flex: 1 1 auto;
		width: 100%;
	}
}
