/* Match every column to the height of the tallest column in the row. */
.wp-block-columns.santek-stretch-columns {
	align-items: stretch !important;
}

.wp-block-columns.santek-stretch-columns > .wp-block-column {
	align-self: stretch;
}

/*
 * Treat each selected column as a vertical card and push only its final
 * Buttons block to the bottom. This remains scoped to an explicit block toggle.
 */
.wp-block-columns.santek-align-actions-bottom {
	align-items: stretch !important;
}

.wp-block-columns.santek-align-actions-bottom > .wp-block-column {
	display: flex;
	flex-direction: column;
	align-self: stretch !important;
}

.wp-block-columns.santek-align-actions-bottom
	> .wp-block-column
	> .wp-block-buttons:last-child {
	margin-top: auto;
}

/*
 * Align common content across every column while allowing a child block with
 * its own explicit alignment class to override the inherited/default value.
 */
.wp-block-columns.santek-column-content-align-left > .wp-block-column {
	text-align: left;
}

.wp-block-columns.santek-column-content-align-center > .wp-block-column {
	text-align: center;
}

.wp-block-columns.santek-column-content-align-right > .wp-block-column {
	text-align: right;
}

.wp-block-columns.santek-column-content-align-left
	> .wp-block-column
	:where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption) {
	text-align: left;
}

.wp-block-columns.santek-column-content-align-center
	> .wp-block-column
	:where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption) {
	text-align: center;
}

.wp-block-columns.santek-column-content-align-right
	> .wp-block-column
	:where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption) {
	text-align: right;
}

/* Preserve an individual text block's explicit WordPress alignment. */
.wp-block-columns[class*="santek-column-content-align-"]
	> .wp-block-column
	.has-text-align-left {
	text-align: left;
}

.wp-block-columns[class*="santek-column-content-align-"]
	> .wp-block-column
	.has-text-align-center {
	text-align: center;
}

.wp-block-columns[class*="santek-column-content-align-"]
	> .wp-block-column
	.has-text-align-right {
	text-align: right;
}

.wp-block-columns.santek-column-content-align-left
	> .wp-block-column
	.wp-block-buttons:not([class*="is-content-justification-"]) {
	justify-content: flex-start;
}

.wp-block-columns.santek-column-content-align-center
	> .wp-block-column
	.wp-block-buttons:not([class*="is-content-justification-"]) {
	justify-content: center;
}

.wp-block-columns.santek-column-content-align-right
	> .wp-block-column
	.wp-block-buttons:not([class*="is-content-justification-"]) {
	justify-content: flex-end;
}

.wp-block-columns.santek-column-content-align-left
	> .wp-block-column
	.wp-block-image:not(.alignleft):not(.aligncenter):not(.alignright) {
	margin-right: auto;
	margin-left: 0;
}

.wp-block-columns.santek-column-content-align-center
	> .wp-block-column
	.wp-block-image:not(.alignleft):not(.aligncenter):not(.alignright) {
	margin-right: auto;
	margin-left: auto;
}

.wp-block-columns.santek-column-content-align-right
	> .wp-block-column
	.wp-block-image:not(.alignleft):not(.aligncenter):not(.alignright) {
	margin-right: 0;
	margin-left: auto;
}

.wp-block-columns.santek-columns-justify-start {
	justify-content: flex-start;
}

.wp-block-columns.santek-columns-justify-center {
	justify-content: center;
}

.wp-block-columns.santek-columns-justify-end {
	justify-content: flex-end;
}

.wp-block-columns.santek-columns-justify-space-between {
	justify-content: space-between;
}

@media (min-width: 601px) and (max-width: 1024px) {
	.wp-block-columns.santek-tablet-columns-1,
	.wp-block-columns.santek-tablet-columns-2,
	.wp-block-columns.santek-tablet-columns-3 {
		display: grid;
	}

	.wp-block-columns.santek-tablet-columns-1 {
		grid-template-columns: minmax(0, 1fr);
	}

	.wp-block-columns.santek-tablet-columns-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wp-block-columns.santek-tablet-columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/*
	 * Use twice as many tracks for centered layouts so incomplete final rows
	 * can occupy the same item width while being centered as a group.
	 */
	.wp-block-columns.santek-tablet-columns-2.santek-columns-justify-center {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.wp-block-columns.santek-tablet-columns-2.santek-columns-justify-center
		> .wp-block-column {
		grid-column: span 2;
	}

	.wp-block-columns.santek-tablet-columns-2.santek-columns-justify-center
		> .wp-block-column:last-child:nth-child(odd) {
		grid-column: 2 / span 2;
	}

	.wp-block-columns.santek-tablet-columns-3.santek-columns-justify-center {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.wp-block-columns.santek-tablet-columns-3.santek-columns-justify-center
		> .wp-block-column {
		grid-column: span 2;
	}

	.wp-block-columns.santek-tablet-columns-3.santek-columns-justify-center
		> .wp-block-column:last-child:nth-child(3n + 1) {
		grid-column: 3 / span 2;
	}

	.wp-block-columns.santek-tablet-columns-3.santek-columns-justify-center
		> .wp-block-column:nth-last-child(2):nth-child(3n + 1) {
		grid-column: 2 / span 2;
	}

	.wp-block-columns.santek-tablet-columns-3.santek-columns-justify-center
		> .wp-block-column:last-child:nth-child(3n + 2) {
		grid-column: 4 / span 2;
	}

	.wp-block-columns[class*="santek-tablet-columns-"] > .wp-block-column {
		flex-basis: auto;
		min-width: 0;
	}
}
