@use '../variables' as *;

.#{$prefix}steps {
	flex-shrink: 0;
	display: grid;
	overflow: hidden;

	&--horizontal {
		grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
	}

	&--vertical {
		grid-template-columns: 1;
		gap: 2rem;
	}

	&--vertical .#{$prefix}step {
		flex-direction: row;
		gap: 1.5rem;
	}

	&--vertical .#{$prefix}step__content {
		padding: 4px 0px;
	}

	&--vertical .#{$prefix}step__title,
	&--vertical .#{$prefix}step__subtitle {
		margin: 0;
		text-align: start;
	}

	&--vertical &__indicator {
		width: 1px;
		height: 100%;
		top: -50%;
		bottom: 50%;
		left: auto;
		right: auto;
	}
}

.#{$prefix}step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;

	&--completed {
		--#{$prefix}step-divider-color: var(--#{$prefix}_completed-step-divider-color);
	}

	&--current {
		--#{$prefix}step-divider-color: var(--#{$prefix}_current-step-divider-color);
	}

	&--disabled {
		opacity: 0.65;
		pointer-events: none;
	}

	&__header {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}

	&__avatar-wrapper {
		border: 2px solid transparent;
		padding: 2px;
		border-radius: 50%;
	}

	&__avatar {
		position: relative;
		flex-shrink: 0;
		width: 44px;
		height: 44px;
		border-radius: 50%;
		font-size: var(--#{$prefix}step-indicator-font-size);
		font-weight: var(--#{$prefix}step-indicator-font-weight);
		color: var(--#{$prefix}step-indicator-color);
		background-color: var(--#{$prefix}step-background-color);
		display: flex;
		justify-content: center;
		align-items: center;
	}

	&__icon {
		position: relative;
	}

	&--current &__avatar-wrapper {
		border-color: var(--#{$prefix}_current-step-border-color);
	}

	&__content {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
	}

	&__title {
		flex-shrink: 0;
		max-width: 150px;
		margin: 0 auto;
		font-size: 0.875rem;
		font-weight: 500;
		text-align: center;
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	&__subtitle {
		flex-shrink: 0;
		max-width: 150px;
		margin: 0 auto;
		font-size: 0.75rem;
		text-align: center;
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		opacity: 0.75;
	}
}

.#{$prefix}steps {
	position: relative;

	&__indicator {
		position: absolute;
		flex-grow: 1;
		position: absolute;
		right: 50%;
		top: 50%;
		left: -50%;
		width: 100%;
		height: 1px;
		background-color: var(--#{$prefix}step-divider-color);
		z-index: -1;

		&--completed {
			border-bottom-color: var(--#{$prefix}_completed-step-divider-color);
		}

		&--current {
			border-bottom-color: var(--#{$prefix}_current-step-divider-color);
		}
	}
}
