.widgets--consultation-steps {
	position: relative;
	overflow: hidden;
	padding: 5rem var(--pd);
	background-color: var(--bg);

	&::before {
		content: "";
		position: absolute;
		top: -8rem;
		left: 50%;
		width: 16rem;
		aspect-ratio: 1 / 1;
		border-radius: 50%;
		background-color: var(--c8);
		transform: translateX(-50%);
	}

	> * {
		position: relative;
		z-index: 1;
	}

	> h2 {
		max-width: 50rem;
		margin: 0 auto;
		color: var(--g6);
		font-size: 2.4rem;
		font-weight: 800;
		line-height: 120%;
		text-align: center;
	}

	> .steps {
		position: relative;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--pd);
		margin-top: 3rem;
		counter-reset: consultation-step;

		&::before {
			content: "";
			position: absolute;
			top: 2.25rem;
			left: 12.5%;
			width: 75%;
			height: var(--px);
			background-color: var(--c6);
		}

		> .step {
			position: relative;
			display: flex;
			align-items: center;
			min-width: 0;
			margin: 0;
			counter-increment: consultation-step;
			flex-direction: column;

			> .number {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 4.5rem;
				aspect-ratio: 1 / 1;
				border: 0.5rem solid var(--c8);
				border-radius: 50%;
				background-color: var(--c2);
				color: var(--bg);
				font-size: 1rem;
				font-weight: 800;
				box-shadow: 0 0 0 0.15rem var(--c6);

				&::before {
					content: counter(consultation-step, decimal-leading-zero);
				}
			}

			> .copy {
				width: 100%;
				min-height: 15rem;
				margin-top: 1.5rem;
				padding: 1.5rem;
				border: var(--px) solid var(--c7);
				border-radius: 1rem;
				background-color: var(--c8);
				text-align: center;

				> h3 {
					margin: 0 0 0.75rem;
					color: var(--c1);
					font-size: 1.2rem;
					font-weight: 800;
					line-height: 135%;
				}

				> .text {
					color: var(--g4);
					font-size: 0.92rem;
					line-height: 155%;

					> *:last-child {
						margin-bottom: 0;
					}
				}
			}
		}
	}

	> .buttons {
		justify-content: center;
		margin-top: 3rem;

		> .cta {
			&[href=""] {
				display: none;
			}
		}
	}

	@media (max-width: 1279px) {
		> .steps {
			gap: 1rem;

			> .step > .copy {
				padding: 1.25rem;
			}
		}
	}

	@media (max-width: 991px) {
		> .steps {
			grid-template-columns: minmax(0, 1fr);
			gap: 1.5rem;
			max-width: 50rem;
			margin-inline: auto;

			&::before {
				top: 2.25rem;
				bottom: 2.25rem;
				left: 2.25rem;
				width: var(--px);
				height: auto;
			}

			> .step {
				display: grid;
				grid-template-columns: 4.5rem minmax(0, 1fr);
				gap: 1.5rem;
				align-items: start;

				> .copy {
					min-height: 0;
					margin-top: 0;
					text-align: left;
				}
			}
		}
	}

	@media (max-width: 767px) {
		padding-block: 4rem;

		> h2 {
			font-size: 2rem;
		}
	}

	@media (max-width: 540px) {
		padding-block: 3rem;

		> .steps {
			&::before {
				top: 1.75rem;
				bottom: 1.75rem;
				left: 1.75rem;
			}

			> .step {
				grid-template-columns: 3.5rem minmax(0, 1fr);
				gap: 1rem;

				> .number {
					width: 3.5rem;
					border-width: 0.35rem;
				}

				> .copy {
					padding: 1.25rem;
				}
			}
		}

		> .buttons > .cta {
			width: 100%;
		}
	}
}
