/* ==========================================================================
   UTILITIES
   ========================================================================== */

.flex { display: flex; }
.grid { display: grid; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-xs { gap: var(--space-xs); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }

.text-center { text-align: center; }
.uppercase { text-transform: uppercase; letter-spacing: var(--ls-uppercase); }

.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }

.hidden { display: none !important; }

@media (max-width: 767.98px) {
  .hide-mobile { display: none !important; }
}
@media (min-width: 768px) {
  .hide-desktop { display: none !important; }
}

/* Skeleton loading (dla obrazów ładowanych leniwie) */
.is-loading {
  background: linear-gradient(90deg, var(--color-beige-light) 25%, var(--color-cream) 50%, var(--color-beige-light) 75%);
  background-size: 200% 100%;
  animation: skeleton-loading 1.4s ease infinite;
}
@keyframes skeleton-loading {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Oznaczenie treści AI (art. 50 AI Act) na banerach/grafikach */
.ai-disclosure-badge {
  position: absolute;
  top: var(--space-sm);
  left: var(--space-sm);
  z-index: 2;
  background: rgba(255, 255, 255, 0.75);
  color: var(--color-text, #333);
  font-size: 10px;
  font-weight: 400;
  padding: 0.25em 0.6em;
  border-radius: var(--radius-full);
  letter-spacing: 0.02em;
  text-transform: none;
  backdrop-filter: blur(2px);
}
