/* Main styles for iLOT 2.0 */

:root {
	--ilot-blue: #0A3D73;
	--ilot-green: #3B8C3E;
	--ilot-dark: #121212;
	--ilot-light: #F8F9FA;
	
	--font-heading: 'Montserrat', sans-serif;
	--font-text: 'Inter', sans-serif;
}

/* CSS Reset */
*, *::before, *::after {
	box-sizing: border-box;
}

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
	margin: 0;
}

ul[role='list'], ol[role='list'] {
	list-style: none;
}

html:focus-within {
	scroll-behavior: smooth;
}

body {
	min-height: 100vh;
	text-rendering: optimizeSpeed;
	line-height: 1.5;
	font-family: var(--font-text);
	color: var(--ilot-dark);
	background-color: var(--ilot-light);
}

a:not([class]) {
	text-decoration-skip-ink: auto;
}

img, picture {
	max-width: 100%;
	display: block;
}

input, button, textarea, select {
	font: inherit;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 700;
	line-height: 1.2;
}

/* Global Premium Animated Background */
.global-animated-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: -1;
	overflow: hidden;
	background-color: var(--ilot-light);
	pointer-events: none;
}

.bg-blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(100px);
	opacity: 0.5;
	animation: floatBlob 20s infinite alternate ease-in-out;
	will-change: transform;
}

.bg-blob-blue {
	background-color: var(--ilot-blue);
	width: 50vw;
	height: 50vw;
	top: -10vw;
	left: -10vw;
	animation-duration: 25s;
}

.bg-blob-green {
	background-color: var(--ilot-green);
	width: 40vw;
	height: 40vw;
	bottom: -10vw;
	right: -5vw;
	animation-duration: 22s;
	animation-delay: -5s;
}

.bg-blob-accent {
	background-color: rgba(10, 61, 115, 0.3); /* Lighter blue */
	width: 35vw;
	height: 35vw;
	top: 40%;
	left: 30%;
	animation-duration: 28s;
	animation-delay: -12s;
}

.bg-noise-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)"/%3E%3C/svg%3E');
	opacity: 0.05;
	mix-blend-mode: overlay;
}

@keyframes floatBlob {
	0% {
		transform: translate(0, 0) scale(1);
	}
	33% {
		transform: translate(5vw, 10vh) scale(1.1);
	}
	66% {
		transform: translate(-5vw, 5vh) scale(0.9);
	}
	100% {
		transform: translate(10vw, -5vh) scale(1.05);
	}
}

/* ============================================
   HERO BACKGROUND (Customizer-driven)
   ============================================ */
.hero-section {
	position: relative;
	width: 100%;
	min-height: 100vh;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hero-bg-wrapper {
	position: absolute;
	top: 0; left: 0; width: 100%; height: 100%;
	z-index: -1;
	overflow: hidden;
}

.hero-bg-wrapper iframe,
.hero-bg-wrapper video {
	width: 100vw;
	height: 56.25vw; /* proporcja 16:9 */
	min-height: 100vh;
	min-width: 177.77vh; /* proporcja 16:9 */
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.hero-bg-wrapper .bg-img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

/* Nakładka (Overlay) dla czytelności tekstu */
.hero-bg-overlay {
	position: absolute;
	top: 0; left: 0; width: 100%; height: 100%;
	background: linear-gradient(to bottom, rgba(0,0,0,0.4), rgba(0,0,0,0.7));
	backdrop-filter: blur(2px); /* Delikatne rozmycie dla efektu luksusu */
	z-index: 0;
}

.hero-content {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 2rem;
	color: #fff;
}

/* Header */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	transition: background 0.4s ease, backdrop-filter 0.4s ease;
}

.site-header-inner {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 1rem 2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.site-logo {
	flex-shrink: 0;
	max-height: 80px;
	width: auto;
	display: flex;
	align-items: center;
}

.custom-logo-link {
	display: flex;
	align-items: center;
	text-decoration: none;
}

.custom-logo {
	max-height: 60px;
	width: auto;
	object-fit: contain;
	display: block;
	transition: all 0.3s ease;
	mix-blend-mode: multiply; /* Pomaga w przypadku logo z białym tłem */
}

/* PREMIUM LOGO WRAPPER */
.logo-premium-wrapper {
    position: relative;
    padding: 5px 15px;
    background: rgba(255, 255, 255, 0.03); /* Bardzo subtelne szkło */
    backdrop-filter: blur(5px);
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    /* Magiczna poświata iLOT green */
    box-shadow: 0 0 15px rgba(45, 134, 62, 0.1); 
}

.logo-premium-wrapper img {
    display: block;
    height: 50px; /* Dopasuj wysokość */
    width: auto;
    filter: drop-shadow(0 0 8px rgba(45, 134, 62, 0.3)); /* Lekki glow samego loga */
    transition: transform 0.5s ease;
}

/* EFEKT WOW PRZY NAJECHANIU */
.logo-premium-wrapper:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: var(--ilot-green);
    box-shadow: 0 0 25px rgba(45, 134, 62, 0.4); /* Mocniejszy neonowy glow */
    transform: translateY(-2px);
}

.logo-premium-wrapper:hover img {
    transform: scale(1.05);
    filter: drop-shadow(0 0 12px rgba(45, 134, 62, 0.6));
}

.site-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 20px;
	align-items: center;
	flex-wrap: nowrap;
}

.site-navigation a {
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 0.95rem; /* Slightly smaller for fit */
	color: #fff;
	text-decoration: none;
	white-space: nowrap; /* Prevent wrapping inside link */
	transition: color 0.3s ease;
}

.site-navigation a:hover {
	color: var(--ilot-green);
}

/* ============================================
   DROPDOWN MENU (.sub-menu) – Glassmorphism
   ============================================ */
.site-navigation .menu-item {
	position: relative;
}

/* Sub-menu flush to parent – NO gap so mouse can travel safely */
.site-navigation .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: rgba(10, 61, 115, 0.92);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 0 0 12px 12px;
	padding: 0.75rem 0 0.5rem;  /* top padding = visual offset */
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
	z-index: 100;
	list-style: none;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity 0.22s ease, transform 0.22s ease;
	pointer-events: none;
}

/* Invisible bridge: prevents gap between link and sub-menu */
.site-navigation .sub-menu::before {
	content: '';
	position: absolute;
	top: -16px;
	left: 0;
	width: 100%;
	height: 16px;
	display: block;
}

/* Trigger on li:hover (not on a:hover) – key fix */
.site-navigation .menu-item:hover > .sub-menu,
.site-navigation .menu-item:focus-within > .sub-menu {
	display: block;
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.site-navigation .sub-menu a {
	display: block;
	padding: 0.6rem 1.25rem;
	font-size: 0.95rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.85);
	border-radius: 8px;
	transition: background 0.2s ease, color 0.2s ease;
}

.site-navigation .sub-menu a:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

/* ── Current page / archive highlight ── */
.site-navigation .current-menu-item > a,
.site-navigation .current-menu-ancestor > a,
.site-navigation .current-post-type-ancestor > a {
	color: var(--ilot-green);
}

.site-navigation .sub-menu .current-menu-item > a {
	background: rgba(59, 140, 62, 0.18);
	color: #fff;
}

/* Caret indicator for parent items with children */
.site-navigation .menu-item-has-children > a {
	display: flex;
	align-items: center;
	gap: 6px;
}

.site-navigation .menu-item-has-children > a::after {
	content: '▾';
	font-size: 0.8em;
	opacity: 0.7;
	transition: transform 0.2s ease;
	display: block;
}

.site-navigation .menu-item-has-children:hover > a::after {
	transform: rotate(180deg);
}

/* ============================================
   MENU CONTACT BUTTON (.menu-item-contact)
   Admin: Appearance → Menus → CSS Classes → menu-item-contact
   ============================================ */
.site-navigation .menu-item-contact > a {
	background-color: var(--ilot-green);
	color: #fff !important;
	padding: 0.5rem 1.25rem;
	border-radius: 50px;
	font-weight: 700;
	transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.site-navigation .menu-item-contact > a:hover {
	background-color: #2e7031;
	box-shadow: 0 6px 20px rgba(59, 140, 62, 0.45);
	transform: translateY(-2px);
}

/* ============================================
   POLYLANG LANGUAGE SWITCHER
   ============================================ */
.lang-switcher {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-left: 1rem;
}

.lang-switcher ul,
.lang-switcher .wp-block-navigation__container {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0.4rem;
}

.lang-switcher a {
	display: inline-block;
	font-family: var(--font-heading);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	transition: color 0.2s ease, background 0.2s ease;
}

.lang-switcher a:hover,
.lang-switcher .current-lang a {
	color: #fff;
	background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 768px) {
	.lang-switcher {
		display: none;
	}
}

/* Hero Section */
.hero-section {
	position: relative;
	width: 100%;
	height: 100vh;
	min-height: 600px;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}

.hero-video-bg {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	transform: translateX(-50%) translateY(-50%);
	z-index: -2;
	object-fit: cover;
}

.hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(10, 61, 115, 0.5); /* using --ilot-blue with opacity */
	z-index: -1;
}

.hero-content {
	position: relative;
	z-index: 1;
	text-align: center;
	color: #fff;
	max-width: 800px;
	padding: 0 2rem;
}

