/**
 * SiteOrigin Page Builder — row height and widget design backgrounds.
 *
 * Row min-height is applied to .panel-row-style. Cells and widget wrappers must
 * stretch to that height even when the widget has no content (placeholder/editor).
 */

/* Row style wrapper must pass min-height down to cells (other themes do this implicitly). */
.has-siteorigin-builder .panel-has-style > .panel-row-style,
.page-builder-ready .panel-has-style > .panel-row-style,
.builder-canvas .panel-has-style > .panel-row-style,
.entry-content .panel-has-style > .panel-row-style {
	display: flex;
	flex-wrap: wrap;
	/* SiteOrigin layout CSS uses #pg-* IDs and align-items:flex-start; stretch row/cell height. */
	align-items: stretch !important;
	align-content: stretch;
	width: 100%;
	box-sizing: border-box;
}

/* Rows without a style wrapper: cells are direct children of .panel-grid. */
.has-siteorigin-builder .panel-grid.panel-no-style,
.page-builder-ready .panel-grid.panel-no-style,
.builder-canvas .panel-grid.panel-no-style,
.entry-content .panel-grid.panel-no-style {
	align-items: stretch;
}

.has-siteorigin-builder .panel-grid-cell,
.page-builder-ready .panel-grid-cell,
.builder-canvas .panel-grid-cell,
.entry-content .panel-grid-cell {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	box-sizing: border-box;
}

.has-siteorigin-builder .panel-grid-cell .panel-cell-style,
.page-builder-ready .panel-grid-cell .panel-cell-style,
.builder-canvas .panel-grid-cell .panel-cell-style,
.entry-content .panel-grid-cell .panel-cell-style {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-self: stretch;
	width: 100%;
	min-height: 100%;
	box-sizing: border-box;
}

.has-siteorigin-builder .panel-grid-cell .so-panel,
.page-builder-ready .panel-grid-cell .so-panel,
.builder-canvas .panel-grid-cell .so-panel,
.entry-content .panel-grid-cell .so-panel {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-self: stretch;
	width: 100%;
	min-height: 100%;
	margin-bottom: 0;
	box-sizing: border-box;
}

/* Empty placeholder panels (no widget markup) must not consume full row height. */
.has-siteorigin-builder .panel-grid-cell > .so-panel:has(> .panel-widget-style:empty),
.page-builder-ready .panel-grid-cell > .so-panel:has(> .panel-widget-style:empty),
.builder-canvas .panel-grid-cell > .so-panel:has(> .panel-widget-style:empty),
.entry-content .panel-grid-cell > .so-panel:has(> .panel-widget-style:empty) {
	flex: 0 0 auto;
	min-height: 0;
}

.has-siteorigin-builder .panel-grid-cell .panel-widget-style:empty,
.page-builder-ready .panel-grid-cell .panel-widget-style:empty,
.builder-canvas .panel-grid-cell .panel-widget-style:empty,
.entry-content .panel-grid-cell .panel-widget-style:empty {
	flex: 0 0 auto;
	min-height: 0;
}

/*
 * Cells with multiple stacked widgets should size to content, not stretch each
 * panel to 100% of the row (avoids layout/stacking issues on multi-panel rows).
 */
.has-siteorigin-builder .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel,
.page-builder-ready .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel,
.builder-canvas .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel,
.entry-content .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel {
	flex: 0 1 auto;
	min-height: auto;
}

.has-siteorigin-builder .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel > .panel-widget-style,
.page-builder-ready .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel > .panel-widget-style,
.builder-canvas .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel > .panel-widget-style,
.entry-content .panel-grid-cell:has(> .so-panel ~ .so-panel) > .so-panel > .panel-widget-style {
	flex: 0 1 auto;
	min-height: auto;
}

.has-siteorigin-builder .panel-grid-cell .panel-widget-style,
.page-builder-ready .panel-grid-cell .panel-widget-style,
.builder-canvas .panel-grid-cell .panel-widget-style,
.entry-content .panel-grid-cell .panel-widget-style {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-self: stretch;
	width: 100%;
	min-height: 100%;
	position: relative;
	box-sizing: border-box;
	background-repeat: no-repeat;
	background-clip: border-box;
	background-origin: padding-box;
}

/* SiteOrigin outputs background-image and background-size on this element in layout CSS. */

.has-siteorigin-builder .panel-widget-style > .so-widget,
.has-siteorigin-builder .panel-widget-style > [class*="so-widget-"],
.has-siteorigin-builder .panel-widget-style > .widget,
.page-builder-ready .panel-widget-style > .so-widget,
.page-builder-ready .panel-widget-style > [class*="so-widget-"],
.page-builder-ready .panel-widget-style > .widget,
.builder-canvas .panel-widget-style > .so-widget,
.builder-canvas .panel-widget-style > [class*="so-widget-"],
.builder-canvas .panel-widget-style > .widget,
.entry-content .panel-widget-style > .so-widget,
.entry-content .panel-widget-style > [class*="so-widget-"],
.entry-content .panel-widget-style > .widget {
	flex: 1 1 auto;
	align-self: stretch;
	width: 100%;
	min-height: auto;
	margin-bottom: 0;
	background-color: transparent;
}

