/* EKFA: ekfa-cost-calculator */
/**
 * EK Cost Calculator — fields, total bar, sticky variant.
 *
 * BEM: .ekfa-calc-*
 */

.ekfa-calc {
	--ekfa-calc-field-spacing: 16px;
	--ekfa-calc-total-size: 1.75rem;
	--ekfa-calc-accent: currentColor;
	--ekfa-calc-accent-hover: var(--ekfa-calc-accent);
	--ekfa-calc-border: rgba(0, 0, 0, 0.12);
	--ekfa-calc-card-bg: rgba(0, 0, 0, 0.03);
	position: relative;
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.ekfa-calc *,
.ekfa-calc *::before,
.ekfa-calc *::after {
	box-sizing: border-box;
}

.ekfa-calc--bordered {
	border: 1px solid var(--ekfa-calc-border);
	padding: 1.25rem;
}

.ekfa-calc--card {
	background: var(--ekfa-calc-card-bg);
	padding: 1.25rem;
}

.ekfa-calc__title {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	line-height: 1.3;
}

.ekfa-calc__fields {
	display: flex;
	flex-direction: column;
	gap: var(--ekfa-calc-field-spacing);
}

.ekfa-calc__field {
	display: block;
}

.ekfa-calc__label,
.ekfa-calc__fieldset > legend {
	display: block;
	margin: 0 0 0.35rem;
	font-family: var(--ekfa-calc-label-font-family, inherit);
	font-weight: var(--ekfa-calc-label-font-weight, 600);
	font-style: var(--ekfa-calc-label-font-style, inherit);
	font-size: var(--ekfa-calc-label-size, inherit);
	text-transform: var(--ekfa-calc-label-transform, none);
	color: var(--ekfa-calc-label-color, inherit);
	padding: 0;
}

.ekfa-calc__fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.ekfa-calc__desc {
	margin: 0 0 0.5rem;
	font-family: var(--ekfa-calc-desc-font-family, inherit);
	font-weight: var(--ekfa-calc-desc-font-weight, inherit);
	font-style: var(--ekfa-calc-desc-font-style, inherit);
	font-size: var(--ekfa-calc-desc-size, 0.875em);
	text-transform: var(--ekfa-calc-desc-transform, none);
	color: var(--ekfa-calc-desc-color, inherit);
	opacity: 0.85;
}

.ekfa-calc__slider-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.ekfa-calc__range {
	flex: 1 1 auto;
	min-width: 0;
	accent-color: var(--ekfa-calc-accent);
}

.ekfa-calc__range:hover {
	accent-color: var(--ekfa-calc-accent-hover);
}

.ekfa-calc__output {
	flex: 0 0 auto;
	min-width: 4ch;
	font-variant-numeric: tabular-nums;
}

.ekfa-calc__unit-price {
	margin: 0.35rem 0 0;
	font-size: 0.875em;
	opacity: 0.85;
}

.ekfa-calc__select {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 2.5rem;
	padding: 0.55rem 0.75rem;
	font: inherit;
	font-size: inherit;
	line-height: 1.4;
	color: inherit;
	background-color: #fff;
	border: 1px solid var(--ekfa-calc-border);
	border-radius: 2px;
	box-sizing: border-box;
	appearance: auto;
}

.ekfa-calc__checks {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.ekfa-calc__check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	cursor: pointer;
}

.ekfa-calc__checkbox {
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	margin: 0;
	padding: 0;
	vertical-align: middle;
}

.ekfa-calc__check-text {
	flex: 1 1 auto;
	line-height: 1.4;
}

.ekfa-calc__total-wrap {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--ekfa-calc-border);
}

.ekfa-calc--total-sticky {
	padding-bottom: 4.5rem;
}

.ekfa-calc--total-sticky .ekfa-calc__total-wrap {
	position: sticky;
	bottom: 0;
	z-index: 2;
	margin-top: 1rem;
	padding: 0.75rem 0;
	background: inherit;
	border-top: 1px solid var(--ekfa-calc-border);
}

.ekfa-calc--card.ekfa-calc--total-sticky .ekfa-calc__total-wrap,
.ekfa-calc--bordered.ekfa-calc--total-sticky .ekfa-calc__total-wrap {
	background: var(--ekfa-calc-card-bg);
}

.ekfa-calc--bordered.ekfa-calc--total-sticky .ekfa-calc__total-wrap {
	background: #fff;
}

.ekfa-calc__total {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem 0.75rem;
	color: var(--ekfa-calc-total-color, var(--ekfa-calc-accent));
	font-family: var(--ekfa-calc-total-font-family, inherit);
	font-size: var(--ekfa-calc-total-size);
	font-weight: var(--ekfa-calc-total-font-weight, 700);
	font-style: var(--ekfa-calc-total-font-style, inherit);
	line-height: var(--ekfa-calc-total-line-height, 1.2);
	letter-spacing: var(--ekfa-calc-total-letter-spacing, inherit);
	text-transform: var(--ekfa-calc-total-text-transform, inherit);
	font-variant-numeric: tabular-nums;
}

.ekfa-calc__total:hover {
	color: var(--ekfa-calc-total-color, var(--ekfa-calc-accent-hover));
}

.ekfa-calc__total-label {
	font-size: 0.55em;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	opacity: 0.8;
}

.ekfa-calc__disclaimer {
	margin: 0.5rem 0 0;
	font-family: var(--ekfa-calc-disclaimer-font-family, inherit);
	font-size: var(--ekfa-calc-disclaimer-font-size, 0.8125rem);
	font-weight: var(--ekfa-calc-disclaimer-font-weight, inherit);
	font-style: var(--ekfa-calc-disclaimer-font-style, inherit);
	line-height: var(--ekfa-calc-disclaimer-line-height, inherit);
	letter-spacing: var(--ekfa-calc-disclaimer-letter-spacing, inherit);
	text-transform: var(--ekfa-calc-disclaimer-text-transform, inherit);
	color: var(--ekfa-calc-disclaimer-color, inherit);
	opacity: var(--ekfa-calc-disclaimer-opacity, 0.75);
}

.ekfa-calc__range-msg {
	margin: 0.75rem 0 0;
	font-size: 0.9375rem;
	line-height: 1.4;
	opacity: 1;
	transition: opacity 0.15s ease;
}

.ekfa-calc__range-msg[hidden] {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-calc__range-msg {
		transition: none;
	}
}

.ekfa-calc__cta {
	margin-top: 1rem;
}

.ekfa-calc__cta-heading {
	margin: 0 0 0.35rem;
	font-family: var(--ekfa-calc-cta-heading-font-family, inherit);
	font-weight: var(--ekfa-calc-cta-heading-font-weight, 600);
	font-style: var(--ekfa-calc-cta-heading-font-style, inherit);
	font-size: var(--ekfa-calc-cta-heading-font-size, 1rem);
	line-height: var(--ekfa-calc-cta-heading-line-height, inherit);
	letter-spacing: var(--ekfa-calc-cta-heading-letter-spacing, inherit);
	text-transform: var(--ekfa-calc-cta-heading-text-transform, inherit);
	color: var(--ekfa-calc-cta-heading-color, inherit);
}

.ekfa-calc__cta-text {
	margin: 0 0 0.75rem;
	font-family: var(--ekfa-calc-cta-text-font-family, inherit);
	font-weight: var(--ekfa-calc-cta-text-font-weight, inherit);
	font-style: var(--ekfa-calc-cta-text-font-style, inherit);
	font-size: var(--ekfa-calc-cta-text-font-size, 0.9375rem);
	line-height: var(--ekfa-calc-cta-text-line-height, inherit);
	letter-spacing: var(--ekfa-calc-cta-text-letter-spacing, inherit);
	text-transform: var(--ekfa-calc-cta-text-text-transform, inherit);
	color: var(--ekfa-calc-cta-text-color, inherit);
	opacity: var(--ekfa-calc-cta-text-opacity, 0.9);
}

.ekfa-calc__cta-btn {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border: 1px solid currentColor;
	background: currentColor;
	color: var(--ekfa-calc-accent);
	text-decoration: none;
	font-family: var(--ekfa-calc-cta-button-font-family, inherit);
	font-weight: var(--ekfa-calc-cta-button-font-weight, 600);
	font-style: var(--ekfa-calc-cta-button-font-style, inherit);
	font-size: var(--ekfa-calc-cta-button-font-size, inherit);
	line-height: var(--ekfa-calc-cta-button-line-height, 1.3);
	letter-spacing: var(--ekfa-calc-cta-button-letter-spacing, inherit);
	text-transform: var(--ekfa-calc-cta-button-text-transform, inherit);
	cursor: pointer;
}

.ekfa-calc__cta-btn:hover,
.ekfa-calc__cta-btn:focus {
	color: var(--ekfa-calc-accent-hover);
}

/* The accent defaults to currentColor, so the label color lives on the inner span. */
.ekfa-calc__cta-btn-label {
	color: var(--ekfa-calc-cta-button-color, #fff);
}

.ekfa-calc__editor-warning,
.ekfa-calc__editor-placeholder {
	margin: 0 0 0.75rem;
	padding: 0.5rem 0.75rem;
	border-left: 3px solid #dba617;
	background: rgba(219, 166, 23, 0.12);
	font-size: 0.875rem;
}

/*
 * Sidebar layout. The instance style block turns the body into a grid only
 * above the configured breakpoint; at or below it the body is a block, so the
 * total panel follows the fields at full width whatever its desktop side.
 */
.ekfa-calc--layout-sidebar > .ekfa-calc__body {
	grid-template-columns: minmax(0, 1fr) minmax(15rem, 36%);
	column-gap: 2rem;
	align-items: start;
}

.ekfa-calc--sidebar-left > .ekfa-calc__body {
	grid-template-columns: minmax(15rem, 36%) minmax(0, 1fr);
}

.ekfa-calc--sidebar-right > .ekfa-calc__body > .ekfa-calc__fields,
.ekfa-calc--sidebar-left > .ekfa-calc__body > .ekfa-calc__total-wrap {
	grid-column: 1;
	grid-row: 1;
}

.ekfa-calc--sidebar-right > .ekfa-calc__body > .ekfa-calc__total-wrap,
.ekfa-calc--sidebar-left > .ekfa-calc__body > .ekfa-calc__fields {
	grid-column: 2;
	grid-row: 1;
}

.ekfa-calc--align-middle > .ekfa-calc__body > .ekfa-calc__total-wrap {
	align-self: center;
}

.ekfa-calc--align-bottom > .ekfa-calc__body > .ekfa-calc__total-wrap {
	align-self: end;
}

.ekfa-calc--layout-sidebar .ekfa-calc__total-wrap {
	padding: 1.25rem;
	border: 1px solid var(--ekfa-calc-border);
}

/*
 * Highlighted total panel (both layouts). Padding stays at two classes so the
 * instance Total Area Padding rule (three classes) always overrides it.
 */
.ekfa-calc--total-styled .ekfa-calc__total-wrap {
	padding: 1.25rem;
	border: 0;
}

.ekfa-calc.ekfa-calc--total-styled .ekfa-calc__total-wrap {
	background: var(--ekfa-calc-total-bg);
}

/* EKFA: ekfa-arrow-controls */
/**
 * Shared EK navigation arrow border controls.
 *
 * Calendar, Timeline, and Video Gallery use this class so border width,
 * style, color, hover color, and radius follow one variable contract without
 * changing each element's existing defaults.
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-arrow-control,
.ekfa-arrow-control.ekfa-carousel__btn {
	border-width: var(--ekfa-arrow-border-width, 1px);
	border-style: var(--ekfa-arrow-border-style, solid);
	border-color: var(--ekfa-arrow-border-color, currentColor);
	border-radius: var(--ekfa-arrow-border-radius, 50%);
}

.ekfa-arrow-control:hover,
.ekfa-arrow-control.ekfa-carousel__btn:hover {
	border-color: var(--ekfa-arrow-border-color-hover, var(--ekfa-arrow-border-color, currentColor));
}

/* EKFA: ekfa-calendar */
/**
 * EK Calendar styles.
 *
 * Shared block grid, day cells, headers, indicators, and popups.
 * Column count comes from EKFA_Responsive_Columns via --ekfa-cal-cols
 * (never set inline so media queries can override).
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-cal {
	--ekfa-cal-cols: 1;
	--ekfa-cal-block-gap: 1.25rem;
	--ekfa-cal-container-bg: transparent;
	--ekfa-cal-block-bg: #fff;
	--ekfa-cal-block-border: rgba(0, 0, 0, 0.08);
	--ekfa-cal-day-bg: transparent;
	--ekfa-cal-day-border: rgba(0, 0, 0, 0.06);
	--ekfa-cal-today-bg: rgba(0, 115, 170, 0.12);
	--ekfa-cal-entry-bg: transparent;
	--ekfa-cal-past-opacity: 0.55;
	--ekfa-cal-weekday-color: inherit;
	--ekfa-cal-day-num-color: inherit;
	--ekfa-cal-indicator: #0073aa;
	--ekfa-cal-popup-bg: #fff;
	--ekfa-cal-popup-text: inherit;
	--ekfa-cal-popup-border: rgba(0, 0, 0, 0.12);
	--ekfa-cal-header-color: inherit;
	--ekfa-cal-arrow-color: inherit;
	--ekfa-cal-arrow-color-hover: var(--ekfa-cal-arrow-color);
	--ekfa-cal-arrow-size: 36px;
	--ekfa-arrow-border-width: 1px;
	--ekfa-arrow-border-style: solid;
	--ekfa-arrow-border-color: var(--ekfa-cal-block-border);
	--ekfa-arrow-border-color-hover: var(--ekfa-cal-block-border-h, var(--ekfa-cal-block-border));
	--ekfa-arrow-border-radius: 4px;
	box-sizing: border-box;
	background: var(--ekfa-cal-container-bg);
	position: relative;
}

.ekfa-cal *,
.ekfa-cal *::before,
.ekfa-cal *::after {
	box-sizing: border-box;
}

.ekfa-cal:hover {
	background: var(--ekfa-cal-container-bg-h, var(--ekfa-cal-container-bg));
}

.ekfa-cal__nav {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.ekfa-cal--nav-align-left .ekfa-cal__nav {
	justify-content: flex-start;
}

.ekfa-cal--nav-align-center .ekfa-cal__nav {
	justify-content: center;
}

.ekfa-cal--nav-align-right .ekfa-cal__nav {
	justify-content: flex-end;
}

.ekfa-cal--nav-left,
.ekfa-cal--nav-right {
	display: grid;
	column-gap: 0.75rem;
}

.ekfa-cal--nav-left {
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas: "nav blocks";
}

.ekfa-cal--nav-right {
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "blocks nav";
}

.ekfa-cal--nav-bottom {
	display: grid;
	grid-template-areas:
		"blocks"
		"nav";
}

.ekfa-cal--nav-left .ekfa-cal__nav,
.ekfa-cal--nav-right .ekfa-cal__nav {
	grid-area: nav;
	flex-direction: column;
	justify-content: flex-start;
	margin-bottom: 0;
}

.ekfa-cal--nav-bottom .ekfa-cal__nav {
	grid-area: nav;
	margin-top: 0.75rem;
	margin-bottom: 0;
}

.ekfa-cal--nav-left .ekfa-cal__blocks,
.ekfa-cal--nav-right .ekfa-cal__blocks,
.ekfa-cal--nav-bottom .ekfa-cal__blocks {
	grid-area: blocks;
}

.ekfa-cal--nav-valign-top .ekfa-cal__nav {
	align-self: start;
}

.ekfa-cal--nav-valign-middle .ekfa-cal__nav {
	align-self: center;
}

.ekfa-cal--nav-valign-bottom .ekfa-cal__nav {
	align-self: end;
}

.ekfa-cal__nav-btn {
	appearance: none;
	background: var(--ekfa-cal-block-bg);
	color: var(--ekfa-cal-arrow-color);
	width: var(--ekfa-cal-arrow-size);
	height: var(--ekfa-cal-arrow-size);
	cursor: pointer;
	line-height: 1;
	font-size: calc(var(--ekfa-cal-arrow-size) * 0.55);
}

.ekfa-cal__nav-btn:hover {
	background: var(--ekfa-cal-block-bg-h, var(--ekfa-cal-block-bg));
	color: var(--ekfa-cal-arrow-color-hover);
}

.ekfa-cal--arrow-outline:not(.ekfa-cal--arrow-border-custom) .ekfa-cal__nav-btn {
	background: transparent;
	border-color: currentColor;
}

.ekfa-cal--arrow-outline .ekfa-cal__nav-btn:hover {
	background: transparent;
}

.ekfa-cal--arrow-outline:not(.ekfa-cal--arrow-border-custom):not(.ekfa-cal--arrow-border-hover-custom) .ekfa-cal__nav-btn:hover {
	border-color: currentColor;
}

.ekfa-cal--arrow-outline.ekfa-cal--arrow-border-hover-custom .ekfa-cal__nav-btn:hover {
	border-color: var(--ekfa-arrow-border-color-hover);
}

.ekfa-cal__nav-btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.ekfa-cal__nav-btn:disabled,
.ekfa-cal__nav-btn.ekfa-cal__nav-btn--disabled,
.ekfa-cal__nav-btn[aria-disabled="true"] {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}

.ekfa-cal__nav-btn i,
.ekfa-cal__nav-btn span {
	font-size: inherit;
	line-height: 1;
}

.ekfa-cal__blocks {
	display: grid;
	grid-template-columns: repeat(var(--ekfa-cal-cols), minmax(0, 1fr));
	gap: var(--ekfa-cal-block-gap);
}

/* During navigation the host becomes the viewport that clips the two panels. */
.ekfa-cal__blocks--sliding {
	display: block;
	overflow: hidden;
	pointer-events: none;
}

.ekfa-cal__slider {
	display: flex;
	flex-wrap: nowrap;
	width: 200%;
	will-change: transform;
}

.ekfa-cal__panel {
	flex: 0 0 50%;
	max-width: 50%;
	display: grid;
	grid-template-columns: repeat(var(--ekfa-cal-cols), minmax(0, 1fr));
	gap: var(--ekfa-cal-block-gap);
	align-content: start;
}

.ekfa-cal__block {
	background: var(--ekfa-cal-block-bg);
	border: 1px solid var(--ekfa-cal-block-border);
	border-radius: 6px;
	padding: 0.75rem;
	min-width: 0;
}

.ekfa-cal__block:hover {
	background: var(--ekfa-cal-block-bg-h, var(--ekfa-cal-block-bg));
	border-color: var(--ekfa-cal-block-border-h, var(--ekfa-cal-block-border));
}

.ekfa-cal__block-header {
	margin: 0 0 0.75rem;
}

.ekfa-cal .ekfa-cal__block-title,
.ekfa-cal .ekfa-cal__block--current .ekfa-cal__block-title {
	margin: 0;
	font-family: var(--ekfa-cal-header-ff, inherit);
	font-size: var(--ekfa-cal-header-size, 1.125rem);
	line-height: var(--ekfa-cal-header-lh, 1.3);
	letter-spacing: var(--ekfa-cal-header-ls, normal);
	text-transform: var(--ekfa-cal-header-tt, none);
	color: var(--ekfa-cal-header-color);
}

.ekfa-cal__grid {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.ekfa-cal__weekday {
	font-family: var(--ekfa-cal-weekday-ff, inherit);
	font-size: var(--ekfa-cal-weekday-size, 0.75rem);
	line-height: var(--ekfa-cal-weekday-lh, 1.2);
	letter-spacing: var(--ekfa-cal-weekday-ls, normal);
	text-transform: var(--ekfa-cal-weekday-tt, none);
	color: var(--ekfa-cal-weekday-color);
	font-weight: 600;
	text-align: center;
	padding: 0.35rem 0.15rem;
}

.ekfa-cal__day {
	vertical-align: top;
	padding: 0;
	border: 1px solid var(--ekfa-cal-day-border);
	background: var(--ekfa-cal-day-bg);
	height: 4.5rem;
}

.ekfa-cal__day:hover,
.ekfa-cal__day:focus-within {
	background: var(--ekfa-cal-day-bg-h, var(--ekfa-cal-day-bg));
	border-color: var(--ekfa-cal-day-border-h, var(--ekfa-cal-day-border));
}

.ekfa-cal__day--outside {
	opacity: 0.35;
}

.ekfa-cal__day--has-entries {
	background: var(--ekfa-cal-entry-bg, var(--ekfa-cal-day-bg));
	cursor: pointer;
}

.ekfa-cal__day--has-entries:hover,
.ekfa-cal__day--has-entries:focus {
	background: var(--ekfa-cal-entry-bg-h, var(--ekfa-cal-day-bg-h, var(--ekfa-cal-entry-bg, var(--ekfa-cal-day-bg))));
}

.ekfa-cal__day--today {
	background: var(--ekfa-cal-today-bg);
}

.ekfa-cal__day--today:hover,
.ekfa-cal__day--today:focus {
	background: var(--ekfa-cal-today-bg-h, var(--ekfa-cal-today-bg));
}

.ekfa-cal__day--past > .ekfa-cal__day-inner > .ekfa-cal__day-content {
	opacity: var(--ekfa-cal-past-opacity);
}

.ekfa-cal__day--past.ekfa-cal__day--outside > .ekfa-cal__day-inner > .ekfa-cal__day-content {
	opacity: calc(var(--ekfa-cal-past-opacity) * 0.6);
}

.ekfa-cal__day-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	height: 100%;
	padding: 0.35rem;
}

.ekfa-cal__day-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	max-width: 100%;
}