.hero-title {
	font-size: 3.5rem;
	margin-bottom: 1rem;
	text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

.hero-subtitle {
	font-size: 1.5rem;
	font-weight: 400;
	margin-bottom: 2.5rem;
	font-family: var(--font-text);
	text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

.hero-cta {
	display: inline-block;
	background-color: var(--ilot-green);
	color: #fff;
	padding: 1rem 2.5rem;
	border-radius: 50px;
	text-decoration: none;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 1.125rem;
	transition: background-color 0.3s ease, transform 0.3s ease;
}

.hero-cta:hover {
	background-color: #2e7031;
	transform: translateY(-2px);
}

/* Layout & Utility */
.section-padding {
	padding: 80px 20px;
}

.text-center {
	text-align: center;
}

.dark-bg {
	background-color: var(--ilot-dark);
}

.section-title {
	font-size: 2.5rem;
	margin-bottom: 1.5rem;
	color: var(--ilot-blue);
}

.dark-bg .section-title {
	color: #fff;
}

.btn-primary {
	display: inline-block;
	background-color: var(--ilot-blue);
	color: #fff;
	padding: 0.75rem 2rem;
	border-radius: 50px;
	text-decoration: none;
	font-family: var(--font-heading);
	font-weight: 600;
	transition: background-color 0.3s ease, transform 0.3s ease;
}

.btn-primary:hover {
	background-color: var(--ilot-green);
	transform: translateY(-2px);
}

/* About Region */
.about-region {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
}

.about-text {
	font-size: 1.125rem;
	color: #555;
}

.about-region-image img {
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
	object-fit: cover;
	width: 100%;
	height: auto;
}

.about-region-image .image-placeholder {
	width: 100%;
	min-height: 400px;
	background-color: #e0e0e0;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}

/* Mission Grid */
.mission-section .mission-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
	max-width: 1200px;
	margin: 0 auto;
}

.mission-card {
	background: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 12px;
	padding: 2rem;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.mission-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 15px 40px rgba(0,0,0,0.1);
}

/* PANCERNA NAPRAWA KOLORU IKON W MISJI */
.mission-grid .mission-icon {
    color: var(--ilot-green) !important; /* Wymuś kolor dla Dashicons */
    font-size: 40px; /* Zapewnij stałą wielkość dla wszystkich */
    display: inline-flex;
    margin-bottom: 15px;
}

/* Upewnij się, że SVG świerka (i inne ewentualne SVG) też to łapią */
.mission-grid .mission-icon svg {
    fill: var(--ilot-green) !important; /* Wymuś fill dla wszystkich SVG */
    width: 40px;
    height: 40px;
    display: block;
}

.mission-card:hover .mission-icon svg {
    transform: scale(1.1);
    transition: transform 0.2s ease-in-out;
}

.mission-title {
	font-size: 1.25rem;
	color: var(--ilot-blue);
	margin-bottom: 0.75rem;
}

.mission-desc {
	color: #555;
	font-size: 1rem;
}

/* Events Grid */
.events-section {
	max-width: 1200px;
	margin: 0 auto;
}

.events-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 30px;
}

.event-card {
	background: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex;
	flex-direction: column;
}

.event-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 15px 40px rgba(0,0,0,0.1);
}

.event-thumbnail {
	width: 100%;
	height: 200px;
	overflow: hidden;
	position: relative;
}

