.vvcs {
	--vvcs-columns: 3;
	--vvcs-gap: 38px;
	--vvcs-dot-scale: 1.25;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: #fff;
	color: #241b16;
}

.vvcs::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.vvcs__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	margin-inline: auto;
}

.vvcs__header {
	width: 100%;
	margin-inline: auto;
}

.vvcs__eyebrow {
	margin: 0 0 14px;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.vvcs__heading {
	margin: 0;
	font-family: inherit;
	font-weight: 400;
}

.vvcs__accent {
	margin-top: -12px;
	font-family: cursive;
	font-style: italic;
}

.vvcs__header-description { margin-top: 20px; }

.vvcs__grid {
	display: grid;
	grid-template-columns: repeat(var(--vvcs-columns), minmax(0, 1fr));
	gap: var(--vvcs-gap);
}

.vvcs-slider {
	position: relative;
	width: 100%;
}

.vvcs__viewport {
	width: 100%;
	overflow: hidden;
}

.vvcs__track {
	display: flex;
	gap: var(--vvcs-gap);
	transition-property: transform;
	transition-timing-function: cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}

.vvcs__slide {
	flex: 0 0 calc((100% - (var(--vvcs-columns) - 1) * var(--vvcs-gap)) / var(--vvcs-columns));
	min-width: 0;
}

.vvcs__arrow {
	position: absolute;
	top: 50%;
	z-index: 4;
	display: grid;
	place-items: center;
	padding: 0;
	border-style: solid;
	appearance: none;
	cursor: pointer;
	line-height: 1;
	transform: translateY(-50%);
	transition-property: color, background, border-color, transform;
	transition-timing-function: ease;
}

.vvcs__arrow i,
.vvcs__arrow svg {
	display: block;
	width: 1em !important;
	height: 1em !important;
	font-size: inherit !important;
	color: inherit;
	fill: currentColor;
}

.vvcs__arrow--prev { left: 10px; }
.vvcs__arrow--next { right: 10px; }
.vvcs__arrow--scale:hover { transform: translateY(-50%) scale(1.08); }
.vvcs__arrow--slide.vvcs__arrow--prev:hover { transform: translate(-5px, -50%); }
.vvcs__arrow--slide.vvcs__arrow--next:hover { transform: translate(5px, -50%); }

.vvcs__dots {
	display: flex;
	justify-content: center;
	align-items: center;
}

.vvcs__dot {
	display: block;
	padding: 0;
	border: 0;
	border-radius: 50%;
	appearance: none;
	cursor: pointer;
	transition-property: background, transform;
	transition-timing-function: ease;
}

.vvcs__dot:hover,
.vvcs__dot.is-active { transform: scale(var(--vvcs-dot-scale)); }

.vvcs__arrow:focus-visible,
.vvcs__dot:focus-visible,
.vvcs-highlight__button:focus-visible,
.vvcs-team-card__button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.vvcs-highlight {
	border-style: solid;
	border-width: 0;
	transition-property: transform, background, border-color, box-shadow;
}

.vvcs-effect--lift:hover { transform: translateY(-8px); }
.vvcs-effect--scale:hover { transform: scale(1.025); }

.vvcs-highlight__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition-property: color, transform;
	transition-timing-function: ease;
}

.vvcs-highlight__visual i,
.vvcs-highlight__visual svg {
	display: block;
	width: 1em;
	height: 1em;
	font-size: inherit;
	color: inherit;
	fill: currentColor;
}

.vvcs-highlight__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition-property: opacity;
	transition-timing-function: ease;
}

.vvcs-highlight__title {
	margin: 0 0 12px;
	font-family: inherit;
	font-weight: 400;
}

.vvcs-highlight__description { margin: 0; }

.vvcs-highlight__button,
.vvcs-team-card__button {
	display: inline-block;
	text-decoration: none;
	transition-property: color, background, border-color, box-shadow, transform;
	transition-timing-function: ease;
}

.vvcs-button-effect--lift:hover { transform: translateY(-3px); }
.vvcs-button-effect--scale:hover { transform: scale(1.04); }
.vvcs-button-effect--slide:hover { transform: translateX(4px); }

.vvcs--team .vvcs__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--vvcs-gap);
}

.vvcs--team .vvcs__grid .vvcs__slide {
	flex: 0 1 calc((100% - (var(--vvcs-columns) - 1) * var(--vvcs-gap)) / var(--vvcs-columns));
}

.vvcs-team-card {
	overflow: hidden;
	border-style: solid;
	border-width: 0;
	transition-property: transform, background, border-color, box-shadow;
}

.vvcs-team-card__media { overflow: hidden; }

.vvcs-team-card__image {
	display: block;
	width: 100%;
	transition-property: transform;
	transition-timing-function: ease;
}

.vvcs-team-card__name {
	margin: 24px 0 5px;
	font-family: inherit;
	font-weight: 400;
}

.vvcs-team-card__role { margin: 0 0 14px; }
.vvcs-team-card__bio { margin: 0; }
.vvcs-team-card__button { margin-top: 16px; }

.vvcs--testimonials {
	--vvcs-columns: 1;
	background: #fbf7ef;
}

.vvcs--testimonials .vvcs__slide { flex-basis: 100%; }

.vvcs-testimonial {
	text-align: center;
	border-style: solid;
	border-width: 0;
	transition-property: background, box-shadow;
	transition-timing-function: ease;
}

.vvcs-testimonial__icon {
	display: inline-grid;
	place-items: center;
	width: auto;
	height: auto;
	line-height: 1;
}

.vvcs-testimonial__icon i,
.vvcs-testimonial__icon svg {
	display: block !important;
	width: 1em !important;
	height: 1em !important;
	max-width: 1em !important;
	max-height: 1em !important;
	font-size: inherit !important;
	color: inherit;
	fill: currentColor;
}

.vvcs-testimonial__icon svg path { fill: currentColor; }
.vvcs-testimonial__rating { margin: 12px 0; }

.vvcs-testimonial__quote {
	display: block;
	width: 100%;
	margin-inline: auto;
	border: 0;
	font-family: inherit;
	font-style: normal;
}

.vvcs-testimonial__person {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: left;
}

.vvcs-testimonial__avatar {
	display: block;
	object-fit: cover;
}

.vvcs-testimonial__name { line-height: 1.3; }
.vvcs-testimonial__role { margin-top: 3px; }
.vvcs--testimonials .vvcs__arrow--prev { left: 0; }
.vvcs--testimonials .vvcs__arrow--next { right: 0; }

@media (max-width: 767px) {
	.vvcs-testimonial { padding-inline: 10px; }
	.vvcs__accent { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.vvcs__track,
	.vvcs__arrow,
	.vvcs__dot,
	.vvcs-highlight,
	.vvcs-highlight__visual,
	.vvcs-team-card,
	.vvcs-team-card__image,
	.vvcs-testimonial {
		transition: none !important;
	}

	.vvcs__track { will-change: auto; }
}
