/* ================================
   ACCESSIBILITY STYLES
   ================================ */

/* Skip Link for Screen Readers */
.skip-link {
	position: absolute;
	top: -40px;
	left: 6px;
	background: var(--dev-primary);
	color: var(--text-on-primary);
	padding: 8px 16px;
	text-decoration: none;
	border-radius: 4px;
	font-weight: 600;
	font-size: 14px;
	z-index: 10000;
	transform: translateY(-100%);
	transition: transform 0.3s ease-in-out;
}

.skip-link:focus {
	top: 6px;
	transform: translateY(0);
	outline: 2px solid var(--dev-accent-orange);
	outline-offset: 2px;
}

/* Keyboard Navigation Styles */
body.keyboard-navigation *:focus {
	outline: 2px solid var(--dev-primary);
	outline-offset: 2px;
}

body:not(.keyboard-navigation) *:focus {
	outline: none;
}

/* Focus indicators for interactive elements */
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--dev-primary);
	outline-offset: 2px;
}

/* ================================
   CUSTOM COLOR VARIABLES
   ================================ */

:root {
	/* Primary Colors */
	--dev-primary: #4facfe;
	--dev-primary-hover: #3d8bfe;
	--dev-primary-light: rgba(79, 172, 254, 0.1);
	--dev-primary-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);

	/* Secondary Colors */
	--dev-secondary: #667eea;
	--dev-secondary-hover: #5a6fd8;
	--dev-secondary-light: rgba(102, 126, 234, 0.1);
	--dev-secondary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

	/* Accent Colors */
	--dev-accent-red: #ff6b6b;
	--dev-accent-green: #28a745;
	--dev-accent-orange: #ff6347;
	--dev-accent-gold: #ffd700;
	--dev-accent-turquoise: #00ced1;
	--dev-accent-lime: #32cd32;

	/* Hero Background Gradients */
	--hero-main-gradient: linear-gradient(
		135deg,
		rgba(46, 125, 50, 0.05) 0%,
		rgba(33, 150, 243, 0.05) 100%
	);
	--hero-about-gradient: linear-gradient(45deg, #1e3c72 0%, #2a5298 100%);
	--hero-services-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	--hero-faq-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	--hero-contact-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
	--hero-terms-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	--hero-privacy-gradient: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
	--hero-thanks-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

	/* Text Colors */
	--text-on-primary: #ffffff;
	--text-on-secondary: #ffffff;
	--text-muted-on-colored: rgba(255, 255, 255, 0.8);
	--text-muted-on-colored-light: rgba(255, 255, 255, 0.9);

	/* Background Colors */
	--bg-glass: rgba(255, 255, 255, 0.1);
	--bg-glass-hover: rgba(255, 255, 255, 0.15);
	--bg-glass-strong: rgba(255, 255, 255, 0.2);
	--bg-glass-border: rgba(255, 255, 255, 0.2);
	--bg-white-glass: rgba(255, 255, 255, 0.7);
	--bg-white-glass-strong: rgba(255, 255, 255, 0.95);

	/* Shadow Colors */
	--shadow-light: 0 2px 8px rgba(0, 0, 0, 0.1);
	--shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.15);
	--shadow-strong: 0 8px 32px rgba(0, 0, 0, 0.1);
	--shadow-team: 0 8px 32px rgba(0, 0, 0, 0.3);
	--shadow-cookie: 0 -4px 12px rgba(0, 0, 0, 0.1);

	/* Border Colors */
	--border-white: 4px solid white;
	--border-glass: 1px solid rgba(255, 255, 255, 0.2);
	--border-glass-strong: 1px solid rgba(255, 255, 255, 0.3);

	/* Android/iOS Platform Colors */
	--android-green: #3ddc84;
	--ios-black: #000000;

	/* Success/Error Colors */
	--success-color: #28a745;
	--error-color: #dc3545;
	--warning-color: #ffc107;
	--info-color: #17a2b8;
}

/* ================================
   THEME OVERRIDES FOR DARK MODE
   ================================ */

[data-theme='dark'] {
	--dev-primary-light: rgba(79, 172, 254, 0.2);
	--dev-secondary-light: rgba(102, 126, 234, 0.2);
	--bg-glass: rgba(0, 0, 0, 0.1);
	--bg-glass-hover: rgba(0, 0, 0, 0.15);
	--bg-glass-strong: rgba(0, 0, 0, 0.2);
	--bg-white-glass: rgba(0, 0, 0, 0.7);
	--bg-white-glass-strong: rgba(0, 0, 0, 0.95);
}

/* ================================
   MAIN STYLES
   ================================ */

/* Custom Styles for Dev one app */

