/* HomeSage Marquee extends native core/cover; ordinary Cover blocks remain untouched. */
.wp-block-cover.homesage-marquee {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	min-height: 0;
}

.wp-block-cover.homesage-marquee > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee > video.wp-block-cover__video-background {
	object-fit: contain !important;
}


/* Explicit image positioning for no-crop/contain marquee backgrounds. */
.wp-block-cover.homesage-marquee.homesage-image-x-left > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee.homesage-image-x-left > video.wp-block-cover__video-background { object-position: left var(--homesage-y, 50%) !important; }
.wp-block-cover.homesage-marquee.homesage-image-x-center > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee.homesage-image-x-center > video.wp-block-cover__video-background { object-position: center var(--homesage-y, 50%) !important; }
.wp-block-cover.homesage-marquee.homesage-image-x-right > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee.homesage-image-x-right > video.wp-block-cover__video-background { object-position: right var(--homesage-y, 50%) !important; }
.wp-block-cover.homesage-marquee.homesage-image-y-top { --homesage-y: 0%; }
.wp-block-cover.homesage-marquee.homesage-image-y-middle { --homesage-y: 50%; }
.wp-block-cover.homesage-marquee.homesage-image-y-bottom { --homesage-y: 100%; }

.wp-block-cover.homesage-marquee > .wp-block-cover__inner-container {
	width: 100%;
	height: 100%;
	min-height: 100%;
	box-sizing: border-box;
}

.wp-block-cover.homesage-marquee .homesage-marquee__columns,
.wp-block-cover.homesage-marquee .wp-block-columns {
	height: 100%;
	min-height: 100%;
	margin-top: 0;
	margin-bottom: 0;
	align-items: stretch;
}

.wp-block-cover.homesage-marquee .wp-block-column {
	height: 100%;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	align-self: stretch !important;
	justify-content: flex-start;
}

.wp-block-cover.homesage-marquee .wp-block-column.is-vertically-aligned-center { justify-content: center; }
.wp-block-cover.homesage-marquee .wp-block-column.is-vertically-aligned-bottom { justify-content: flex-end; }

/* Optional image-backed CTA plate on native core/button. */
.homesage-plate-button {
	display: inline-block;
	max-width: 100%;
}

.homesage-plate-button .wp-block-button__link {
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: var(--homesage-plate-min-height, 56px);
	max-width: 100%;
	background-color: transparent !important;
	background-image: var(--homesage-plate-url) !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	border: 0 !important;
	box-shadow: none;
}

/* Preserve means preserve the actual plate proportions. */
.homesage-plate-fit-preserve .wp-block-button__link {
	background-size: 100% 100% !important;
	aspect-ratio: var(--homesage-plate-ratio, auto);
	height: auto;
}

/* Stretch intentionally ignores the source plate proportions. */
.homesage-plate-fit-stretch .wp-block-button__link {
	background-size: 100% 100% !important;
	aspect-ratio: auto;
}

.homesage-plate-width-auto {
	display: inline-block;
	max-width: 100%;
}

.homesage-plate-width-auto .wp-block-button__link {
	width: max-content;
}

.homesage-plate-width-custom {
	display: block;
	width: var(--homesage-plate-custom-width, 60%);
	max-width: 100%;
}

.homesage-plate-width-custom .wp-block-button__link {
	width: 100%;
}

.homesage-plate-width-full {
	display: block;
	width: 100%;
}

.homesage-plate-width-full .wp-block-button__link {
	width: 100%;
}

/*
 * Native Columns stack below WordPress's mobile breakpoint. Desktop marquee
 * columns intentionally fill the image-height box, but those 100% heights
 * must not survive stacking or later columns are pushed outside the Cover.
 * On stacked layouts let content return to normal document flow and allow the
 * marquee to grow vertically as needed so no content is clipped.
 */