.ekfa-cal__day-num {
	font-family: var(--ekfa-cal-day-ff, inherit);
	font-size: var(--ekfa-cal-day-size, 0.875rem);
	line-height: var(--ekfa-cal-day-lh, 1.2);
	letter-spacing: var(--ekfa-cal-day-ls, normal);
	text-transform: var(--ekfa-cal-day-tt, none);
	color: var(--ekfa-cal-day-num-color);
}

.ekfa-cal__day:hover .ekfa-cal__day-num,
.ekfa-cal__day:focus .ekfa-cal__day-num {
	color: var(--ekfa-cal-day-num-color-h, var(--ekfa-cal-day-num-color));
}

.ekfa-cal__indicator {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem;
	align-items: center;
	max-width: 100%;
}

.ekfa-cal__dot {
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: var(--ekfa-cal-indicator);
	display: inline-block;
}

.ekfa-cal--indicator-highlight .ekfa-cal__day--has-entries:not(.ekfa-cal__day--outside) {
	box-shadow: inset 0 0 0 2px var(--ekfa-cal-indicator);
}

.ekfa-cal__indicator-highlight {
	display: none;
}

.ekfa-cal__indicator-title {
	font-size: 0.65rem;
	line-height: 1.2;
	color: var(--ekfa-cal-indicator);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

.ekfa-cal__popup {
	position: absolute;
	z-index: 20;
	left: 0;
	top: calc(100% + 0.25rem);
	min-width: 12rem;
	max-width: min(18rem, 70vw);
	background: var(--ekfa-cal-popup-bg);
	color: var(--ekfa-cal-popup-text);
	border: 1px solid var(--ekfa-cal-popup-border);
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	padding: 0.75rem;
	font-family: var(--ekfa-cal-popup-ff, inherit);
	font-size: var(--ekfa-cal-popup-size, 0.875rem);
	line-height: var(--ekfa-cal-popup-lh, 1.4);
	letter-spacing: var(--ekfa-cal-popup-ls, normal);
	text-transform: var(--ekfa-cal-popup-tt, none);
}

.ekfa-cal__popup:hover {
	background: var(--ekfa-cal-popup-bg-h, var(--ekfa-cal-popup-bg));
}

.ekfa-cal__popup[hidden] {
	display: none !important;
}

.ekfa-cal__popup-inner {
	position: relative;
	padding-right: 1.5rem;
}

.ekfa-cal__popup-date {
	margin: 0 0 0.5rem;
	font-weight: 600;
}

.ekfa-cal__popup-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.65rem;
}

.ekfa-cal__popup-item {
	margin: 0;
}

.ekfa-cal__popup-cat {
	display: inline-block;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.75;
	margin-bottom: 0.15rem;
}

.ekfa-cal__popup-link,
.ekfa-cal__popup-title {
	display: block;
	font-weight: 600;
	color: inherit;
}

.ekfa-cal__popup-details {
	margin-top: 0.25rem;
	opacity: 0.9;
}

.ekfa-cal__popup-close {
	position: absolute;
	top: -0.25rem;
	right: -0.25rem;
	appearance: none;
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	color: inherit;
	padding: 0.25rem;
}

.ekfa-cal__day--popup-open {
	z-index: 5;
}

.ekfa-cal__day--popup-open .ekfa-cal__day-inner {
	z-index: 5;
}

.ekfa-cal__day--popup-pinned {
	z-index: 6;
}

.ekfa-cal__day--popup-pinned .ekfa-cal__popup {
	pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-cal__slider {
		will-change: auto;
	}

	.ekfa-cal__popup,
	.ekfa-cal__blocks,
	.ekfa-cal__nav-btn {
		transition: none !important;
	}
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* EKFA: ekfa-carousel */
/**
 * Shared scroll-snap carousel strip (video gallery thumbs, post slider, timeline).
 *
 * Root: .ekfa-carousel
 * Track: .ekfa-carousel__track
 * Items: .ekfa-carousel__item
 * Arrows: .ekfa-carousel__prev / .ekfa-carousel__next
 *
 * Set --ekfa-per-view on an ancestor (e.g. the element root), NOT on
 * .ekfa-carousel itself — a local definition would shadow responsive
 * media-query overrides. Fallback is 5.
 */

.ekfa-carousel {
	position: relative;
	display: flex;
	align-items: stretch;
	gap: 0.5rem;
}

.ekfa-carousel__viewport {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
}

.ekfa-carousel__track {
	display: flex;
	gap: var(--ekfa-carousel-gap, 0.5rem);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ekfa-carousel__track::-webkit-scrollbar {
	display: none;
}

.ekfa-carousel__item {
	flex: 0 0 calc((100% - (var(--ekfa-per-view, 5) - 1) * var(--ekfa-carousel-gap, 0.5rem)) / var(--ekfa-per-view, 5));
	scroll-snap-align: start;
	min-width: 0;
}

.ekfa-carousel__btn {
	flex: 0 0 auto;
	align-self: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	/* Longhands + shared arrow vars so load order cannot wipe border controls. */
	border-width: var(--ekfa-arrow-border-width, 1px);
	border-style: var(--ekfa-arrow-border-style, solid);
	border-color: var(--ekfa-arrow-border-color, currentColor);
	border-radius: var(--ekfa-arrow-border-radius, 50%);
	background: transparent;
	color: inherit;
	cursor: pointer;
	line-height: 1;
	opacity: 0.85;
}

.ekfa-carousel__btn:hover,
.ekfa-carousel__btn:focus-visible {
	opacity: 1;
}

.ekfa-carousel__btn:disabled,
.ekfa-carousel__btn[aria-disabled="true"] {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

.ekfa-carousel__btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-carousel__track {
		scroll-behavior: auto;
	}
}

/* EKFA: ekfa-timeline */
/**
 * EK Timeline — vertical + horizontal layouts, markers, reveal.
 *
 * BEM: .ekfa-timeline*
 * Horizontal strip: shared .ekfa-carousel utility (do not duplicate).
 */

.ekfa-timeline {
	--ekfa-tl-line-color: currentColor;
	--ekfa-tl-marker-color: var(--ekfa-tl-accent, currentColor);
	--ekfa-tl-marker-color-hover: var(--ekfa-tl-marker-color);
	--ekfa-tl-marker-border: var(--ekfa-tl-marker-color);
	--ekfa-tl-marker-border-hover: var(--ekfa-tl-marker-border);
	--ekfa-tl-marker-size: 16px;
	/* Rail size stays on the root only — never override per item — so the line
	   and every marker (any size) share one center axis. */
	--ekfa-tl-rail-size: var(--ekfa-tl-marker-size);
	--ekfa-tl-rail-center: calc(var(--ekfa-tl-rail-size) / 2);
	--ekfa-tl-marker-border-width: 2px;
	--ekfa-tl-line-thickness: 2px;
	--ekfa-tl-spacing: 32px;
	--ekfa-tl-card-bg: transparent;
	--ekfa-tl-card-bg-hover: var(--ekfa-tl-card-bg);
	--ekfa-tl-label-color: var(--ekfa-tl-accent, inherit);
	--ekfa-tl-title-color: inherit;
	--ekfa-tl-title-color-hover: var(--ekfa-tl-title-color);
	--ekfa-tl-label-size: 0.85em;
	--ekfa-tl-label-line-height: 1.3;
	--ekfa-tl-label-letter-spacing: 0.02em;
	--ekfa-tl-label-transform: none;
	--ekfa-tl-title-size: 1.15em;
	--ekfa-tl-title-line-height: 1.3;
	--ekfa-tl-title-letter-spacing: normal;
	--ekfa-tl-title-transform: none;
	--ekfa-tl-arrow-color: inherit;
	--ekfa-tl-arrow-color-hover: var(--ekfa-tl-arrow-color);
	--ekfa-tl-arrow-size: 36px;
	--ekfa-arrow-border-width: 1px;
	--ekfa-arrow-border-style: solid;
	--ekfa-arrow-border-color: currentColor;
	--ekfa-arrow-border-color-hover: var(--ekfa-arrow-border-color);
	--ekfa-arrow-border-radius: 18px;
	position: relative;
	width: 100%;
}

.ekfa-timeline--empty,
.ekfa-timeline__editor-warning {
	padding: 0.75rem 1rem;
	border: 1px dashed currentColor;
	opacity: 0.85;
	font-size: 0.9em;
}

.ekfa-timeline__list {
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.ekfa-timeline__item {
	position: relative;
	margin: 0;
	padding: 0;
}

.ekfa-timeline .ekfa-carousel__btn {
	width: var(--ekfa-tl-arrow-size);
	height: var(--ekfa-tl-arrow-size);
	color: var(--ekfa-tl-arrow-color);
	/* Keep default glyph ~16px at the 36px arrow size (legacy 2.25rem button). */
	font-size: calc(var(--ekfa-tl-arrow-size) / 2.25);
	border-width: var(--ekfa-arrow-border-width, 1px);
	border-style: var(--ekfa-arrow-border-style, solid);
	border-color: var(--ekfa-arrow-border-color, currentColor);
	border-radius: var(--ekfa-arrow-border-radius, 50%);
}

.ekfa-timeline .ekfa-carousel__btn:hover {
	color: var(--ekfa-tl-arrow-color-hover);
	border-color: var(--ekfa-arrow-border-color-hover, var(--ekfa-arrow-border-color, currentColor));
}

.ekfa-timeline--arrow-filled .ekfa-carousel__btn {
	background: rgba(127, 127, 127, 0.14);
	background: color-mix(in srgb, currentColor 14%, transparent);
}

.ekfa-timeline--arrow-filled .ekfa-carousel__btn:hover {
	background: rgba(127, 127, 127, 0.22);
	background: color-mix(in srgb, currentColor 22%, transparent);
}

.ekfa-timeline--arrow-outline .ekfa-carousel__btn {
	background: transparent;
}

.ekfa-timeline--arrow-outline:not(.ekfa-timeline--arrow-border-custom) .ekfa-carousel__btn {
	border-color: currentColor;
}

.ekfa-timeline--arrow-outline:not(.ekfa-timeline--arrow-border-custom):not(.ekfa-timeline--arrow-border-hover-custom) .ekfa-carousel__btn:hover {
	border-color: currentColor;
}

.ekfa-timeline--arrow-outline.ekfa-timeline--arrow-border-hover-custom .ekfa-carousel__btn:hover {
	border-color: var(--ekfa-arrow-border-color-hover);
}

.ekfa-timeline .ekfa-carousel__btn i,
.ekfa-timeline .ekfa-carousel__btn span {
	font-size: inherit;
	line-height: 1;
}

.ekfa-timeline__marker {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--ekfa-tl-marker-size);
	height: var(--ekfa-tl-marker-size);
	color: var(--ekfa-tl-marker-color);
	line-height: 1;
	pointer-events: none;
}

.ekfa-timeline__item--linked:hover .ekfa-timeline__marker,
.ekfa-timeline__item--linked:focus-within .ekfa-timeline__marker {
	color: var(--ekfa-tl-marker-color-hover);
}

.ekfa-timeline__marker-dot {
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--ekfa-tl-marker-color);
	border: var(--ekfa-tl-marker-border-width) solid var(--ekfa-tl-marker-border);
}

.ekfa-timeline__item--linked:hover .ekfa-timeline__marker-dot,
.ekfa-timeline__item--linked:focus-within .ekfa-timeline__marker-dot {
	background: var(--ekfa-tl-marker-color-hover);
	border-color: var(--ekfa-tl-marker-border-hover);
}

.ekfa-timeline__marker-icon {
	font-size: calc(var(--ekfa-tl-marker-size) * 0.65);
	line-height: 1;
}

.ekfa-timeline__marker-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 50%;
}

