/**
 * Print Assistant — Layout system (12-col grid, sections)
 */

.pa-grid-12 {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--pa-space-6);
  width: 100%;
}

.pa-col-span-4 { grid-column: span 4; }
.pa-col-span-5 { grid-column: span 5; }
.pa-col-span-6 { grid-column: span 6; }
.pa-col-span-7 { grid-column: span 7; }
.pa-col-span-8 { grid-column: span 8; }
.pa-col-span-12 { grid-column: span 12; }
.pa-col-start-1 { grid-column-start: 1; }
.pa-col-start-5 { grid-column-start: 5; }
.pa-col-start-7 { grid-column-start: 7; }

.pa-section:not(.pa-home-hero):not(.pa-hub-hero):not(.pa-home-warum) {
  padding-block: var(--wp--preset--spacing--80);
}

/*
 * Einheitlicher Abstand Header → erster sichtbarer Content (Startseite + Hub-Seiten + page.html).
 */
:root {
  --pa-content-top-space: var(--wp--preset--spacing--60);
  --pa-hero-bottom-space: var(--wp--preset--spacing--50);
  --pa-home-hero-bottom-space: var(--wp--preset--spacing--70);
  --pa-home-section-gap: var(--wp--preset--spacing--50);
  --pa-hub-modules-cta-gap: var(--wp--preset--spacing--60);
  --pa-hero-inline-padding: var(--wp--preset--spacing--50);
  --pa-hero-breakout-inline: var(--wp--preset--spacing--50);
}

.wp-site-blocks main .pa-home-hero,
.wp-site-blocks main .pa-hub-hero {
  padding-top: var(--pa-content-top-space) !important;
  padding-bottom: var(--pa-hero-bottom-space) !important;
}

.wp-site-blocks main .pa-home-hero {
  padding-bottom: var(--pa-home-hero-bottom-space) !important;
  margin-top: 0 !important;
}

/*
 * Startseite: einheitlicher Sektions-Rhythmus (kein gestapeltes blockGap + Margins).
 */
.wp-site-blocks:has(> main > .pa-home-hero) main {
  gap: 0 !important;
}

.wp-site-blocks:has(> main > .pa-home-hero) main > .wp-block-group.alignwide.pa-home-warum,
.wp-site-blocks:has(> main > .pa-home-hero) main > .wp-block-group.alignfull.pa-home-warum {
  box-sizing: border-box;
  margin-block-start: 0 !important;
  margin-inline: auto !important;
  max-width: var(--wp--style--global--wide-size) !important;
  padding-bottom: var(--pa-home-section-gap) !important;
  padding-inline: var(--wp--style--root--padding-left, var(--wp--preset--spacing--50));
  padding-top: var(--pa-home-section-gap) !important;
  width: 100%;
}

.wp-site-blocks:has(> main > .pa-home-hero) main .pa-hub-section > .pa-hub-cards-grid,
.wp-site-blocks:has(> main > .pa-home-hero) main > .wp-block-group.alignfull > .pa-hub-cards-grid {
  margin-top: 0 !important;
  margin-bottom: var(--pa-home-section-gap) !important;
  padding-top: 0 !important;
}

.wp-site-blocks:has(> main > .pa-home-hero) main > .pa-section--dark {
  padding-top: var(--pa-home-section-gap) !important;
  padding-bottom: var(--wp--preset--spacing--60) !important;
}

/* Kompetenz-Streifen: direkt zwischen CTA (main) und Footer, ohne Root-blockGap */
.wp-site-blocks:has(> .pa-home-keyword-strip) {
  gap: 0 !important;
}

.wp-site-blocks:has(> .pa-home-keyword-strip) > main + .pa-home-keyword-strip,
.wp-site-blocks:has(> .pa-home-keyword-strip) > .pa-home-keyword-strip + .wp-block-template-part:has(.pa-site-footer) {
  margin-block-start: 0 !important;
}

/* Hub-CTA → Streifen: kein zusätzlicher Abstand unter dem Teaser */
.wp-site-blocks:has(> .pa-home-keyword-strip) main .pa-hub-cta-teaser,
main .pa-hub-cta-teaser:has(+ .pa-home-keyword-strip),
main .pa-kontakt-cta:has(+ .pa-home-keyword-strip) {
  margin-bottom: 0 !important;
}

/* Kontakt: Streifen im Page-Content direkt unter dem CTA, vor dem Footer */
main .pa-home-keyword-strip:last-child {
  margin-bottom: 0;
}

.wp-site-blocks main + .pa-home-keyword-strip,
main .pa-hub-cta-teaser + .pa-home-keyword-strip,
main .pa-kontakt-cta + .pa-home-keyword-strip {
  margin-top: 0;
}

/*
 * Tools/Tipps: Modul-Karten → CTA — ein definierter Abstand, blockGap nicht zusätzlich stapeln.
 */
.wp-site-blocks main .wp-block-columns.is-style-pa-editorial-split:has(+ .pa-hub-cta-teaser) {
  margin-bottom: var(--pa-hub-modules-cta-gap) !important;
}