@media (max-width: 781px) {
	.wp-block-cover.homesage-marquee:has(.wp-block-columns:not(.is-not-stacked-on-mobile)) {
		aspect-ratio: auto !important;
		height: auto !important;
		min-height: 0 !important;
		overflow: visible;
	}

	
/* Explicit image positioning for no-crop/contain marquee backgrounds. */
.wp-block-cover.homesage-marquee.homesage-image-x-left > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee.homesage-image-x-left > video.wp-block-cover__video-background { object-position: left var(--homesage-y, 50%) !important; }
.wp-block-cover.homesage-marquee.homesage-image-x-center > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee.homesage-image-x-center > video.wp-block-cover__video-background { object-position: center var(--homesage-y, 50%) !important; }
.wp-block-cover.homesage-marquee.homesage-image-x-right > .wp-block-cover__image-background,
.wp-block-cover.homesage-marquee.homesage-image-x-right > video.wp-block-cover__video-background { object-position: right var(--homesage-y, 50%) !important; }
.wp-block-cover.homesage-marquee.homesage-image-y-top { --homesage-y: 0%; }
.wp-block-cover.homesage-marquee.homesage-image-y-middle { --homesage-y: 50%; }
.wp-block-cover.homesage-marquee.homesage-image-y-bottom { --homesage-y: 100%; }

.wp-block-cover.homesage-marquee > .wp-block-cover__inner-container {
		height: auto;
		min-height: 0;
	}

	.wp-block-cover.homesage-marquee .wp-block-columns:not(.is-not-stacked-on-mobile) {
		height: auto;
		min-height: 0;
		align-items: initial;
	}

	.wp-block-cover.homesage-marquee .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		height: auto;
		min-height: 0;
		align-self: auto !important;
	}
}

/*
 * Mobile fallback when the marquee becomes taller than its landscape media.
 * Core Cover keeps the media element at 100% of the taller Cover and relies on
 * object-position. In this art-directed case we need the full-width image itself
 * anchored within that taller box, so position the intrinsic-ratio media
 * explicitly. This only applies to HomeSage marquees below the native Columns
 * stacking breakpoint; normal Cover blocks are untouched.
 */
@media (max-width: 781px) {
	.wp-block-cover.homesage-marquee > .wp-block-cover__image-background {
		width: 100% !important;
		height: auto !important;
		max-width: none !important;
		object-fit: contain !important;
	}

	.wp-block-cover.homesage-marquee.homesage-image-y-top > .wp-block-cover__image-background {
		top: 0 !important;
		bottom: auto !important;
		transform: none !important;
	}

	.wp-block-cover.homesage-marquee.homesage-image-y-middle > .wp-block-cover__image-background {
		top: 50% !important;
		bottom: auto !important;
		transform: translateY(-50%) !important;
	}

	.wp-block-cover.homesage-marquee.homesage-image-y-bottom > .wp-block-cover__image-background {
		top: auto !important;
		bottom: 0 !important;
		transform: none !important;
	}
}

/* ============================================================
 * HomeSage 0.1.13 — responsive art direction
 * Values are opt-in. Untouched properties remain under normal
 * WordPress/theme control; tablet/mobile only override values the editor sets.
 * ============================================================ */
.homesage-art-direction.homesage-d-mt { margin-top: var(--hs-d-mt) !important; }
.homesage-art-direction.homesage-d-mr { margin-right: var(--hs-d-mr) !important; }
.homesage-art-direction.homesage-d-mb { margin-bottom: var(--hs-d-mb) !important; }
.homesage-art-direction.homesage-d-ml { margin-left: var(--hs-d-ml) !important; }
.homesage-art-direction.homesage-d-pt { padding-top: var(--hs-d-pt) !important; }
.homesage-art-direction.homesage-d-pr { padding-right: var(--hs-d-pr) !important; }
.homesage-art-direction.homesage-d-pb { padding-bottom: var(--hs-d-pb) !important; }
.homesage-art-direction.homesage-d-pl { padding-left: var(--hs-d-pl) !important; }
.homesage-art-direction.homesage-d-minh { min-height: var(--hs-d-minh) !important; }
.homesage-art-direction.homesage-d-h { height: var(--hs-d-h) !important; }
.homesage-art-direction.homesage-d-z { position: relative; z-index: var(--hs-d-z) !important; }
.homesage-art-direction.homesage-d-iy > .wp-block-cover__image-background,
.homesage-art-direction.homesage-d-iy > video.wp-block-cover__video-background {
	top: var(--hs-d-iy) !important;
	bottom: auto !important;
	transform: none !important;
}