/* Анімації */
@keyframes pulse {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Hero секції з покращеною адаптивністю */
.hero {
	animation: fadeInUp 0.8s ease-out;
}

/* Responsive improvements */
@media (max-width: 768px) {
	.hero {
		padding: 2rem 1rem !important;
		margin: 1rem 0 !important;
	}

	.hero h1 {
		font-size: 2rem !important;
	}

	.hero h2 {
		font-size: 1rem !important;
	}

	.hero p {
		font-size: 1rem !important;
	}

	.hero .grid {
		grid-template-columns: 1fr !important;
		gap: 2rem !important;
	}

	/* Колажі на мобільних пристроях */
	.hero div[style*='height: 400px'] {
		height: 300px !important;
	}

	.hero img[style*='position: absolute'] {
		width: 120px !important;
		height: 140px !important;
	}

	/* Статистики на мобільних */
	.hero .grid div[style*='backdrop-filter'] {
		padding: 0.8rem !important;
	}

	.hero .grid div[style*='backdrop-filter'] div {
		font-size: 1.4rem !important;
	}
}

@media (max-width: 480px) {
	.hero {
		padding: 1.5rem 0.5rem !important;
	}

	.hero h1 {
		font-size: 1.8rem !important;
	}

	/* Спрощення колажів для дуже маленьких екранів */
	.hero div[style*='height: 400px'],
	.hero div[style*='height: 300px'] {
		height: 200px !important;
	}

	.hero img[style*='position: absolute'] {
		width: 90px !important;
		height: 110px !important;
	}

	/* Кнопки на маленьких екранах */
	.hero a[role='button'] {
		padding: 0.6rem 1rem !important;
		font-size: 0.9rem !important;
	}
}

/* Покращення для кнопок */
.hero a[role='button'] {
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

.hero a[role='button']:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-medium);
}

/* Покращення для карток статистики */
.hero div[style*='backdrop-filter: blur(10px)'] {
	transition: transform 0.2s ease;
}

.hero div[style*='backdrop-filter: blur(10px)']:hover {
	transform: translateY(-3px);
}

/* FAQ сторінка покращення */
details[name='general-faq'] {
	margin-bottom: 1rem;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow-light);
}

details[name='general-faq'] summary {
	transition: background-color 0.2s ease;
}

details[name='general-faq'] summary:hover {
	background: var(--pico-card-background-color);
}

details[name='general-faq'][open] summary {
	background: var(--dev-primary);
	color: var(--text-on-primary);
}

details[name='general-faq'][open] summary i {
	color: var(--text-on-primary) !important;
}

/* Покращення для мобільних FAQ */
@media (max-width: 768px) {
	details[name='general-faq'] summary {
		font-size: 0.9rem;
		padding: 1rem 0.8rem;
	}

	details[name='general-faq'] div {
		padding: 0.8rem !important;
	}
}

/* Додаткові стилі для accessibility */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* Контактна форма покращення */
.contact-form form {
	transition: all 0.3s ease;
}

.contact-form form:hover {
	box-shadow: var(--shadow-strong);
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
	border-color: var(--dev-primary);
	box-shadow: 0 0 0 3px var(--dev-primary-light);
	outline: none;
}

.contact-form label {
	font-size: 0.9rem;
	margin-bottom: 0.3rem;
	display: block;
}

.contact-form textarea {
	font-family: inherit;
	line-height: 1.5;
}

/* CTA секція покращення */
.cta {
	animation: fadeInUp 1s ease-out;
}

/* Responsive покращення для контактної форми */
@media (max-width: 768px) {
	.contact-form {
		padding: 2rem 1rem !important;
	}

	.contact-form form {
		padding: 1.5rem !important;
	}

	.contact-form .grid {
		grid-template-columns: 1fr !important;
		gap: 1rem !important;
	}

	.contact-form h2 {
		font-size: 1.5rem !important;
	}

	.cta {
		padding: 2rem 1rem !important;
	}

	.cta h2 {
		font-size: 1.8rem !important;
	}

	.cta p {
		font-size: 1rem !important;
	}
}

@media (max-width: 480px) {
	.contact-form {
		margin: 2rem 0 !important;
		padding: 1.5rem 0.5rem !important;
	}

	.contact-form form {
		padding: 1rem !important;
	}

	.contact-form input,
	.contact-form textarea,
	.contact-form select {
		font-size: 16px; /* Запобігає зуму на iOS */
	}

	.cta {
		padding: 2rem 0.5rem !important;
	}

	.cta a[role='button'] {
		padding: 0.8rem 1.2rem !important;
		font-size: 1rem !important;
	}
}

/* Hero стилі для заміни inline стилів */
.hero-container {
	background: var(--hero-main-gradient);
	border-radius: 16px;
	padding: 3rem 2rem;
	margin-bottom: 3rem;
	position: relative;
	overflow: hidden;
}

.hero-background {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image:
		radial-gradient(
			circle at 25% 25%,
			var(--dev-primary-light) 0%,
			transparent 50%
		),
		radial-gradient(
			circle at 75% 75%,
			var(--dev-secondary-light) 0%,
			transparent 50%
		);
	pointer-events: none;
}

.hero-content {
	position: relative;
	z-index: 2;
}

.hero-hgroup {
	margin-bottom: 2rem;
}