.event-bg-image {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.event-card:hover .event-bg-image {
	transform: scale(1.05);
}

.thumbnail-placeholder {
	width: 100%;
	height: 100%;
	background-color: rgba(220, 224, 228, 0.4);
}

.event-content {
	padding: 1.5rem;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.event-title {
	font-size: 1.25rem;
	color: var(--ilot-blue);
	margin-bottom: 0.5rem;
}

.event-excerpt {
	color: #555;
	margin-bottom: 1.5rem;
	flex-grow: 1;
}

.event-link {
	color: var(--ilot-green);
	font-weight: 600;
	text-decoration: none;
	align-self: flex-start;
	transition: color 0.3s ease;
}

.event-link:hover {
	color: var(--ilot-blue);
}

/* Responsive */
@media (max-width: 768px) {
	.about-region {
		grid-template-columns: 1fr;
	}
	
	.section-padding {
		padding: 50px 20px;
	}
	
}

/* Page / Single Templates */
.page-header {
	background-color: var(--ilot-blue);
	background-image: linear-gradient(rgba(10, 61, 115, 0.6), rgba(18, 18, 18, 0.7)), url('https://ilot.sadeckiegoryfci.pl/wp-content/uploads/2026/03/69A1475-scaled.jpg') !important;
	background-size: cover !important;
	background-position: center center !important;
	background-attachment: fixed;
	background-repeat: no-repeat !important;
	height: 40vh;
	min-height: 320px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding-top: 80px;
	gap: 1.25rem;
}

.page-header .page-title {
	color: #ffffff;
	font-size: 3.5rem;
	margin: 0;
	padding: 0 20px;
	font-family: var(--font-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
}

/* Green accent line under page title */
.page-header::after {
	content: '';
	display: block;
	width: 80px;
	height: 4px;
	background-color: var(--ilot-green);
	border-radius: 4px;
	margin: 0 auto;
}

/* ============================================
   PAGE BACKGROUND SYSTEM
   ============================================ */

/* Base wrapper: full-page photo bg */
.page-body-wrap {
	position: relative;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-repeat: no-repeat;
	padding: 60px 20px 80px;
}

/* Dark overlay on photo bg */
.page-body-wrap::before {
	content: '';
	position: absolute;
	inset: 0;
	background-color: rgba(18, 18, 18, 0.3);
	z-index: 0;
}

/* Page-specific backgrounds */
.o-nas-bg {
	background-image: url('https://ilot.sadeckiegoryfci.pl/wp-content/uploads/2026/03/dji_fly_20250203_131510_866_1738587651738_photo-scaled.jpg');
}

.ilot-bg {
	background-image: url('https://ilot.sadeckiegoryfci.pl/wp-content/uploads/2026/03/AdobeStock_754506797-scaled.jpeg');
}

.kontakt-bg {
	background-image: url('https://ilot.sadeckiegoryfci.pl/wp-content/uploads/2026/03/469439865_957205003122855_4212725296735648057_n.jpg');
}

.generic-page-bg {
	background-image: url('https://ilot.sadeckiegoryfci.pl/wp-content/uploads/2026/03/AdobeStock_754506797-scaled.jpeg');
}

/* Glassmorphism content card */
.content-card {
	position: relative;
	z-index: 1;
	max-width: 1000px;
	margin: 0 auto;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-radius: 20px;
	border: 1px solid rgba(255, 255, 255, 0.6);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
	padding: 3rem 3.5rem;
}

.content-card h2, .content-card h3, .content-card h4 {
	font-family: var(--font-heading);
	color: var(--ilot-dark);
	margin-top: 2rem;
	margin-bottom: 1rem;
}

.content-card p {
	color: #333;
	line-height: 1.8;
	margin-bottom: 1.25rem;
}

.content-card img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

@media (max-width: 768px) {
	.content-card {
		padding: 2rem 1.5rem;
		border-radius: 12px;
	}

	.page-body-wrap {
		background-attachment: scroll;
		padding: 40px 16px 60px;
	}
}

.container {
	max-width: 1000px;
	margin: 60px auto;
	padding: 0 20px;
}

.page-content {
	font-size: 1.1rem;
	line-height: 1.8;
	color: #333;
}

.page-content p {
	margin-bottom: 1.5rem;
}

.page-content h2,
.page-content h3,
.page-content h4,
.page-content h5,
.page-content h6 {
	font-family: var(--font-heading);
	color: var(--ilot-dark);
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

.page-content h2 { font-size: 2rem; }
.page-content h3 { font-size: 1.5rem; }

.page-content ul,
.page-content ol {
	margin-bottom: 1.5rem;
	padding-left: 2rem;
}

.page-content li {
	margin-bottom: 0.5rem;
}

.page-content img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.05);
	margin-bottom: 1.5rem;
}

.post-meta {
	font-size: 0.95rem;
	color: #777;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #eaeaea;
}

.post-categories a {
	color: var(--ilot-green);
	text-decoration: none;
	font-weight: 500;
}

.post-categories a:hover {
	color: var(--ilot-blue);
}

/* Custom Static Templates - UX Copywriting */
.intro-section {
	font-size: 1.25rem;
	line-height: 1.8;
	text-align: center;
	color: var(--ilot-dark);
	max-width: 800px;
	margin: 0 auto;
	font-weight: 500;
}

.intro-section p {
	margin-bottom: 0;
}

/* Category Grid (iLOT Page) */
.category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
}

.category-card {
	background-color: var(--ilot-green);
	border-radius: 12px;
	padding: 3rem 2rem;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
	transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
	min-height: 150px;
}

.category-card:hover {
	background-color: var(--ilot-blue);
	transform: translateY(-5px);
	box-shadow: 0 15px 40px rgba(0,0,0,0.1);
}

.category-title {
	color: #fff !important;
	margin: 0 !important;
	font-size: 1.5rem;
}

/* Contact Section */
.contact-section {
	margin-top: 40px;
	margin-bottom: 60px;
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 40px;
	align-items: flex-start;
}

.contact-cards {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.contact-card {
	background-color: var(--ilot-light);
	padding: 2rem;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
	text-align: center;
}

.contact-title {
	font-size: 1.25rem;
	color: var(--ilot-blue);
	margin-bottom: 0.75rem;
	font-family: var(--font-heading);
	margin-top: 0;
}

.contact-card p {
	margin: 0;
	color: #555;
	line-height: 1.6;
}

.contact-link {
	color: var(--ilot-blue);
	text-decoration: none;
	font-weight: 600;
	font-size: 1.1rem;
	transition: color 0.3s ease;
}

.contact-link:hover {
	color: var(--ilot-green);
}

.contact-map {
	border-radius: 12px;
	overflow: hidden;
	height: 100%;
}

.contact-map iframe {
	display: block;
	height: 100%;
	min-height: 400px;
}

@media (max-width: 768px) {
	.contact-grid {
		grid-template-columns: 1fr;
	}
	.contact-map iframe {
		min-height: 300px;
	}
}

/* ============================================
   PREMIUM EFFECTS & ANIMATIONS
   ============================================ */

/* Green Glow CTA */
.hero-cta {
	box-shadow: 0 0 0 0 rgba(59, 140, 62, 0);
	transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.4s ease;
}

.hero-cta:hover {
	background-color: #2e7031;
	transform: translateY(-3px);
	box-shadow: 0 8px 30px rgba(59, 140, 62, 0.55);
}

/* Scroll Fade-In Animation */
.fade-in-ready {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.fade-in-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Individual card stagger */
.mission-grid .mission-card:nth-child(2),
.events-grid .event-card:nth-child(2) {
	transition-delay: 0.1s;
}

.mission-grid .mission-card:nth-child(3),
.events-grid .event-card:nth-child(3) {
	transition-delay: 0.2s;
}

.mission-grid .mission-card:nth-child(4) { transition-delay: 0.3s; }
.mission-grid .mission-card:nth-child(5) { transition-delay: 0.4s; }
.mission-grid .mission-card:nth-child(6) { transition-delay: 0.5s; }

/* Header scroll state — adds white solid bg on non-hero pages or when scrolled */
.header-scrolled {
	background: rgba(10, 61, 115, 0.95) !important;
	backdrop-filter: blur(20px) !important;
	-webkit-backdrop-filter: blur(20px) !important;
	border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

/* ============================================
   MOBILE HAMBURGER NAVIGATION
   ============================================ */
.hamburger-btn {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	background: transparent;
	border: 2px solid rgba(255,255,255,0.5);
	border-radius: 8px;
	cursor: pointer;
	padding: 8px;
	transition: border-color 0.3s ease;
}

.hamburger-btn:hover {
	border-color: rgba(255,255,255,0.9);
}

.hamburger-line {
	display: block;
	width: 22px;
	height: 2px;
	background: #fff;
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

/* X animation */
.hamburger-btn.is-active .hamburger-line:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.hamburger-btn.is-active .hamburger-line:nth-child(2) {
	opacity: 0;
}

.hamburger-btn.is-active .hamburger-line:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 768px) {
	.hamburger-btn {
		display: flex;
	}

	.site-navigation {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background: rgba(10, 61, 115, 0.97);
		backdrop-filter: blur(20px);
		-webkit-backdrop-filter: blur(20px);
		padding: 1.5rem 2rem;
	}

	.site-navigation.nav-open {
		display: block;
	}

	.site-navigation ul {
		flex-direction: column;
		gap: 1rem;
	}

	.hero-title {
		font-size: 2.5rem;
	}

	.hero-subtitle {
		font-size: 1.2rem;
	}

	.page-header .page-title {
		font-size: 1.8rem;
	}

	.section-title {
		font-size: 2rem;
	}

	.site-header {
		position: fixed;
	}

	/* Mobile: disable parallax on page-header for performance (iOS bug fix) */
	.page-header {
		background-attachment: scroll;
		height: 35vh;
		min-height: 280px;
	}

	.page-header .page-title {
		font-size: 2rem;
		letter-spacing: 1px;
	}

	/* Mobile logo switching */
	.logo-desktop {
		display: none;
	}

	.logo-mobile {
		display: block;
	}
}

/* ============================================
   SCROLL-REVEAL
   ============================================ */
.reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.reveal.active {
	opacity: 1;
	transform: translateY(0);
}

/* ============================================
   3D ANTIGRAVITY CARD BASELINE
   ============================================ */
.mission-card,
.event-card {
	transform-style: preserve-3d;
	will-change: transform;
	transition: transform 0.12s ease-out, box-shadow 0.3s ease;
}

/* ============================================
   CTA PULSE ANIMATION
   ============================================ */
@keyframes cta-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(59, 140, 62, 0.6); }
	70%  { box-shadow: 0 0 0 18px rgba(59, 140, 62, 0); }
	100% { box-shadow: 0 0 0 0 rgba(59, 140, 62, 0); }
}

.hero-cta {
	animation: cta-pulse 2.4s ease-out infinite;
}

/* ============================================
   DARK SKY SECTION – Izerskie Niebo
   ============================================ */
@keyframes twinkle {
	0%, 100% { opacity: 0.3; }
	50%       { opacity: 1; }
}

.dark-sky-section {
	position: relative;
	background-color: #050a0f;
	overflow: hidden;
	padding: 120px 20px;
	text-align: center;
	isolation: isolate;
}

/* Star layers using multiple box-shadows */
.stars-layer {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

/* Small stars */
.stars-small {
	background-image:
		radial-gradient(1px 1px at 12% 8%,  rgba(255,255,255,0.9) 0%, transparent 100%),
		radial-gradient(1px 1px at 25% 42%, rgba(255,255,255,0.7) 0%, transparent 100%),
		radial-gradient(1px 1px at 48% 15%, rgba(255,255,255,0.8) 0%, transparent 100%),
		radial-gradient(1px 1px at 62% 71%, rgba(255,255,255,0.6) 0%, transparent 100%),
		radial-gradient(1px 1px at 75% 28%, rgba(255,255,255,0.9) 0%, transparent 100%),
		radial-gradient(1px 1px at 83% 60%, rgba(255,255,255,0.7) 0%, transparent 100%),
		radial-gradient(1px 1px at 91% 20%, rgba(255,255,255,0.8) 0%, transparent 100%),
		radial-gradient(1px 1px at 7%  80%, rgba(255,255,255,0.5) 0%, transparent 100%),
		radial-gradient(1px 1px at 33% 90%, rgba(255,255,255,0.7) 0%, transparent 100%),
		radial-gradient(1px 1px at 55% 55%, rgba(255,255,255,0.6) 0%, transparent 100%),
		radial-gradient(1px 1px at 18% 34%, rgba(255,255,255,0.8) 0%, transparent 100%),
		radial-gradient(1px 1px at 70% 45%, rgba(255,255,255,0.5) 0%, transparent 100%),
		radial-gradient(1px 1px at 40% 68%, rgba(255,255,255,0.7) 0%, transparent 100%),
		radial-gradient(1px 1px at 88% 85%, rgba(255,255,255,0.6) 0%, transparent 100%),
		radial-gradient(1px 1px at 3%  50%, rgba(255,255,255,0.8) 0%, transparent 100%),
		radial-gradient(1px 1px at 95% 10%, rgba(255,255,255,0.7) 0%, transparent 100%);
	background-size: 100% 100%;
	animation: twinkle 3s ease-in-out infinite alternate;
	animation-delay: 0s;
}

/* Medium stars – brighter, slower twinkle */
.stars-medium {
	background-image:
		radial-gradient(1.5px 1.5px at 20% 25%, rgba(255,255,255,1)   0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 43% 60%, rgba(200,220,255,0.9) 0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 68% 12%, rgba(255,255,255,0.9) 0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 80% 75%, rgba(200,220,255,1)   0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 10% 65%, rgba(255,255,255,0.9) 0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 58% 88%, rgba(200,220,255,0.8) 0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 30% 5%,  rgba(255,255,255,1)   0%, transparent 100%),
		radial-gradient(1.5px 1.5px at 92% 48%, rgba(200,220,255,0.9) 0%, transparent 100%);
	background-size: 100% 100%;
	animation: twinkle 5s ease-in-out infinite alternate;
	animation-delay: 1.2s;
}

/* Large bright stars – slowest */
.stars-large {
	background-image:
		radial-gradient(2px 2px at 15% 72%, rgba(255,248,200,1)   0%, transparent 100%),
		radial-gradient(2px 2px at 38% 22%, rgba(255,255,255,1)   0%, transparent 100%),
		radial-gradient(2px 2px at 72% 55%, rgba(200,240,255,1)   0%, transparent 100%),
		radial-gradient(2px 2px at 85% 33%, rgba(255,248,200,0.9) 0%, transparent 100%),
		radial-gradient(3px 3px at 50% 40%, rgba(255,255,255,1)   0%, transparent 100%);
	background-size: 100% 100%;
	animation: twinkle 7s ease-in-out infinite alternate;
	animation-delay: 0.6s;
}

/* Dark Sky content */
.dark-sky-content {
	position: relative;
	z-index: 1;
	max-width: 800px;
	margin: 0 auto;
}

.dark-sky-eyebrow {
	display: inline-block;
	font-family: var(--font-heading);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--ilot-green);
	margin-bottom: 1.25rem;
}

.dark-sky-heading {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.2;
	margin: 0 0 1.5rem;
}

.dark-sky-heading span {
	color: #a0c4ff;
}

.dark-sky-subtext {
	font-size: 1.1rem;
	color: rgba(255,255,255,0.65);
	line-height: 1.8;
	max-width: 600px;
	margin: 0 auto 2.5rem;
}

.dark-sky-cta {
	background-color: transparent !important;
	border: 2px solid var(--ilot-green);
	color: var(--ilot-green) !important;
	animation: none !important;
}

.dark-sky-cta:hover {
	background-color: var(--ilot-green) !important;
	color: #fff !important;
	box-shadow: 0 8px 30px rgba(59, 140, 62, 0.55) !important;
}

@media (max-width: 768px) {
	.dark-sky-section {
		padding: 80px 20px;
	}
}


/* ============================================
   ARCHIVE BENTO GRID CARDS
   ============================================ */
.archive-bento-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 2rem;
	margin-bottom: 3rem;
}

.bento-card {
	background: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	will-change: transform;
}

.bento-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.14);
}

