:root {
	--transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.5s ease, transform 0.5s ease;
	--transition_sekcie: opacity 0.8s ease, transform 0.8s ease;
	--transition_progressbar: cubic-bezier(0.16, 1, 0.3, 1);

	--obsah_tien: 0 0.25rem 0.375rem -0.0625rem rgba(0, 0, 0, 0.1), 0 0.125rem 0.25rem -0.0625rem rgba(0, 0, 0, 0.06);
	--tabulky_tien: var(--obsah_tien), 0 0 0.9375rem rgba(91, 186, 71, 0.2);
	--tabulka: 1px solid rgba(91, 186, 71, 0.1);
	--tabulka_aktivna: rgba(91, 186, 71, 0.3);
	--tabulka_radius: 1rem;

	--box_tien: 0 10px 20px rgba(0, 0, 0, 0.1);
	--box_aktivny_tien: 0 15px 25px rgba(0, 0, 0, 0.15);
	--box_aktivny_posun: translateY(-5px);

	/* Hlavné farby */
	--farba_pozadia: #111827;
	--farba_textu: #f9f9f9;
	--farba_zelena: #5BBA47;

	--farba_cervena: #E53935;
	--farba_bronze: #CD7F32;
	--farba_silver: #C0C0C0;
	--farba_gold: #FFD700;
	--farba_platinum: #E5E4E2;

	--farba_pozadia_tabulky: rgba(255, 255, 255, 0.05);
	--farba_svetlo_seda: #484F4D;
	--farba_tmavo_seda: var(--farba_pozadia);
	--farba_biela: #ffffff;

	--scrollbar_normalny: var(--farba_zelena);
	--scrollbar_aktivny: var(--farba_zelena);
	--gradient_progressbar: linear-gradient(135deg, var(--farba_zelena) 0%, var(--farba_pozadia) 100%);

	--shadow_header: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);
	--shadow_footer: 0 -0.25rem 0.375rem rgba(0, 0, 0, 0.1);
}
.farba_zelena {
	color: var(--farba_zelena);
}
.farba_cervena {
	color: var(--farba_cervena);
}
.farba_bronze {
	color: var(--farba_bronze);
}
.farba_silver {
	color: var(--farba_silver);
}
.farba_gold {
	color: var(--farba_gold);
}
.farba_platinum {
	color: var(--farba_platinum);
}


/* Filter modrej farby */
body.blue-light-filter::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 9998;
	backdrop-filter: sepia(20%) brightness(95%);
	-webkit-backdrop-filter: sepia(20%) brightness(95%);
}
body.preload {
	overflow: hidden;
}


/* Nastavenie farby označenia textu */
::selection {
	background-color: var(--farba_zelena);
	color: var(--farba_biela);
}

/* Check Box */
input[type="checkbox"] {
	margin-right: 0.5rem;
	accent-color: var(--farba_zelena);
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-family: 'Outfit', 'Roboto', sans-serif;
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
}

body {
	background-color: var(--farba_pozadia);
	color: var(--farba_textu);
	overflow-x: hidden;
	transition: var(--transition);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Scrollbar */
::-webkit-scrollbar {
	width: 4px; /* px je vhodné ponechať */
}
::-webkit-scrollbar-track {
	background: transparent;
}
::-webkit-scrollbar-thumb {
	background: var(--scrollbar_normalny);
	border-radius: 0.25rem; /* 4px = 0.25rem */
}
::-webkit-scrollbar-thumb:hover {
	background: var(--scrollbar_aktivny);
}
@media (max-width: 64rem) { /* 1024px */
	::-webkit-scrollbar {
		display: none;
	}
	body, * {
		scrollbar-width: none;
		-ms-overflow-style: none;
		overflow: -moz-scrollbars-none;
		touch-action: manipulation;
		-webkit-overflow-scrolling: touch;
	}
}



/* ===== Loading Screen ===== */
.loading-screen {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--farba_pozadia);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	z-index: 99999;
	transition: opacity 0.4s ease;
}

.loading-screen.fade-out {
	opacity: 0;
}