.hero-subtitle {
	color: var(--dev-primary);
	font-weight: 600;
	font-size: 1.2rem;
	margin-bottom: 0.5rem;
}

.hero-title {
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 900;
	line-height: 1.1;
	margin-bottom: 1rem;
	background: linear-gradient(135deg, var(--dev-primary), var(--dev-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.hero-description {
	font-size: 1.1rem;
	line-height: 1.6;
	color: var(--pico-muted-color);
	max-width: 90%;
}

.hero-stats-grid {
	margin-bottom: 2rem;
	gap: 1rem;
}

.hero-stat-card {
	background: var(--bg-glass);
	backdrop-filter: blur(10px);
	border: var(--border-glass);
	border-radius: 12px;
	padding: 1rem;
	text-align: center;
}

.hero-stat-number {
	margin: 0;
	color: var(--dev-primary);
	font-size: 1.8rem;
	font-weight: 700;
}

.hero-stat-label {
	color: var(--pico-muted-color);
}

.hero-buttons {
	display: flex;
	gap: 1rem;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	max-width: 500px;
	margin: 0 auto;
}

.hero-button-primary {
	background: var(--dev-primary-gradient);
	border: none;
	padding: 0.8rem 2rem;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none;
	color: var(--text-on-primary);
	transition: transform 0.2s ease;
}

.hero-button-secondary {
	padding: 0.8rem 2rem;
	border-radius: 8px;
	font-weight: 600;
}

.hero-image-collage {
	position: relative;
	height: 400px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 1rem;
	transform: perspective(1000px) rotateY(-5deg);
}

/* About page hero стилі */
.hero-about {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	background: var(--hero-about-gradient);
	color: var(--text-on-primary);
	padding: 0;
}

.hero-about-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image:
		radial-gradient(circle at 20% 50%, var(--bg-glass) 1px, transparent 1px),
		radial-gradient(circle at 80% 20%, var(--bg-glass) 1px, transparent 1px);
	background-size: 40px 40px;
}

.hero-about-content {
	position: relative;
	z-index: 2;
	align-items: center;
	padding: 3rem 2rem;
}

.hero-about-subtitle {
	color: var(--text-muted-on-colored);
	margin-bottom: 0.5rem;
}

.hero-about-subtitle i {
	margin-right: 0.5rem;
}

.hero-about-title {
	color: var(--text-on-primary);
	font-size: 2.5rem;
	margin-bottom: 1rem;
}

.hero-about-description {
	color: var(--text-muted-on-colored-light);
	font-size: 1.2rem;
	line-height: 1.6;
	margin-bottom: 2rem;
}

.hero-about-stats {
	gap: 1rem;
}

.hero-about-stat-card {
	background: var(--bg-glass-strong);
	padding: 1rem;
	border-radius: 8px;
	text-align: center;
	backdrop-filter: blur(10px);
}

.hero-about-stat-number {
	color: var(--text-on-primary);
	margin: 0;
	font-size: 1.5rem;
}

.hero-about-stat-label {
	color: var(--text-muted-on-colored);
}

.hero-about-image-container {
	text-align: center;
}

.hero-about-image-wrapper {
	position: relative;
	display: inline-block;
}

.hero-about-image-collage {
	position: relative;
	width: 300px;
	height: 300px;
	margin: 0 auto;
}

.hero-team-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	border: var(--border-white);
	object-fit: cover;
	z-index: 4;
	box-shadow: var(--shadow-team);
}

/* Services page hero стилі */
.hero-services {
	background: var(--hero-services-gradient);
	color: var(--text-on-primary);
	text-align: center;
	padding: 3rem 2rem;
	border-radius: 12px;
	margin-bottom: 2rem;
}

.hero-services-title {
	color: var(--text-on-primary);
	margin-bottom: 1rem;
}

.hero-services-subtitle {
	color: var(--text-muted-on-colored-light);
	font-weight: 400;
}

.hero-services-description {
	color: var(--text-muted-on-colored);
	font-size: 1.1rem;
	max-width: 600px;
	margin: 1.5rem auto;
}

.hero-services-buttons {
	margin-top: 2rem;
	gap: 1rem;
}

.hero-services-button-primary {
	background: var(--text-on-primary);
	color: var(--dev-secondary);
	border: none;
}

.hero-services-button-primary i {
	margin-right: 0.5rem;
}

.hero-services-button-secondary {
	background: transparent;
	color: var(--text-on-primary);
	border: 2px solid var(--text-on-primary);
}

.hero-services-button-secondary i {
	margin-right: 0.5rem;
}

.hero-services-stats {
	margin: 2rem 0;
}

.hero-services-stat-card {
	text-align: center;
	padding: 1.5rem;
	border: 1px solid var(--pico-border-color);
	border-radius: 8px;
}

.hero-services-stat-number {
	color: var(--dev-secondary);
	margin: 0;
	font-size: 2.5rem;
}

.hero-services-stat-label {
	margin: 0.5rem 0 0;
	font-weight: 500;
}

/* FAQ page hero стилі */
.hero-faq {
	background: var(--hero-faq-gradient);
	position: relative;
	overflow: hidden;
	color: var(--text-on-primary);
	border-radius: 16px;
	margin: 2rem 0;
	padding: 3rem 2rem;
}

.hero-faq-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.1;
	background-image:
		radial-gradient(
			circle at 30% 40%,
			var(--text-on-primary) 1px,
			transparent 1px
		),
		radial-gradient(
			circle at 70% 60%,
			var(--text-on-primary) 1px,
			transparent 1px
		);
	background-size: 50px 50px;
}

