/**
 * Unterseiten – Layout via kontakt.css.
 */

/* —— Hero Subpage (angelehnt an Startseite) —— */
.subpage-hero {
  position: relative;
  padding-top: 0.5rem;
  padding-inline: 0;
  overflow: visible;
}

.subpage-hero.section-panel--top {
  /*padding-bottom: calc(var(--curve-overlap) + 0rem);*/
}

.subpage-hero__schwung {
  z-index: 1;
}

.subpage-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: start;
  position: relative;
  z-index: 2;
  /* max-width + gutter via .page-inner */
}

@media (min-width: 900px) {
  .subpage-hero__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }

  .subpage-hero__inner:not(:has(.page-header-media)):not(:has(.subpage-hero__img)) {
    grid-template-columns: 1fr;
  }
}

.subpage-hero__media {
  display: block;
  align-self: start;
  overflow: visible;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.subpage-hero__media:not(:has(.page-header-media)):not(:has(img)) {
  display: none;
}

.subpage-hero .page-header-media {
  margin: 0;
  line-height: 0;
}

.subpage-hero__img,
.subpage-hero .page-header-media__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: top right;
}

.subpage-hero__text {
  align-self: start;
}

.subpage-hero__text h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-page-title);
  letter-spacing: 0;
  color: var(--blau-baer);
  margin: 0 0 0.75rem;
  line-height: var(--lh-page-title);
}

.page--subpage-simple .subpage-hero__text h1 {
  color: var(--hand-gruen);
}

.subpage-hero__text .lead {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  line-height: 1.4;
  color: var(--blau-baer);
  margin: 0 0 1rem;
  max-width: 40rem;
}

.page--subpage-simple .subpage-hero__text .lead {
  color: var(--hand-gruen);
}

/* Editierbarer Content rechts (Block „Bereich im Header“) */
.subpage-hero__body {
  color: var(--blau-baer);
}

.page--subpage-simple .subpage-hero__body {
  color: var(--hand-gruen);
}

.subpage-hero__body :is(h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: 800;
  color: inherit;
  line-height: 1.2;
}

.subpage-hero__body h2 {
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  margin: 1.25rem 0 0.75rem;
}

.subpage-hero__body h2:first-child {
  margin-top: 0;
}

.subpage-hero__body h3 {
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  margin: 1rem 0 0.5rem;
}

.subpage-hero__body h4 {
  font-size: 1.0625rem;
  margin: 0.875rem 0 0.5rem;
}

.subpage-hero__body :is(p, li) {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.5vw, 1.125rem);
  line-height: 1.45;
  color: inherit;
}

.subpage-hero__body p {
  margin: 0 0 0.75rem;
}

.subpage-hero__body ul,
.subpage-hero__body ol {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
}

.subpage-hero__body ul {
  list-style: disc;
}

.subpage-hero__body a {
  color: inherit;
}

.subpage-hero__body strong {
  font-weight: 800;
}

.subpage-hero__body > :first-child {
  margin-top: 0;
}

.subpage-hero__body > :last-child {
  margin-bottom: 0;
}

/* Subpage (einfach): grüner Inhalt wie Startseite „Unsere Projekte“ */
.page--subpage-simple .kontakt-main.section-bridge--to-green .kontakt-content.section-panel--bottom {
  padding-top: 2.5rem;
  padding-bottom: calc(var(--curve-overlap) + 7rem);
}

.page--subpage-simple .kontakt-content__inner {
  position: relative;
  z-index: 2;
  /* max-width + gutter via .page-inner */
  padding-bottom: 2rem;
}

.page--subpage-simple .kontakt-tail--to-footer {
  margin-top: calc(-1 * var(--curve-overlap));
}

.page--subpage-simple .kontakt-content__inner :is(h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--text-on-green);
  line-height: 1.2;
}

.page--subpage-simple .kontakt-content__inner h2 {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  margin: 2rem 0 1rem;
}

.page--subpage-simple .kontakt-content__inner h2:first-child {
  margin-top: 0;
}

.page--subpage-simple .kontakt-content__inner h3 {
  font-size: clamp(1.125rem, 1.75vw, 1.375rem);
  margin: 1.5rem 0 0.75rem;
}

.page--subpage-simple .kontakt-content__inner h4 {
  font-size: 1.0625rem;
  margin: 1.25rem 0 0.5rem;
}

.page--subpage-simple .kontakt-content__inner :is(p, li) {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--text-on-green);
}

.page--subpage-simple .kontakt-content__inner p {
  margin: 0 0 1rem;
}

