.fma-marquee,
.fma-marquee *,
.fma-button-marquee,
.fma-button-marquee *,
.fma-animated-heading,
.fma-word-roller,
.fma-image-accordion,
.fma-stacked-slider,
.fma-search-box,
.fma-image-hotspot {
	box-sizing: border-box;
}

.fma-marquee {
	position: relative;
	width: 100%;
	min-height: 36px;
	overflow: hidden;
	padding: var(--fma-padding-y, 12px) var(--fma-padding-x, 0);
	border-radius: var(--fma-radius, 0);
	background: var(--fma-bg, transparent);
	color: var(--fma-color, #111);
	font-size: var(--fma-font-size, 18px);
	font-weight: var(--fma-font-weight, 600);
}

.fma-image-marquee {
	min-height: calc(var(--fma-item-height, 140px) + (var(--fma-padding-y, 12px) * 2));
}

.fma-marquee__viewport {
	display: flex;
	width: 100%;
	overflow: hidden;
}

.fma-marquee__track {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	min-width: 100%;
	gap: var(--fma-gap, 32px);
	animation: fma-marquee-x var(--fma-speed, 30s) linear infinite;
	will-change: transform;
}

.fma-marquee.is-reverse .fma-marquee__track {
	animation-direction: reverse;
}

.fma-marquee.is-paused-on-hover:hover .fma-marquee__track,
.fma-button-marquee.is-paused-on-hover:hover .fma-button-marquee__track {
	animation-play-state: paused;
}

.fma-marquee.is-vertical .fma-marquee__viewport {
	height: var(--fma-height, 320px);
	flex-direction: column;
}

.fma-marquee.is-vertical .fma-marquee__track {
	width: 100%;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	align-items: stretch;
	animation-name: fma-marquee-y;
}

.fma-marquee.has-edge-shadow::before,
.fma-marquee.has-edge-shadow::after {
	content: "";
	position: absolute;
	z-index: 2;
	pointer-events: none;
}

.fma-marquee.has-edge-shadow.is-horizontal::before,
.fma-marquee.has-edge-shadow.is-horizontal::after {
	top: 0;
	bottom: 0;
	width: min(10vw, 96px);
}

.fma-marquee.has-edge-shadow.is-horizontal::before {
	left: 0;
	background: linear-gradient(90deg, var(--fma-bg, #fff), transparent);
}

.fma-marquee.has-edge-shadow.is-horizontal::after {
	right: 0;
	background: linear-gradient(270deg, var(--fma-bg, #fff), transparent);
}

.fma-marquee.has-edge-shadow.is-vertical::before,
.fma-marquee.has-edge-shadow.is-vertical::after {
	left: 0;
	right: 0;
	height: 72px;
}

.fma-marquee.has-edge-shadow.is-vertical::before {
	top: 0;
	background: linear-gradient(180deg, var(--fma-bg, #fff), transparent);
}

.fma-marquee.has-edge-shadow.is-vertical::after {
	bottom: 0;
	background: linear-gradient(0deg, var(--fma-bg, #fff), transparent);
}

.fma-marquee__item {
	flex: 0 0 auto;
	color: inherit;
	text-decoration: none;
}

.fma-marquee__item:hover,
.fma-marquee__item:focus {
	color: var(--fma-hover-color, #d63638);
}

.fma-text-marquee__item {
	display: inline-flex;
	align-items: center;
	gap: .65em;
	white-space: nowrap;
	line-height: 1.15;
}

.fma-text-marquee__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1em;
	color: var(--fma-hover-color, currentColor);
}

.fma-image-marquee__item {
	width: var(--fma-item-width, 220px);
	height: var(--fma-item-height, 140px);
	min-width: var(--fma-item-width, 220px);
	margin: 0;
	overflow: hidden;
	border-radius: var(--fma-card-radius, 14px);
	background: color-mix(in srgb, var(--fma-color, #111) 8%, transparent);
}

.fma-image-marquee__item.is-placeholder {
	outline: 1px dashed rgba(0, 0, 0, .2);
}

.fma-image-marquee__link {
	flex: 0 0 auto;
	text-decoration: none;
}

.fma-image-marquee__item img,
.fma-video-card iframe,
.fma-video-card video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}

.fma-image-marquee__placeholder {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	padding: 16px;
	text-align: center;
	color: var(--fma-card-color, #111);
	font-size: 14px;
	font-weight: 700;
	background:
		linear-gradient(135deg, rgba(0, 0, 0, .08), transparent 45%),
		linear-gradient(315deg, rgba(0, 0, 0, .06), transparent 48%),
		var(--fma-card-bg, #fff);
}

.fma-testimonial-card {
	width: min(78vw, 360px);
	padding: 22px;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: var(--fma-card-radius, 14px);
	background: var(--fma-card-bg, #fff);
	color: var(--fma-card-color, #111);
	box-shadow: 0 18px 45px rgba(0, 0, 0, .08);
}

.fma-testimonial-card__stars {
	margin-bottom: 12px;
	color: #d97706;
	font-size: 14px;
	letter-spacing: .12em;
}

.fma-testimonial-card__quote {
	margin: 0 0 18px;
	color: inherit;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.55;
}

.fma-testimonial-card__person {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fma-testimonial-card__avatar {
	display: inline-grid;
	width: 42px;
	height: 42px;
	overflow: hidden;
	place-items: center;
	flex: 0 0 auto;
	border-radius: 50%;
	background: rgba(0, 0, 0, .08);
	font-weight: 800;
}

.fma-testimonial-card__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fma-testimonial-card__person strong,
.fma-testimonial-card__person small {
	display: block;
	color: inherit;
	line-height: 1.25;
}

.fma-testimonial-card__person small {
	margin-top: 2px;
	opacity: .68;
	font-size: 12px;
}

.fma-video-card {
	width: var(--fma-item-width, 280px);
	color: var(--fma-card-color, #111);
}

.fma-video-card iframe,
.fma-video-card video {
	aspect-ratio: 16 / 9;
	height: auto;
	overflow: hidden;
	border-radius: var(--fma-card-radius, 14px);
	background: #111;
	box-shadow: 0 18px 45px rgba(0, 0, 0, .12);
}

.fma-video-card__title {
	display: block;
	margin-top: 10px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.25;
}

.fma-news-ticker-wrap {
	display: flex;
	align-items: stretch;
	width: 100%;
	overflow: hidden;
	border-radius: var(--fma-radius, 0);
	background: var(--fma-bg, transparent);
}

.fma-news-ticker__title {
	display: inline-flex;
	position: relative;
	z-index: 3;
	align-items: center;
	padding: 0 18px;
	background: var(--fma-hover-color, #d63638);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.fma-news-ticker-wrap .fma-marquee {
	flex: 1 1 auto;
	border-radius: 0;
}

.fma-news-ticker__item {
	white-space: nowrap;
}

.fma-button-marquee {
	display: inline-flex;
	max-width: min(100%, 420px);
	overflow: hidden;
	align-items: center;
	justify-content: center;
	padding: var(--fma-padding-y, 14px) var(--fma-padding-x, 28px);
	border: 1px solid var(--fma-border-color, currentColor);
	border-radius: var(--fma-radius, 999px);
	background: var(--fma-bg, #111);
	color: var(--fma-color, #fff);
	font-size: var(--fma-font-size, 16px);
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	transition: transform .22s ease, color .22s ease, background .22s ease;
}

.fma-button-marquee:hover,
.fma-button-marquee:focus {
	color: var(--fma-hover-color, #fff);
	transform: translateY(-1px);
}

.fma-button-marquee--outline {
	background: transparent;
	color: var(--fma-bg, #111);
}

.fma-button-marquee--ghost {
	border-color: transparent;
	background: transparent;
	color: var(--fma-bg, #111);
}

.fma-button-marquee__mask {
	display: flex;
	width: 100%;
	overflow: hidden;
}

.fma-button-marquee__track {
	display: inline-flex;
	min-width: 100%;
	gap: var(--fma-gap, 18px);
	white-space: nowrap;
	animation: fma-marquee-x var(--fma-speed, 18s) linear infinite;
}

.fma-button-marquee.is-reverse .fma-button-marquee__track {
	animation-direction: reverse;
}

.fma-button-marquee__item {
	display: inline-flex;
	align-items: center;
	gap: .6em;
}

.fma-animated-heading,
.fma-word-roller {
	margin: 0;
	color: var(--fma-heading-color, #111);
	font-size: var(--fma-heading-size, 44px);
	font-weight: var(--fma-heading-weight, 700);
	line-height: 1.12;
	text-align: var(--fma-heading-align, left);
}

.fma-animated-heading__words {
	display: inline-grid;
	position: relative;
	min-width: 5ch;
	color: var(--fma-word-color, #d63638);
	vertical-align: baseline;
}

.fma-animated-heading__word {
	grid-area: 1 / 1;
	opacity: 0;
	transform: translateY(.45em);
	transition: opacity .36s ease, transform .36s ease;
	white-space: nowrap;
}

.fma-animated-heading__word.is-active {
	opacity: 1;
	transform: translateY(0);
}

.fma-animated-heading--fade .fma-animated-heading__word {
	transform: none;
}

.fma-animated-heading--flip .fma-animated-heading__word {
	transform: rotateX(80deg);
	transform-origin: center bottom;
}

.fma-animated-heading--flip .fma-animated-heading__word.is-active {
	transform: rotateX(0deg);
}

.fma-animated-heading--typing .fma-animated-heading__word {
	overflow: hidden;
	max-width: 0;
	transform: none;
	transition: opacity .24s ease, max-width .5s steps(18, end);
}

.fma-animated-heading--typing .fma-animated-heading__word.is-active {
	max-width: 32ch;
}

.fma-word-roller__viewport {
	display: inline-block;
	height: var(--fma-word-height, 58px);
	overflow: hidden;
	color: var(--fma-word-color, #0f766e);
	vertical-align: bottom;
}

.fma-word-roller__track {
	display: flex;
	flex-direction: column;
	transform: translateY(0);
	transition: transform .46s cubic-bezier(.2, .72, .2, 1);
}

.fma-word-roller__track span {
	display: block;
	height: var(--fma-word-height, 58px);
	white-space: nowrap;
}

.fma-image-accordion {
	display: flex;
	gap: var(--fma-gap, 12px);
	width: 100%;
	height: var(--fma-accordion-height, 360px);
	overflow: hidden;
}

.fma-image-accordion__item {
	position: relative;
	min-width: 0;
	overflow: hidden;
	flex: 1 1 0;
	border-radius: var(--fma-radius, 12px);
	background:
		linear-gradient(135deg, rgba(0, 0, 0, .15), rgba(0, 0, 0, .03)),
		#ddd center / cover no-repeat;
	color: var(--fma-color, #fff);
	transition: flex .36s ease, transform .36s ease;
}

.fma-image-accordion__item::before,
.fma-stacked-slider__slide::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--fma-overlay, rgba(0, 0, 0, .42));
}

.fma-image-accordion__item:hover,
.fma-image-accordion__item:focus-within,
.fma-image-accordion__item.is-active {
	flex-grow: 2.6;
}

.fma-image-accordion__content {
	position: absolute;
	z-index: 1;
	right: 0;
	bottom: 0;
	left: 0;
	padding: clamp(18px, 4vw, 32px);
	color: inherit;
	transform: translateY(12px);
	transition: transform .3s ease;
}

.fma-image-accordion__item:hover .fma-image-accordion__content,
.fma-image-accordion__item:focus-within .fma-image-accordion__content,
.fma-image-accordion__item.is-active .fma-image-accordion__content {
	transform: translateY(0);
}

.fma-image-accordion h3,
.fma-stacked-slider h3 {
	margin: 0 0 8px;
	color: inherit;
	font-size: clamp(20px, 3vw, 34px);
	line-height: 1.05;
}

.fma-image-accordion p,
.fma-stacked-slider p {
	max-width: 520px;
	margin: 0 0 16px;
	color: inherit;
	line-height: 1.45;
	opacity: .9;
}

.fma-image-accordion a,
.fma-stacked-slider a {
	display: inline-flex;
	align-items: center;
	padding: 9px 14px;
	border: 1px solid rgba(255, 255, 255, .58);
	border-radius: 999px;
	color: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
}

.fma-stacked-slider {
	position: relative;
	width: 100%;
	height: var(--fma-slider-height, 460px);
	overflow: hidden;
	border-radius: var(--fma-radius, 18px);
	color: var(--fma-color, #fff);
	background: #111;
}

.fma-stacked-slider__stage,
.fma-stacked-slider__slide {
	position: absolute;
	inset: 0;
}

.fma-stacked-slider__slide {
	display: flex;
	align-items: flex-end;
	padding: clamp(22px, 5vw, 52px);
	opacity: 0;
	background: #222 center / cover no-repeat;
	transform: translateX(6%) scale(.96);
	transition: opacity .42s ease, transform .42s ease;
}

.fma-stacked-slider__slide.is-active {
	z-index: 1;
	opacity: 1;
	transform: translateX(0) scale(1);
}

.fma-stacked-slider__content {
	position: relative;
	z-index: 1;
	max-width: 680px;
}

.fma-stacked-slider__controls {
	position: absolute;
	z-index: 3;
	right: 18px;
	bottom: 18px;
	display: flex;
	gap: 8px;
}

.fma-stacked-slider__controls button {
	display: inline-grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 50%;
	background: rgba(0, 0, 0, .28);
	color: #fff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	backdrop-filter: blur(10px);
}

.fma-search-box {
	display: flex;
	width: min(100%, var(--fma-width, 520px));
	overflow: hidden;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: var(--fma-radius, 999px);
	background: var(--fma-bg, #fff);
	color: var(--fma-color, #111);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .08);
}

.fma-search-box input[type="search"] {
	width: 100%;
	min-width: 0;
	border: 0;
	background: transparent;
	color: inherit;
	box-shadow: none;
	margin: 0;
	padding: 13px 16px;
	font-size: 15px;
}

.fma-search-box button {
	flex: 0 0 auto;
	border: 0;
	background: var(--fma-button-bg, #111);
	color: var(--fma-button-color, #fff);
	margin: 0;
	padding: 0 20px;
	font-weight: 800;
	cursor: pointer;
}

.fma-search-box--minimal {
	border-width: 0 0 1px;
	border-radius: 0;
	box-shadow: none;
}

.fma-search-box--minimal button {
	border-radius: var(--fma-radius, 999px);
	margin: 5px;
}

.fma-image-hotspot {
	position: relative;
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	border-radius: var(--fma-radius, 16px);
}

.fma-image-hotspot > img {
	display: block;
	width: 100%;
	height: auto;
}

.fma-image-hotspot__placeholder {
	display: grid;
	width: min(100vw, 760px);
	aspect-ratio: 16 / 9;
	place-items: center;
	padding: 24px;
	background:
		linear-gradient(135deg, rgba(0, 0, 0, .08), transparent),
		#f3f4f6;
	color: #555;
	text-align: center;
}

.fma-image-hotspot__point {
	position: absolute;
	z-index: 2;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	transform: translate(-50%, -50%);
	cursor: pointer;
}

.fma-image-hotspot__dot {
	display: block;
	position: relative;
	width: 18px;
	height: 18px;
	margin: 3px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: var(--fma-dot-bg, #d63638);
	box-shadow: 0 8px 20px rgba(0, 0, 0, .24);
}

.fma-image-hotspot__dot::after {
	content: "";
	position: absolute;
	inset: -9px;
	border: 1px solid var(--fma-dot-bg, #d63638);
	border-radius: 50%;
	animation: fma-pulse 1.8s ease-out infinite;
}

.fma-image-hotspot__tooltip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 12px);
	display: block;
	width: min(240px, 70vw);
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--fma-tooltip-bg, #111);
	color: var(--fma-tooltip-color, #fff);
	text-align: left;
	opacity: 0;
	transform: translate(-50%, 8px);
	transition: opacity .2s ease, transform .2s ease;
	pointer-events: none;
}

.fma-image-hotspot__tooltip strong,
.fma-image-hotspot__tooltip span,
.fma-image-hotspot__tooltip a {
	display: block;
	color: inherit;
}

.fma-image-hotspot__tooltip strong {
	margin-bottom: 3px;
	font-size: 13px;
}

.fma-image-hotspot__tooltip span {
	font-size: 12px;
	line-height: 1.4;
	opacity: .84;
}

.fma-image-hotspot__tooltip a {
	margin-top: 8px;
	font-size: 12px;
	font-weight: 800;
	text-decoration: underline;
}

.fma-image-hotspot__point:hover .fma-image-hotspot__tooltip,
.fma-image-hotspot__point:focus .fma-image-hotspot__tooltip {
	opacity: 1;
	transform: translate(-50%, 0);
}

@keyframes fma-marquee-x {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}

@keyframes fma-marquee-y {
	from {
		transform: translateY(0);
	}
	to {
		transform: translateY(-100%);
	}
}

@keyframes fma-pulse {
	from {
		opacity: .75;
		transform: scale(.8);
	}
	to {
		opacity: 0;
		transform: scale(1.65);
	}
}

@media (max-width: 640px) {
	.fma-image-accordion {
		height: auto;
		flex-direction: column;
	}

	.fma-image-accordion__item {
		min-height: 220px;
		flex-basis: auto;
	}

	.fma-image-accordion__item:hover,
	.fma-image-accordion__item:focus-within,
	.fma-image-accordion__item.is-active {
		flex-grow: 1;
	}

	.fma-news-ticker-wrap {
		flex-direction: column;
	}

	.fma-news-ticker__title {
		min-height: 38px;
		justify-content: center;
	}

	.fma-search-box {
		border-radius: min(var(--fma-radius, 999px), 18px);
	}

	.fma-search-box button {
		padding-inline: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fma-marquee__track,
	.fma-button-marquee__track,
	.fma-image-hotspot__dot::after {
		animation-duration: 1ms;
		animation-iteration-count: 1;
	}

	.fma-animated-heading__word,
	.fma-word-roller__track,
	.fma-stacked-slider__slide,
	.fma-image-accordion__item {
		transition: none;
	}
}
