/* Classes emitted by the legacy → bloom migrator and by hooked Elements. Breakpoints match the previous theme (1024px / 767px). */
@media (min-width: 1025px) {
	.bloom-hide-desktop,
	.vs-lg-false {
		display: none !important;
	}
}
@media (min-width: 768px) and (max-width: 1024px) {
	.bloom-hide-tablet,
	.vs-md-false {
		display: none !important;
	}
}
@media (max-width: 767px) {
	.bloom-hide-mobile,
	.vs-sm-false {
		display: none !important;
	}
}

/* ------------------------------------------------------------------------------------------------------------------
 * Row layouts (core/columns). the previous theme rows are CSS grids with per-device layouts:
 *   bloom-grid-d{N}   desktop grid of N columns (the previous theme two-grid/three-grid/row layouts, rows that wrap)
 *   bloom-grid-t{N}   tablet (≤1024px) grid of N columns;  bloom-stack-tablet  one column on tablet
 *   bloom-grid-m{N}   mobile (≤767px) grid of N columns (with isStackedOnMobile false)
 *   bloom-grid-{d|t|m}-span-{first|last}  the previous theme first-row / last-row: one item per row spans every column
 * ------------------------------------------------------------------------------------------------------------------ */
.wp-block-columns[class*="bloom-grid-d"] {
	display: grid !important;
}
.wp-block-columns.bloom-grid-d1 { grid-template-columns: minmax(0, 1fr); }
.wp-block-columns.bloom-grid-d2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wp-block-columns.bloom-grid-d3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wp-block-columns.bloom-grid-d4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wp-block-columns.bloom-grid-d5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.wp-block-columns.bloom-grid-d6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.wp-block-columns.bloom-grid-d2.bloom-grid-d-span-first > :nth-child(3n+1),
.wp-block-columns.bloom-grid-d4.bloom-grid-d-span-first > :nth-child(5n+1),
.wp-block-columns.bloom-grid-d2.bloom-grid-d-span-last > :nth-child(3n),
.wp-block-columns.bloom-grid-d4.bloom-grid-d-span-last > :nth-child(5n) {
	grid-column: 1 / -1;
}

