/* Accessibility and interaction polish shared by both language versions. */
.portfolio-card:focus-visible,
.hero-slider__dots button:focus-visible,
.ptf-menu-burger:focus-visible,
.ptf-social-icon:focus-visible,
.featured-project__btn:focus-visible,
.ptf-btn:focus-visible,
a:focus-visible {
	outline: 3px solid #c4b5fd;
	outline-offset: 4px;
}

.portfolio-card:focus-visible {
	box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.35), 0 12px 48px rgba(139, 92, 246, 0.2);
	transform: translateY(-4px);
}

.portfolio-card:focus-visible .overlay {
	opacity: 1;
}

.hero-slider__dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	cursor: pointer;
	transition: all 0.4s ease;
}

.hero-slider__dots button.active {
	background: #8b5cf6;
	box-shadow: 0 0 20px rgba(139, 92, 246, 0.6);
	transform: scale(1.4);
}

.hero-slider__dots button:hover {
	background: rgba(139, 92, 246, 0.7);
}

.project-modal.fancybox-content {
	background: #0f0f14 !important;
}

@media (min-width: 769px) {
	.project-modal.fancybox-content {
		width: min(95vw, 1400px);
		max-height: calc(100vh - 48px);
		overflow: hidden;
	}

	.project-modal.fancybox-content .modal-hero {
		width: 100%;
		max-height: min(38vh, 420px);
		object-fit: cover;
	}

	.project-modal.fancybox-content .modal-body {
		padding: 24px 32px;
	}

	.project-modal.fancybox-content .modal-gallery {
		margin: 0 -32px 18px;
		padding: 16px 32px;
	}

	.project-modal.fancybox-content .modal-gallery img {
		width: 135px;
		height: 90px;
	}

	.project-modal.fancybox-content .modal-text {
		max-height: min(20vh, 180px);
		margin-top: 18px;
		overflow-y: auto;
		padding-right: 12px;
	}
}

@media (max-width: 768px) {
	.hero-slider__dots button {
		width: 8px;
		height: 8px;
	}

	.pp-scrollable {
		scrollbar-width: none;
	}

	.pp-scrollable::-webkit-scrollbar {
		display: none;
	}

	.project-modal.fancybox-content {
		max-height: calc(100vh - 12px);
		max-height: calc(100dvh - 12px);
		overflow-y: auto !important;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