.loading-logo-wrapper {
	margin-bottom: 10px;
	position: relative;
	padding: 0 5vw;
	box-sizing: border-box;
}
.loading-logo {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.loading-progress {
	width: 200px;
	height: 4px;
	background-color: rgba(0, 0, 0, 0.1);
	border-radius: var(--tabulka_radius);
	overflow: hidden;
	margin-bottom: 20px;
}

.loading-progress-bar {
	height: 100%;
	background-color: var(--farba_zelena);
	width: 0;
	transition: width 0.2s ease;
}

.loading-text {
	font-size: 14px;
	color: var(--farba_textu);
}



/* Responzívny kontajner */
#obsah {
	position: relative;
	z-index: 10;
	min-height: 80vh;
	max-width: min(80vw, 75rem); /* 1200px = 75rem */
	margin: 3.75rem auto; /* 60px = 3.75rem */
	padding: 1rem;
}
/* Tablet */
@media (max-width: 48rem) { /* 768px */
	#obsah {
		max-width: 90vw;		/* mierne širšie, ale nie úplne na šírku */
		margin: 2.5rem auto;	/* 40px = 2.5rem */
	}
}
/* Mobil */
@media (max-width: 30rem) {	/* 480px */
	#obsah {
		max-width: 100vw;		/* roztiahne na celú šírku zariadenia */
		margin: 0;				/* odstráni horizontálny margin */
		padding: 1rem 0.75rem;	/* 1.2rem ponechané */
		min-height: auto;		/* môžeš nastaviť podľa potreby */
	}
}

.obsah_okno {
	background-color: var(--farba_pozadia_tabulky);
	backdrop-filter: blur(10px);
	border: var(--tabulka);
	border-radius: var(--tabulka_radius);
	box-shadow: var(--obsah_tien);
	padding: 3rem;
	margin: 3rem auto 0 auto;

	transition: var(--transition_sekcie);
}

/* Telefóny (úzke) */
@media (max-width: 30rem) { /* 480px */
	.obsah_okno {
		background-color: transparent; /* transparentné pozadie */
		backdrop-filter: none;
		border: none;
		box-shadow: none;
		padding: 1.5rem; /* voliteľne zmenšiť */
		margin: 1rem auto 0 auto;
	}
}

.obsah_domov {
	background-color: transparent;
	padding: 3rem 0 0;
	margin: 3rem auto 0 auto;

	transition: var(--transition_sekcie);
}

.custom-link {
	cursor: pointer;
}

/* Progress Indicators */
.progress-bar {
	position: fixed;
	top: 0;
	left: 0;
	height: 0.125rem; /* 2px = 0.125rem */
	background: var(--gradient_progressbar);
	z-index: 9999;
	transition: width 0.3s var(--transition_progressbar);
}

/* Animated background */
.animated-background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: linear-gradient(135deg, var(--farba_tmavo_seda) 0%, #2A2F2E 50%, var(--farba_svetlo_seda) 100%);
	z-index: -9999;
}

/* Animated gradient overlay */
.gradient-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		45deg,
		rgba(16, 185, 129, 0.15) 0%,
		rgba(45, 55, 72, 0.25) 25%,
		rgba(52, 211, 153, 0.15) 50%,
		rgba(26, 32, 44, 0.25) 75%,
		rgba(16, 185, 129, 0.15) 100%
	);
	background-size: 400% 400%;
	animation: gradientShift 15s ease infinite;
	z-index: -8888;

	pointer-events: none;
	will-change: background-position;
	opacity: 0.9;
}

/* Animations */
@keyframes gradientShift {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}

/* Particles.js */
.particles-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -7777;
}

/* Header - Fixná výška */
header {
	background-color: transparent;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	transition: var(--transition);
	height: 3.75rem; /* 60px = 3.75rem */
	display: flex;
	align-items: center;
}

header.scrolled {
	background-color: var(--farba_pozadia);
	box-shadow: var(--shadow_header);
}

.header-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 2rem;
	max-width: 87.5rem; /* 1400px = 87.5rem */
	margin: 0 auto;
	width: 100%;
	height: 100%; /* Plná výška kontajnera */
}

.male_logo {
	margin: 0 auto;
	max-width: min(100%, 16.39rem); /* 262.2px */
	height: 5.85rem; /* 93.6px */

	background-image: url('../obrazky/logo/logo_pozdlzne_biele.svg');
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;

	transition: var(--transition);
}
.male_logo:hover {
	transform: scale(1.05);
}