.bento-card-thumb {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.bento-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.bento-card:hover .bento-card-img {
	transform: scale(1.05);
}

.bento-card-body {
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	flex: 1;
}

.bento-card-type {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ilot-green);
}

.bento-card-title {
	font-family: var(--font-heading);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.35;
	margin: 0;
}

.bento-card-title a {
	color: var(--ilot-dark);
	text-decoration: none;
	transition: color 0.2s ease;
}

.bento-card-title a:hover { color: var(--ilot-blue); }

.bento-card-excerpt {
	font-size: 0.95rem;
	color: #666;
	line-height: 1.65;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bento-card-link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.9rem;
	font-weight: 700;
	font-family: var(--font-heading);
	color: var(--ilot-blue);
	text-decoration: none;
	margin-top: auto;
	transition: color 0.2s ease, gap 0.2s ease;
}

.bento-card-link:hover { color: var(--ilot-green); gap: 0.6rem; }

/* ── BENTO CARD WITH DYNAMIC PHOTO BACKGROUND ── */
.bento-card-bg {
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-color: #0A3D73; /* fallback = --ilot-blue */
	aspect-ratio: 4 / 3;
	position: relative !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	border-radius: 20px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.bento-card-bg.no-thumb {
	background-image: none !important;
	background: linear-gradient(135deg, var(--ilot-blue) 0%, #0d2e57 100%) !important;
}

.bento-card-bg:hover {
	transform: scale(1.03);
	box-shadow: 0 16px 40px rgba(0,0,0,0.3);
}

.bento-card-bg::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.3) 55%, transparent 100%);
	z-index: 0;
	border-radius: inherit;
	pointer-events: none;
}

.bento-card-bg .bento-card-body {
	position: relative;
	z-index: 1;
	min-height: 340px;
	justify-content: flex-end;
	gap: 0.5rem;
}