.hero-faq-content {
	position: relative;
	z-index: 2;
}

.hero-faq-hgroup {
	margin-bottom: 2rem;
}

.hero-faq-subtitle {
	color: var(--text-muted-on-colored-light);
	margin-bottom: 0.5rem;
}

.hero-faq-title {
	font-size: 3rem;
	font-weight: 900;
	background: linear-gradient(45deg, var(--text-on-primary), #e8eaf6);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 1rem;
	line-height: 1.1;
}

.hero-faq-description {
	font-size: 1.1rem;
	color: var(--text-muted-on-colored-light);
	margin-bottom: 2rem;
}

.hero-faq-stats {
	margin-bottom: 2rem;
	gap: 1rem;
}

.hero-faq-stat-card {
	background: var(--bg-glass-hover);
	padding: 1rem;
	border-radius: 12px;
	text-align: center;
	backdrop-filter: blur(10px);
}

.hero-faq-stat-number {
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--text-on-primary);
}

.hero-faq-stat-label {
	color: var(--text-muted-on-colored);
}

.hero-faq-buttons {
	max-width: 400px;
}

.hero-faq-button-primary {
	background: var(--dev-accent-red);
	border: none;
	font-weight: 600;
	padding: 0.8rem 1.5rem;
}

.hero-faq-button-primary i {
	margin-right: 0.5rem;
}

.hero-faq-button-secondary {
	background: var(--bg-glass-strong);
	border: var(--border-glass-strong);
	color: var(--text-on-primary);
	font-weight: 600;
	padding: 0.8rem 1.5rem;
	backdrop-filter: blur(10px);
}

/* Contact page hero стилі */
.hero-contact {
	background: var(--hero-contact-gradient);
	position: relative;
	overflow: hidden;
	color: var(--text-on-primary);
	border-radius: 16px;
	margin: 2rem 0;
	padding: 3rem 2rem;
}

.hero-contact-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.1;
	background-image:
		radial-gradient(
			circle at 30% 30%,
			var(--text-on-primary) 1px,
			transparent 1px
		),
		radial-gradient(
			circle at 70% 70%,
			var(--text-on-primary) 1px,
			transparent 1px
		);
	background-size: 60px 60px;
}

.hero-contact-content {
	position: relative;
	z-index: 2;
}

.hero-contact-hgroup {
	margin-bottom: 2rem;
}

.hero-contact-subtitle {
	color: var(--text-muted-on-colored-light);
	margin-bottom: 0.5rem;
}

.hero-contact-title {
	font-size: 3rem;
	font-weight: 900;
	background: linear-gradient(45deg, var(--text-on-primary), #e3f2fd);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 1rem;
	line-height: 1.1;
}

.hero-contact-description {
	font-size: 1.1rem;
	color: var(--text-muted-on-colored-light);
	margin-bottom: 2rem;
}

.hero-contact-stats {
	margin-bottom: 2rem;
	gap: 1rem;
}

.hero-contact-stat-card {
	background: var(--bg-glass-hover);
	padding: 1rem;
	border-radius: 12px;
	text-align: center;
	backdrop-filter: blur(10px);
}

.hero-contact-stat-number {
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--text-on-primary);
}

.hero-contact-stat-label {
	color: var(--text-muted-on-colored);
}

.hero-contact-buttons {
	max-width: 400px;
}

.hero-contact-button-primary {
	background: var(--dev-accent-red);
	border: none;
	font-weight: 600;
	padding: 0.8rem 1.5rem;
}

.hero-contact-button-secondary {
	background: var(--bg-glass-strong);
	border: var(--border-glass-strong);
	color: var(--text-on-primary);
	font-weight: 600;
	padding: 0.8rem 1.5rem;
	backdrop-filter: blur(10px);
}

.hero-contact-image-wrapper {
	position: relative;
}

/* Terms page hero стилі */
.hero-terms {
	background: var(--hero-terms-gradient);
	position: relative;
	overflow: hidden;
	color: var(--text-on-primary);
	border-radius: 16px;
	margin: 2rem 0;
	padding: 3rem 2rem;
}

.hero-terms-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.1;
	background-image:
		radial-gradient(
			circle at 25% 50%,
			var(--text-on-primary) 1px,
			transparent 1px
		),
		radial-gradient(
			circle at 75% 30%,
			var(--text-on-primary) 1px,
			transparent 1px
		);
	background-size: 45px 45px;
}

.hero-terms-content {
	position: relative;
	z-index: 2;
}

