header {
	.hero {
		width: 100%;
		margin-bottom: 20px;
		text-align: center;
		position: relative;

		&::after {
			content: "";
			position: absolute;
			inset: 0;
			background: rgba(0, 0, 0, 0.3);
			border-radius: 0 0 var(--radius-lg) var(--radius-lg);
			pointer-events: none;
			z-index: 2;
		}

		.hero-slider {
			position: relative;
			width: 100%;
			height: 640px;
			max-height: 640px;
			border-radius: 0 0 var(--radius-lg) var(--radius-lg);
			overflow: hidden;
			background-color: var(--background);
		}

		.hero-image {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			max-height: 640px;
			max-width: 100%;
			object-fit: cover;
			border-radius: 0 0 var(--radius-lg) var(--radius-lg);
			opacity: 0;
			transition: opacity var(--transition-hero);

			&.active {
				opacity: 1;
			}
		}

		.hero-dots {
			position: absolute;
			bottom: var(--spacing-xl);
			right: var(--spacing-xl);
			display: flex;
			gap: var(--spacing-sm);
			z-index: var(--z-modal);

			.dot {
				width: 24px;
				height: 24px;
				border-radius: var(--radius-full);
				background-color: rgba(0, 0, 0, 0.75);
				cursor: pointer;
				transition: background-color var(--transition-slow);
				border: 2px solid rgba(255, 255, 255, 0.7);

				&:hover {
					backdrop-filter: brightness(250);
				}

				&:focus-visible {
					outline: 2px solid var(--accent);
					outline-offset: 2px;
				}

				&.active {
					background-color: var(--accent);
					border-color: white;
				}
			}
		}

		.heroText {
			position: absolute;
			inset: 0;
			z-index: var(--z-overlay);
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			justify-content: center;
			padding-left: 12.5%;
			padding-right: 12.5%;
			color: white;
			text-shadow: 0 2px 4px rgba(0, 0, 0, 0.45);

			h1 {
				font-size: var(--font-size-7xl);
				margin-bottom: var(--spacing-xl);
				text-transform: uppercase;
				font-weight: var(--font-weight-bold);
			}

			p {
				font-size: var(--font-size-4xl);
				color: #f2f2f2;
			}
		}
	}
}

@media (max-width: 768px) {
	header .hero {
		margin-bottom: var(--spacing-md);
	}

	header .hero .hero-slider {
		height: 50vh;
		min-height: 280px;
		max-height: 400px;
	}

	header .hero .hero-image {
		max-height: 100%;
	}

	header .hero .heroText {
		padding-left: var(--spacing-xl);
		padding-right: var(--spacing-xl);
		align-items: center;
		text-align: center;
	}

	header .hero .heroText h1 {
		font-size: 1.6rem;
	}

	header .hero .heroText p {
		font-size: 1rem;
	}

	header .hero .hero-dots {
		bottom: var(--spacing-md);
		right: var(--spacing-md);
	}

	header .hero .hero-dots .dot {
		width: 16px;
		height: 16px;
	}
}
