.imap-content-blocks {
	display: grid;
	gap: var(--imap-content-blocks-gap, 24px);
}

.imap-content-blocks > * {
	min-width: 0;
}

.imap-content-blocks__body {
	overflow-wrap: break-word;
	font-family: "Roboto", sans-serif;
}

.imap-content-blocks__body :is(h1, h2, h3, h4, h5, h6),
.imap-content-blocks__heading {
	font-family: "Be Vietnam Pro", sans-serif;
}

/* Keep long one-column Article text readable without changing full-width
   images or the two-column content-block layouts. */
.imap-content-blocks__block--text > .imap-content-blocks__body {
	/* max-width: 960px; */
	/* margin-inline: auto; */
}

.imap-content-blocks__heading,
.imap-content-blocks__subhead,
.imap-content-blocks__body {
	margin-block: 0;
}

.imap-content-blocks__body > * {
	margin-block: 0;
}

.imap-content-blocks__body > * + * {
	margin-block-start: var(--imap-content-blocks-flow, 1.1em);
}

.imap-content-blocks__body > * + :is(h2, h3, h4, h5, h6) {
	margin-block-start: var(--imap-content-blocks-heading-space, 2.5em);
}

.imap-content-blocks__body > :is(h2, h3, h4, h5, h6) + * {
	margin-block-start: 0.6em;
}

.imap-content-blocks__body :is(ul, ol) {
	padding-inline-start: 1.4em;
}

.imap-content-blocks__body li + li {
	margin-block-start: 0.35em;
}

/* Elementor bakes a default 4-class scoped rule per widget instance
   (.elementor-<post> .elementor-element.elementor-element-<id> .imap-content-blocks__body ...)
   even when the editor hasn't touched the control. Repeating our class
   is a specificity hack (no !important) to still win by default while
   leaving room for an editor's own explicit override, which gets an
   even more specific selector. Revisit properly post-launch. */
.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body li::marker {
	color: #003f4a;
}

.imap-content-blocks__subhead {
	font-family: "Roboto", sans-serif;
	font-weight: 600;
}

.imap-content-blocks__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
	object-fit: cover;
}

.imap-content-blocks img {
	max-width: 100%;
}

/* Temporary compatibility for imported Article HTML. Pimcore stored a small
   Bootstrap-style layout subset inside text blocks, but Bootstrap is not part
   of the WordPress frontend. Keep this scoped to the content-block widget
   until each Pimcore block type has a native renderer. */
.imap-content-blocks__body > .row + .row {
	margin-block-start: 0;
}

.imap-content-blocks__body .row {
	--imap-legacy-gutter-x: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	margin-inline: calc(-0.5 * var(--imap-legacy-gutter-x));
}

.imap-content-blocks__body .row.gx-0 {
	--imap-legacy-gutter-x: 0;
}

.imap-content-blocks__body .row.gx-5 {
	--imap-legacy-gutter-x: 3rem;
}

.imap-content-blocks__body .row > * {
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-inline: calc(0.5 * var(--imap-legacy-gutter-x));
}

.imap-content-blocks__body .col-12 {
	flex: 0 0 auto;
	width: 100%;
}

.imap-content-blocks__body .d-flex {
	display: flex;
}

.imap-content-blocks__body .justify-content-center {
	justify-content: center;
}

.imap-content-blocks__body .align-items-center {
	align-items: center;
}

.imap-content-blocks__body .img-fluid {
	max-width: 100%;
	height: auto;
}

.imap-content-blocks__body .py-3,
.imap-content-blocks__body .pt-3 {
	padding-top: 1rem;
}

.imap-content-blocks__body .py-3,
.imap-content-blocks__body .pb-3 {
	padding-bottom: 1rem;
}

.imap-content-blocks__body .pt-2 {
	padding-top: 0.5rem;
}

.imap-content-blocks__body .pb-2 {
	padding-bottom: 0.5rem;
}

@media (min-width: 992px) {
	.imap-content-blocks__body .col-lg-6 {
		flex: 0 0 auto;
		width: 50%;
	}

	.imap-content-blocks__body .col-lg-10 {
		flex: 0 0 auto;
		width: 83.33333333%;
	}

	.imap-content-blocks__body .offset-lg-1 {
		margin-left: 8.33333333%;
	}

	.imap-content-blocks__body .justify-content-lg-center {
		justify-content: center;
	}

	.imap-content-blocks__body .align-items-lg-center {
		align-items: center;
	}

	.imap-content-blocks__body .pt-lg-0 {
		padding-top: 0;
	}

	.imap-content-blocks__body .pb-lg-0 {
		padding-bottom: 0;
	}

	.imap-content-blocks__body .pt-lg-3 {
		padding-top: 1rem;
	}

	.imap-content-blocks__body .pb-lg-3 {
		padding-bottom: 1rem;
	}
}

@media (min-width: 1400px) {
	.imap-content-blocks__body .justify-content-xxl-center {
		justify-content: center;
	}

	.imap-content-blocks__body .justify-content-xxl-start {
		justify-content: flex-start;
	}

	.imap-content-blocks__body .align-items-xxl-center {
		align-items: center;
	}

	.imap-content-blocks__body .pt-xxl-3 {
		padding-top: 1rem;
	}

	.imap-content-blocks__body .pb-xxl-3 {
		padding-bottom: 1rem;
	}

	.imap-content-blocks__body .pt-xxl-4 {
		padding-top: 1.5rem;
	}

	.imap-content-blocks__body .pb-xxl-5 {
		padding-bottom: 3rem;
	}
}

.imap-content-blocks__columns,
.imap-content-blocks__split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--imap-content-blocks-gap, 24px);
	align-items: start;
}

.imap-content-blocks__split--flipped .imap-content-blocks__split-media {
	order: 2;
}

.imap-content-blocks__split--flipped .imap-content-blocks__split-content {
	order: 1;
}

.imap-content-blocks__button,
.imap-content-blocks__video {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	padding: 0.75em 1.1em;
	border-radius: 999px;
	background: #003f4a;
	color: #fff;
	text-decoration: none;
}

.imap-content-blocks__button:hover,
.imap-content-blocks__button:focus,
.imap-content-blocks__video:hover,
.imap-content-blocks__video:focus {
	color: #fff;
	text-decoration: none;
}

@media (max-width: 767px) {
	.imap-content-blocks__columns,
	.imap-content-blocks__split {
		grid-template-columns: 1fr;
	}

	.imap-content-blocks__split--flipped .imap-content-blocks__split-media,
	.imap-content-blocks__split--flipped .imap-content-blocks__split-content {
		order: initial;
	}

	/* Elementor bakes a default 4-class scoped rule per widget instance
	   (.elementor-<post> .elementor-element.elementor-element-<id> .imap-content-blocks__body ...)
	   at the SAME selector/specificity whether the value is the control's
	   untouched default or an editor's explicit choice, so a plain rule here
	   can never beat the 24px default. Repeating our class is a specificity
	   hack (no !important) to force this down on mobile only; the tradeoff
	   is that it also overrides an editor's explicit choice on phones, not
	   just the default. Desktop/tablet are untouched. Revisit post-launch. */
	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body,
	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body p,
	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body li {
		font-size: 1.0625rem;
	}

	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body h2 {
		font-size: 1.625rem;
	}

	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body h3 {
		font-size: 1.375rem;
	}

	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body h4 {
		font-size: 1.1875rem;
	}

	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body h5 {
		font-size: 1.0625rem;
	}

	.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body.imap-content-blocks__body h6 {
		font-size: 1rem;
	}
}