.hero-terms-hgroup {
	margin-bottom: 2rem;
}

.hero-terms-subtitle {
	color: var(--text-muted-on-colored-light);
	margin-bottom: 0.5rem;
}

.hero-terms-title {
	font-size: 3rem;
	font-weight: 900;
	background: linear-gradient(45deg, var(--text-on-primary), #e8eaf6);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 1rem;
	line-height: 1.1;
}

.hero-terms-description {
	font-size: 1.1rem;
	color: var(--text-muted-on-colored-light);
	margin-bottom: 1rem;
}

.hero-terms-badge {
	color: var(--text-muted-on-colored);
	background: var(--bg-glass);
	padding: 0.5rem 1rem;
	border-radius: 20px;
	display: inline-block;
}

.hero-terms-stats {
	margin-bottom: 2rem;
	gap: 1rem;
}

.hero-terms-stat-card {
	background: var(--bg-glass-hover);
	padding: 1rem;
	border-radius: 12px;
	text-align: center;
	backdrop-filter: blur(10px);
}

.hero-terms-stat-icon {
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--text-on-primary);
}

.hero-terms-stat-label {
	color: var(--text-muted-on-colored);
}

.hero-terms-buttons {
	max-width: 400px;
}

.hero-terms-button-primary {
	background: var(--dev-accent-red);
	border: none;
	font-weight: 600;
	padding: 0.8rem 1.5rem;
}

.hero-terms-button-secondary {
	background: var(--bg-glass-strong);
	border: var(--border-glass-strong);
	color: var(--text-on-primary);
	font-weight: 600;
	padding: 0.8rem 1.5rem;
	backdrop-filter: blur(10px);
}

/* Privacy Policy page hero стилі */
.hero-privacy {
	background: var(--hero-privacy-gradient);
	position: relative;
	overflow: hidden;
	color: var(--text-on-primary);
	border-radius: 16px;
	margin: 2rem 0;
	padding: 3rem 2rem;
}

.hero-privacy-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.1;
	background-image:
		radial-gradient(
			circle at 40% 40%,
			var(--text-on-primary) 1px,
			transparent 1px
		),
		radial-gradient(
			circle at 60% 20%,
			var(--text-on-primary) 1px,
			transparent 1px
		);
	background-size: 55px 55px;
}

.hero-privacy-content {
	position: relative;
	z-index: 2;
}

.hero-privacy-hgroup {
	margin-bottom: 2rem;
}

.hero-privacy-subtitle {
	color: var(--text-muted-on-colored-light);
	margin-bottom: 0.5rem;
}

.hero-privacy-title {
	font-size: 3rem;
	font-weight: 900;
	background: linear-gradient(45deg, var(--text-on-primary), #e8f5e8);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 1rem;
	line-height: 1.1;
}

.hero-privacy-description {
	font-size: 1.1rem;
	color: var(--text-muted-on-colored-light);
	margin-bottom: 1rem;
}

.hero-privacy-badge {
	color: var(--text-muted-on-colored);
	background: var(--bg-glass);
	padding: 0.5rem 1rem;
	border-radius: 20px;
	display: inline-block;
}

.hero-privacy-stats {
	margin-bottom: 2rem;
	gap: 1rem;
}

.hero-privacy-stat-card {
	background: var(--bg-glass-hover);
	padding: 1rem;
	border-radius: 12px;
	text-align: center;
	backdrop-filter: blur(10px);
}

.hero-privacy-stat-icon {
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--text-on-primary);
}

.hero-privacy-stat-label {
	color: var(--text-muted-on-colored);
}

.hero-privacy-buttons {
	max-width: 400px;
}

.hero-privacy-button-primary {
	background: var(--dev-accent-red);
	border: none;
	font-weight: 600;
	padding: 0.8rem 1.5rem;
}

.hero-privacy-button-secondary {
	background: var(--bg-glass-strong);
	border: var(--border-glass-strong);
	color: var(--text-on-primary);
	font-weight: 600;
	padding: 0.8rem 1.5rem;
	backdrop-filter: blur(10px);
}

/* Thanks page hero стилі */
.hero-thanks {
	background: var(--hero-thanks-gradient);
	position: relative;
	overflow: hidden;
	color: var(--text-on-primary);
	border-radius: 16px;
	margin: 2rem 0;
	padding: 3rem 2rem;
	text-align: center;
}

.hero-thanks-pattern {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	opacity: 0.1;
	background-image:
		radial-gradient(
			circle at 30% 50%,
			var(--text-on-primary) 1px,
			transparent 1px
		),
		radial-gradient(
			circle at 70% 30%,
			var(--text-on-primary) 1px,
			transparent 1px
		);
	background-size: 40px 40px;
}

.hero-thanks-content {
	position: relative;
	z-index: 2;
}

.hero-thanks-icon {
	background: var(--bg-white-glass-strong);
	width: 120px;
	height: 120px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 2rem;
	box-shadow: var(--shadow-team);
	animation: pulse 2s infinite;
}