.nav-links {
	display: flex;
	list-style: none;
	gap: 2rem;
	z-index: 10000;
}
.nav-links li a {
	text-decoration: none;
	color: var(--farba_textu);
	font-weight: 500;
	transition: var(--transition);
	position: relative;
	padding: 0.5rem 0;
}
.nav-links li a:hover {
	color: var(--farba_zelena);
}
.nav-links li a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 0.125rem; /* 2px */
	background-color: var(--farba_zelena);
	transition: var(--transition);
}
.nav-links li a:hover::after {
	width: 100%;
}
.nav-links a.active {
	color: var(--farba_zelena);
}
.nav-links a.active::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.125rem; /* 2px */
	background-color: var(--farba_zelena);
	transition: var(--transition);
}

.tooltip {
	position: absolute;
	bottom: -1.875rem; /* -30px */
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--farba_pozadia);
	color: var(--farba_textu);
	padding: 0.25rem 0.5rem;
	border-radius: 0.25rem; /* 4px */
	font-size: 0.75rem;
	opacity: 0;
	visibility: hidden;
	transition: var(--transition);
	white-space: nowrap;
	z-index: 10;
	border: 0.0625rem solid var(--farba_zelena); /* 1px */
	box-shadow: 0 0.125rem 0.3125rem rgba(0, 0, 0, 0.2); /* 2px 5px */
}
.language-selector button:hover .tooltip {
	opacity: 1;
	visibility: visible;
}

.language-selector {
	display: flex;
	gap: 0.5rem;
}
.language-selector button {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.25rem;
/*	border-radius: 50%;*/
	transition: var(--transition);
	position: relative;
}
.language-selector button img {
	width: 1.5rem; /* 24px */
	height: 1.5rem; /* 24px */
	border-radius: 50%;
	transition: var(--transition);
}
.language-selector button.active img {
	box-shadow: 0 0 0 0.125rem var(--farba_zelena); /* 2px */
}

.mobile-menu-btn {
	display: none;
	background: none;
	border: none;
	font-size: 0.9375rem; /* 15px */
	color: var(--farba_textu);
	cursor: pointer;
	transition: var(--transition);
}
.mobile-menu-btn:hover {
	color: var(--farba_zelena);
}

@media (max-width: 768px) {
	.nav-links {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background-color: var(--farba_pozadia);
		flex-direction: column;
		gap: 0;
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
		opacity: 0;
	}

	.nav-links.active {
		display: flex;
		flex-direction: column;
		max-height: none;
		opacity: 1;
	}

	.nav-links li {
		width: 100%;
		transform: translateY(-20px);
		opacity: 0;
		transition: transform 0.3s ease, opacity 0.3s ease;
	}

	.nav-links.active li {
		transform: translateY(0);
		opacity: 1;
	}

	.nav-links.active li:nth-child(1) { transition-delay: 0.1s; }
	.nav-links.active li:nth-child(2) { transition-delay: 0.2s; }
	.nav-links.active li:nth-child(3) { transition-delay: 0.3s; }
	.nav-links.active li:nth-child(4) { transition-delay: 0.4s; }
	.nav-links.active li:nth-child(5) { transition-delay: 0.5s; }

	.nav-links li a {
		display: block;
		padding: 1rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	}

	.nav-links li a::after {
		display: none;
	}

	.mobile-menu-btn {
		display: block;
	}

	.language-selector {
		margin-right: 1rem;
	}
}