.bento-card-bg .bento-card-title a,
.bento-card-bg .bento-card-excerpt {
	color: #ffffff !important;
	text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

.bento-card-bg .bento-card-title a:hover { color: var(--ilot-green) !important; }

.bento-card-bg .bento-card-type { color: #ffffffcc; }

.bento-card-bg .bento-card-link {
	color: var(--ilot-green);
}

.bento-card-bg .bento-card-link:hover { color: #ffffff; }

.archive-subtitle {
	font-size: 1.05rem;
	color: rgba(255,255,255,0.75);
	margin-top: 0.5rem;
	max-width: 600px;
	margin: 0.5rem auto 0;
}

.nav-links { display: flex; justify-content: center; gap: 0.5rem; flex-wrap: wrap; margin-top: 3rem; }

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--ilot-dark);
	background: #fff;
	border: 1px solid rgba(10, 61, 115, 0.15);
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.page-numbers.current, .page-numbers:hover {
	background: var(--ilot-blue);
	color: #fff;
	border-color: var(--ilot-blue);
}

.gallery-tile:hover img { transform: scale(1.06); }

@media (max-width: 768px) {
	.archive-bento-grid { grid-template-columns: 1fr; }
}

/* ============================================
   MAPA REGIONU (LEAFLET)
   ============================================ */

#map-interface {
    display: flex;
    flex-direction: row;
    height: calc(100vh - 80px); /* Adjust for header height */
    width: 100%;
    background: var(--ilot-light);
    overflow: hidden;
    position: relative;
    z-index: 10;
}

.map-sidebar {
    width: 340px;
    background: #fff;
    box-shadow: 2px 0 20px rgba(0,0,0,0.08);
    z-index: 1000;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.map-sidebar-content {
    padding: 2.5rem 2rem;
}

.map-sidebar-content h2 {
    font-size: 1.5rem;
    color: var(--ilot-blue);
    margin-bottom: 0.5rem;
    margin-top: 0;
    font-weight: 700;
}

.map-sidebar-content p {
    color: #666;
    margin-bottom: 2rem;
    font-size: 0.95rem;
    line-height: 1.6;
}

.map-container {
    flex-grow: 1;
    height: 100%;
    position: relative;
}

#region-map {
    width: 100%;
    height: 100%;
    z-index: 1; /* Keep map under sidebar/popups */
}

/* Switches */
.map-filters {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.filter-switch {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: 500;
    user-select: none;
    transition: opacity 0.2s ease;
}

.filter-switch:hover {
    opacity: 0.8;
}

.filter-switch input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.switch-slider {
    position: relative;
    width: 48px;
    height: 26px;
    background-color: #e2e8f0;
    border-radius: 26px;
    margin-right: 14px;
    transition: background-color 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
    flex-shrink: 0;
}

.switch-slider::before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

/* Base states if unchecked fallback */
.filter-switch input:checked + .switch-slider {
    background-color: var(--ilot-blue);
}

/* Specific colors */
.filter-switch input#filter-attraction:checked + .switch-slider { background-color: var(--ilot-blue); }
.filter-switch input#filter-accommodation:checked + .switch-slider { background-color: #f39c12; }
.filter-switch input#filter-gastronomy:checked + .switch-slider { background-color: #e74c3c; }
.filter-switch input#filter-trail:checked + .switch-slider { background-color: var(--ilot-green); }

.filter-switch input:checked + .switch-slider::before {
    transform: translateX(22px);
}

.filter-label {
    color: var(--ilot-dark);
    font-size: 1.05rem;
    font-family: var(--font-heading);
    font-weight: 600;
}

/* Custom Markers */
.map-marker {
    width: 44px;
    height: 44px;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 3px 6px 15px rgba(0,0,0,0.25);
    border: 3px solid #fff;
    color: #fff;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.map-marker:hover {
    transform: rotate(-45deg) scale(1.1);
    box-shadow: 4px 8px 20px rgba(0,0,0,0.3);
    z-index: 1000 !important;
}

.map-marker span {
    transform: rotate(45deg); /* Counter-rotate icon */
    font-size: 20px;
    width: 20px;
    height: 20px;
    line-height: 1;
}

.marker-attraction { background-color: var(--ilot-blue); }
.marker-accommodation { background-color: #f39c12; }
.marker-gastronomy { background-color: #e74c3c; }
.marker-trail { background-color: var(--ilot-green); }

/* Glassmorphism Popup Styles Override */
.glassmorphism-popup .leaflet-popup-content-wrapper {
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
    padding: 0;
    overflow: hidden;
}

.glassmorphism-popup .leaflet-popup-content {
    margin: 0;
    width: 260px !important;
}

/* Hide default popup tip or style it completely differently */
.glassmorphism-popup .leaflet-popup-tip-container {
    display: none; /* Removed the classic pointy tip for cleaner look */
}

/* Luxe Popup Content Layout */
.luxe-popup {
    display: flex;
    flex-direction: column;
    padding-bottom: 0.5rem;
}

.popup-thumb {
    width: 100%;
    height: 150px;
    overflow: hidden;
    position: relative;
    background: #f0f0f0;
}

.popup-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.luxe-popup:hover .popup-thumb img {
    transform: scale(1.08); /* slight zoom on hover within popup */
}

.popup-content {
    padding: 1.25rem 1.25rem 0.75rem;
    text-align: center;
}

.popup-content h3 {
    margin: 0 0 1rem 0;
    font-size: 1.15rem;
    color: var(--ilot-dark);
    font-family: var(--font-heading);
    line-height: 1.3;
    font-weight: 700;
}

.btn-popup {
    display: inline-block;
    background: var(--ilot-green);
    color: #fff !important;
    text-decoration: none;
    padding: 0.6rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    transition: background 0.3s ease, transform 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
    box-sizing: border-box;
}

.btn-popup:hover {
    background: var(--ilot-blue);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(10, 61, 115, 0.3);
}

/* Leaflet control tweaks to fit design */
.leaflet-bar {
    border: none !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1) !important;
}

.leaflet-bar a {
    background-color: rgba(255, 255, 255, 0.9) !important;
    backdrop-filter: blur(5px);
    color: var(--ilot-dark) !important;
    width: 36px !important;
    height: 36px !important;
    line-height: 36px !important;
    border-radius: 8px !important;
    transition: background 0.2s ease, color 0.2s ease !important;
}

.leaflet-bar a:hover {
    background-color: var(--ilot-blue) !important;
    color: #fff !important;
}

.leaflet-control-zoom-in { border-bottom: 1px solid rgba(0,0,0,0.05) !important; border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.leaflet-control-zoom-out { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }

/* Responsive Layout */
@media (max-width: 900px) {
    #map-interface {
        flex-direction: column;
        height: auto;
    }
    
    .map-sidebar {
        width: 100%;
        max-height: auto;
        box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        z-index: 10;
        border-bottom: 1px solid #eee;
    }

    .map-sidebar-content {
        padding: 1.5rem;
    }

    .map-filters {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 1rem;
    }
    
    .filter-switch {
        width: calc(50% - 0.5rem);
    }
    
    .map-container {
        height: 60vh;
        min-height: 400px;
    }
}

/* ============================================================
   MISSION CINEMATIC — Kinetic Triple-Card (Expandable Pylons)
   ============================================================ */

.mission-cinematic {
	position: relative;
	width: 100%;
	height: 600px;
	overflow: hidden;
	background-image:
		linear-gradient(135deg, rgba(10,61,115,0.72) 0%, rgba(18,18,18,0.85) 100%),
		url('https://ilot.sadeckiegoryfci.pl/wp-content/uploads/2026/03/dji_fly_20250203_131510_866_1738587651738_photo-scaled.jpg');
	background-size: cover;
	background-position: center center;
	background-attachment: fixed;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

/* === AMBIENT WATERMARK TEXT === */
.bg-text {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: clamp(3rem, 8vw, 7rem);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.25em;
	color: rgba(255, 255, 255, 0.04);
	white-space: nowrap;
	pointer-events: none;
	z-index: 0;
	user-select: none;
}

/* === PILLARS CONTAINER — full-height flex row === */
.pillars-wrapper {
	display: flex;
	flex-direction: row;
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}

/* === INDIVIDUAL PILLAR === */
.pillar {
	position: relative;
	flex: 0 0 33.333%;
	width: 33.333%;
	height: 100%;
	overflow: hidden;
	cursor: pointer;
	will-change: flex;
	transition: flex 0.8s cubic-bezier(0.25, 1, 0.5, 1),
	            width 0.8s cubic-bezier(0.25, 1, 0.5, 1);
	border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.pillar:last-child {
	border-right: none;
}

/* Hover behaviour: hovered pillar expands, siblings shrink */
.pillars-wrapper:has(.pillar:hover) .pillar {
	flex: 0 0 20%;
	width: 20%;
}

.pillars-wrapper .pillar:hover {
	flex: 0 0 60%;
	width: 60%;
}

/* Glassmorphism inner layer */
.pillar-inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	padding: 2.5rem 2rem;
	background: rgba(10, 30, 60, 0.25);
	backdrop-filter: blur(40px);
	-webkit-backdrop-filter: blur(40px);
	border-left: 1px solid rgba(255, 255, 255, 0.08);
	border-right: 1px solid rgba(255, 255, 255, 0.08);
	transition: background 0.5s ease;
}

.pillar:hover .pillar-inner {
	background: rgba(10, 30, 60, 0.55);
}

/* === VERTICAL TAG (visible when collapsed) === */
.pillar-tag {
	font-family: var(--font-heading);
	font-weight: 900;
	font-size: 0.95rem;
	letter-spacing: 5px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.9);
	writing-mode: vertical-rl;
	text-orientation: mixed;
	transform: rotate(180deg);
	transition:
		opacity 0.35s cubic-bezier(0.77, 0, 0.175, 1) 0.15s,
		transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
	align-self: center;
	margin-bottom: auto;
	padding-top: 2.5rem;
}

/* Hide the tag when expanded */
.pillar:hover .pillar-tag {
	opacity: 0;
	transform: rotate(180deg) translateX(20px);
	transition-delay: 0s;
}

/* === CONTENT BLOCK (hidden when collapsed) === */
.pillar-content {
	width: 100%;
	opacity: 0;
	transform: translateY(30px);
	transition:
		opacity 0.45s cubic-bezier(0.77, 0, 0.175, 1) 0.25s,
		transform 0.45s cubic-bezier(0.77, 0, 0.175, 1) 0.25s;
	pointer-events: none;
}

.pillar:hover .pillar-content {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* Title inside expanded pillar */
.pillar-title {
	font-family: var(--font-heading);
	font-size: clamp(1.4rem, 2.2vw, 2.2rem);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 4px;
	color: #ffffff;
	margin: 0 0 1rem 0;
	line-height: 1.15;
	text-shadow: 0 4px 15px rgba(0,0,0,0.4);
}

/* Description inside expanded pillar */
.pillar-desc {
	font-family: var(--font-text);
	font-size: 1.05rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.7;
	margin: 0;
	max-width: 520px;
}

/* Decorative green horizontal line */
.pillar-line {
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, var(--ilot-green), rgba(59,140,62,0));
	border-radius: 3px;
	margin-top: 1.5rem;
}

/* === BOTTOM DEPTH GRADIENT === */
.mission-bottom-gradient {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 180px;
	background: linear-gradient(to top, rgba(18,18,18,0.75) 0%, transparent 100%);
	z-index: 2;
	pointer-events: none;
}

/* === RESPONSIVE: stack pillars vertically on mobile === */
@media (max-width: 900px) {
	.mission-cinematic {
		height: auto;
		background-attachment: scroll;
	}

	.pillars-wrapper {
		flex-direction: column;
	}

	.pillar,
	.pillars-wrapper:has(.pillar:hover) .pillar,
	.pillars-wrapper .pillar:hover {
		flex: none !important;
		width: 100% !important;
		height: 220px;
	}

	.pillar-tag {
		writing-mode: horizontal-tb;
		transform: none;
		margin-bottom: 0;
		padding-top: 0;
		font-size: 1.1rem;
		align-self: auto;
	}

	.pillar-content {
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	.pillar:hover .pillar-tag {
		opacity: 1;
		transform: none;
	}

	.bg-text {
		font-size: 2rem;
	}
}

/* ============================================================
   ILOT HERO IDENTITY — Cinematic Expanding Pylons (page-ilot)
   ============================================================ */

.ilot-hero-identity {
	position: relative;
	width: 100%;
	height: 100vh;
	min-height: 640px;
	overflow: hidden;
	background: #060f1e;
	display: flex;
	flex-direction: column;
}

/* === OUTLINE WATERMARK === */
.huge-outline-text {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: clamp(4rem, 10vw, 9rem);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.06);
	white-space: nowrap;
	pointer-events: none;
	z-index: 0;
	user-select: none;
}

/* === PYLON CONTAINER === */
.pylon-container {
	display: flex;
	flex-direction: row;
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}

/* === SINGLE PYLON === */
.ilot-pylon {
	position: relative;
	flex: 0 0 33.333%;
	width: 33.333%;
	height: 100%;
	overflow: hidden;
	cursor: pointer;
	background-size: cover;
	background-position: center center;
	/* Performance hint for GPU compositing */
	will-change: flex;
	transition: flex 0.8s cubic-bezier(0.25, 1, 0.5, 1),
	            width 0.8s cubic-bezier(0.25, 1, 0.5, 1);
	border-right: 1px solid rgba(255, 255, 255, 0.07);
}

.ilot-pylon:last-child {
	border-right: none;
}

/* Hover: expand active, shrink siblings */
.pylon-container:has(.ilot-pylon:hover) .ilot-pylon {
	flex: 0 0 20%;
	width: 20%;
}

.pylon-container .ilot-pylon:hover {
	flex: 0 0 60%;
	width: 60%;
}

/* === GLASS INNER LAYER === */
.pylon-glass {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	padding: 3rem 2.5rem;
	background: linear-gradient(
		to top,
		rgba(5, 14, 35, 0.88) 0%,
		rgba(5, 14, 35, 0.25) 55%,
		rgba(5, 14, 35, 0.06) 100%
	);
	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);
	transition: background 0.6s ease;
}

.ilot-pylon:hover .pylon-glass {
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

/* === NUMERAL KICKER (top-left) === */
.pylon-kicker {
	position: absolute;
	top: 2.5rem;
	left: 2.5rem;
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 4px;
	color: rgba(255, 255, 255, 0.35);
	text-transform: uppercase;
}

/* === VERTICAL KEYWORD — visible when collapsed === */
.pylon-keyword {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-90deg);
	font-family: var(--font-heading);
	font-size: clamp(1rem, 1.8vw, 1.4rem);
	font-weight: 900;
	letter-spacing: 8px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	white-space: nowrap;
	transition:
		opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) 0.1s,
		transform 0.45s cubic-bezier(0.25, 1, 0.5, 1) 0.1s;
}

.ilot-pylon:hover .pylon-keyword {
	opacity: 0;
	transform: translate(-50%, -60%) rotate(-90deg);
	transition-delay: 0s;
}

/* === BODY CONTENT — hidden until expanded === */
.pylon-body {
	width: 100%;
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity 0.5s cubic-bezier(0.25, 1, 0.5, 1) 0.25s,
		transform 0.5s cubic-bezier(0.25, 1, 0.5, 1) 0.25s;
	pointer-events: none;
}

.ilot-pylon:hover .pylon-body {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* Headline (rotates from vertical to horizontal on expand) */
.pylon-headline {
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 2.4vw, 2.4rem);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: #ffffff;
	margin: 0 0 0.4rem 0;
	line-height: 1.1;
	text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

/* Subtitle */
.pylon-sub {
	font-family: var(--font-heading);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--ilot-green);
	margin: 0 0 1rem 0;
}

/* Thin green divider */
.pylon-divider {
	width: 50px;
	height: 2px;
	background: linear-gradient(90deg, var(--ilot-green), rgba(59,140,62,0));
	border-radius: 2px;
	margin-bottom: 1rem;
}

/* Detail paragraph */
.pylon-detail {
	font-family: var(--font-text);
	font-size: 0.98rem;
	color: rgba(255, 255, 255, 0.78);
	line-height: 1.75;
	margin: 0;
	max-width: 480px;
}

/* === RESPONSIVE: vertical stack on mobile === */
@media (max-width: 900px) {
	.ilot-hero-identity {
		height: auto;
	}

	.pylon-container {
		flex-direction: column;
	}

	.ilot-pylon,
	.pylon-container:has(.ilot-pylon:hover) .ilot-pylon,
	.pylon-container .ilot-pylon:hover {
		flex: none !important;
		width: 100% !important;
		height: 280px;
	}

	.pylon-keyword {
		position: static;
		transform: none;
		writing-mode: horizontal-tb;
		font-size: 1.2rem;
		letter-spacing: 5px;
		margin-bottom: 0.5rem;
	}

	.ilot-pylon:hover .pylon-keyword {
		opacity: 1;
		transform: none;
	}

	.pylon-body {
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	.pylon-glass {
		justify-content: flex-end;
		backdrop-filter: blur(8px);
		-webkit-backdrop-filter: blur(8px);
	}

	.huge-outline-text {
		font-size: 2.5rem;
	}
}

/* ============================================================
   LAYERED MOSAIC — page-o-nas.php
   ============================================================ */

/* ── Global smooth scroll ── */
html {
	scroll-behavior: smooth;
}

/* ── Shared glass overlay utility ── */
.glass-overlay {
	background: rgba(10, 30, 60, 0.55);
	backdrop-filter: blur(22px);
	-webkit-backdrop-filter: blur(22px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 20px;
	padding: 2.5rem 3rem;
	color: #fff;
}

/* ══════════════════════════════════════════════
   ABOUT HERO SECTION
   ══════════════════════════════════════════════ */
.about-hero {
	position: relative;
	width: 100%;
	min-height: 100vh;
	background: #050f20;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

/* === Animated colour blobs === */
.blur-blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(90px);
	opacity: 0.55;
	pointer-events: none;
	animation: blobDrift 18s ease-in-out infinite alternate;
}

.blob-1 {
	width: 620px;
	height: 620px;
	background: radial-gradient(circle, rgba(10,61,115,0.9), rgba(10,61,115,0));
	top: -15%;
	left: -10%;
	animation-duration: 20s;
}

.blob-2 {
	width: 480px;
	height: 480px;
	background: radial-gradient(circle, rgba(59,140,62,0.75), rgba(59,140,62,0));
	bottom: -10%;
	right: -8%;
	animation-duration: 25s;
	animation-delay: -8s;
}

.blob-3 {
	width: 360px;
	height: 360px;
	background: radial-gradient(circle, rgba(30,80,140,0.6), rgba(30,80,140,0));
	top: 40%;
	left: 55%;
	animation-duration: 16s;
	animation-delay: -4s;
}

@keyframes blobDrift {
	0%   { transform: translate(0px, 0px) scale(1); }
	33%  { transform: translate(40px, -30px) scale(1.08); }
	66%  { transform: translate(-25px, 45px) scale(0.95); }
	100% { transform: translate(20px, 15px) scale(1.04); }
}

/* === Hero inner content === */
.about-hero-inner {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 6rem 2rem 4rem;
	max-width: 900px;
	width: 100%;
}

.about-eyebrow {
	font-family: var(--font-heading);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 6px;
	text-transform: uppercase;
	color: var(--ilot-green);
	margin: 0 0 1.5rem;
}

/* === Outlined + solid heading === */
.about-hero-heading {
	font-family: var(--font-heading);
	font-size: clamp(4rem, 10vw, 8.5rem);
	font-weight: 900;
	line-height: 0.95;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	margin: 0 0 2.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25em;
	justify-content: center;
	align-items: baseline;
}

.outlined-word {
	color: transparent;
	-webkit-text-stroke: 2px rgba(255, 255, 255, 0.85);
}

.solid-word {
	color: #ffffff;
}

/* === Glass intro card === */
.about-intro-glass {
	max-width: 640px;
	margin: 0 auto 3rem;
	text-align: left;
	padding: 2rem 2.5rem;
}

.about-intro-glass p {
	font-size: 1.1rem;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.86);
	margin: 0;
}

/* === Scroll hint === */
.hero-scroll-hint {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	margin-top: 1rem;
}

.scroll-label {
	font-family: var(--font-heading);
	font-size: 0.7rem;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.35);
}

.scroll-line {
	width: 1px;
	height: 50px;
	background: linear-gradient(to bottom, rgba(255,255,255,0.5), rgba(255,255,255,0));
	animation: scrollPulse 2s ease-in-out infinite;
}

@keyframes scrollPulse {
	0%, 100% { transform: scaleY(1); opacity: 0.5; }
	50%       { transform: scaleY(1.3); opacity: 1; }
}

/* ══════════════════════════════════════════════
   SHARED SECTION HEADINGS
   ══════════════════════════════════════════════ */
.section-eyebrow {
	display: block;
	font-family: var(--font-heading);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 6px;
	text-transform: uppercase;
	color: var(--ilot-green);
	margin-bottom: 0.6rem;
}

.section-heading-big {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 900;
	color: #ffffff;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin: 0;
	line-height: 1.1;
}

/* ══════════════════════════════════════════════
   BOARD — "The Circle Grid"
   ══════════════════════════════════════════════ */
.about-board-section {
	position: relative;
	padding: 100px 20px;
	background: linear-gradient(180deg, #060f1e 0%, #0a1a30 100%);
	overflow: hidden;
}

.about-board-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(59,140,62,0.06) 1px, transparent 1px);
	background-size: 40px 40px;
	pointer-events: none;
}

