/* ==================================================
   Utility Classes
   schwimm einfach Theme
================================================== */

/* Display */
.u-hidden {
  display: none !important;
}

.u-block {
  display: block;
}

.u-inline-block {
  display: inline-block;
}

.u-flex {
  display: flex;
}

.u-flex-column {
  display: flex;
  flex-direction: column;
}

.u-grid {
  display: grid;
}

/* Flex helpers */
.u-flex-wrap {
  flex-wrap: wrap;
}

.u-items-center {
  align-items: center;
}

.u-items-start {
  align-items: flex-start;
}

.u-items-end {
  align-items: flex-end;
}

.u-justify-center {
  justify-content: center;
}

.u-justify-between {
  justify-content: space-between;
}

/* Text alignment */
.u-text-left {
  text-align: left;
}

.u-text-center {
  text-align: center;
}

.u-text-right {
  text-align: right;
}

/* Text colors */
.u-text-primary {
  color: var(--color-primary);
}

.u-text-secondary {
  color: var(--color-secondary);
}

.u-text-light {
  color: var(--color-text-light);
}

.u-text-white {
  color: var(--color-white);
}

/* Backgrounds */
.u-bg-white {
  background-color: var(--color-white);
}

.u-bg-light {
  background-color: var(--color-background);
}

.u-bg-primary {
  background-color: var(--color-primary);
}

.u-bg-secondary {
  background-color: var(--color-secondary);
}

/* Spacing - margin top */
.u-mt-xs {
  margin-top: var(--space-8);
}

.u-mt-sm {
  margin-top: var(--space-16);
}

.u-mt-md {
  margin-top: var(--space-24);
}

.u-mt-lg {
  margin-top: var(--space-32);
}

.u-mt-xl {
  margin-top: var(--space-48);
}

/* Spacing - margin bottom */
.u-mb-xs {
  margin-bottom: var(--space-8);
}

.u-mb-sm {
  margin-bottom: var(--space-16);
}

.u-mb-md {
  margin-bottom: var(--space-24);
}

.u-mb-lg {
  margin-bottom: var(--space-32);
}

.u-mb-xl {
  margin-bottom: var(--space-48);
}

/* Spacing - padding */
.u-p-sm {
  padding: var(--space-16);
}

.u-p-md {
  padding: var(--space-24);
}

.u-p-lg {
  padding: var(--space-32);
}

.u-p-xl {
  padding: var(--space-48);
}

/* Width */
.u-w-100 {
  width: 100%;
}

.u-max-width-text {
  max-width: 720px;
}

.u-max-width-content {
  max-width: 960px;
}

/* Border radius */
.u-radius-sm {
  border-radius: var(--radius-sm);
}

.u-radius-md {
  border-radius: var(--radius-md);
}

.u-radius-lg {
  border-radius: var(--radius-lg);
}

.u-radius-full {
  border-radius: 999px;
}

/* Shadows */
.u-shadow-sm {
  box-shadow: var(--shadow-sm);
}

.u-shadow-md {
  box-shadow: var(--shadow-md);
}

/* Images */
.u-img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.u-img-fluid {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Responsive helpers */
@media (max-width: 767px) {
  .u-mobile-hidden {
    display: none !important;
  }

  .u-mobile-text-center {
    text-align: center;
  }
}

/* Gap */
.u-gap-sm {
  gap: var(--space-16);
}

.u-gap-md {
  gap: var(--space-24);
}

.u-gap-lg {
  gap: var(--space-32);
}