/* SiteOrigin Editor outputs .so-widget-sow-editor-base (not .sow-editor-base). */
.has-siteorigin-builder .panel-widget-style > .so-widget-sow-editor,
.has-siteorigin-builder .panel-widget-style > .so-widget-sow-editor-base,
.page-builder-ready .panel-widget-style > .so-widget-sow-editor,
.page-builder-ready .panel-widget-style > .so-widget-sow-editor-base,
.builder-canvas .panel-widget-style > .so-widget-sow-editor,
.builder-canvas .panel-widget-style > .so-widget-sow-editor-base,
.entry-content .panel-widget-style > .so-widget-sow-editor,
.entry-content .panel-widget-style > .so-widget-sow-editor-base {
	flex: 0 1 auto;
	min-height: auto;
	height: auto;
}

.has-siteorigin-builder .panel-widget-style .so-widget-sow-editor,
.has-siteorigin-builder .panel-widget-style .so-widget-sow-editor-base,
.has-siteorigin-builder .panel-widget-style .widget_sow-editor,
.page-builder-ready .panel-widget-style .so-widget-sow-editor,
.page-builder-ready .panel-widget-style .so-widget-sow-editor-base,
.page-builder-ready .panel-widget-style .widget_sow-editor,
.builder-canvas .panel-widget-style .so-widget-sow-editor,
.builder-canvas .panel-widget-style .so-widget-sow-editor-base,
.builder-canvas .panel-widget-style .widget_sow-editor,
.entry-content .panel-widget-style .so-widget-sow-editor,
.entry-content .panel-widget-style .so-widget-sow-editor-base,
.entry-content .panel-widget-style .widget_sow-editor,
.has-siteorigin-builder .panel-widget-style .siteorigin-widget-tinymce,
.has-siteorigin-builder .panel-widget-style .siteorigin-widget-tinymce.textwidget,
.page-builder-ready .panel-widget-style .siteorigin-widget-tinymce,
.page-builder-ready .panel-widget-style .siteorigin-widget-tinymce.textwidget,
.builder-canvas .panel-widget-style .siteorigin-widget-tinymce,
.builder-canvas .panel-widget-style .siteorigin-widget-tinymce.textwidget,
.entry-content .panel-widget-style .siteorigin-widget-tinymce,
.entry-content .panel-widget-style .siteorigin-widget-tinymce.textwidget {
	display: block;
	flex: none;
	width: 100%;
	min-height: auto;
	height: auto;
	overflow: visible;
	background: transparent;
	color: inherit;
}

.has-siteorigin-builder .panel-widget-style .siteorigin-widget-tinymce :where(p, li, h1, h2, h3, h4, h5, h6, blockquote),
.page-builder-ready .panel-widget-style .siteorigin-widget-tinymce :where(p, li, h1, h2, h3, h4, h5, h6, blockquote),
.builder-canvas .panel-widget-style .siteorigin-widget-tinymce :where(p, li, h1, h2, h3, h4, h5, h6, blockquote),
.entry-content .panel-widget-style .siteorigin-widget-tinymce :where(p, li, h1, h2, h3, h4, h5, h6, blockquote) {
	color: inherit;
}

/* Full-width rows: SiteOrigin defaults to align-items:flex-start which collapses widget height. */
.has-siteorigin-builder .so-panels-full-wrapper,
.page-builder-ready .so-panels-full-wrapper,
.builder-canvas .so-panels-full-wrapper,
.entry-content .so-panels-full-wrapper {
	align-items: stretch;
}

.has-siteorigin-builder .panel-widget-style .sow-image,
.has-siteorigin-builder .panel-widget-style .sow-slider-base,
.page-builder-ready .panel-widget-style .sow-image,
.builder-canvas .panel-widget-style .sow-image {
	background-color: transparent;
}

/* Theme .widget margin should not affect builder panels. */
.entry-content .panel-grid .so-panel.widget {
	margin-bottom: 0;
}

/* Full Width Builder template — edge-to-edge canvas (SiteOrigin caps rows at container width). */
.full-width-builder #page,
.full-width-builder .site-main--full-width,
.full-width-builder .builder-canvas,
.full-width-builder .builder-canvas .entry-content,
.full-width-builder .entry-content > .panel-layout {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.full-width-builder .site-main--full-width {
	padding-inline: 0;
}

.full-width-builder .panel-grid,
.full-width-builder .panel-row-style,
.full-width-builder .so-panels-full-wrapper {
	max-width: none;
	width: 100%;
}