.ekfa-timeline__card {
	background: var(--ekfa-tl-card-bg);
	transition: background-color 0.2s ease;
}

.ekfa-timeline__item:hover .ekfa-timeline__card,
.ekfa-timeline__item:focus-within .ekfa-timeline__card {
	background: var(--ekfa-tl-card-bg-hover);
}

.ekfa-timeline--card-boxed .ekfa-timeline__card {
	padding: 1rem 1.25rem;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 4px;
}

.ekfa-timeline--card-shadow .ekfa-timeline__card {
	padding: 1rem 1.25rem;
	border-radius: 4px;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
}

.ekfa-timeline__label {
	display: block;
	margin-bottom: 0.35em;
	font-family: var(--ekfa-tl-label-font-family, inherit);
	font-weight: var(--ekfa-tl-label-font-weight, 600);
	font-style: var(--ekfa-tl-label-font-style, inherit);
	font-size: var(--ekfa-tl-label-size);
	line-height: var(--ekfa-tl-label-line-height);
	letter-spacing: var(--ekfa-tl-label-letter-spacing);
	text-transform: var(--ekfa-tl-label-transform);
	color: var(--ekfa-tl-label-color);
}

.ekfa-timeline__title {
	margin: 0 0 0.4em;
	font-family: var(--ekfa-tl-title-font-family, inherit);
	font-weight: var(--ekfa-tl-title-font-weight, inherit);
	font-style: var(--ekfa-tl-title-font-style, inherit);
	font-size: var(--ekfa-tl-title-size);
	line-height: var(--ekfa-tl-title-line-height);
	letter-spacing: var(--ekfa-tl-title-letter-spacing);
	text-transform: var(--ekfa-tl-title-transform);
	color: var(--ekfa-tl-title-color);
}

.ekfa-timeline__title-link {
	color: inherit;
	text-decoration: none;
}

.ekfa-timeline__title-link:hover,
.ekfa-timeline__title-link:focus-visible {
	color: var(--ekfa-tl-title-color-hover);
	text-decoration: underline;
}

.ekfa-timeline__content {
	font-size: 0.95em;
	line-height: 1.55;
}

.ekfa-timeline__content > *:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Vertical
   Line is per-item connectors (::after) from this marker center to the next,
   so the first/last marker centers sit on the line tips (no overhang).
   ------------------------------------------------------------------------- */

.ekfa-timeline--vertical .ekfa-timeline__list {
	padding-left: 0;
}

.ekfa-timeline--vertical .ekfa-timeline__item {
	padding-bottom: var(--ekfa-tl-spacing);
}

.ekfa-timeline--vertical .ekfa-timeline__item:last-child {
	padding-bottom: 0;
}

/* Connector: this marker center → next marker center.
   Item padding-bottom is --ekfa-tl-spacing, so bottom:0 is already the next
   item's top — only extend by the next marker's half-height. */
.ekfa-timeline--vertical .ekfa-timeline__item:not(:last-child)::after {
	content: "";
	position: absolute;
	z-index: 1;
	width: var(--ekfa-tl-line-thickness);
	background: var(--ekfa-tl-line-color);
	opacity: 0.45;
	top: calc(var(--ekfa-tl-marker-size) / 2);
	bottom: calc(-1 * var(--ekfa-tl-next-marker-half, var(--ekfa-tl-rail-center)));
	pointer-events: none;
}

.ekfa-timeline--vertical.ekfa-timeline--line-left .ekfa-timeline__item:not(:last-child)::after {
	left: var(--ekfa-tl-rail-center);
	transform: translateX(-50%);
	transform-origin: top center;
}

.ekfa-timeline--vertical.ekfa-timeline--line-right .ekfa-timeline__item:not(:last-child)::after {
	left: auto;
	right: var(--ekfa-tl-rail-center);
	transform: translateX(50%);
	transform-origin: top center;
}

.ekfa-timeline--vertical.ekfa-timeline--line-center .ekfa-timeline__item:not(:last-child)::after {
	left: 50%;
	transform: translateX(-50%);
	transform-origin: top center;
}

/* Center every marker (any size) on the shared rail / line axis. */
.ekfa-timeline--vertical.ekfa-timeline--line-left .ekfa-timeline__marker {
	top: 0;
	left: var(--ekfa-tl-rail-center);
	transform: translateX(-50%);
}

.ekfa-timeline--vertical.ekfa-timeline--line-left .ekfa-timeline__card {
	margin-left: calc(var(--ekfa-tl-rail-center) + (var(--ekfa-tl-marker-size) / 2) + 1rem);
}

.ekfa-timeline--vertical.ekfa-timeline--line-right .ekfa-timeline__marker {
	top: 0;
	left: auto;
	right: var(--ekfa-tl-rail-center);
	transform: translateX(50%);
}

.ekfa-timeline--vertical.ekfa-timeline--line-right .ekfa-timeline__card {
	margin-right: calc(var(--ekfa-tl-rail-center) + (var(--ekfa-tl-marker-size) / 2) + 1rem);
	margin-left: 0;
	text-align: right;
}

.ekfa-timeline--vertical.ekfa-timeline--line-center .ekfa-timeline__marker {
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.ekfa-timeline--vertical.ekfa-timeline--line-center .ekfa-timeline__item--side-right .ekfa-timeline__card {
	width: calc(50% - (var(--ekfa-tl-marker-size) / 2) - 1rem);
	margin-left: calc(50% + (var(--ekfa-tl-marker-size) / 2) + 0.75rem);
}

.ekfa-timeline--vertical.ekfa-timeline--line-center .ekfa-timeline__item--side-left .ekfa-timeline__card {
	width: calc(50% - (var(--ekfa-tl-marker-size) / 2) - 1rem);
	margin-right: calc(50% + (var(--ekfa-tl-marker-size) / 2) + 0.75rem);
	margin-left: 0;
	text-align: right;
}

.ekfa-timeline--vertical.ekfa-timeline--line-center:not(.ekfa-timeline--alternate) .ekfa-timeline__card {
	width: calc(50% - (var(--ekfa-tl-marker-size) / 2) - 1rem);
	margin-left: calc(50% + (var(--ekfa-tl-marker-size) / 2) + 0.75rem);
	margin-right: 0;
	text-align: left;
}

/* Center → left-line collapse: instance <style> in PHP (Avada visibility_medium). */

/* -------------------------------------------------------------------------
   Horizontal (shared carousel)
   First marker at line start, last at line end, middles centered.
   ------------------------------------------------------------------------- */

.ekfa-timeline--horizontal .ekfa-carousel {
	align-items: stretch;
}

.ekfa-timeline--horizontal .ekfa-carousel__track.ekfa-timeline__list {
	align-items: stretch;
	padding: 0.5rem 0;
}

.ekfa-timeline--horizontal .ekfa-timeline__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: 1fr auto 1fr;
	align-items: stretch;
	min-height: 0;
	padding: 0;
}

.ekfa-timeline--horizontal .ekfa-timeline__item::before {
	content: "";
	grid-row: 2;
	grid-column: 1;
	align-self: center;
	justify-self: start;
	height: var(--ekfa-tl-line-thickness);
	background: var(--ekfa-tl-line-color);
	opacity: 0.45;
	z-index: 1;
	pointer-events: none;
	transform-origin: left center;
}

/*
 * One connector per gap: this marker center → next marker center (same idea as
 * vertical). Avoids the old half+half draw between two dots.
 * % widths are this slide’s width; equal flex basis makes that match the next.
 */
.ekfa-timeline--horizontal .ekfa-timeline__item:last-child::before,
.ekfa-timeline--horizontal .ekfa-timeline__item:only-child::before {
	display: none;
}

/* Exactly 2 items: first (start) → last (end). */
.ekfa-timeline--horizontal .ekfa-timeline__item:first-child:nth-last-child(2)::before {
	margin-left: calc(var(--ekfa-tl-marker-size) / 2);
	width: calc(200% - var(--ekfa-tl-marker-size) + var(--ekfa-carousel-gap, 0.5rem));
}

/* 3+ items: first (start) → next (center). */
.ekfa-timeline--horizontal .ekfa-timeline__item:first-child:not(:nth-last-child(2)):not(:only-child)::before {
	margin-left: calc(var(--ekfa-tl-marker-size) / 2);
	width: calc(150% - (var(--ekfa-tl-marker-size) / 2) + var(--ekfa-carousel-gap, 0.5rem));
}

/* Middle → middle. */
.ekfa-timeline--horizontal .ekfa-timeline__item:not(:first-child):not(:last-child):not(:nth-last-child(2))::before {
	margin-left: 50%;
	width: calc(100% + var(--ekfa-carousel-gap, 0.5rem));
}

/* Middle → last (penultimate when 3+). */
.ekfa-timeline--horizontal .ekfa-timeline__item:nth-last-child(2):not(:first-child)::before {
	margin-left: 50%;
	width: calc(150% - (var(--ekfa-tl-marker-size) / 2) + var(--ekfa-carousel-gap, 0.5rem));
}

.ekfa-timeline--horizontal .ekfa-timeline__marker {
	grid-row: 2;
	grid-column: 1;
	position: relative;
	top: auto;
	left: auto;
	right: auto;
	align-self: center;
	transform: none;
	margin: 0;
	z-index: 2;
	background-color: #fff;
	border-radius: 50%;
}

.ekfa-timeline--horizontal .ekfa-timeline__item:first-child:not(:only-child) .ekfa-timeline__marker {
	justify-self: start;
}

.ekfa-timeline--horizontal .ekfa-timeline__item:last-child:not(:only-child) .ekfa-timeline__marker {
	justify-self: end;
}

.ekfa-timeline--horizontal .ekfa-timeline__item:not(:first-child):not(:last-child) .ekfa-timeline__marker,
.ekfa-timeline--horizontal .ekfa-timeline__item:only-child .ekfa-timeline__marker {
	justify-self: center;
}

.ekfa-timeline--horizontal .ekfa-timeline__card {
	width: 100%;
	min-width: 0;
	padding-bottom: 0.75rem;
	padding-top: 0.75rem;
	text-align: center;
}

.ekfa-timeline--horizontal .ekfa-timeline__item:first-child:not(:only-child) .ekfa-timeline__card {
	text-align: left;
}

.ekfa-timeline--horizontal .ekfa-timeline__item:last-child:not(:only-child) .ekfa-timeline__card {
	text-align: right;
}

.ekfa-timeline--horizontal .ekfa-timeline__item--card-above .ekfa-timeline__card {
	grid-row: 1;
	grid-column: 1;
	align-self: end;
	padding-bottom: 0.75rem;
	padding-top: 0;
}

.ekfa-timeline--horizontal .ekfa-timeline__item--card-below .ekfa-timeline__card {
	grid-row: 3;
	grid-column: 1;
	align-self: start;
	padding-top: 0.75rem;
	padding-bottom: 0;
}

/* -------------------------------------------------------------------------
   Reveal (progressive enhancement):
   Stylesheet alone NEVER hides items. Pre-hide requires .ekfa-timeline--js,
   which a minimal inline boot adds synchronously before first paint when
   animate is on. No JS → no --js → fully visible. Live omits animate.
   ------------------------------------------------------------------------- */

.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__card {
	opacity: 0;
}

.ekfa-timeline--animate-slide.ekfa-timeline--js .ekfa-timeline__card {
	transform: translateY(12px);
}

.ekfa-timeline--animate .ekfa-timeline__item.is-visible .ekfa-timeline__card {
	opacity: 1;
	transform: none;
	transition: opacity 0.45s ease, transform 0.45s ease;
}

.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__marker {
	opacity: 0;
	transform: scale(0.6);
}

.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-left .ekfa-timeline__marker,
.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-center .ekfa-timeline__marker {
	transform: translateX(-50%) scale(0.6);
}

.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-right .ekfa-timeline__marker {
	transform: translateX(50%) scale(0.6);
}

.ekfa-timeline--animate .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
	opacity: 1;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.ekfa-timeline--horizontal.ekfa-timeline--animate .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
	transform: scale(1);
}

.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-left .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker,
.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-center .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
	transform: translateX(-50%) scale(1);
}

.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
	transform: translateX(50%) scale(1);
}

/* Vertical: connector grows top → bottom. */
.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__item:not(:last-child)::after {
	transform: translateX(-50%) scaleY(0);
	transform-origin: top center;
	transition: transform 0.45s ease;
}

.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-right .ekfa-timeline__item:not(:last-child)::after {
	transform: translateX(50%) scaleY(0);
	transform-origin: top center;
}

.ekfa-timeline--vertical.ekfa-timeline--animate .ekfa-timeline__item.is-line-drawn:not(:last-child)::after {
	transform: translateX(-50%) scaleY(1);
}

