/**
 * @file
 * Aero Page Builder - base front-end utility classes.
 *
 * Lightweight, class-only stylesheet shared by all APB component modules. It
 * intentionally targets only "apb-*" classes so it can never collide with a
 * host theme. Components ship their own componentry-specific CSS on top.
 */

/* Alignment utilities (mirror filter_align values). */
.apb-align-left { text-align: left; }
.apb-align-center { text-align: center; }
.apb-align-right { text-align: right; }
.apb-align-justify { text-align: justify; }

/* Spacing scale (rem-based, matches a 4px baseline grid). */
.apb-mt-0 { margin-top: 0; }
.apb-mt-1 { margin-top: 0.25rem; }
.apb-mt-2 { margin-top: 0.5rem; }
.apb-mt-3 { margin-top: 1rem; }
.apb-mt-4 { margin-top: 1.5rem; }
.apb-mt-5 { margin-top: 2rem; }

.apb-mb-0 { margin-bottom: 0; }
.apb-mb-1 { margin-bottom: 0.25rem; }
.apb-mb-2 { margin-bottom: 0.5rem; }
.apb-mb-3 { margin-bottom: 1rem; }
.apb-mb-4 { margin-bottom: 1.5rem; }
.apb-mb-5 { margin-bottom: 2rem; }

.apb-pt-0 { padding-top: 0; }
.apb-pt-3 { padding-top: 1rem; }
.apb-pt-5 { padding-top: 2rem; }
.apb-pb-0 { padding-bottom: 0; }
.apb-pb-3 { padding-bottom: 1rem; }
.apb-pb-5 { padding-bottom: 2rem; }

/* Section / region wrappers. */
.apb-section {
  position: relative;
  width: 100%;
}

.apb-container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}

/* Visually hidden, screen-reader friendly. Mirrors Drupal core .visually-hidden
   so component modules can decorate their templates without depending on a
   theme. */
.apb-visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  overflow: hidden;
  height: 1px;
  width: 1px;
  word-wrap: normal;
}

/* Color-field consumer: terms rendered by ApbTaxonomyTermFormatter expose
   their values inside .term-machine-name and .apb-* class divs. The default
   render is invisible; component templates style or hide them as needed. */
.term-machine-name { display: none; }

/* Honour reduced motion preferences for any future JS-driven animations. */
@media (prefers-reduced-motion: reduce) {
  .apb-anim,
  [class^='apb-anim-'],
  [class*=' apb-anim-'] {
    animation: none !important;
    transition: none !important;
  }
}
