/* ==========================================================
   OLIVERO – Konsolidiert: Banner Overlay + Full-Bleed + Header
   Konvention: Banner-Blöcke heißen block-olivero-banner-*
   ========================================================== */

/* ---------- 0) Sicherheitsnetz gegen 100vw-Overflow ---------- */
body { 
	overflow-x: hidden; 
}
html {
  overflow-x: hidden;
}

/* ---------- 1) Outer wrappers: Full-bleed technisch ermöglichen ---------- */
#page-wrapper.page-wrapper,
#main-wrapper.layout-main-wrapper.layout-container,
.layout-container {
  max-width: none !important;
  width: 100%;
}

#page-wrapper.page-wrapper {
  margin: 0 !important;
}

/* Desktop-Gutter neutralisieren */
@media (min-width: 75rem) {
  body {
    --content-left: 0px;
    --scrollbar-width: 0px;
  }
}

/* ---------- 2) Content wieder auf lesbare Breite ---------- */
.main-content__container.container {
  max-width: var(--max-width);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

/* ---------- 3) Full-bleed für alle Banner-Blöcke ---------- */
[id^="block-olivero-banner-"] {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* ---------- 4) Banner Overlay ---------- */
[id^="block-olivero-banner-"] .block__content {
  display: grid;
}

[id^="block-olivero-banner-"] .field--name-field-image {
  grid-area: 1 / 1;
  z-index: 0;
}

[id^="block-olivero-banner-"] .block__title {
  display: none;
}

[id^="block-olivero-banner-"] .block__content::before {
  content: "";
  grid-area: 1 / 1;
  z-index: 1;
  background: rgba(0, 0, 0, 0.20);
  pointer-events: none;
}

[id^="block-olivero-banner-"] .field--name-body {
  grid-area: 1 / 1;
  z-index: 2;
  align-self: center;
  justify-self: center;
  text-align: left;
  padding: 1rem;
  background: transparent;
  font-family: var(--font-sans);
  font-weight: 800;
  line-height: 1.15;
}

[id^="block-olivero-banner-"] .field--name-body p {
  font-size: clamp(2.2rem, 2.9vw, 4rem);
  margin: 0;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}

/* ---------- 4b) Hero/Banner-Bildfenster + linker Fokus ---------- */
[id^="block-olivero-banner-"] .field--name-field-media-image > .field__item {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 220px;
  max-height: 600px;
  overflow: hidden;
}

[id^="block-olivero-banner-"] .field--name-field-media-image > .field__item > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: left center !important;
}

/* ---------- 5) Header ---------- */
.social-bar {
  display: none !important;
}

.site-header__initial,
.sticky-header-toggle {
  display: none !important;
}

.site-header,
.site-header__fixable,
.site-header__inner,
.site-header__inner__container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.site-header__inner {
  padding-left: 0 !important;
  grid-template-columns: 1fr !important;
}

.container.site-header__inner__container {
  max-width: none !important;
  width: 100% !important;
  justify-content: flex-end !important;
  align-items: center !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.mobile-buttons {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.site-header {
  position: absolute !important;
  inset-block-start: var(--drupal-displace-offset-top, 0px) !important;
  inset-inline: 0 !important;
  z-index: 1000 !important;
}

.site-header__fixable {
  position: absolute !important;
  inset-block-start: 0 !important;
  inset-inline: 0 !important;
}

@media (min-width: 75rem) {
  body:not(.is-always-mobile-nav) .site-header__fixable.is-fixed {
    position: fixed !important;
    inset-block-start: var(--drupal-displace-offset-top, 0px) !important;
  }
}

.region--hero,
.region-hero {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* =========================
   Footer
   ========================= */
.site-footer,
.site-footer p,
.site-footer li,
.site-footer a {
  font-size: 1.2rem !important;
  line-height: 1.5;
}

.site-footer ul.menu {
  display: flex !important;
  flex-wrap: wrap;
  gap: 1.75rem;
  margin: 0 !important;
  padding: 0 !important;
}

/* ==========================================================
   Force sans everywhere + H1 dark gray
   ========================================================== */
:root {
  --font-serif: var(--font-sans) !important;
}

html, body {
  font-family: var(--font-sans, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif) !important;
}

.text-content,
.text-content * {
  font-family: var(--font-sans, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif) !important;
}

button, input, select, textarea {
  font-family: inherit !important;
}

h1,
h1.page-title,
.block-page-title-block h1 {
  color: #333 !important;
}

/* ---------- Mobile: Banner-Text kleiner ---------- */
@media (max-width: 48rem) {
  [id^="block-olivero-banner-"] .field--name-body p {
    font-size: clamp(1.4rem, 5vw, 2.2rem);
  }
}

/* ---------- Mobile: Tabelle besser verteilen ---------- */
@media (max-width: 48rem) {
  .text-content table {
    table-layout: fixed;
    width: 100%;
  }

  .text-content table td:first-child,
  .text-content table th:first-child {
    width: 35%;
  }
}
@media (max-width: 48rem) {
  #block-olivero-banner-fabianhoppe .field--name-body {
    align-self: end;
    padding-bottom: 1rem;
  }
}