.page--subpage-simple .kontakt-content__inner ul,
.page--subpage-simple .kontakt-content__inner ol {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

.page--subpage-simple .kontakt-content__inner a:not(.ezh-btn) {
  color: var(--text-on-green);
}

.page--subpage-simple .kontakt-content__inner img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.page--subpage-simple .kontakt-content__inner blockquote {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 3px solid var(--text-on-green);
  color: var(--text-on-green);
}

.page--subpage-simple .kontakt-content__inner .wp-block-columns {
  gap: 2rem;
  margin-block: 1.5rem;
}

.page--subpage-simple .kontakt-content__inner .ezh-two-columns {
  margin-block: 1.5rem;
}

/* Blog-Detail: Meta links (30%) / Inhalt rechts (70%); Mobile: Inhalt zuerst */
.page--single .single-content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  align-items: start;
}

.page--single .single-content__meta,
.page--single .single-content__main {
  min-width: 0;
  width: 100%;
  margin-top: 0;
  padding-top: 0;
}

.page--single .single-content__meta {
  order: 2;
}

.page--single .single-content__main {
  order: 1;
}

/* Erste Elemente beider Spalten starten ohne Extra-Abstand (gleicher Top-Rand) */
.page--single .single-content__main > :first-child,
.page--single .single-meta > :first-child {
  margin-top: 0;
  margin-block-start: 0;
  padding-top: 0;
}

.page--single .single-content__main > :first-child > :first-child {
  margin-top: 0;
  margin-block-start: 0;
}

@media (min-width: 900px) {
  .page--single .single-content {
    display: grid;
    grid-template-columns: 3fr 7fr;
    grid-template-areas: "meta main";
    gap: 2.5rem;
    align-items: start;
  }

  .page--single .single-content__meta {
    grid-area: meta;
    order: 0;
    align-self: start;
    width: auto;
  }

  .page--single .single-content__main {
    grid-area: main;
    order: 0;
    align-self: start;
    width: auto;
  }
}

.page--single .single-meta {
  color: var(--text-on-green);
  margin: 0;
  padding: 0;
}

.page--single .single-meta__fixed {
  margin: 0 0 1.25rem;
  padding: 0;
}

.page--single .single-meta__row {
  display: grid;
  grid-template-columns: minmax(5.5rem, auto) 1fr;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.65rem;
  align-items: baseline;
}

.page--single .single-meta__row:first-child {
  margin-top: 0;
}

.page--single .single-meta__row:last-child {
  margin-bottom: 0;
}

.page--single .single-meta__row dt {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--text-on-green);
}

.page--single .single-meta__row dd {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--text-on-green);
}

.page--single .single-meta__body :is(h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--text-on-green);
  line-height: 1.2;
}

.page--single .single-meta__body h2 {
  font-size: clamp(1.125rem, 1.75vw, 1.375rem);
  margin: 1.25rem 0 0.75rem;
}

.page--single .single-meta__body h2:first-child {
  margin-top: 0;
}

.page--single .single-meta__body h3 {
  font-size: 1.0625rem;
  margin: 1rem 0 0.5rem;
}

.page--single .single-meta__body :is(p, li) {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--text-on-green);
}

.page--single .single-meta__body p {
  margin: 0 0 0.75rem;
}

.page--single .single-meta__body ul,
.page--single .single-meta__body ol {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
}

.page--single .single-meta__body > :first-child {
  margin-top: 0;
}

.page--single .single-meta__body > :last-child {
  margin-bottom: 0;
}

/* Subpage (erweitert): Zusatzbereich mit Bogen nach oben; Footer-Bogen wie bei Subpage/Kontakt */
.page--subpage-extended .subpage-extended {
  position: relative;
  overflow: visible;
  background: transparent;
  margin-top: calc(-1 * var(--curve-overlap));
  padding-top: calc(var(--curve-overlap) - 1rem);
  padding-bottom: calc(var(--curve-overlap) + 10rem);
}

.page--subpage-extended .subpage-extended::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--page-section-extended-bg, var(--beige-baer));
  z-index: 0;
}

.page--subpage-extended .subpage-extended__schwung.section-curve--up {
  background: var(--page-section-extended-bg, var(--beige-baer));
  z-index: 1;
}

.page--subpage-extended .subpage-extended__body {
  position: relative;
  z-index: 2;
  padding-bottom: 2rem;
}

.page--subpage-extended .subpage-extended__body :is(h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--blau-baer);
  line-height: 1.2;
}

.page--subpage-extended .subpage-extended__body h2 {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  margin: 2rem 0 1rem;
}

.page--subpage-extended .subpage-extended__body h2:first-child {
  margin-top: 0;
}

.page--subpage-extended .subpage-extended__body h3 {
  font-size: clamp(1.125rem, 1.75vw, 1.375rem);
  margin: 1.5rem 0 0.75rem;
}