/* Odkazy */
#odkazy {
	position: relative;
	z-index: 10;
	max-width: min(80vw, 75rem); /* 1200px = 75rem */
	margin: 0 auto 3.75rem; /* 60px = 3.75rem */
	padding: 1rem;
}
.odkazy_okno {
	background-color: var(--farba_pozadia_tabulky);
	backdrop-filter: blur(10px);
	border: var(--tabulka);
	border-radius: var(--tabulka_radius);
	box-shadow: var(--obsah_tien);
	padding: 1.0rem;

	transition: var(--transition_sekcie);
}
.odkazy {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	transition: var(--transition);
}
.odkazy_delic {
	color: var(--farba_textu);
}
.odkazy_link {
	cursor: pointer;
	text-decoration: none;
	color: var(--farba_textu);
	transition: var(--transition);
}
.odkazy_link:hover,
.odkazy_link:active {
	color: var(--farba_zelena);
}
.odkazy_link.active {
	color: var(--farba_zelena);
	font-weight: bold;
}
/* Tablet */
@media (max-width: 48rem) { /* 768px */
	#odkazy {
		max-width: 90vw;		/* mierne širšie, ale nie úplne na šírku */
		margin: 0 auto 2.5rem;	/* 40px = 2.5rem */
	}
	.odkazy {
		flex-direction: column; /* zalamovanie pod seba */
		gap: 0.25rem; /* trochu menší rozostup */
	}
	.odkazy_delic {
		display: none; /* skrytie " | " */
	}
}
/* Mobil */
@media (max-width: 30rem) {	/* 480px */
	#odkazy {
		max-width: 100vw;		/* roztiahne na celú šírku zariadenia */
		margin: 0;				/* odstráni horizontálny margin */
		padding: 1rem 0.75rem;	/* 1.2rem ponechané */
		min-height: auto;		/* môžeš nastaviť podľa potreby */
	}
	.odkazy_okno {
		background-color: transparent; /* transparentné pozadie */
		backdrop-filter: none;
		border: none;
		box-shadow: none;
		padding: 0.75rem; /* voliteľne zmenšiť */
	}
}

/* Footer */
footer {
	background-color: transparent;
	position: relative;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3.75rem;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	transition: var(--transition);
}
footer.scrolled {
	background-color: var(--farba_pozadia);
	box-shadow: var(--shadow_footer);
}
/* Mobil */
@media (max-width: 48rem) { /* 768px */
	footer {
		flex-direction: column;
		height: auto;
		padding: 1rem 0;
	}
	footer p {
		max-width: 90vw;
		word-wrap: break-word;
	}
}

/* Side Menus */
.side-menu {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	z-index: 90;
	height: 80vh;
	justify-content: space-between;
	padding: 2rem 0;
}

.left-menu {
	left: 0.625rem; /* 10px */

	transform: translate(-100px, -50%);
	animation: slideInLeft 1s forwards;
	animation-delay: 1.5s;
}
.right-menu {
	right: 0.625rem; /* 10px */

	transform: translate(100px, -50%);
	animation: slideInRight 1s forwards;
	animation-delay: 1.5s;
}

@keyframes slideInLeft {
	to { transform: translate(0, -50%); }
}
@keyframes slideInRight {
	to { transform: translate(0, -50%); }
}

.side-menu-top,
.side-menu-bottom {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.side-menu-center {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	align-items: center;
}

.side-menu-button {
	position: relative;
}

.side-menu-button button {
	width: 2.8125rem; /* 45px */
	height: 2.8125rem; /* 45px */
	border: var(--tabulka);
	border-radius: 50%;
	background-color: var(--farba_pozadia_tabulky);
	box-shadow: var(--obsah_tien);
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	transition: var(--transition);
	color: var(--farba_textu);
	position: relative;
	overflow: hidden;
}

.side-menu-button button:hover {
	background-color: var(--farba_zelena);
	color: var(--farba_biela);
	transform: scale(1.1);
}
#chat-btn.active {
	background-color: var(--farba_zelena);
	color: var(--farba_biela);
	transform: scale(1.1);
}

.side-menu-label {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background-color: var(--farba_pozadia);
	color: var(--farba_textu);
	padding: 0.5rem 0.75rem;
	border-radius: 0.25rem; /* 4px */
	font-size: 0.75rem;
	opacity: 0;
	visibility: hidden;
	transition: var(--transition);
	white-space: nowrap;
	z-index: 10;
	border: 0.0625rem solid var(--farba_zelena); /* 1px */
	box-shadow: 0 0.125rem 0.3125rem rgba(0, 0, 0, 0.2); /* 2px 5px */
}

.left-menu .side-menu-label {
	left: 3.4375rem; /* 55px */
}

.right-menu .side-menu-label {
	right: 3.4375rem; /* 55px */
}

.side-menu-button:hover .side-menu-label {
	opacity: 1;
	visibility: visible;
}