.hero-thanks-icon i {
	font-size: 4rem;
	color: var(--dev-accent-green);
	margin-right: 0;
}

.hero-thanks-title {
	font-size: 3rem;
	font-weight: 900;
	background: linear-gradient(45deg, var(--text-on-primary), #e8eaf6);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 1rem;
	line-height: 1.1;
}

.hero-thanks-description {
	font-size: 1.2rem;
	color: var(--text-muted-on-colored-light);
	margin: 1.5rem auto 2rem;
	max-width: 600px;
}

.hero-thanks-stats {
	margin: 2rem 0;
	gap: 1rem;
}

.hero-thanks-stat-card {
	background: var(--bg-glass-hover);
	padding: 1rem;
	border-radius: 12px;
	text-align: center;
	backdrop-filter: blur(10px);
}

.hero-thanks-stat-icon {
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--text-on-primary);
}

.hero-thanks-stat-label {
	color: var(--text-muted-on-colored);
}

.hero-thanks-buttons {
	max-width: 400px;
	margin: 0 auto;
}

.hero-thanks-button-primary {
	background: var(--dev-accent-red);
	border: none;
	font-weight: 600;
	padding: 0.8rem 1.5rem;
}

.hero-thanks-button-secondary {
	background: var(--bg-glass-strong);
	border: var(--border-glass-strong);
	color: var(--text-on-primary);
	font-weight: 600;
	padding: 0.8rem 1.5rem;
	backdrop-filter: blur(10px);
}

/* Колаж зображень для Hero секції index.html */
.hero-image-item-1 {
	background: url('img/6sAl6aQ4OWI.jpg') center/cover;
	border-radius: 16px;
	box-shadow: var(--shadow-strong);
	transition: transform 0.3s ease;
}

.hero-image-item-2 {
	background: url('img/dMUt0X3f59Q.jpg') center/cover;
	border-radius: 16px;
	box-shadow: var(--shadow-strong);
	transition: transform 0.3s ease;
	margin-top: 2rem;
}

.hero-image-item-3 {
	background: url('img/Fa9b57hffnM.jpg') center/cover;
	border-radius: 16px;
	box-shadow: var(--shadow-strong);
	transition: transform 0.3s ease;
	margin-top: -2rem;
}

.hero-image-item-4 {
	background: url('img/m_HRfLhgABo.jpg') center/cover;
	border-radius: 16px;
	box-shadow: var(--shadow-strong);
	transition: transform 0.3s ease;
}

.hero-play-button {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: var(--bg-white-glass-strong);
	backdrop-filter: blur(10px);
	border-radius: 50%;
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow-team);
}

.hero-play-button i {
	font-size: 2rem;
	color: var(--dev-primary);
}

/* Іконки у сервісах та секціях */
.service-icon,
.feature-icon {
	font-size: 2rem;
	color: var(--dev-primary);
}

.feature-icon-large {
	color: var(--dev-primary);
}

/* Зображення з border-radius */
.rounded-image {
	border-radius: 8px;
}

.rounded-image-large {
	border-radius: 12px;
}

/* Статистика з автоцентруванням для thanks */
.hero-thanks-stats {
	margin-bottom: 2rem;
	gap: 1rem;
	max-width: 400px;
	margin-left: auto;
	margin-right: auto;
}

/* Hover ефекти для колажу */
.hero-image-item-1:hover,
.hero-image-item-2:hover,
.hero-image-item-3:hover,
.hero-image-item-4:hover {
	transform: translateY(-5px);
}

/* Responsive покращення для Hero секцій */
@media (max-width: 768px) {
	.hero-container,
	.hero-about,
	.hero-services,
	.hero-faq,
	.hero-contact,
	.hero-terms,
	.hero-privacy,
	.hero-thanks {
		padding: 2rem 1rem !important;
		margin: 1rem 0 !important;
	}

	.hero-about-content,
	.hero-faq-content,
	.hero-contact-content,
	.hero-terms-content,
	.hero-privacy-content {
		padding: 2rem 1rem !important;
	}

	.hero-title,
	.hero-about-title,
	.hero-services-title,
	.hero-faq-title,
	.hero-contact_title,
	.hero-terms-title,
	.hero-privacy-title,
	.hero-thanks-title {
		font-size: 2rem !important;
	}

	.hero-services-buttons,
	.hero-faq-buttons,
	.hero-contact-buttons,
	.hero-terms-buttons,
	.hero-privacy-buttons,
	.hero-thanks-buttons {
		grid-template-columns: 1fr !important;
		gap: 1rem !important;
	}

	.hero-image-collage,
	.hero-about-image-collage {
		height: 250px !important;
	}

	.hero-thanks-icon {
		width: 80px !important;
		height: 80px !important;
	}

	.hero-thanks-icon i {
		font-size: 2.5rem !important;
	}
}

/* Клас для заміни me-2 та інших стилів іконок */
.icon-margin {
	margin-right: 0.5rem;
}

.me-1 {
	margin-right: 0.25rem;
}

