/* Evermed Feature Strip — inlined once per page. No JavaScript. */
.ee-fs {
	--ee-fs-cols: 4;
	--ee-fs-gap: 20px;
	--ee-fs-dir: row;
	--ee-fs-duration: 72s;
	position: relative;
	width: 100%;
}

.ee-fs__viewport {
	overflow: hidden;
	container-type: inline-size;
	padding: 6px 0; /* room for the hover lift and shadows */
}

.ee-fs__track {
	display: flex;
	width: max-content;
}

.ee-fs__group {
	display: flex;
	flex: none;
}

/* Each item is exactly 1/cols of the visible width (container query units). */
.ee-fs__item {
	flex: none;
	/* Equal widths by default; "Fit the text" sets --ee-fs-item-w: max-content.
	   max-width keeps a very long card from getting wider than the screen
	   (it then wraps instead). */
	width: var(--ee-fs-item-w, calc((100cqw - (var(--ee-fs-cols) - 1) * var(--ee-fs-gap)) / var(--ee-fs-cols)));
	max-width: 88cqw;
	margin-inline-end: var(--ee-fs-gap);
	box-sizing: border-box;
}

/* Card */
.ee-fs__card {
	display: flex;
	flex-direction: var(--ee-fs-dir);
	align-items: var(--ee-fs-align, center);
	gap: 14px;
	height: 100%;
	box-sizing: border-box;
	padding: 18px 20px;
	background: #fff;
	border-radius: 8px;
	color: inherit;
	text-decoration: none;
	transition: transform .25s ease;
}
.ee-fs--lift .ee-fs__card:hover { transform: translateY(-5px); }

.ee-fs__icon {
	flex: none;
	display: inline-flex;
	font-size: 36px;
	line-height: 1;
	color: #4e97fd;
}
.ee-fs__icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.ee-fs__body { min-width: 0; }

.ee-fs__title {
	margin: 0 0 4px;
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.3;
	color: #1f2733;
}

.ee-fs__text {
	margin: 0;
	font-size: .95rem;
	line-height: 1.45;
	color: #6b7682;
}

/* Sensible defaults when no Elementor setting overrides them
   (Elementor's per-widget selectors are more specific and win). */
@media (max-width: 1024px) {
	.ee-fs { --ee-fs-cols: 2; }
}
@media (max-width: 767px) {
	/* Fallback when Elementor has no saved mobile value: fit-the-text cards,
	   icon beside the text (title line + text line). */
	.ee-fs { --ee-fs-item-w: max-content; --ee-fs-gap: 10px; }
	.ee-fs__card { padding: 10px 14px; gap: 10px; }
	.ee-fs__icon { font-size: 28px; }
	.ee-fs__title { font-size: 1rem; }
	.ee-fs__text { font-size: .85rem; }
}

/* ---- Continuous scroll ----
   1.9.1: moves only after the visitor's first interaction (feature-strip.js
   adds .is-moving). Movement inside the first screen from the start kept
   PageSpeed's Speed Index from ever settling. */
.ee-fs--marquee.is-moving .ee-fs__track {
	animation: ee-fs-scroll var(--ee-fs-duration) linear infinite;
	will-change: transform;
}
.ee-fs--marquee.ee-fs--reverse .ee-fs__track { animation-direction: reverse; }

@keyframes ee-fs-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* Pause on hover, on keyboard focus, and with the pause button. */
.ee-fs--marquee:hover .ee-fs__track,
.ee-fs--marquee:focus-within .ee-fs__track,
.ee-fs--marquee:has(.ee-fs__pause-input:checked) .ee-fs__track {
	animation-play-state: paused;
}

/* Pause button: a real checkbox + label, so it works without JavaScript. */
.ee-fs__pause-input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	opacity: 0;
}
.ee-fs__pause {
	position: absolute;
	right: 4px;
	bottom: 4px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: #1f2733;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .18);
	cursor: pointer;
	opacity: .55;
	transition: opacity .2s;
}
.ee-fs:hover .ee-fs__pause,
.ee-fs__pause-input:focus-visible + .ee-fs__pause { opacity: 1; }
.ee-fs__pause-input:focus-visible + .ee-fs__pause {
	outline: 3px solid #1a73e8;
	outline-offset: 2px;
}
.ee-fs__pause svg { fill: currentColor; }
.ee-fs__play-icon { display: none; }
.ee-fs__pause-input:checked + .ee-fs__pause .ee-fs__pause-icon { display: none; }
.ee-fs__pause-input:checked + .ee-fs__pause .ee-fs__play-icon { display: inline; }

.ee-fs__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---- Swipe row ---- */
.ee-fs--swipe .ee-fs__viewport {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
}
.ee-fs--swipe .ee-fs__viewport::-webkit-scrollbar { display: none; }
.ee-fs--swipe .ee-fs__item { scroll-snap-align: start; }

/* ---- Static grid ---- */
.ee-fs--grid .ee-fs__track {
	display: grid;
	grid-template-columns: repeat(var(--ee-fs-cols), minmax(0, 1fr));
	gap: var(--ee-fs-gap);
	width: auto;
}
.ee-fs--grid .ee-fs__group { display: contents; }
.ee-fs--grid .ee-fs__item {
	width: auto;
	max-width: none;
	margin: 0;
}

.ee-fs__card:focus-visible {
	outline: 3px solid #1a73e8;
	outline-offset: 2px;
}

/* Visitors who ask for less motion get a still, swipeable row. */
@media (prefers-reduced-motion: reduce) {
	.ee-fs--marquee .ee-fs__track { animation: none; }
	.ee-fs--marquee .ee-fs__viewport {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}
	.ee-fs--marquee .ee-fs__item { scroll-snap-align: start; }
	.ee-fs__group--clone,
	.ee-fs__pause-input,
	.ee-fs__pause { display: none; }
	.ee-fs__card { transition: none; }
}

/* 1.3.2 — containment guard: nothing inside this widget can ever make the
   page wider than the screen (no sideways scroll / zoom-out gap on phones),
   whatever the surrounding Elementor layout is. overflow-x: clip does not
   create a scroll container, so vertical layout and sticky elements are
   unaffected. */
.elementor-widget-ee-feature-strip { min-width: 0; max-width: 100%; }
.ee-fs { max-width: 100%; min-width: 0; overflow-x: clip; }