.social-icons {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

@media (max-width: 768px) {
	.left-menu,
	.right-menu {
		display: none !important;
	}
}


/* Responzívny header */
@media (max-width: 48rem) { /* 768px */
	header {
		height: 3.125rem; /* 50px */
	}
	.header-container {
		padding: 0 1rem;
	}
	.male_logo {
		width: 9.83rem; /* 157,32px */
		height: 3.51rem; /* 56,16px */
	}
	.nav-links {
		display: none;
	}
	.mobile-menu-btn {
		display: block;
	}
}



/* Language selector - mobil */
@media (max-width: 30rem) { /* 480px */
	.language-selector {
		gap: 0.25rem;
	}
	.language-selector button img {
		width: 1.25rem; /* 20px */
		height: 1.25rem;
	}
}


/* ===== Štýly pre tlačidla ===== */

/* Micro Interactions */
.pulse-animation {
	animation: pulse-effect 0.6s ease;
}

@keyframes pulse-effect {
	0% { transform: scale(1); }
	50% { transform: scale(1.2); }
	100% { transform: scale(1); }
}

/* Ripple Effect */
.ripple {
	position: absolute;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.4);
	transform: scale(0);
	animation: ripple 0.6s linear;
}

@keyframes ripple {
	to {
		transform: scale(4);
		opacity: 0;
	}
}

/* Confetti Effect */
#confetti-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 9998;
}

.confetti {
	position: absolute;
	top: -10px;
	animation: confetti-fall 5s linear forwards;
}

@keyframes confetti-fall {
	0% {
		transform: translateY(0) rotate(0deg);
		opacity: 1;
	}
	100% {
		transform: translateY(100vh) rotate(720deg);
		opacity: 0;
	}
}

/* ===== Mód prechodov ===== */
.mode-transition {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.2);
	z-index: 9997;
	opacity: 0;
	pointer-events: none;
	transition: var(--transition);
}

.mode-transition.active {
	opacity: 1;
}


/* ===== Filter Switch ===== */
.filter-switch {
	position: relative;
	overflow: hidden;
}

.filter-icon {
	transition: var(--transition);
}

.filter-icon.blue-light {
	opacity: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.filter-icon.normal {
	opacity: 1;
}

body.blue-light-filter .filter-icon.blue-light {
	opacity: 1;
}

body.blue-light-filter .filter-icon.normal {
	opacity: 0;
}

/* Vylepšené prechody medzi režimami */
body {
	transition: background-color 0.5s ease, color 0.5s ease, filter 0.5s ease;
}


/* ===== Notification ===== */
.notification-container {
	position: fixed;
	top: 100px;
	right: 5.5rem;
	z-index: 1001;
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 250px;
}
@media (max-width: 768px) {
	.notification-container {
		right: 50%;
		transform: translateX(50%);
		max-width: 80vw;
	}
}

.notification {
	background-color: var(--farba_pozadia);
	color: var(--farba_textu);
	padding: 15px 20px;
	border-radius: var(--tabulka_radius);
	box-shadow: var(--box_tien);
	display: flex;
	align-items: center;
	gap: 15px;
	transform: translateX(120%);
	opacity: 0;
	transition: var(--transition);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	border-left: 4px solid var(--farba_zelena);
}

.notification.show {
	transform: translateX(0);
	opacity: 1;
}

.notification-icon {
	font-size: 20px;
	color: var(--farba_zelena);
}

.notification-content {
	flex-grow: 1;
}

.notification-title {
	font-weight: 600;
	margin-bottom: 3px;
	font-size: 14px;
}

.notification-message {
	font-size: 12px;
	opacity: 0.8;
}

.notification-close {
	background: none;
	border: none;
	color: var(--farba_textu);
	cursor: pointer;
	font-size: 16px;
	opacity: 0.6;
	transition: var(--transition);
}

.notification-close:hover {
	opacity: 1;
	color: var(--farba_zelena);
}

/* Uživateľské rozhranie */
#user-controls {
	margin-top: 4px;
	display: flex;
	gap: 1rem;
}

#user-controls button {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.25rem;
	position: relative;
	transition: var(--transition);

	transform: scale(0.8);
	opacity: 0.7;
	color: var(--farba_textu);
}
#user-controls button.active {
	transform: scale(1.1);
	opacity: 1;
	color: var(--farba_zelena);
}


#user-controls button:hover .tooltip {
	opacity: 1;
	visibility: visible;
}