.me-2 {
	margin-right: 0.5rem;
}

.icon-primary {
	color: var(--dev-primary);
}

.icon-gold {
	color: var(--dev-accent-gold);
}

.icon-turquoise {
	color: var(--dev-accent-turquoise);
}

.icon-green {
	color: var(--dev-accent-lime);
}

.icon-orange {
	color: var(--dev-accent-orange);
}

/* Клас для центрування з відступом */
.text-center-with-margin {
	text-align: center;
	margin-top: 2rem;
}

/* Малі іконки */
.small-icon {
	font-size: 1.5rem;
	color: var(--dev-primary);
}

/* ================================
   COOKIE CONSENT BANNER - PICO CSS STYLE
   ================================ */

.cookie-consent {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	opacity: 0;
	transform: translateY(100%);
	transition:
		opacity 0.3s ease,
		transform 0.3s ease;
}

.cookie-consent-container {
	background: var(--pico-card-background-color);
	border-top: 1px solid var(--pico-border-color);
	padding: 1.5rem;
	box-shadow: var(--shadow-cookie);
	backdrop-filter: blur(10px);
}

.cookie-consent-title {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--pico-color);
	margin-bottom: 1rem;
}

.cookie-consent-description {
	color: var(--pico-muted-color);
	margin-bottom: 2rem;
	line-height: 1.5;
}

.cookie-consent-description a {
	color: var(--dev-primary);
	text-decoration: underline;
}

.cookie-consent-buttons {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.cookie-consent-button {
	background: var(--dev-primary);
	color: var(--text-on-primary);
	border: none;
	padding: 0.75rem 1.5rem;
	border-radius: var(--pico-border-radius);
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 500;
	transition: background-color 0.2s ease;
	white-space: nowrap;
}

.cookie-consent-button:hover {
	background: var(--dev-primary-hover);
}

.cookie-consent-button:nth-child(2) {
	background: var(--dev-secondary);
	color: var(--text-on-secondary);
}

.cookie-consent-button:nth-child(2):hover {
	background: var(--dev-secondary-hover);
}

.cookie-consent-button:nth-child(3) {
	background: transparent;
	color: var(--pico-color);
	border: 1px solid var(--pico-border-color);
}

.cookie-consent-button:nth-child(3):hover {
	background: var(--pico-muted-border-color);
}

/* Customize cookies view */
.cookie-consent-back {
	color: var(--dev-primary);
	cursor: pointer;
	margin-bottom: 1rem;
	display: inline-flex;
	align-items: center;
	font-size: 0.875rem;
	transition: color 0.2s ease;
}

.cookie-consent-back:hover {
	color: var(--dev-primary-hover);
}

.cookie-consent-option {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	border-bottom: 1px solid var(--pico-muted-border-color);
}

.cookie-consent-option:last-of-type {
	border-bottom: none;
}

.cookie-consent-option-text {
	flex: 1;
	margin-right: 1rem;
}

.cookie-consent-subtitle {
	font-weight: 600;
	color: var(--pico-color);
	margin-bottom: 0.25rem;
}

.cookie-consent-description {
	color: var(--pico-muted-color);
	font-size: 0.875rem;
	margin-bottom: 0;
}

/* Toggle Switch */
.switch {
	position: relative;
	display: inline-block;
	width: 48px;
	height: 24px;
}

.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: var(--pico-muted-border-color);
	transition: 0.3s;
	border-radius: 24px;
}

.slider:before {
	position: absolute;
	content: '';
	height: 18px;
	width: 18px;
	left: 3px;
	bottom: 3px;
	background-color: var(--text-on-primary);
	transition: 0.3s;
	border-radius: 50%;
}

input:checked + .slider {
	background-color: var(--dev-primary);
}

input:disabled + .slider {
	opacity: 0.6;
	cursor: not-allowed;
}

input:checked + .slider:before {
	transform: translateX(24px);
}

.cookie-consent-save {
	margin-top: 1.5rem;
	text-align: center;
}

.cookie-consent-save button {
	background: var(--dev-primary);
	color: var(--text-on-primary);
	border: none;
	padding: 0.75rem 2rem;
	border-radius: var(--pico-border-radius);
	cursor: pointer;
	font-weight: 500;
	transition: background-color 0.2s ease;
}

.cookie-consent-save button:hover {
	background: var(--dev-primary-hover);
}

