/* Breathe Easy shared typefaces.
 * The slug form matches the registered custom-font families in the theme. */
:root {
	--be-font-sans: "aktiv-grotesk", "Aktiv Grotesk", sans-serif;
	--be-font-display: "freight-display-pro", "Freight Display Pro", Georgia, serif;
}

.aktiv-grotesk {
	font-family: var(--be-font-sans) !important;
}

.freight-display-pro {
	font-family: var(--be-font-display) !important;
}

.be-widget,
.be-widget * {
	box-sizing: border-box;
}

.be-widget {
	--be-text: #090909;
	--be-muted: #9d9d9d;
	--be-cta-background: #d2cfcc;
	--be-cta-text: #111111;
	--be-cta-hover-background: #111111;
	--be-cta-hover-text: #ffffff;
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 24px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	color: var(--be-text);
	font-family: var(--be-font-sans);
	font-weight: 400;
	line-height: 1.2;
}

.be-header,
.be-cards,
.be-footer,
.be-card,
.be-card-label,
.be-card-top-row,
.be-card-identity,
.be-card-reading-row,
.be-card-bottom-row,
.be-inline-reading,
.be-inline-unit,
.be-scale-wrap,
.be-scale,
.be-pm-unit,
.be-metrics,
.be-metric,
.be-co2-line,
.be-live-update,
.be-card-refresh,
.be-cta-text,
.be-cta-circle {
	display: flex;
	flex-wrap: nowrap;
	min-width: 0;
}

.be-header {
	align-items: baseline;
	justify-content: space-between;
	flex-direction: row;
	gap: 12px;
	width: 100%;
}