.about-board-inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
}

.section-heading-glass {
	max-width: 500px;
	margin: 0 auto 4rem;
	text-align: center;
	padding: 1.8rem 2.5rem;
}

.board-circle-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	justify-content: center;
}

.board-member {
	display: flex;
	flex-direction: column;
	align-items: center;
	cursor: pointer;
	outline: none;
}

.board-member-circle {
	position: relative;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	overflow: hidden;
	border: 2px solid rgba(255, 255, 255, 0.1);
	box-shadow: 0 20px 60px rgba(0,0,0,0.5);
	transition:
		box-shadow 0.4s cubic-bezier(0.25, 1, 0.5, 1),
		border-color 0.4s ease,
		transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.board-member:hover .board-member-circle,
.board-member:focus .board-member-circle {
	border-color: rgba(59,140,62,0.6);
	box-shadow: 0 0 0 6px rgba(59,140,62,0.15), 0 30px 80px rgba(0,0,0,0.6);
	transform: translateY(-8px) scale(1.03);
}

.board-member-photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: filter 0.4s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.board-member:hover .board-member-photo,
.board-member:focus .board-member-photo {
	filter: blur(6px) brightness(0.55);
	transform: scale(1.08);
}

.board-member-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--ilot-blue) 0%, #0e2a52 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: filter 0.4s ease;
}

.board-member:hover .board-member-placeholder,
.board-member:focus .board-member-placeholder {
	filter: blur(4px) brightness(0.5);
}

.board-initials {
	font-family: var(--font-heading);
	font-size: 3.5rem;
	font-weight: 900;
	color: rgba(255,255,255,0.6);
	letter-spacing: 4px;
	user-select: none;
}

.board-member-overlay {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	opacity: 0;
	transform: scale(0.92);
	transition:
		opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) 0.05s,
		transform 0.35s cubic-bezier(0.25, 1, 0.5, 1) 0.05s;
	gap: 0.35rem;
	text-align: center;
}

.board-member:hover .board-member-overlay,
.board-member:focus .board-member-overlay {
	opacity: 1;
	transform: scale(1);
}

.board-member-name {
	font-family: var(--font-heading);
	font-size: 1.15rem;
	font-weight: 900;
	color: #ffffff;
	text-transform: uppercase;
	letter-spacing: 2px;
	line-height: 1.2;
}

.board-member-role {
	font-family: var(--font-heading);
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--ilot-green);
	letter-spacing: 4px;
	text-transform: uppercase;
}

.board-member-email {
	font-family: var(--font-text);
	font-size: 0.78rem;
	color: rgba(255,255,255,0.65);
	text-decoration: none;
	margin-top: 0.4rem;
	transition: color 0.2s;
}

.board-member-email:hover { color: #fff; }

/* ══════════════════════════════════════════════
   RIBBON — Infinite CSS Carousel
   ══════════════════════════════════════════════ */
.ribbon-section {
	padding: 80px 0 100px;
	background: #040c1a;
	overflow: hidden;
}

.ribbon-heading-glass {
	max-width: 420px;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.ribbon-outer {
	overflow: hidden;
	width: 100%;
	mask-image: linear-gradient(to right, transparent 0%, black 12%, black 88%, transparent 100%);
	-webkit-mask-image: linear-gradient(to right, transparent 0%, black 12%, black 88%, transparent 100%);
}

.ribbon-track {
	display: flex;
	width: max-content;
	animation: ribbonScroll 28s linear infinite;
}

.ribbon-outer:hover .ribbon-track {
	animation-play-state: paused;
}

@keyframes ribbonScroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

.ribbon-item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.2rem 3rem;
	text-decoration: none;
	white-space: nowrap;
	border-right: 1px solid rgba(255,255,255,0.08);
	transition: background 0.3s ease;
}

.ribbon-item:hover {
	background: rgba(59,140,62,0.08);
}

.ribbon-item-text {
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: rgba(255,255,255,0.3);
	transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.ribbon-item:hover .ribbon-item-text {
	color: rgba(255,255,255,0.9);
	letter-spacing: 4px;
}

/* ══════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════ */
@media (max-width: 768px) {
	.about-hero-heading {
		font-size: clamp(3rem, 14vw, 5rem);
	}

	.outlined-word {
		-webkit-text-stroke-width: 1.5px;
	}

	.board-circle-grid {
		gap: 2rem;
	}

	.board-member-circle {
		width: 220px;
		height: 220px;
	}

	.board-initials {
		font-size: 2.8rem;
	}

	.about-intro-glass {
		padding: 1.5rem;
	}

	.ribbon-item {
		padding: 1rem 2rem;
	}

	.blob-1 { width: 300px; height: 300px; }
	.blob-2 { width: 250px; height: 250px; }
	.blob-3 { width: 180px; height: 180px; }
}

/* ============================================================
   SINGLE EVENT PAGE — single-ilot_event.php
   ============================================================ */

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

.single-event-wrapper {
	animation: seEventFadeIn 0.7s cubic-bezier(0.25, 1, 0.5, 1) both;
}

/* ── HERO ── */
.single-event-hero {
	padding: 6rem 2rem 3rem;
	text-align: center;
	max-width: 900px;
	margin: 0 auto;
}

.single-event-meta {
	display: flex;
	justify-content: center;
	margin-bottom: 1.75rem;
}

.single-event-date-badge {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	background: var(--ilot-blue);
	color: #fff;
	border-radius: 14px;
	padding: 0.9rem 1.5rem;
	min-width: 80px;
	box-shadow: 0 8px 28px rgba(10, 61, 115, 0.28);
}

.sed-day {
	font-family: var(--font-heading);
	font-size: 2.4rem;
	font-weight: 900;
	line-height: 1;
}

.sed-month {
	font-family: var(--font-heading);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.82;
}

.sed-year {
	font-size: 0.7rem;
	opacity: 0.6;
}

.single-event-title {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 900;
	line-height: 1.15;
	color: var(--ilot-dark);
	letter-spacing: -0.02em;
	margin-bottom: 1.75rem;
}

.single-event-divider {
	width: 70px;
	height: 4px;
	background: linear-gradient(90deg, var(--ilot-green), rgba(59,140,62,0));
	border-radius: 4px;
	margin: 0 auto;
}

/* ── MEDIA ── */
.single-event-figure {
	max-width: 1000px;
	width: 100%;
	margin: 3rem auto;
	padding: 0 1.5rem;
}

.single-event-img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 20px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.14);
	object-fit: cover;
}