.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__item.is-line-drawn:not(:last-child)::after {
	transform: translateX(50%) scaleY(1);
}

/* Horizontal: segment grows left → right. */
.ekfa-timeline--horizontal.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__item:not(:last-child)::before {
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.45s ease;
}

.ekfa-timeline--horizontal.ekfa-timeline--animate .ekfa-timeline__item.is-line-drawn:not(:last-child)::before {
	transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__card,
	.ekfa-timeline--animate .ekfa-timeline__item.is-visible .ekfa-timeline__card,
	.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__marker,
	.ekfa-timeline--animate .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-left .ekfa-timeline__marker,
	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-center .ekfa-timeline__marker,
	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-left .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker,
	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-center .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
		transform: translateX(-50%);
	}

	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-right .ekfa-timeline__marker,
	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__item.is-marker-in .ekfa-timeline__marker {
		transform: translateX(50%);
	}

	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__item:not(:last-child)::after,
	.ekfa-timeline--vertical.ekfa-timeline--animate .ekfa-timeline__item.is-line-drawn:not(:last-child)::after {
		transform: translateX(-50%) scaleY(1);
		transition: none;
	}

	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--js.ekfa-timeline--line-right .ekfa-timeline__item:not(:last-child)::after,
	.ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__item.is-line-drawn:not(:last-child)::after {
		transform: translateX(50%) scaleY(1);
	}

	.ekfa-timeline--horizontal.ekfa-timeline--animate.ekfa-timeline--js .ekfa-timeline__item:not(:last-child)::before,
	.ekfa-timeline--horizontal.ekfa-timeline--animate .ekfa-timeline__item.is-line-drawn:not(:last-child)::before {
		transform: scaleX(1);
		transition: none;
	}

	.ekfa-timeline__card {
		transition: none;
	}
}

/* Live canvas belt-and-suspenders if --animate ever appears without JS. */
body.fusion-builder-live-preview .ekfa-timeline--animate .ekfa-timeline__card,
body.fusion-builder-live-preview .ekfa-timeline--animate .ekfa-timeline__marker,
body.fusion-builder-live-preview-only .ekfa-timeline--animate .ekfa-timeline__card,
body.fusion-builder-live-preview-only .ekfa-timeline--animate .ekfa-timeline__marker {
	opacity: 1;
	transform: none;
	transition: none;
}

body.fusion-builder-live-preview .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-left .ekfa-timeline__marker,
body.fusion-builder-live-preview .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-center .ekfa-timeline__marker,
body.fusion-builder-live-preview-only .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-left .ekfa-timeline__marker,
body.fusion-builder-live-preview-only .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-center .ekfa-timeline__marker {
	transform: translateX(-50%);
}

body.fusion-builder-live-preview .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__marker,
body.fusion-builder-live-preview-only .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__marker {
	transform: translateX(50%);
}

body.fusion-builder-live-preview .ekfa-timeline--vertical.ekfa-timeline--animate .ekfa-timeline__item:not(:last-child)::after,
body.fusion-builder-live-preview-only .ekfa-timeline--vertical.ekfa-timeline--animate .ekfa-timeline__item:not(:last-child)::after {
	transform: translateX(-50%) scaleY(1);
	transition: none;
}

body.fusion-builder-live-preview .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__item:not(:last-child)::after,
body.fusion-builder-live-preview-only .ekfa-timeline--vertical.ekfa-timeline--animate.ekfa-timeline--line-right .ekfa-timeline__item:not(:last-child)::after {
	transform: translateX(50%) scaleY(1);
}

body.fusion-builder-live-preview .ekfa-timeline--horizontal.ekfa-timeline--animate .ekfa-timeline__item:not(:last-child)::before,
body.fusion-builder-live-preview-only .ekfa-timeline--horizontal.ekfa-timeline--animate .ekfa-timeline__item:not(:last-child)::before {
	transform: scaleX(1);
	transition: none;
}

/* EKFA: ekfa-video-gallery */
/**
 * EK Video Gallery: grid, slider, and playlist facades.
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-video {
	--ekfa-video-accent: var(--primary_color, #65bc7b);
	--ekfa-video-accent-hover: var(--ekfa-video-accent);
	--ekfa-video-play-icon: #fff;
	--ekfa-video-play-icon-hover: var(--ekfa-video-play-icon);
	--ekfa-video-arrow: var(--ekfa-video-accent);
	--ekfa-video-arrow-hover: var(--ekfa-video-accent-hover);
	--ekfa-video-arrow-size: 36px;
	--ekfa-video-gap: 10px;
	--ekfa-video-cols: 3;
	--ekfa-video-stage-ratio: 16 / 9;
	--ekfa-per-view: 5;
	--ekfa-video-title-size: 0.95em;
	--ekfa-video-title-line-height: 1.3;
	--ekfa-video-title-letter-spacing: normal;
	--ekfa-video-title-transform: none;
	--ekfa-video-title-overlay: rgba(0, 0, 0, 0.65);
	--ekfa-video-title-overlay-hover: var(--ekfa-video-title-overlay);
	--ekfa-video-pl-nav: var(--ekfa-video-accent);
	--ekfa-video-pl-nav-hover: var(--ekfa-video-accent-hover);
	--ekfa-video-pl-nav-size: 36px;
	color: inherit;
}

.ekfa-video--empty,
.ekfa-video__editor-warning {
	padding: 0.75rem 1rem;
	margin: 0 0 0.75rem;
	border-left: 3px solid #dba617;
	background: #fcf9e8;
	color: #1d2327;
	font-size: 13px;
}

.ekfa-video__grid {
	display: grid;
	grid-template-columns: repeat(var(--ekfa-video-cols), minmax(0, 1fr));
	gap: var(--ekfa-video-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ekfa-video__cell {
	margin: 0;
	min-width: 0;
}

.ekfa-video__item {
	position: relative;
}

.ekfa-video__facade {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: #1a1a1a;
	cursor: pointer;
	overflow: hidden;
	aspect-ratio: var(--ekfa-video-stage-ratio);
	color: inherit;
}

.ekfa-video--layout-grid .ekfa-video__facade,
.ekfa-video--grid .ekfa-video__facade {
	aspect-ratio: 16 / 9;
}

.ekfa-video__thumb-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: middle;
}

.ekfa-video__thumb-ph {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 100%);
}

.ekfa-video__facade--placeholder .ekfa-video__thumb-ph {
	background: #4a4a4a;
}

/* Play button — Avada lite-youtube inspired triangle, scoped to .ekfa-video */
.ekfa-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 48px;
	border-radius: 0.5em;
	pointer-events: none;
	transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.ekfa-video--play-filled .ekfa-video__play {
	background-color: var(--ekfa-video-accent);
}

.ekfa-video--play-filled .ekfa-video__facade:hover .ekfa-video__play,
.ekfa-video--play-filled .ekfa-video__facade:focus-visible .ekfa-video__play {
	background-color: var(--ekfa-video-accent-hover);
}

.ekfa-video--play-outline .ekfa-video__play {
	background-color: transparent;
	box-shadow: inset 0 0 0 2px #fff;
}

.ekfa-video--play-outline .ekfa-video__facade:hover .ekfa-video__play,
.ekfa-video--play-outline .ekfa-video__facade:focus-visible .ekfa-video__play {
	box-shadow: inset 0 0 0 2px var(--ekfa-video-accent-hover);
}

.ekfa-video__play-icon {
	display: block;
	width: 0;
	height: 0;
	margin-left: 4px;
	border-style: solid;
	border-width: 10px 0 10px 18px;
	border-color: transparent transparent transparent var(--ekfa-video-play-icon);
	transition: border-color 0.15s ease;
}

.ekfa-video__facade:hover .ekfa-video__play-icon,
.ekfa-video__facade:focus-visible .ekfa-video__play-icon {
	border-left-color: var(--ekfa-video-play-icon-hover);
}

.ekfa-video__facade:focus-visible {
	outline: 2px solid var(--ekfa-video-accent);
	outline-offset: 2px;
}

.ekfa-video__title {
	margin-top: 0.5rem;
	font-family: var(--ekfa-video-title-font-family, inherit);
	font-weight: var(--ekfa-video-title-font-weight, inherit);
	font-style: var(--ekfa-video-title-font-style, inherit);
	font-size: var(--ekfa-video-title-size);
	line-height: var(--ekfa-video-title-line-height);
	letter-spacing: var(--ekfa-video-title-letter-spacing);
	text-transform: var(--ekfa-video-title-transform);
	color: var(--ekfa-video-title-color, inherit);
}

.ekfa-video__item:hover .ekfa-video__title,
.ekfa-video__item:focus-within .ekfa-video__title {
	color: var(--ekfa-video-title-color-hover, var(--ekfa-video-title-color, inherit));
}

.ekfa-video__title--overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 0.75rem 1rem;
	background: linear-gradient(transparent, var(--ekfa-video-title-overlay));
	color: var(--ekfa-video-title-color, #fff);
	pointer-events: none;
	z-index: 2;
}

.ekfa-video__item:hover .ekfa-video__title--overlay,
.ekfa-video__item:focus-within .ekfa-video__title--overlay {
	background: linear-gradient(transparent, var(--ekfa-video-title-overlay-hover));
	color: var(--ekfa-video-title-color-hover, var(--ekfa-video-title-color, #fff));
}

.ekfa-video__player,
.ekfa-video__player iframe,
.ekfa-video__player video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	aspect-ratio: inherit;
}

.ekfa-video__player {
	position: relative;
	width: 100%;
	aspect-ratio: var(--ekfa-video-stage-ratio);
	background: #000;
}

.ekfa-video--grid .ekfa-video__player {
	aspect-ratio: 16 / 9;
}

.ekfa-video__privacy {
	display: none;
	margin-top: 0.5rem;
}

.ekfa-video__privacy.is-visible {
	display: block;
}

.ekfa-video__privacy .fusion-privacy-placeholder {
	min-height: 8rem;
}

/* Slider stage */
.ekfa-video__stage {
	margin-bottom: 0.75rem;
}

.ekfa-video__stage .ekfa-video__facade,
.ekfa-video__stage .ekfa-video__player {
	aspect-ratio: var(--ekfa-video-stage-ratio);
}

.ekfa-video__thumbs {
	margin-top: 0.25rem;
}

.ekfa-video__thumb {
	display: block;
	width: 100%;
	padding: 0;
	border: 2px solid transparent;
	background: #1a1a1a;
	cursor: pointer;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	opacity: 0.75;
	transition: opacity 0.15s ease, border-color 0.15s ease;
}

.ekfa-video__thumb.is-active {
	opacity: 1;
	border-color: var(--ekfa-video-accent);
}

.ekfa-video__thumb:hover,
.ekfa-video__thumb:focus-visible {
	opacity: 1;
	border-color: var(--ekfa-video-accent-hover);
}

.ekfa-video__thumb:focus-visible {
	outline: 2px solid var(--ekfa-video-accent);
	outline-offset: 2px;
}

.ekfa-video__thumb .ekfa-video__thumb-img,
.ekfa-video__thumb .ekfa-video__thumb-ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ekfa-video__arrow.ekfa-carousel__btn {
	width: var(--ekfa-video-arrow-size);
	height: var(--ekfa-video-arrow-size);
	font-size: calc(var(--ekfa-video-arrow-size) * 0.55);
	color: var(--ekfa-video-arrow);
	background-color: var(--ekfa-video-arrow-bg, transparent);
	transition: color 0.15s ease, background-color 0.15s ease, opacity 0.15s ease;
}

.ekfa-video__arrow.ekfa-carousel__btn:hover,
.ekfa-video__arrow.ekfa-carousel__btn:focus-visible {
	color: var(--ekfa-video-arrow-hover);
	background-color: var(--ekfa-video-arrow-bg-hover, var(--ekfa-video-arrow-bg, transparent));
}

.ekfa-video--arrow-filled .ekfa-video__arrow.ekfa-carousel__btn {
	background-color: rgba(127, 127, 127, 0.14);
	background-color: var(--ekfa-video-arrow-bg, color-mix(in srgb, currentColor 14%, transparent));
}

.ekfa-video--arrow-filled .ekfa-video__arrow.ekfa-carousel__btn:hover,
.ekfa-video--arrow-filled .ekfa-video__arrow.ekfa-carousel__btn:focus-visible {
	background-color: rgba(127, 127, 127, 0.22);
	background-color: var(--ekfa-video-arrow-bg-hover, var(--ekfa-video-arrow-bg, color-mix(in srgb, currentColor 22%, transparent)));
}

.ekfa-video--arrow-outline .ekfa-video__arrow.ekfa-carousel__btn {
	background-color: transparent;
}

.ekfa-video__arrow i,
.ekfa-video__arrow span {
	font-size: inherit;
	line-height: 1;
}

.ekfa-video__noscript {
	list-style: disc;
	margin: 1rem 0;
	padding-left: 1.25rem;
}

/* Playlist: desktop side-by-side. Small-screen stacking is instance-scoped (Avada visibility_small). */

.ekfa-video__playlist {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(12.5rem, 30%);
	grid-template-areas: "stage list";
	gap: var(--ekfa-video-gap, 10px);
	align-items: stretch;
}

.ekfa-video--playlist-left .ekfa-video__playlist {
	grid-template-columns: minmax(12.5rem, 30%) minmax(0, 1fr);
	grid-template-areas: "list stage";
}

.ekfa-video__playlist-stage {
	grid-area: stage;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 0;
}

.ekfa-video__playlist-side {
	grid-area: list;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 8px;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.03);
}

