/* DGM-Inventum header: navigation, mega panels and header actions.
   Included only for site dgm-inventumgmbh (TypoScript). The markup comes from Partials/Page/InventumMainMenu.html,
   which the page layout renders only for that site, so the shared header of DGM and the other tenants is untouched. */
:root {
  --im-ink: #161513; --im-text: #3f3b36; --im-muted: #6b675f; --im-line: #e6e1d8; --im-canvas: #fbfaf9; --im-stone: #f3f1ec;
  --im-accent: #08739c; --im-accent-strong: #0a7aa6; --im-accent-line: #bcdbe8;
  --im-font: "Theme-Font", Inter, system-ui, sans-serif; --im-display: "Heading-Font", "Inter Tight", "Theme-Font", Inter, system-ui, sans-serif;
  --im-ease: cubic-bezier(.23, 1, .32, 1);
}

/* ---------- Header row: logo, navigation, actions on one line aligned with the 1200px content ---------- */
@media (min-width: 1280px) {
  .dgm-page-shell .mainmenu > .container:has(> .flex > .inv-mainnav) { max-width: 1280px; padding-left: 40px; padding-right: 40px; }
  .dgm-page-shell .mainmenu > .container > .flex:has(> .inv-mainnav) { justify-content: flex-start; gap: 0; }
  .dgm-page-shell .mainmenu:not(.dgm-mainmenu--compact) > .container > .flex:has(> .inv-mainnav) { padding-top: 18px; padding-bottom: 18px; }
  .dgm-page-shell .mainmenu > .container > .flex:has(> .inv-mainnav) > * { margin-left: 0; margin-right: 0; }
  .dgm-page-shell .mainmenu > .container > .flex:has(> .inv-mainnav) > :first-child { flex: none; width: auto; padding: 0; }
  .dgm-page-shell .mainmenu > .container > .flex:has(> .inv-mainnav) > .inv-mainnav { margin-left: 32px; }
  .dgm-page-shell .mainmenu > .container > .flex:has(> .inv-mainnav) > .inv-hdr-actions { margin-left: auto; }
}
@media (min-width: 1440px) {
  .dgm-page-shell .mainmenu > .container > .flex:has(> .inv-mainnav) > .inv-mainnav { margin-left: 44px; }
}
/* Floating header: solid warm white with a hairline instead of the shared frosted glass. */
.dgm-page-shell:not(.dgm-page-shell--fullscreen-hero) .mainmenu.dgm-mainmenu--float:has(.inv-mainnav)::before {
  background: rgba(251, 250, 249, .96); backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: 0;
  box-shadow: 0 1px 0 rgba(22, 21, 19, .07), 0 12px 28px -20px rgba(22, 21, 19, .3);
}

/* ---------- Navigation ---------- */
.inv-mainnav { align-items: center; gap: 2px; font-family: var(--im-font); }
.inv-mainnav__item { position: relative; }
/* Mega panels are positioned against the whole header (.mainmenu), not against their trigger. */
.inv-mainnav__item--mega { position: static; }
.inv-mainnav__link {
  display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 11px; border-radius: 10px;
  color: var(--im-ink); font: 600 14.5px/1 var(--im-font); letter-spacing: -.006em; text-decoration: none; white-space: nowrap;
  transition: background-color 160ms ease, color 160ms ease;
}
.inv-mainnav__link:hover, .inv-mainnav__link.is-open { background: var(--im-stone); color: var(--im-ink); }
.inv-mainnav__link.is-active { color: var(--im-accent); }
.inv-mainnav__link:focus-visible { outline: 2px solid var(--im-accent-strong); outline-offset: 2px; }
.inv-mainnav__chev { margin-top: 1px; font-size: 9px; color: var(--im-muted); transition: transform 200ms var(--im-ease); }
.inv-mainnav__link.is-open .inv-mainnav__chev { transform: rotate(180deg); color: var(--im-ink); }
@media (min-width: 1440px) {
  .inv-mainnav__link { padding: 0 13px; font-size: 15px; }
}

