/* Preserve the frozen reference-detail geometry without empty heading line breaks. */
body[data-page-slug^="/referenzen/"]:not([data-page-slug="/referenzen/bungalows"]) .referenz-planung__title,
body[data-page-slug^="/referenzen/"]:not([data-page-slug="/referenzen/bungalows"]):not([data-page-slug="/referenzen/venhaus"]) :is(.referenz-hero__title, .cta__title),
body[data-page-slug^="/referenzen/"]:not([data-page-slug="/referenzen/bungalows"]):not([data-page-slug="/referenzen/schale"]):not([data-page-slug="/referenzen/mfh-bevergern"]):not([data-page-slug="/referenzen/sanierung-metelen"]):not([data-page-slug="/referenzen/sanierung-bevergern"]) .referenz-info__title {
  padding-block: 0.5lh;
}

/* Preserve the nested Bungalows source despite its unresolved relative font paths. */
body[data-page-slug="/referenzen/bungalows"] {
  --font-headline: Georgia, serif;
  --font-body: -apple-system, sans-serif;
  --font-mono: monospace;
}

body[data-page-slug="/referenzen/bungalows"] :is(.referenz-hero__title, .referenz-info__title, .cta__title) {
  padding-block-start: 1lh;
  padding-block-end: 0;
}

/* Match the frozen grouping after TYPO3 normalizes the three story paragraphs. */
body[data-page-slug="/ueber-uns"] [data-ce-uid="9395"] .split__text > p:nth-child(2) {
  margin-block-start: 0;
}

body[data-page-slug="/ueber-uns"] [data-ce-uid="9395"] .split__text > p:nth-child(3) {
  min-block-size: 4lh;
}

body[data-page-slug="/ueber-uns"] [data-ce-uid="9397"] .split__text {
  margin-block-end: 0;
}

body[data-page-slug="/ueber-uns"] [data-ce-uid="9397"] blockquote {
  width: calc(100% + 40px);
  margin-block-start: 128px;
}

body[data-page-slug="/ueber-uns"] [data-ce-uid="9397"] blockquote p {
  line-height: 1.7;
}

body[data-page-slug="/ueber-uns"] [data-ce-uid="9397"] .split__title {
  transform: translateY(12px);
}

/* Preserve the frozen spacing that came from decorative line breaks in the source. */
body[data-page-slug="/"] [data-ce-uid="9382"] .split__text > p:nth-child(2) {
  min-block-size: 3lh;
}

body[data-page-slug="/"] [data-ce-uid="9382"] .split__title {
  transform: translateY(12px);
}

/* The frozen "Wer wir sind" photo must stay fully visible and proportional. */
body[data-page-slug="/"] [data-ce-uid="9382"] .split__image {
  align-self: center;
}

body[data-page-slug="/"] [data-ce-uid="9382"] .split__image img {
  width: 100%;
  height: auto;
  object-fit: contain;
  transform: none;
}

body[data-page-slug="/"] [data-ce-uid="9382"] .split:hover .split__image img {
  transform: none;
}

@media (min-width: 769px) {
  body[data-page-slug="/"] [data-ce-uid="9382"] .split__content {
    transform: translateX(-20px);
  }

  body[data-page-slug="/"] [data-ce-uid="9382"] .split__image {
    transform: translateX(20px);
  }

  body[data-page-slug="/ueber-uns"] [data-ce-uid="9397"] .split__content {
    transform: translateX(20px);
  }

  body[data-page-slug="/ueber-uns"] [data-ce-uid="9397"] .split__image {
    transform: translateX(-20px);
  }
}

/* Keep the frozen visual language while meeting the WCAG AA contrast floor. */
:where(body) .header__nav a[aria-haspopup="true"],
:where(body) .before-after-gallery__item-title {
  color: #707070 !important;
}

:where(body) .header__submenu a {
  color: #666666 !important;
}

:where(body) .gallery-horizontal__number,
:where(body) .cta__button {
  background-color: #707070 !important;
}

/* Image tiles are self-explanatory; decorative counters add no useful information. */
:where(body) :is(
  .page-header__number,
  .split__number,
  .categories__number,
  .services-tiles__number,
  .referenz-card__badge,
  .referenz-card__number,
  .gallery-horizontal__number,
  .gallery-fullwidth__number,
  .gallery-grid__number,
  .gallery-fullscreen__number,
  .project-gallery__number
) {
  display: none !important;
}

:where(body) .footer {
  background-color: #666666 !important;
}

:where(body) .footer__bottom {
  background-color: #555555 !important;
}

:where(body) .footer__tagline,
:where(body) .footer__links a,
:where(body) .footer__contact {
  color: #ffffff !important;
  opacity: 1 !important;
}