.ekfa-video__playlist-list {
	flex: 1 1 auto;
	max-height: var(--ekfa-video-playlist-max-height, none);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

.ekfa-video__up-next {
	display: none;
	flex-direction: column;
	align-items: stretch;
	gap: 0.35rem;
	width: 100%;
	margin: 0;
	padding: 0.65rem 0.75rem;
	border: 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.ekfa-video__up-next:focus-visible {
	outline: 2px solid var(--ekfa-video-accent);
	outline-offset: -2px;
}

.ekfa-video__up-next-kicker {
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	opacity: 0.75;
}

.ekfa-video__up-next-body {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.ekfa-video__up-next-thumb {
	flex: 0 0 5.5rem;
	width: 5.5rem;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 4px;
	background: rgba(0, 0, 0, 0.12);
}

.ekfa-video__up-next-thumb--ph {
	display: block;
}

.ekfa-video__up-next-text {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
	flex: 1 1 auto;
}

.ekfa-video__up-next-title {
	font-weight: 600;
	line-height: 1.3;
}

.ekfa-video__up-next-duration {
	font-size: 0.8em;
	opacity: 0.75;
}

.ekfa-video__up-next-toggle {
	position: absolute;
	right: 0.75rem;
	top: 0.75rem;
	width: 0.6rem;
	height: 0.6rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}

.ekfa-video__up-next {
	position: relative;
}

.ekfa-video.is-list-open .ekfa-video__up-next-toggle {
	transform: rotate(-135deg);
}

.ekfa-video__playlist-nav {
	display: none;
	gap: 0.5rem;
	align-items: center;
}

.ekfa-video--nav-always .ekfa-video__playlist-nav {
	display: flex;
}

.ekfa-video__pl-prev,
.ekfa-video__pl-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ekfa-video-pl-nav-size, 36px);
	height: var(--ekfa-video-pl-nav-size, 36px);
	padding: 0;
	cursor: pointer;
	border-radius: 4px;
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.ekfa-video--pl-nav-filled .ekfa-video__pl-prev,
.ekfa-video--pl-nav-filled .ekfa-video__pl-next {
	border: 2px solid transparent;
	background: var(--ekfa-video-pl-nav);
	color: #fff;
}

.ekfa-video--pl-nav-outline .ekfa-video__pl-prev,
.ekfa-video--pl-nav-outline .ekfa-video__pl-next {
	border: 2px solid var(--ekfa-video-pl-nav);
	background: transparent;
	color: var(--ekfa-video-pl-nav);
}

.ekfa-video--pl-nav-filled .ekfa-video__pl-prev:hover,
.ekfa-video--pl-nav-filled .ekfa-video__pl-prev:focus-visible,
.ekfa-video--pl-nav-filled .ekfa-video__pl-next:hover,
.ekfa-video--pl-nav-filled .ekfa-video__pl-next:focus-visible {
	background: var(--ekfa-video-pl-nav-hover);
	color: #fff;
}

.ekfa-video--pl-nav-outline .ekfa-video__pl-prev:hover,
.ekfa-video--pl-nav-outline .ekfa-video__pl-prev:focus-visible,
.ekfa-video--pl-nav-outline .ekfa-video__pl-next:hover,
.ekfa-video--pl-nav-outline .ekfa-video__pl-next:focus-visible {
	border-color: var(--ekfa-video-pl-nav-hover);
	color: var(--ekfa-video-pl-nav-hover);
}

.ekfa-video__pl-prev:focus-visible,
.ekfa-video__pl-next:focus-visible {
	outline: 2px solid var(--ekfa-video-accent);
	outline-offset: 2px;
}

.ekfa-video__pl-icon {
	display: block;
}

.ekfa-video__row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	margin: 0;
	padding: 0.5rem 0.75rem 0.5rem 0.35rem;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.ekfa-video__row + .ekfa-video__row {
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.ekfa-video__row:hover {
	background: rgba(0, 0, 0, 0.05);
}

.ekfa-video__row:focus-visible {
	outline: 2px solid var(--ekfa-video-accent);
	outline-offset: -2px;
}

.ekfa-video__row.is-active {
	background: rgba(0, 0, 0, 0.08);
	box-shadow: inset 3px 0 0 var(--ekfa-video-accent);
}

.ekfa-video__row-now {
	flex: 0 0 0.7rem;
	width: 0.7rem;
	height: 0.7rem;
}

.ekfa-video__row.is-active .ekfa-video__row-now {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent currentColor;
}

.ekfa-video__row-thumb {
	position: relative;
	flex: 0 0 7.5rem;
	width: 7.5rem;
	aspect-ratio: 16 / 9;
	border-radius: 4px;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.12);
}

.ekfa-video__row-thumb .ekfa-video__thumb-img,
.ekfa-video__row-thumb .ekfa-video__thumb-ph {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ekfa-video__row-duration {
	position: absolute;
	right: 0.25rem;
	bottom: 0.25rem;
	padding: 0.1rem 0.3rem;
	border-radius: 2px;
	background: rgba(0, 0, 0, 0.8);
	color: #fff;
	font-size: 0.7rem;
	line-height: 1.2;
}

.ekfa-video__row-meta {
	min-width: 0;
	flex: 1 1 auto;
}

.ekfa-video__row-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-weight: 600;
	font-size: 0.9em;
	line-height: 1.3;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-video--playlist .ekfa-video__pl-prev,
	.ekfa-video--playlist .ekfa-video__pl-next,
	.ekfa-video--playlist .ekfa-video__up-next-toggle,
	.ekfa-video--playlist .ekfa-video__row {
		transition: none;
	}
}

/* EKFA: ekfa-filter-gallery */
/**
 * EK Filterable Gallery
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-fgallery {
	--ekfa-fg-accent: var(--primary_color, #65bc7b);
	--ekfa-fg-accent-hover: var(--ekfa-fg-accent);
	--ekfa-fg-cols: 4;
	--ekfa-fg-gap: 10px;
	--ekfa-fg-border-size: 0;
	--ekfa-fg-border-radius: 0;
	--ekfa-fg-border-color: transparent;
	--ekfa-fg-border-color-hover: var(--ekfa-fg-border-color);
	--ekfa-fg-caption-color: #fff;
	--ekfa-fg-caption-color-hover: var(--ekfa-fg-caption-color);
	--ekfa-fg-caption-size: 0.875rem;
	--ekfa-fg-caption-overlay: rgba(0, 0, 0, 0.55);
	--ekfa-fg-caption-overlay-hover: var(--ekfa-fg-caption-overlay);
}

.ekfa-fgallery--empty {
	padding: 1.5rem;
	border: 1px dashed #c3c4c7;
	color: #646970;
	text-align: center;
}

.ekfa-fgallery__editor-warning {
	margin: 0 0 0.75rem;
	padding: 0.5rem 0.75rem;
	background: #fcf0e3;
	border-left: 3px solid #dba617;
	color: #3c434a;
	font-size: 0.875rem;
}

/* Filters: shared ekfa-filter-bar.css */

/* Grid */
.ekfa-fgallery__grid {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ekfa-fgallery--grid .ekfa-fgallery__grid {
	display: grid;
	grid-template-columns: repeat(var(--ekfa-fg-cols), minmax(0, 1fr));
	gap: var(--ekfa-fg-gap);
}

.ekfa-fgallery--masonry .ekfa-fgallery__grid {
	column-count: var(--ekfa-fg-cols);
	column-gap: var(--ekfa-fg-gap);
}

.ekfa-fgallery--masonry .ekfa-fgallery__item {
	break-inside: avoid;
	margin: 0 0 var(--ekfa-fg-gap);
}

.ekfa-fgallery__item.is-hidden {
	display: none;
}

.ekfa-fgallery__item.is-hiding {
	opacity: 0;
	transform: scale(0.96);
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-fgallery__item,
	.ekfa-fgallery__media img,
	.ekfa-fgallery__caption {
		transition: none !important;
	}
}

.ekfa-fgallery__figure {
	position: relative;
	margin: 0;
	overflow: hidden;
	border: var(--ekfa-fg-border-size) solid var(--ekfa-fg-border-color);
	border-radius: var(--ekfa-fg-border-radius);
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.ekfa-fgallery__figure:hover {
	border-color: var(--ekfa-fg-border-color-hover);
}

.ekfa-fgallery__trigger {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: inherit;
	font: inherit;
	color: inherit;
}

.ekfa-fgallery__trigger:focus-visible {
	outline: 2px solid var(--ekfa-fg-accent);
	outline-offset: 2px;
}

.ekfa-fgallery__media {
	display: block;
	overflow: hidden;
}

.ekfa-fgallery--grid .ekfa-fgallery__media {
	aspect-ratio: var(--ekfa-fg-ratio, auto);
}

.ekfa-fgallery__media img,
.ekfa-fgallery__img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: middle;
	transition: transform 0.35s ease;
}

.ekfa-fgallery--grid .ekfa-fgallery__media img {
	height: 100%;
	object-fit: cover;
}

/* Hover types */
.ekfa-fgallery--hover-zoomin .ekfa-fgallery__figure:hover .ekfa-fgallery__media img {
	transform: scale(1.08);
}

.ekfa-fgallery--hover-zoomout .ekfa-fgallery__media img {
	transform: scale(1.08);
}

.ekfa-fgallery--hover-zoomout .ekfa-fgallery__figure:hover .ekfa-fgallery__media img {
	transform: scale(1);
}

.ekfa-fgallery--hover-liftup .ekfa-fgallery__figure:hover {
	transform: translateY(-4px);
}

/* Captions */
.ekfa-fgallery__caption {
	font-size: var(--ekfa-fg-caption-size);
	color: var(--ekfa-fg-caption-color);
	margin: 0;
}

.ekfa-fgallery__figure:hover .ekfa-fgallery__caption {
	color: var(--ekfa-fg-caption-color-hover);
}

.ekfa-fgallery__caption--below {
	padding: 0.5rem 0.15rem 0;
	color: inherit;
}

.ekfa-fgallery__caption--hover {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0.75rem;
	background: var(--ekfa-fg-caption-overlay);
	opacity: 0;
	transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease;
	pointer-events: none;
}

.ekfa-fgallery__figure:hover .ekfa-fgallery__caption--hover,
.ekfa-fgallery__trigger:focus-visible + .ekfa-fgallery__caption--hover,
.ekfa-fgallery__figure:focus-within .ekfa-fgallery__caption--hover {
	opacity: 1;
	background: var(--ekfa-fg-caption-overlay-hover);
}

/* Lightbox */
.ekfa-fgallery-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.9);
	padding: 1rem;
	box-sizing: border-box;
}

.ekfa-fgallery-lightbox[hidden] {
	display: none !important;
}

.ekfa-fgallery-lightbox__dialog {
	position: relative;
	max-width: min(96vw, 1200px);
	max-height: 92vh;
	outline: none;
}

.ekfa-fgallery-lightbox__img {
	display: block;
	max-width: 96vw;
	max-height: 85vh;
	width: auto;
	height: auto;
	margin: 0 auto;
}

.ekfa-fgallery-lightbox__btn {
	appearance: none;
	position: absolute;
	border: 0;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	cursor: pointer;
	font-size: 1.5rem;
	line-height: 1;
	padding: 0.5rem 0.7rem;
	border-radius: 2px;
}

.ekfa-fgallery-lightbox__btn:hover,
.ekfa-fgallery-lightbox__btn:focus-visible {
	background: rgba(255, 255, 255, 0.28);
}

.ekfa-fgallery-lightbox__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.ekfa-fgallery-lightbox__close {
	top: 0.75rem;
	right: 0.75rem;
	position: fixed;
	z-index: 100001;
}

.ekfa-fgallery-lightbox__prev {
	left: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	position: fixed;
}

.ekfa-fgallery-lightbox__next {
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	position: fixed;
}

.ekfa-fgallery-lightbox__btn[hidden] {
	display: none !important;
}

body.ekfa-fgallery-lb-open {
	overflow: hidden;
}

/* EKFA: ekfa-filter-bar */
/**
 * Shared filter-button bar (Filterable Gallery + Location Lister).
 *
 * Element roots emit colors: active --ekfa-fg-accent / --ekfa-fg-accent-hover;
 * inactive --ekfa-filter-*. Do not redefine inactive tokens on .ekfa-filter-bar
 * or they shadow parent emissions. Active fill uses --ekfa-filter-accent →
 * --ekfa-fg-accent → primary.
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-filter-bar {
	--ekfa-filter-accent: var(--ekfa-fg-accent, var(--primary_color, #65bc7b));
	--ekfa-filter-accent-hover: var(--ekfa-fg-accent-hover, var(--ekfa-filter-accent));
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	margin: 0 0 1.25rem;
}

.ekfa-filter-bar--align-left {
	justify-content: flex-start;
}

.ekfa-filter-bar--align-center {
	justify-content: center;
}

.ekfa-filter-bar--align-right {
	justify-content: flex-end;
}

.ekfa-filter-bar__btn {
	appearance: none;
	cursor: pointer;
	font: inherit;
	line-height: 1.3;
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.ekfa-filter-bar--buttons .ekfa-filter-bar__btn {
	padding: 0.4rem 0.9rem;
	border: 1px solid currentColor;
	border-radius: 2px;
	background: var(--ekfa-filter-bg, transparent);
	color: var(--ekfa-filter-color, inherit);
}

.ekfa-filter-bar--buttons .ekfa-filter-bar__btn.is-active,
.ekfa-filter-bar--buttons .ekfa-filter-bar__btn[aria-pressed="true"] {
	background: var(--ekfa-filter-accent);
	border-color: var(--ekfa-filter-accent);
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.ekfa-filter-bar--buttons .ekfa-filter-bar__btn:hover,
.ekfa-filter-bar--buttons .ekfa-filter-bar__btn:focus-visible {
	color: var(--ekfa-filter-hover-color, var(--ekfa-filter-accent-hover));
	border-color: var(--ekfa-filter-hover-color, var(--ekfa-filter-accent-hover));
	background: var(--ekfa-filter-hover-bg, transparent);
}

.ekfa-filter-bar--buttons .ekfa-filter-bar__btn.is-active:hover,
.ekfa-filter-bar--buttons .ekfa-filter-bar__btn.is-active:focus-visible {
	background: var(--ekfa-filter-accent-hover);
	border-color: var(--ekfa-filter-accent-hover);
	color: #fff;
}

.ekfa-filter-bar--text .ekfa-filter-bar__btn {
	padding: 0.25rem 0.15rem;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: var(--ekfa-filter-color, inherit);
}

.ekfa-filter-bar--text .ekfa-filter-bar__btn.is-active,
.ekfa-filter-bar--text .ekfa-filter-bar__btn[aria-pressed="true"] {
	border-bottom-color: var(--ekfa-filter-accent);
	color: var(--ekfa-filter-accent);
	font-weight: 700;
}

.ekfa-filter-bar--text .ekfa-filter-bar__btn:hover,
.ekfa-filter-bar--text .ekfa-filter-bar__btn:focus-visible {
	color: var(--ekfa-filter-hover-color, var(--ekfa-filter-accent-hover));
}

.ekfa-filter-bar__btn:focus-visible {
	outline: 2px solid var(--ekfa-filter-accent);
	outline-offset: 2px;
}

[data-ekfa-filter-root] [data-ekfa-groups].is-hidden {
	display: none;
}

[data-ekfa-filter-root] [data-ekfa-groups].is-hiding {
	opacity: 0;
	transform: scale(0.96);
	pointer-events: none;
}

[data-ekfa-filter-root] [data-ekfa-groups] {
	opacity: 1;
	transform: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-filter-bar__btn,
	[data-ekfa-filter-root] [data-ekfa-groups] {
		transition: none !important;
	}
}

/* EKFA: ekfa-pdf-viewer */
/**
 * EK PDF Viewer — frame, toolbar, states.
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-pdf-viewer {
	--ekfa-pdf-height: 800px;
	--ekfa-pdf-aspect: 141.421%;
	--ekfa-pdf-frame-bg: #f0f0f1;
	--ekfa-pdf-frame-bg-hover: var(--ekfa-pdf-frame-bg);
	--ekfa-pdf-toolbar-bg: #1d2327;
	--ekfa-pdf-toolbar-bg-hover: #2c3338;
	--ekfa-pdf-toolbar-fg: #f0f0f1;
	box-sizing: border-box;
	max-width: 100%;
	outline: none;
}

.ekfa-pdf-viewer:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.ekfa-pdf-viewer *,
.ekfa-pdf-viewer *::before,
.ekfa-pdf-viewer *::after {
	box-sizing: border-box;
}

.ekfa-pdf-viewer--empty {
	padding: 1em;
	border: 1px dashed #c3c4c7;
	color: #1d2327;
	background: #f6f7f7;
}

.ekfa-pdf-viewer__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.4rem 0.6rem;
	background: var(--ekfa-pdf-toolbar-bg);
	color: var(--ekfa-pdf-toolbar-fg);
}

.ekfa-pdf-viewer__toolbar:hover {
	background: var(--ekfa-pdf-toolbar-bg-hover);
}

.ekfa-pdf-viewer__toolbar-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

.ekfa-pdf-viewer__toolbar-group--nav {
	flex-wrap: nowrap;
}

.ekfa-pdf-viewer__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	margin: 0;
	padding: 0.35em 0.7em;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 2px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.85em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.ekfa-pdf-viewer__btn:hover:not(:disabled),
.ekfa-pdf-viewer__btn:focus-visible {
	background: rgba(255, 255, 255, 0.12);
}

.ekfa-pdf-viewer__btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Single inline "n / total" group — never wraps; height matches toolbar buttons.
 * Specificity must beat Avada/theme global input[type=number] rules. */
.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar .ekfa-pdf-viewer__page-jump,
.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar .ekfa-pdf-viewer__page-indicator {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	flex-shrink: 0;
	gap: 0.35em;
	margin: 0;
	padding: 0;
	font-size: 0.85em;
	line-height: 1.2;
	white-space: nowrap;
}

.ekfa-pdf-viewer .ekfa-pdf-viewer__page-jump > .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar input.ekfa-pdf-viewer__page-input[type="number"] {
	box-sizing: border-box;
	flex: 0 0 auto;
	width: 5.5ch;
	min-width: 5.5ch;
	max-width: 5.5ch;
	height: auto;
	min-height: 0;
	max-height: none;
	margin: 0;
	padding: 0.35em 0.25em;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 2px;
	background: rgba(0, 0, 0, 0.25);
	color: inherit;
	font: inherit;
	font-size: 1em;
	line-height: 1.2;
	text-align: center;
	vertical-align: middle;
	box-shadow: none;
	-moz-appearance: textfield;
	appearance: textfield;
}

.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar input.ekfa-pdf-viewer__page-input[type="number"]::-webkit-outer-spin-button,
.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar input.ekfa-pdf-viewer__page-input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar .ekfa-pdf-viewer__page-sep,
.ekfa-pdf-viewer .ekfa-pdf-viewer__toolbar .ekfa-pdf-viewer__page-total {
	flex: 0 0 auto;
	display: inline;
	margin: 0;
	padding: 0;
	white-space: nowrap;
	opacity: 0.9;
	line-height: 1.2;
}

.ekfa-pdf-viewer__frame {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--ekfa-pdf-frame-bg);
}