/* Responsive design */
@media (max-width: 768px) {
	.cookie-consent-container {
		padding: 1rem;
	}

	.cookie-consent-buttons {
		flex-direction: column;
	}

	.cookie-consent-button {
		width: 100%;
		text-align: center;
	}

	.cookie-consent-option {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.cookie-consent-option-text {
		margin-right: 0;
	}
}

/* ================================
   МОДУЛЬНА СИСТЕМА - СТИЛІ
   ================================ */

/* Нотифікації */
.notifications-container {
	position: fixed;
	top: 20px;
	right: 20px;
	z-index: 10000;
	max-width: 400px;
}

.notification {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem;
	margin-bottom: 0.75rem;
	border-radius: var(--pico-border-radius);
	background: var(--pico-background-color);
	border: 1px solid var(--pico-border-color);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transform: translateX(100%);
	opacity: 0;
	transition: all 0.3s ease;
}

.notification.show {
	transform: translateX(0);
	opacity: 1;
}

.notification.hide {
	transform: translateX(100%);
	opacity: 0;
}

.notification-success {
	border-left: 4px solid var(--dev-accent-green);
	background: color-mix(
		in srgb,
		var(--dev-accent-green) 5%,
		var(--pico-background-color)
	);
}

.notification-error {
	border-left: 4px solid var(--dev-accent-red);
	background: color-mix(
		in srgb,
		var(--dev-accent-red) 5%,
		var(--pico-background-color)
	);
}

.notification-warning {
	border-left: 4px solid var(--dev-accent-orange);
	background: color-mix(
		in srgb,
		var(--dev-accent-orange) 5%,
		var(--pico-background-color)
	);
}

.notification-info {
	border-left: 4px solid var(--dev-primary);
	background: color-mix(
		in srgb,
		var(--dev-primary) 5%,
		var(--pico-background-color)
	);
}

.notification-icon {
	font-size: 1.25rem;
	flex-shrink: 0;
}

.notification-message {
	flex: 1;
	font-size: 0.9rem;
	line-height: 1.4;
}

.notification-close {
	background: none;
	border: none;
	color: var(--pico-color);
	cursor: pointer;
	padding: 0.25rem;
	border-radius: 50%;
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	transition: background 0.2s ease;
	flex-shrink: 0;
}

.notification-close:hover {
	background: var(--pico-muted-border-color);
}

/* Анімації скролу */
.animate-on-scroll {
	opacity: 0;
	transform: translateY(30px);
	transition:
		opacity 0.6s ease,
		transform 0.6s ease;
}

.animate-in {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

/* Помилки форм */
.field-error {
	color: var(--dev-accent-red);
	font-size: 0.85rem;
	margin-top: 0.25rem;
	display: block;
}

input[aria-invalid='true'],
textarea[aria-invalid='true'] {
	border-color: var(--dev-accent-red);
	--pico-form-element-focus-color: var(--dev-accent-red);
}

/* Доступність - фокус клавіатури */
.keyboard-navigation button:focus,
.keyboard-navigation [role='button']:focus,
.keyboard-navigation input:focus,
.keyboard-navigation textarea:focus,
.keyboard-navigation select:focus,
.keyboard-navigation a:focus {
	outline: 2px solid var(--dev-primary);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--dev-primary) 20%, transparent);
}

/* Tooltips */
.tooltip {
	position: absolute;
	background: var(--pico-contrast);
	color: var(--pico-contrast-inverse);
	padding: 0.5rem 0.75rem;
	border-radius: var(--pico-border-radius);
	font-size: 0.875rem;
	white-space: nowrap;
	z-index: 1000;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Мобільна навігація */
.mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	font-size: 1.5rem;
	cursor: pointer;
	padding: 0.5rem;
}

@media (max-width: 768px) {
	.mobile-menu-toggle {
		display: block;
	}

	.mobile-menu {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--pico-background-color);
		border: 1px solid var(--pico-border-color);
		border-radius: var(--pico-border-radius);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
		z-index: 1000;
	}

	.mobile-menu.active {
		display: block;
	}

	.mobile-menu ul {
		flex-direction: column;
		padding: 1rem;
		margin: 0;
	}

	.mobile-menu li {
		margin: 0.5rem 0;
	}
}

/* Responsive нотифікації */
@media (max-width: 480px) {
	.notifications-container {
		left: 10px;
		right: 10px;
		max-width: none;
	}

	.notification {
		font-size: 0.85rem;
		padding: 0.75rem;
	}
}

/* Покращення контрасту для темної теми */
[data-theme='dark'] .notification {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

[data-theme='dark'] .field-error {
	color: #ff8a80;
}

[data-theme='dark'] input[aria-invalid='true'],
[data-theme='dark'] textarea[aria-invalid='true'] {
	border-color: #ff8a80;
	--pico-form-element-focus-color: #ff8a80;
}

/* Стилі завантаження */
.loading {
	position: relative;
	pointer-events: none;
}

.loading::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 20px;
	height: 20px;
	border: 2px solid var(--pico-muted-color);
	border-top: 2px solid var(--dev-primary);
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% {
		transform: translate(-50%, -50%) rotate(0deg);
	}
	100% {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

/* Покращення для навігації */
nav a.active {
	color: var(--dev-primary);
	font-weight: 600;
}

nav a.active::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--dev-primary);
	border-radius: 1px;
}

/* Плавні переходи для тем */
* {
	transition:
		color 0.3s ease,
		background-color 0.3s ease,
		border-color 0.3s ease;
}

button,
input,
textarea,
select {
	transition:
		color 0.3s ease,
		background-color 0.3s ease,
		border-color 0.3s ease,
		box-shadow 0.3s ease;
}