:where(body) .footer__contact span,
:where(body) .footer__contact a {
  color: #ffffff !important;
  opacity: 1 !important;
}

:where(body) .footer__address {
  opacity: 1 !important;
}

/* Editor-managed footer columns use real TYPO3 container and text elements. */
:where(body) .footer__nav--managed {
  display: block;
}

:where(body) .footer__nav--managed > [data-ce-type="mincore_columns4"],
:where(body) .footer__nav--managed > [data-ce-type="mincore_columns4"] > .mincore-columns,
:where(body) .footer__nav--managed .mincore-columns__col > [data-ce-type="text"] {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
}

:where(body) .footer__nav > .frame,
:where(body) .footer__nav .mincore-columns,
:where(body) .footer__nav .mincore-columns__col > .frame,
:where(body) .footer__nav .mincore-columns__col > .frame > .frame-group-container,
:where(body) .footer__nav .mincore-columns__col .text {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
}

:where(body) .footer__nav > .frame > .frame-group-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

:where(body) .footer__nav .mincore-columns__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-lg, 2rem);
}

:where(body) .footer__nav .mincore-columns__col {
  min-width: 0;
}

:where(body) .footer__nav .mincore-columns__col h3 {
  margin: 0 0 var(--space-sm, 1rem);
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

:where(body) .footer__nav .mincore-columns__col :is(p, li, a) {
  color: #ffffff;
}

:where(body) .footer__nav .mincore-columns__col p {
  margin: 0;
}

:where(body) .footer__nav--managed .mincore-columns__col:last-child p {
  line-height: 1.8;
}

@media (max-width: 900px) {
  :where(body) .footer__nav .mincore-columns__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  :where(body) .footer__nav .mincore-columns__row {
    grid-template-columns: 1fr;
  }
}

:where(main p a, main li a) {
  text-decoration-line: underline;
  text-underline-offset: 0.12em;
}

/* Full-bleed contact media keeps its caption inside the readable viewport. */
body[data-page-slug="/kontakt"] [data-ce-uid="9391"].article__figure--wide figcaption {
  box-sizing: border-box;
  width: auto;
  max-width: calc(100% - (2 * var(--container-padding, 1.5rem)));
  margin-inline: var(--container-padding, 1.5rem);
  overflow-wrap: anywhere;
}

/* Standalone content images open in Fancybox without changing their geometry. */
:where(body) .mincore-standalone-lightbox {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  color: inherit;
  cursor: zoom-in;
}

:where(body) .mincore-standalone-lightbox > img,
:where(body) .mincore-standalone-lightbox > picture,
:where(body) .mincore-standalone-lightbox > picture > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
}

/* Unconfirmed social profiles must not be published as customer links. */
:where(body) :is(.footer__social, .contact__social),
:where(body) .footer :is(
  a[href*="instagram.com"],
  a[href*="facebook.com"]
),
:where(body) .footer li:has(> :is(
  a[href*="instagram.com"],
  a[href*="facebook.com"]
)) {
  display: none !important;
}

/* Close the remaining AA contrast gaps in text, filters, forms and map consent. */
:where(body) .gallery-horizontal__detail,
:where(body) .referenz-filter__label,
:where(body) .referenz-card__desc,
:where(body) .gallery-fullwidth__hint,
:where(body) .referenz-nav__current,
:where(body) .reviews__source,
:where(body) .contact__block > p,
:where(body) .contact__block > address,
:where(body) .ce-page-header__subtitle > p,
:where(body) .contact__note,
:where(body) [data-editable="cta-text"] .min-paragraph,
:where(body) [data-editable="bungalow-nordwalde-cta-text"] .min-paragraph {
  color: #666666 !important;
  opacity: 1 !important;
}

:where(body) .referenz-grid .min-paragraph,
:where(body) .ce-page-header__subtitle > p,
:where(body) .contact__note {
  color: #666666 !important;
  opacity: 1 !important;
}

:where(body) .cta__text,
:where(body) .ce-page-header__subtitle {
  opacity: 1 !important;
}

:where(body) .map-section__info {
  background-color: #666666 !important;
}

:where(body) .map-section__address,
:where(body) .map-section__phone {
  color: #ffffff !important;
  opacity: 1 !important;
}

:where(body) #map-consent-btn,
:where(body) .form__submit {
  background-color: #707070 !important;
  color: #ffffff !important;
}

:where(body) .form__label--checkbox > a {
  color: #666666 !important;
  text-decoration-line: underline;
  text-underline-offset: 0.12em;
}

