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

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

/* ---------- 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%;
}

/* optional, wenn du wirklich komplett „flush“ willst */
#page-wrapper.page-wrapper {
  margin: 0 !important;
}

/* Desktop-Gutter neutralisieren (wichtig für Header „ganz rechts“) */
@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);
}

[id^="block-olivero-banner-"] img {
  display: block;
  width: 100%;
  height: auto;
}

/* ---------- 4) Banner Overlay (dein Inject 1, bereinigt) ---------- */

/* Bild und Text in dieselbe Grid-Zelle */
[id^="block-olivero-banner-"] .block__content {
  display: grid;
}

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

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

/* Subtiles Overlay: über Bild, unter Text */
[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;
}

/* Text overlay container (Body field) */
[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;

  /* an Olivero gekoppelt: gleiche Schriftfamilie wie Theme */
  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);
}

/* ---------- 5) Header: linke Spalte entfernen + oben „tight“ + rechtsbündig ---------- */

/* Remove empty social bar column */
.social-bar {
  display: none !important;
}

/* Remove the sticky header toggle (blue box) + initial header strip */
.site-header__initial,
.sticky-header-toggle {
  display: none !important;
}

/* Header minimal (kein Top-Whitespace, keine Linie/Schatten) */
.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;
}

/* Header-Grid nicht mehr zweispaltig reservieren */
.site-header__inner {
  padding-left: 0 !important;
  grid-template-columns: 1fr !important;
}

/* Header-Container nicht auf max-width begrenzen, Menü rechts */
.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 etwas „tight“ */
.mobile-buttons {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Falls der fixierte Header nochmal begrenzt wird */
/* @media */

/* Header aus dem Dokumentfluss nehmen, damit das Hero/Banner ganz oben starten kann */
.site-header {
  position: absolute !important;
  inset-block-start: var(--drupal-displace-offset-top, 0px) !important;
  inset-inline: 0 !important;
  z-index: 1000 !important;
}

/* Falls Olivero den inneren fixable-Wrapper positioniert: ebenfalls „overlay“ */
.site-header__fixable {
  position: absolute !important;
  inset-block-start: 0 !important;
  inset-inline: 0 !important;
}

/* Wenn Olivero in Desktop-Mode „fixed“ wird, darf er weiterhin fixed sein */
@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;
  }
}

/* Hero-Region sicher ohne Zusatzabstände */
.region--hero,
.region-hero {
  padding-top: 0 !important;
  margin-top: 0 !important;
}



/* =========================
   Footer – Title ausblenden, Links nebeneinander, Typo größer
   ========================= */


/* 2) Typo insgesamt etwas größer */
.site-footer,
.site-footer p,
.site-footer li,
.site-footer a {
  font-size: 1.2rem !important;   /* vorher 1.05rem -> jetzt deutlich sichtbar */
  line-height: 1.5;
}

/* 3) Menü-Liste im Footer horizontal (nebeneinander) */
.site-footer ul.menu {
  display: flex !important;
  flex-wrap: wrap;                /* bei schmalen Viewports umbrechen */
  gap: 1.75rem;                   /* Abstand zwischen Links */
  margin: 0 !important;
  padding: 0 !important;
}

/* ==========================================================
   OLIVERO – Force sans everywhere + H1 dark gray
   Put this at the very bottom of your custom CSS.
   ========================================================== */

/* 1) Force the theme font variables to Sans */
:root {
  --font-serif: var(--font-sans) !important;
}

/* 2) Force Sans on the whole document (including content areas) */
html, body {
  font-family: var(--font-sans, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif) !important;
}

/* Olivero commonly applies serif on .text-content (override it explicitly) */
.text-content,
.text-content * {
  font-family: var(--font-sans, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif) !important;
}

/* Make sure form controls and buttons inherit */
button, input, select, textarea {
  font-family: inherit !important;
}

/* 3) H1 in dark gray (covers page title block + general h1) */
h1,
h1.page-title,
.block-page-title-block h1 {
  color: #333 !important;
}

/* HERO/BANNER: Bildfenster definieren */
.field--name-field-media-image > .field__item {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;        /* gewünschtes Verhältnis */
  min-height: 220px;           /* mobiles Sicherheitsnetz */
  max-height: 600px;
  overflow: hidden;            /* alles außerhalb abschneiden */
}

/* Bild füllt das Fenster und wird gecroppt */
.field--name-field-media-image > .field__item > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;           /* entscheidend: crop statt shrink */
  object-position: center;     /* Fokuspunkt */
}