.be-title {
	display: flex;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.be-live-update {
	align-items: center;
	justify-content: flex-end;
	flex: 0 0 auto;
	flex-direction: row;
	gap: 3px;
	color: var(--be-muted);
	font-family: inherit;
	font-size: 10px;
	font-weight: 300;
	letter-spacing: -0.01em;
	line-height: 1.2;
	white-space: nowrap;
}

.be-live-update-label,
.be-live-update-separator,
.be-live-update-value,
.be-card-icon,
.be-location-name,
.be-card-badge,
.be-card-meta,
.be-refresh-icon,
.be-refresh-text,
.be-card-status,
.be-card-source,
.be-card-description,
.be-pm-unit-measure,
.be-pm-unit-separator,
.be-pm-unit-pollutant,
.be-metric-icon,
.be-temperature-text,
.be-humidity-text,
.be-co2-label,
.be-co2-reading,
.be-co2-separator,
.be-co2-status {
	display: flex;
	align-items: center;
	min-width: 0;
}

.be-cards {
	align-items: stretch;
	justify-content: stretch;
	flex-direction: row;
	gap: 12px;
	width: 100%;
}

.be-card {
	--be-card-background: #f0eae6;
	--be-card-foreground: #4e4e50;
	--be-card-foreground-top: #4e4e50;
	--be-card-foreground-bottom: #4e4e50;
	--be-value-single: #000000;
	--be-value-top: #000000;
	--be-value-bottom: #000000;
	align-items: stretch;
	justify-content: flex-start;
	flex: 1 1 0;
	flex-direction: column;
	gap: 12px;
	width: calc(50% - 6px);
	min-width: 0;
	padding: clamp(10px, 2.4cqw, 18px);
	overflow: hidden;
	border-radius: 18px;
	background: var(--be-card-background);
	color: var(--be-card-foreground);
}

.be-card-label {
	align-items: center;
	justify-content: flex-start;
	flex-direction: row;
	gap: 7px;
	width: 100%;
	font-family: inherit;
	font-size: 10px;
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.2;
}

.be-card-icon {
	flex: 0 0 auto;
}

.be-location-name {
	flex: 1 1 auto;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.be-icon {
	display: flex;
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	color: currentColor;
}

.be-card-icon .be-icon,
.be-refresh-icon .be-icon {
	width: 16px;
	height: 16px;
}

.be-pm-value {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	min-width: 0;
	margin: 0;
	color: var(--be-value-single);
	font-family: inherit;
	font-size: 42px;
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums lining-nums;
	letter-spacing: -0.065em;
	line-height: 0.9;
	white-space: nowrap;
	/* Bold gradient-clipped numerals can paint just beyond their inline box.
	 * Compensated breathing room prevents edge clipping without changing the
	 * number/unit alignment or the card's measured width. */
	padding-inline: .075em;
	margin-inline: -.075em;
	overflow: visible;
}

.be-card--gradient-value .be-pm-value {
	background-image: linear-gradient(180deg, var(--be-value-top) 0%, var(--be-value-bottom) 100%);
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

/* Optional gradient treatment for the supporting card text on plain backgrounds. */
.be-card--gradient-foreground .be-location-name,
.be-card--gradient-foreground .be-card-badge,
.be-card--gradient-foreground .be-card-meta,
.be-card--gradient-foreground .be-refresh-text,
.be-card--gradient-foreground .be-card-status,
.be-card--gradient-foreground .be-card-source,
.be-card--gradient-foreground .be-card-description,
.be-card--gradient-foreground .be-pm-unit-measure,
.be-card--gradient-foreground .be-pm-unit-separator,
.be-card--gradient-foreground .be-pm-unit-pollutant,
.be-card--gradient-foreground .be-inline-unit-title,
.be-card--gradient-foreground .be-inline-unit-secondary,
.be-card--gradient-foreground .be-temperature-text,
.be-card--gradient-foreground .be-humidity-text {
	background-image: linear-gradient(180deg, var(--be-card-foreground-top) 0%, var(--be-card-foreground-bottom) 100%);
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.be-scale-wrap {
	align-items: stretch;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

.be-scale {
	position: relative;
	align-items: center;
	flex: 0 0 auto;
	width: 100%;
	height: 6px;
	border-radius: 999px;
	background: var(--be-scale-gradient);
}

.be-marker {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: clamp(7px, var(--be-position), calc(100% - 7px));
	display: flex;
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #050505;
	transform: translate(-50%, -50%);
	transition: left 0.3s ease;
}

.be-pm-unit {
	align-items: center;
	justify-content: flex-start;
	flex-direction: row;
	gap: 2px;
	color: var(--be-card-foreground);
	font-family: inherit;
	font-size: 7px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: nowrap;
}

.be-metrics {
	align-items: center;
	justify-content: flex-start;
	flex-direction: row;
	gap: clamp(7px, 2cqw, 14px);
	width: 100%;
}

.be-metric {
	align-items: center;
	justify-content: flex-start;
	flex: 0 1 auto;
	flex-direction: row;
	gap: 5px;
	font-family: inherit;
	font-size: 10px;
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.2;
	white-space: nowrap;
}

.be-metric .be-icon {
	width: 15px;
	height: 15px;
}

.be-footer {
	align-items: center;
	justify-content: space-between;
	flex-direction: row;
	gap: 12px;
	width: 100%;
}

.be-co2-line {
	align-items: baseline;
	justify-content: flex-start;
	flex: 1 1 auto;
	flex-direction: row;
	gap: 3px;
	overflow: hidden;
	font-family: inherit;
	font-size: 10px;
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.3;
	white-space: nowrap;
}

.be-co2-label,
.be-co2-reading,
.be-co2-separator,
.be-co2-status {
	align-items: baseline;
	flex: 0 0 auto;
	font: inherit;
}

.be-co2-label {
	color: var(--be-muted);
}

.be-co2-status {
	overflow: hidden;
	text-overflow: ellipsis;
}

.be-co2-subscript {
	font-size: 0.65em;
	line-height: 0;
	vertical-align: -0.15em;
}

/* Wide and compact card layouts. */
.be-widget--layout-wide,
.be-widget--layout-compact {
	gap: 0;
}

.be-widget--layout-wide .be-card,
.be-widget--layout-compact .be-card {
	gap: 14px;
}

.be-card-top-row {
	align-items: center;
	justify-content: space-between;
	flex-direction: row;
	gap: 8px;
	width: 100%;
}

.be-card-identity {
	align-items: center;
	justify-content: flex-start;
	flex: 1 1 auto;
	flex-direction: row;
	gap: 7px;
	overflow: hidden;
	font-size: 10px;
	line-height: 1.2;
}

.be-card-badge {
	justify-content: center;
	flex: 0 0 auto;
	padding: 7px 10px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.48);
	font-size: 8px;
	line-height: 1;
	white-space: nowrap;
}

.be-card-meta {
	justify-content: flex-end;
	flex: 0 0 auto;
	font-size: 8px;
	line-height: 1.2;
	white-space: nowrap;
}

.be-card-reading-row {
	align-items: center;
	justify-content: space-between;
	flex-direction: row;
	gap: 10px;
	width: 100%;
}

.be-inline-reading {
	align-items: flex-end;
	justify-content: flex-start;
	flex: 1 1 auto;
	flex-direction: row;
	gap: 8px;
	overflow: hidden;
}

.be-inline-unit {
	align-items: flex-start;
	justify-content: flex-end;
	flex: 0 1 auto;
	flex-direction: column;
	gap: 1px;
	padding-bottom: 2px;
	white-space: nowrap;
}

.be-inline-unit-title,
.be-inline-unit-secondary {
	display: flex;
	align-items: center;
	min-width: 0;
}

.be-inline-unit-title {
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
}

.be-inline-unit-secondary {
	font-size: 8px;
	line-height: 1.1;
}

.be-card-refresh {
	align-items: center;
	justify-content: flex-end;
	flex: 0 0 auto;
	flex-direction: row;
	gap: 4px;
	font-size: 8px;
	white-space: nowrap;
}

.be-card-bottom-row {
	align-items: center;
	justify-content: space-between;
	flex-direction: row;
	gap: 8px;
	width: 100%;
	margin-top: auto;
}

.be-card-status,
.be-card-source {
	justify-content: flex-end;
	flex: 0 1 auto;
	overflow: hidden;
	font-size: 9px;
	line-height: 1.2;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.be-card-description {
	justify-content: flex-start;
	flex: 0 0 auto;
	overflow: hidden;
	font-size: 10px;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.be-widget--layout-wide .be-card {
	min-height: 160px;
}

.be-widget--layout-compact .be-card {
	min-height: 172px;
}

.be-widget--layout-compact .be-inline-reading {
	align-items: center;
}

.be-widget--layout-compact .be-card-bottom-row .be-metrics {
	flex: 0 1 auto;
	width: auto;
}

/* Site button class, scoped to this shortcode. */
.be-widget .button-tertiary {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex: 0 0 auto !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 10px !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 7px 8px 7px 14px !important;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	background-color: var(--be-cta-background) !important;
	box-shadow: none !important;
	color: var(--be-cta-text) !important;
	font-family: inherit !important;
	font-size: 10px !important;
	font-weight: 400 !important;
	letter-spacing: -0.01em !important;
	line-height: 1 !important;
	text-decoration: none !important;
	transform: none !important;
	translate: none !important;
	scale: none !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

.be-widget .button-tertiary:hover,
.be-widget .button-tertiary:focus,
.be-widget .button-tertiary:focus-visible,
.be-widget .button-tertiary:active {
	width: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 7px 8px 7px 14px !important;
	border: 1px solid transparent !important;
	background-color: var(--be-cta-hover-background) !important;
	box-shadow: none !important;
	color: var(--be-cta-hover-text) !important;
	letter-spacing: -0.01em !important;
	text-decoration: none !important;
	transform: none !important;
	translate: none !important;
	scale: none !important;
}

.be-widget .button-tertiary::before,
.be-widget .button-tertiary::after {
	display: none !important;
	content: none !important;
}

.be-widget .button-tertiary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.be-cta-text,
.be-cta-circle {
	align-items: center;
	flex-direction: row;
	transform: none !important;
	translate: none !important;
}

.be-cta-text {
	flex: 0 1 auto;
	white-space: nowrap;
}

.be-cta-circle {
	justify-content: center;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: #050505;
	color: #ffffff;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.be-widget .button-tertiary:hover .be-cta-circle,
.be-widget .button-tertiary:focus .be-cta-circle,
.be-widget .button-tertiary:focus-visible .be-cta-circle,
.be-widget .button-tertiary:active .be-cta-circle {
	background-color: #ffffff;
	color: #050505;
	transform: none !important;
	translate: none !important;
}

.be-cta-icon {
	display: flex;
	flex: 0 0 auto;
	width: 11px;
	height: 11px;
	transform: none !important;
	translate: none !important;
}

/* Never stack cards or rows. Reduce spacing rather than changing direction. */
@container (max-width: 430px) {
	.be-widget {
		gap: 18px;
	}

	.be-card {
		gap: 9px;
		padding: 10px;
	}

	.be-card-badge {
		padding: 5px 6px;
	}

	.be-inline-reading {
		gap: 5px;
	}

	.be-inline-unit-title {
		font-size: 11px;
	}

	.be-card-status,
	.be-card-source {
		font-size: 8px;
	}

	.be-card-description {
		font-size: 9px;
	}
}

/* =========================================================
   Shared Breathe Easy carousel framework
   ========================================================= */

.be-carousel,
.be-carousel *,
.be-carousel *::before,
.be-carousel *::after {
	box-sizing: border-box;
}

.be-carousel {
	--be-carousel-content-width: min(
		var(--be-carousel-container-max, 1160px),
		calc(100vw - (2 * var(--be-carousel-page-gutter, 28px)))
	);
	--be-carousel-content-edge: max(
		var(--be-carousel-page-gutter, 28px),
		calc((100vw - var(--be-carousel-container-max, 1160px)) / 2)
	);

	position: relative;
	display: flex;
	flex-direction: column;
	gap: 28px;
	width: 100%;
	min-width: 0;
	color: inherit;
	font-family: var(--be-font-sans);
}

.be-carousel__shell {
	position: relative;
	display: flex;
	align-items: center;
	width: var(--be-carousel-content-width);
	max-width: var(--be-carousel-container-max, 1160px);
	min-width: 0;
	margin-inline: auto;
}

/* Full-bleed viewport, while every snapped card begins on the content edge. */
.be-carousel--overflow-bleed .be-carousel__shell {
	left: 50%;
	width: 100vw;
	max-width: none;
	margin-left: -50vw;
	margin-right: 0;
}

.be-carousel__viewport {
	width: 100%;
	min-width: 0;
	padding-block: 18px;
	margin-block: -18px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	cursor: default;
}

.be-carousel[data-be-can-scroll="true"] .be-carousel__viewport {
	cursor: grab;
}

.be-carousel--overflow-bleed .be-carousel__viewport {
	scroll-padding-left: var(--be-carousel-content-edge);
	scroll-padding-right: var(--be-carousel-content-edge);
}

.be-carousel--overflow-contained .be-carousel__viewport {
	scroll-padding-inline: 0;
}

.be-carousel[data-be-dragging="true"] .be-carousel__viewport,
.be-carousel[data-be-progress-dragging="true"] .be-carousel__viewport {
	scroll-snap-type: none;
	scroll-behavior: auto;
	user-select: none;
}

.be-carousel[data-be-dragging="true"] .be-carousel__viewport {
	cursor: grabbing;
}

.be-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.be-carousel__viewport:focus {
	outline: none;
}

.be-carousel__viewport:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

.be-carousel__track {
	display: flex;
	align-items: stretch;
	gap: var(--be-carousel-gap, 24px);
	width: max-content;
	min-width: 100%;
}

.be-carousel--overflow-bleed .be-carousel__track {
	padding-inline: var(--be-carousel-content-edge);
}

.be-carousel-card {
	position: relative;
	display: flex;
	flex: 0 0 var(--be-carousel-card-basis, calc((var(--be-carousel-content-width) - 72px) / 4));
	width: var(--be-carousel-card-basis, calc((var(--be-carousel-content-width) - 72px) / 4));
	height: var(--be-card-height, var(--be-carousel-height, 390px));
	min-width: 0;
	overflow: visible;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	isolation: isolate;
	perspective: 1400px;
	border-radius: var(--be-card-radius, var(--be-carousel-radius, 20px));
	background: transparent;
	color: var(--be-card-text, var(--be-carousel-default-text, #fff));
}

.be-carousel-card--flippable {
	cursor: pointer;
}

.be-carousel-card--flippable:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

.be-carousel-card__flipper {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	transform-style: preserve-3d;
	transition: transform .55s cubic-bezier(.2,.7,.2,1);
	will-change: transform;
}

.be-carousel-card[data-be-flipped="true"] .be-carousel-card__flipper {
	transform: rotateY(180deg);
}

.be-carousel-card__face {
	position: absolute;
	inset: 0;
	display: flex;
	width: 100%;
	height: 100%;
	overflow: hidden;
	isolation: isolate;
	border-radius: inherit;
	background: var(--be-card-background, var(--be-carousel-default-bg, #e5ddd7));
	color: var(--be-card-text, var(--be-carousel-default-text, #fff));
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.be-carousel-card__face--front {
	position: relative;
	transform: rotateY(0deg);
}

.be-carousel-card__face--back {
	background: var(--be-card-back-background, var(--be-card-background, var(--be-carousel-default-bg, #e5ddd7)));
	color: var(--be-card-back-text, #fff);
	transform: rotateY(180deg);
}

.be-carousel-card__image,
.be-carousel-card__overlay {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.be-carousel-card__image {
	z-index: 0;
	object-fit: cover;
	object-position: var(--be-card-image-position, 50% 50%);
}

.be-carousel-card__image--back {
	object-position: var(--be-card-back-image-position, var(--be-card-image-position, 50% 50%));
}

.be-carousel-card__overlay {
	z-index: 1;
	pointer-events: none;
}

.be-carousel-card__overlay--front { background: var(--be-card-overlay, none); }
.be-carousel-card__overlay--back { background: var(--be-card-back-overlay, rgba(0,0,0,.74)); }

.be-carousel-card__top {
	position: absolute;
	z-index: 3;
	top: var(--be-card-padding, var(--be-carousel-padding, 24px));
	right: var(--be-card-padding, var(--be-carousel-padding, 24px));
	left: var(--be-card-padding, var(--be-carousel-padding, 24px));
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	pointer-events: none;
}

.be-carousel-card__slot,
.be-carousel-card__slot-spacer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: var(--be-slot-size, 0);
	width: var(--be-slot-size, auto);
	height: var(--be-slot-size, auto);
	min-height: var(--be-slot-size, 0);
	padding: 0;
	border-radius: var(--be-slot-radius, 0);
	background: var(--be-slot-background, transparent);
	color: var(--be-slot-colour, currentColor);
	font: inherit;
	line-height: 1;
	text-decoration: none;
	pointer-events: auto;
}

.be-carousel-card__slot[style*="--be-slot-size:0px"],
.be-carousel-card__slot:not([style*="--be-slot-size:"]) {
	width: auto;
	height: auto;
	min-width: 0;
	min-height: 0;
	padding: 0;
}

.be-carousel-card__slot--number {
	font-family: var(--be-font-display);
	font-size: var(--be-slot-font-size, 38px);
	font-style: italic;
	font-weight: 400;
	letter-spacing: -0.04em;
}

.be-carousel-card__slot--emoji {
	font-size: var(--be-slot-font-size, calc(var(--be-slot-size, 56px) * 0.42));
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.be-carousel-card__slot--text {
	max-width: 70%;
	font-size: var(--be-slot-font-size, var(--be-carousel-eyebrow-size, 14px));
	line-height: 1.2;
	text-align: left;
}

.be-carousel-card__slot--arrow {
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	vertical-align: top;
	transition: background-color .2s ease, color .2s ease;
}

/* Theme link rules must not change the geometry of a linked top-right slot.
 * A linked arrow and its non-linked span use the exact same box model. */
a.be-carousel-card__slot--arrow {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--be-slot-colour, currentColor) !important;
	font: inherit !important;
	line-height: 1 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	transform: none !important;
	cursor: pointer;
}

a.be-carousel-card__slot--arrow::before,
a.be-carousel-card__slot--arrow::after {
	content: none !important;
	display: none !important;
}

.be-carousel-card__slot--arrow svg {
	display: block !important;
	flex: 0 0 12px;
	width: 12px !important;
	height: 12px !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible;
	transform: none !important;
}

.be-carousel-card__slot--arrow:hover,
.be-carousel-card__slot--arrow:focus-visible {
	transform: none;
}

.be-carousel-card__slot--left.be-carousel-card__slot--arrow:hover,
.be-carousel-card__slot--left.be-carousel-card__slot--arrow:focus-visible {
	background: var(--be-carousel-slot-left-hover-bg, var(--be-slot-background, #000)) !important;
	color: var(--be-carousel-slot-left-hover-colour, var(--be-slot-colour, #fff)) !important;
}

.be-carousel-card__slot--right.be-carousel-card__slot--arrow:hover,
.be-carousel-card__slot--right.be-carousel-card__slot--arrow:focus-visible {
	background: var(--be-carousel-slot-right-hover-bg, var(--be-slot-background, #000)) !important;
	color: var(--be-carousel-slot-right-hover-colour, var(--be-slot-colour, #fff)) !important;
}

.be-carousel-card__slot img {
	display: block;
	max-width: 72%;
	max-height: 72%;
	object-fit: contain;
}

.be-carousel-card__slot--svg svg {
	display: block;
	width: var(--be-slot-svg-width, 72%);
	height: var(--be-slot-svg-height, 72%);
	max-width: 100%;
	max-height: 100%;
	overflow: visible;
}

.be-carousel-card__content,
.be-carousel-card__back-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--be-card-content-gap, var(--be-carousel-content-gap, 8px));
	width: 100%;
	height: 100%;
	min-width: 0;
	padding: calc(var(--be-card-padding, var(--be-carousel-padding, 24px)) + 56px) var(--be-card-padding, var(--be-carousel-padding, 24px)) var(--be-card-padding, var(--be-carousel-padding, 24px));
}

.be-carousel-card__back-content {
	justify-content: space-between;
	padding-top: var(--be-card-padding, var(--be-carousel-padding, 24px));
}

.be-carousel-card__back-copy {
	display: flex;
	flex-direction: column;
	gap: var(--be-card-content-gap, var(--be-carousel-content-gap, 8px));
	margin-top: auto;
}

.be-carousel-card--content-top .be-carousel-card__content { justify-content: flex-start; }
.be-carousel-card--content-center .be-carousel-card__content { justify-content: center; }
.be-carousel-card--content-bottom .be-carousel-card__content { justify-content: flex-end; }

.be-carousel-card__eyebrow,
.be-carousel-card__title,
.be-carousel-card__description,
.be-carousel-card__link,
.be-carousel-card__description p,
.be-carousel-card__back-label,
.be-carousel-card__back-title,
.be-carousel-card__back-description,
.be-carousel-card__back-description p,
.be-carousel-card__source {
	margin: 0;
	color: inherit;
}

.be-carousel-card__eyebrow,
.be-carousel-card__back-label {
	font-size: var(--be-card-eyebrow-size, var(--be-carousel-eyebrow-size, inherit));
	line-height: 1.15;
}

.be-carousel-card__title,
.be-carousel-card__back-title {
	font-size: var(--be-card-title-size, var(--be-carousel-title-size, inherit));
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.025em;
}

.be-carousel-card__description,
.be-carousel-card__back-description {
	font-size: var(--be-card-description-size, var(--be-carousel-description-size, inherit));
	line-height: 1.12;
}

.be-carousel-card__description p + p,
.be-carousel-card__back-description p + p { margin-top: .5em; }

.be-carousel-card__link,
.be-carousel-card__source {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	margin-top: 12px;
	font-size: var(--be-card-link-size, var(--be-carousel-link-size, inherit));
	line-height: 1;
	text-decoration: none !important;
}

.be-carousel-card__source { margin-top: auto; }

.be-carousel-card__link { color: var(--be-card-link-colour, inherit); }
.be-carousel-card__source { color: var(--be-card-source-colour, inherit); }
.be-carousel-card__link-icon { color: var(--be-card-link-icon-colour, currentColor); }
.be-carousel-card__source-icon { color: var(--be-card-source-icon-colour, currentColor); }

.be-carousel-card__flip-cue {
	appearance: none;
	-webkit-appearance: none;
	margin-top: 12px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--be-card-link-colour, inherit);
	font: inherit;
	cursor: pointer;
}

.be-carousel-card__link:hover,
.be-carousel-card__link:focus-visible,
.be-carousel-card__source:hover,
.be-carousel-card__source:focus-visible {
	color: currentColor;
	text-decoration: none !important;
	transform: none;
}

.be-carousel-card__link:not(.be-button):hover .be-carousel-card__link-text,
.be-carousel-card__link:not(.be-button):focus-visible .be-carousel-card__link-text,
.be-carousel-card__source:not(.be-button):hover .be-carousel-card__source-text,
.be-carousel-card__source:not(.be-button):focus-visible .be-carousel-card__source-text {
	text-decoration: underline;
}

.be-carousel-card__link-icon,
.be-carousel-card__source-icon {
	text-decoration: none !important;
}

.be-carousel-card__link-icon,
.be-carousel-card__source-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	line-height: 1;
}

.be-carousel-card__whole-link {
	position: relative;
	z-index: 20;
	display: flex !important;
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: inherit;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	text-decoration: none !important;
	transform: none !important;
	cursor: pointer;
	pointer-events: auto;
	-webkit-user-drag: none;
	user-select: none;
}

.be-carousel-card--whole-link {
	cursor: pointer;
}

/* In whole-card mode the flipper is presentation only. Removing it from hit
 * testing guarantees that the real anchor receives the click even when a
 * theme creates additional stacking contexts on card content. */
.be-carousel-card--whole-link .be-carousel-card__flipper {
	pointer-events: none;
}

.be-carousel-card--whole-link .be-carousel-card__whole-link > .be-carousel-card__flipper {
	flex: 1 1 auto;
	min-width: 0;
}

.be-carousel-card__whole-link::before,
.be-carousel-card__whole-link::after {
	content: none !important;
	display: none !important;
}

.be-carousel-card__whole-link-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.be-carousel-card__whole-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -5px;
}

.be-carousel__arrow {
	position: absolute;
	z-index: 7;
	top: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--be-carousel-arrow-size, 48px);
	height: var(--be-carousel-arrow-size, 48px);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--be-carousel-arrow-bg, #61cfd1);
	box-shadow: none;
	color: var(--be-carousel-arrow-colour, #000);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}

.be-carousel--overflow-contained .be-carousel__arrow--prev { left: calc(-1 * var(--be-carousel-arrow-half, 24px)); }
.be-carousel--overflow-contained .be-carousel__arrow--next { right: calc(-1 * var(--be-carousel-arrow-half, 24px)); }
.be-carousel--overflow-bleed .be-carousel__arrow--prev { left: calc(var(--be-carousel-content-edge) - var(--be-carousel-arrow-half, 24px)); }
.be-carousel--overflow-bleed .be-carousel__arrow--next { right: calc(var(--be-carousel-content-edge) - var(--be-carousel-arrow-half, 24px)); }

.be-carousel--arrows-inside.be-carousel--overflow-contained .be-carousel__arrow--prev { left: 12px; }
.be-carousel--arrows-inside.be-carousel--overflow-contained .be-carousel__arrow--next { right: 12px; }
.be-carousel--arrows-inside.be-carousel--overflow-bleed .be-carousel__arrow--prev { left: calc(var(--be-carousel-content-edge) + 12px); }
.be-carousel--arrows-inside.be-carousel--overflow-bleed .be-carousel__arrow--next { right: calc(var(--be-carousel-content-edge) + 12px); }

.be-carousel__arrow:hover,
.be-carousel__arrow:focus-visible {
	background: var(--be-carousel-arrow-hover-bg, #000);
	color: var(--be-carousel-arrow-hover-colour, #fff);
	transform: translateY(-50%);
}

.be-carousel__arrow:disabled {
	opacity: .25;
	cursor: default;
	pointer-events: none;
}

.be-carousel[data-be-can-scroll="false"] .be-carousel__arrow,
.be-carousel[data-be-can-scroll="false"] .be-carousel__mobile-navigation {
	display: none !important;
}

.be-carousel[data-be-can-scroll="false"] .be-carousel__viewport {
	cursor: default;
}

.be-carousel__mobile-navigation {
	display: none;
	align-items: center;
	gap: 20px;
	width: var(--be-carousel-content-width);
	max-width: var(--be-carousel-container-max, 1160px);
	margin-inline: auto;
	padding: 0;
	color: var(--be-carousel-progress-text, #969494);
	font-size: 13px;
	line-height: 1;
}

.be-carousel--navigation-progress .be-carousel__mobile-navigation,
.be-carousel--navigation-both .be-carousel__mobile-navigation {
	display: flex;
}

.be-carousel__swipe-label,
.be-carousel__counter {
	flex: 0 0 60px;
	width: 60px;
	min-width: 60px;
	max-width: 60px;
	box-sizing: border-box;
	white-space: nowrap;
}

.be-carousel__swipe-label {
	text-align: left;
}

.be-carousel__counter {
	text-align: right;
}

.be-carousel__progress {
	position: relative;
	display: block;
	flex: 1 1 auto;
	height: max(18px, calc(var(--be-carousel-progress-height, 7px) + (var(--be-carousel-progress-border-width, 0px) * 2)));
	cursor: ew-resize;
	touch-action: none;
}

/*
 * The border belongs to a dedicated outer rail. This keeps it outside the
 * configured track/thumb height instead of allowing the thumb to cover it.
 */
.be-carousel__progress-rail {
	position: absolute;
	top: 50%;
	right: 0;
	left: 0;
	height: var(--be-carousel-progress-height, 7px);
	box-sizing: content-box;
	overflow: hidden;
	border: var(--be-carousel-progress-border-width, 0px) solid var(--be-carousel-progress-border-colour, var(--be-carousel-progress-track, #999));
	border-radius: 999px;
	background: var(--be-carousel-progress-track, #999);
	transform: translateY(-50%);
	pointer-events: none;
}

.be-carousel__progress:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.be-carousel__progress-value {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 25%;
	height: var(--be-carousel-progress-height, 7px);
	border-radius: 999px;
	background: var(--be-carousel-progress-value, #f4f0ed);
	transition: left .18s ease, width .18s ease;
	pointer-events: none;
}

.be-carousel[data-be-progress-dragging="true"] .be-carousel__progress-value {
	transition: none;
}

@media (max-width: 1024px) and (min-width: 768px) {
	.be-carousel-card {
		flex-basis: var(--be-carousel-tablet-card-basis, calc((var(--be-carousel-content-width) - 24px) / 2));
		width: var(--be-carousel-tablet-card-basis, calc((var(--be-carousel-content-width) - 24px) / 2));
		height: var(--be-card-tablet-height, var(--be-carousel-tablet-height, 440px));
	}
}

@media (max-width: 767px) {
	.be-carousel { gap: 32px; }

	.be-carousel__track { gap: var(--be-carousel-mobile-gap, 24px); }

	.be-carousel-card {
		flex-basis: var(--be-carousel-mobile-card-basis, calc(84vw - 47.04px));
		width: var(--be-carousel-mobile-card-basis, calc(84vw - 47.04px));
		height: var(--be-card-mobile-height, var(--be-carousel-mobile-height, 620px));
		border-radius: var(--be-card-mobile-radius, var(--be-carousel-mobile-radius, 20px));
	}

	.be-carousel-card__top {
		top: var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px));
		right: var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px));
		left: var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px));
	}

	.be-carousel-card__content {
		padding: calc(var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px)) + 72px) var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px)) var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px));
	}

	.be-carousel-card__back-content { padding: var(--be-card-mobile-padding, var(--be-carousel-mobile-padding, 24px)); }

	.be-carousel-card__eyebrow,
	.be-carousel-card__back-label,
	.be-carousel-card__slot--text {
		font-size: var(--be-slot-font-size, var(--be-card-mobile-eyebrow-size, var(--be-carousel-mobile-eyebrow-size, var(--be-card-eyebrow-size, var(--be-carousel-eyebrow-size, inherit)))));
	}

	.be-carousel-card__title,
	.be-carousel-card__back-title {
		font-size: var(--be-card-mobile-title-size, var(--be-carousel-mobile-title-size, var(--be-card-title-size, var(--be-carousel-title-size, inherit))));
	}

	.be-carousel-card__description,
	.be-carousel-card__back-description {
		font-size: var(--be-card-mobile-description-size, var(--be-carousel-mobile-description-size, var(--be-card-description-size, var(--be-carousel-description-size, inherit))));
	}

	.be-carousel-card__link,
	.be-carousel-card__source {
		font-size: var(--be-card-mobile-link-size, var(--be-carousel-mobile-link-size, var(--be-card-link-size, var(--be-carousel-link-size, inherit))));
	}

	.be-carousel-card__slot--number { font-size: var(--be-slot-font-size, 46px); }

	.be-carousel--navigation-responsive .be-carousel__arrow { display: none; }
	.be-carousel--navigation-responsive .be-carousel__mobile-navigation { display: flex; }
	.be-carousel--navigation-arrows .be-carousel__arrow,
	.be-carousel--navigation-both .be-carousel__arrow { display: inline-flex; }
}

@media (min-width: 768px) {
	.be-carousel--navigation-progress .be-carousel__arrow { display: none; }
	.be-carousel--navigation-responsive .be-carousel__mobile-navigation { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.be-carousel__viewport { scroll-behavior: auto; }
	.be-carousel-card__flipper,
	.be-carousel__progress-value,
	.be-carousel__arrow { transition: none !important; }
}

/* CTA and reverse-source styling is scoped tightly so theme link rules cannot override it. */
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):hover,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):focus,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):focus-visible,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__flip-cue:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__flip-cue:not(.be-button):hover,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__flip-cue:not(.be-button):focus,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__flip-cue:not(.be-button):focus-visible {
	color: var(--be-card-text, var(--be-carousel-default-text, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button):hover,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button):focus,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button):focus-visible {
	color: var(--be-card-back-text, var(--be-carousel-default-text, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__link:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__source:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__flip-cue:not(.be-button) {
	gap: 8px !important;
	column-gap: 8px !important;
	text-decoration: none !important;
}

.be-carousel .be-carousel-card .be-carousel-card__flip-cue:not(.be-button) {
	font-family: inherit;
	font-size: var(--be-card-link-size, var(--be-carousel-link-size, inherit));
	font-weight: inherit;
	line-height: 1;
}

.be-carousel .be-carousel-card .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__source-icon {
	flex: 0 0 auto;
	line-height: 1 !important;
	color: inherit !important;
	text-decoration: none !important;
}

.be-carousel .be-carousel-card .be-carousel-card__link-icon {
	font-size: var(--be-card-link-icon-size, var(--be-carousel-link-icon-size, 1em)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__source-icon {
	font-size: var(--be-card-source-icon-size, var(--be-carousel-source-icon-size, 1em)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__link-text,
.be-carousel .be-carousel-card .be-carousel-card__source-text {
	color: inherit !important;
}

.be-carousel .be-carousel-card .be-carousel-card__link-icon i,
.be-carousel .be-carousel-card .be-carousel-card__source-icon i {
	font-size: inherit !important;
	line-height: inherit !important;
	color: inherit !important;
	text-decoration: none !important;
}

/* =========================================================
   Carousel 1.3.21: linked-media type and active-left snapping
   ========================================================= */

/* Parent-width mode is measured from the shortcode parent. Optional bleed only
   expands the scroll viewport; card widths continue to use the parent width. */
.be-carousel--width-parent {
	--be-carousel-content-width: 100%;
	--be-carousel-content-edge: 0px;
	--be-carousel-parent-bleed-left: 0px;
	--be-carousel-parent-bleed-right: 0px;
	overflow: visible;
}

.be-carousel--width-parent .be-carousel__shell,
.be-carousel--width-parent.be-carousel--overflow-bleed .be-carousel__shell {
	left: auto;
	width: 100%;
	max-width: none;
	margin-right: 0;
	margin-left: 0;
	overflow: visible;
}

.be-carousel--width-parent .be-carousel__viewport,
.be-carousel--width-parent.be-carousel--overflow-bleed .be-carousel__viewport {
	width: calc(100% + var(--be-carousel-parent-bleed-left, 0px) + var(--be-carousel-parent-bleed-right, 0px));
	margin-right: calc(-1 * var(--be-carousel-parent-bleed-right, 0px));
	margin-left: calc(-1 * var(--be-carousel-parent-bleed-left, 0px));
	scroll-padding-right: var(--be-carousel-parent-bleed-right, 0px);
	scroll-padding-left: var(--be-carousel-parent-bleed-left, 0px);
}

.be-carousel--width-parent .be-carousel__track,
.be-carousel--width-parent.be-carousel--overflow-bleed .be-carousel__track {
	padding-right: 0;
	padding-left: var(--be-carousel-parent-bleed-left, 0px);
}

/* Natural end alignment for a parent-width carousel stops the final card on
   the parent's right edge even when the scroll viewport bleeds farther right. */
.be-carousel--width-parent.be-carousel--snap-natural .be-carousel__track {
	padding-right: var(--be-carousel-natural-end-spacer, 0px);
}

.be-carousel--width-parent .be-carousel-card {
	flex-basis: var(--be-carousel-parent-card-basis, var(--be-carousel-card-basis));
	width: var(--be-carousel-parent-card-basis, var(--be-carousel-card-basis));
}

.be-carousel--width-parent .be-carousel__mobile-navigation,
.be-carousel--width-parent .be-carousel__index-navigation {
	width: 100%;
	max-width: none;
	margin-right: 0;
	margin-left: 0;
}

@media (max-width: 767px) {
	.be-carousel--width-parent .be-carousel-card {
		flex-basis: var(--be-carousel-parent-mobile-card-basis, var(--be-carousel-mobile-card-basis));
		width: var(--be-carousel-parent-mobile-card-basis, var(--be-carousel-mobile-card-basis));
	}
}

/* Optional trailing space lets every card, including the final one, snap left. */
.be-carousel--snap-left .be-carousel__track::after {
	content: "";
	display: block;
	flex: 0 0 var(--be-carousel-end-spacer, 0px);
	width: var(--be-carousel-end-spacer, 0px);
	height: 1px;
	pointer-events: none;
}

/* Numbered rail navigation. */
.be-carousel__index-navigation {
	position: relative;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: var(--be-carousel-index-gap, 18px);
	width: var(--be-carousel-content-width);
	max-width: var(--be-carousel-container-max, 1160px);
	min-width: 0;
	margin-inline: auto;
	padding: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
}

.be-carousel__index-navigation::-webkit-scrollbar {
	display: none;
}

.be-carousel__index-line {
	position: absolute;
	z-index: 0;
	top: 50%;
	right: calc(var(--be-carousel-index-button-width, 70px) / 2);
	left: calc(var(--be-carousel-index-button-width, 70px) / 2);
	height: var(--be-carousel-index-line-height, 7px);
	border-radius: 999px;
	background: var(--be-carousel-index-line-colour, #9b9999);
	transform: translateY(-50%);
	pointer-events: none;
}

.be-carousel__index-button {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 var(--be-carousel-index-button-width, 70px);
	width: var(--be-carousel-index-button-width, 70px);
	height: var(--be-carousel-index-button-height, 54px);
	margin: 0;
	padding: 0 10px;
	border: 0;
	border-radius: var(--be-carousel-index-radius, 14px);
	background: var(--be-carousel-index-button-bg, #f4f0ed);
	box-shadow: none;
	color: var(--be-carousel-index-text, #252525);
	font: inherit;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	transform: none;
	transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}

.be-carousel__index-button:hover,
.be-carousel__index-button:focus-visible,
.be-carousel__index-button.is-active {
	background: var(--be-carousel-index-button-active-bg, #f4f0ed);
	color: var(--be-carousel-index-active-text, #252525);
	transform: none;
}

.be-carousel__index-button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.be-carousel--navigation-index .be-carousel__index-navigation,
.be-carousel--navigation-index-responsive .be-carousel__index-navigation {
	display: flex;
}

.be-carousel[data-be-can-scroll="false"] .be-carousel__index-navigation {
	display: none !important;
}

@media (max-width: 767px) {
	.be-carousel--navigation-index-responsive .be-carousel__index-navigation {
		display: none;
	}

	.be-carousel--navigation-index-responsive .be-carousel__mobile-navigation {
		display: flex;
	}
}

@media (min-width: 768px) {
	.be-carousel--navigation-index-responsive .be-carousel__mobile-navigation {
		display: none;
	}
}


/* True linked-image cross-fade: the incoming image sits over the current one,
   so the target background colour is never exposed between images. */
.be-carousel__linked-crossfade {
	position: absolute;
	z-index: 1;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	pointer-events: none;
}

/* Inline SVG paint is preserved or overridden directly in the sanitised
   markup. This supports attributes and class-based Illustrator CSS without
   relying on broad CSS fill/stroke rules. */

/* Progressive index rail: visited/current numbers gather on the left while
   future numbers remain gathered on the right. JavaScript only sets the
   horizontal coordinate; CSS supplies the smooth movement. */
.be-carousel__index-navigation[data-be-index-progressive="true"] {
	justify-content: flex-start;
	overflow: visible;
}

.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button,
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button:hover,
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button:focus-visible,
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button.is-active {
	position: absolute;
	top: 50%;
	left: 0;
	margin: 0;
	transform: translate3d(var(--be-index-x, 0px), -50%, 0);
	transition: none;
}

/* Motion is enabled only after the first measured layout. This prevents the
   numbered blocks animating up and across when the page initially appears. */
.be-carousel[data-be-index-motion-ready="true"]
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button,
.be-carousel[data-be-index-motion-ready="true"]
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button:hover,
.be-carousel[data-be-index-motion-ready="true"]
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button:focus-visible,
.be-carousel[data-be-index-motion-ready="true"]
.be-carousel__index-navigation[data-be-index-progressive="true"] .be-carousel__index-button.is-active {
	transition: transform .32s ease, background-color .2s ease, color .2s ease, opacity .2s ease;
}

/* Keep indexed navigation fully inside narrow screens. The saved desktop
   dimensions remain the upper limit, while mobile uses smaller responsive
   blocks and gaps. JavaScript measures these rendered sizes when positioning
   progressive buttons, so the rail still reaches the full available width. */
@media (max-width: 767px) {
	.be-carousel__index-navigation {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		gap: min(var(--be-carousel-index-gap, 18px), 10px);
	}

	.be-carousel__index-button {
		flex-basis: min(var(--be-carousel-index-button-width, 70px), 58px);
		width: min(var(--be-carousel-index-button-width, 70px), 58px);
		height: min(var(--be-carousel-index-button-height, 54px), 46px);
		padding-inline: 6px;
		border-radius: min(var(--be-carousel-index-radius, 14px), 12px);
	}

	.be-carousel__index-line {
		right: 29px;
		left: 29px;
	}
}

/* Linked-media index rails also control the external image, so they remain
   available even when a left/both bleed makes every card visible at once. */
.be-carousel--type-linked-media.be-carousel--navigation-index[data-be-can-scroll="false"] .be-carousel__index-navigation {
	display: flex !important;
}

@media (min-width: 768px) {
	.be-carousel--type-linked-media.be-carousel--navigation-index-responsive[data-be-can-scroll="false"] .be-carousel__index-navigation {
		display: flex !important;
	}
}


/* =========================================================
   Flexible AQI builder shortcode
   ========================================================= */
.be-aqi-builder-widget,
.be-aqi-builder-widget * {
	box-sizing: border-box;
}

.be-aqi-builder-widget {
	display: flex;
	flex-direction: column;
	gap: var(--be-aqi-outer-gap, 24px);
	width: 100%;
	min-width: 0;
	color: var(--be-aqi-outer-text, #4e4e50);
	font-family: var(--be-font-sans);
}

.be-aqi-builder-widget__cards {
	display: flex;
	align-items: stretch;
	gap: var(--be-aqi-gap, 12px);
	width: 100%;
	min-width: 0;
}

.be-aqi-builder-widget--desktop-inline .be-aqi-builder-widget__cards { flex-direction: row; }
.be-aqi-builder-widget--desktop-stacked .be-aqi-builder-widget__cards { flex-direction: column; }

.be-aqi-box {
	container-type: inline-size;
	position: relative;
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	min-height: var(--be-aqi-min-height, 220px);
	padding: var(--be-aqi-padding, 18px);
	overflow: hidden;
	border-radius: var(--be-aqi-radius, 18px);
	background: var(--be-aqi-box-bg, #f0eae6);
	color: var(--be-aqi-box-text, #4e4e50);
}

.be-aqi-box__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-template-rows: auto minmax(0, 1fr) auto auto;
	gap: clamp(7px, 2.2cqw, 16px);
	width: 100%;
	min-width: 0;
}

.be-aqi-slot,
.be-aqi-outer-slot {
	display: flex;
	align-items: center;
	min-width: 0;
	font-size: var(--be-aqi-text-size, 12px);
	line-height: 1.18;
}

.be-aqi-slot--top_left,
.be-aqi-slot--center_left,
.be-aqi-slot--lower_left,
.be-aqi-slot--bottom_left { justify-content: flex-start; text-align: left; }
.be-aqi-slot--top_center,
.be-aqi-slot--center,
.be-aqi-slot--lower_center,
.be-aqi-slot--bottom_center { justify-content: center; text-align: center; }
.be-aqi-slot--top_right,
.be-aqi-slot--center_right,
.be-aqi-slot--lower_right,
.be-aqi-slot--bottom_right { justify-content: flex-end; text-align: right; }

.be-aqi-slot--top_left,
.be-aqi-slot--top_center,
.be-aqi-slot--top_right { grid-row: 1; align-self: start; }
.be-aqi-slot--center_left,
.be-aqi-slot--center,
.be-aqi-slot--center_right { grid-row: 2; align-self: center; }
.be-aqi-slot--lower_left,
.be-aqi-slot--lower_center,
.be-aqi-slot--lower_right { grid-row: 3; align-self: end; }
.be-aqi-slot--bottom_left,
.be-aqi-slot--bottom_center,
.be-aqi-slot--bottom_right { grid-row: 4; align-self: end; }

.be-aqi-slot--top_left,
.be-aqi-slot--center_left,
.be-aqi-slot--lower_left,
.be-aqi-slot--bottom_left { grid-column: 1; }
.be-aqi-slot--top_center,
.be-aqi-slot--center,
.be-aqi-slot--lower_center,
.be-aqi-slot--bottom_center { grid-column: 2; }
.be-aqi-slot--top_right,
.be-aqi-slot--center_right,
.be-aqi-slot--lower_right,
.be-aqi-slot--bottom_right { grid-column: 3; }

.be-aqi-slot--top_left.be-aqi-slot--span-2,
.be-aqi-slot--center_left.be-aqi-slot--span-2,
.be-aqi-slot--lower_left.be-aqi-slot--span-2,
.be-aqi-slot--bottom_left.be-aqi-slot--span-2 { grid-column: 1 / 3; }
.be-aqi-slot--top_center.be-aqi-slot--span-2,
.be-aqi-slot--center.be-aqi-slot--span-2,
.be-aqi-slot--lower_center.be-aqi-slot--span-2,
.be-aqi-slot--bottom_center.be-aqi-slot--span-2,
.be-aqi-slot--top_right.be-aqi-slot--span-2,
.be-aqi-slot--center_right.be-aqi-slot--span-2,
.be-aqi-slot--lower_right.be-aqi-slot--span-2,
.be-aqi-slot--bottom_right.be-aqi-slot--span-2 { grid-column: 2 / 4; }
.be-aqi-slot--span-3 { grid-column: 1 / 4 !important; }

.be-aqi-builder-widget__outer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, auto);
	align-items: center;
	gap: 16px;
	width: 100%;
	min-width: 0;
	font-size: var(--be-aqi-outer-text-size, 10px);
}
.be-aqi-builder-widget__outer--top { align-items: baseline; }
.be-aqi-outer-slot--top_left,
.be-aqi-outer-slot--bottom_left { justify-content: flex-start; }
.be-aqi-outer-slot--top_right,
.be-aqi-outer-slot--bottom_right { justify-content: flex-end; text-align: right; }
.be-aqi-outer-slot--top_left .be-aqi-custom-text { font-size: var(--be-aqi-outer-title-size, 16px); font-weight: 500; }

.be-aqi-identity,
.be-aqi-reading,
.be-aqi-reading__unit,
.be-aqi-metrics,
.be-aqi-metric,
.be-aqi-refresh,
.be-aqi-scale {
	display: flex;
	min-width: 0;
}

.be-aqi-identity,
.be-aqi-metric,
.be-aqi-refresh {
	align-items: center;
	gap: .48em;
}

.be-aqi-identity,
.be-aqi-label {
	font-size: var(--be-aqi-label-size, 14px);
	line-height: 1.1;
}

.be-aqi-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 var(--be-aqi-icon-size, 18px);
	width: var(--be-aqi-icon-size, 18px);
	height: var(--be-aqi-icon-size, 18px);
	color: currentColor;
}
.be-aqi-icon svg,
.be-aqi-icon .be-icon {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
}

.be-aqi-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .65em 1em;
	border-radius: .8em;
	background: rgba(255,255,255,.48);
	white-space: nowrap;
}

.be-aqi-meta,
.be-aqi-status,
.be-aqi-source,
.be-aqi-description,
.be-aqi-range-name,
.be-aqi-custom-text { min-width: 0; }

.be-aqi-reading {
	align-items: flex-end;
	gap: clamp(6px, 2cqw, 14px);
	max-width: 100%;
	flex-wrap: wrap;
}

.be-aqi-value {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	font-size: var(--be-aqi-number-size, 42px);
	font-variant-numeric: tabular-nums lining-nums;
	font-weight: 700 !important;
	letter-spacing: -.055em;
	/* Keep tall and bold Aktiv Grotesk numerals inside their paint box without
	 * changing the number/unit alignment. The compensated margins preserve
	 * the visible layout while giving gradient-clipped glyphs room to render. */
	line-height: 1;
	padding-top: .08em;
	margin-top: -.08em;
	padding-inline: .075em;
	margin-inline: -.075em;
	overflow: visible;
	color: var(--be-aqi-number-colour, #000);
	white-space: nowrap;
}

.be-aqi-box--number-gradient .be-aqi-value {
	background: linear-gradient(180deg, var(--be-aqi-number-top), var(--be-aqi-number-bottom));
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.be-aqi-reading__unit {
	align-items: baseline;
	gap: .3em;
	flex-wrap: wrap;
	padding-bottom: .06em;
	font-size: var(--be-aqi-unit-size, 12px);
	line-height: 1.05;
	white-space: normal;
}
.be-aqi-reading__unit strong { font: inherit; font-weight: 500; font-size: 1.35em; }
.be-aqi-reading__unit small { font: inherit; font-size: 1em; }

.be-aqi-scale {
	flex-direction: column;
	align-items: stretch;
	gap: .8em;
	width: 100%;
}
.be-aqi-scale__bar {
	position: relative;
	display: block;
	width: 100%;
	height: var(--be-aqi-scale-height, 6px);
	border-radius: 999px;
	background: var(--be-aqi-scale-gradient);
}
.be-aqi-scale__bar i {
	position: absolute;
	top: 50%;
	left: clamp(7px, var(--be-aqi-marker), calc(100% - 7px));
	width: max(14px, calc(var(--be-aqi-scale-height) * 2));
	height: max(14px, calc(var(--be-aqi-scale-height) * 2));
	border-radius: 50%;
	background: #050505;
	transform: translate(-50%, -50%);
}
.be-aqi-scale small { font: inherit; font-size: .85em; }

.be-aqi-metrics { align-items: center; gap: clamp(12px, 4cqw, 34px); flex-wrap: wrap; }
.be-aqi-metric { font-size: var(--be-aqi-metric-size, 12px); white-space: nowrap; }

.be-aqi-box--text-gradient .be-aqi-label,
.be-aqi-box--text-gradient .be-aqi-identity > span:last-child,
.be-aqi-box--text-gradient .be-aqi-meta,
.be-aqi-box--text-gradient .be-aqi-badge,
.be-aqi-box--text-gradient .be-aqi-status,
.be-aqi-box--text-gradient .be-aqi-source,
.be-aqi-box--text-gradient .be-aqi-description,
.be-aqi-box--text-gradient .be-aqi-range-name,
.be-aqi-box--text-gradient .be-aqi-custom-text,
.be-aqi-box--text-gradient .be-aqi-reading__unit,
.be-aqi-box--text-gradient .be-aqi-metric > span:last-child {
	background: linear-gradient(180deg, var(--be-aqi-box-text-top), var(--be-aqi-box-text-bottom));
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.be-aqi-builder-widget .button-tertiary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	width: auto !important;
	margin: 0 !important;
	padding: 8px 9px 8px 16px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #d2cfcc !important;
	color: #111 !important;
	font: inherit !important;
	font-size: var(--be-aqi-outer-text-size, 10px) !important;
	line-height: 1 !important;
	text-decoration: none !important;
	transform: none !important;
}
.be-aqi-builder-widget .button-tertiary:hover,
.be-aqi-builder-widget .button-tertiary:focus-visible { background:#111 !important; color:#fff !important; }
.be-aqi-builder-widget .be-cta-circle { display:inline-flex; width:22px; height:22px; align-items:center; justify-content:center; border-radius:50%; background:#050505; color:#fff; }
.be-aqi-builder-widget .button-tertiary:hover .be-cta-circle { background:#fff; color:#050505; }

@container (max-width: 300px) {
	.be-aqi-reading { align-items: flex-start; flex-direction: column; }
	.be-aqi-reading__unit { flex-direction: column; align-items: flex-start; gap: .05em; }
	.be-aqi-box__grid { gap: 8px; }
}

@media (max-width: 767px) {
	.be-aqi-builder-widget__cards { gap: var(--be-aqi-mobile-gap, 12px); }
	.be-aqi-builder-widget--mobile-inline .be-aqi-builder-widget__cards { flex-direction: row; }
	.be-aqi-builder-widget--mobile-stacked .be-aqi-builder-widget__cards { flex-direction: column; }
	.be-aqi-box {
		min-height: var(--be-aqi-mobile-min-height, 180px);
		padding: var(--be-aqi-mobile-padding, 12px);
	}
	.be-aqi-slot,
	.be-aqi-outer-slot { font-size: var(--be-aqi-mobile-text-size, 10px); }
	.be-aqi-identity,
	.be-aqi-label { font-size: var(--be-aqi-mobile-label-size, 12px); }
	.be-aqi-value { font-size: var(--be-aqi-mobile-number-size, 42px); }
	.be-aqi-reading__unit { font-size: var(--be-aqi-mobile-unit-size, 10px); }
	.be-aqi-metric { font-size: var(--be-aqi-mobile-metric-size, 10px); }
	.be-aqi-icon { flex-basis: var(--be-aqi-mobile-icon-size, 16px); width:var(--be-aqi-mobile-icon-size,16px); height:var(--be-aqi-mobile-icon-size,16px); }
	.be-aqi-slot--hide-mobile { display: none !important; }
}

@media (min-width: 768px) {
	.be-aqi-slot--hide-desktop { display: none !important; }
}

/* Improve the legacy wide-card layout without changing its shortcode API. */
.be-widget--layout-wide .be-card {
	min-height: 184px;
	padding: clamp(16px, 2.5cqw, 24px);
	gap: clamp(12px, 1.8cqw, 18px);
}
.be-widget--layout-wide .be-card-reading-row { align-items: center; }
.be-widget--layout-wide .be-inline-reading { overflow: visible; flex-wrap: wrap; }
.be-widget--layout-wide .be-card-bottom-row { gap: clamp(12px, 3cqw, 36px); }

/* 1.3.28: the numbered index rail line spans the complete navigation width. */
.be-carousel__index-line {
	left: 0 !important;
	right: 0 !important;
}

/* =========================================================
   1.3.29 AQI responsive reading refinements
   ========================================================= */
.be-aqi-reading {
	flex-wrap: nowrap;
	align-items: center;
}
.be-aqi-reading__unit {
	display: inline-flex;
	min-width: 0;
	flex: 0 1 auto;
}
.be-aqi-reading__unit--desktop-inline {
	flex-direction: row;
	align-items: baseline;
	gap: .3em;
}
.be-aqi-reading__unit--desktop-stacked {
	flex-direction: column;
	align-items: flex-start;
	gap: .04em;
}

/* Keep the units beside the number at narrow card widths. */
@container (max-width: 300px) {
	.be-aqi-reading {
		flex-direction: row;
		align-items: center;
		flex-wrap: nowrap;
	}
	.be-aqi-reading__unit { min-width: 0; }
}

@media (max-width: 767px) {
	.be-aqi-reading__unit--mobile-inline {
		flex-direction: row;
		align-items: baseline;
		gap: .3em;
	}
	.be-aqi-reading__unit--mobile-stacked {
		flex-direction: column;
		align-items: flex-start;
		gap: .04em;
	}
}

/* =========================================================
   1.3.30 saved AQI widgets: header / middle / footer layout
   ========================================================= */
.be-aqi-box__rows {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: flex-start;
	gap: 0;
	width: 100%;
	min-width: 0;
}
.be-aqi-content-row--header + .be-aqi-content-row--middle {
	margin-top: var(--be-aqi-header-middle-gap, var(--be-aqi-row-gap, 18px));
}
.be-aqi-content-row--middle + .be-aqi-content-row--footer {
	margin-top: var(--be-aqi-middle-footer-gap, var(--be-aqi-row-gap, 18px));
}
.be-aqi-content-row--header + .be-aqi-content-row--footer {
	margin-top: var(--be-aqi-middle-footer-gap, var(--be-aqi-row-gap, 18px));
}
.be-aqi-content-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--be-aqi-element-gap, 10px);
	width: 100%;
	min-width: 0;
}
.be-aqi-content-row--header { align-items: center; }
.be-aqi-content-row--middle { align-items: center; }
.be-aqi-content-row--footer { align-items: flex-end; }
.be-aqi-content-row__group {
	display: flex;
	align-items: center;
	gap: var(--be-aqi-element-gap, 10px);
	min-width: 0;
	flex-wrap: wrap;
}
.be-aqi-content-row__group--left { justify-content: flex-start; text-align: left; flex: 1 1 auto; }
.be-aqi-content-row__group--right { justify-content: flex-end; text-align: right; flex: 0 1 auto; margin-left: auto; }
.be-aqi-row-element {
	display: flex;
	align-items: center;
	min-width: 0;
	font-size: var(--be-aqi-body-size, 10px);
	line-height: 1.18;
}
.be-aqi-row-element--full { flex: 1 0 100%; width: 100%; }
.be-aqi-row-element--identity,
.be-aqi-row-element--label,
.be-aqi-row-element--reading { font-size: var(--be-aqi-heading-size, 10px); }
.be-aqi-row-element--badge,
.be-aqi-row-element--meta,
.be-aqi-row-element--source,
.be-aqi-row-element--refresh,
.be-aqi-row-element--scale { font-size: var(--be-aqi-small-size, 7px); }
.be-aqi-row-element .be-aqi-identity,
.be-aqi-row-element .be-aqi-label { font-size: inherit; }
.be-aqi-row-element .be-aqi-metric,
.be-aqi-row-element .be-aqi-description,
.be-aqi-row-element .be-aqi-status,
.be-aqi-row-element .be-aqi-custom-text,
.be-aqi-row-element .be-aqi-range-name { font-size: var(--be-aqi-body-size, 10px); }
.be-aqi-row-element .be-aqi-meta,
.be-aqi-row-element .be-aqi-badge,
.be-aqi-row-element .be-aqi-source,
.be-aqi-row-element .be-aqi-refresh,
.be-aqi-row-element .be-aqi-scale small { font-size: var(--be-aqi-small-size, 7px); }

/* Keep the complete unit group beside the reading and align its bottom edge
   with the bottom edge of the large number. */
.be-aqi-box__rows .be-aqi-reading {
	display: inline-flex;
	align-items: flex-end !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: clamp(7px, 2cqw, 15px);
	max-width: 100%;
}
.be-aqi-box__rows .be-aqi-reading__unit {
	display: inline-flex;
	align-self: flex-end;
	justify-content: flex-end;
	font-size: var(--be-aqi-body-size, 10px);
	line-height: 1;
	padding-bottom: 0;
}
.be-aqi-box__rows .be-aqi-reading__unit strong {
	font-size: 1.15em;
	font-weight: 500;
	line-height: 1;
}
.be-aqi-box__rows .be-aqi-reading__unit small {
	font-size: .72em;
	line-height: 1;
}
.be-aqi-box__rows .be-aqi-reading__unit--desktop-inline { flex-direction: row; align-items: baseline; gap: .38em; }
.be-aqi-box__rows .be-aqi-reading__unit--desktop-stacked { flex-direction: column; align-items: flex-start; gap: .18em; }

@media (max-width: 767px) {
	.be-aqi-content-row--header + .be-aqi-content-row--middle {
		margin-top: var(--be-aqi-mobile-header-middle-gap, var(--be-aqi-mobile-row-gap, 14px));
	}
	.be-aqi-content-row--middle + .be-aqi-content-row--footer,
	.be-aqi-content-row--header + .be-aqi-content-row--footer {
		margin-top: var(--be-aqi-mobile-middle-footer-gap, var(--be-aqi-mobile-row-gap, 14px));
	}
	.be-aqi-content-row,
	.be-aqi-content-row__group { gap: var(--be-aqi-mobile-element-gap, 8px); }
	.be-aqi-row-element { font-size: var(--be-aqi-mobile-body-size, 10px); }
	.be-aqi-row-element--identity,
	.be-aqi-row-element--label,
	.be-aqi-row-element--reading { font-size: var(--be-aqi-mobile-heading-size, 10px); }
	.be-aqi-row-element--badge,
	.be-aqi-row-element--meta,
	.be-aqi-row-element--source,
	.be-aqi-row-element--refresh,
	.be-aqi-row-element--scale { font-size: var(--be-aqi-mobile-small-size, 7px); }
	.be-aqi-row-element .be-aqi-metric,
	.be-aqi-row-element .be-aqi-description,
	.be-aqi-row-element .be-aqi-status,
	.be-aqi-row-element .be-aqi-custom-text,
	.be-aqi-row-element .be-aqi-range-name { font-size: var(--be-aqi-mobile-body-size, 10px); }
	.be-aqi-row-element .be-aqi-meta,
	.be-aqi-row-element .be-aqi-badge,
	.be-aqi-row-element .be-aqi-source,
	.be-aqi-row-element .be-aqi-refresh,
	.be-aqi-row-element .be-aqi-scale small { font-size: var(--be-aqi-mobile-small-size, 7px); }
	.be-aqi-box__rows .be-aqi-reading__unit { font-size: var(--be-aqi-mobile-body-size, 10px); }
	.be-aqi-box__rows .be-aqi-reading__unit--mobile-inline { flex-direction: row; align-items: baseline; gap: .38em; }
	.be-aqi-box__rows .be-aqi-reading__unit--mobile-stacked { flex-direction: column; align-items: flex-start; gap: .18em; }
}

/* =========================================================
   1.3.34 AQI classic spacing and reading alignment
   ========================================================= */
/* The gradient bar is now visual-only. Units always live beside the reading. */
.be-aqi-builder-widget .be-aqi-scale {
	gap: 0 !important;
}
.be-aqi-builder-widget .be-aqi-scale > small {
	display: none !important;
}

/* Keep the reading compact and consistently left aligned in both cards. */
.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading {
	display: inline-flex !important;
	align-items: flex-end !important;
	justify-content: flex-start !important;
	column-gap: 12px !important;
	row-gap: 0 !important;
	width: auto !important;
	max-width: 100% !important;
	flex: 0 1 auto !important;
	flex-wrap: nowrap !important;
}
.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit {
	display: inline-flex !important;
	align-self: flex-end !important;
	align-items: flex-start !important;
	justify-content: flex-end !important;
	flex: 0 0 auto !important;
	min-width: 0 !important;
	margin: 0 0 .08em !important;
	padding: 0 !important;
	font-size: var(--be-aqi-unit-size, 10px) !important;
	line-height: 1 !important;
	text-align: left !important;
	white-space: nowrap !important;
}
.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit strong {
	display: block;
	font: inherit !important;
	font-size: 1.32em !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
}
.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit small {
	display: block;
	font: inherit !important;
	font-size: .76em !important;
	line-height: 1 !important;
	white-space: nowrap !important;
}
.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit--desktop-inline {
	flex-direction: row !important;
	align-items: baseline !important;
	gap: .42em !important;
}
.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit--desktop-stacked {
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: .22em !important;
}

/* A narrow card keeps the unit group beside the number but stacks its two lines. */
@container (max-width: 280px) {
	.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading {
		column-gap: 9px !important;
	}
	.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: .18em !important;
		white-space: normal !important;
	}
}

@media (max-width: 767px) {
	.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit {
		font-size: var(--be-aqi-mobile-unit-size, 9px) !important;
	}
	.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit--mobile-inline {
		flex-direction: row !important;
		align-items: baseline !important;
		gap: .42em !important;
	}
	.be-aqi-builder-widget .be-aqi-box__rows .be-aqi-reading__unit--mobile-stacked {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: .18em !important;
	}
}

/* =========================================================
   1.3.35 independent wide / compact AQI card compositions
   ========================================================= */
.be-aqi-box--rows {
	padding: 0;
	min-height: 0;
	overflow: hidden;
}
.be-aqi-box--rows > .be-aqi-box__rows {
	min-height: var(--be-aqi-min-height, 220px);
	padding: var(--be-aqi-padding, 18px);
}
.be-aqi-box__rows--compact {
	display: none;
}

/* A row may wrap when its two groups cannot coexist. Content is never clipped. */
.be-aqi-content-row {
	flex-wrap: wrap;
}
.be-aqi-content-row__group--left {
	min-width: 0;
}
.be-aqi-content-row__group--right {
	flex: 0 0 auto;
	width: max-content;
	max-width: 100%;
	min-width: 0;
}
.be-aqi-row-element--status,
.be-aqi-row-element .be-aqi-status {
	width: max-content;
	max-width: 100%;
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
	overflow-wrap: anywhere;
}

/* Shared compact-card values. These are applied by the single card's own
   container width, not by the width of the two-card wrapper or viewport. */
.be-aqi-box__rows--compact {
	min-height: var(--be-aqi-mobile-min-height, 180px) !important;
	padding: var(--be-aqi-mobile-padding, 12px) !important;
}
.be-aqi-box__rows--compact .be-aqi-content-row--header + .be-aqi-content-row--middle {
	margin-top: var(--be-aqi-mobile-header-middle-gap, 14px);
}
.be-aqi-box__rows--compact .be-aqi-content-row--middle + .be-aqi-content-row--footer,
.be-aqi-box__rows--compact .be-aqi-content-row--header + .be-aqi-content-row--footer {
	margin-top: var(--be-aqi-mobile-middle-footer-gap, 14px);
}
.be-aqi-box__rows--compact .be-aqi-content-row,
.be-aqi-box__rows--compact .be-aqi-content-row__group {
	gap: var(--be-aqi-mobile-element-gap, 8px);
}
.be-aqi-box__rows--compact .be-aqi-row-element {
	font-size: var(--be-aqi-mobile-body-size, 10px);
}
.be-aqi-box__rows--compact .be-aqi-row-element--identity,
.be-aqi-box__rows--compact .be-aqi-row-element--label,
.be-aqi-box__rows--compact .be-aqi-row-element--reading {
	font-size: var(--be-aqi-mobile-heading-size, 10px);
}
.be-aqi-box__rows--compact .be-aqi-row-element--badge,
.be-aqi-box__rows--compact .be-aqi-row-element--meta,
.be-aqi-box__rows--compact .be-aqi-row-element--source,
.be-aqi-box__rows--compact .be-aqi-row-element--refresh,
.be-aqi-box__rows--compact .be-aqi-row-element--scale {
	font-size: var(--be-aqi-mobile-small-size, 7px);
}
.be-aqi-box__rows--compact .be-aqi-row-element .be-aqi-metric,
.be-aqi-box__rows--compact .be-aqi-row-element .be-aqi-description,
.be-aqi-box__rows--compact .be-aqi-row-element .be-aqi-status,
.be-aqi-box__rows--compact .be-aqi-row-element .be-aqi-custom-text,
.be-aqi-box__rows--compact .be-aqi-row-element .be-aqi-range-name {
	font-size: var(--be-aqi-mobile-body-size, 10px);
}
.be-aqi-box__rows--compact .be-aqi-value {
	font-size: var(--be-aqi-mobile-number-size, 42px);
}
.be-aqi-box__rows--compact .be-aqi-reading__unit {
	font-size: var(--be-aqi-mobile-unit-size, 9px) !important;
}
.be-aqi-box__rows--compact .be-aqi-icon {
	flex-basis: var(--be-aqi-mobile-icon-size, 16px);
	width: var(--be-aqi-mobile-icon-size, 16px);
	height: var(--be-aqi-mobile-icon-size, 16px);
}
.be-aqi-box__rows--compact .be-aqi-reading__unit--mobile-inline {
	flex-direction: row !important;
	align-items: baseline !important;
	gap: .42em !important;
}
.be-aqi-box__rows--compact .be-aqi-reading__unit--mobile-stacked {
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: .18em !important;
}

@container (max-width: 220px) {
	.be-aqi-box--compact-at-220 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-220 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 240px) {
	.be-aqi-box--compact-at-240 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-240 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 260px) {
	.be-aqi-box--compact-at-260 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-260 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 280px) {
	.be-aqi-box--compact-at-280 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-280 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 300px) {
	.be-aqi-box--compact-at-300 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-300 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 320px) {
	.be-aqi-box--compact-at-320 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-320 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 340px) {
	.be-aqi-box--compact-at-340 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-340 > .be-aqi-box__rows--compact { display: flex; }
}

@container (max-width: 360px) {
	.be-aqi-box--compact-at-360 > .be-aqi-box__rows--wide { display: none; }
	.be-aqi-box--compact-at-360 > .be-aqi-box__rows--compact { display: flex; }
}

/* Wide-row values stay wide even on a narrow viewport; the box container,
   rather than the viewport, decides which composition is active. */
.be-aqi-box__rows--wide .be-aqi-content-row--header + .be-aqi-content-row--middle {
	margin-top: var(--be-aqi-header-middle-gap, 18px);
}
.be-aqi-box__rows--wide .be-aqi-content-row--middle + .be-aqi-content-row--footer,
.be-aqi-box__rows--wide .be-aqi-content-row--header + .be-aqi-content-row--footer {
	margin-top: var(--be-aqi-middle-footer-gap, 18px);
}
.be-aqi-box__rows--wide .be-aqi-content-row,
.be-aqi-box__rows--wide .be-aqi-content-row__group {
	gap: var(--be-aqi-element-gap, 10px);
}
.be-aqi-box__rows--wide .be-aqi-row-element { font-size: var(--be-aqi-body-size, 10px); }
.be-aqi-box__rows--wide .be-aqi-row-element--identity,
.be-aqi-box__rows--wide .be-aqi-row-element--label,
.be-aqi-box__rows--wide .be-aqi-row-element--reading { font-size: var(--be-aqi-heading-size, 10px); }
.be-aqi-box__rows--wide .be-aqi-row-element--badge,
.be-aqi-box__rows--wide .be-aqi-row-element--meta,
.be-aqi-box__rows--wide .be-aqi-row-element--source,
.be-aqi-box__rows--wide .be-aqi-row-element--refresh,
.be-aqi-box__rows--wide .be-aqi-row-element--scale { font-size: var(--be-aqi-small-size, 7px); }
.be-aqi-box__rows--wide .be-aqi-row-element .be-aqi-metric,
.be-aqi-box__rows--wide .be-aqi-row-element .be-aqi-description,
.be-aqi-box__rows--wide .be-aqi-row-element .be-aqi-status,
.be-aqi-box__rows--wide .be-aqi-row-element .be-aqi-custom-text,
.be-aqi-box__rows--wide .be-aqi-row-element .be-aqi-range-name { font-size: var(--be-aqi-body-size, 10px); }
.be-aqi-box__rows--wide .be-aqi-value { font-size: var(--be-aqi-number-size, 54px); }
.be-aqi-box__rows--wide .be-aqi-reading__unit { font-size: var(--be-aqi-unit-size, 10px) !important; }
.be-aqi-box__rows--wide .be-aqi-icon {
	flex-basis: var(--be-aqi-icon-size, 18px);
	width: var(--be-aqi-icon-size, 18px);
	height: var(--be-aqi-icon-size, 18px);
}
.be-aqi-box__rows--wide .be-aqi-reading__unit--desktop-inline {
	flex-direction: row !important;
	align-items: baseline !important;
	gap: .42em !important;
}
.be-aqi-box__rows--wide .be-aqi-reading__unit--desktop-stacked {
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: .22em !important;
}

/* ========================================================================
   Scrolling sections
   ======================================================================== */

.be-scroll-section,
.be-scroll-section * {
	box-sizing: border-box;
}

.be-scroll-section {
	position: relative;
	width: 100%;
	min-width: 0;
	font-family: var(--be-font-sans);
}

.be-scroll-section--view-mobile {
	display: none;
}

.be-scroll-media-wrap {
	position: sticky;
	top: var(--be-scroll-sticky-top-desktop);
	z-index: 2;
	width: 100%;
}

.be-scroll-section.is-not-sticky .be-scroll-media-wrap {
	position: relative;
	top: auto;
}

.be-scroll-media {
	position: relative;
	width: 100%;
	height: var(--be-scroll-desktop-height);
	overflow: hidden;
	border-radius: var(--be-scroll-desktop-radius);
	background: var(--be-scroll-background);
	isolation: isolate;
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.be-scroll-media__stage {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0;
	visibility: visible;
	pointer-events: none;
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	will-change: opacity;
	transition: opacity var(--be-scroll-transition) ease;
}

.be-scroll-media__stage.is-active {
	z-index: 2;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

/* Keep the outgoing frame composited beneath the incoming frame until its
   opacity transition completes. Safari can drop visibility-clipped image
   layers for a frame when active classes swap, which presents as a flash to
   the media background instead of a crossfade. */
.be-scroll-media__stage.is-leaving {
	z-index: 1;
	opacity: 0;
	visibility: visible;
	pointer-events: none;
}

.be-scroll-media__stage picture,
.be-scroll-media__stage img {
	display: block;
	width: 100%;
	height: 100%;
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.be-scroll-media__stage img {
	object-fit: var(--be-scroll-object-fit);
	object-position: var(--be-scroll-image-position, 50% 50%);
}

.be-scroll-section__spacer {
	width: 1px;
	height: 0;
	pointer-events: none;
}

.be-scroll-section--external.be-scroll-section--media {
	display: contents;
}

.be-scroll-section--external.be-scroll-section--media .be-scroll-section__spacer {
	display: none;
}

.be-scroll-slot {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: calc(100% - 32px);
	padding: var(--be-scroll-slot-pad-y) var(--be-scroll-slot-pad-x);
	border-radius: var(--be-scroll-slot-radius);
	background: var(--be-scroll-slot-bg);
	color: var(--be-scroll-slot-colour);
	font-size: var(--be-scroll-slot-font);
	line-height: 1.1;
}

.be-scroll-slot--top-left { top: 18px; left: 18px; }
.be-scroll-slot--top-right { top: 18px; right: 18px; }
.be-scroll-slot--bottom-left { bottom: 18px; left: 18px; }
.be-scroll-slot--bottom-right { right: 18px; bottom: 18px; }

.be-scroll-slot--number {
	font-variant-numeric: tabular-nums;
}

.be-scroll-slot img,
.be-scroll-slot svg,
.be-scroll-slot i {
	display: block;
	width: var(--be-scroll-slot-icon);
	height: var(--be-scroll-slot-icon);
	max-width: 100%;
	max-height: 100%;
	color: currentColor;
}

.be-scroll-slot svg {
	fill: currentColor;
	stroke: currentColor;
}

.be-scroll-slot--text {
	padding: 0;
	background: transparent;
}

.be-scroll-steps {
	display: flex;
	flex-direction: column;
	gap: var(--be-scroll-steps-gap);
	width: 100%;
}

.be-scroll-step {
	appearance: none;
	-webkit-appearance: none;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 22px;
	width: 100%;
	margin: 0;
	padding: var(--be-scroll-step-padding);
	border: 0;
	border-radius: var(--be-scroll-step-radius);
	background: var(--be-scroll-step-bg);
	color: var(--be-scroll-step-text);
	text-align: left;
	font: inherit;
	cursor: pointer;
	transition: background-color 220ms ease, color 220ms ease, opacity 220ms ease;
}

.be-scroll-step.is-active {
	background: var(--be-scroll-step-active-bg);
	color: var(--be-scroll-step-active-text);
}

.be-scroll-step:disabled {
	cursor: default;
}

.be-scroll-step__number {
	color: var(--be-scroll-step-number);
	font-family: var(--be-font-display);
	font-size: 30px;
	line-height: 1;
}

.be-scroll-step__copy {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.be-scroll-step__eyebrow,
.be-scroll-step__description {
	display: block;
}

.be-scroll-step__title {
	display: block;
	font-size: 24px;
	font-weight: inherit;
	line-height: 1.05;
}

.be-scroll-step__description {
	font-size: 12px;
	line-height: 1.15;
}

.be-scroll-section__combined {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
	gap: 28px;
	align-items: start;
}

.be-scroll-section__combined > .be-scroll-media-wrap {
	grid-column: 2;
	grid-row: 1;
}

.be-scroll-section__combined > .be-scroll-section__spacer {
	grid-column: 2;
	grid-row: 2;
}

.be-scroll-section__combined > .be-scroll-steps {
	grid-column: 1;
	grid-row: 1;
}

@media (prefers-reduced-motion: reduce) {
	.be-scroll-media__stage,
	.be-scroll-step {
		transition: none !important;
	}
}

@media only screen and (max-width: 767px) {
	.be-scroll-section--view-desktop {
		display: none;
	}

	.be-scroll-section--view-mobile {
		display: block;
	}

	.be-scroll-section--external.be-scroll-section--view-mobile.be-scroll-section--media {
		display: contents;
	}

	.be-scroll-media-wrap {
		top: var(--be-scroll-sticky-top-mobile);
	}

	.be-scroll-media {
		height: var(--be-scroll-mobile-height);
		border-radius: var(--be-scroll-mobile-radius);
	}

	.be-scroll-media__stage img {
		object-position: var(--be-scroll-mobile-image-position, var(--be-scroll-image-position, 50% 50%));
	}

	.be-scroll-slot--top-left { top: 12px; left: 12px; }
	.be-scroll-slot--top-right { top: 12px; right: 12px; }
	.be-scroll-slot--bottom-left { bottom: 12px; left: 12px; }
	.be-scroll-slot--bottom-right { right: 12px; bottom: 12px; }

	.be-scroll-section__combined {
		display: flex;
		flex-direction: column;
		gap: 24px;
	}

	.be-scroll-section__combined > .be-scroll-media-wrap,
	.be-scroll-section__combined > .be-scroll-section__spacer,
	.be-scroll-section__combined > .be-scroll-steps {
		grid-column: auto;
		grid-row: auto;
	}

	.be-scroll-section[data-be-mobile-order="steps-first"] .be-scroll-steps {
		order: 1;
	}

	.be-scroll-section[data-be-mobile-order="steps-first"] .be-scroll-media-wrap {
		order: 2;
	}

	.be-scroll-section[data-be-mobile-order="media-first"] .be-scroll-media-wrap {
		order: 1;
	}

	.be-scroll-section[data-be-mobile-order="media-first"] .be-scroll-steps {
		order: 2;
	}
}

/* ========================================================================
   Scrolling sections — manual sticky engine
   Uses fixed positioning while inside the generated scroll track so it is
   not disabled by WPBakery overflow wrappers.
   ======================================================================== */

.be-scroll-section .be-scroll-media-wrap {
	position: relative;
	top: auto;
	left: auto;
	width: 100%;
}

.be-scroll-section[data-be-manual-sticky="true"] {
	position: relative;
	min-width: 0;
}

.be-scroll-section[data-be-manual-sticky="true"] .be-scroll-media-wrap {
	will-change: top, left, width;
}

.be-scroll-section[data-be-pin-state="fixed"] .be-scroll-media-wrap {
	z-index: 30;
}

.be-scroll-section[data-be-manual-sticky="true"] .be-scroll-section__spacer {
	display: none !important;
	height: 0 !important;
}

.be-scroll-section--external.be-scroll-section--media,
.be-scroll-section--external.be-scroll-section--view-mobile.be-scroll-section--media {
	display: block;
}


/* ========================================================================
   Scrolling sections — whole-block pinning and fill-height media
   ======================================================================== */

.be-scroll-fill-height-host,
.be-scroll-section.is-fill-height,
.be-scroll-section.is-fill-height .be-scroll-media-wrap,
.be-scroll-section.is-fill-height .be-scroll-media {
	height: 100%;
	min-height: 0 !important;
}

.be-scroll-section.is-fill-height .be-scroll-media-wrap,
.be-scroll-section.is-fill-height .be-scroll-media {
	max-height: none;
}

.be-scroll-block-placeholder {
	display: block;
	flex: 0 0 auto;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	pointer-events: none;
	visibility: hidden;
}

.be-scroll-block-track {
	display: block;
	width: 1px;
	max-width: 1px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	pointer-events: none;
	visibility: hidden;
}

.be-scroll-section[data-be-pin-scope="block"] {
	/* The shortcode remains part of the pinned WPBakery block. */
	min-width: 0;
}

.be-scroll-section[data-be-pin-scope="block"][data-be-pin-state="fixed"] .be-scroll-media-wrap {
	z-index: auto;
}


/* ========================================================================
   Scrolling sections — generated outer sticky shell
   The shell owns the additional scroll distance; the WPBakery section keeps
   its natural content height and is released by native sticky positioning.
   ======================================================================== */

.be-scroll-story-shell {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow: visible;
	isolation: isolate;
}

.be-scroll-story-shell > .be-scroll-shell-sticky {
	position: sticky;
	align-self: flex-start;
	width: 100%;
	min-width: 0;
	max-width: none;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.be-scroll-section[data-be-shell-sticky="true"] .be-scroll-media-wrap {
	z-index: auto;
}

/* Full viewport story. The chosen holding container supplies the padding;
   border-box sizing keeps that padding inside the available viewport height. */
.be-scroll-story-shell--viewport {
	width: 100%;
}

.be-scroll-viewport-layout {
	height: var(--be-scroll-viewport-height) !important;
	min-height: var(--be-scroll-viewport-height) !important;
	max-height: var(--be-scroll-viewport-height) !important;
	box-sizing: border-box !important;
	overflow: visible;
}

.be-scroll-viewport-layout > .grve-section,
.be-scroll-viewport-layout.grve-section {
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	box-sizing: border-box !important;
}

.be-scroll-viewport-layout .grve-container,
.be-scroll-viewport-layout .grve-row,
.be-scroll-viewport-layout .grve-column,
.be-scroll-viewport-layout .grve-column-wrapper,
.be-scroll-viewport-layout .grve-column-content,
.be-scroll-viewport-layout .grve-inner-section,
.be-scroll-viewport-layout .grve-row-inner,
.be-scroll-viewport-layout .grve-column-inner,
.be-scroll-viewport-layout .grve-column-wrapper-inner,
.be-scroll-viewport-layout .grve-column-inner-content {
	min-height: 0 !important;
	box-sizing: border-box;
}

.be-scroll-viewport-layout > .grve-section > .grve-container,
.be-scroll-viewport-layout.grve-section > .grve-container,
.be-scroll-viewport-layout > .grve-container {
	height: 100% !important;
}

.be-scroll-viewport-layout .grve-container > .grve-row,
.be-scroll-viewport-layout .grve-row-inner {
	height: 100% !important;
	align-items: stretch;
}

.be-scroll-section--type-viewport-story,
.be-scroll-section--type-viewport-story .be-scroll-media-wrap,
.be-scroll-section--type-viewport-story .be-scroll-media {
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
}

/* ========================================================================
   Scrolling sections — internal WPBakery story shell
   The generated runway lives inside the selected .grve-section-wrapper.
   Its direct .grve-section child is the sticky visual block.
   ======================================================================== */

.be-scroll-story-host {
	position: relative;
	overflow: visible !important;
}

.be-scroll-story-host > .be-scroll-story-shell--internal {
	width: 100%;
	max-width: none;
	overflow: visible;
}

.be-scroll-story-shell--internal > .be-scroll-shell-sticky {
	display: block;
	width: 100%;
	max-width: none;
	overflow: visible;
}


/* ========================================================================
   Scrolling sections — deterministic pin engines (1.3.44)
   Generated block stories use the authored section as their runway. The
   pinned target moves absolute → fixed → absolute, so WPBakery overflow and
   sticky-containing-block quirks cannot leave a blank shell beneath it.
   ======================================================================== */

.be-scroll-pin-host {
	position: relative;
	overflow: visible !important;
	box-sizing: border-box;
}

.be-scroll-block-pinned {
	will-change: top, left, width;
	backface-visibility: hidden;
}

.be-scroll-viewport-runway {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	max-width: none;
	margin: 0;
	padding: 0;
	overflow: visible;
	box-sizing: border-box;
}

.be-scroll-viewport-host {
	overflow: visible !important;
}

/* External-trigger stories deliberately receive no generated runway. */
.be-scroll-section--type-external-triggers[data-be-scroll-engine="external-listeners"] {
	min-height: 0;
}

.be-scroll-overflow-visible {
	overflow: visible !important;
}

/* ========================================================================
   Scrolling sections — natural-height virtual scroll gate (1.3.46)
   Standard pinned stories keep the authored WPBakery section at its natural
   height. Scroll input advances stages while the chosen block is fixed; no
   generated runway, min-height or padding is added beneath the section.
   ======================================================================== */

.be-scroll-gate-placeholder {
	display: block;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	visibility: hidden;
	pointer-events: none;
}

.be-scroll-gate-pinned {
	will-change: top, left, width;
	backface-visibility: hidden;
}

html.be-scroll-gate-active,
body.be-scroll-gate-active {
	overscroll-behavior: none;
}

/* Desktop keeps the pixel-stable fixed-body gate, while JavaScript preserves
   the html element's full document height and native scrollbar. Mobile still
   uses the normal-flow gate. */
html.be-scroll-gate-active {
	overflow-y: scroll !important;
	scrollbar-gutter: stable;
}

body.be-scroll-gate-active:not(.be-scroll-gate-document-locked) {
	overflow-y: visible !important;
}

body.be-scroll-gate-document-locked {
	overflow: hidden !important;
}

.be-scroll-section.is-viewport-height,
.be-scroll-section.is-viewport-height .be-scroll-media-wrap,
.be-scroll-section.is-viewport-height .be-scroll-media {
	min-height: 0 !important;
	max-height: none !important;
}

.be-scroll-section.is-viewport-height .be-scroll-media-wrap,
.be-scroll-section.is-viewport-height .be-scroll-media {
	height: 100% !important;
}

/* 1.3.48: mobile synced stories use horizontal swipe while preserving normal
   vertical page movement. */
@media only screen and (max-width: 767px) {
	.be-scroll-section--type-synced-steps .be-scroll-media-wrap,
	.be-scroll-section--type-synced-steps .be-scroll-steps {
		touch-action: pan-y;
	}
}

/* ========================================================================
   Scrolling sections — combined steps + media layout (1.3.49)
   ======================================================================== */

.be-scroll-section--combined .be-scroll-section__combined {
	display: grid;
	gap: var(--be-scroll-combined-gap, var(--be-scroll-steps-gap));
	width: 100%;
	min-width: 0;
	align-items: stretch;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-section__combined {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
	grid-template-rows: minmax(0, 1fr);
}

.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-section__combined {
	grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr);
	grid-template-rows: minmax(0, 1fr);
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-steps {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-media-wrap {
	grid-column: 2;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-steps {
	grid-column: 2;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-section__combined,
.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-section__combined {
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto minmax(0, 1fr);
}

.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-steps {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 2;
}

.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-steps {
	grid-column: 1;
	grid-row: 2;
}

.be-scroll-section--combined .be-scroll-section__spacer {
	display: none !important;
}

.be-scroll-section--combined .be-scroll-media-wrap,
.be-scroll-section--combined .be-scroll-media,
.be-scroll-section--combined .be-scroll-steps {
	min-width: 0;
	min-height: 0;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-media-wrap,
.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-media-wrap,
.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-media,
.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-media,
.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-steps,
.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-steps {
	height: 100%;
}

.be-scroll-section--combined[data-be-desktop-height-mode="fixed"] .be-scroll-section__combined {
	height: var(--be-scroll-desktop-height);
}

.be-scroll-section--combined.is-fill-height .be-scroll-section__combined,
.be-scroll-section--combined.is-viewport-height .be-scroll-section__combined {
	height: 100%;
}

.be-scroll-section--combined[data-be-steps-mode="list"] .be-scroll-steps {
	display: flex;
	flex-direction: column;
}

.be-scroll-section--combined[data-be-steps-mode="list"][data-be-steps-position="left"] .be-scroll-step,
.be-scroll-section--combined[data-be-steps-mode="list"][data-be-steps-position="right"] .be-scroll-step {
	flex: 1 1 0;
}

.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-steps {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	overflow: hidden;
	touch-action: pan-y;
}

.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateX(12px);
	transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms,
		background-color 220ms ease, color 220ms ease;
}

.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(0);
	transition-delay: 0s;
}

@media only screen and (max-width: 767px) {
	.be-scroll-section--combined[data-be-mobile-height-mode="fixed"] .be-scroll-section__combined {
		height: var(--be-scroll-mobile-height);
	}

	.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-section__combined,
	.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-section__combined {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		grid-template-rows: minmax(0, 1fr);
	}

	.be-scroll-section--combined[data-be-steps-mode="single"][data-be-steps-position="above"] .be-scroll-section__combined,
	.be-scroll-section--combined[data-be-steps-mode="single"][data-be-steps-position="below"] .be-scroll-section__combined {
		grid-template-rows: auto minmax(0, 1fr);
	}
}

.be-scroll-section--combined .be-scroll-media-wrap,
.be-scroll-section--combined .be-scroll-media {
	height: 100%;
}

/* ========================================================================
   Scrolling sections — combined element and virtual gate refinements 1.3.49
   ======================================================================== */

.be-scroll-section--combined {
	display: block;
	width: 100%;
	min-width: 0;
	isolation: isolate;
}

.be-scroll-section--combined .be-scroll-section__combined {
	display: grid;
	width: 100%;
	min-width: 0;
	min-height: 0;
	gap: var(--be-scroll-combined-gap, var(--be-scroll-steps-gap));
	align-items: stretch;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-section__combined {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
	grid-template-rows: minmax(0, 1fr);
}

.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-section__combined {
	grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr);
	grid-template-rows: minmax(0, 1fr);
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-steps {
	grid-column: 1;
	grid-row: 1;
}
.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-media-wrap {
	grid-column: 2;
	grid-row: 1;
}
.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 1;
}
.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-steps {
	grid-column: 2;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-section__combined,
.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-section__combined {
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto minmax(0, 1fr);
}
.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-steps {
	grid-column: 1;
	grid-row: 1;
}
.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 2;
}
.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 1;
}
.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-steps {
	grid-column: 1;
	grid-row: 2;
}

.be-scroll-section--combined[data-be-desktop-height-mode="fixed"] .be-scroll-section__combined {
	height: var(--be-scroll-desktop-height);
}
.be-scroll-section--combined.is-fill-height .be-scroll-section__combined,
.be-scroll-section--combined.is-viewport-height .be-scroll-section__combined {
	height: 100%;
}

.be-scroll-section--combined .be-scroll-media-wrap,
.be-scroll-section--combined .be-scroll-media,
.be-scroll-section--combined .be-scroll-steps {
	width: 100%;
	min-width: 0;
	min-height: 0;
}
.be-scroll-section--combined .be-scroll-media-wrap,
.be-scroll-section--combined .be-scroll-media {
	height: 100%;
}

.be-scroll-section--combined[data-be-steps-mode="list"] .be-scroll-steps {
	display: flex;
	flex-direction: column;
}
.be-scroll-section--combined[data-be-steps-mode="list"][data-be-steps-position="left"] .be-scroll-step,
.be-scroll-section--combined[data-be-steps-mode="list"][data-be-steps-position="right"] .be-scroll-step {
	flex: 1 1 0;
	min-height: 0;
}

.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-steps {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: minmax(0, 1fr);
	overflow: hidden;
	touch-action: pan-y;
}
.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	height: 100%;
	min-height: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateX(14px);
	transition:
		opacity 220ms ease,
		transform 220ms ease,
		visibility 0s linear 220ms,
		background-color 220ms ease,
		color 220ms ease;
}
.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(0);
	transition-delay: 0s;
}

.be-scroll-section--type-synced-steps .be-scroll-step:not(:disabled) {
	cursor: pointer;
}
.be-scroll-section--type-synced-steps .be-scroll-step:not(:disabled):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* The viewport gaps belong inside the shortcode. The element still reserves
   exactly one viewport in normal WPBakery flow, preventing overlap above and
   below the media or combined layout. */
.be-scroll-section.is-viewport-height {
	display: block;
	width: 100%;
	clear: both;
	isolation: isolate;
}

@media only screen and (max-width: 767px) {
	.be-scroll-section--combined[data-be-mobile-height-mode="fixed"] .be-scroll-section__combined {
		height: var(--be-scroll-mobile-height);
	}

	.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-section__combined,
	.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-section__combined {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		grid-template-rows: minmax(0, 1fr);
	}

	.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-section__combined,
	.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-section__combined {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto minmax(0, 1fr);
	}

	.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step {
		transform: translateX(10px);
	}
	.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step.is-active {
		transform: translateX(0);
	}
}

/* Reset the legacy mobile flex ordering when the combined grid is used. */
.be-scroll-section--combined .be-scroll-steps,
.be-scroll-section--combined .be-scroll-media-wrap {
	order: 0 !important;
}

/* ========================================================================
   Scrolling sections — smooth gate + combined swipe layout (1.3.50)
   ======================================================================== */

/* The virtual gate freezes the authored page in place. Avoid transforms on
   the selected element itself: the body lock already supplies pixel-stable
   positioning and transforms can introduce fractional rendering jitter. */
.be-scroll-gate-pinned {
	will-change: auto;
	backface-visibility: visible;
	transform: none !important;
}

html.be-scroll-gate-active,
html.be-scroll-gate-active body {
	overscroll-behavior: none;
}

/* Steps now live in a dedicated group so the active card and its carousel-
   style navigation remain one layout unit. */
.be-scroll-steps-group {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: 100%;
	min-width: 0;
	min-height: 0;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-steps-group {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-media-wrap {
	grid-column: 2;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-steps-group {
	grid-column: 2;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-steps-group {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 2;
}

.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-media-wrap {
	grid-column: 1;
	grid-row: 1;
}

.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-steps-group {
	grid-column: 1;
	grid-row: 2;
}

/* The media and text panels have independent height owners. Do not force the
   complete combined shortcode to a fixed height when the parts are stacked. */
.be-scroll-section--combined .be-scroll-section__combined {
	height: auto !important;
	min-height: 0;
}

.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-section__combined,
.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-section__combined {
	align-items: stretch;
}

.be-scroll-section--combined[data-be-desktop-height-mode="fixed"] .be-scroll-media-wrap,
.be-scroll-section--combined[data-be-desktop-height-mode="fixed"] .be-scroll-media {
	height: var(--be-scroll-desktop-height);
}

.be-scroll-section--combined[data-be-steps-height-mode="fixed"] .be-scroll-steps-group {
	height: var(--be-scroll-desktop-steps-height);
}

.be-scroll-section--combined[data-be-steps-height-mode="match"] .be-scroll-steps-group {
	min-height: 0;
}

.be-scroll-section--combined .be-scroll-steps {
	min-height: 0;
}

.be-scroll-section--combined[data-be-steps-mode="list"] .be-scroll-steps {
	flex: 1 1 auto;
}

.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-steps {
	flex: 1 1 auto;
	min-height: 0;
}

/* Carousel-style active-step navigation. The thumb moves across the track;
   it does not fill progressively from the left. */
.be-scroll-steps-navigation {
	display: none;
	grid-template-columns: 72px minmax(0, 1fr) 72px;
	align-items: center;
	gap: 16px;
	width: 100%;
	color: var(--be-scroll-steps-nav-text);
	font-size: 13px;
	line-height: 1;
}

.be-scroll-section[data-be-steps-mode="single"] .be-scroll-steps-navigation {
	display: grid;
}

.be-scroll-steps-navigation__label,
.be-scroll-steps-navigation__count {
	display: block;
	width: 72px;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.be-scroll-steps-navigation__count {
	text-align: right;
}

.be-scroll-steps-navigation__track {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	display: block;
	width: 100%;
	height: max(18px, calc(var(--be-scroll-steps-nav-height) + var(--be-scroll-steps-nav-border-width, 0px) + var(--be-scroll-steps-nav-border-width, 0px)));
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: grab;
	touch-action: none;
}

.be-scroll-steps-navigation__track:active {
	cursor: grabbing;
}

.be-scroll-steps-navigation__track::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	z-index: 0;
	box-sizing: border-box;
	height: calc(var(--be-scroll-steps-nav-height) + var(--be-scroll-steps-nav-border-width, 0px) + var(--be-scroll-steps-nav-border-width, 0px));
	border: var(--be-scroll-steps-nav-border-width, 0px) solid var(--be-scroll-steps-nav-border, transparent);
	border-radius: 999px;
	background: var(--be-scroll-steps-nav-track);
	transform: translateY(-50%);
	pointer-events: none;
}

.be-scroll-steps-navigation__rail {
	position: absolute;
	top: 50%;
	left: var(--be-scroll-steps-nav-border-width, 0px);
	right: var(--be-scroll-steps-nav-border-width, 0px);
	z-index: 1;
	display: block;
	height: var(--be-scroll-steps-nav-height);
	border-radius: 999px;
	transform: translateY(-50%);
	overflow: hidden;
	pointer-events: none;
}

.be-scroll-steps-navigation__thumb {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--be-scroll-step-thumb-left, 0%);
	display: block;
	width: var(--be-scroll-step-thumb-width, 25%);
	border-radius: inherit;
	background: var(--be-scroll-steps-nav-thumb);
	transition: left 220ms ease;
}

/* A list fills its assigned panel height. A single active card uses the
   remaining space above the swipe navigation without hiding the media. */
.be-scroll-section--combined[data-be-steps-mode="list"] .be-scroll-steps {
	display: flex;
	flex-direction: column;
}

.be-scroll-section--combined[data-be-steps-mode="single"] .be-scroll-step {
	min-height: 0;
}

@media only screen and (max-width: 767px) {
	.be-scroll-section--combined[data-be-mobile-height-mode="fixed"] .be-scroll-media-wrap,
	.be-scroll-section--combined[data-be-mobile-height-mode="fixed"] .be-scroll-media {
		height: var(--be-scroll-mobile-height);
	}

	.be-scroll-section--combined[data-be-steps-height-mode="fixed"] .be-scroll-steps-group {
		height: var(--be-scroll-mobile-steps-height);
	}

	.be-scroll-section--combined .be-scroll-section__combined {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: var(--be-scroll-combined-gap, var(--be-scroll-steps-gap));
	}

	.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-section__combined,
	.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-section__combined {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto;
	}

	.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-steps-group,
	.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-steps-group {
		grid-column: 1;
		grid-row: 1;
	}

	.be-scroll-section--combined[data-be-steps-position="left"] .be-scroll-media-wrap,
	.be-scroll-section--combined[data-be-steps-position="above"] .be-scroll-media-wrap {
		grid-column: 1;
		grid-row: 2;
	}

	.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-media-wrap,
	.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-media-wrap {
		grid-column: 1;
		grid-row: 1;
	}

	.be-scroll-section--combined[data-be-steps-position="right"] .be-scroll-steps-group,
	.be-scroll-section--combined[data-be-steps-position="below"] .be-scroll-steps-group {
		grid-column: 1;
		grid-row: 2;
	}

	.be-scroll-steps-navigation {
		grid-template-columns: 62px minmax(0, 1fr) 54px;
		gap: 12px;
		padding: 0 2px;
	}

	.be-scroll-steps-navigation__label {
		width: 62px;
	}

	.be-scroll-steps-navigation__count {
		width: 54px;
	}

	.be-scroll-section[data-be-steps-mode="single"] {
		--be-scroll-step-thumb-width: 24%;
	}
}

.be-scroll-section--combined.is-viewport-height .be-scroll-media-wrap,
.be-scroll-section--combined.is-viewport-height .be-scroll-media,
.be-scroll-section--combined.is-fill-height .be-scroll-media-wrap,
.be-scroll-section--combined.is-fill-height .be-scroll-media {
	height: var(--be-scroll-runtime-media-height) !important;
	min-height: 0 !important;
	max-height: none !important;
}

/* ========================================================================
   Scrolling sections — mobile native carousel (1.3.51)
   ======================================================================== */

.be-scroll-media-navigation {
	display: none;
	margin-top: 18px;
}

@media only screen and (max-width: 767px) {
	/* Carousel presentation is intentionally a normal-flow component. These
	 * rules neutralise every sticky/fixed/runway state left by a desktop layout. */
	.be-scroll-section.is-mobile-carousel,
	.be-scroll-section.is-mobile-carousel.is-viewport-height,
	.be-scroll-section.is-mobile-carousel.is-fill-height {
		position: relative !important;
		display: block;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		padding: 0 !important;
		overflow: visible !important;
		isolation: isolate;
	}

	.be-scroll-section.is-mobile-carousel [data-be-scroll-spacer],
	.be-scroll-section.is-mobile-carousel .be-scroll-section__spacer,
	.be-scroll-section.is-mobile-carousel .be-scroll-gate-placeholder,
	.be-scroll-section.is-mobile-carousel .be-scroll-block-placeholder {
		display: none !important;
		height: 0 !important;
	}

	.be-scroll-section.is-mobile-carousel .be-scroll-media-wrap,
	.be-scroll-section.is-mobile-carousel .be-scroll-media-wrap.be-scroll-block-pinned,
	.be-scroll-section.is-mobile-carousel .be-scroll-media-wrap.be-scroll-gate-pinned {
		position: relative !important;
		inset: auto !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		z-index: 1 !important;
		width: 100% !important;
		max-width: 100% !important;
		transform: none !important;
	}

	.be-scroll-section.is-mobile-carousel[data-be-mobile-height-mode="fixed"] .be-scroll-media-wrap,
	.be-scroll-section.is-mobile-carousel[data-be-mobile-height-mode="fixed"] .be-scroll-media {
		height: var(--be-scroll-mobile-height) !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	.be-scroll-section.is-mobile-carousel[data-be-mobile-height-mode="fill"] .be-scroll-media-wrap,
	.be-scroll-section.is-mobile-carousel[data-be-mobile-height-mode="fill"] .be-scroll-media {
		height: var(--be-scroll-mobile-height) !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	.be-scroll-section.is-mobile-carousel .be-scroll-media {
		position: relative;
		width: 100%;
		border-radius: var(--be-scroll-mobile-radius);
		overflow: hidden;
		background: var(--be-scroll-background);
	}

	.be-scroll-section.is-mobile-carousel .be-scroll-media__stage img {
		object-position: var(--be-scroll-mobile-image-position, var(--be-scroll-image-position, 50% 50%));
	}

	/* Combined carousel: one media frame plus one active text card. */
	.be-scroll-section--combined.is-mobile-carousel .be-scroll-section__combined {
		display: flex !important;
		flex-direction: column;
		width: 100%;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		gap: var(--be-scroll-combined-gap, var(--be-scroll-steps-gap));
		align-items: stretch;
	}

	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="above"] .be-scroll-steps-group,
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="left"] .be-scroll-steps-group {
		order: 1;
	}
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="above"] .be-scroll-media-wrap,
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="left"] .be-scroll-media-wrap {
		order: 2;
	}
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="below"] .be-scroll-media-wrap,
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="right"] .be-scroll-media-wrap {
		order: 1;
	}
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="below"] .be-scroll-steps-group,
	.be-scroll-section--combined.is-mobile-carousel[data-be-steps-position="right"] .be-scroll-steps-group {
		order: 2;
	}

	.be-scroll-section--combined.is-mobile-carousel .be-scroll-steps-group {
		display: flex;
		flex-direction: column;
		width: 100%;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		gap: 18px;
	}

	.be-scroll-section--combined.is-mobile-carousel .be-scroll-steps {
		position: relative;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		width: 100%;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: hidden;
		touch-action: pan-y;
	}

	.be-scroll-section--combined.is-mobile-carousel .be-scroll-step {
		grid-column: 1;
		grid-row: 1;
		position: relative;
		width: 100%;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translate3d(18px, 0, 0);
		transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
	}

	.be-scroll-section--combined.is-mobile-carousel .be-scroll-step.is-active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translate3d(0, 0, 0);
		transition-delay: 0s;
	}

	.be-scroll-section.is-mobile-carousel .be-scroll-steps-navigation,
	.be-scroll-section.is-mobile-carousel .be-scroll-media-navigation {
		display: grid !important;
		position: relative;
		width: 100%;
		margin-top: 18px;
	}

	.be-scroll-section--combined.is-mobile-carousel .be-scroll-steps-navigation {
		margin-top: 0;
	}

	.be-scroll-section.is-mobile-carousel .be-scroll-steps-navigation__track {
		min-width: 0;
	}
}

/* ========================================================================
   Scrolling sections — stable media sizing and native mobile sticky (1.3.52)
   ======================================================================== */

.be-scroll-media,
.be-scroll-media__stage,
.be-scroll-media__stage picture,
.be-scroll-media__stage img {
	min-width: 0;
	min-height: 0;
	max-width: 100%;
	max-height: 100%;
}

.be-scroll-media {
	width: 100%;
}

.be-scroll-media__stage picture {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.be-scroll-media__stage img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: var(--be-scroll-object-fit-desktop, var(--be-scroll-object-fit, cover));
}

.be-scroll-media-wrap {
	min-width: 0;
	min-height: 0;
	overflow: visible;
}

.be-scroll-media-wrap > .be-scroll-media {
	overflow: hidden;
}

.be-scroll-section--combined .be-scroll-section__combined,
.be-scroll-section--combined .be-scroll-media-wrap,
.be-scroll-section--combined .be-scroll-media,
.be-scroll-section--combined .be-scroll-steps-group {
	min-height: 0;
	max-height: none;
}

/* The mobile scroll engine stays inside the normal document tree. The root
   supplies the runway and the selected inner canvas uses native sticky. */
.be-scroll-mobile-native-runway {
	position: relative !important;
	overflow: visible !important;
	contain: none !important;
}

.be-scroll-mobile-native-sticky {
	position: sticky !important;
	top: var(--be-scroll-effective-sticky-top, 0px) !important;
	inset-inline: auto !important;
	transform: none !important;
	will-change: auto !important;
}

/* Keep theme and Breathe Easy utility controls above pinned content. The
   opacity/visibility guards cover themes that recalculate state when a body is
   fixed even though the retained html scroll coordinate has not changed. */
.be-scroll-gate-active .grve-back-to-top,
.be-scroll-gate-active #grve-back-to-top,
.be-scroll-gate-active .grve-top-btn {
	z-index: 2147483000 !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

html.be-scroll-gate-active body .be-floating-menu-toggle.is-visible {
	z-index: 2147483001 !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

@media only screen and (max-width: 767px) {
	.be-scroll-media__stage img {
		object-fit: var(--be-scroll-object-fit-mobile, var(--be-scroll-object-fit-desktop, cover));
	}

	.be-scroll-section.is-viewport-height:not(.is-mobile-carousel) .be-scroll-media-wrap {
		height: var(--be-scroll-viewport-canvas-height) !important;
		box-sizing: border-box !important;
	}

	.be-scroll-section.is-viewport-height:not(.is-mobile-carousel) .be-scroll-media {
		height: 100% !important;
	}

	.be-scroll-section.is-mobile-carousel .be-scroll-media__stage img {
		object-fit: var(--be-scroll-object-fit-mobile, cover);
	}
}

/* ========================================================================
   Scrolling Sections 1.3.52 — exact media frames and stable mobile sticky
   ======================================================================== */
.be-scroll-section,
.be-scroll-section__combined,
.be-scroll-media-wrap,
.be-scroll-media,
.be-scroll-media__stage,
.be-scroll-media__stage picture,
.be-scroll-media__stage img {
	box-sizing: border-box;
}

.be-scroll-media-wrap {
	position: relative;
	width: 100%;
	max-width: 100%;
}

.be-scroll-media-wrap > .be-scroll-media,
.be-scroll-media__stage,
.be-scroll-media__stage picture,
.be-scroll-media__stage img {
	inset: 0;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
}

.be-scroll-media-wrap > .be-scroll-media,
.be-scroll-media__stage {
	position: absolute;
	overflow: hidden;
	border-radius: inherit;
}

.be-scroll-media__stage picture,
.be-scroll-media__stage img {
	position: absolute;
	display: block;
}

.be-scroll-media__stage img {
	object-position: var(--be-scroll-image-position, 50% 50%);
	object-fit: var(--be-scroll-object-fit-desktop, cover) !important;
}

.be-scroll-mobile-sticky-host,
.be-scroll-mobile-native-runway {
	overflow: visible !important;
	contain: none !important;
}

.be-scroll-mobile-native-sticky {
	position: -webkit-sticky !important;
	position: sticky !important;
	top: var(--be-scroll-effective-sticky-top, 0px) !important;
	transform: none !important;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

@media only screen and (max-width: 767px) {
	.be-scroll-media__stage img {
		object-position: var(--be-scroll-mobile-image-position, var(--be-scroll-image-position, 50% 50%));
		object-fit: var(--be-scroll-object-fit-mobile, cover) !important;
	}

	/* In scroll-driven viewport mode the sticky canvas owns the stable small
	   viewport. Gaps are padding inside that canvas, never margins outside it. */
	.be-scroll-section.is-viewport-height:not(.is-mobile-carousel) .be-scroll-media-wrap,
	.be-scroll-section--combined.is-viewport-height:not(.is-mobile-carousel) .be-scroll-section__combined {
		margin: 0 !important;
		max-width: 100% !important;
	}
}

/* ========================================================================
   Scrolling Sections 1.3.53 — inset viewport frame and zero-jump mobile pin
   ======================================================================== */
.be-scroll-mobile-native-runway,
.be-scroll-mobile-native-sticky {
	overflow-anchor: none;
}

@media only screen and (max-width: 767px) {
	/* The media wrapper is the stable 100svh canvas. The image frame is inset
	   with explicit top/right/bottom/left values from the runtime so the inner
	   gaps remain part of the sticky box at both entry and release. */
	.be-scroll-section--media.is-viewport-height:not(.is-mobile-carousel) .be-scroll-media-wrap > .be-scroll-media {
		position: absolute !important;
		width: auto !important;
		height: auto !important;
		min-width: 0 !important;
		min-height: 0 !important;
		max-width: none !important;
		max-height: none !important;
	}
}

@media only screen and (max-width: 767px) {
	/* Combined stories allocate the stable viewport between the text group and
	   media. This later, more-specific rule prevents the generic media-only
	   canvas height from expanding the media back to the full viewport. */
	.be-scroll-section--combined.is-viewport-height:not(.is-mobile-carousel) .be-scroll-media-wrap,
	.be-scroll-section--combined.is-viewport-height:not(.is-mobile-carousel) .be-scroll-media {
		height: var(--be-scroll-runtime-media-height) !important;
	}
}


/* ========================================================================
   Scrolling Sections 1.3.54 — natural-height mobile gate and exact pin roles
   ======================================================================== */
@media only screen and (max-width: 767px) {
	/* Mobile scroll stories no longer create a document-height runway. The
	   shortcode root remains exactly the height of its media canvas (including
	   the configured inner gaps), while the virtual gate holds the page at the
	   resolved trigger coordinate. These guards also clear any stale inline
	   runway dimensions left by an older cached script. */
	.be-scroll-section.be-scroll-pin-owner[data-be-scroll-engine="natural-height-gate"].is-viewport-height:not(.is-mobile-carousel) {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
		contain: none !important;
	}

	.be-scroll-section--media.be-scroll-pin-owner.is-viewport-height:not(.is-mobile-carousel) > .be-scroll-media-wrap {
		height: var(--be-scroll-viewport-canvas-height) !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	.be-scroll-trigger-container,
	.be-scroll-pinned-element,
	.be-scroll-pin-owner {
		overflow-anchor: none;
	}

	html.be-scroll-gate-active,
	body.be-scroll-gate-active {
		overscroll-behavior: none;
	}
}


/* ========================================================================
   Scrolling Sections 1.3.55 — compositor-native mobile boundaries
   ======================================================================== */
@media only screen and (max-width: 767px) {
	/* The native sticky root owns exactly one stable media canvas plus the
	   shorter mobile stage track. The media remains visible throughout that
	   track, so the added document distance never appears as a blank gap. */
	.be-scroll-section.be-scroll-mobile-native-runway[data-be-scroll-engine="mobile-native-sticky"] {
		height: var(--be-scroll-mobile-runway-height) !important;
		min-height: var(--be-scroll-mobile-runway-height) !important;
		max-height: none !important;
		position: relative !important;
		overflow: visible !important;
		contain: none !important;
		overflow-anchor: none;
	}

	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] > .be-scroll-mobile-native-sticky,
	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-mobile-native-sticky {
		position: -webkit-sticky !important;
		position: sticky !important;
		top: var(--be-scroll-effective-sticky-top, 0px) !important;
		bottom: auto !important;
		transform: none !important;
		touch-action: pan-y;
		overscroll-behavior: auto;
		overflow-anchor: none;
	}

	/* Images, overlays and the 28px side gaps all remain part of the same
	   vertically scrollable touch surface. */
	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-media-wrap,
	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-media,
	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-media__stage,
	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-media__stage picture,
	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-media__stage img {
		touch-action: pan-y;
	}
}


/* ========================================================================
   Scrolling Sections 1.3.56 — full ancestor native-sticky host
   ======================================================================== */
@media only screen and (max-width: 767px) {
	/* A single overflow:hidden wrapper anywhere above a sticky element becomes
	   its scrolling container. The runtime adds this class to the complete
	   ancestor chain through html so theme wrappers cannot disable the pin. */
	html.be-scroll-mobile-sticky-host,
	body.be-scroll-mobile-sticky-host,
	.be-scroll-mobile-sticky-host {
		overflow: visible !important;
		overflow-x: visible !important;
		overflow-y: visible !important;
		contain: none !important;
	}

	.be-scroll-section[data-be-scroll-engine="mobile-native-sticky"] .be-scroll-mobile-native-sticky {
		position: -webkit-sticky !important;
		position: sticky !important;
		top: var(--be-scroll-effective-sticky-top, 0px) !important;
		align-self: flex-start !important;
		transform: translateZ(0) !important;
		-webkit-transform: translateZ(0) !important;
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
	}
}

/* ========================================================================
   Scrolling Sections 1.3.60 — global design controls and native carousel
   ======================================================================== */

/* Current-device aliases are switched by JavaScript at the slider's saved
   breakpoint. This keeps all responsive styling tied to the configured slider,
   rather than a hard-coded CSS viewport width. */
.be-scroll-section {
	--be-scroll-current-radius: var(--be-scroll-desktop-radius);
	--be-scroll-current-steps-gap: var(--be-scroll-steps-gap-desktop, var(--be-scroll-steps-gap));
	--be-scroll-current-combined-gap: var(--be-scroll-combined-gap-desktop, var(--be-scroll-combined-gap, 18px));
	--be-scroll-current-step-radius: var(--be-scroll-step-radius-desktop, var(--be-scroll-step-radius));
	--be-scroll-current-step-padding: var(--be-scroll-step-padding-desktop, var(--be-scroll-step-padding));
	--be-scroll-current-step-content-gap: var(--be-scroll-step-content-gap-desktop, 22px);
	--be-scroll-current-step-copy-gap: var(--be-scroll-step-copy-gap-desktop, 5px);
	--be-scroll-current-step-number-size: var(--be-scroll-step-number-size-desktop, 30px);
	--be-scroll-current-step-number-line: var(--be-scroll-step-number-line-desktop, 1);
	--be-scroll-current-step-eyebrow-size: var(--be-scroll-step-eyebrow-size-desktop, 12px);
	--be-scroll-current-step-eyebrow-line: var(--be-scroll-step-eyebrow-line-desktop, 1.2);
	--be-scroll-current-step-title-size: var(--be-scroll-step-title-size-desktop, 24px);
	--be-scroll-current-step-title-line: var(--be-scroll-step-title-line-desktop, 1.05);
	--be-scroll-current-step-description-size: var(--be-scroll-step-description-size-desktop, 12px);
	--be-scroll-current-step-description-line: var(--be-scroll-step-description-line-desktop, 1.15);
	--be-scroll-current-slot-radius: var(--be-scroll-slot-radius-desktop, var(--be-scroll-slot-radius));
	--be-scroll-current-slot-pad-x: var(--be-scroll-slot-pad-x-desktop, var(--be-scroll-slot-pad-x));
	--be-scroll-current-slot-pad-y: var(--be-scroll-slot-pad-y-desktop, var(--be-scroll-slot-pad-y));
	--be-scroll-current-slot-font: var(--be-scroll-slot-font-desktop, var(--be-scroll-slot-font));
	--be-scroll-current-slot-icon: var(--be-scroll-slot-icon-desktop, var(--be-scroll-slot-icon));
	--be-scroll-current-slot-offset: var(--be-scroll-slot-offset-desktop, 18px);
	--be-scroll-current-object-fit: var(--be-scroll-object-fit-desktop, cover);
}

.be-scroll-section.is-mobile-device {
	--be-scroll-current-radius: var(--be-scroll-mobile-radius);
	--be-scroll-current-steps-gap: var(--be-scroll-steps-gap-mobile, var(--be-scroll-steps-gap));
	--be-scroll-current-combined-gap: var(--be-scroll-combined-gap-mobile, var(--be-scroll-combined-gap, 18px));
	--be-scroll-current-step-radius: var(--be-scroll-step-radius-mobile, var(--be-scroll-step-radius));
	--be-scroll-current-step-padding: var(--be-scroll-step-padding-mobile, var(--be-scroll-step-padding));
	--be-scroll-current-step-content-gap: var(--be-scroll-step-content-gap-mobile, 16px);
	--be-scroll-current-step-copy-gap: var(--be-scroll-step-copy-gap-mobile, 5px);
	--be-scroll-current-step-number-size: var(--be-scroll-step-number-size-mobile, 26px);
	--be-scroll-current-step-number-line: var(--be-scroll-step-number-line-mobile, 1);
	--be-scroll-current-step-eyebrow-size: var(--be-scroll-step-eyebrow-size-mobile, 11px);
	--be-scroll-current-step-eyebrow-line: var(--be-scroll-step-eyebrow-line-mobile, 1.2);
	--be-scroll-current-step-title-size: var(--be-scroll-step-title-size-mobile, 20px);
	--be-scroll-current-step-title-line: var(--be-scroll-step-title-line-mobile, 1.1);
	--be-scroll-current-step-description-size: var(--be-scroll-step-description-size-mobile, 12px);
	--be-scroll-current-step-description-line: var(--be-scroll-step-description-line-mobile, 1.25);
	--be-scroll-current-slot-radius: var(--be-scroll-slot-radius-mobile, var(--be-scroll-slot-radius));
	--be-scroll-current-slot-pad-x: var(--be-scroll-slot-pad-x-mobile, var(--be-scroll-slot-pad-x));
	--be-scroll-current-slot-pad-y: var(--be-scroll-slot-pad-y-mobile, var(--be-scroll-slot-pad-y));
	--be-scroll-current-slot-font: var(--be-scroll-slot-font-mobile, var(--be-scroll-slot-font));
	--be-scroll-current-slot-icon: var(--be-scroll-slot-icon-mobile, var(--be-scroll-slot-icon));
	--be-scroll-current-slot-offset: var(--be-scroll-slot-offset-mobile, 14px);
	--be-scroll-current-object-fit: var(--be-scroll-object-fit-mobile, cover);
}

/* Radius belongs to the direct visual media surface, never the viewport-gap
   owner or sticky wrapper. Explicit selectors override legacy inherited radius. */
.be-scroll-section .be-scroll-media-wrap {
	border-radius: 0 !important;
	overflow: visible;
}

.be-scroll-section .be-scroll-media,
.be-scroll-section .be-scroll-media__stage,
.be-scroll-section .be-scroll-media__stage picture,
.be-scroll-section .be-scroll-media__stage img {
	border-radius: var(--be-scroll-current-radius) !important;
}

.be-scroll-section .be-scroll-media {
	overflow: hidden !important;
}

/* One shared rounded clipping surface is more reliable than stacking three
   independently clipped composited layers in Safari. */
.be-scroll-section .be-scroll-media__stage,
.be-scroll-section .be-scroll-media__stage picture {
	overflow: visible !important;
}

.be-scroll-section .be-scroll-media__stage img {
	object-fit: var(--be-scroll-current-object-fit) !important;
}

/* Every generated card reads its full surface, spacing and typography from the
   slider's global responsive variables. */
.be-scroll-section .be-scroll-steps,
.be-scroll-section .be-scroll-steps-group {
	gap: var(--be-scroll-current-steps-gap);
}

.be-scroll-section .be-scroll-step {
	gap: var(--be-scroll-current-step-content-gap);
	padding: var(--be-scroll-current-step-padding);
	border: var(--be-scroll-step-border-width, 0) solid var(--be-scroll-step-border, transparent);
	border-radius: var(--be-scroll-current-step-radius);
	background: var(--be-scroll-step-bg);
	color: var(--be-scroll-step-text);
}

.be-scroll-section .be-scroll-step.is-active {
	border-color: var(--be-scroll-step-active-border, var(--be-scroll-step-border, transparent));
	background: var(--be-scroll-step-active-bg);
	color: var(--be-scroll-step-active-text);
}

.be-scroll-section .be-scroll-step__number {
	color: var(--be-scroll-step-number);
	font-size: var(--be-scroll-current-step-number-size);
	line-height: var(--be-scroll-current-step-number-line);
}

.be-scroll-section .be-scroll-step.is-active .be-scroll-step__number {
	color: var(--be-scroll-step-active-number, var(--be-scroll-step-number));
}

.be-scroll-section .be-scroll-step__copy {
	gap: var(--be-scroll-current-step-copy-gap);
}

.be-scroll-section .be-scroll-step__eyebrow {
	font-size: var(--be-scroll-current-step-eyebrow-size);
	line-height: var(--be-scroll-current-step-eyebrow-line);
}

.be-scroll-section .be-scroll-step__title {
	font-size: var(--be-scroll-current-step-title-size);
	line-height: var(--be-scroll-current-step-title-line);
}

.be-scroll-section .be-scroll-step__description {
	font-size: var(--be-scroll-current-step-description-size);
	line-height: var(--be-scroll-current-step-description-line);
}

.be-scroll-section .be-scroll-section__combined,
.be-scroll-section .be-scroll-mobile-carousel__slide {
	gap: var(--be-scroll-current-combined-gap);
}

.be-scroll-section .be-scroll-slot {
	padding: var(--be-scroll-current-slot-pad-y) var(--be-scroll-current-slot-pad-x);
	border-radius: var(--be-scroll-current-slot-radius);
	font-size: var(--be-scroll-current-slot-font);
}

.be-scroll-section .be-scroll-slot img,
.be-scroll-section .be-scroll-slot svg,
.be-scroll-section .be-scroll-slot i {
	width: var(--be-scroll-current-slot-icon);
	height: var(--be-scroll-current-slot-icon);
}

.be-scroll-section .be-scroll-slot--top-left {
	top: var(--be-scroll-current-slot-offset);
	left: var(--be-scroll-current-slot-offset);
}
.be-scroll-section .be-scroll-slot--top-right {
	top: var(--be-scroll-current-slot-offset);
	right: var(--be-scroll-current-slot-offset);
}
.be-scroll-section .be-scroll-slot--bottom-left {
	bottom: var(--be-scroll-current-slot-offset);
	left: var(--be-scroll-current-slot-offset);
}
.be-scroll-section .be-scroll-slot--bottom-right {
	right: var(--be-scroll-current-slot-offset);
	bottom: var(--be-scroll-current-slot-offset);
}

/* The dedicated carousel is output beside the scroll rendering. JavaScript adds
   is-mobile-carousel only below this slider's own saved breakpoint. */
.be-scroll-mobile-carousel {
	display: none;
}

.be-scroll-section.is-mobile-carousel {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	overflow: visible !important;
	contain: none !important;
}

.be-scroll-section.is-mobile-carousel > .be-scroll-section__combined,
.be-scroll-section.is-mobile-carousel > .be-scroll-media-wrap,
.be-scroll-section.is-mobile-carousel > .be-scroll-steps-group,
.be-scroll-section.is-mobile-carousel > .be-scroll-section__spacer,
.be-scroll-section.is-mobile-carousel > [data-be-scroll-spacer],
.be-scroll-section.is-mobile-carousel > .be-scroll-media-navigation {
	display: none !important;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel {
	display: block;
	width: 100%;
	min-width: 0;
	overflow: visible;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__viewport {
	position: relative;
	width: calc(100% + var(--be-scroll-mobile-carousel-bleed-left, 0px) + var(--be-scroll-mobile-carousel-bleed-right, 0px));
	margin-left: calc(-1 * var(--be-scroll-mobile-carousel-bleed-left, 0px));
	margin-right: calc(-1 * var(--be-scroll-mobile-carousel-bleed-right, 0px));
	overflow-x: auto;
	overflow-y: visible;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--be-scroll-mobile-carousel-bleed-left, 0px);
	scrollbar-width: none;
	/* Vertical gestures remain native page scrolling. Horizontal intent is
	   axis-locked and driven by JavaScript so diagonal swipes cannot move the
	   document and carousel at the same time. */
	touch-action: pan-y pinch-zoom;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.be-scroll-section.is-mobile-carousel[data-be-mobile-carousel-dragging="true"] .be-scroll-mobile-carousel__viewport {
	scroll-behavior: auto;
	scroll-snap-type: none;
	user-select: none;
	-webkit-user-select: none;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__viewport[data-be-axis-locked="x"] {
	overscroll-behavior-y: none;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__track {
	display: flex;
	align-items: flex-start;
	gap: var(--be-scroll-mobile-carousel-gap, 18px);
	width: max-content;
	min-width: 100%;
	padding-left: var(--be-scroll-mobile-carousel-bleed-left, 0px);
	padding-right: var(--be-scroll-mobile-carousel-end-spacer, 0px);
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide {
	display: flex;
	flex: 0 0 var(--be-scroll-mobile-carousel-card-width, var(--be-scroll-mobile-carousel-width, 84%));
	flex-direction: column;
	width: var(--be-scroll-mobile-carousel-card-width, var(--be-scroll-mobile-carousel-width, 84%));
	min-width: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__media {
	position: relative;
	order: 1;
	width: 100%;
	height: var(--be-scroll-mobile-carousel-media-height, var(--be-scroll-mobile-height));
	min-height: 1px;
	overflow: hidden;
	border-radius: var(--be-scroll-current-radius);
	background: var(--be-scroll-background);
	isolation: isolate;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__media picture,
.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__media img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__media img {
	object-fit: var(--be-scroll-current-object-fit);
	object-position: var(--be-scroll-mobile-image-position, var(--be-scroll-image-position, 50% 50%));
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__step {
	order: 2;
	min-height: 0;
	cursor: default;
}

/* A mobile carousel slide is one complete visual card. Every text box stays
   visible in the bleed, while exactly one committed slide receives the global
   active surface. JavaScript holds that committed state during a swipe/track
   drag and changes it once on release, so the active background cannot flash
   across intermediate cards. */
.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide .be-scroll-mobile-carousel__step {
	position: relative;
	display: grid;
	width: 100%;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: none !important;
	transition: none !important;
	border-color: var(--be-scroll-step-border, transparent) !important;
	background: var(--be-scroll-step-bg) !important;
	color: var(--be-scroll-step-text) !important;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide.is-active .be-scroll-mobile-carousel__step,
.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide .be-scroll-mobile-carousel__step.is-active {
	border-color: var(--be-scroll-step-active-border, var(--be-scroll-step-border, transparent)) !important;
	background: var(--be-scroll-step-active-bg) !important;
	color: var(--be-scroll-step-active-text) !important;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide .be-scroll-mobile-carousel__step .be-scroll-step__number {
	color: var(--be-scroll-step-number) !important;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide.is-active .be-scroll-mobile-carousel__step .be-scroll-step__number,
.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__slide .be-scroll-mobile-carousel__step.is-active .be-scroll-step__number {
	color: var(--be-scroll-step-active-number, var(--be-scroll-step-number)) !important;
}

.be-scroll-section.is-mobile-carousel[data-be-mobile-steps-position="above"] .be-scroll-mobile-carousel__step,
.be-scroll-section.is-mobile-carousel[data-be-mobile-steps-position="left"] .be-scroll-mobile-carousel__step {
	order: 1;
}

.be-scroll-section.is-mobile-carousel[data-be-mobile-steps-position="above"] .be-scroll-mobile-carousel__media,
.be-scroll-section.is-mobile-carousel[data-be-mobile-steps-position="left"] .be-scroll-mobile-carousel__media {
	order: 2;
}

.be-scroll-section.is-mobile-carousel .be-scroll-mobile-carousel__navigation {
	display: grid;
	margin-top: var(--be-scroll-current-steps-gap);
}


/* Scrolling Sections 1.3.60 — stable native-style navigation-thumb dragging. */
.be-scroll-section[data-be-scroll-track-dragging="true"] .be-scroll-steps-navigation__thumb,
.be-scroll-section[data-be-mobile-carousel-dragging="true"] .be-scroll-steps-navigation__thumb {
	transition: none !important;
}


/* =========================================================
   1.3.63 whole-card hover colour protection
   =========================================================
   Some themes recolour every descendant of a hovered anchor. Whole-card mode
   wraps the visible card in an anchor, so explicitly keep the card's own copy
   colour unless a carousel-level hover colour has been selected. */
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:visited {
	color: var(--be-card-text, var(--be-carousel-default-text, inherit)) !important;
	text-decoration: none !important;
}

.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active {
	color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, inherit))) !important;
	text-decoration: none !important;
}

.be-carousel .be-carousel-card--whole-link .be-carousel-card__face--front {
	transition: color .2s ease;
}

.be-carousel .be-carousel-card--whole-link .be-carousel-card__face--front::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	border-radius: inherit;
	background: var(--be-carousel-whole-card-hover-bg, transparent);
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease;
}

.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__face--front,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__face--front {
	color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, inherit))) !important;
}

.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__face--front::after,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__face--front::after {
	opacity: 1;
}

/* Copy elements are pinned to the face colour so broad theme rules such as
   `a:hover * { color: ... }` cannot make the text disappear. Top-slot colours
   remain independent and continue to use their own normal/hover controls. */
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__description p,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__link-icon,
.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__link-icon i,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__description p,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__link-icon,
.be-carousel .be-carousel-card--whole-link:focus-within .be-carousel-card__link-icon i {
	color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, inherit))) !important;
}

/* =========================================================
   1.3.64 whole-card text-fill protection
   =========================================================
   Site-wide animated-link CSS can set `-webkit-text-fill-color: transparent`
   on hovered anchors. That value is inherited by the card copy even when its
   normal `color` is restored, so pin both properties in whole-card mode. */
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:visited {
	color: var(--be-card-text, var(--be-carousel-default-text, inherit)) !important;
	-webkit-text-fill-color: var(--be-card-text, var(--be-carousel-default-text, currentColor)) !important;
}

.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active {
	color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, inherit))) !important;
	-webkit-text-fill-color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, currentColor))) !important;
}

.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__face--front,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__face--front,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__face--front,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__face--front,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__description p,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:hover .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__description p,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__description p,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__description p,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:active .be-carousel-card__link-text {
	color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, inherit))) !important;
	-webkit-text-fill-color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, currentColor))) !important;
}

/* The animated-link overlay is not applicable to a full-card link. */
.grve-text .be-carousel .be-carousel-card__whole-link::after,
.grve-text .be-carousel .be-carousel-card__whole-link:hover::after,
.grve-text .be-carousel .be-carousel-card__whole-link:focus::after,
.grve-text .be-carousel .be-carousel-card__whole-link:focus-visible::after {
	content: none !important;
	display: none !important;
	opacity: 0 !important;
}

/* Preserve each descendant's own colour (number slots, icons and copy) rather
   than forcing every child to inherit the card-copy fill colour. */
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link,
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link * {
	-webkit-text-fill-color: currentColor !important;
}


/* =========================================================
   1.3.65 configurable whole-card link hover interaction
   =========================================================
   Only cards that render a real whole-card anchor receive these effects.
   Ordinary cards and icon-only links retain their existing behaviour. */
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link {
	transform-origin: center center;
	will-change: transform, box-shadow;
	transition:
		transform var(--be-carousel-whole-card-hover-duration, 240ms) var(--be-carousel-whole-card-hover-easing, cubic-bezier(.2,.8,.2,1)),
		box-shadow var(--be-carousel-whole-card-hover-duration, 240ms) var(--be-carousel-whole-card-hover-easing, cubic-bezier(.2,.8,.2,1)) !important;
}

.be-carousel .be-carousel-card--whole-link .be-carousel-card__face--front,
.be-carousel .be-carousel-card--whole-link .be-carousel-card__face--front::after {
	transition-duration: var(--be-carousel-whole-card-hover-duration, 240ms);
	transition-timing-function: var(--be-carousel-whole-card-hover-easing, cubic-bezier(.2,.8,.2,1));
}

.be-carousel .be-carousel-card--whole-link .be-carousel-card__slot--arrow {
	transform-origin: center center;
	transition:
		background-color var(--be-carousel-whole-card-hover-duration, 240ms) var(--be-carousel-whole-card-hover-easing, cubic-bezier(.2,.8,.2,1)),
		color var(--be-carousel-whole-card-hover-duration, 240ms) var(--be-carousel-whole-card-hover-easing, cubic-bezier(.2,.8,.2,1)),
		transform var(--be-carousel-whole-card-hover-duration, 240ms) var(--be-carousel-whole-card-hover-easing, cubic-bezier(.2,.8,.2,1));
}

@media (hover: hover) and (pointer: fine) {
	.be-carousel .be-carousel-card--whole-link:hover {
		z-index: 4;
	}

	.be-carousel .be-carousel-card--whole-link:hover > a.be-carousel-card__whole-link {
		transform: translate3d(0, var(--be-carousel-whole-card-hover-translate-y, -5px), 0) scale(var(--be-carousel-whole-card-hover-scale, 1)) !important;
		box-shadow: var(--be-carousel-whole-card-hover-shadow, 0 8px 16px -4px rgba(0,0,0,.14)) !important;
	}

	.be-carousel .be-carousel-card--whole-link:hover > a.be-carousel-card__whole-link .be-carousel-card__slot--arrow {
		transform: scale(var(--be-carousel-whole-card-hover-icon-scale, 1.1)) !important;
	}
}

/* Keyboard users receive the same affordance without requiring a mouse. */
.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible {
	transform: translate3d(0, var(--be-carousel-whole-card-hover-translate-y, -5px), 0) scale(var(--be-carousel-whole-card-hover-scale, 1)) !important;
	box-shadow: var(--be-carousel-whole-card-hover-shadow, 0 8px 16px -4px rgba(0,0,0,.14)) !important;
}

.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__slot--arrow {
	transform: scale(var(--be-carousel-whole-card-hover-icon-scale, 1.1)) !important;
}

/* Never animate a card while the carousel itself is being dragged. */
.be-carousel[data-be-dragging="true"] .be-carousel-card--whole-link > a.be-carousel-card__whole-link,
.be-carousel[data-be-progress-dragging="true"] .be-carousel-card--whole-link > a.be-carousel-card__whole-link {
	transform: none !important;
	box-shadow: none !important;
}

.be-carousel[data-be-dragging="true"] .be-carousel-card--whole-link .be-carousel-card__slot--arrow,
.be-carousel[data-be-progress-dragging="true"] .be-carousel-card--whole-link .be-carousel-card__slot--arrow {
	transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link,
	.be-carousel .be-carousel-card--whole-link .be-carousel-card__slot--arrow,
	.be-carousel .be-carousel-card--whole-link .be-carousel-card__face--front,
	.be-carousel .be-carousel-card--whole-link .be-carousel-card__face--front::after {
		transition-duration: 0.01ms !important;
	}

	.be-carousel .be-carousel-card--whole-link:hover > a.be-carousel-card__whole-link,
	.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible,
	.be-carousel .be-carousel-card--whole-link:hover .be-carousel-card__slot--arrow,
	.be-carousel .be-carousel-card--whole-link > a.be-carousel-card__whole-link:focus-visible .be-carousel-card__slot--arrow {
		transform: none !important;
	}
}

/* =========================================================
   1.3.86 universal site-wide entrance animation
   =========================================================
   Every animation unit uses the same fade-and-rise transition. JavaScript
   observes the unit itself (or a repeated component root), so stacked mobile
   columns cannot finish before they reach the viewport. */
.be-site-animation-item[data-be-site-animation-state="pending"] {
	opacity: 0 !important;
	translate: 0 var(--be-site-animation-distance, 20px) !important;
	transition: none !important;
	will-change: opacity, translate;
}

.be-site-animation-item[data-be-site-animation-state="active"] {
	opacity: 1 !important;
	translate: 0 0 !important;
	transition:
		opacity var(--be-site-animation-duration, 600ms) var(--be-site-animation-easing, ease-in-out) var(--be-site-animation-delay, 0ms),
		translate var(--be-site-animation-duration, 600ms) var(--be-site-animation-easing, ease-in-out) var(--be-site-animation-delay, 0ms) !important;
	will-change: opacity, translate;
}


/* Direct shared buttons are uncommon because normal WPBakery buttons animate
   through their neutral .grve-element wrapper. These higher-specificity states
   keep shortcode buttons correct when a component legitimately owns the anchor
   itself, even when the external button hierarchy is loaded after this file. */
body #grve-main-content a.grve-btn.be-button.be-site-animation-item[data-be-site-animation-state="pending"],
body #grve-main-content button.grve-btn.be-button.be-site-animation-item[data-be-site-animation-state="pending"] {
	opacity: 0 !important;
	translate: 0 var(--be-site-animation-distance, 20px) !important;
	transition: none !important;
}

body #grve-main-content a.grve-btn.be-button.be-site-animation-item[data-be-site-animation-state="active"],
body #grve-main-content button.grve-btn.be-button.be-site-animation-item[data-be-site-animation-state="active"] {
	opacity: 1 !important;
	translate: 0 0 !important;
	transition:
		opacity var(--be-site-animation-duration, 600ms) var(--be-site-animation-easing, ease-in-out) var(--be-site-animation-delay, 0ms),
		translate var(--be-site-animation-duration, 600ms) var(--be-site-animation-easing, ease-in-out) var(--be-site-animation-delay, 0ms),
		background-color var(--be-button-transition, 220ms ease),
		background-image var(--be-button-transition, 220ms ease),
		color var(--be-button-transition, 220ms ease),
		transform var(--be-button-transition, 220ms ease) !important;
}

/* WPBakery section, row and column backgrounds keep the separate, slower,
   one-way settle treatment. */
.be-site-animation-background-shell {
	overflow: hidden !important;
}

/* The critical inline head rule handles the actual first paint. This body-class
   selector remains as a compatible fallback until the preparation script hands
   each image over to its persistent per-image entrance class. */
body.be-site-animation-background-preload #grve-main-content .grve-background-wrapper .grve-bg-image {
	opacity: 1 !important;
	translate: 0 0 !important;
	scale: var(--be-site-animation-background-scale, 1.025) !important;
	transform-origin: 50% 50%;
	backface-visibility: hidden;
	transition: none !important;
}

.be-site-animation-item--background-enter {
	opacity: 1 !important;
	translate: 0 0 !important;
	scale: var(--be-site-animation-background-scale, 1.025) !important;
	transform-origin: 50% 50%;
	backface-visibility: hidden;
	transition: none !important;
}

.be-site-animation-item--background-enter.be-site-animation-item--background-active {
	scale: 1 !important;
	transition-property: scale !important;
	transition-duration: var(--be-site-animation-background-duration, 1400ms) !important;
	transition-timing-function: var(--be-site-animation-easing, ease-in-out) !important;
	transition-delay: 0ms !important;
	will-change: scale;
}

.be-site-animation-item--background-enter.be-site-animation-item--background-complete {
	scale: 1 !important;
	transition: none !important;
	will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
	.be-site-animation-item,
	.be-site-animation-item--background-enter {
		opacity: revert !important;
		translate: none !important;
		scale: none !important;
		transition: none !important;
		will-change: auto !important;
	}
}

/* =========================================================
   1.3.77 BEFF verified venue directory
   ========================================================= */
.beff-venues {
	--beff-panel-bg: #faf5f2;
	--beff-footer-bg: #e7ddd6;
	--beff-text: #252525;
	--beff-muted: #6d6865;
	--beff-divider: rgba(37, 37, 37, 0.28);
	--beff-live: #66edb6;
	--beff-radius: 24px;
	width: 100%;
	color: var(--beff-text);
	font-family: var(--be-font-sans);
}

.beff-venues *,
.beff-venues *::before,
.beff-venues *::after {
	box-sizing: border-box;
}

.beff-venues__panel {
	overflow: hidden;
	width: 100%;
	border-radius: var(--beff-radius);
	background: var(--beff-panel-bg);
}

.beff-venues__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 30px 34px 14px;
}

.beff-venues__title {
	min-width: 0;
	margin: 0 !important;
	color: var(--beff-text) !important;
	font-family: var(--be-font-display) !important;
	font-size: var(--beff-title-size, 34px) !important;
	font-weight: 400 !important;
	line-height: 1.08 !important;
	letter-spacing: -0.035em !important;
}

.beff-venues__title em,
.beff-venues__title span {
	color: #2fc5b8;
	font-style: normal;
}

.beff-venues .system-status.beff-venues__system-status,
.beff-venues .system-status.beff-venues__row-status {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	min-width: 0;
	margin: 0 !important;
	padding: 11px 18px 9px !important;
	border: 0;
	border-radius: 14px;
	background: rgba(137, 127, 120, 0.09);
	color: var(--beff-text) !important;
	font-family: inherit !important;
	font-size: var(--beff-status-size, 13px) !important;
	font-weight: 400;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	white-space: nowrap;
}

.beff-venues .system-status.beff-venues__system-status::before,
.beff-venues .system-status.beff-venues__row-status::before {
	content: "";
	position: static;
	display: block;
	width: 10px;
	height: 10px;
	flex: 0 0 10px;
	margin: 0;
	padding: 0;
	border-radius: 4px;
	background: var(--beff-live);
	box-shadow: 0 0 0 0 rgba(102, 237, 182, 0.7);
	animation: be-status-pulse 1.6s ease-in-out infinite;
	transform: translateY(-1px);
}

@keyframes be-status-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(102, 237, 182, 0.7);
	}
	70% {
		box-shadow: 0 0 12px 6px rgba(102, 237, 182, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(102, 237, 182, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.beff-venues .system-status.beff-venues__system-status::before,
	.beff-venues .system-status.beff-venues__row-status::before {
		animation: none;
		box-shadow: none;
	}
}

.beff-venues__status-mobile {
	display: none;
}

.beff-venues__table {
	padding: 0 34px;
}

.beff-venues__row {
	display: grid;
	grid-template-columns: minmax(0, 2.25fr) minmax(110px, 0.72fr) minmax(110px, 0.56fr) minmax(78px, 0.34fr);
	align-items: center;
	column-gap: 24px;
	min-height: 105px;
	padding: 19px 0;
	border-bottom: 1px solid var(--beff-divider);
}

.beff-venues__row:last-child {
	border-bottom: 0;
}

.beff-venues__venue,
.beff-venues__category,
.beff-venues__aqi,
.beff-venues__live {
	min-width: 0;
}

.beff-venues__venue strong {
	display: block;
	margin: 0 0 2px;
	font-family: var(--be-font-sans);
	font-size: var(--beff-venue-name-size, 20px);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.beff-venues__venue span {
	color: var(--beff-muted);
	font-size: var(--beff-meta-size, 13px);
	line-height: 1.25;
}

.beff-venues__category {
	color: var(--beff-muted);
	font-size: var(--beff-category-size, 13px);
	line-height: 1.25;
	white-space: nowrap;
}

.beff-venues__footer-copy span,
.beff-venues__footer-all,
.beff-venues__footer-map {
	color: var(--beff-muted);
	font-size: var(--beff-footer-meta-size, 13px);
	line-height: 1.25;
}

.beff-venues__aqi {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.beff-venues__aqi strong {
	display: block;
	margin: 0;
	color: var(--beff-venue-aqi-colour, #95dbd1);
	font-family: var(--be-font-display);
	font-size: var(--beff-aqi-size, 62px);
	font-weight: 700 !important;
	line-height: 0.82;
	letter-spacing: -0.045em;
}

.beff-venues__aqi span {
	display: block;
	margin-top: 7px;
	color: var(--beff-muted);
	font-size: var(--beff-aqi-unit-size, 8px);
	line-height: 1;
	white-space: nowrap;
}

.beff-venues__live {
	display: flex;
	align-self: stretch;
	align-items: center;
	justify-content: flex-end;
}

.beff-venues .system-status.beff-venues__row-status {
	padding: 0 !important;
	background: transparent;
	font-size: var(--beff-row-status-size, 13px) !important;
}

/* Status labels belong to their header/row animation unit, never a nested pending unit. */
.beff-venues .system-status.beff-venues__system-status[data-be-site-animation-state],
.beff-venues .system-status.beff-venues__row-status[data-be-site-animation-state] {
	opacity: 1 !important;
	translate: none !important;
	transition: none !important;
}

.beff-venues__offline {
	color: var(--beff-muted);
	font-size: var(--beff-row-status-size, 13px);
}

.beff-venues__footer {
	display: grid;
	grid-template-columns: minmax(0, 2.25fr) minmax(110px, 0.72fr) minmax(110px, 0.56fr) minmax(78px, 0.34fr);
	align-items: center;
	column-gap: 24px;
	min-height: 112px;
	padding: 24px 34px;
	background: var(--beff-footer-bg);
}

.beff-venues__footer-copy strong {
	display: block;
	margin-bottom: 3px;
	font-family: var(--be-font-sans);
	font-size: var(--beff-footer-title-size, 17px);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.03em;
}

.beff-venues__footer-copy span {
	display: block;
}

.beff-venues__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	justify-self: start;
	width: fit-content;
	margin: 0;
	padding: 0;
	border: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	color: #000 !important;
	-webkit-text-fill-color: #000 !important;
	font-family: var(--be-font-sans);
	font-size: var(--beff-button-size, 14px);
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-shadow: none !important;
	white-space: nowrap;
	filter: none !important;
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

.beff-venues__button::before,
.beff-venues__button::after,
.beff-venues__button-text::before,
.beff-venues__button-text::after {
	content: none !important;
	display: none !important;
}

.beff-venues__button-text,
.beff-venues__button-icon,
.beff-venues__button-icon::before {
	color: #000 !important;
	-webkit-text-fill-color: #000 !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-shadow: none !important;
	filter: none !important;
	opacity: 1 !important;
	transition: none !important;
}

.beff-venues__button-icon {
	display: inline-block;
	flex: 0 0 auto;
	font-size: 13px;
	line-height: 1;
	transform: translateY(-1px) !important;
	transition: transform 220ms ease !important;
}

.beff-venues__button:link,
.beff-venues__button:visited,
.beff-venues__button:hover,
.beff-venues__button:focus,
.beff-venues__button:focus-visible,
.beff-venues__button:active,
.beff-venues__button:link .beff-venues__button-text,
.beff-venues__button:visited .beff-venues__button-text,
.beff-venues__button:hover .beff-venues__button-text,
.beff-venues__button:focus .beff-venues__button-text,
.beff-venues__button:focus-visible .beff-venues__button-text,
.beff-venues__button:active .beff-venues__button-text,
.beff-venues__button:link .beff-venues__button-icon,
.beff-venues__button:visited .beff-venues__button-icon,
.beff-venues__button:hover .beff-venues__button-icon,
.beff-venues__button:focus .beff-venues__button-icon,
.beff-venues__button:focus-visible .beff-venues__button-icon,
.beff-venues__button:active .beff-venues__button-icon,
.beff-venues__button:link .beff-venues__button-icon::before,
.beff-venues__button:visited .beff-venues__button-icon::before,
.beff-venues__button:hover .beff-venues__button-icon::before,
.beff-venues__button:focus .beff-venues__button-icon::before,
.beff-venues__button:focus-visible .beff-venues__button-icon::before,
.beff-venues__button:active .beff-venues__button-icon::before {
	color: #000 !important;
	-webkit-text-fill-color: #000 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-shadow: none !important;
	filter: none !important;
	opacity: 1 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

.beff-venues__button:is(:hover, :focus, :focus-visible, :active) {
	transform: none !important;
}

.beff-venues__button:is(:hover, :focus-visible) .beff-venues__button-icon {
	transform: translate(2px, -1px) !important;
}

.beff-venues__footer-map {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 7px;
}

.beff-venues__footer-map i {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 4px;
	background: #aaa7a4;
}

.beff-venues__empty {
	margin: 0;
	padding: 40px 34px 56px;
	color: var(--beff-muted);
}

@media (max-width: 767px) {
	.beff-venues {
		--beff-radius: 24px;
	}

	.beff-venues__header {
		align-items: center;
		gap: 16px;
		padding: 32px 24px 20px;
	}

	.beff-venues__title {
		max-width: 74%;
		font-size: var(--beff-mobile-title-size, 39px) !important;
		line-height: 1.08 !important;
	}

	.beff-venues .system-status.beff-venues__system-status {
		flex: 0 0 auto;
		padding: 11px 14px 9px !important;
		border-radius: 13px;
		font-size: var(--beff-mobile-status-size, 13px) !important;
	}

	.beff-venues__status-desktop {
		display: none;
	}

	.beff-venues__status-mobile {
		display: inline;
	}

	.beff-venues__table {
		padding: 0 24px;
	}

	.beff-venues__row {
		grid-template-columns: minmax(0, 1fr) minmax(76px, 0.28fr);
		column-gap: 18px;
		min-height: 132px;
		padding: 25px 0;
	}

	.beff-venues__venue strong {
		font-size: var(--beff-mobile-venue-name-size, 25px);
		line-height: 1.12;
	}

	.beff-venues__venue span {
		font-size: var(--beff-mobile-meta-size, 15px);
	}

	.beff-venues__category,
	.beff-venues__live {
		display: none;
	}

	.beff-venues__aqi {
		align-items: flex-end;
		text-align: right;
	}

	.beff-venues__aqi strong {
		font-size: var(--beff-mobile-aqi-size, 72px);
		line-height: 0.78;
	}

	.beff-venues__aqi span {
		margin-top: 10px;
		font-size: var(--beff-mobile-aqi-unit-size, 9px);
	}

	.beff-venues__footer {
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 20px;
		min-height: 150px;
		padding: 29px 24px;
	}

	.beff-venues__footer-copy strong {
		font-size: var(--beff-mobile-footer-title-size, 23px);
	}

	.beff-venues__footer-copy span {
		font-size: var(--beff-mobile-footer-meta-size, 14px);
	}

	.beff-venues__footer-all,
	.beff-venues__footer-map {
		display: none;
	}

	.beff-venues__button {
		justify-self: end;
		font-size: var(--beff-mobile-button-size, 16px);
	}
}

@media (max-width: 430px) {
	.beff-venues__header,
	.beff-venues__table,
	.beff-venues__footer {
		padding-left: 20px;
		padding-right: 20px;
	}

	.beff-venues__title {
		max-width: 72%;
	}
}

/* =========================================================
   1.3.94 shared button / carousel CTA refinements
   ========================================================= */

/* Keep flip-card copy centred while the turn CTA remains at the lower edge. */
.be-carousel-card__content:has(> a.be-carousel-card__flip-cue.be-button) {
	position: relative;
}

.be-carousel-card__content > a.be-carousel-card__flip-cue.be-button {
	position: absolute !important;
	left: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	bottom: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	z-index: 3 !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
}

/* Front CTA normal colour. */
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain > .grve-btn-inner,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain .be-carousel-card__link-text {
	color: var(--be-card-link-colour, var(--be-card-text, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain .be-carousel-card__link-icon *,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain .grve-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain .grve-icon::before {
	color: var(--be-card-link-icon-colour, var(--be-card-link-colour, inherit)) !important;
}

/* Front CTA hover colour. */
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active),
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) > .grve-btn-inner,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-text {
	color: var(--be-card-link-hover-colour, var(--be-card-link-colour, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-icon *,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .grve-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front a.be-carousel-card__link.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .grve-icon::before {
	color: var(--be-card-link-icon-hover-colour, var(--be-card-link-icon-colour, inherit)) !important;
}

/* Reverse CTA normal colour. */
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain > .grve-btn-inner,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain .be-carousel-card__source-text {
	color: var(--be-card-source-colour, var(--be-card-back-text, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain .be-carousel-card__source-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain .be-carousel-card__source-icon *,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain .grve-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain .grve-icon::before {
	color: var(--be-card-source-icon-colour, var(--be-card-source-colour, inherit)) !important;
}

/* Reverse CTA hover colour. */
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active),
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) > .grve-btn-inner,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__source-text {
	color: var(--be-card-source-hover-colour, var(--be-card-source-colour, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__source-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__source-icon *,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .grve-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back a.be-carousel-card__source.be-button.button-plain:is(:hover, :focus, :focus-visible, :active) .grve-icon::before {
	color: var(--be-card-source-icon-hover-colour, var(--be-card-source-icon-colour, inherit)) !important;
}


/* Whole-card and non-link CTA labels use the same dedicated colour settings. */
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button) .be-carousel-card__link-text {
	color: var(--be-card-link-colour, var(--be-card-text, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button) .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button) .be-carousel-card__link-icon * {
	color: var(--be-card-link-icon-colour, var(--be-card-link-colour, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):is(:hover, :focus, :focus-visible, :active),
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__link:not(.be-button),
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__link:not(.be-button) .be-carousel-card__link-text {
	color: var(--be-card-link-hover-colour, var(--be-card-link-colour, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__link:not(.be-button):is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-icon *,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__link:not(.be-button) .be-carousel-card__link-icon,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__link:not(.be-button) .be-carousel-card__link-icon * {
	color: var(--be-card-link-icon-hover-colour, var(--be-card-link-icon-colour, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button),
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button) .be-carousel-card__source-text {
	color: var(--be-card-source-colour, var(--be-card-back-text, inherit)) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button) .be-carousel-card__source-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__source:not(.be-button) .be-carousel-card__source-icon * {
	color: var(--be-card-source-icon-colour, var(--be-card-source-colour, inherit)) !important;
}


/* =========================================================
   1.3.95 native carousel CTA and face-colour refinements
   ========================================================= */

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__title,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__description,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__description p {
	color: var(--be-card-text, var(--be-carousel-default-text, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__back-label,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__back-title,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__back-description,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__back-description p {
	color: var(--be-card-back-text, #fff) !important;
	-webkit-text-fill-color: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__cta {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	align-self: flex-start !important;
	gap: 8px !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 0 !important;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	font: inherit !important;
	font-size: var(--be-card-link-size, var(--be-carousel-link-size, inherit)) !important;
	line-height: 1.15 !important;
	text-align: left !important;
	text-decoration: none !important;
	transform: none !important;
	transition: color .2s ease !important;
	cursor: pointer !important;
}

.be-carousel .be-carousel-card .be-carousel-card__cta::before,
.be-carousel .be-carousel-card .be-carousel-card__cta::after {
	content: none !important;
	display: none !important;
}

.be-carousel .be-carousel-card .be-carousel-card__cta .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__cta .be-carousel-card__source-icon {
	order: -1 !important;
	flex: 0 0 auto !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-text {
	color: var(--be-card-link-colour, var(--be-card-text, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-icon *,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-icon::before {
	color: var(--be-card-link-icon-colour, var(--be-card-link-colour, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
	fill: currentColor !important;
	stroke: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link:is(:hover, :focus, :focus-visible, :active),
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-text,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-text {
	color: var(--be-card-link-hover-colour, var(--be-card-link-colour, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__link-icon *,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-icon,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__cta.be-carousel-card__link .be-carousel-card__link-icon * {
	color: var(--be-card-link-icon-hover-colour, var(--be-card-link-icon-colour, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
	fill: currentColor !important;
	stroke: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__back-content {
	position: relative !important;
	justify-content: center !important;
}

.be-carousel .be-carousel-card .be-carousel-card__back-copy {
	margin: 0 !important;
}

.be-carousel .be-carousel-card .be-carousel-card__source.be-carousel-card__cta {
	position: absolute !important;
	left: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	right: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	bottom: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	z-index: 4 !important;
	margin: 0 !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source .be-carousel-card__source-text {
	color: var(--be-card-source-colour, var(--be-card-back-text, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source .be-carousel-card__source-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source .be-carousel-card__source-icon *,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source .be-carousel-card__source-icon::before {
	color: var(--be-card-source-icon-colour, var(--be-card-source-colour, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
	fill: currentColor !important;
	stroke: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source:is(:hover, :focus, :focus-visible, :active),
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__source-text {
	color: var(--be-card-source-hover-colour, var(--be-card-source-colour, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__source-icon,
.be-carousel .be-carousel-card .be-carousel-card__face--back .be-carousel-card__cta.be-carousel-card__source:is(:hover, :focus, :focus-visible, :active) .be-carousel-card__source-icon * {
	color: var(--be-card-source-icon-hover-colour, var(--be-card-source-icon-colour, #fff)) !important;
	-webkit-text-fill-color: currentColor !important;
	fill: currentColor !important;
	stroke: currentColor !important;
}

.be-carousel .be-carousel-card .be-carousel-card__content:has(> .be-carousel-card__flip-cue) {
	padding-bottom: calc(var(--be-card-padding, var(--be-carousel-padding, 24px)) + 42px) !important;
}

.be-carousel .be-carousel-card .be-carousel-card__content > .be-carousel-card__flip-cue {
	position: absolute !important;
	left: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	right: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	bottom: var(--be-card-padding, var(--be-carousel-padding, 24px)) !important;
	z-index: 4 !important;
	margin: 0 !important;
}


/* Preserve the existing optional whole-card hover text colour while CTA
 * text/icon hover colours remain independently controlled. */
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__eyebrow,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__title,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__description,
.be-carousel .be-carousel-card--whole-link:is(:hover, :focus-within) .be-carousel-card__face--front .be-carousel-card__description p {
	color: var(--be-carousel-whole-card-hover-text, var(--be-card-text, var(--be-carousel-default-text, #fff))) !important;
	-webkit-text-fill-color: currentColor !important;
}


/* =========================================================
   1.3.96 shortcode button visibility safeguards
   ========================================================= */

/* Shared button colours live in the site stylesheet. The plugin only prevents
 * theme hover effects from hiding shortcode-generated labels or icons. */
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button > .grve-btn-inner,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button > .grve-btn-inner > span,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button .grve-btn-icon,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button .grve-icon,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button .grve-icon::before {
	opacity: 1 !important;
	visibility: visible !important;
	-webkit-text-fill-color: currentColor !important;
	clip: auto !important;
	clip-path: none !important;
	filter: none !important;
}

:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button > .grve-btn-inner,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button > .grve-btn-inner > span,
:is(.be-widget, .be-aqi-builder-widget) a.grve-btn.be-button .grve-btn-icon {
	transform: none !important;
	translate: none !important;
}


/* Outer-section viewport height mode. Runtime calculates the exact pixel
 * remainder after authored content above and below the shortcode. */
.be-scroll-outer-viewport-owner {
	box-sizing: border-box !important;
}

.be-scroll-section.is-outer-viewport-height,
.be-scroll-section.is-outer-viewport-height .be-scroll-section__combined,
.be-scroll-section.is-outer-viewport-height .be-scroll-media,
.be-scroll-section.is-outer-viewport-height .be-scroll-media-wrap {
	min-height: 0 !important;
	max-height: none !important;
}

/* ========================================================================
   Scrolling Sections 1.4.38 — multi-image stages and full-story frames
   ======================================================================== */
.be-scroll-section--combined .be-scroll-section__combined {
	position: relative;
	isolation: isolate;
}

/* A full-story image uses the complete combined canvas, including the space
 * normally occupied by generated text cards. The same four overlay slots stay
 * above the image and the authored text cards remain safely underneath. */
.be-scroll-section--combined[data-be-frame-layout="full"] .be-scroll-section__combined > .be-scroll-media-wrap {
	position: absolute !important;
	z-index: 20 !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
}

.be-scroll-section--combined[data-be-frame-layout="full"] .be-scroll-section__combined > .be-scroll-media-wrap > .be-scroll-media {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
}

.be-scroll-section--combined[data-be-frame-layout="full"] .be-scroll-section__combined > .be-scroll-steps-group {
	position: relative;
	z-index: 1;
}

.be-scroll-section--combined[data-be-frame-layout="media"] .be-scroll-section__combined > .be-scroll-media-wrap {
	z-index: 2;
}

/* Images-only stages deliberately leave every generated text card in its
 * normal inactive state; JavaScript removes is-active from all cards. */
.be-scroll-section[data-be-active-has-text="false"] .be-scroll-step.is-active {
	border-color: var(--be-scroll-step-border, transparent);
	background: var(--be-scroll-step-bg);
	color: var(--be-scroll-step-text);
}

.be-scroll-section[data-be-active-has-text="false"] .be-scroll-step.is-active .be-scroll-step__number {
	color: var(--be-scroll-step-number);
}

/* ========================================================================
   Scrolling Sections 1.4.55 — native sticky track
   Generated stories use ordinary document scroll. The authored section/media
   moves absolute -> fixed -> absolute inside an invisible runway, matching the
   smooth Video Scroll model without body locks or wheel/touch interception.
   ======================================================================== */
.be-scroll-native-track {
	position: relative;
	display: block;
	box-sizing: border-box;
	overflow: visible;
	overflow-anchor: none;
}

.be-scroll-native-pinned {
	will-change: top, left, width;
	backface-visibility: hidden;
	overflow-anchor: none;
}

.be-scroll-section[data-be-scroll-engine="native-sticky-track"],
.be-scroll-section[data-be-scroll-engine="native-sticky-track"] .be-scroll-media-wrap {
	overflow-anchor: none;
}