/* Keep the mobile trigger in the header; only the menu panel slides off-canvas. */
@media (max-width: 768px) {
  :where(body) .header__nav {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    overflow: visible !important;
    padding: 0 !important;
    background: transparent !important;
    z-index: auto !important;
  }

  :where(body) .header__menu {
    position: fixed !important;
    inset: var(--ce-nav-height, 5rem) 0 0 0 !important;
    width: auto !important;
    height: auto !important;
    transform: translateX(100%) !important;
    z-index: 999 !important;
  }

  :where(body) .header__menu[data-open="true"],
  :where(body) .header[data-mobile-open="true"] .header__menu,
  :where(body) .header__menu.is-open {
    transform: translateX(0) !important;
  }
}

/* Real TYPO3 Form Framework content, preserving the frozen contact geometry. */
body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] {
  max-width: none;
  padding: var(--min-space-section, 4rem) var(--min-container-padding, 1.5rem);
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] > .mincore-columns {
  width: 100%;
  max-width: var(--min-container-max, 1280px);
  margin-inline: auto;
  padding: 0;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .mincore-columns__row {
  display: grid;
  max-width: var(--min-container-max, 1280px);
  margin-inline: auto;
  grid-template-columns: 1fr 1.5fr;
  gap: var(--min-space-section, 4rem);
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .contact__heading,
body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] form > h2,
body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .mincore-columns__col--right h2:first-child {
  margin: 0 0 4rem;
  color: var(--min-color-primary, #707070);
  font-family: var(--min-font-heading, inherit);
  font-size: 1.5rem;
  font-weight: 400;
}

body[data-page-slug="/kontakt"] :is(.contact__block, .contact__social) a,
body[data-page-slug="/kontakt"] :is(.contact__block, .contact__social) a:visited {
  color: var(--min-color-text, #1e1e1e) !important;
}

body[data-page-slug="/kontakt"] :is(.contact__block, .contact__social) a:is(:hover, :focus-visible) {
  color: #555555 !important;
}

body[data-page-slug="/kontakt"] .contact__block h3 {
  color: var(--min-color-text, #1e1e1e) !important;
}

body[data-page-slug="/ueber-uns"] .categories__title {
  font-size: 2.75rem;
  line-height: 1.2;
}

body[data-page-slug="/leistungen/sanierung-und-umbau"] .gallery-horizontal__link {
  display: none;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__group {
  margin-block-end: 2rem;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__label {
  display: block;
  margin-block-end: 0.5rem;
  color: var(--min-color-text, #1e1e1e);
  font-size: 0.9rem;
  font-weight: 600;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] :is(.form__input, .form__select, .form__textarea) {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid var(--min-color-border, #d0d0d0);
  border-radius: var(--min-radius-sm, 0.25rem);
  background: var(--min-color-bg, #fff);
  color: var(--min-color-text, #1e1e1e);
  font: inherit;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] :is(.form__input, .form__select, .form__textarea):focus {
  border-color: var(--min-color-primary, #707070);
  outline: 2px solid color-mix(in srgb, var(--min-color-primary, #707070) 35%, transparent);
  outline-offset: 1px;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__textarea {
  min-height: 8rem;
  resize: vertical;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__checkbox {
  display: flex;
  width: 100%;
  height: auto;
  align-items: flex-start;
  gap: 0.75rem;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__checkbox-input {
  flex: 0 0 auto;
  width: 1.125rem;
  height: 1.125rem;
  margin-block-start: 0.2rem;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__label--checkbox {
  flex: 1 1 auto;
  margin: 0;
  font-weight: 400;
  line-height: 1.7;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__submit {
  display: inline-block;
  padding: 1rem 2.5rem;
  border: 0;
  border-radius: var(--min-radius-sm, 0.25rem);
  background: #707070;
  color: #fff;
  cursor: pointer;
  font-family: var(--min-font-body, inherit);
  font-size: 0.9rem;
  font-weight: 500;
  text-transform: uppercase;
}

body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .form__submit:hover {
  background: var(--min-color-accent, #cd1719);
}

@media (max-width: 900px) {
  body[data-page-slug="/kontakt"] [data-ce-type="mincore_columns2"] .mincore-columns__row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  body[data-page-slug="/ueber-uns"] .categories__title {
    font-size: 2rem;
  }

  body[data-page-slug="/referenzen/schale"] .referenz-info {
    display: block;
    box-sizing: border-box;
  }

  body[data-page-slug="/referenzen/schale"] :is(
    .referenz-info__container,
    .referenz-info__text,
    .referenz-info__data,
    .projekt-data,
    .projekt-data__item
  ) {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  body[data-page-slug="/referenzen/schale"] .referenz-info__container,
  body[data-page-slug="/referenzen/schale"] .projekt-data {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-page-slug="/referenzen/schale"] .projekt-data__value {
    overflow-wrap: anywhere;
  }
}