/* ── CONTENT ── */
.single-event-content {
	padding: 0 1.5rem 4rem;
}

.single-event-body {
	max-width: 800px;
	margin: 0 auto;
	font-family: var(--font-text);
	font-size: 1.08rem;
	line-height: 1.85;
	color: #3a4a5c;
}

.single-event-body p   { margin-bottom: 1.4em; }
.single-event-body h2,
.single-event-body h3  { font-family: var(--font-heading); font-weight: 800; color: var(--ilot-dark); margin: 2em 0 0.6em; }
.single-event-body ul,
.single-event-body ol  { padding-left: 1.5em; margin-bottom: 1.4em; }
.single-event-body img { max-width: 100%; border-radius: 12px; margin: 1.5em 0; }
.single-event-body a   { color: var(--ilot-blue); text-decoration: underline; }

/* ── BACK LINK ── */
.single-event-back {
	text-align: center;
	padding-bottom: 5rem;
}

.btn-back-event {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--ilot-blue);
	text-decoration: none;
	border: 2px solid var(--ilot-blue);
	padding: 0.7rem 1.8rem;
	border-radius: 50px;
	transition: background 0.25s ease, color 0.25s ease;
}

.btn-back-event:hover {
	background: var(--ilot-blue);
	color: #fff;
}

@media (max-width: 700px) {
	.single-event-hero { padding: 5rem 1rem 2rem; }
	.single-event-title { font-size: 1.8rem; }
	.single-event-figure { padding: 0 0.75rem; }
	.single-event-img { border-radius: 12px; }
}

/* ── Eyebrow label shared by all single templates ── */
.single-post-eyebrow {
	display: block;
	font-family: var(--font-heading);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ilot-blue);
	margin-bottom: 1.25rem;
	opacity: 0.8;
}

/* ══════════════════════════════════════════════
   NAVIGATION UX IMPROVEMENTS (Hitboxes & Dropdowns)
   ══════════════════════════════════════════════ */
.primary-menu .menu-item > a {
	display: flex;
	align-items: center;
	padding: 12px 18px;
	border-radius: 8px;
	transition: all 0.3s ease;
	position: relative;
	text-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
}

.primary-menu .menu-item > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 2px;
	background: var(--ilot-green);
	transition: width 0.3s cubic-bezier(0.25, 1, 0.5, 1);
	border-radius: 2px;
}

.primary-menu .menu-item:hover > a::after,
.primary-menu .menu-item:focus-within > a::after {
	width: 80%;
}

.primary-menu .menu-item > a:hover,
.primary-menu .menu-item > a:focus {
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	box-shadow: 0 4px 20px rgba(255, 255, 255, 0.05);
}

.primary-menu .menu-item-has-children {
	position: relative;
}

/* Invisible bridge for dropdown stability */
.primary-menu .menu-item-has-children::after {
	content: '';
	position: absolute;
	bottom: -20px;
	left: 0;
	width: 100%;
	height: 20px;
	background: transparent;
	z-index: 10;
}

/* ══════════════════════════════════════════════
   EXTERNAL LINKS & MAP NAVIGATION
   ══════════════════════════════════════════════ */
.external-org-link-wrapper {
	margin-top: 10px;
	text-align: center;
}

.external-org-link {
	display: inline-block;
	padding: 5px 20px;
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50px;
	color: var(--ilot-blue);
	text-decoration: none;
	font-weight: 600;
	transition: all 0.3s ease;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 0.9rem;
	box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.org-link-label {
	color: inherit;
	font-weight: 600;
}

.external-org-link:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: var(--ilot-green);
	color: var(--ilot-green);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(59, 140, 62, 0.2);
}

.map-navigation-icon {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 25px;
	background: transparent;
	border: 2px solid var(--ilot-green);
	border-radius: 50px;
	color: var(--ilot-green);
	text-decoration: none;
	font-weight: 700;
	transition: all 0.3s ease;
}

.map-navigation-icon .dashicons {
	font-size: 20px;
	width: 20px;
	height: 20px;
}

.map-navigation-icon:hover {
	background: var(--ilot-green);
	color: #fff;
	transform: scale(1.05);
	box-shadow: 0 0 20px rgba(59, 140, 62, 0.4);
}

/* ============================================================
   ILOT SUBPAGE (page-id-19) - PREMIUM GLASSMORPHISM
   ============================================================ */