@media (max-width: 1024px) {
	.wp-block-columns.bloom-stack-tablet {
		flex-wrap: wrap !important;
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.wp-block-columns.bloom-stack-tablet > .wp-block-column {
		flex-basis: 100% !important;
		grid-column: auto !important;
	}
	.wp-block-columns[class*="bloom-grid-t"] {
		display: grid !important;
	}
	.wp-block-columns[class*="bloom-grid-t"] > * {
		grid-column: auto !important;
	}
	.wp-block-columns.bloom-grid-t1 { grid-template-columns: minmax(0, 1fr) !important; }
	.wp-block-columns.bloom-grid-t2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-t3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-t4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-t5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-t6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-t2.bloom-grid-t-span-first > :nth-child(3n+1),
	.wp-block-columns.bloom-grid-t4.bloom-grid-t-span-first > :nth-child(5n+1),
	.wp-block-columns.bloom-grid-t2.bloom-grid-t-span-last > :nth-child(3n),
	.wp-block-columns.bloom-grid-t4.bloom-grid-t-span-last > :nth-child(5n) {
		grid-column: 1 / -1 !important;
	}
}

@media (max-width: 767px) {
	.wp-block-columns[class*="bloom-grid-m"] {
		display: grid !important;
	}
	.wp-block-columns[class*="bloom-grid-m"] > * {
		grid-column: auto !important;
	}
	.wp-block-columns.bloom-grid-m1 { grid-template-columns: minmax(0, 1fr) !important; }
	.wp-block-columns.bloom-grid-m2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-m3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-m4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-m5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-m6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
	.wp-block-columns.bloom-grid-m2.bloom-grid-m-span-first > :nth-child(3n+1),
	.wp-block-columns.bloom-grid-m4.bloom-grid-m-span-first > :nth-child(5n+1),
	.wp-block-columns.bloom-grid-m2.bloom-grid-m-span-last > :nth-child(3n),
	.wp-block-columns.bloom-grid-m4.bloom-grid-m-span-last > :nth-child(5n) {
		grid-column: 1 / -1 !important;
	}
}

/* ------------------------------------------------------------------------------------------------------------------
 * Query loops (core/post-template): bloom-grid-d{N}-t{N}-m{N} = columns on desktop / tablet (≤1024px) / mobile (≤767px).
 * ------------------------------------------------------------------------------------------------------------------ */
.wp-block-post-template[class*="bloom-grid-d"] { display: grid !important; }
.wp-block-post-template[class*="bloom-grid-d1-"] { grid-template-columns: minmax(0, 1fr) !important; }
.wp-block-post-template[class*="bloom-grid-d2-"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.wp-block-post-template[class*="bloom-grid-d3-"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.wp-block-post-template[class*="bloom-grid-d4-"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.wp-block-post-template[class*="bloom-grid-d5-"] { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
.wp-block-post-template[class*="bloom-grid-d6-"] { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
@media (max-width: 1024px) {
	.wp-block-post-template[class*="bloom-grid-d"][class*="-t1-m"] { grid-template-columns: minmax(0, 1fr) !important; }
	.wp-block-post-template[class*="bloom-grid-d"][class*="-t2-m"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"][class*="-t3-m"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"][class*="-t4-m"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"][class*="-t5-m"] { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"][class*="-t6-m"] { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
}
@media (max-width: 767px) {
	.wp-block-post-template[class*="bloom-grid-d"]:is([class*="-m1 "], [class$="-m1"]) { grid-template-columns: minmax(0, 1fr) !important; }
	.wp-block-post-template[class*="bloom-grid-d"]:is([class*="-m2 "], [class$="-m2"]) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"]:is([class*="-m3 "], [class$="-m3"]) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"]:is([class*="-m4 "], [class$="-m4"]) { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"]:is([class*="-m5 "], [class$="-m5"]) { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.wp-block-post-template[class*="bloom-grid-d"]:is([class*="-m6 "], [class$="-m6"]) { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
}

/* Cards of migrated post loops (the previous theme posts block / the previous theme's Pro add-on query card). */
.bloom-loop-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
}
.bloom-loop-card > .wp-block-post-featured-image {
	margin: 0;
}
.bloom-loop-card.is-boxed {
	background: var(--bloom-loop-card-background, var(--global-palette9, #ffffff));
	border-radius: var(--bloom-loop-card-radius, 0.25rem);
	box-shadow: var(--bloom-loop-card-shadow, 0 15px 25px -10px rgba(0, 0, 0, 0.05));
}
.bloom-loop-card > .bloom-loop-card__body {
	flex: 1 1 auto;
}
.bloom-loop-card.is-boxed > .bloom-loop-card__body {
	padding: var(--bloom-loop-card-padding, 2rem);
}
.bloom-loop-card.is-unboxed > .wp-block-post-featured-image {
	margin-bottom: 1em;
}
/* the previous theme loop entry spacing and type scale (entry-taxonomies / entry-title / entry-meta / entry-summary / entry-footer). */
.bloom-loop-card > .bloom-loop-card__body,
.bloom-loop-card__body > *,
.bloom-loop-card__body > .wp-block-post-title {
	margin-block: 0; /* the title selector outranks content heading margins (.entry-content h2) */
}
.bloom-loop-card__terms {
	margin-bottom: 0.5em !important;
	font-size: 70%;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.bloom-loop-card__terms a {
	font-weight: 700;
	text-decoration: none;
}
.bloom-loop-card__meta {
	gap: 0.25em 0.75em;
	margin-block: 1em !important;
	font-size: 80%;
}
.bloom-loop-card__body > .wp-block-post-excerpt {
	margin-top: 1em;
}
.bloom-loop-card__body > .wp-block-read-more {
	margin-top: 1.25em; /* 1em of the card text: the link itself is 80% */
}
@media (max-width: 719px) {
	.bloom-loop-card__terms {
		margin-bottom: 1em !important;
	}
}

/* core/read-more in migrated post cards: the previous theme's "READ MORE →" link (small, bold, uppercase, letter-spaced, arrow). */
.bloom-loop-card .wp-block-read-more:not(.bloom-read-more-button) {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-size: 80%;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 2; /* the previous theme's footer line box: 1.6 × the card text size */
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
}
.bloom-loop-card .wp-block-read-more:not(.bloom-read-more-button)::after {
	content: "";
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 28'%3E%3Cpath d='M27 13.953c0 .141-.063.281-.156.375l-6 5.531c-.156.141-.359.172-.547.094-.172-.078-.297-.25-.297-.453v-3.5H.5c-.281 0-.5-.219-.5-.5v-3c0-.281.219-.5.5-.5H20v-3.5c0-.203.109-.375.297-.453s.391-.047.547.078l6 5.469c.094.094.156.219.156.359z'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 28'%3E%3Cpath d='M27 13.953c0 .141-.063.281-.156.375l-6 5.531c-.156.141-.359.172-.547.094-.172-.078-.297-.25-.297-.453v-3.5H.5c-.281 0-.5-.219-.5-.5v-3c0-.281.219-.5.5-.5H20v-3.5c0-.203.109-.375.297-.453s.391-.047.547.078l6 5.469c.094.094.156.219.156.359z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.bloom-loop-card .wp-block-read-more:not(.bloom-read-more-button):hover,
.bloom-loop-card .wp-block-read-more:not(.bloom-read-more-button):focus {
	color: var(--global-palette-highlight, var(--global-palette1, #2b6cb0));
}

/* core/read-more styled as a the previous theme button (query card buttons). */
.wp-block-read-more.bloom-read-more-button {
	display: inline-block;
	padding: 0.4em 1em;
	color: var(--global-palette9, #ffffff);
	line-height: 1.6;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* ------------------------------------------------------------------------------------------------------------------
 * Galleries (core/gallery): bloom-gallery-t{N} / bloom-gallery-m{N} = columns on tablet (≤1024px) / mobile (≤767px).
 * ------------------------------------------------------------------------------------------------------------------ */
@media (max-width: 1024px) {
	.wp-block-gallery.has-nested-images.bloom-gallery-t1 figure.wp-block-image:not(#individual-image) { width: 100% !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-t2 figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) * 0.5) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-t3 figure.wp-block-image:not(#individual-image) { width: calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.66667) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-t4 figure.wp-block-image:not(#individual-image) { width: calc(25% - var(--wp--style--unstable-gallery-gap, 16px) * 0.75) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-t5 figure.wp-block-image:not(#individual-image) { width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-t6 figure.wp-block-image:not(#individual-image) { width: calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px) * 0.83333) !important; }
}
@media (max-width: 767px) {
	.wp-block-gallery.has-nested-images.bloom-gallery-m1 figure.wp-block-image:not(#individual-image) { width: 100% !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-m2 figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) * 0.5) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-m3 figure.wp-block-image:not(#individual-image) { width: calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.66667) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-m4 figure.wp-block-image:not(#individual-image) { width: calc(25% - var(--wp--style--unstable-gallery-gap, 16px) * 0.75) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-m5 figure.wp-block-image:not(#individual-image) { width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8) !important; }
	.wp-block-gallery.has-nested-images.bloom-gallery-m6 figure.wp-block-image:not(#individual-image) { width: calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px) * 0.83333) !important; }
}

/* Gallery block style "bloom-masonry" (the previous theme masonry/tiles galleries): CSS columns, natural image heights. */
.wp-block-gallery.has-nested-images.is-style-bloom-masonry {
	display: block;
	column-count: 3;
	column-gap: var(--wp--style--unstable-gallery-gap, 16px);
}
.wp-block-gallery.has-nested-images.is-style-bloom-masonry.columns-1 { column-count: 1; }
.wp-block-gallery.has-nested-images.is-style-bloom-masonry.columns-2 { column-count: 2; }
.wp-block-gallery.has-nested-images.is-style-bloom-masonry.columns-4 { column-count: 4; }
.wp-block-gallery.has-nested-images.is-style-bloom-masonry.columns-5 { column-count: 5; }
.wp-block-gallery.has-nested-images.is-style-bloom-masonry.columns-6 { column-count: 6; }
.wp-block-gallery.has-nested-images.is-style-bloom-masonry figure.wp-block-image:not(#individual-image) {
	display: block;
	width: 100% !important;
	margin: 0 0 var(--wp--style--unstable-gallery-gap, 16px);
	break-inside: avoid;
}
@media (max-width: 1024px) {
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-t1 { column-count: 1; }
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-t2 { column-count: 2; }
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-t3 { column-count: 3; }
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-t4 { column-count: 4; }
}
@media (max-width: 767px) {
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-m1 { column-count: 1; }
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-m2 { column-count: 2; }
	.wp-block-gallery.has-nested-images.is-style-bloom-masonry.bloom-gallery-m3 { column-count: 3; }
}
