/* =========================================================
   Zentrale Inhaltsbreiten
   ========================================================= */

.site-content,
.site-primary,
.ast-container,
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con.e-con-boxed > .e-con-inner {
    width: 100%;
}

.site-content > .ast-container {
    max-width: var(--content-width);
    margin-inline: auto;
    padding-inline: var(--page-padding-desktop);
}

/* =========================================================
   Wiederverwendbare Inhaltscontainer
   ========================================================= */

.content-container {
    width: 100%;
    max-width: var(--content-width);
    margin-inline: auto;
    padding-inline: var(--page-padding-desktop);
}

.content-container--narrow {
    max-width: var(--content-width-narrow);
}

.content-container--text {
    max-width: var(--content-width-text);
}

.content-container--full {
    max-width: none;
}

/* =========================================================
   Einheitliche Seitenbereiche
   ========================================================= */

.section {
    width: 100%;
    padding-block: var(--space-8);
}

.section--small {
    padding-block: var(--space-6);
}

.section--large {
    padding-block: var(--space-9);
}

.section--flush {
    padding-block: 0;
}

/* =========================================================
   Vertikale Abstände
   ========================================================= */

.flow > * {
    margin-block: 0;
}

.flow > * + * {
    margin-top: var(--space-4);
}

.flow--small > * + * {
    margin-top: var(--space-3);
}

.flow--large > * + * {
    margin-top: var(--space-6);
}

/* =========================================================
   Raster
   ========================================================= */

.grid {
    display: grid;
    gap: var(--space-6);
}

.grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* =========================================================
   Flexible Reihen
   ========================================================= */

.cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
}

.cluster--between {
    justify-content: space-between;
}

.cluster--center {
    justify-content: center;
}

/* =========================================================
   Elementor-Grundbereinigung
   ========================================================= */

.elementor-widget:last-child {
    margin-bottom: 0;
}

.elementor-element,
.e-con,
.e-con-inner {
    min-width: 0;
}

.elementor-widget-text-editor > :last-child,
.elementor-widget-heading > :last-child {
    margin-bottom: 0;
}