/* Specyficznie dla karty na podstronie iLOT */
.page-id-19 .hero-card, 
.ilot-subpage-card { 
    background: rgba(255, 255, 255, 0.07) !important;
    backdrop-filter: blur(20px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 30px;
    color: #fff !important;
    box-shadow: 0 25px 50px rgba(0,0,0,0.3);
}

.page-id-19 .hero-card h1, 
.page-id-19 .hero-card p,
.page-id-19 .hero-card h2,
.ilot-subpage-card h1,
.ilot-subpage-card p,
.ilot-subpage-card h2 {
    color: #ffffff !important;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

/* Interakcja kafelków */
.ilot-grid-item {
    background: var(--ilot-green);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    text-decoration: none;
    color: #fff !important;
    font-weight: 700;
}

.ilot-grid-item:hover {
    transform: scale(1.05) translateY(-5px);
    box-shadow: 0 10px 25px rgba(45, 134, 62, 0.5);
    background: #36a34d;
}

/* ============================================================
   DOCUMENTS CARD - Vertical Rhythm Fix
   ============================================================ */
.document-card .document-icon {
    margin-bottom: 12px;
    display: block;
    position: static;
}

.document-card .document-title {
    margin-bottom: 12px;
    line-height: 1.2;
    display: block;
}

/* ============================================================
   GTRANSLATE — GLASS CAPSULE
   ============================================================ */

.ilot-lang-switcher {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 0.05) !important;
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 50px !important;
    padding: 8px 20px !important;
    gap: 15px !important;
    margin-left: 20px;
    white-space: nowrap !important;
    transition: all 0.4s ease;
}

.ilot-lang-switcher:hover {
    border-color: var(--ilot-green) !important;
    box-shadow: 0 0 25px rgba(45, 134, 62, 0.4) !important;
    background: rgba(255, 255, 255, 0.08) !important;
}

/* Stylizacja samych flag - WIĘKSZE I WYRAŹNIEJSZE */
.ilot-lang-switcher a {
    display: block !important;
    line-height: 0 !important;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}

.ilot-lang-switcher img {
    width: 30px !important;
    height: auto !important;
    border-radius: 3px !important;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}

.ilot-lang-switcher a:hover {
    transform: scale(1.3) translateY(-3px);
}

/* Ukryj zbędne napisy GTranslate */
.gt_white_content { display: none !important; }
.gtranslate_wrapper { display: flex !important; }

/* ============================================================
   MOBILE OPTIMIZATIONS (iLOT 2.0)
   ============================================================ */
@media (max-width: 768px) {
    /* Kontener nagłówka */
    .header-container, .site-header-inner {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 10px 20px !important;
        height: 70px !important;
    }

    /* LOGO - zostaje po lewej */
    .header-logo, .site-logo { flex: 1; }

    /* JĘZYKI - Idealnie na środek paska */
    .ilot-lang-switcher {
        flex: 1;
        display: flex !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    /* HAMBURGER - Maksymalnie do prawej */
    .mobile-menu-toggle, .hamburger-container, .hamburger-btn {
        flex: 1;
        display: flex !important;
        justify-content: flex-end !important;
    }

    /* Globalne wymuszenie tła 1:1 */
    .hero-section, .page-header, .archive-header {
        height: 80vh !important; /* Krótsze niż na desktop, by nie przewijać wieki */
        height: 80dvh !important;
        position: relative !important;
        overflow: hidden !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* Wymuszenie zachowania tła */
    .hero-bg-wrapper {
        position: fixed !important; /* Tło stoi w miejscu, treść płynie po nim */
        top: 0;
        left: 0;
        width: 100vw;
        height: 100dvh;
        z-index: -1;
        overflow: hidden;
    }

    .hero-bg-wrapper iframe, 
    .hero-bg-wrapper video, 
    .hero-bg-wrapper .bg-img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important; /* Identyczne kadrowanie jak na kompie */
        object-position: center center !important;
    }

    /* Przyciemnienie i blur (Glassmorphism) - identycznie jak na kompie */
    .hero-bg-overlay {
        position: fixed !important;
        inset: 0;
        background: rgba(0, 0, 0, 0.3) !important;
        backdrop-filter: blur(3px) !important;
        -webkit-backdrop-filter: blur(3px) !important;
        z-index: 0;
    }

    /* Optymalizacja karty Glassmorphism */
    .hero-card, .ilot-glass-card {
        padding: 25px 15px !important;
        margin: 10px !important;
        width: calc(100% - 20px) !important;
        border-radius: 20px !important;
    }

    /* Układ 2x2 dla kafelków - idealny pod kciuk */
    .hero-grid-container {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .hero-grid-item {
        font-size: 0.9rem !important;
        padding: 15px 5px !important;
    }

    /* Naprawa Sekcji WYDARZENIA (Events Grid) */
    .events-grid, .wydarzenia-container {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        padding: 15px !important;
    }

    .event-card, .wydarzenie-item {
        width: 100% !important;
        margin: 0 !important;
        background: rgba(255, 255, 255, 0.05) !important;
        backdrop-filter: blur(10px) !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        border-radius: 20px !important;
        overflow: hidden !important;
    }

    .event-card img {
        height: 200px !important;
        width: 100% !important;
        object-fit: cover !important;
    }
}

/* Wymuszenie pozycji sekcji - zarówno .izerskie-niebo-section jak i .dark-sky-section */
.izerskie-niebo-section, .dark-sky-section {
    position: relative !important;
    padding-top: 80px !important; /* Miejsce na logo w rogu */
}

/* Kontener dla wielu ikon w rogu */
.footer-social-top-right {
    position: absolute !important;
    top: 30px !important;
    right: 40px !important;
    display: flex !important;
    gap: 15px !important; /* Odstęp między FB i IG */
    z-index: 10 !important;
}

.social-icon {
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    display: flex;
    align-items: center;
    justify-content: center;
}

.social-icon:hover {
    transform: scale(1.15) rotate(5deg);
}

/* RWD dla mobilnych */
@media (max-width: 768px) {
    .footer-social-top-right {
        top: 20px !important;
        right: 20px !important;
        gap: 10px !important;
    }
    .social-icon svg {
        width: 28px !important;
        height: 28px !important;
    }
}

/* Wyśrodkowanie copyrightu na samym dole sekcji */
.luxury-footer-bottom {
    margin-top: 100px;
    padding-bottom: 30px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding-top: 20px;
}

.luxury-footer-bottom p {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* ============================================================
   MOBILE HOME FIXES (TEXT VISIBILITY & COLORS)
   ============================================================ */
@media (max-width: 768px) {
    /* Wymuszenie tła luksusowego na stronie głównej (JUŻ DZIAŁA, ale dla pewności) */
    .home {
        background-color: transparent !important;
    }

    /* 1. TEKST WYDARZEŃ (Tylko na głównej) -> BIAŁY */
    .home .event-card h3, 
    .home .event-card p, 
    .home .event-title,
    .home .event-excerpt {
        color: #ffffff !important;
        text-shadow: 0 1px 2px rgba(0,0,0,0.5);
    }

    /* 2. LISTA MISJI / DZIAŁAŃ -> CZARNY */
    .home .mission-desc, 
    .home .action-points p,
    .home .about-mission-text {
        color: #000000 !important;
        font-weight: 500;
        text-shadow: none !important;
    }

    /* 3. WSTĘP I TYTUŁ SEKCJI -> ZIELONY (iLOT GREEN) */
    .home .about-region-content h2.section-title, 
    .home .hero-description p:first-of-type {
        color: var(--ilot-green, #2d863e) !important;
        text-shadow: none !important;
    }

    /* Tekst: "Naszą misją jest ukazanie piękna..." -> BIAŁY */
    .home .about-text, 
    .home .mission-statement-text, 
    .home section p.mission-description {
        color: #ffffff !important;
        text-shadow: 0 1px 3px rgba(0,0,0,0.4) !important;
        font-weight: 400;
    }

    /* Tytuł: "Najnowsze Wydarzenia" */
    .home .events-section h2.section-title, 
    .home .events-header h2 {
        color: var(--ilot-green, #2d863e) !important;
        text-transform: uppercase;
    }

    /* Wymuszenie całkowitej przezroczystości kontenera hamburgera */
    .mobile-menu-toggle, 
    .hamburger-container, 
    .navbar-toggler, 
    [class*="menu-toggle"],
    button.elementor-menu-toggle, /* Celowanie w Elementor */
    .elementor-menu-toggle { /* Celowanie w kontener Elementora */
        background-color: transparent !important; /* Kluczowe: usuwamy to tło */
        border: none !important;
        border-color: transparent !important;
        box-shadow: none !important; /* Usuwamy cień */
        outline: none !important;
        -webkit-appearance: none !important; /* Usuwa domyślny wygląd systemu */
        appearance: none !important;
        margin: 0 !important;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent !important; /* Usuwa systemowy "flesz" przy tapnięciu */
    }

    /* Usunięcie obwódki także przy najechaniu i kliknięciu (FOCUS/ACTIVE) */
    .mobile-menu-toggle:focus,
    .mobile-menu-toggle:active,
    [class*="menu-toggle"]:focus,
    [class*="menu-toggle"]:active,
    .elementor-menu-toggle:focus {
        outline: none !important;
        border: none !important;
        background-color: transparent !important;
    }

    /* Upewnienie się, że SAMES KRESKI (ikona) są białe na ciemnym tle */
    .mobile-menu-toggle span, 
    .navbar-toggler-icon,
    .elementor-menu-toggle__icon--open i {
        background-color: #ffffff !important;
        color: #ffffff !important;
    }
}

/* --- MAPA REGIONU: LUXURY OVERLAY --- */
.ilot-map-premium-container {
    position: relative !important;
    width: 100%;
    height: 750px; /* Stała wysokość dla efektu WOW */
    overflow: hidden;
}

/* Mapa jako tło całej sekcji */
.actual-map-engine, .actual-map-engine iframe, .actual-map-engine .wpgmza_map {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    z-index: 1;
}

/* Szklany Sidebar jako LEWITUJĄCY element (Overlay) */
.map-sidebar-overlay {
    position: absolute !important;
    top: 30px;
    left: 30px;
    width: 280px;
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px);
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 15px 35px rgba(0,0,0,0.2);
    padding: 25px;
    z-index: 10; /* Musi być nad mapą! */
}

.map-filters { list-style: none; padding: 0; margin: 20px 0 0; }
.filter-item {
    padding: 12px 15px;
    color: #0c0d0d;
    cursor: pointer;
    border-radius: 10px;
    margin-bottom: 5px;
    transition: 0.3s;
    font-weight: 600;
    font-size: 14px;
}

.filter-item:hover, .filter-item.active {
    background: rgba(45, 134, 62, 0.2); /* Nasz zielony iLOTowy lekko prześwitujący */
    color: #2d863e;
}


.btn-primary, .more-link-button, .view-all-btn {
    text-transform: none !important;
}


/* Stylizacja linków w stopce */
.luxury-footer-bottom .footer-link {
    color: rgba(255, 255, 255, 0.6) !important;
    text-decoration: none !important;
    font-weight: 600;
    transition: all 0.3s ease;
    border-bottom: 1px solid transparent;
}

.luxury-footer-bottom .footer-link:hover {
    color: #ffffff !important;
    border-bottom: 1px solid var(--ilot-green, #2d863e);
}


/* --- NAPRAWA TYTUŁU MOBILNEGO (BLOG/ARCHIWUM) --- */
@media (max-width: 768px) {
    /* Wymuszamy pokazanie tytułu, który motyw ukrył */
    .archive.blog .page-title,
    .archive.blog h1,
    .blog .page-header h1,
    .post-type-archive-ilot_event .page-title {
        display: block !important;
        visibility: visible !important;
        color: #ffffff !important;
        font-size: 32px !important; /* Solidny rozmiar na palec */
        text-align: center !important;
        margin-bottom: 10px !important;
        opacity: 1 !important;
        transform: none !important; /* Na wypadek dziwnych animacji */
    }

    /* Pozycjonowanie nad zieloną kreską */
    .page-header-inner {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        padding-top: 40px !important;
    }
}


@media (max-width: 768px) {
    /* Wymuszenie wyświetlania tytułu na podstronach archiwów */
    .archive h1, 
    .archive .page-title, 
    .blog h1, 
    .blog .page-title,
    .elementor-page-title,
    .page-header h1 {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        color: #ffffff !important;
        font-size: 30px !important;
        line-height: 1.2 !important;
        height: auto !important;
        width: auto !important;
        text-transform: uppercase !important;
        margin: 0 auto 15px !important;
        position: relative !important;
        z-index: 10 !important;
    }

    /* Naprawa kontenera, który może dusić tytuł */
    .page-header-inner, .elementor-widget-container {
        min-height: 100px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
    }
}


/* Przywrócenie widoczności tytułu na wszystkich urządzeniach */
.blog .page-title, 
.archive .page-title, 
.blog h1.elementor-heading-title, 
.archive h1.elementor-heading-title,
.page-header h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #ffffff !important;
    text-align: center !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    width: 100% !important;
}

/* Upewnienie się, że kontener na mobile nie dusi tekstu */
@media (max-width: 768px) {
    .page-header-inner {
        min-height: 80px !important;
        padding-top: 20px !important;
    }
}

