.site {
  min-height: 100vh;
}

.ast-separate-container {
  background: transparent;
}

.site-content > .ast-container,
.ast-separate-container .site-content > .ast-container,
.ast-plain-container .site-content > .ast-container {
  gap: clamp(1.5rem, 2vw, 2.5rem);
}

.site-content {
  padding-top: clamp(1.75rem, 2.5vw, 3rem);
  padding-bottom: clamp(2.75rem, 4vw, 5rem);
}

.ast-container,
.site-content .ast-container,
.site-primary-header-wrap .ast-builder-grid-row-container,
.site-below-footer-wrap .ast-builder-grid-row-container {
  max-width: min(var(--container-content), calc(100% - 2rem));
}

.site-content .ast-container,
.ast-container {
  width: 100%;
}

/* Einzelprodukt: Astra-Container / volle #primary: siehe body.fv-product-layout-active in woocommerce.css */

.site-main > article,
.site-main > section,
.site-main > .page-header,
.site-main > .woocommerce,
.site-main > .ast-woocommerce-container {
  position: relative;
  z-index: 1;
}

.ast-plain-container .entry-content > .wp-block-group,
.ast-page-builder-template .entry-content > .wp-block-group,
.entry-content > .wp-block-group,
.entry-content > .wp-block-cover,
.entry-content > .wp-block-columns {
  border-radius: var(--radius-lg);
}

.entry-content > .wp-block-group:not(.alignfull),
.entry-content > .wp-block-cover:not(.alignfull),
.entry-content > .wp-block-columns:not(.alignfull) {
  padding: clamp(1.25rem, 1rem + 1vw, 2rem);
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, transparent);
  background: color-mix(in srgb, var(--color-surface) 82%, transparent);
  box-shadow: var(--shadow-sm);
}

.entry-content > .alignwide.wp-block-group,
.entry-content > .alignwide.wp-block-cover,
.entry-content > .alignwide.wp-block-columns {
  margin-left: auto;
  margin-right: auto;
  max-width: min(var(--container-wide), calc(100% - 2rem));
}

.site .ast-article-single,
.site .ast-article-post,
.site .page-header,
.site .search .page-content,
.site .no-results,
.site .comments-area,
.site .post-navigation {
  padding: clamp(1.25rem, 1rem + 1vw, 2.25rem);
}

.site .ast-article-single,
.site .ast-article-post,
.site .search .page-content,
.site .no-results,
.site .comments-area,
.site .post-navigation {
  border: 1px solid color-mix(in srgb, var(--color-border) 90%, transparent);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--color-surface) 95%, transparent);
  box-shadow: var(--shadow-sm);
}

.site .entry-content,
.site .post-navigation,
.site .comments-area {
  position: relative;
  z-index: 1;
}

.site .entry-content > h1:first-child,
.site .entry-content > h2:first-child,
.site .entry-content > h3:first-child,
.site .entry-content > p:first-child {
  margin-top: 0;
}

.site .entry-content > * + * {
  margin-top: clamp(1rem, 1.2vw, 1.65rem);
}

.site .entry-content > h2,
.site .entry-content > h3,
.site .entry-content > h4 {
  margin-top: clamp(1.5rem, 1.5vw, 2.25rem);
}

.archive .page-header,
.blog .page-header,
.search .page-header {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(var(--fv-grid-overlay) 1px, transparent 1px),
    linear-gradient(90deg, var(--fv-grid-overlay) 1px, transparent 1px),
    color-mix(in srgb, var(--color-surface) 94%, transparent);
  background-size: 28px 28px, 28px 28px, auto;
  box-shadow: var(--shadow-sm);
}

.archive .page-header .page-title,
.blog .page-header .page-title,
.search .page-header .page-title {
  margin-bottom: 0.5rem;
}

.archive .ast-row,
.blog .ast-row,
.search .ast-row {
  row-gap: clamp(1.5rem, 2vw, 2.25rem);
}

body.page .entry-content > .wp-block-columns > .wp-block-column:last-child .wp-block-group h2,
body.page .entry-content > .wp-block-columns > .wp-block-column:last-child .wp-block-group h3 {
  font-size: clamp(1.05rem, 0.98rem + 0.24vw, 1.28rem);
  line-height: 1.18;
}

body.page .entry-content > .wp-block-columns > .wp-block-column:last-child .wp-block-group p {
  font-size: 0.98rem;
}

@media (max-width: 921px) {
  .site-content {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
  }
}

@media (max-width: 768px) {
  .site-content > .ast-container,
  .ast-separate-container .site-content > .ast-container,
  .ast-plain-container .site-content > .ast-container {
    gap: 1.25rem;
  }

  .site .ast-article-single,
  .site .ast-article-post,
  .site .page-header,
  .site .search .page-content,
  .site .no-results,
  .site .comments-area,
  .site .post-navigation,
  .entry-content > .wp-block-group:not(.alignfull),
  .entry-content > .wp-block-cover:not(.alignfull),
  .entry-content > .wp-block-columns:not(.alignfull) {
    padding: 1rem;
  }
}

/* ============================================================================
 * Phase 3.1 — Basis-Komponentenklasse für die äußere Seiten-Hülle
 * ----------------------------------------------------------------------------
 * .fv-shell spiegelt die Breitenlogik der bestehenden `.fv-<page>__inner`-
 * Regeln (width: min(--container-wide, calc(100% - 2rem)); margin: 0 auto).
 * Additiv eingeführt: die Seiten-eigenen `__inner`-Regeln haben höhere
 * Spezifität (0,2,0 vs. 0,1,0) und bleiben wirksam. `.fv-shell` greift auf
 * neuen Seiten oder als Fallback, sobald `__inner`-Duplikate später entfernt
 * werden.
 * ========================================================================== */
.fv-shell {
  width: min(var(--container-wide), calc(100% - 2rem));
  margin-inline: auto;
}

@media (max-width: 768px) {
  .fv-shell {
    width: min(var(--container-wide), calc(100% - 1.25rem));
  }
}

/* Kleinstgeräte: minimaler Seitenrand, maximale Lesbreite */
@media (max-width: 480px) {
  .fv-shell {
    width: min(var(--container-wide), calc(100% - 1rem));
  }
}

/* ── Globale Section-Defaults ────────────────────────────────────────────────
 * Semantische Modifier-Klassen für einheitliche Seiten-Sections.
 * ──────────────────────────────────────────────────────────────────────────── */

.fv-section {
  position: relative;
  padding-block: var(--fv-section-padding-block);
}

.fv-hero,
.fv-section--hero {
  padding-block: var(--fv-section-padding-block-hero);
}

.fv-section--closing {
  padding-top: var(--fv-section-padding-block);
  padding-bottom: var(--fv-section-padding-block-closing);
}

/* Prozess-Abschnitt: dezenter Hintergrund für visuelle Zäsur */
.fv-section--process {
  background: var(--color-bg-elevated);
}

/* Trennlinie zwischen Sections (gleichwertig zu fv-*__divider in front-page/protect) */
.fv-page-divider {
  display: block;
  height: 1px;
  width: min(12rem, 30%);
  margin: 0 auto;
  padding: 0;
  border: none;
  background: linear-gradient(
    90deg,
    transparent,
    var(--color-border) 30%,
    var(--color-border) 70%,
    transparent
  );
}