.ekfa-pdf-viewer:hover .ekfa-pdf-viewer__frame {
	background: var(--ekfa-pdf-frame-bg-hover);
}

.ekfa-pdf-viewer--height-fixed .ekfa-pdf-viewer__frame {
	position: relative;
	height: var(--ekfa-pdf-height);
	max-height: 90vh;
}

.ekfa-pdf-viewer--height-aspect .ekfa-pdf-viewer__frame {
	position: relative;
	height: 0;
	padding-bottom: var(--ekfa-pdf-aspect);
}

.ekfa-pdf-viewer__placeholder,
.ekfa-pdf-viewer__stage,
.ekfa-pdf-viewer__error {
	position: absolute;
	inset: 0;
}

.ekfa-pdf-viewer--border-light .ekfa-pdf-viewer__frame {
	border: 1px solid #c3c4c7;
}

.ekfa-pdf-viewer--border-shadow .ekfa-pdf-viewer__frame {
	border: 1px solid #dcdcde;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.ekfa-pdf-viewer--border-none .ekfa-pdf-viewer__frame {
	border: 0;
}

.ekfa-pdf-viewer__placeholder,
.ekfa-pdf-viewer__error {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 12rem;
	padding: 1.5rem;
	text-align: center;
	color: #1d2327;
	background: var(--ekfa-pdf-frame-bg);
	z-index: 2;
}

.ekfa-pdf-viewer__icon {
	display: block;
	width: 2.5rem;
	height: 3rem;
	border: 2px solid currentColor;
	border-radius: 2px;
	opacity: 0.45;
	position: relative;
}

.ekfa-pdf-viewer__icon::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	border-style: solid;
	border-width: 0 0.7rem 0.7rem 0;
	border-color: transparent transparent currentColor currentColor;
	opacity: 0.7;
}

.ekfa-pdf-viewer__placeholder-title {
	font-weight: 600;
	font-size: 1rem;
}

.ekfa-pdf-viewer__placeholder-status {
	font-size: 0.9em;
	opacity: 0.8;
}

.ekfa-pdf-viewer__placeholder-status[hidden],
.ekfa-pdf-viewer__stage[hidden],
.ekfa-pdf-viewer__error[hidden],
.ekfa-pdf-viewer__placeholder[hidden],
.ekfa-pdf-viewer--ready .ekfa-pdf-viewer__placeholder,
.ekfa-pdf-viewer--ready .ekfa-pdf-viewer__error,
.ekfa-pdf-viewer--loading .ekfa-pdf-viewer__stage,
.ekfa-pdf-viewer--loading .ekfa-pdf-viewer__error,
.ekfa-pdf-viewer--error .ekfa-pdf-viewer__placeholder,
.ekfa-pdf-viewer--error .ekfa-pdf-viewer__stage {
	display: none !important;
}

.ekfa-pdf-viewer--ready .ekfa-pdf-viewer__stage {
	display: flex !important;
}

.ekfa-pdf-viewer__spinner {
	width: 1.5rem;
	height: 1.5rem;
	border: 2px solid rgba(0, 0, 0, 0.15);
	border-top-color: currentColor;
	border-radius: 50%;
	animation: ekfa-pdf-spin 0.8s linear infinite;
}

@keyframes ekfa-pdf-spin {
	to {
		transform: rotate(360deg);
	}
}

.ekfa-pdf-viewer__stage {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	overflow: auto;
	padding: 0.75rem;
	z-index: 1;
	-webkit-overflow-scrolling: touch;
}

.ekfa-pdf-viewer__canvas {
	display: block;
	max-width: none;
	height: auto;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
	background: #fff;
}

.ekfa-pdf-viewer__error-msg {
	margin: 0;
	font-size: 0.95rem;
}

.ekfa-pdf-viewer__error-link {
	color: #2271b1;
	font-weight: 600;
}

.ekfa-pdf-viewer__noscript {
	margin: 0.75rem 0 0;
	font-size: 0.9em;
}

.ekfa-pdf-viewer--immersive {
	position: fixed !important;
	inset: 0;
	z-index: 100000;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	margin: 0 !important;
	background: #000;
}

.ekfa-pdf-viewer--immersive .ekfa-pdf-viewer__frame {
	height: calc(100% - 3rem) !important;
	padding-bottom: 0 !important;
	max-height: none;
}

/* EKFA: ekfa-text-mask */
/**
 * EK Text Mask: shared stencil paint, background-clip glyphs, parallax.
 *
 * BEM: .ekfa-tmask-*
 */

.ekfa-tmask {
	--ekfa-tmask-font-size: clamp(3rem, 10vw, 8rem);
	--ekfa-tmask-line-height: 1.1;
	--ekfa-tmask-font-weight: 800;
	--ekfa-tmask-letter-spacing: normal;
	--ekfa-tmask-transform: uppercase;
	--ekfa-tmask-align: center;
	--ekfa-tmask-fallback: currentColor;
	--ekfa-tmask-bg-pos: center center;
	--ekfa-tmask-blend: overlay;
	--ekfa-tmask-icon-gap: 16px;
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	text-align: var(--ekfa-tmask-align);
}

/*
 * Stencil owns the shared paint definition (inline background-*).
 * Glyphs receive an aligned copy via JS so icon-font ::before and letters
 * sample one continuous image against the stencil box (fit + position + parallax).
 */
.ekfa-tmask__stencil {
	display: inline-flex;
	align-items: center;
	gap: var(--ekfa-tmask-icon-gap);
	max-width: 100%;
	background-repeat: no-repeat;
	background-position: var(--ekfa-tmask-bg-pos);
	background-color: var(--ekfa-tmask-fallback);
}

.ekfa-tmask--fit-cover .ekfa-tmask__stencil {
	background-size: cover;
}

.ekfa-tmask--fit-contain .ekfa-tmask__stencil {
	background-size: contain;
}

.ekfa-tmask--fit-auto .ekfa-tmask__stencil {
	background-size: auto;
}

/* Stencil paint is the source of truth; do not paint it as a box behind glyphs. */
.ekfa-tmask--clip .ekfa-tmask__stencil {
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

.ekfa-tmask--clip .ekfa-tmask__text,
.ekfa-tmask--clip .ekfa-tmask__icon {
	color: transparent;
	-webkit-text-fill-color: transparent;
	background-color: var(--ekfa-tmask-fallback);
	background-repeat: no-repeat;
	-webkit-background-clip: text;
	background-clip: text;
}

.ekfa-tmask--fill-image_gradient.ekfa-tmask--clip .ekfa-tmask__text,
.ekfa-tmask--fill-image_gradient.ekfa-tmask--clip .ekfa-tmask__icon {
	background-blend-mode: var(--ekfa-tmask-blend);
}

.ekfa-tmask__text,
.ekfa-tmask__icon {
	position: relative;
	display: inline-block;
	max-width: 100%;
	margin: 0;
	color: var(--ekfa-tmask-fallback);
}

.ekfa-tmask__text {
	font-size: var(--ekfa-tmask-font-size);
	font-weight: var(--ekfa-tmask-font-weight);
	line-height: var(--ekfa-tmask-line-height);
	letter-spacing: var(--ekfa-tmask-letter-spacing);
	text-transform: var(--ekfa-tmask-transform);
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.ekfa-tmask__icon {
	font-size: var(--ekfa-tmask-icon-size, var(--ekfa-tmask-font-size));
	line-height: 1;
	vertical-align: middle;
	speak: never;
}

/* Missing/broken image: never transparent-on-nothing. */
.ekfa-tmask--solid .ekfa-tmask__stencil,
.ekfa-tmask--fallback .ekfa-tmask__stencil {
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	background-image: none !important;
	color: var(--ekfa-tmask-fallback);
	-webkit-text-fill-color: var(--ekfa-tmask-fallback);
}

.ekfa-tmask--solid .ekfa-tmask__text,
.ekfa-tmask--fallback .ekfa-tmask__text,
.ekfa-tmask--solid .ekfa-tmask__icon,
.ekfa-tmask--fallback .ekfa-tmask__icon {
	color: var(--ekfa-tmask-fallback) !important;
	-webkit-text-fill-color: var(--ekfa-tmask-fallback) !important;
	background-image: none !important;
	background-color: transparent !important;
}

.ekfa-tmask__text::selection {
	color: #fff;
	-webkit-text-fill-color: #fff;
	background-color: #1a1a1a;
}

.ekfa-tmask__text::-moz-selection {
	color: #fff;
	-webkit-text-fill-color: #fff;
	background-color: #1a1a1a;
}

@media ( prefers-reduced-motion: reduce ) {
	.ekfa-tmask--parallax.ekfa-tmask--clip .ekfa-tmask__text,
	.ekfa-tmask--parallax.ekfa-tmask--clip .ekfa-tmask__icon {
		will-change: auto;
	}
}

.ekfa-tmask--empty,
.ekfa-tmask--warn {
	padding: 0.75em 1em;
	border: 1px dashed #c3c4c7;
	background: #f6f7f7;
	color: #1d2327;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
}

/* EKFA: ekfa-image-scroller */
/**
 * EK Image Scroller.
 * BEM: .ekfa-imgscroll*
 */

.ekfa-imgscroll {
	--ekfa-imgscroll-x: 0px;
	--ekfa-imgscroll-y: 0px;
	display: flex;
	width: 100%;
}

.ekfa-imgscroll--align-left {
	justify-content: flex-start;
}

.ekfa-imgscroll--align-center {
	justify-content: center;
}

.ekfa-imgscroll--align-right {
	justify-content: flex-end;
}

.ekfa-imgscroll__frame {
	display: block;
	position: relative;
	width: min(100%, var(--ekfa-imgscroll-width, 100%));
	height: var(--ekfa-imgscroll-height, 420px);
	margin: 0;
	padding: 0;
	overflow: hidden;
	border-width: var(--ekfa-imgscroll-border-width, 0);
	border-style: var(--ekfa-imgscroll-border-style, solid);
	border-color: var(--ekfa-imgscroll-border-color, currentColor);
	border-radius: var(--ekfa-imgscroll-radius, 0);
	background: transparent;
	line-height: 0;
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	contain: layout paint;
}

.ekfa-imgscroll--shadow .ekfa-imgscroll__frame {
	box-shadow: 0 12px 30px rgba(15, 23, 42, 0.18);
}

.ekfa-imgscroll__frame:hover,
.ekfa-imgscroll__frame:focus-visible {
	border-color: var(--ekfa-imgscroll-border-hover-color, var(--ekfa-imgscroll-border-color, currentColor));
}

.ekfa-imgscroll__frame:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.ekfa-imgscroll__image {
	display: block;
	margin: 0;
	padding: 0;
	transform: translate3d(0, 0, 0);
	transform-origin: top left;
	transition-property: transform;
	transition-duration: var(--ekfa-imgscroll-duration, 3s);
	transition-timing-function: var(--ekfa-imgscroll-easing, ease-in-out);
	transition-delay: 0s;
	will-change: transform;
}

.ekfa-imgscroll--vertical .ekfa-imgscroll__image {
	width: 100%;
	height: auto;
	max-width: 100%;
}

.ekfa-imgscroll--horizontal .ekfa-imgscroll__image {
	width: auto;
	height: 100%;
	max-width: none;
}

.ekfa-imgscroll--both .ekfa-imgscroll__image {
	width: auto;
	height: auto;
	min-width: 100%;
	min-height: 100%;
	max-width: none;
}

.ekfa-imgscroll.is-active .ekfa-imgscroll__image {
	transform: translate3d(var(--ekfa-imgscroll-x), var(--ekfa-imgscroll-y), 0);
	transition-delay: var(--ekfa-imgscroll-delay, 0s);
}

.ekfa-imgscroll.is-no-overflow .ekfa-imgscroll__image {
	will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-imgscroll__image,
	.ekfa-imgscroll.is-active .ekfa-imgscroll__image {
		transform: translate3d(0, 0, 0) !important;
		transition: none !important;
		will-change: auto;
	}
}

/* EKFA: ekfa-svg-draw */
/**
 * EK SVG Draw — container + responsive scaling + stroke overrides.
 */

.ekfa-svg-draw {
	--ekfa-svg-max-width: 300px;
	display: block;
	max-width: var(--ekfa-svg-max-width);
	width: 100%;
	margin: 0;
	line-height: 0;
}

.ekfa-svg-draw__inner {
	display: block;
	width: 100%;
}

.ekfa-svg-draw__inner > svg {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	overflow: visible;
}

.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg [stroke],
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg path,
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg line,
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg polyline,
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg polygon,
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg circle,
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg rect,
.ekfa-svg-draw[style*="--ekfa-svg-stroke"] .ekfa-svg-draw__inner svg ellipse {
	stroke: var(--ekfa-svg-stroke) !important;
}

.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg [stroke],
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg path,
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg line,
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg polyline,
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg polygon,
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg circle,
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg rect,
.ekfa-svg-draw[style*="--ekfa-svg-stroke-width"] .ekfa-svg-draw__inner svg ellipse {
	stroke-width: var(--ekfa-svg-stroke-width) !important;
}

.ekfa-svg-draw--error,
.ekfa-svg-draw__warning {
	line-height: 1.4;
	padding: 0.75em 1em;
	margin: 0 0 0.5em;
	border-left: 3px solid #d63638;
	background: #fcf0f1;
	color: #1d2327;
	font-size: 13px;
}

.ekfa-svg-draw__warning {
	border-left-color: #dba617;
	background: #fcf9e8;
}

.ekfa-svg-draw--static .ekfa-svg-draw__inner svg {
	/* Fill-only / no-stroke: show as-is, no dash setup. */
}

.ekfa-svg-draw__drawable.is-filling {
	transition: fill-opacity 0.45s ease;
}

/* EKFA: ekfa-location-lister */
/**
 * EK Location Lister — card / toolbar re-skin.
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-llister {
	--ekfa-ll-cols: 3;
	--ekfa-ll-gap: 24px;
	--ekfa-ll-card-bg: #ffffff;
	--ekfa-ll-card-bg-hover: var(--ekfa-ll-card-bg);
	--ekfa-ll-card-radius: 12px;
	--ekfa-ll-card-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
	--ekfa-ll-card-shadow-hover: 0 12px 32px rgba(15, 23, 42, 0.12);
	--ekfa-ll-card-pad: 1.25rem;
	--ekfa-ll-accent: var(--primary_color, #0f766e);
	--ekfa-ll-accent-hover: var(--ekfa-ll-accent);
	--ekfa-ll-badge: #0f172a;
	--ekfa-ll-badge-hover: var(--ekfa-ll-badge);
	--ekfa-ll-badge-color: #fff;
	--ekfa-ll-badge-color-hover: var(--ekfa-ll-badge-color);
	--ekfa-ll-section-gap: 0.75rem;
	--ekfa-ll-hours-mt: 0px;
	--ekfa-ll-hours-mb: 0px;
	--ekfa-ll-hours-mr: 0px;
	--ekfa-ll-hours-ml: 0px;
	--ekfa-ll-open-bg: #ecfdf5;
	--ekfa-ll-open-color: #047857;
	--ekfa-ll-open-dot: #10b981;
	--ekfa-ll-closed-bg: #f5f0eb;
	--ekfa-ll-closed-color: #78716c;
	--ekfa-ll-closed-dot: #a8a29e;
	--ekfa-ll-day-bg: #f8fafc;
	--ekfa-ll-day-color: #0f172a;
	--ekfa-ll-action-btn-bg: var(--ekfa-ll-accent);
	--ekfa-ll-action-btn-color: #ffffff;
	--ekfa-ll-action-btn-bg-hover: var(--ekfa-ll-accent-hover);
	--ekfa-ll-action-btn-color-hover: #ffffff;
	--ekfa-ll-action-btn-radius: 999px;
	--ekfa-ll-action-btn-pad: 0.55rem 1.1rem;
	--ekfa-ll-badge-m: 0 0 0.5rem 0;
	--ekfa-ll-name-m: 0 0 0.35rem 0;
	--ekfa-ll-address-m: 0 0 0.5rem 0;
	--ekfa-ll-status-m: 0;
	--ekfa-ll-contact-m: 0.75rem 0 0 0;
	--ekfa-ll-search-m: 0;
	--ekfa-ll-filter-m: 0;
	--ekfa-ll-holiday-m: 0;
	/* Shared filter-bar tokens. Active: --ekfa-fg-accent → --ekfa-filter-accent (same as gallery). */
	--ekfa-filter-color: #334155;
	--ekfa-filter-bg: #ffffff;
	--ekfa-filter-hover-bg: #ffffff;
	--ekfa-filter-accent: var(--ekfa-fg-accent, var(--ekfa-ll-accent));
	--ekfa-filter-accent-hover: var(--ekfa-fg-accent-hover, var(--ekfa-filter-accent));
	--ekfa-ll-muted: #64748b;
	--ekfa-ll-border: rgba(15, 23, 42, 0.08);
	--ekfa-ll-placeholder: #e2e8f0;
}

.ekfa-llister--empty {
	padding: 1.5rem;
	border: 1px dashed #c3c4c7;
	border-radius: var(--ekfa-ll-card-radius);
	color: #646970;
	text-align: center;
}

.ekfa-llister__editor-warning {
	margin: 0 0 0.75rem;
	padding: 0.5rem 0.75rem;
	background: #fcf0e3;
	border-left: 3px solid #dba617;
	color: #3c434a;
	font-size: 0.875rem;
}

.ekfa-llister__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ekfa-llister--grid .ekfa-llister__list {
	display: grid;
	grid-template-columns: repeat(var(--ekfa-ll-cols), minmax(0, 1fr));
	gap: var(--ekfa-ll-gap);
}

.ekfa-llister--list .ekfa-llister__list {
	display: flex;
	flex-direction: column;
	gap: var(--ekfa-ll-gap);
}

.ekfa-llister__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--ekfa-ll-card-bg);
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.ekfa-llister__card:hover {
	background: var(--ekfa-ll-card-bg-hover);
}

