.keyto-widget-placeholder *,
.keyto-widget-placeholder *::before,
.keyto-widget-placeholder *::after {
	box-sizing: border-box;
}

@keyframes keyto-placeholder-shimmer {
	0% {
		background-position: -200px 0;
	}
	100% {
		background-position: calc(200px + 100%) 0;
	}
}

.keyto-widget-placeholder-wrapper.--hidden {
	display: none;
}

.keyto-widget-placeholder {
	display: flex;
	flex-direction: column;
	max-width: 2560px;
	margin: auto;
}

.keyto-widget-placeholder.hidden {
	display: none;
}

.keyto-skeleton {
	width: 100%;
	border-radius: 0.375rem;
	background-color: #e5e7eb;
	background-image: linear-gradient(
		90deg,
		#e5e7eb 0px,
		#f0f0f0 40px,
		#e5e7eb 80px
	);
	background-size: 200px 100%;
	animation: keyto-placeholder-shimmer 4s infinite linear;
}

.keyto-skeleton-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	gap: 1.5rem;
	padding: 3.5rem 1.25rem;
}

.keyto-skeleton-section {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.keyto-skeleton-title {
	width: 80%;
}

.keyto-skeleton-subtitle {
	width: 60%;
	height: 1.75rem;
}

.keyto-skeleton-description {
	width: 80%;
	height: 4.5rem;
}

.keyto-skeleton-input-label {
	width: 30%;
	height: 1.5rem;
	margin-bottom: 0.5rem;
}

.keyto-skeleton-input,
.keyto-skeleton-button {
	width: 100%;
	height: 3.5rem;
}

@media (min-width: 768px) {
	.keyto-skeleton-container {
		padding: 3.5rem 4rem;
	}
}

@media (min-width: 1024px) {
	.keyto-skeleton-container {
		padding: 5rem 6rem 5rem 7.5rem;
	}
}

.keyto-placeholder--hero-primary {
	max-width: 1340px;
}

.keyto-placeholder--hero-primary .keyto-skeleton-container {
	gap: 2.5rem;
	padding: 5rem 1.25rem;
}

.keyto-placeholder--hero-primary .keyto-skeleton-title {
	height: 10.5rem;
}

.keyto-placeholder--hero-primary .keyto-skeleton-description {
	height: 4.5rem;
}

@media (min-width: 768px) {
	.keyto-placeholder--hero-primary .keyto-skeleton-container {
		max-width: 31.25rem;
		padding-left: 4rem;
		padding-right: 4rem;
	}
}

@media (min-width: 1024px) {
	.keyto-placeholder--hero-primary .keyto-widget-placeholder {
		padding-left: 7.5rem;
		padding-right: 6rem;
	}

	.keyto-placeholder--hero-primary .keyto-skeleton-container {
		padding: 5rem 0 5rem 7.5rem;
	}
}

.keyto-placeholder--hero-secondary .keyto-skeleton-container {
	gap: 2.5rem;
	padding: 19rem 1.25rem 0;
}

.keyto-placeholder--hero-secondary .keyto-skeleton-title {
	height: 8.5rem;
}

.keyto-placeholder--hero-secondary .keyto-skeleton-subtitle {
	height: 1.75rem;
}

.keyto-placeholder--hero-secondary .keyto-skeleton-description {
	height: 4.5rem;
}

@media (min-width: 768px) {
	.keyto-placeholder--hero-secondary .keyto-skeleton-container {
		padding: 32rem 4rem 0;
	}

	.keyto-placeholder--hero-secondary .keyto-skeleton-section {
		max-width: 31.25rem;
	}
}

@media (min-width: 1024px) {
	.keyto-placeholder--hero-secondary .keyto-skeleton-container {
		padding: 5rem 6rem 5rem 7.5rem;
		max-width: 50%;
		align-items: end;
	}

	.keyto-placeholder--hero-secondary .keyto-skeleton-section {
		width: 100%;
		max-width: 28.5rem;
	}
}

.keyto-placeholder--hero-tertiary .keyto-skeleton-container {
	gap: 1.5rem;
	padding: 3.5rem 1.25rem;
	max-width: 1340px;
	margin: auto;
}

.keyto-placeholder--hero-tertiary .keyto-skeleton-title {
	width: 70%;
	height: 5.5rem;
}

.keyto-placeholder--hero-tertiary .keyto-skeleton-subtitle {
	width: 80%;
	height: 1.75rem;
}

@media (min-width: 1024px) {
	.keyto-placeholder--hero-tertiary .keyto-skeleton-container {
		flex-direction: row;
		padding: 5rem 6rem 5rem 7.5rem !important;
	}

	.keyto-placeholder--hero-tertiary .keyto-skeleton-section {
		width: 50% !important;
		max-width: none !important;
	}
}
