.bsftblocks {
	width: 100%;
	margin-top: 1.5rem;
	align-items: stretch;
}

.bsftblocks hr.bsftblocks__divider {
	display: block;
	width: 100%;
	height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-top: var(--bsftblocks-divider-width, 1px) var(--bsftblocks-divider-style, solid) var(--bsftblocks-divider-color, #cbd5e1);
	background: transparent;
	opacity: 1;
}

.bsftblocks__products {
	width: 100%;
	min-width: 0;
}

.bsftblocks__products ul.products {
	display: grid !important;
	grid-template-columns: repeat(var(--bsftblocks-products-columns, 4), minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	float: none;
}

.bsftblocks__products ul.products::before,
.bsftblocks__products ul.products::after {
	content: none !important;
	display: none !important;
}

.bsftblocks__products.woocommerce ul.products > li.product {
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	flex: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
}

@media (max-width: 782px) {
	.bsftblocks__products ul.products {
		grid-template-columns: repeat(min(var(--bsftblocks-products-columns, 4), 2), minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.bsftblocks__products ul.products {
		grid-template-columns: minmax(0, 1fr);
	}
}

.bsftblocks__heading {
	width: 100%;
	margin: 0 0 0.75rem;
}

.bsftblocks__text.entry-content {
	width: 100%;
}

.bsftblocks__text > p:last-child {
	margin-bottom: 0;
}

.bsftblocks__item--valign-top,
.bsftblocks__item--valign-center,
.bsftblocks__item--valign-bottom {
	display: flex;
	flex-direction: column;
}

.bsftblocks__item--valign-top {
	justify-content: flex-start;
}

.bsftblocks__item--valign-center {
	justify-content: center;
}

.bsftblocks__item--valign-bottom {
	justify-content: flex-end;
}

.bsftblocks__item--valign-top > .bsftblocks__text,
.bsftblocks__item--valign-center > .bsftblocks__text,
.bsftblocks__item--valign-bottom > .bsftblocks__text {
	flex: 0 0 auto;
	width: 100%;
}

.bsftblocks__image-wrap {
	width: 100%;
	box-sizing: border-box;
}

/* Блок тянется по высоте ряда. Обёртка занимает эту высоту, и align-items сдвигает фото. */
.bsftblocks__item--image-inline {
	display: flex;
	flex-direction: column;
	align-self: stretch;
}

.bsftblocks__item--image-inline > .bsftblocks__image-wrap {
	flex: 1 1 auto;
	align-self: stretch;
	min-height: 120px;
}

.bsftblocks__image-wrap--v-top > .bsftblocks__image,
.bsftblocks__image-wrap--v-top > .bsftblocks__image-open,
.bsftblocks__image-wrap--v-top > .bsftblocks__image-link {
	align-self: flex-start;
}

.bsftblocks__image-wrap--v-center > .bsftblocks__image,
.bsftblocks__image-wrap--v-center > .bsftblocks__image-open,
.bsftblocks__image-wrap--v-center > .bsftblocks__image-link {
	align-self: center;
}

.bsftblocks__image-wrap--v-bottom > .bsftblocks__image,
.bsftblocks__image-wrap--v-bottom > .bsftblocks__image-open,
.bsftblocks__image-wrap--v-bottom > .bsftblocks__image-link {
	align-self: flex-end;
}

.bsftblocks__image-wrap--inline .bsftblocks__image {
	max-width: 100%;
	height: auto;
	display: block;
}

.bsftblocks__image-wrap--full-width .bsftblocks__image {
	width: 100%;
}

.bsftblocks__image-wrap--inline .bsftblocks__image:not(.bsftblocks__image--full-width) {
	width: auto;
}

/* Фон блока: родитель с padding, дочерний слой — 100% контента, background-* на дочернем. */
.bsftblocks__item--image-bg {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	min-width: 0;
	box-sizing: border-box;
	overflow: hidden;
}

.bsftblocks__image-open,
.bsftblocks__image-link {
	display: inline-flex;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: inherit;
	text-decoration: none;
}

.bsftblocks__image-open {
	cursor: zoom-in;
}

.bsftblocks__image-link {
	cursor: pointer;
}

.bsftblocks__image-wrap--full-width .bsftblocks__image-open,
.bsftblocks__image-wrap--full-width .bsftblocks__image-link {
	display: flex;
	width: 100%;
}

.bsftblocks__item--image-bg > .bsftblocks__image-open,
.bsftblocks__item--image-bg > .bsftblocks__image-link {
	display: flex;
	flex: 1 1 0;
	align-self: stretch;
	width: 100%;
	min-height: 0;
	max-width: none;
}

.bsftblocks__item--image-bg > .bsftblocks__image-open > .bsftblocks__image-bg,
.bsftblocks__item--image-bg > .bsftblocks__image-link > .bsftblocks__image-bg {
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-height: 100%;
}

.bsftblocks__item--image-bg > .bsftblocks__image-bg {
	flex: 1 1 0;
	align-self: stretch;
	width: 100%;
	min-height: 0;
	box-sizing: border-box;
	background-origin: border-box;
	background-clip: border-box;
}

#bsftui-root .bsftui-dialog.bsftui-dialog--blocks-image {
	box-sizing: border-box;
	max-height: calc(100vh - 40px);
	max-height: calc(100dvh - 40px);
	overflow: hidden;
}

#bsftui-root .bsftui-dialog.bsftui-dialog--blocks-image .bsftui-content {
	box-sizing: border-box;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

#bsftui-root .bsftui-dialog.bsftui-dialog--blocks-image .bsftblocks-lightbox__image {
	display: block;
	width: auto;
	height: auto;
	min-width: 0;
	min-height: 0;
	max-width: 100%;
	max-height: calc(100vh - 72px);
	max-height: calc(100dvh - 72px);
	margin: 0 auto;
	object-fit: contain;
}