.ekfa-llister--card-plain .ekfa-llister__card {
	background: transparent;
}

.ekfa-llister--card-boxed .ekfa-llister__card {
	border: 1px solid var(--ekfa-ll-border);
	border-radius: var(--ekfa-ll-card-radius);
}

.ekfa-llister--card-shadow .ekfa-llister__card {
	border-radius: var(--ekfa-ll-card-radius);
	box-shadow: var(--ekfa-ll-card-shadow);
}

.ekfa-llister--card-shadow .ekfa-llister__card:hover {
	box-shadow: var(--ekfa-ll-card-shadow-hover);
}

.ekfa-llister--list .ekfa-llister__card {
	flex-direction: row;
	align-items: stretch;
}

.ekfa-llister__media {
	position: relative;
	overflow: hidden;
	margin: 0;
	background: var(--ekfa-ll-placeholder);
	aspect-ratio: 16 / 9;
}

.ekfa-llister--ratio-4-3 .ekfa-llister__media {
	aspect-ratio: 4 / 3;
}

.ekfa-llister--ratio-1-1 .ekfa-llister__media {
	aspect-ratio: 1 / 1;
}

.ekfa-llister--ratio-original .ekfa-llister__media {
	aspect-ratio: auto;
}

.ekfa-llister--ratio-original .ekfa-llister__img {
	height: auto;
	object-fit: contain;
	object-position: center;
}

.ekfa-llister--list .ekfa-llister__media {
	flex: 0 0 240px;
	max-width: 42%;
	align-self: stretch;
	aspect-ratio: auto;
	min-height: 100%;
}

.ekfa-llister__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ekfa-llister__media--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 10rem;
	color: var(--ekfa-ll-muted);
}

.ekfa-llister__media-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1.5rem;
	text-align: center;
}

.ekfa-llister__media-placeholder-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	color: var(--ekfa-ll-muted);
	font-size: 1.35rem;
}

.ekfa-llister__media-placeholder-label {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--ekfa-ll-muted);
}

.ekfa-llister__body {
	display: flex;
	flex-direction: column;
	gap: var(--ekfa-ll-section-gap);
	flex: 1 1 auto;
	padding: var(--ekfa-ll-card-pad);
}

.ekfa-llister--card-plain .ekfa-llister__body {
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 0;
}

.ekfa-llister--card-plain .ekfa-llister__media {
	border-radius: var(--ekfa-ll-card-radius);
}

.ekfa-llister__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	min-height: 1.5rem;
}

.ekfa-llister__header .ekfa-llister__badge {
	margin: var(--ekfa-ll-badge-m);
}

.ekfa-llister__header .ekfa-llister__status {
	margin: var(--ekfa-ll-status-m);
	margin-left: auto;
}

