/* Scroll background colour */
.bhw-sbg-canvas-yes,
.bhw-sbg-live-canvas {
	transition: background-color var(--bhw-sbg-speed, 0.6s) ease, color var(--bhw-sbg-speed, 0.6s) ease;
}
body.bhw-sbg-live-canvas { transition: background-color 0.6s ease, color 0.6s ease; }

/* Shrink on scroll */
.bhw-shrink-yes { will-change: transform; }

/* Parallax reveal */
.bhw-preveal-yes { position: relative; overflow: hidden; }
.bhw-preveal-yes > .bhw-preveal-shade {
	position: absolute;
	inset: 0;
	z-index: 50;
	background: #000;
	opacity: 0;
	pointer-events: none;
}
.bhw-preveal-yes > .bhw-preveal-shade ~ * { will-change: transform; }

/* Animated link underline (extension)
   Opt a single link out with class="bhw-no-underline". */
.bhw-ul-on {
	--bhw-ul-line: currentColor;
	--bhw-ul-h: max(1px, 0.07em);
	--bhw-ul-gap: 0.08em;
	--bhw-ul-speed: 0.5s;
}
.bhw-ul-on.bhw-ul-scope-all a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)),
.bhw-ul-on.bhw-ul-scope-text :is(p, li, blockquote, figcaption, dd, td) a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)) {
	text-decoration: none !important;
	background-image: linear-gradient(var(--bhw-ul-line), var(--bhw-ul-line));
	background-repeat: no-repeat;
	background-size: 0% var(--bhw-ul-h);
	background-position: 100% 100%;
	padding-bottom: max(0px, var(--bhw-ul-gap));
	transition: background-size var(--bhw-ul-speed) cubic-bezier(0.625, 0.05, 0, 1), color 0.3s ease;
}
.bhw-ul-on.bhw-ul-scope-all a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)):is(:hover, :focus-visible),
.bhw-ul-on.bhw-ul-scope-text :is(p, li, blockquote, figcaption, dd, td) a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)):is(:hover, :focus-visible) {
	background-size: 100% var(--bhw-ul-h);
	background-position: 0% 100%;
	transition: background-size var(--bhw-ul-speed) cubic-bezier(0.625, 0.05, 0, 1), color 0.3s ease;
}
/* centre */
.bhw-ul-on.bhw-ul-style-center a:not(.bhw-no-underline) { background-position: 50% 100% !important; }
/* always on – wipe out & redraw */
.bhw-ul-on.bhw-ul-style-alt.bhw-ul-scope-all a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)),
.bhw-ul-on.bhw-ul-style-alt.bhw-ul-scope-text :is(p, li, blockquote, figcaption, dd, td) a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)) {
	background-image: linear-gradient(var(--bhw-ul-line), var(--bhw-ul-line)), linear-gradient(var(--bhw-ul-line), var(--bhw-ul-line));
	background-size: 100% var(--bhw-ul-h), 0% var(--bhw-ul-h);
	background-position: 100% 100%, 0% 100%;
	transition: background-size var(--bhw-ul-speed) cubic-bezier(0.625, 0.05, 0, 1), color 0.3s ease;
}
.bhw-ul-on.bhw-ul-style-alt.bhw-ul-scope-all a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)):is(:hover, :focus-visible),
.bhw-ul-on.bhw-ul-style-alt.bhw-ul-scope-text :is(p, li, blockquote, figcaption, dd, td) a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)):is(:hover, :focus-visible) {
	background-size: 0% var(--bhw-ul-h), 100% var(--bhw-ul-h);
	background-position: 100% 100%, 0% 100%;
}
/* always on – thickens */
.bhw-ul-on.bhw-ul-style-fade.bhw-ul-scope-all a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)),
.bhw-ul-on.bhw-ul-style-fade.bhw-ul-scope-text :is(p, li, blockquote, figcaption, dd, td) a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)) {
	background-size: 100% var(--bhw-ul-h);
	background-position: 0% 100%;
}
.bhw-ul-on.bhw-ul-style-fade.bhw-ul-scope-all a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)):is(:hover, :focus-visible),
.bhw-ul-on.bhw-ul-style-fade.bhw-ul-scope-text :is(p, li, blockquote, figcaption, dd, td) a:not(.bhw-no-underline):not(.elementor-button):not(.bhw-button):not(.bhw-tag):not(:has(img)):is(:hover, :focus-visible) {
	background-size: 100% calc(var(--bhw-ul-h) * 3);
}
@media (prefers-reduced-motion: reduce) {
	.bhw-ul-on a { transition: none !important; }
}