@media (min-width: 1000px) {
	.homesage-art-direction.homesage-hide-desktop { display: none !important; }
}

@media (min-width: 782px) and (max-width: 999px) {
	.homesage-art-direction.homesage-t-mt { margin-top: var(--hs-t-mt) !important; }
	.homesage-art-direction.homesage-t-mr { margin-right: var(--hs-t-mr) !important; }
	.homesage-art-direction.homesage-t-mb { margin-bottom: var(--hs-t-mb) !important; }
	.homesage-art-direction.homesage-t-ml { margin-left: var(--hs-t-ml) !important; }
	.homesage-art-direction.homesage-t-pt { padding-top: var(--hs-t-pt) !important; }
	.homesage-art-direction.homesage-t-pr { padding-right: var(--hs-t-pr) !important; }
	.homesage-art-direction.homesage-t-pb { padding-bottom: var(--hs-t-pb) !important; }
	.homesage-art-direction.homesage-t-pl { padding-left: var(--hs-t-pl) !important; }
	.homesage-art-direction.homesage-t-minh { min-height: var(--hs-t-minh) !important; }
	.homesage-art-direction.homesage-t-h { height: var(--hs-t-h) !important; }
	.homesage-art-direction.homesage-t-z { position: relative; z-index: var(--hs-t-z) !important; }
	.homesage-art-direction.homesage-t-iy > .wp-block-cover__image-background,
	.homesage-art-direction.homesage-t-iy > video.wp-block-cover__video-background {
		top: var(--hs-t-iy) !important;
		bottom: auto !important;
		transform: none !important;
	}
	.homesage-art-direction.homesage-hide-tablet { display: none !important; }
}

@media (max-width: 781px) {
	.homesage-art-direction.homesage-m-mt { margin-top: var(--hs-m-mt) !important; }
	.homesage-art-direction.homesage-m-mr { margin-right: var(--hs-m-mr) !important; }
	.homesage-art-direction.homesage-m-mb { margin-bottom: var(--hs-m-mb) !important; }
	.homesage-art-direction.homesage-m-ml { margin-left: var(--hs-m-ml) !important; }
	.homesage-art-direction.homesage-m-pt { padding-top: var(--hs-m-pt) !important; }
	.homesage-art-direction.homesage-m-pr { padding-right: var(--hs-m-pr) !important; }
	.homesage-art-direction.homesage-m-pb { padding-bottom: var(--hs-m-pb) !important; }
	.homesage-art-direction.homesage-m-pl { padding-left: var(--hs-m-pl) !important; }
	.homesage-art-direction.homesage-m-minh { min-height: var(--hs-m-minh) !important; }
	.homesage-art-direction.homesage-m-h { height: var(--hs-m-h) !important; }
	.homesage-art-direction.homesage-m-z { position: relative; z-index: var(--hs-m-z) !important; }
	.homesage-art-direction.homesage-m-iy > .wp-block-cover__image-background,
	.homesage-art-direction.homesage-m-iy > video.wp-block-cover__video-background {
		top: var(--hs-m-iy) !important;
		bottom: auto !important;
		transform: none !important;
	}
	.homesage-art-direction.homesage-hide-mobile { display: none !important; }
}

/* Theme asset as a decoration layer: preserves the block's native color,
 * gradient, texture, or background image underneath the selected asset. */
.homesage-theme-decoration {
	position: relative;
	isolation: isolate;
}
.homesage-theme-decoration::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: var(--homesage-decoration-image);
	background-size: var(--homesage-decoration-size, contain);
	background-position: var(--homesage-decoration-position, center center);
	background-repeat: var(--homesage-decoration-repeat, no-repeat);
	opacity: var(--homesage-decoration-opacity, 1);
}
.homesage-theme-decoration > * {
	position: relative;
	z-index: 1;
}
.wp-block-cover.homesage-theme-decoration > .wp-block-cover__image-background,
.wp-block-cover.homesage-theme-decoration > video.wp-block-cover__video-background,
.wp-block-cover.homesage-theme-decoration > .wp-block-cover__background {
	position: absolute;
	z-index: 0;
}
.wp-block-cover.homesage-theme-decoration::before { z-index: 1; }
.wp-block-cover.homesage-theme-decoration > .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}
