/* FHC Widgets: Card Slider */
.fhcw-cards {
	--fhcw-pv: 5;
	--fhcw-gap: 24px;
	--fhcw-wrap: wrap;
	--fhcw-ox: visible;
	--fhcw-oy: visible;
	--fhcw-snap: none;
	--fhcw-card-gap: 51px;
	--fhcw-body-gap: 16px;
	--fhcw-icon-box: 48px;
	--fhcw-icon: 24px;
	--fhcw-nav-gap: 28px;
	--fhcw-dot-c: #c9d9e6;
	--fhcw-dot-a: #0274be;
	--fhcw-arrow: #222;
	--fhcw-arrow-bg: #f7f7f7;
	--fhcw-arrow-hover: #0274be;
	position: relative;
	width: 100%;
}

.fhcw-cards__track {
	position: relative;
	display: flex;
	flex-wrap: var(--fhcw-wrap);
	align-items: flex-start;
	gap: var(--fhcw-gap);
	overflow-x: var(--fhcw-ox);
	overflow-y: var(--fhcw-oy);
	scroll-snap-type: var(--fhcw-snap);
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	outline: none;
}

.fhcw-cards__track::-webkit-scrollbar {
	display: none;
}

.fhcw-cards__track:focus-visible {
	outline: 2px solid var(--fhcw-dot-a);
	outline-offset: 4px;
}

/* Width: exact for whole and fractional per-view where round() is supported, close fallback otherwise. */
.fhcw-cards__card {
	box-sizing: border-box;
	flex: 0 0 calc((100% + var(--fhcw-gap)) / var(--fhcw-pv) - var(--fhcw-gap));
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	justify-content: space-between;
	gap: var(--fhcw-card-gap);
	scroll-snap-align: start;
	box-sizing: border-box;
	text-decoration: none;
	color: inherit;
}

@supports (width: calc(1px * round(up, 1.5, 1))) {
	.fhcw-cards__card {
		flex-basis: calc((100% - var(--fhcw-gap) * (round(up, var(--fhcw-pv), 1) - 1)) / var(--fhcw-pv));
	}
}

a.fhcw-cards__card:hover,
a.fhcw-cards__card:focus {
	color: inherit;
	text-decoration: none;
}

.fhcw-cards__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--fhcw-icon-box);
	height: var(--fhcw-icon-box);
	border-radius: 50%;
	line-height: 1;
}

.fhcw-cards__icon svg,
.fhcw-cards__icon img {
	display: block;
	width: var(--fhcw-icon);
	height: var(--fhcw-icon);
}

.fhcw-cards__icon i {
	font-size: var(--fhcw-icon);
}

.fhcw-cards__body {
	display: flex;
	flex-direction: column;
	gap: var(--fhcw-body-gap);
	width: 100%;
}

.fhcw-cards__title,
.fhcw-cards__text {
	margin: 0;
	padding: 0;
}

/* Navigation */
.fhcw-cards__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: var(--fhcw-nav-gap);
}

.fhcw-cards.is-static .fhcw-cards__nav {
	display: none;
}

.fhcw-cards__dots {
	display: flex;
	align-items: center;
	gap: 8px;
}

.fhcw-cards .fhcw-cards__dot,
.fhcw-cards .fhcw-cards__dot:hover,
.fhcw-cards .fhcw-cards__dot:focus {
	width: 8px;
	height: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--fhcw-dot-c);
	box-shadow: none;
	cursor: pointer;
	transition: width .25s ease, background-color .25s ease;
}

.fhcw-cards .fhcw-cards__dot.is-active {
	width: 24px;
	background: var(--fhcw-dot-a);
}

.fhcw-cards .fhcw-cards__dot:focus-visible {
	outline: 2px solid var(--fhcw-dot-a);
	outline-offset: 3px;
}

.fhcw-cards .fhcw-cards__arrow,
.fhcw-cards .fhcw-cards__arrow:focus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 51px;
	height: 51px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: var(--fhcw-arrow-bg);
	color: var(--fhcw-arrow);
	box-shadow: none;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}

.fhcw-cards .fhcw-cards__arrow:hover {
	background: var(--fhcw-arrow-hover);
	color: #fff;
}

.fhcw-cards .fhcw-cards__arrow[disabled] {
	opacity: .4;
	cursor: default;
	pointer-events: none;
}

.fhcw-cards__num {
	display: block;
	align-self: flex-start;
}

.fhcw-cards__body {
	text-align: left;
}

/* Let the slider run to the screen edges on tablet and mobile (net width unchanged in grid mode). */
@media (max-width: 1024px) {
	.fhcw-cards-bleed-yes .fhcw-cards__track {
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding-left: calc(50vw - 50%);
		padding-right: calc(50vw - 50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fhcw-cards__track {
		scroll-behavior: auto;
	}
	.fhcw-cards .fhcw-cards__dot {
		transition: none;
	}
}