/* ---------- Edge blend (blur / fade divider between containers) ---------- */
:is(.bhw-edge-top-yes, .bhw-edge-bottom-yes) {
	position: relative;
	z-index: var(--bhw-edge-z, 2);
	overflow: visible !important;
}
/* lift the container's own content above its blend */
:is(.bhw-edge-top-yes, .bhw-edge-bottom-yes) > :not(.bhw-edge):not(.elementor-element-overlay):not(.elementor-background-overlay):not(.elementor-shape),
:is(.bhw-edge-top-yes, .bhw-edge-bottom-yes) > .e-con-inner { position: relative; z-index: 1; }
.bhw-edge {
	--in: 60px;
	--out: 60px;
	--blur: 24px;
	--c: transparent;
	--k: 100%;
	position: absolute;
	left: 0;
	right: 0;
	z-index: 0;
	height: calc(var(--in) + var(--out));
	pointer-events: none;
}
.bhw-edge--bottom {
	--in: var(--bhw-edge-bottom-in, 60px);
	--out: var(--bhw-edge-bottom-out, 60px);
	--blur: var(--bhw-edge-bottom-blur, 24px);
	--c: var(--bhw-edge-bottom-c, var(--bhw-edge-bottom-auto, transparent));
	--k: var(--bhw-edge-bottom-k, 100%);
	top: calc(100% - var(--in));
	--dir: to bottom;
}
.bhw-edge--top {
	--in: var(--bhw-edge-top-in, 60px);
	--out: var(--bhw-edge-top-out, 60px);
	--blur: var(--bhw-edge-top-blur, 24px);
	--c: var(--bhw-edge-top-c, var(--bhw-edge-top-auto, transparent));
	--k: var(--bhw-edge-top-k, 100%);
	bottom: calc(100% - var(--in));
	--dir: to top;
}
/* the colour fades from solid (at the join) to clear (at the far end) */
.bhw-edge::before,
.bhw-edge::after {
	content: "";
	position: absolute;
	inset: 0;
}
/* blur layer: strongest at the join, feathered at both ends */
.bhw-edge::before {
	-webkit-backdrop-filter: blur(var(--blur));
	backdrop-filter: blur(var(--blur));
	-webkit-mask-image: linear-gradient(var(--dir), transparent 0%, #000 calc(var(--in) * 0.85), #000 calc(var(--in) + var(--out) * 0.15), transparent 100%);
	mask-image: linear-gradient(var(--dir), transparent 0%, #000 calc(var(--in) * 0.85), #000 calc(var(--in) + var(--out) * 0.15), transparent 100%);
}
/* colour layer – smooth (eased) by default */
.bhw-edge::after {
	opacity: var(--k);
	background: linear-gradient(var(--dir),
		color-mix(in srgb, var(--c) 0%, transparent) 0%,
		color-mix(in srgb, var(--c) 60%, transparent) calc(var(--in) * 0.5),
		var(--c) var(--in),
		color-mix(in srgb, var(--c) 82%, transparent) calc(var(--in) + var(--out) * 0.2),
		color-mix(in srgb, var(--c) 50%, transparent) calc(var(--in) + var(--out) * 0.5),
		color-mix(in srgb, var(--c) 18%, transparent) calc(var(--in) + var(--out) * 0.8),
		color-mix(in srgb, var(--c) 0%, transparent) 100%);
}
.bhw-edge-bottom-curve-linear .bhw-edge--bottom::after,
.bhw-edge-top-curve-linear .bhw-edge--top::after {
	background: linear-gradient(var(--dir), transparent 0%, var(--c) var(--in), transparent 100%);
}
.bhw-edge-bottom-curve-soft .bhw-edge--bottom::after,
.bhw-edge-top-curve-soft .bhw-edge--top::after {
	background: linear-gradient(var(--dir),
		color-mix(in srgb, var(--c) 0%, transparent) 0%,
		var(--c) var(--in),
		color-mix(in srgb, var(--c) 55%, transparent) calc(var(--in) + var(--out) * 0.12),
		color-mix(in srgb, var(--c) 28%, transparent) calc(var(--in) + var(--out) * 0.35),
		color-mix(in srgb, var(--c) 10%, transparent) calc(var(--in) + var(--out) * 0.65),
		color-mix(in srgb, var(--c) 0%, transparent) 100%);
}
/* effect choice */
.bhw-edge-bottom-fx-fade .bhw-edge--bottom::before,
.bhw-edge-top-fx-fade .bhw-edge--top::before { display: none; }
.bhw-edge-bottom-fx-blur .bhw-edge--bottom::after,
.bhw-edge-top-fx-blur .bhw-edge--top::after { display: none; }
:not(.bhw-edge-bottom-yes) > .bhw-edge--bottom,
:not(.bhw-edge-top-yes) > .bhw-edge--top { display: none; }

/* ==========================================================================
   Scroll text colour reveal
   ========================================================================== */
.bhw-tr-w { display: inline; }
.bhw-tr-c { display: inline; }
.bhw-tr-by-letters .bhw-tr-w { white-space: nowrap; }

/* ==========================================================================
   Image parallax + hover zoom
   ========================================================================== */
@property --bhw-im-zv {
	syntax: '<number>';
	inherits: true;
	initial-value: 1;
}
/* container background image moved onto its own layer */
.bhw-im-bg-live { isolation: isolate; background-image: none !important; }
.bhw-im-layer {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	border-radius: inherit;
	pointer-events: none;
}
.bhw-im-img {
	--bhw-im-zv: 1;
	position: absolute;
	left: 0;
	right: 0;
	top: calc(var(--bhw-im-pad, 0px) * -1);
	bottom: calc(var(--bhw-im-pad, 0px) * -1);
	translate: 0 var(--bhw-im-y, 0px);
	scale: var(--bhw-im-zv);
	transition: --bhw-im-zv var(--bhw-im-zs, 0.7s) cubic-bezier(0.22, 1, 0.36, 1);
	will-change: translate;
	backface-visibility: hidden;
}
/* images inside widgets: enlarge + move, then clip back to the original frame.
   The owner clips sideways so the enlarged image can never cause a horizontal scrollbar. */
.elementor-widget:is(.bhw-im-px-yes, .bhw-im-zoom-link, .bhw-im-zoom-always),
.bhw-im-t-img:is(.bhw-im-px-yes, .bhw-im-zoom-link, .bhw-im-zoom-always) { overflow-x: clip; }
.bhw-im-on {
	--bhw-im-zv: 1;
	--bhw-im-s: calc(var(--bhw-im-b, 1) * var(--bhw-im-zv));
	translate: 0 var(--bhw-im-y, 0px);
	scale: var(--bhw-im-s);
	clip-path: inset(
		calc(50% - (50% + var(--bhw-im-y, 0px)) / var(--bhw-im-s))
		calc(50% - 50% / var(--bhw-im-s))
		calc(50% - (50% - var(--bhw-im-y, 0px)) / var(--bhw-im-s))
		round calc(var(--bhw-im-rad, 0px) / var(--bhw-im-s))
	);
	transition: --bhw-im-zv var(--bhw-im-zs, 0.7s) cubic-bezier(0.22, 1, 0.36, 1);
	will-change: translate;
}
.bhw-im-img.is-zoomed,
.bhw-im-on.is-zoomed { --bhw-im-zv: var(--bhw-im-zoom, 1.06); }
@media (prefers-reduced-motion: reduce) {
	.bhw-im-img, .bhw-im-on { transition: none; }
	.bhw-im-img.is-zoomed, .bhw-im-on.is-zoomed { --bhw-im-zv: 1; }
}

/* ==========================================================================
   Animated burger for Elementor menus
   ========================================================================== */
.bhw-mb-on .bhw-mb-toggle {
	--bhw-mb-w: 1.1em;
	--bhw-mb-h: 2px;
	--bhw-mb-gap: 6px;
	--bhw-mb-speed: 0.45s;
	--bhw-mb-ease: cubic-bezier(0.625, 0.05, 0, 1);
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
/* hide Elementor's own open / close icons */
.bhw-mb-on .bhw-mb-toggle > :not(.bhw-mb-icon):not(.bhw-mb-label):not(.elementor-screen-only) { display: none !important; }
.bhw-mb-label { font-size: 0.7em; font-weight: 600; line-height: 1; }
.bhw-mb-label::before { content: var(--bhw-mb-l1, ""); }
.bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-label::before { content: var(--bhw-mb-l2, var(--bhw-mb-l1, "")); }
.bhw-mb-lp-after .bhw-mb-label { order: 2; }
.bhw-mb-icon {
	position: relative;
	display: block;
	flex: 0 0 auto;
	width: var(--bhw-mb-w);
	height: calc(var(--bhw-mb-gap) * 2 + var(--bhw-mb-h));
	transition: transform var(--bhw-mb-speed) var(--bhw-mb-ease);
}
.bhw-mb-bar {
	position: absolute;
	left: 0;
	top: 50%;
	width: 100%;
	height: var(--bhw-mb-h);
	margin-top: calc(var(--bhw-mb-h) / -2);
	background: currentColor;
	transform-origin: 50% 50%;
	transition: transform var(--bhw-mb-speed) var(--bhw-mb-ease), opacity calc(var(--bhw-mb-speed) * 0.6) ease, width var(--bhw-mb-speed) var(--bhw-mb-ease);
}
.bhw-mb-round-yes .bhw-mb-bar { border-radius: var(--bhw-mb-h); }
.bhw-mb-bar:nth-child(n+4) { display: none; }
.bhw-mb-i-two .bhw-mb-bar:nth-child(3) { display: none; }
.bhw-mb-i-grid .bhw-mb-bar:nth-child(n) { display: block; }
.bhw-mb-i-two .bhw-mb-bar:nth-child(1) { transform: translateY(calc(var(--bhw-mb-gap) / -2)); }
.bhw-mb-i-two .bhw-mb-bar:nth-child(2) { transform: translateY(calc(var(--bhw-mb-gap) / 2)); }
:is(.bhw-mb-i-three, .bhw-mb-i-stagger) .bhw-mb-bar:nth-child(1) { transform: translateY(calc(var(--bhw-mb-gap) * -1)); }
:is(.bhw-mb-i-three, .bhw-mb-i-stagger) .bhw-mb-bar:nth-child(3) { transform: translateY(var(--bhw-mb-gap)); }
.bhw-mb-i-stagger .bhw-mb-bar { left: auto; right: 0; }
.bhw-mb-i-stagger .bhw-mb-bar:nth-child(2) { width: 65%; }
.bhw-mb-i-stagger .bhw-mb-bar:nth-child(3) { width: 82%; }
.bhw-mb-i-dots .bhw-mb-icon { height: calc(var(--bhw-mb-h) * 2.4); }
.bhw-mb-i-dots .bhw-mb-bar { left: 50%; width: calc(var(--bhw-mb-h) * 2.4); height: calc(var(--bhw-mb-h) * 2.4); margin: calc(var(--bhw-mb-h) * -1.2) 0 0 calc(var(--bhw-mb-h) * -1.2); border-radius: 50%; }
.bhw-mb-i-dots .bhw-mb-bar:nth-child(1) { transform: translateX(calc(var(--bhw-mb-gap) * -1.4)); }
.bhw-mb-i-dots .bhw-mb-bar:nth-child(3) { transform: translateX(calc(var(--bhw-mb-gap) * 1.4)); }
.bhw-mb-i-grid .bhw-mb-icon { width: calc(var(--bhw-mb-gap) * 2.8 + var(--bhw-mb-h) * 2.2); height: calc(var(--bhw-mb-gap) * 2.8 + var(--bhw-mb-h) * 2.2); }
.bhw-mb-i-grid .bhw-mb-bar { --x: 0; --y: 0; left: 50%; width: calc(var(--bhw-mb-h) * 2.2); height: calc(var(--bhw-mb-h) * 2.2); margin: calc(var(--bhw-mb-h) * -1.1) 0 0 calc(var(--bhw-mb-h) * -1.1); border-radius: 50%; transform: translate(calc(var(--x) * var(--bhw-mb-gap) * 1.4), calc(var(--y) * var(--bhw-mb-gap) * 1.4)); }
.bhw-mb-i-grid .bhw-mb-bar:nth-child(3n + 1) { --x: -1; }
.bhw-mb-i-grid .bhw-mb-bar:nth-child(3n) { --x: 1; }
.bhw-mb-i-grid .bhw-mb-bar:nth-child(-n + 3) { --y: -1; }
.bhw-mb-i-grid .bhw-mb-bar:nth-child(n + 7) { --y: 1; }
@media (hover: hover) {
	.bhw-mb-h-yes.bhw-mb-i-two .bhw-mb-toggle:not(.elementor-active):not([aria-expanded="true"]):hover .bhw-mb-bar:nth-child(1) { transform: translateY(calc(var(--bhw-mb-gap) / -2 + 1.5px)); }
	.bhw-mb-h-yes.bhw-mb-i-two .bhw-mb-toggle:not(.elementor-active):not([aria-expanded="true"]):hover .bhw-mb-bar:nth-child(2) { transform: translateY(calc(var(--bhw-mb-gap) / 2 - 1.5px)); }
	.bhw-mb-h-yes.bhw-mb-i-three .bhw-mb-toggle:not(.elementor-active):not([aria-expanded="true"]):hover .bhw-mb-bar:nth-child(1) { transform: translateY(calc(var(--bhw-mb-gap) * -1 + 1.5px)); }
	.bhw-mb-h-yes.bhw-mb-i-three .bhw-mb-toggle:not(.elementor-active):not([aria-expanded="true"]):hover .bhw-mb-bar:nth-child(3) { transform: translateY(calc(var(--bhw-mb-gap) - 1.5px)); }
	.bhw-mb-h-yes.bhw-mb-i-stagger .bhw-mb-toggle:not(.elementor-active):not([aria-expanded="true"]):hover .bhw-mb-bar { width: 100%; }
	.bhw-mb-h-yes:is(.bhw-mb-i-dots, .bhw-mb-i-grid) .bhw-mb-toggle:not(.elementor-active):not([aria-expanded="true"]):hover .bhw-mb-icon { transform: rotate(90deg); }
}
/* open */
.bhw-mb-a-cross .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2),
.bhw-mb-a-spin .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2) { opacity: 0; }
.bhw-mb-i-two:is(.bhw-mb-a-cross, .bhw-mb-a-spin) .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2) { opacity: 1; }
:is(.bhw-mb-i-two, .bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-cross .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(1) { width: 100%; transform: rotate(45deg); }
.bhw-mb-i-two.bhw-mb-a-cross .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2),
:is(.bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-cross .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(3) { width: 100%; transform: rotate(-45deg); }
:is(.bhw-mb-i-two, .bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-spin .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(1) { width: 100%; transform: rotate(225deg); }
.bhw-mb-i-two.bhw-mb-a-spin .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2),
:is(.bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-spin .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(3) { width: 100%; transform: rotate(135deg); }
:is(.bhw-mb-i-two, .bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-arrow .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(1) { left: 0; right: auto; width: 55%; transform-origin: 0 50%; transform: translateY(calc(var(--bhw-mb-h) * 0.35)) rotate(-42deg); }
.bhw-mb-i-two.bhw-mb-a-arrow .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2),
:is(.bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-arrow .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(3) { left: 0; right: auto; width: 55%; transform-origin: 0 50%; transform: translateY(calc(var(--bhw-mb-h) * -0.35)) rotate(42deg); }
.bhw-mb-i-two.bhw-mb-a-arrow .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-icon::after { content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: var(--bhw-mb-h); margin-top: calc(var(--bhw-mb-h) / -2); background: currentColor; border-radius: inherit; }
:is(.bhw-mb-i-three, .bhw-mb-i-stagger).bhw-mb-a-arrow .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2) { width: 100%; }
.bhw-mb-a-minus .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar { width: 100%; transform: none; }
.bhw-mb-i-dots:is(.bhw-mb-a-cross, .bhw-mb-a-spin, .bhw-mb-a-arrow) .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-icon { transform: rotate(90deg); }
.bhw-mb-i-dots:is(.bhw-mb-a-cross, .bhw-mb-a-spin, .bhw-mb-a-arrow) .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar:nth-child(2) { opacity: 1; }
.bhw-mb-i-dots.bhw-mb-a-minus .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-bar { width: calc(var(--bhw-mb-h) * 2.4); transform: none; }
.bhw-mb-i-grid:not(.bhw-mb-a-none) .bhw-mb-toggle:is(.elementor-active, [aria-expanded="true"]) .bhw-mb-icon { transform: rotate(45deg); }

/* ==========================================================================
   Button hover effects (Elementor buttons)
   ========================================================================== */
.bhw-btn-on {
	--bhw-btn-speed: 0.45s;
	--bhw-btn-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--bhw-btn-dx: 1;
	--bhw-btn-dy: 0;
	--bhw-btn-dist: 0.3em;
	--bhw-btn-igap: 0.5em;
}
.bhw-btn-on .elementor-button { position: relative; isolation: isolate; }
.bhw-btn-on .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: translate var(--bhw-btn-speed) var(--bhw-btn-ease), rotate var(--bhw-btn-speed) var(--bhw-btn-ease), scale var(--bhw-btn-speed) var(--bhw-btn-ease), opacity var(--bhw-btn-speed) ease, max-width var(--bhw-btn-speed) var(--bhw-btn-ease), padding var(--bhw-btn-speed) var(--bhw-btn-ease);
}
.bhw-btn-ic { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.bhw-btn-ic > svg { width: 1em; height: 1em; }
.bhw-btn-auto svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bhw-btn-auto svg .f { fill: currentColor; stroke: none; }
/* our added icon is placed in the right spot in the markup */
.elementor-button.bhw-btn-has-auto .elementor-button-content-wrapper { display: flex; align-items: center; flex-direction: row; gap: var(--bhw-btn-igap); }

/* icon in a circle */
.bhw-btn-circ-yes .bhw-btn-ic {
	width: var(--bhw-btn-cs, 2em);
	height: var(--bhw-btn-cs, 2em);
	border-radius: 50%;
	background: var(--bhw-btn-cbg, rgba(255, 255, 255, 0.2));
	color: var(--bhw-btn-cic, currentColor);
	overflow: hidden;
	transition: background-color var(--bhw-btn-speed) ease, color var(--bhw-btn-speed) ease;
}
.bhw-btn-circ-yes .elementor-button:is(:hover, :focus-visible) .bhw-btn-ic { background: var(--bhw-btn-cbg-h, var(--bhw-btn-cbg, rgba(255, 255, 255, 0.3))); color: var(--bhw-btn-cic-h, var(--bhw-btn-cic, currentColor)); }

/* icon effects */
.bhw-btn-ifx-slide .elementor-button:is(:hover, :focus-visible) .elementor-button-icon { translate: calc(var(--bhw-btn-dx) * var(--bhw-btn-dist)) calc(var(--bhw-btn-dy) * var(--bhw-btn-dist)); }
.bhw-btn-ifx-rotate .elementor-button:is(:hover, :focus-visible) .elementor-button-icon { rotate: var(--bhw-btn-rot, 45deg); }
.bhw-btn-ifx-scale .elementor-button:is(:hover, :focus-visible) .elementor-button-icon { scale: 1.25; }
.bhw-btn-ifx-loop .bhw-btn-ic { overflow: hidden; }
.bhw-btn-ifx-loop .elementor-button:is(:hover, :focus-visible) .bhw-btn-ic > * { animation: bhw-btn-loop calc(var(--bhw-btn-speed) * 1.5) var(--bhw-btn-ease); }
@keyframes bhw-btn-loop {
	0% { translate: 0 0; opacity: 1; }
	44% { translate: calc(var(--bhw-btn-dx) * 140%) calc(var(--bhw-btn-dy) * 140%); opacity: 1; }
	45% { translate: calc(var(--bhw-btn-dx) * 140%) calc(var(--bhw-btn-dy) * 140%); opacity: 0; }
	46% { translate: calc(var(--bhw-btn-dx) * -140%) calc(var(--bhw-btn-dy) * -140%); opacity: 0; }
	47% { opacity: 1; }
	100% { translate: 0 0; opacity: 1; }
}
/* fade in (icon hidden until hover) */
.bhw-btn-ifx-fade .elementor-button-content-wrapper,
.bhw-btn-ifx-swap .elementor-button-content-wrapper { gap: 0 !important; }
.bhw-btn-ifx-fade .elementor-button-icon,
.bhw-btn-ifx-swap .elementor-button-icon { overflow: hidden; }
.bhw-btn-ifx-fade .elementor-button-icon.bhw-btn-side-end,
.bhw-btn-ifx-swap .elementor-button-icon.bhw-btn-side-end { padding-left: var(--bhw-btn-igap); }
.bhw-btn-ifx-fade .elementor-button-icon.bhw-btn-side-start,
.bhw-btn-ifx-swap .elementor-button-icon.bhw-btn-side-start { padding-right: var(--bhw-btn-igap); }
.bhw-btn-ifx-fade .elementor-button-icon { max-width: 0; opacity: 0; translate: calc(var(--bhw-btn-dx) * var(--bhw-btn-dist) * -1) calc(var(--bhw-btn-dy) * var(--bhw-btn-dist) * -1); }
.bhw-btn-ifx-fade .elementor-button:is(:hover, :focus-visible) .elementor-button-icon { max-width: 4em; opacity: 1; translate: 0 0; }
/* swap: the icon leaves one side and a copy arrives on the other */
.bhw-btn-ifx-swap .elementor-button-icon { max-width: 4em; }
.bhw-btn-ifx-swap .elementor-button-icon.bhw-btn-clone { max-width: 0; opacity: 0; }
.bhw-btn-ifx-swap .elementor-button:is(:hover, :focus-visible) .elementor-button-icon:not(.bhw-btn-clone) { max-width: 0; opacity: 0; }
.bhw-btn-ifx-swap .elementor-button:is(:hover, :focus-visible) .elementor-button-icon.bhw-btn-clone { max-width: 4em; opacity: 1; }

/* text effects */
.bhw-btn-roll { display: inline-grid; overflow: hidden; vertical-align: top; padding-block: 0.1em; margin-block: -0.1em; }
.bhw-btn-roll > span { grid-area: 1 / 1; white-space: pre; }
.bhw-btn-tfx-roll .bhw-btn-roll > span { transition: translate var(--bhw-btn-speed) var(--bhw-btn-ease); }
.bhw-btn-tfx-roll .bhw-btn-roll__b { translate: 0 115%; }
.bhw-btn-tfx-roll .elementor-button:is(:hover, :focus-visible) .bhw-btn-roll__a { translate: 0 -115%; }
.bhw-btn-tfx-roll .elementor-button:is(:hover, :focus-visible) .bhw-btn-roll__b { translate: 0 0; }
.bhw-btn-ch { display: inline-block; white-space: pre; }
.bhw-btn-tfx-letters .bhw-btn-ch { transition: translate var(--bhw-btn-speed) var(--bhw-btn-ease); transition-delay: calc(var(--i, 0) * var(--bhw-btn-stg, 18ms)); }
.bhw-btn-tfx-letters .bhw-btn-roll__b .bhw-btn-ch { translate: 0 115%; }
.bhw-btn-tfx-letters .elementor-button:is(:hover, :focus-visible) .bhw-btn-roll__a .bhw-btn-ch { translate: 0 -115%; }
.bhw-btn-tfx-letters .elementor-button:is(:hover, :focus-visible) .bhw-btn-roll__b .bhw-btn-ch { translate: 0 0; }
.bhw-btn-tfx-nudge .elementor-button-text { display: inline-block; transition: translate var(--bhw-btn-speed) var(--bhw-btn-ease); }
.bhw-btn-tfx-nudge .elementor-button.bhw-btn-icon-end:is(:hover, :focus-visible) .elementor-button-text { translate: -0.25em 0; }
.bhw-btn-tfx-nudge .elementor-button.bhw-btn-icon-start:is(:hover, :focus-visible) .elementor-button-text { translate: 0.25em 0; }

/* background fills (sit between the button background and its content) */
.bhw-btn-on:not(.bhw-btn-bfx-none) .elementor-button { overflow: hidden; }
.bhw-btn-on:is(.bhw-btn-bfx-left, .bhw-btn-bfx-right, .bhw-btn-bfx-up, .bhw-btn-bfx-down, .bhw-btn-bfx-cursor, .bhw-btn-bfx-icon) .elementor-button::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: var(--bhw-btn-fill, #2b1a29);
	border-radius: inherit;
	pointer-events: none;
	transition: transform var(--bhw-btn-speed) var(--bhw-btn-ease);
}
.bhw-btn-bfx-left .elementor-button::before { transform: scaleX(0); transform-origin: 0 50%; }
.bhw-btn-bfx-right .elementor-button::before { transform: scaleX(0); transform-origin: 100% 50%; }
.bhw-btn-bfx-up .elementor-button::before { transform: scaleY(0); transform-origin: 50% 100%; }
.bhw-btn-bfx-down .elementor-button::before { transform: scaleY(0); transform-origin: 50% 0; }
:is(.bhw-btn-bfx-left, .bhw-btn-bfx-right, .bhw-btn-bfx-up, .bhw-btn-bfx-down) .elementor-button:is(:hover, :focus-visible)::before { transform: none; }
:is(.bhw-btn-bfx-cursor, .bhw-btn-bfx-icon) .elementor-button::before {
	inset: auto;
	left: var(--bhw-btn-cx, 50%);
	top: var(--bhw-btn-cy, 50%);
	width: var(--bhw-btn-cd, 300%);
	aspect-ratio: 1;
	border-radius: 50%;
	translate: -50% -50%;
	transform: scale(0);
}
:is(.bhw-btn-bfx-cursor, .bhw-btn-bfx-icon) .elementor-button:is(:hover, :focus-visible)::before { transform: scale(1); }
.bhw-btn-bfx-shine .elementor-button::after {
	content: "";
	position: absolute;
	z-index: 0;
	top: 0;
	bottom: 0;
	left: -60%;
	width: 45%;
	background: linear-gradient(105deg, transparent, var(--bhw-btn-shine, rgba(255, 255, 255, 0.35)), transparent);
	pointer-events: none;
	transform: translateX(0) skewX(-12deg);
}
.bhw-btn-bfx-shine .elementor-button:is(:hover, :focus-visible)::after { transform: translateX(420%) skewX(-12deg); transition: transform calc(var(--bhw-btn-speed) * 2) var(--bhw-btn-ease); }

/* movement */
:is(.bhw-btn-mv-lift, .bhw-btn-mv-both) .elementor-button { transition-property: all; }
:is(.bhw-btn-mv-lift, .bhw-btn-mv-both) .elementor-button:is(:hover, :focus-visible) { translate: 0 -3px; box-shadow: 0 12px 24px -12px rgba(0, 0, 0, 0.45); }
:is(.bhw-btn-mv-press, .bhw-btn-mv-both) .elementor-button:active { scale: 0.97; }

@media (prefers-reduced-motion: reduce) {
	.bhw-btn-on .elementor-button, .bhw-btn-on .elementor-button *, .bhw-btn-on .elementor-button::before, .bhw-btn-on .elementor-button::after { animation: none !important; transition-duration: 0.01s !important; }
	.bhw-mb-icon, .bhw-mb-bar { transition: none !important; }
}

/* ==========================================================================
   Hover reveal (containers)
   ========================================================================== */
.bhw-hr-on {
	--bhw-hr-speed: 0.5s;
	--bhw-hr-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--bhw-hr-dist: 30px;
	--bhw-hr-stg: 60ms;
	--bhw-hr-zoom: 1.06;
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
/* the shade */
.bhw-hr-dim {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	border-radius: inherit;
	background: var(--bhw-hr-dim, rgba(0, 0, 0, 0.45));
	opacity: var(--bhw-hr-dim0, 0);
	transition: opacity var(--bhw-hr-speed) var(--bhw-hr-ease);
}
.bhw-hr-dim-gradient .bhw-hr-dim { background: linear-gradient(to top, var(--bhw-hr-dim, rgba(0, 0, 0, 0.45)) 0%, var(--bhw-hr-dim, rgba(0, 0, 0, 0.45)) 20%, transparent 90%); }
.bhw-hr-dim-top .bhw-hr-dim { background: linear-gradient(to bottom, var(--bhw-hr-dim, rgba(0, 0, 0, 0.45)) 0%, var(--bhw-hr-dim, rgba(0, 0, 0, 0.45)) 20%, transparent 90%); }
/* background zoom (image moved onto a layer; video / slideshow scaled directly) */
.bhw-hr-bg-live { background-image: none !important; }
.bhw-hr-bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; pointer-events: none; }
.bhw-hr-bg > div { position: absolute; inset: 0; transition: scale calc(var(--bhw-hr-speed) * 1.6) var(--bhw-hr-ease); }
.bhw-hr-on .elementor-background-video-container,
.bhw-hr-on .elementor-background-slideshow { transition: scale calc(var(--bhw-hr-speed) * 1.6) var(--bhw-hr-ease); }

/* everything that is not the layer */
.bhw-hr-other {
	position: relative;
	z-index: 2;
	transition: opacity var(--bhw-hr-speed) var(--bhw-hr-ease), translate var(--bhw-hr-speed) var(--bhw-hr-ease), filter var(--bhw-hr-speed) var(--bhw-hr-ease);
}

/* the layer */
.bhw-hr-el {
	position: absolute !important;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: 3;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--bhw-hr-speed) var(--bhw-hr-ease), translate var(--bhw-hr-speed) var(--bhw-hr-ease), scale var(--bhw-hr-speed) var(--bhw-hr-ease), clip-path var(--bhw-hr-speed) var(--bhw-hr-ease), filter var(--bhw-hr-speed) var(--bhw-hr-ease), visibility 0s linear var(--bhw-hr-speed);
}
.bhw-hr-place-bottom .bhw-hr-el { top: auto; }
.bhw-hr-place-top .bhw-hr-el { bottom: auto; }
.bhw-hr-a-up .bhw-hr-el { translate: 0 var(--bhw-hr-dist); }
.bhw-hr-a-down .bhw-hr-el { translate: 0 calc(var(--bhw-hr-dist) * -1); }
.bhw-hr-a-left .bhw-hr-el { translate: var(--bhw-hr-dist) 0; }
.bhw-hr-a-right .bhw-hr-el { translate: calc(var(--bhw-hr-dist) * -1) 0; }
.bhw-hr-a-rise .bhw-hr-el { translate: 0 101%; opacity: 1; }
.bhw-hr-a-scale .bhw-hr-el { scale: 0.92; }
.bhw-hr-a-wipe .bhw-hr-el { clip-path: inset(100% 0 0 0); opacity: 1; }
.bhw-hr-a-blur .bhw-hr-el { filter: blur(12px); }
/* widgets inside the layer, one by one */
.bhw-hr-item { opacity: 0; translate: 0 12px; transition: opacity var(--bhw-hr-speed) var(--bhw-hr-ease), translate var(--bhw-hr-speed) var(--bhw-hr-ease); }
.bhw-hr-on.is-revealed .bhw-hr-el,
.bhw-hr-on:focus-within .bhw-hr-el,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes .bhw-hr-el { opacity: 1; visibility: visible; pointer-events: auto; translate: 0 0; scale: 1; clip-path: inset(0); filter: none; transition-delay: 0s; }
@media (hover: hover) { .bhw-hr-on:hover .bhw-hr-el { opacity: 1; visibility: visible; pointer-events: auto; translate: 0 0; scale: 1; clip-path: inset(0); filter: none; transition-delay: 0s; } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always .bhw-hr-el { opacity: 1; visibility: visible; pointer-events: auto; translate: 0 0; scale: 1; clip-path: inset(0); filter: none; transition-delay: 0s; } }
.bhw-hr-on.is-revealed .bhw-hr-item,
.bhw-hr-on:focus-within .bhw-hr-item,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes .bhw-hr-item { opacity: 1; translate: 0 0; transition-delay: calc(var(--bhw-hr-speed) * 0.2 + var(--i, 0) * var(--bhw-hr-stg)); }
@media (hover: hover) { .bhw-hr-on:hover .bhw-hr-item { opacity: 1; translate: 0 0; transition-delay: calc(var(--bhw-hr-speed) * 0.2 + var(--i, 0) * var(--bhw-hr-stg)); } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always .bhw-hr-item { opacity: 1; translate: 0 0; transition-delay: calc(var(--bhw-hr-speed) * 0.2 + var(--i, 0) * var(--bhw-hr-stg)); } }
.bhw-hr-on.is-revealed .bhw-hr-dim,
.bhw-hr-on:focus-within .bhw-hr-dim,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes .bhw-hr-dim { opacity: 1; }
@media (hover: hover) { .bhw-hr-on:hover .bhw-hr-dim { opacity: 1; } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always .bhw-hr-dim { opacity: 1; } }
.bhw-hr-on.is-revealed .bhw-hr-bg > div,
.bhw-hr-on:focus-within .bhw-hr-bg > div,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes .bhw-hr-bg > div { scale: var(--bhw-hr-zoom); }
@media (hover: hover) { .bhw-hr-on:hover .bhw-hr-bg > div { scale: var(--bhw-hr-zoom); } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always .bhw-hr-bg > div { scale: var(--bhw-hr-zoom); } }
.bhw-hr-on.is-revealed :is(.elementor-background-video-container, .elementor-background-slideshow),
.bhw-hr-on:focus-within :is(.elementor-background-video-container, .elementor-background-slideshow),
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes :is(.elementor-background-video-container, .elementor-background-slideshow) { scale: var(--bhw-hr-zoom); }
@media (hover: hover) { .bhw-hr-on:hover :is(.elementor-background-video-container, .elementor-background-slideshow) { scale: var(--bhw-hr-zoom); } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always :is(.elementor-background-video-container, .elementor-background-slideshow) { scale: var(--bhw-hr-zoom); } }
.bhw-hr-on.is-revealed.bhw-hr-o-fade .bhw-hr-other,
.bhw-hr-on:focus-within.bhw-hr-o-fade .bhw-hr-other,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes.bhw-hr-o-fade .bhw-hr-other { opacity: 0; }
@media (hover: hover) { .bhw-hr-on:hover.bhw-hr-o-fade .bhw-hr-other { opacity: 0; } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always.bhw-hr-o-fade .bhw-hr-other { opacity: 0; } }
.bhw-hr-on.is-revealed.bhw-hr-o-up .bhw-hr-other,
.bhw-hr-on:focus-within.bhw-hr-o-up .bhw-hr-other,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes.bhw-hr-o-up .bhw-hr-other { translate: 0 calc(var(--bhw-hr-shift, 40px) * -1); }
@media (hover: hover) { .bhw-hr-on:hover.bhw-hr-o-up .bhw-hr-other { translate: 0 calc(var(--bhw-hr-shift, 40px) * -1); } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always.bhw-hr-o-up .bhw-hr-other { translate: 0 calc(var(--bhw-hr-shift, 40px) * -1); } }
.bhw-hr-on.is-revealed.bhw-hr-o-away .bhw-hr-other,
.bhw-hr-on:focus-within.bhw-hr-o-away .bhw-hr-other,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes.bhw-hr-o-away .bhw-hr-other { translate: 0 calc(var(--bhw-hr-shift, 40px) * -1); opacity: 0; }
@media (hover: hover) { .bhw-hr-on:hover.bhw-hr-o-away .bhw-hr-other { translate: 0 calc(var(--bhw-hr-shift, 40px) * -1); opacity: 0; } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always.bhw-hr-o-away .bhw-hr-other { translate: 0 calc(var(--bhw-hr-shift, 40px) * -1); opacity: 0; } }
.bhw-hr-on.is-revealed.bhw-hr-o-blur .bhw-hr-other,
.bhw-hr-on:focus-within.bhw-hr-o-blur .bhw-hr-other,
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes.bhw-hr-o-blur .bhw-hr-other { filter: blur(6px); opacity: 0.6; }
@media (hover: hover) { .bhw-hr-on:hover.bhw-hr-o-blur .bhw-hr-other { filter: blur(6px); opacity: 0.6; } }
@media (hover: none) { .bhw-hr-on.bhw-hr-t-always.bhw-hr-o-blur .bhw-hr-other { filter: blur(6px); opacity: 0.6; } }
/* the editor shows the layer so its widgets can be edited */
.elementor-editor-active .bhw-hr-on.bhw-hr-edit-yes .bhw-hr-el { outline: 1px dashed rgba(168, 63, 160, 0.5); outline-offset: -1px; }
@media (prefers-reduced-motion: reduce) {
	.bhw-hr-el, .bhw-hr-item, .bhw-hr-other, .bhw-hr-dim, .bhw-hr-bg > div { transition-duration: 0.01s !important; transition-delay: 0s !important; }
}
