.fm-tic {
	--fm-tic-arrow-offset: 12px;
	--fm-tic-hover-duration: .6s;
	--fm-tic-hover-scale: 108%;
	position: relative;
	width: 100%;
}

.fm-tic__swiper {
	width: 100%;
	overflow: hidden;
}

.fm-tic__slide {
	height: auto;
}

.fm-tic__card {
	position: relative;
	height: 330px;
	overflow: hidden;
	isolation: isolate;
}

/*
 * Link della scheda: ancora reale sul testo, estesa a tutta la card tramite
 * pseudo-elemento. La card resta un <article> e conserva il proprio box, così
 * il link non dipende da alcuna regola nuova per non far collassare la scheda.
 */
.fm-tic__card--link {
	cursor: pointer;
}

.fm-tic__link {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: block;
	text-decoration: none;
	pointer-events: auto;
}

.fm-tic__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -4px;
}

.fm-tic__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	box-sizing: border-box;
	overflow: hidden;
}

.fm-tic__image {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	object-position: center center;
	will-change: transform, filter;
	transition: transform var(--fm-tic-hover-duration) cubic-bezier(.2, .75, .25, 1),
		filter var(--fm-tic-hover-duration) ease;
}

.fm-tic--hover-zoom .fm-tic__card:hover .fm-tic__image {
	transform: scale(var(--fm-tic-hover-scale));
}

.fm-tic--hover-zoom-rotate .fm-tic__card:hover .fm-tic__image {
	transform: scale(var(--fm-tic-hover-scale)) rotate(1.5deg);
}

.fm-tic--hover-lift .fm-tic__card:hover .fm-tic__image {
	transform: translateY(-8px) scale(var(--fm-tic-hover-scale));
}

.fm-tic--hover-reveal .fm-tic__image {
	filter: grayscale(1) saturate(.4);
}

.fm-tic--hover-reveal .fm-tic__card:hover .fm-tic__image {
	filter: grayscale(0) saturate(1);
	transform: scale(1.035);
}

.fm-tic--hover-shine .fm-tic__media::after {
	content: "";
	position: absolute;
	top: -35%;
	bottom: -35%;
	left: -75%;
	width: 42%;
	background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .12) 25%, rgba(255, 255, 255, .72) 50%, rgba(255, 255, 255, .12) 75%, transparent 100%);
	transform: skewX(-18deg);
	transition: left calc(var(--fm-tic-hover-duration) * 1.35) cubic-bezier(.2, .7, .25, 1);
	pointer-events: none;
}

.fm-tic--hover-shine .fm-tic__card:hover .fm-tic__media::after {
	left: 135%;
}

.fm-tic--hover-shine .fm-tic__card:hover .fm-tic__image {
	transform: scale(1.025);
}

.fm-tic__text {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 1;
	margin: 0;
	padding: 20px;
	line-height: 1.25;
	text-align: center;
	pointer-events: none;
}

.fm-tic--text-top .fm-tic__text {
	top: 0;
}

.fm-tic--text-center .fm-tic__text {
	top: 50%;
	transform: translateY(-50%);
}

.fm-tic--text-bottom .fm-tic__text {
	bottom: 0;
}

.fm-tic__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	color: currentColor;
	background: rgba(255, 255, 255, .9);
	border: 1px solid transparent;
	border-radius: 999px;
	box-shadow: none;
	transform: translateY(-50%);
	cursor: pointer;
	transition: color .2s ease, background-color .2s ease, opacity .2s ease;
}

.fm-tic__arrow svg {
	display: block;
	width: 15px;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.fm-tic__arrow--prev {
	left: var(--fm-tic-arrow-offset);
}

.fm-tic__arrow--next {
	right: var(--fm-tic-arrow-offset);
}

.fm-tic--arrows-outside .fm-tic__arrow--prev {
	left: 0;
	transform: translate(-50%, -50%);
}

.fm-tic--arrows-outside .fm-tic__arrow--next {
	right: 0;
	transform: translate(50%, -50%);
}

.fm-tic__arrow.swiper-button-disabled {
	opacity: .35;
	cursor: default;
}

.fm-tic__pagination {
	position: relative;
	bottom: auto !important;
	left: auto !important;
	width: 100%;
	margin-top: 16px;
	text-align: center;
}

.fm-tic__pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0 5px;
	opacity: .35;
}

.fm-tic__pagination .swiper-pagination-bullet-active {
	opacity: 1;
}

@media (max-width: 767px) {
	.fm-tic__card {
		height: 320px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fm-tic__arrow,
	.fm-tic__image,
	.fm-tic__media::after {
		transition: none;
	}
}
