/* Podstawowe ustawienia */
html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Manrope', sans-serif;
  background-color: #F8FAFC;
  color: #334155;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Clash Display', sans-serif;
}

.font-mono {
  font-family: 'Space Mono', monospace;
}

/* Interakcje i efekty hover */
.icon-hover-up {
  transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.group:hover .icon-hover-up {
  transform: translateY(-4px);
}

/* Nakładki i tła */
.hero-video-overlay {
  background: linear-gradient(180deg, rgba(10, 25, 47, 0.4) 0%, rgba(10, 25, 47, 0.8) 100%);
}

/* Animacja ładowania (opcjonalnie, z oryginalnego kodu) */
.loading-bar {
  animation: melt 2s ease-in-out infinite;
  background: linear-gradient(90deg, transparent, #38BDF8, transparent);
}

@keyframes melt {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Klasy dla animacji Intersection Observer (Fade-In) */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

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

/* Klasy dla mobilnego menu */
#mobile-menu {
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease-out;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
}

#mobile-menu.menu-open {
  max-height: 400px;
  opacity: 1;
}

/* Sticky Menu state */
.header-scrolled {
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  border-bottom-color: rgba(255, 255, 255, 0.05);
}

/* Sekcja Kontakt i Formularz */
.floating-label-group {
  position: relative;
  margin-bottom: 2rem;
}

.floating-label-input {
  width: 100%;
  padding: 0.5rem 0;
  font-size: 1rem;
  color: #334155;
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #94A3B8;
  border-radius: 0;
  outline: none;
  transition: border-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.floating-label-input:focus {
  border-bottom: 2px solid #38BDF8;
  box-shadow: none;
}

.floating-label {
  position: absolute;
  top: 0.5rem;
  left: 0;
  font-size: 1rem;
  color: #94A3B8;
  pointer-events: none;
  transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: left top;
}

.floating-label-input:focus ~ .floating-label,
.floating-label-input:not(:placeholder-shown) ~ .floating-label {
  transform: translateY(-1.5rem) scale(0.85);
  color: #38BDF8;
}

.map-bg {
  background-color: #e5e7eb;
  background-image: linear-gradient(#cbd5e1 1px, transparent 1px), linear-gradient(90deg, #cbd5e1 1px, transparent 1px);
  background-size: 40px 40px;
  position: relative;
}

.map-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, transparent 0%, #F8FAFC 100%);
}

/* Premium Logo Animations & Classes */
@keyframes float {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0px);
  }
}

.animate-float {
  animation: float 4s ease-in-out infinite;
}

.logo-glow {
  filter: drop-shadow(0 0 15px rgba(56, 189, 248, 0.4));
}