/* ---------- Actions: language, login, DGM.de, primary button ---------- */
.inv-hdr-actions { align-items: center; gap: 2px; margin-left: auto; font-family: var(--im-font); }
.inv-hdr-lang { position: relative; }
.inv-hdr-util {
  display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 10px; border: 0; border-radius: 10px;
  background: transparent; color: var(--im-text); font: 500 14px/1 var(--im-font); text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease;
}
.inv-hdr-util:hover { background: var(--im-stone); color: var(--im-ink); }
.inv-hdr-util:focus-visible { outline: 2px solid var(--im-accent-strong); outline-offset: 2px; }
.inv-hdr-util > i { font-size: 15px; color: var(--im-muted); }
.inv-hdr-util__code { font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.inv-hdr-util > .inv-hdr-util__chev { font-size: 8px; transition: transform 200ms var(--im-ease); }
.inv-hdr-util__chev.is-open { transform: rotate(180deg); }
.inv-hdr-langmenu { position: absolute; top: calc(100% + 8px); right: 0; }
.inv-hdr-dgm { gap: 3px; color: var(--im-muted); }
.inv-hdr-dgm:hover { color: var(--im-ink); }
.inv-hdr-dgm__mark {
  display: inline-block; width: 45px; height: 13px; background-color: currentColor;
  -webkit-mask: url('/fileadmin/DGM/Logo/dgm-white.svg') no-repeat center / contain; mask: url('/fileadmin/DGM/Logo/dgm-white.svg') no-repeat center / contain;
}
.inv-hdr-dgm__tld { font-size: 12.5px; font-weight: 500; line-height: 1; transform: translateY(1px); }

.inv-header-cta {
  display: inline-flex; align-items: center; gap: 9px; height: 42px; margin-left: 10px; padding: 0 18px; border-radius: 999px;
  background: var(--im-accent-strong); color: #fff !important; font: 600 14.5px/1 var(--im-font); text-decoration: none; white-space: nowrap;
  box-shadow: 0 1px 2px rgba(10, 122, 166, .25), 0 10px 22px -14px rgba(10, 122, 166, .8);
  transition: background-color 160ms ease, transform 160ms var(--im-ease);
}
.inv-header-cta:hover { background: var(--im-accent); }
.inv-header-cta:active { transform: scale(.98); }
.inv-header-cta:focus-visible { outline: 2px solid var(--im-accent-strong); outline-offset: 3px; }
.inv-header-cta i { font-size: 11px; transition: transform 160ms var(--im-ease); }
.inv-header-cta:hover i { transform: translateX(2px); }

.dgm-mainmenu--overlay .inv-mainnav__link, .dgm-mainmenu--overlay .inv-hdr-util, .dgm-mainmenu--overlay .inv-hdr-util > i { color: #fff; }
.dgm-mainmenu--overlay .inv-mainnav__link:hover, .dgm-mainmenu--overlay .inv-mainnav__link.is-open, .dgm-mainmenu--overlay .inv-hdr-util:hover { background: rgba(255, 255, 255, .14); color: #fff; }

/* ---------- Mega panels ---------- */
/* The menu app writes left/right inline and animates the panel's own transform when switching menus,
   so the panel is centred with left (never with a transform). */
.inv-mega { position: absolute; top: 100%; z-index: 60; width: min(1200px, calc(100% - 32px)); margin-top: -4px; }
.inv-mega:not([data-vue-menu-portal="1"]) { left: max(16px, calc(50% - 600px)) !important; right: auto !important; }
/* Invisible bridge between trigger and panel, so moving the pointer down never crosses a gap. */
.inv-mega::before { content: ""; position: absolute; right: 0; bottom: 100%; left: 0; height: 30px; }
/* Solid card: beats the shared frosted rule (.mainmenu .flyout-menu > div, 72% white with backdrop blur). */
.dgm-page-shell .mainmenu .flyout-menu.inv-mega > .inv-mega__card, .inv-mega > .inv-mega__card {
  overflow: hidden; border: 0 !important; border-radius: 20px; background-color: #fff !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  box-shadow: 0 0 0 1px rgba(22, 21, 19, .07), 0 32px 64px -28px rgba(22, 21, 19, .32), 0 10px 24px -16px rgba(22, 21, 19, .16) !important;
}
.inv-mega__inner { padding: 26px 28px 0; color: var(--im-text); font-family: var(--im-font); text-align: left; }
.inv-mega p { margin: 0; }
.inv-mega ul { margin: 0; padding: 0; list-style: none; }
.inv-mega li { margin: 0; padding: 0; }
.inv-mega li::before { content: none; }

.inv-mega__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--im-line); }
.inv-mega__title { color: var(--im-ink); font: 650 19px/1.2 var(--im-display); letter-spacing: -.02em; }
.inv-mega .inv-mega__lead { max-width: 68ch; margin-top: 6px; color: var(--im-muted); font-size: 14px; line-height: 1.5; text-wrap: pretty; }
.inv-mega__actions { display: flex; flex: none; align-items: center; gap: 8px; }
.inv-mega__more, .inv-mega__ghost {
  display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border-radius: 999px;
  font-size: 14px; font-weight: 600; line-height: 1; text-decoration: none; white-space: nowrap;
  transition: background-color 160ms ease, box-shadow 160ms ease;
}
.inv-mega__more { background: var(--im-ink); color: #fff !important; }
.inv-mega__more:hover { background: #33302c; }
.inv-mega__more i { font-size: 11px; transition: transform 160ms var(--im-ease); }
.inv-mega__more:hover i { transform: translateX(2px); }
.inv-mega__ghost { color: var(--im-ink); box-shadow: inset 0 0 0 1px var(--im-line); }
.inv-mega__ghost:hover { background: var(--im-stone); }

.inv-mega__icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 10px; font-size: 13px; }
.inv-mega__icon--1 { background: #d5edf8; color: #0081b3; }
.inv-mega__icon--2 { background: #d7f0e4; color: #128a5e; }
.inv-mega__icon--3 { background: #f8ead0; color: #ab7410; }
.inv-mega__icon--4 { background: #f9dfd9; color: #c2513d; }
.inv-mega__icon--5 { background: #dce7f8; color: #3a63b8; }
.inv-mega__icon--6 { background: #e8e2f7; color: #6d54c6; }

.inv-mega__groups { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 20px; padding: 22px 0 22px; }
.inv-mega__group { min-width: 0; }
.inv-mega .inv-mega__group-title { display: flex; align-items: center; gap: 10px; min-height: 36px; margin-bottom: 8px; color: var(--im-ink); font: 650 13.5px/1.3 var(--im-font); }
.inv-mega__group ul { display: grid; gap: 1px; }
.inv-mega__link {
  display: block; margin-left: -10px; padding: 7px 10px; border-radius: 9px; color: var(--im-text); font-size: 14px; line-height: 1.35;
  text-decoration: none; transition: background-color 140ms ease, color 140ms ease;
}
.inv-mega__link:hover { background: var(--im-stone); color: var(--im-ink); }

.inv-mega__formats { display: flex; align-items: center; gap: 10px 16px; margin: 0 -28px; padding: 14px 28px; border-top: 1px solid var(--im-line); background: var(--im-canvas); }
.inv-mega .inv-mega__formats-label { flex: none; color: var(--im-muted); font-size: 12px; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.inv-mega .inv-mega__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.inv-mega__chip {
  display: inline-flex; align-items: center; height: 30px; padding: 0 11px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--im-line);
  color: var(--im-text); font-size: 13px; font-weight: 500; line-height: 1; text-decoration: none; white-space: nowrap; transition: box-shadow 140ms ease, color 140ms ease;
}
.inv-mega__chip:hover, .inv-mega__chip.is-active { box-shadow: inset 0 0 0 1px var(--im-accent-line); color: var(--im-accent); }
.inv-mega__textlink { display: inline-flex; flex: none; align-items: center; gap: 7px; margin-left: auto; color: var(--im-accent); font-size: 13.5px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.inv-mega__textlink i { font-size: 10px; transition: transform 160ms var(--im-ease); }
.inv-mega__textlink:hover i { transform: translateX(3px); }

.inv-mega__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 22px 0 28px; }
.inv-mega__tile {
  display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px; border-radius: 14px;
  box-shadow: inset 0 0 0 1px var(--im-line); color: var(--im-text); text-decoration: none; transition: background-color 160ms ease, box-shadow 160ms ease;
}
.inv-mega__tile:hover { background: var(--im-canvas); box-shadow: inset 0 0 0 1px var(--im-accent-line); }
.inv-mega__tile.is-active { box-shadow: inset 0 0 0 1px var(--im-accent-line); }
.inv-mega__tile-body { min-width: 0; }
.inv-mega__tile-body strong { display: block; color: var(--im-ink); font: 650 15px/1.3 var(--im-display); letter-spacing: -.01em; }
.inv-mega__tile-body span { display: -webkit-box; margin-top: 5px; overflow: hidden; color: var(--im-muted); font-size: 13.5px; line-height: 1.5; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.inv-mega__feature {
  display: flex; flex-direction: column; justify-content: space-between; gap: 14px; padding: 18px; border-radius: 14px;
  background: #13232c; color: #fff !important; text-decoration: none; transition: background-color 160ms ease;
}
.inv-mega__feature:hover { background: #1a2f3a; }
.inv-mega__feature-kicker { color: #8fdcf5; font-size: 12px; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.inv-mega__feature strong { font: 650 17px/1.3 var(--im-display); letter-spacing: -.01em; }
.inv-mega__feature-link { display: inline-flex; align-items: center; gap: 8px; color: #cdeefb; font-size: 14px; font-weight: 600; }

.inv-mega a:focus-visible { outline: 2px solid var(--im-accent-strong); outline-offset: 2px; }

@media (max-width: 1365px) {
  .inv-mega__groups { gap: 0 14px; }
  .inv-mega__link { font-size: 13.5px; }
}

/* The sticky page bar (platform-showcase.js, on <body>, z-index 1000) would cover anything that opens below the
   header (mega panels, language menu, DGM.de tooltip), which live inside the header wrap (z-index 50).
   While one of them is open the bar steps aside. */
body:has(.mainmenu [aria-expanded="true"], .mainmenu .dgm-mainlink-anchor:hover) .inv-pagebar.is-visible { opacity: 0; pointer-events: none; transform: translateY(calc(var(--pagebar-top, 0px) - 12px)); }

/* ---------- Mobile sheet (shared markup, Inventum tone) ---------- */
.dgm-mainmenu-mobile__sheet { background: var(--im-canvas); font-family: var(--im-font); }
.dgm-mainmenu-mobile__row-link { color: var(--im-ink); font-weight: 650; }
.dgm-mainmenu-mobile__row-link.is-current, .dgm-mainmenu-mobile__child.is-current { color: var(--im-accent); }
.dgm-mainmenu-mobile__row-icon, .dgm-mainmenu-mobile__child-icon { color: var(--im-accent); }
/* Footer: "Projekt besprechen" is the primary button; the shared Login button becomes secondary. */
.dgm-mainmenu-mobile__footer .dgm-mainmenu-mobile__cta.inv-mm-cta { gap: 10px; background: var(--im-accent-strong) !important; border-color: var(--im-accent-strong) !important; color: #fff !important; }
.dgm-mainmenu-mobile__footer .dgm-mainmenu-mobile__cta--primary:not(.inv-mm-cta) { background: #fff !important; border-color: var(--im-line) !important; color: var(--im-ink) !important; }
.dgm-mainmenu-mobile__footer .dgm-mainmenu-mobile__cta.inv-mm-cta i { font-size: 13px; }

/* ---------- Footer (shared markup): plain sans headings instead of the monospace captions ---------- */
footer nav[aria-label="Footer"] a.font-mono { font-family: var(--im-font); font-size: 14px; font-weight: 650; letter-spacing: -.005em; text-transform: none; color: var(--im-ink); }
footer nav[aria-label="Footer"] li li a { font-size: 14px; color: var(--im-muted); }
footer nav[aria-label="Footer"] li li a:hover, footer nav[aria-label="Footer"] a.font-mono:hover { color: var(--im-accent); }
footer .font-mono { font-family: var(--im-font); letter-spacing: .02em; }

@media (prefers-reduced-motion: reduce) {
  .inv-mainnav__link, .inv-mainnav__chev, .inv-hdr-util, .inv-hdr-util__chev, .inv-header-cta, .inv-header-cta i, .inv-mega__more i,
  .inv-mega__link, .inv-mega__chip, .inv-mega__tile, .inv-mega__feature, .inv-mega__textlink i { transition: none; }
  .inv-header-cta:active, .inv-header-cta:hover i, .inv-mega__more:hover i, .inv-mega__textlink:hover i { transform: none; }
}