.ekfa-llister__badge {
	display: inline-block;
	align-self: flex-start;
	margin: var(--ekfa-ll-badge-m);
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: var(--ekfa-ll-badge);
	color: var(--ekfa-ll-badge-color, #fff);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.4;
	text-transform: uppercase;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ekfa-llister__card:hover .ekfa-llister__badge {
	background: var(--ekfa-ll-badge-hover);
	color: var(--ekfa-ll-badge-color-hover, var(--ekfa-ll-badge-color, #fff));
}

.ekfa-llister__name-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
}

.ekfa-llister__name-row .ekfa-llister__name {
	margin: 0;
}

.ekfa-llister__name-row .ekfa-llister__status {
	margin: var(--ekfa-ll-status-m);
}

/* Beat Avada .post-content hN heading color (same class of fix as Table th). */
.ekfa-llister .ekfa-llister__name {
	margin: var(--ekfa-ll-name-m);
	padding: 0.15rem 0;
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ekfa-ll-name-color, #0f172a);
	background: var(--ekfa-ll-name-bg, transparent);
	transition: color 0.2s ease, background-color 0.2s ease;
}

.ekfa-llister .ekfa-llister__card:hover .ekfa-llister__name {
	color: var(--ekfa-ll-name-color-hover, var(--ekfa-ll-name-color, #0f172a));
}

.ekfa-llister__text-block {
	margin: var(--ekfa-ll-address-m);
}

.ekfa-llister__address {
	margin: 0;
	font-style: normal;
	line-height: 1.5;
	color: var(--ekfa-ll-address-color, #334155);
	transition: color 0.2s ease;
}

.ekfa-llister__card:hover .ekfa-llister__address {
	color: var(--ekfa-ll-address-color-hover, var(--ekfa-ll-address-color, #334155));
}

.ekfa-llister__contact {
	margin: 0.35rem 0 0;
	line-height: 1.45;
	color: var(--ekfa-ll-address-color, #475569);
	transition: color 0.2s ease;
}

.ekfa-llister__card:hover .ekfa-llister__contact {
	color: var(--ekfa-ll-address-color-hover, var(--ekfa-ll-address-color, #475569));
}

.ekfa-llister__hours {
	margin: 0;
	line-height: 1.45;
}

.ekfa-llister__schedule {
	margin: var(--ekfa-ll-hours-mt) var(--ekfa-ll-hours-mr) var(--ekfa-ll-hours-mb) var(--ekfa-ll-hours-ml);
}

.ekfa-llister__status {
	margin: var(--ekfa-ll-status-m);
}

.ekfa-llister__status-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.28rem 0.7rem 0.28rem 0.55rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

.ekfa-llister__status-badge::before {
	content: "";
	display: block;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 auto;
}

.ekfa-llister__status-badge--open {
	background: var(--ekfa-ll-open-bg);
	color: var(--ekfa-ll-open-color);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ekfa-llister__status-badge--open:hover {
	background: var(--ekfa-ll-open-bg-hover, var(--ekfa-ll-open-bg));
	color: var(--ekfa-ll-open-color-hover, var(--ekfa-ll-open-color));
}

.ekfa-llister__status-badge--open::before {
	background: var(--ekfa-ll-open-dot);
}

.ekfa-llister__status-badge--closed {
	background: var(--ekfa-ll-closed-bg);
	color: var(--ekfa-ll-closed-color);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ekfa-llister__status-badge--closed:hover {
	background: var(--ekfa-ll-closed-bg-hover, var(--ekfa-ll-closed-bg));
	color: var(--ekfa-ll-closed-color-hover, var(--ekfa-ll-closed-color));
}

.ekfa-llister__status-badge--closed::before {
	background: var(--ekfa-ll-closed-dot);
}

.ekfa-llister__hours-list,
.ekfa-llister__holidays-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ekfa-llister__hours-row {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	align-items: baseline;
	column-gap: 0.75rem;
	padding: 0.28rem 0.4rem;
	border-radius: 6px;
	line-height: 1.45;
}

.ekfa-llister__hours-day {
	font-weight: 600;
	/* Column is max-content: never shrink below the label, never overflow into the time. */
}

.ekfa-llister__hours-time {
	min-width: 0;
	text-align: right;
	color: #475569;
	overflow-wrap: anywhere;
	word-break: normal;
}

.ekfa-llister__hours-row.is-today {
	background: var(--ekfa-ll-day-bg);
	color: var(--ekfa-ll-day-color);
}

.ekfa-llister__hours-row.is-today .ekfa-llister__hours-time {
	color: var(--ekfa-ll-day-color);
}

.ekfa-llister__holidays {
	margin: var(--ekfa-ll-holiday-m);
	padding: 0.35rem 0.4rem;
	border-radius: 6px;
	background: var(--ekfa-ll-holiday-bg, transparent);
	color: var(--ekfa-ll-holiday-color, inherit);
	transition: color 0.2s ease;
}

.ekfa-llister__card:hover .ekfa-llister__holidays {
	color: var(--ekfa-ll-holiday-color-hover, var(--ekfa-ll-holiday-color, inherit));
}

.ekfa-llister__holiday {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	line-height: 1.45;
}

.ekfa-llister__holidays-heading {
	margin: 0 0 0.35rem;
	font-weight: 600;
	color: inherit;
}

.ekfa-llister__actions {
	list-style: none;
	margin: var(--ekfa-ll-contact-m);
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 0.85rem;
}

.ekfa-llister__action-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--ekfa-ll-accent);
	text-decoration: none;
	line-height: 1.3;
	font-weight: 600;
}

.ekfa-llister__action-link:hover,
.ekfa-llister__action-link:focus-visible {
	color: var(--ekfa-ll-accent-hover);
}

.ekfa-llister__action-link:focus-visible {
	outline: 2px solid var(--ekfa-ll-accent);
	outline-offset: 2px;
}

.ekfa-llister__action-link i {
	font-style: normal;
}

.ekfa-llister__action--button .ekfa-llister__action-link {
	padding: var(--ekfa-ll-action-btn-pad);
	border-radius: var(--ekfa-ll-action-btn-radius);
	background: var(--ekfa-ll-action-btn-bg);
	color: var(--ekfa-ll-action-btn-color);
	font-weight: 700;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.ekfa-llister__action--button .ekfa-llister__action-link:hover,
.ekfa-llister__action--button .ekfa-llister__action-link:focus-visible {
	background: var(--ekfa-ll-action-btn-bg-hover);
	color: var(--ekfa-ll-action-btn-color-hover);
}

.ekfa-llister--contacts-stacked .ekfa-llister__actions {
	flex-direction: column;
	align-items: flex-start;
}

.ekfa-llister__action--icon-only .ekfa-llister__action-link {
	justify-content: center;
	min-width: 2.25rem;
	min-height: 2.25rem;
}

.ekfa-llister__action--icon-only .ekfa-llister__action-link i {
	font-size: 1.125rem;
	color: var(--ekfa-ll-icon-color, inherit);
	transition: color 0.2s ease;
}

.ekfa-llister__action--icon-only .ekfa-llister__action-link:hover i,
.ekfa-llister__action--icon-only .ekfa-llister__action-link:focus-visible i {
	color: var(--ekfa-ll-icon-color-hover, var(--ekfa-ll-icon-color, inherit));
}

.ekfa-llister__action--icon-only.ekfa-llister__action--button .ekfa-llister__action-link {
	padding: 0.55rem;
}

.ekfa-llister__action--has-value {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.3rem;
}

.ekfa-llister__action-value {
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--ekfa-ll-muted);
	overflow-wrap: anywhere;
}

/* Toolbar: search + filters */
.ekfa-llister__toolbar {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin: 0 0 1.25rem;
}

.ekfa-llister__toolbar--inline {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.85rem 1rem;
}

.ekfa-llister__toolbar--inline .ekfa-llister__search {
	flex: 1 1 16rem;
	max-width: 22rem;
	margin: 0;
}

.ekfa-llister__toolbar--inline .ekfa-filter-bar {
	flex: 1 1 auto;
	margin: 0;
}

.ekfa-llister__search {
	margin: var(--ekfa-ll-search-m);
}

.ekfa-llister__search--align-left {
	margin-right: auto;
}

.ekfa-llister__search--align-center {
	margin-left: auto;
	margin-right: auto;
}

.ekfa-llister__search--align-right {
	margin-left: auto;
}

.ekfa-llister__search-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ekfa-llister__search-field {
	position: relative;
	display: flex;
	align-items: center;
}

.ekfa-llister__search-icon {
	position: absolute;
	left: 0.9rem;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ekfa-ll-muted);
	pointer-events: none;
	font-size: 0.95rem;
}

.ekfa-llister__search-input {
	width: 100%;
	max-width: 28rem;
	padding: 0.65rem 1rem 0.65rem 2.5rem;
	border: 1px solid var(--ekfa-ll-border);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	font: inherit;
	line-height: 1.3;
	color: #0f172a;
}

.ekfa-llister__search-input::placeholder {
	color: var(--ekfa-ll-muted);
}

.ekfa-llister__search-input:focus {
	outline: 2px solid var(--ekfa-ll-accent);
	outline-offset: 1px;
	border-color: transparent;
}

.ekfa-llister__no-matches {
	margin: 0.75rem 0 0;
	color: var(--ekfa-ll-muted);
}

.ekfa-llister__item.is-search-hidden {
	display: none !important;
}

/* Scoped filter pill restyle (inactive defaults set on .ekfa-llister; shared bar vars). */
.ekfa-llister .ekfa-filter-bar {
	margin: var(--ekfa-ll-filter-m);
	gap: 0.45rem 0.55rem;
}

.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn {
	padding: 0.45rem 0.95rem;
	border: 1px solid var(--ekfa-ll-border);
	border-radius: 999px;
	background: var(--ekfa-filter-bg);
	color: var(--ekfa-filter-color);
	font-weight: 600;
	text-decoration: none;
}

.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn.is-active,
.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn[aria-pressed="true"] {
	background: var(--ekfa-filter-accent);
	border-color: var(--ekfa-filter-accent);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn:hover,
.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn:focus-visible {
	color: var(--ekfa-filter-hover-color, var(--ekfa-filter-accent-hover));
	border-color: var(--ekfa-filter-hover-color, var(--ekfa-filter-accent-hover));
	background: var(--ekfa-filter-hover-bg, transparent);
}

.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn.is-active:hover,
.ekfa-llister .ekfa-filter-bar--buttons .ekfa-filter-bar__btn.is-active:focus-visible {
	background: var(--ekfa-filter-accent-hover);
	border-color: var(--ekfa-filter-accent-hover);
	color: #fff;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-llister__card,
	.ekfa-llister__badge,
	.ekfa-llister__action-link {
		transition: none !important;
	}
}

@media (max-width: 640px) {
	.ekfa-llister--list .ekfa-llister__card {
		flex-direction: column;
	}

	.ekfa-llister--list .ekfa-llister__media {
		flex-basis: auto;
		max-width: none;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.ekfa-llister__toolbar--inline {
		flex-direction: column;
		align-items: stretch;
	}

	.ekfa-llister__toolbar--inline .ekfa-llister__search {
		max-width: none;
	}
}

/* EKFA: ekfa-reveal-offer */
/**
 * EK Reveal Offer: scratch cover and offer card.
 * BEM: .ekfa-reveal*
 */

.ekfa-reveal {
	--ekfa-reveal-card-bg: #fff7ed;
	--ekfa-reveal-card-bg-hover: var(--ekfa-reveal-card-bg);
	--ekfa-reveal-card-border: #fdba74;
	--ekfa-reveal-card-border-hover: var(--ekfa-reveal-card-border);
	--ekfa-reveal-radius: 16px;
	--ekfa-reveal-pad: 1.5rem;
	--ekfa-reveal-max-width: 420px;
	--ekfa-reveal-accent: var(--primary_color, #c2410c);
	--ekfa-reveal-accent-hover: var(--ekfa-reveal-accent);
	box-sizing: border-box;
	width: 100%;
	max-width: var(--ekfa-reveal-max-width);
	margin-left: auto;
	margin-right: auto;
	font-family: inherit;
}

.ekfa-reveal *,
.ekfa-reveal *::before,
.ekfa-reveal *::after {
	box-sizing: border-box;
}

.ekfa-reveal__editor-warning {
	margin: 0 0 0.75rem;
	padding: 0.65rem 0.85rem;
	border: 1px solid #f59e0b;
	background: #fffbeb;
	color: #92400e;
	font-size: 0.875rem;
}

.ekfa-reveal--empty {
	padding: 0.85rem 1rem;
	border: 1px dashed #cbd5e1;
	color: #64748b;
	font-size: 0.9rem;
}

.ekfa-reveal__stage {
	position: relative;
	isolation: isolate;
}

.ekfa-reveal__offer {
	position: relative;
	z-index: 0;
	padding: var(--ekfa-reveal-pad);
	background: var(--ekfa-reveal-card-bg);
	border: 2px dashed var(--ekfa-reveal-card-border);
	border-radius: var(--ekfa-reveal-radius);
	text-align: center;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.ekfa-reveal__offer:hover {
	background: var(--ekfa-reveal-card-bg-hover);
	border-color: var(--ekfa-reveal-card-border-hover);
}

.ekfa-reveal__heading {
	margin: 0 0 0.4rem;
	font-family: var(--ekfa-reveal-heading-font-family, inherit);
	font-weight: var(--ekfa-reveal-heading-font-weight, 700);
	font-style: var(--ekfa-reveal-heading-font-style, inherit);
	font-size: var(--ekfa-reveal-heading-font-size, 1.35rem);
	letter-spacing: var(--ekfa-reveal-heading-letter-spacing, inherit);
	text-transform: var(--ekfa-reveal-heading-text-transform, inherit);
	line-height: var(--ekfa-reveal-heading-line-height, 1.25);
	color: var(--ekfa-reveal-heading-color, inherit);
}

.ekfa-reveal__message {
	margin: 0 0 1rem;
	font-family: var(--ekfa-reveal-message-font-family, inherit);
	font-weight: var(--ekfa-reveal-message-font-weight, inherit);
	font-style: var(--ekfa-reveal-message-font-style, inherit);
	font-size: var(--ekfa-reveal-message-font-size, inherit);
	letter-spacing: var(--ekfa-reveal-message-letter-spacing, inherit);
	text-transform: var(--ekfa-reveal-message-text-transform, inherit);
	line-height: var(--ekfa-reveal-message-line-height, 1.5);
	color: var(--ekfa-reveal-message-color, inherit);
}

.ekfa-reveal__code-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 0.65rem;
	margin: 0 0 1rem;
}

.ekfa-reveal__code {
	display: inline-block;
	padding: 0.45rem 0.75rem;
	border-radius: 6px;
	background: #fff;
	border: 1px solid #e2e8f0;
	font-family: var(--ekfa-reveal-code-font-family, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
	font-weight: var(--ekfa-reveal-code-font-weight, 700);
	font-style: var(--ekfa-reveal-code-font-style, inherit);
	font-size: var(--ekfa-reveal-code-font-size, 1.05rem);
	letter-spacing: var(--ekfa-reveal-code-letter-spacing, 0.08em);
	text-transform: var(--ekfa-reveal-code-text-transform, inherit);
	line-height: var(--ekfa-reveal-code-line-height, 1.3);
	color: var(--ekfa-reveal-code-color, #0f172a);
}

.ekfa-reveal__copy,
.ekfa-reveal__a11y,
.ekfa-reveal__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0.5rem 0.95rem;
	border: 0;
	border-radius: 999px;
	background: var(--ekfa-reveal-accent);
	color: #fff;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
}

.ekfa-reveal__copy:hover,
.ekfa-reveal__a11y:hover,
.ekfa-reveal__cta:hover {
	background: var(--ekfa-reveal-accent-hover);
	color: #fff;
}

.ekfa-reveal__copy:focus-visible,
.ekfa-reveal__a11y:focus-visible,
.ekfa-reveal__cta:focus-visible {
	outline: 2px solid var(--ekfa-reveal-accent);
	outline-offset: 3px;
}

.ekfa-reveal__cta {
	margin-top: 0.15rem;
}

.ekfa-reveal__a11y {
	margin-top: 0.75rem;
	width: 100%;
}

/* Hide after visitor reveal. Keep visible in Live demo so Show Reveal Button toggles update the preview. */
.ekfa-reveal--revealed:not(.ekfa-reveal--demo) .ekfa-reveal__a11y {
	display: none;
}

.ekfa-reveal__status {
	min-height: 1.25em;
	margin-top: 0.5rem;
	font-size: 0.85rem;
	color: #334155;
}

.ekfa-reveal__scratch {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	border-radius: var(--ekfa-reveal-radius);
	touch-action: none;
	cursor: grab;
}

.ekfa-reveal__cover-text {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 1rem;
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-shadow: 0 1px 2px rgba(15, 23, 42, 0.45);
	pointer-events: none;
}

.ekfa-reveal--revealed .ekfa-reveal__scratch,
.ekfa-reveal--revealed .ekfa-reveal__cover-text {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-reveal__scratch,
	.ekfa-reveal__cover-text,
	.ekfa-reveal__a11y {
		display: none;
	}
}

/* EKFA: ekfa-content-gate */
/**
 * EK Content Gate — engagement overlay (not content protection).
 * BEM: .ekfa-gate*
 */

.ekfa-gate {
	--ekfa-gate-bg: rgba(15, 23, 42, 0.92);
	--ekfa-gate-bg-hover: var(--ekfa-gate-bg);
	--ekfa-gate-blur: 0px;
	--ekfa-gate-pad: 1.5rem;
	--ekfa-gate-form-max: 28rem;
	--ekfa-gate-z: 20;
	--ekfa-gate-align: center;
	position: relative;
}

.ekfa-gate--wrap {
	display: block;
}

.ekfa-gate__content {
	position: relative;
	z-index: 0;
}

.ekfa-gate__overlay {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--ekfa-gate-pad);
	text-align: var(--ekfa-gate-align);
	background: var(--ekfa-gate-bg);
	z-index: var(--ekfa-gate-z);
	transition: opacity 0.35s ease, transform 0.35s ease;
}

.ekfa-gate__overlay:hover {
	background: var(--ekfa-gate-bg-hover);
}

.ekfa-gate--wrap > .ekfa-gate__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.ekfa-gate--selector > .ekfa-gate__overlay {
	position: fixed;
	margin: 0;
}

.ekfa-gate--blur > .ekfa-gate__overlay {
	-webkit-backdrop-filter: blur(var(--ekfa-gate-blur));
	backdrop-filter: blur(var(--ekfa-gate-blur));
}

.ekfa-gate__panel {
	width: 100%;
	max-width: var(--ekfa-gate-form-max);
	margin: 0 auto;
}

/*
 * Heading color must beat Avada dynamic CSS for hN, which targets
 * `.post-content h3` / `.fusion-post-content h3` (specificity 0,1,1).
 * A lone `.ekfa-gate__heading` (0,1,0) loses, so the chosen color never
 * shows. Tag-qualified selectors under `.ekfa-gate` with the heading
 * class on the node itself (0,2,1) win for every Heading Tag choice,
 * including p / div / span which Avada styles differently from hN.
 * No !important: theme heading color rules do not use it.
 */
.ekfa-gate h1.ekfa-gate__heading,
.ekfa-gate h2.ekfa-gate__heading,
.ekfa-gate h3.ekfa-gate__heading,
.ekfa-gate h4.ekfa-gate__heading,
.ekfa-gate h5.ekfa-gate__heading,
.ekfa-gate h6.ekfa-gate__heading,
.ekfa-gate p.ekfa-gate__heading,
.ekfa-gate div.ekfa-gate__heading,
.ekfa-gate span.ekfa-gate__heading {
	margin: 0 0 0.5rem;
	font-family: var(--ekfa-gate-heading-font-family, inherit);
	font-weight: var(--ekfa-gate-heading-font-weight, inherit);
	font-style: var(--ekfa-gate-heading-font-style, inherit);
	font-size: var(--ekfa-gate-heading-font-size, inherit);
	letter-spacing: var(--ekfa-gate-heading-letter-spacing, inherit);
	text-transform: var(--ekfa-gate-heading-text-transform, inherit);
	line-height: var(--ekfa-gate-heading-line-height, 1.3);
	color: var(--ekfa-gate-heading-color, #f8fafc);
}

.ekfa-gate__text {
	margin: 0 0 1rem;
	font-family: var(--ekfa-gate-text-font-family, inherit);
	font-weight: var(--ekfa-gate-text-font-weight, inherit);
	font-style: var(--ekfa-gate-text-font-style, inherit);
	font-size: var(--ekfa-gate-text-font-size, inherit);
	letter-spacing: var(--ekfa-gate-text-letter-spacing, inherit);
	text-transform: var(--ekfa-gate-text-text-transform, inherit);
	line-height: var(--ekfa-gate-text-line-height, 1.5);
	color: var(--ekfa-gate-text-color, #e2e8f0);
}

.ekfa-gate__form .fusion-form {
	margin: 0;
}

/* Remembered unlock: hide overlay before paint when early script adds class. */
.ekfa-gate--unlocked > .ekfa-gate__overlay {
	display: none !important;
}

.ekfa-gate.is-revealing > .ekfa-gate__overlay {
	opacity: 0;
	transform: translateY(-0.5rem);
	pointer-events: none;
}

.ekfa-gate.is-revealed > .ekfa-gate__overlay {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-gate__overlay {
		transition: none;
	}

	.ekfa-gate.is-revealing > .ekfa-gate__overlay {
		opacity: 0;
		transform: none;
	}
}

/* Inspect deterrent (scoped; minor deterrent only). */
.ekfa-gate--deter .ekfa-gate__content,
.ekfa-gate--deter .ekfa-gate__content *:not(input):not(textarea):not(select):not([contenteditable]):not([contenteditable="true"]) {
	-webkit-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
	user-select: none !important;
}

.ekfa-gate--deter .ekfa-gate__content input,
.ekfa-gate--deter .ekfa-gate__content textarea,
.ekfa-gate--deter .ekfa-gate__content select,
.ekfa-gate--deter .ekfa-gate__content [contenteditable],
.ekfa-gate--deter .ekfa-gate__content [contenteditable="true"] {
	-webkit-user-select: text !important;
	-moz-user-select: text !important;
	-ms-user-select: text !important;
	user-select: text !important;
}

.ekfa-gate__editor-warning {
	margin: 0.5em 0;
	padding: 0.5em 0.75em;
	border-left: 3px solid #dba617;
	background: #fcf9e8;
	color: #1d2327;
	font-size: 13px;
	line-height: 1.4;
}

/* Live / preview: keep overlay readable without trapping the canvas. */
body.fusion-builder-live-preview .ekfa-gate__overlay,
body.fusion-builder-live-preview-only .ekfa-gate__overlay {
	pointer-events: none;
}