.page--subpage-extended .subpage-extended__body h4 {
  font-size: 1.0625rem;
  margin: 1.25rem 0 0.5rem;
}

.page--subpage-extended .subpage-extended__body :is(p, li) {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--blau-baer);
}

.page--subpage-extended .subpage-extended__body p {
  margin: 0 0 1rem;
}

.page--subpage-extended .subpage-extended__body ul,
.page--subpage-extended .subpage-extended__body ol {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

.page--subpage-extended .subpage-extended__body a:not(.ezh-btn) {
  color: var(--blau-baer);
}

.page--subpage-extended .subpage-extended__body img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.page--subpage-extended .subpage-extended__body blockquote {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 3px solid var(--blau-baer);
  color: var(--blau-baer);
}

.page--subpage-extended .subpage-extended__body .wp-block-columns,
.page--subpage-extended .subpage-extended__body .ezh-two-columns {
  gap: 2rem;
  margin-block: 1.5rem;
}

.page--subpage-extended .subpage-extended__body > :first-child {
  margin-top: 0;
}

.page--subpage-extended .subpage-extended__body > :last-child {
  margin-bottom: 0;
}

/* Footer-Bogen liegt über dem Zusatzbereich (wie bei Subpage/Kontakt) */
.page--subpage-extended .kontakt-tail--has-extended .site-footer {
  margin-top: calc(-1 * var(--curve-overlap));
  position: relative;
  z-index: 1;
}

/* Subpage mit Footer-Bereich: CMS-Prose in .form-card--content */
.form-card--content h2,
.form-card--content h3,
.form-card--content h4 {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--blau-baer);
  line-height: 1.2;
}

.form-card--content h2 {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  margin: 2rem 0 1rem;
}

.form-card--content h2:first-child {
  margin-top: 0;
}

.form-card--content h3 {
  font-size: clamp(1.125rem, 1.75vw, 1.375rem);
  margin: 1.5rem 0 0.75rem;
}

.form-card--content h4 {
  font-size: 1.0625rem;
  margin: 1.25rem 0 0.5rem;
}

.form-card--content p,
.form-card--content li {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--blau-baer);
}

.form-card--content p {
  margin: 0 0 1rem;
}

.form-card--content ul,
.form-card--content ol {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

.form-card--content a:not(.ezh-btn) {
  color: var(--blau-baer);
}

.form-card--content img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.form-card--content blockquote {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 3px solid var(--blau-baer);
  color: var(--blau-baer);
}

.form-card--content .wp-block-columns {
  gap: 2rem;
  margin-block: 1.5rem;
}

/* Subpage (Text): nur Überschrift + Content, Bogen zum Footer */
.page--subpage-text .textpage-content.section-panel--top {
  padding-top: 1.5rem;
  padding-bottom: calc(var(--curve-overlap) + 7rem);
}

.page--subpage-text .textpage-content__inner {
  position: relative;
  z-index: 2;
  padding-bottom: 2rem;
}

.page--subpage-text .kontakt-tail--to-footer {
  margin-top: calc(-1 * var(--curve-overlap));
}

.page--subpage-text .textpage-content__inner h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-page-title);
  letter-spacing: 0;
  color: var(--blau-baer);
  margin: 0 0 1.5rem;
  line-height: var(--lh-page-title);
}

.page--subpage-text .textpage-content__body :is(h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--blau-baer);
  line-height: 1.2;
}

.page--subpage-text .textpage-content__body h2 {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  margin: 2rem 0 1rem;
}

.page--subpage-text .textpage-content__body h2:first-child {
  margin-top: 0;
}

.page--subpage-text .textpage-content__body h3 {
  font-size: clamp(1.125rem, 1.75vw, 1.375rem);
  margin: 1.5rem 0 0.75rem;
}

.page--subpage-text .textpage-content__body h4 {
  font-size: 1.0625rem;
  margin: 1.25rem 0 0.5rem;
}

.page--subpage-text .textpage-content__body :is(p, li) {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--blau-baer);
}

.page--subpage-text .textpage-content__body p {
  margin: 0 0 1rem;
}

.page--subpage-text .textpage-content__body ul,
.page--subpage-text .textpage-content__body ol {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

.page--subpage-text .textpage-content__body a:not(.ezh-btn) {
  color: var(--blau-baer);
}

.page--subpage-text .textpage-content__body img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.page--subpage-text .textpage-content__body blockquote {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 3px solid var(--blau-baer);
  color: var(--blau-baer);
}

.page--subpage-text .textpage-content__body .wp-block-columns {
  gap: 2rem;
  margin-block: 1.5rem;
}

.page--subpage-text .textpage-content__body > :first-child {
  margin-top: 0;
}

.page--subpage-text .textpage-content__body > :last-child {
  margin-bottom: 0;
}
