@keyframes gradationSignal {
	0% {
		opacity: 1;
		transform: scale(0);
	}

	100% {
		transform: scale(1);
		opacity: 0;
	}
}

.tm-gradation {
	margin: 0 -15px;
	display: flex;

	.count-wrap {
		position: relative;
		width: 50px;
		height: 50px;
		margin: 0 0 53px;

		&:before,
		&:after {
			content: '';
			position: absolute;
			left: -25px;
			top: -25px;
			opacity: 0;
			width: 100px;
			height: 100px;
			border-radius: 50%;
			pointer-events: none;
			border: 1px solid #ababab;
			transform-origin: 50% 50%;
			animation-timing-function: cubic-bezier(0, .55, .55, 1);
			animation-duration: 2s;
			animation-fill-mode: forwards;
			animation-iteration-count: infinite;
		}

		&:after {
			animation-delay: .75s;
		}
	}

	.count {
		@extend %NormalTransition;
		position: absolute;
		top: 50%;
		left: 0;
		width: 50px;
		height: 50px;
		line-height: 48px;
		border-radius: 50%;
		text-align: center;
		transform: translate(0, -50%);
		z-index: 3;
		background: #fff;
		border: 2px solid #e8e8e8;
		color: #333;
		font-size: 18px;
		font-weight: 700;
	}

	.item {
		width: 25%;
		padding: 0 15px;
		position: relative;

		&:last-child {
			.line {
				&:before {
					display: none;
				}
			}
		}

		&:hover {
			.count {
				border-color: transparent;
				color: #fff;
				background: $primary-color;
			}

			.count-wrap {
				&:before,
				&:after {
					animation-name: gradationSignal;
				}
			}
		}
	}

	.line {
		&:before {
			content: '';
			position: absolute;
			top: 25px;
			left: 15px;
			border-top: 1px solid #ededed;
			width: 100%;
			height: 1px;
		}
	}

	.title {
		font-size: 18px;
		line-height: 1.67;
		margin-bottom: 9px;
	}
}

@include media-breakpoint-down(sm) {
	.tm-gradation {
		display: block;

		.item {
			width: 100%;

			+ .item {
				margin-top: 50px;
			}
		}

		.count-wrap {
			margin-bottom: 25px;
		}

		.line {
			&:before {
				display: none;
			}
		}
	}
}