.wp-site-blocks main .wp-block-columns.is-style-pa-editorial-split + .pa-hub-cta-teaser:not(.pa-digitale-loesungen-cta) {
  margin-top: calc(-1 * var(--wp--preset--spacing--40)) !important;
}

/* Hero cover: volle Breite (Startseite + Hub-Seiten), auch in constrained post-content */
.wp-site-blocks main .wp-block-cover.pa-home-hero,
.wp-site-blocks main .wp-block-cover.pa-hub-hero,
.wp-site-blocks main .pa-home-hero.pa-register-grid,
.wp-site-blocks main .pa-hub-hero.pa-register-grid {
  margin-inline: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

main .is-layout-constrained > .wp-block-cover.pa-home-hero,
main .is-layout-constrained > .wp-block-cover.pa-hub-hero,
.wp-block-post-content.is-layout-constrained > .wp-block-cover.pa-home-hero,
.wp-block-post-content.is-layout-constrained > .wp-block-cover.pa-hub-hero {
  margin-inline: calc(-1 * var(--pa-hero-breakout-inline)) !important;
  max-width: none !important;
  width: auto !important;
}

@media (min-width: 1024px) {
  .wp-site-blocks main .pa-hub-hero.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: 920px;
  }
}

.wp-site-blocks main > .wp-block-group.alignwide > .wp-block-columns.alignwide:first-child,
.wp-site-blocks main > .wp-block-group.alignfull > .wp-block-columns.alignwide:first-child,
.wp-site-blocks main > .wp-block-columns.alignwide:first-child {
  padding-top: var(--pa-content-top-space) !important;
}

/* page.html: Titelband — gleicher Einstieg wie Hub-Hero */
.wp-site-blocks main > .wp-block-group.alignfull:first-of-type:not(.pa-home-hero):not(.pa-hub-hero) {
  padding-top: var(--pa-content-top-space) !important;
}

/* Home hero has its own top rhythm; avoid stacking an extra generic columns top padding. */
.wp-site-blocks main .pa-home-hero > .pa-home-hero-content:first-child,
.wp-site-blocks main .pa-home-hero > .wp-block-columns.alignwide:first-child {
  padding-top: 0 !important;
}

/* Hub-Karten: seitlicher Abstand wenn Columns direkt in main liegen (Legacy/DB-Kopien) */
main.wp-block-group > .wp-block-columns.alignwide.pa-reveal-group {
  box-sizing: border-box;
  max-width: var(--wp--style--global--wide-size);
  padding-inline: var(--wp--style--root--padding-left, var(--wp--preset--spacing--50));
  margin-inline: auto;
}

.pa-section--tight {
  padding-block: var(--wp--preset--spacing--60);
}

.pa-section--dark {
  background-color: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
}

.pa-section--dark a {
  color: var(--wp--preset--color--base);
}

.pa-section--dark .is-style-text-annotation,
.pa-section--dark .is-style-text-specimen {
  border-color: color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent);
  color: color-mix(in srgb, var(--wp--preset--color--base) 70%, transparent);
}

.pa-section--inset {
  background-color: var(--wp--preset--color--paper-dark);
}

.pa-register-grid {
  position: relative;
}

.pa-register-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, color-mix(in srgb, var(--wp--preset--color--line) 40%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--wp--preset--color--line) 40%, transparent) 1px, transparent 1px);
  background-size: 24px 24px;
  background-position: center top;
  pointer-events: none;
  opacity: 0.35;
  z-index: 0;
}

.wp-block-cover.pa-home-hero.pa-register-grid::before {
  opacity: 0.28;
}

@media (max-width: 781px) {
  .wp-block-cover.pa-home-hero.pa-register-grid::before {
    background-size: 20px 20px;
    opacity: 0.2;
  }
}

.pa-register-grid > * {
  position: relative;
  z-index: 2;
}

.pa-offset-left {
  margin-left: clamp(0px, 8vw, 120px);
}

.pa-sticky-note {
  border-left: 1px solid var(--wp--preset--color--line);
  padding-left: var(--pa-space-5);
}

@media (max-width: 781px) {
  :root {
    --pa-content-top-space: var(--wp--preset--spacing--40);
    --pa-hero-bottom-space: var(--wp--preset--spacing--30);
    --pa-home-hero-bottom-space: var(--wp--preset--spacing--30);
  }

  .wp-site-blocks:has(> main > .pa-home-hero) {
    --pa-content-top-space: 0;
    --pa-home-hero-bottom-space: var(--wp--preset--spacing--20);
  }

  .pa-grid-12 {
    grid-template-columns: 1fr;
  }

  .pa-col-span-4,
  .pa-col-span-5,
  .pa-col-span-6,
  .pa-col-span-7,
  .pa-col-span-8 {
    grid-column: span 1;
  }

  .pa-offset-left {
    margin-left: 0;
  }
}
