/* Bevel Kit — styles behind the custom controls on Elementor's free widgets and containers:
   button icon and underline, icon list link underline, container sticky header and blur, heading
   span gradient. Ported from bevel-core's global stylesheet. */

/* ---------------------------------------------------------- button */
.elementor-button-icon { transition: 0.2s cubic-bezier(0.455, 0.03, 0.515, 0.955); }
.elementor-button-content-wrapper { align-items: center; }
.elementor-button.elementor-animation-underline .elementor-button-content-wrapper { position: relative; }
.elementor-button.elementor-animation-underline .elementor-button-content-wrapper::before {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 100%;
	height: 2px;
	opacity: 0.8;
	background: currentColor;
	transform: scale3d(0, 1, 1);
	transform-origin: 100% 50%;
	transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}
@media only screen and (min-width: 767px) {
	.elementor-button.elementor-animation-underline:hover .elementor-button-content-wrapper::before {
		transform: scale3d(1, 1, 1);
		transform-origin: 0% 50%;
		transition-timing-function: ease;
	}
}

/* ---------------------------------------------------------- icon list: link hover underline */
.bvl-link-hover-underline-yes.elementor-widget-icon-list .elementor-icon-list-item a { display: block; position: relative; }
.bvl-link-hover-underline-yes .elementor-icon-list-item .elementor-icon-list-icon { display: inline-flex; vertical-align: middle; }
.bvl-link-hover-underline-yes.elementor-align-center .elementor-icon-list-item a { text-align: center; }
.bvl-link-hover-underline-yes.elementor-align-end .elementor-icon-list-item a,
.bvl-link-hover-underline-yes.elementor-align-right .elementor-icon-list-item a { text-align: right; }
.bvl-link-hover-underline-yes .elementor-icon-list-item .elementor-icon-list-text {
	display: inline;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding-bottom: var(--bvl-underline-gap, 3px);
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 var(--bvl-underline-height, 2px);
	transition: background-size 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}
/* the script draws the underline line by line; the CSS sweep stays off where it runs */
.bvl-link-hover-underline-yes.bvl-underline-seq .elementor-icon-list-item a:hover .elementor-icon-list-text { background-size: 0 var(--bvl-underline-height, 2px); }
@media only screen and (min-width: 767px) {
	.bvl-link-hover-underline-yes .elementor-icon-list-item a:hover .elementor-icon-list-text { background-size: 100% var(--bvl-underline-height, 2px); }
}

/* ---------------------------------------------------------- container: sticky header */
/* The location wrapper is inline so the sticky container's containing block is the page, not the wrapper. */
.elementor-location-header { display: initial; }
.elementor-location-header header.bvl-sticky-header-yes {
	position: sticky !important;
	top: 0;
	z-index: 9999;
	width: 100% !important;
}
.logged-in.admin-bar .elementor-location-header header.bvl-sticky-header-yes { top: 32px; }
.bvl-sticky-hide {
	transform: translateY(-100%);
	transition: transform 0.4s cubic-bezier(0.7, 0, 0.3, 1);
	will-change: transform;
}
@media (max-width: 1025px) {
	.elementor-location-header header.bvl-sticky-header-disable-mobile-yes { position: relative !important; top: auto !important; }
}
@media (max-width: 782px) {
	.logged-in.admin-bar .elementor-location-header header.bvl-sticky-header-yes { top: 0; }
}
.bvl-sticky-header-yes.bvl-sticky-active.bvl-sticky-header-bg-blur-yes::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	-webkit-backdrop-filter: blur(var(--bvl-sticky-bg-blur, 10px));
	backdrop-filter: blur(var(--bvl-sticky-bg-blur, 10px));
	clip-path: inset(0 round var(--border-radius, 0));
}

/* ---------------------------------------------------------- container: blur background */
.e-con.bvl-container-bg-blur-yes { z-index: 1; }
.bvl-container-bg-blur-yes::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	-webkit-backdrop-filter: blur(var(--bvl-bg-blur, 10px));
	backdrop-filter: blur(var(--bvl-bg-blur, 10px));
	clip-path: inset(0 round var(--border-radius, 0));
}
.overflow-hidden { overflow: hidden !important; }

/* ---------------------------------------------------------- heading: span gradient */
.bvl-heading-span-gradient .elementor-heading-title span {
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent !important;
}

/* Scroll Reveal Fill. heading-scroll-fill.js splits the heading into one .bvl-fill-line per
   visual line and scrubs --bvl-fill from 0 to 1 as each line crosses the viewport; the gradient
   is clipped to the glyphs, so the fill sweeps through the letterforms rather than behind them.
   The split parent gives its own paint back, or it would sit opaque over the lines. */
.bvl-scrollfill-yes .bvl-fill-line {
	background-image: linear-gradient(to right, var(--bvl-fill-color, var(--e-global-color-primary, currentColor)) 50%, var(--bvl-fill-base, var(--e-global-color-light, rgba(120, 120, 120, .35))) 50%);
	background-size: 200% 100%;
	background-repeat: no-repeat;
	background-position-x: calc(100% - (var(--bvl-fill, 0) * 100%));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	display: inline;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.bvl-scrollfill-yes .elementor-heading-title.bvl-fill-split {
	background: none;
	-webkit-text-fill-color: inherit;
	color: inherit;
}

/* Someone who has asked for less motion gets the finished state, not a heading stuck half-filled. */
@media (prefers-reduced-motion: reduce) {
	.bvl-scrollfill-yes .elementor-heading-title,
	.bvl-scrollfill-yes .bvl-fill-line { --bvl-fill: 1; }
}
