/* ILA Berlin — Typography Override (Staging Test)
   Ziel: Schriftgrößen reduzieren, saubere Type Scale
   Neue Skala: 64 → 48 → 32 → 24 → 18 → 14 → 12
   Stand: 2026-04-02
*/

/* ============================================
   1. GLOBALE BASIS-TYPOGRAFIE
   ============================================ */

body {
  font-size: 18px !important;
}

h2, .h2 {
  font-size: 36px !important;
}

h3, .h3 {
  font-size: 32px !important;
}

h4, .h4 {
  font-size: 24px !important;
}

.p-m {
  font-size: 18px !important;
}

.small {
  font-size: 14px !important;
}

/* ============================================
   2. BUTTONS
   ============================================ */

.button {
  font-size: 18px !important;
}

/* ============================================
   3. HERO / LEADING PARAGRAPHS
   Hero-Titel bleiben bewusst groß (Original-Größen)
   ============================================ */

/* field-text-list: erbt jetzt body-Schriftgröße (Template von h4 auf div geändert) */

/* ============================================
   4. CONTENT-BEREICHE
   ============================================ */

/* Blog Body */
.blog-body__text p {
  font-size: 18px !important;
}

/* Text Paragraphs — h2 erbt globales h2 (36px) */

.paragraph--type--text table {
  font-size: 18px !important;
}

/* Traditional Table */
.traditional-table table {
  font-size: 18px !important;
}

/* Info Block */
.info-block h2 {
  font-size: 56px !important;
}

/* ============================================
   5. AKKORDEON
   ============================================ */

.accordion-simple button.ac-trigger {
  font-size: 24px !important;
}

.accordion-simple .name {
  font-size: 20px !important;
}

.accordion-simple .position {
  font-size: 14px !important;
}

.accordion-simple .mail,
.accordion-simple .phone,
.accordion-simple .link {
  font-size: 18px !important;
}

/* ============================================
   6. CARDS & KACHELN
   ============================================ */

.card_title {
  font-size: 24px !important;
}

.card_description,
.card p {
  font-size: 16px !important;
}

.highlight-kachel h3 {
  font-size: 24px !important;
}

.highlight-kachel .span-2x2 h3 {
  font-size: 36px !important;
}

/* ============================================
   7. SCROLLED SLIDER (Statistiken)
   ============================================ */

.scrolled-slider_percent {
  font-size: 80px !important;
}

.scrolled-slider_text {
  font-size: 24px !important;
}

/* ============================================
   8. HEADER OVERLAY (Navigation)
   ============================================ */

.header-overlay-title {
  font-size: 56px !important;
}

.header-overlay .field--name-field-title {
  font-size: 28px !important;
}

/* ============================================
   9. HEADLINE MENU
   ============================================ */

.headline-menu .button {
  font-size: 24px !important;
}

/* ============================================
   10. CALCULATOR
   ============================================ */

.calculator .block-left-text p,
.calculator .block-title {
  font-size: 28px !important;
}

.calculator .block-text {
  font-size: 18px !important;
}

/* ============================================
   11. SPEAKER
   ============================================ */

.field--name-field-speaker-name {
  font-size: 32px !important;
}

.field--name-field-speaker-position {
  font-size: 22px !important;
}

.field--name-field-speaker-description {
  font-size: 16px !important;
}

/* ============================================
   12. QUOTES SLIDER
   ============================================ */

.quotes-slider .author {
  font-size: 18px !important;
}

.quotes-slider .company {
  font-size: 14px !important;
}

/* ============================================
   13. NEWS / PRESSE
   ============================================ */

.news_tag,
.presseinformationen__date {
  font-size: 14px !important;
}

/* ============================================
   14. COOKIES BANNER
   ============================================ */

.cookies h2 {
  font-size: 28px !important;
}

.cookies p {
  font-size: 14px !important;
}

.cookies .button.primary {
  font-size: 18px !important;
}

/* ============================================
   15. BOX TABLE
   ============================================ */

.box-table .field--name-field-title {
  font-size: 28px !important;
}

/* ============================================
   16. FORMULARE
   ============================================ */

.paragraph--type--form label,
.paragraph--type--form .form-item label {
  font-size: 14px !important;
}

.paragraph--type--form input {
  font-size: 16px !important;
}

/* ============================================
   17. HOMEPAGE — STARTSEITE FIXES
   ============================================ */

/* Segment-Titel: 10-20% größer */
.ila-segment__name {
  font-size: 1.35em !important;
}

/* Video-Consent Text: kleiner auf allen Geräten */
.ila-video-consent__text {
  font-size: 13px !important;
}

/* Pfad-Boxen & Programm-Highlight Überschriften: gleiche Größe wie Section-Title */
.ila-card__body strong {
  font-size: 1.1em !important;
}

/* Countdown: Headline größer als Datum/Ort */
#ila-eb-headline {
  font-size: 28px !important;
  line-height: 1.2 !important;
}

#ila-eb-subline {
  font-size: 16px !important;
}

/* ============================================
   MOBILE (max-width: 768px)
   ============================================ */

@media (max-width: 768px) {

  body {
    font-size: 16px !important;
  }

  h2, .h2 {
    font-size: 28px !important;
  }

  h3, .h3 {
    font-size: 24px !important;
  }

  h4, .h4 {
    font-size: 20px !important;
  }

  .p-m {
    font-size: 16px !important;
  }

  .small {
    font-size: 12px !important;
  }

  .button {
    font-size: 16px !important;
  }

  /* field-text-list erbt body mobile (16px) automatisch */

  /* Video-Consent: kleiner auf Mobile, Play-Button sichtbar */
  .ila-video-consent__text {
    font-size: 11px !important;
    max-width: 280px !important;
  }

  .ila-video-consent__play {
    margin-bottom: 8px !important;
  }

  /* Segment-Titel mobile: etwas größer */
  .ila-segment__name {
    font-size: 1.25em !important;
  }

  /* Pfad-Boxen Überschriften: gleich groß wie Section-Title */
  .ila-card__body strong {
    font-size: 1.2em !important;
    display: block !important;
    margin-bottom: 6px !important;
  }

  /* Countdown mobile */
  #ila-eb-headline {
    font-size: 22px !important;
  }

  #ila-eb-subline {
    font-size: 14px !important;
  }

  /* Segmente-Überschrift: Umbruch verhindern */
  #ila-segments .ila-section-title {
    word-break: keep-all !important;
    hyphens: none !important;
  }

  /* Info Block Mobile */
  .info-block h2 {
    font-size: 36px !important;
  }

  /* Akkordeon Mobile */
  .accordion-simple button.ac-trigger {
    font-size: 20px !important;
  }

  .accordion-simple .name {
    font-size: 16px !important;
  }

  .accordion-simple .position {
    font-size: 12px !important;
  }

  .accordion-simple .mail,
  .accordion-simple .phone,
  .accordion-simple .link,
  .accordion-simple .text {
    font-size: 16px !important;
  }

  /* Cards & Kacheln Mobile */
  .highlight-kachel h3 {
    font-size: 20px !important;
  }

  /* Scrolled Slider Mobile */
  .scrolled-slider_percent {
    font-size: 56px !important;
  }

  .scrolled-slider_text {
    font-size: 18px !important;
  }

  /* Header Overlay Mobile */
  .header-overlay-title {
    font-size: 28px !important;
  }

  /* Headline Menu Mobile */
  .headline-menu .button {
    font-size: 20px !important;
  }

  /* Calculator Mobile */
  .calculator .block-left-text p,
  .calculator .block-title {
    font-size: 22px !important;
  }

  /* Cookies Mobile */
  .cookies h2 {
    font-size: 22px !important;
  }

  .cookies .button.primary {
    font-size: 16px !important;
  }

  /* News Mobile */
  .news_description,
  .presseinformationen__text {
    font-size: 16px !important;
  }

  .news_date,
  .presseinformationen__date {
    font-size: 12px !important;
  }

  /* Blog Body Mobile */
  .blog-body__text p {
    font-size: 16px !important;
  }

  /* Text Paragraph Table Mobile */
  .paragraph--type--text table {
    font-size: 16px !important;
  }

  /* Formulare Mobile */
  .paragraph--type--form label {
    font-size: 12px !important;
  }
}

/* ============================================
   TABLET (max-width: 1024px, min-width: 769px)
   ============================================ */

@media (max-width: 1024px) and (min-width: 769px) {

  body {
    font-size: 17px !important;
  }

  h2, .h2 {
    font-size: 32px !important;
  }

  h3, .h3 {
    font-size: 28px !important;
  }

  .scrolled-slider_percent {
    font-size: 64px !important;
  }
}

/* ============================================
   MEGA-MENU — Desktop Only (>768px)
   ILA Berlin Staging — April 2026
   ============================================ */

/* --- Tickets Button in Top-Menu --- */
@media screen and (min-width: 769px) {
  .region-sub-navigation .menu .menu-item a[href*="tickets"] {
    background-color: #008FD3;
    color: #fff !important;
    padding: 4px 16px 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: bold;
    text-decoration: none;
    transition: background-color 0.3s;
  }
  .region-sub-navigation .menu .menu-item a[href*="tickets"]:hover {
    background-color: #39b5b6;
  }
  .region-sub-navigation .menu .menu-item a[href*="tickets"]:after {
    display: none !important;
  }
}

/* --- Mega Menu --- */
@media screen and (min-width: 769px) {

  /* === MEGA-MENU-ACTIVE: hide original overlay content, keep nav interactive === */
  header.overlay.mega-menu-active .header-overlay__content {
    display: none !important;
  }
  header.overlay.mega-menu-active .menu_link_content {
    display: none !important;
  }
  header.overlay.mega-menu-active .region-navigation .menu-level-1 {
    display: none !important;
  }
  header.overlay.mega-menu-active .region-navigation .menu-level-2 {
    display: none !important;
  }
  header.overlay.mega-menu-active > .container > .close-overlay {
    display: none !important;
  }

  /* Keep the nav bar ABOVE the mega dropdown so it stays interactive */
  header.overlay.mega-menu-active > .container {
    position: relative;
    z-index: 100;
  }

  /* === ORIGINAL OVERLAY: keep nav interactive too === */
  header.overlay:not(.mega-menu-active) > .container {
    position: relative;
    z-index: 100;
  }

  /* The mega-dropdown: below the nav, full width */
  .mega-dropdown {
    display: none;
    position: fixed;
    left: 0;
    top: 160px;
    width: 100vw;
    bottom: 0;
    z-index: 51;
    padding: 30px 60px 60px;
    box-sizing: border-box;
    overflow-y: auto;
    pointer-events: auto;
  }

  .mega-dropdown.is-open {
    display: block !important;
  }

  /* Inner flex container — centered, compact */
  .mega-dropdown-inner {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    padding-left: 40px;
    gap: 40px;
    animation: mega-fade-in 0.7s ease-out;
    align-items: flex-start;
    flex-wrap: nowrap;
  }

  /* Slide-down animation matching the original overlay feel */
  @keyframes mega-fade-in {
    0%   { opacity: 0; transform: translateY(-50px); }
    100% { opacity: 1; transform: translateY(0); }
  }

  /* Each column */
  .mega-col {
    flex: 1 1 0;
    min-width: 140px;
  }

  /* ─── Column header — white, 22px, no prefix ─── */
  .mega-col-header {
    font-size: 22px;
    line-height: 28px;
    font-weight: bold;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 16px;
  }
  .mega-col-header a {
    color: #fff !important;
    text-decoration: none !important;
  }
  .mega-col-header a:after {
    display: none !important;
  }
  .mega-col-header a:hover {
    color: #39b5b6 !important;
  }

  /* ─── Sub-items: "// link" ─── */
  .mega-col-links {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .mega-col-links li {
    margin-bottom: 3px;
    display: flex;
    align-items: baseline;
    gap: 6px;
  }
  .mega-col-links li:before {
    content: ">";
    font-size: 13px;
    color: rgba(255,255,255,0.4);
    flex-shrink: 0;
  }
  .mega-col-links a,
  .mega-col-links span {
    color: #fff;
    font-size: 17px;
    line-height: 22px;
    text-decoration: none;
    transition: color 0.15s;
  }
  .mega-col-links a:hover {
    color: #39b5b6;
  }
  .mega-col-links a:after {
    display: none !important;
  }

  /* Placeholder items (no link) */
  .mega-col-links li:has(> span) {
    opacity: 0.4;
  }

  /* Level-3 sub-items */
  .mega-col-links .mega-sub-item {
    padding-left: 10px;
  }
  .mega-col-links .mega-sub-item a,
  .mega-col-links .mega-sub-item span {
    font-size: 13px;
    color: rgba(255,255,255,0.75);
  }
  .mega-col-links .mega-sub-item:before {
    font-size: 12px;
    color: rgba(255,255,255,0.25);
  }
  .mega-col-links .mega-sub-item a:hover {
    color: #39b5b6;
  }

  /* Active top-level item */
  .menu-level-0 > .menu-item.mega-active > a {
    color: #39b5b6 !important;
  }
  .menu-level-0 > .menu-item.mega-active > a:after {
    background-color: #39b5b6 !important;
  }

  /* Close button (top-right of dropdown area) */
  .mega-close {
    position: fixed;
    top: 168px;
    right: 60px;
    cursor: pointer;
    width: 40px;
    height: 40px;
    z-index: 60;
    display: none;
    align-items: center;
    justify-content: center;
  }
  .mega-close.is-open {
    display: flex;
  }
  .mega-close:before,
  .mega-close:after {
    content: '';
    position: absolute;
    width: 24px;
    height: 2px;
    background: rgba(255,255,255,0.8);
    transition: background 0.2s;
  }
  .mega-close:before { transform: rotate(45deg); }
  .mega-close:after  { transform: rotate(-45deg); }
  .mega-close:hover:before,
  .mega-close:hover:after {
    background: #39b5b6;
  }

  /* ============================================
     ORIGINAL OVERLAY: "Über uns" — two-column layout
     Left: simple items, Right: Segmente with sub-items
     ============================================ */

  /* ── Keep original float layout, position Segmente block absolutely ── */

  /* Make the level-1 list a positioning context */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 {
    position: relative;
  }

  /* Expanded item (Segmente) → position to the right of the list */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 > .menu-item--expanded {
    position: absolute !important;
    left: 360px !important;
    top: 0 !important;
    width: 250px !important;
    display: block !important;
    justify-content: initial !important;
  }

  /* Prevent hover/active state from moving things */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 > .menu-item--expanded.active {
    position: absolute !important;
    left: 360px !important;
    top: 0 !important;
    width: 250px !important;
    display: block !important;
    justify-content: initial !important;
  }

  /* Keep the menu_link_content in place on hover (no absolute repositioning) */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 > .menu-item--expanded.active > .menu_link_content {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    width: auto !important;
  }

  /* Segmente header: bold white, own line, space below */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 > .menu-item--expanded > a {
    font-weight: bold;
    color: #fff !important;
    margin-bottom: 14px;
    display: block;
    white-space: nowrap;
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 > .menu-item--expanded > a:after {
    display: none !important;
  }

  /* Force-show level-2 children (no hover needed) */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-1 > .menu-item--expanded > .menu_link_content {
    display: block !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    animation: none !important;
  }

  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 {
    display: flex !important;
    flex-direction: column;
    gap: 0;
    margin-left: 0 !important;
    width: auto !important;
    float: none !important;
  }

  /* Hide images, titles, text, buttons from level-2 items */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 .field--name-field-image,
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 .field--name-field-title,
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 .field--name-field-text,
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 .field--name-field-button,
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 .menu-dropdown {
    display: none !important;
  }

  /* Level-2 items as list with "> " prefix */
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 > .menu-item {
    margin-bottom: 8px;
    list-style: none;
  }

  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 > .menu-item > a {
    font-size: 18px !important;
    line-height: 26px !important;
    color: #fff !important;
    font-weight: normal !important;
    text-decoration: none !important;
    display: block;
      text-transform: uppercase;
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 > .menu-item > a:before {
    content: ">\00a0 ";
    color: rgba(255,255,255,0.5);
    font-weight: normal;
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 > .menu-item > a:hover {
    color: #39b5b6 !important;
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content .menu-level-2 > .menu-item > a:after {
    display: none !important;
  }

  /* ============================================
     MULTI-COLUMN FIX: Wenn mehrere expanded Level-1-Items existieren
     (neue Menü-Struktur unter "Ausstellen", "Besuchen"), werden sie
     nicht mehr absolute bei left:360px übereinander gestapelt, sondern
     als horizontale Spalten nebeneinander. Die Regel oberhalb
     (absolute/left:360px) bleibt für den Einzelfall "Über uns → Segmente"
     aktiv — sie greift nur, wenn GENAU EIN expanded Sibling existiert.
     ============================================ */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 20px !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    position: relative !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* Alle direkten Level-1-Kinder gleich breit. Mehrere Klassen-Varianten explizit
     angesprochen, damit höhere Specificity gegen style.css gewinnt. */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item.menu-item--expanded,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item.menu-item--expanded.active,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item.menu-item--child-empty {
    position: static !important;
    left: auto !important;
    top: auto !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /* Header darf bei schmalen Spalten umbrechen */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--expanded > a,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--expanded > span {
    white-space: normal !important;
  }

  /* field_title/image/text/button auf Level-1 verstecken — Drupal rendert
     den Menüpunkt-Titel sonst doppelt (einmal als <a>/<span>, einmal als
     field_title-DIV). Analog zum bestehenden Hide auf Level-2. */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1 > .menu-item--expanded > .menu_link_content > .field--name-field-title,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1 > .menu-item--expanded > .menu_link_content > .field--name-field-image,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1 > .menu-item--expanded > .menu_link_content > .field--name-field-text,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1 > .menu-item--expanded > .menu_link_content > .field--name-field-button {
    display: none !important;
  }

  /* <span> (route-lose Menu-Items wie "Services", "Auf- und Abbau",
     "Messe-Informationen") identisch zum <a>-Header stylen */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1 > .menu-item--expanded > span {
    font-weight: bold !important;
    color: #fff !important;
    font-size: 22px !important;
    line-height: 1.3 !important;
    margin-bottom: 14px !important;
    display: block !important;
    white-space: nowrap !important;
    text-transform: none !important;
  }

  /* === Multi-Column-Variante: Headers UPPERCASE + kleiner, Sub-Items clean ===
     Gilt nur wenn mehrere expanded Level-1-Items existieren (Ausstellen,
     Besuchen). nav#block-ilaberlin als Anker erhöht Specificity gegenüber
     der globalen .region-navigation .menu.menu-level-0 > .menu-item a-Regel. */
  nav#block-ilaberlin header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--expanded > a,
  nav#block-ilaberlin header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--expanded > span,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    nav#block-ilaberlin .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--expanded > a,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    nav#block-ilaberlin .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--expanded > span {
    text-transform: uppercase !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
  }

  /* Nicht-eleganter Fallback: direkter Selektor + doppelte Klasse um Specificity
     über .region-navigation .menu.menu-level-0 > .menu-item a (0,4,1) zu heben */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1.menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--expanded.menu-item--expanded > a,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1.menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--expanded.menu-item--expanded > span {
    text-transform: uppercase !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
  }

  /* Sub-Items im Multi-Column-Fall: kein uppercase, kein "> "-Prefix */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    .menu-level-2 > .menu-item > a {
    text-transform: none !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: normal !important;
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    .menu-level-2 > .menu-item > a:before {
    content: none !important;
    display: none !important;
  }

  /* Großen field_title ("Ausstellen"/"Besuchen") und field_button aus dem Mega-
     Menü ausblenden — Marcel hat gebeten, dass der große Titel links raus soll.
     Gilt nur im Multi-Column-Fall. */
  header.overlay:not(.mega-menu-active)
    .header-overlay__content:has(> ul.menu-level-1 > .menu-item--expanded ~ .menu-item--expanded)
    > .field--name-field-title,
  header.overlay:not(.mega-menu-active)
    .header-overlay__content:has(> ul.menu-level-1 > .menu-item--expanded ~ .menu-item--expanded)
    > .field--name-field-button {
    display: none !important;
  }

  /* Uppercase auch für NICHT-expanded Level-1-Items (z.B. Tickets, Talent Hub
     unter "Besuchen"). Vorherige Uppercase-Regel griff nur auf .menu-item--expanded. */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item > a,
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item > span {
    text-transform: uppercase !important;
  }

  /* Non-expanded Items (Tickets, Talent Hub) ans Ende der Spalten-Reihe schieben.
     Reihenfolge: erst Talent Hub, dann Tickets. URL-basiert identifiziert. */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded) > .menu-item--child-empty {
    order: 12 !important; /* Fallback: ganz ans Ende wenn URL-Match nicht greift */
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--child-empty:has(> a[href*="talent"]) {
    order: 10 !important;
  }
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--child-empty:has(> a[href*="tickets"]) {
    order: 11 !important;
  }

  /* Gezielte Abstand-Korrekturen: ausgewählte Spalten leicht nach links rücken,
     damit visuell gleichmässige Abstände entstehen. Negative margin-left
     reduziert den gap zur vorigen Spalte. */

  /* Ausstellen: letzte expanded-Spalte (Auf- und Abbau) — greift nur, wenn
     keine child-empty Items im ul sind, also nur bei Ausstellen. */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded):not(:has(> .menu-item--child-empty))
    > .menu-item--expanded:last-child {
    margin-left: -20px !important;
  }

  /* Besuchen: Talent Hub ca. 10px nach links */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--child-empty:has(> a[href*="talent"]) {
    margin-left: -10px !important;
  }

  /* Besuchen: Tickets ca. 40px nach links (deutlich enger an Talent Hub) */
  header.overlay:not(.mega-menu-active) .header-overlay__content
    .menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--child-empty:has(> a[href*="tickets"]) {
    margin-left: -40px !important;
  }

  /* Full-styling der non-expanded Level-1-Items (Tickets, Talent Hub) gleich
     zu den expanded-Headern: bold, 18px, weiß. Specificity per nav#block-ilaberlin
     + .menu-item--child-empty Klasse hochgezogen, damit
     .region-navigation .menu.menu-level-0 > .menu-item a (font-size:22px) verliert. */
  header.overlay:not(.mega-menu-active) nav#block-ilaberlin
    .header-overlay__content
    > ul.menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--child-empty > a,
  header.overlay:not(.mega-menu-active) nav#block-ilaberlin
    .header-overlay__content
    > ul.menu-level-1:has(> .menu-item--expanded ~ .menu-item--expanded)
    > .menu-item--child-empty > span {
    font-weight: bold !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    color: #fff !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    margin-bottom: 14px !important;
    display: block !important;
  }
}

/* Hide content type labels in search results and type filter checkboxes */
.search-item__title-page { display: none !important; }
.search-form .form-type-checkbox { display: none !important; }

/* --- Aviation Week Header Fix --- */
.leading-news .leading__title h1,
.leading-news .leading__title .field--name-field-title {
  color: #ffffff !important;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.leading-news .leading__text p {
  color: rgba(255,255,255,0.9) !important;
}


/* ============================================
   TASK 2 (2026-04-17): Homepage Button-CTAs +17% vergroessern
   Homepage-Buttons waren nach der Typografie-Reduktion zu klein
   ============================================ */
.path-frontpage .button.primary,
.path-frontpage .button.secondary,
.path-frontpage .button--white,
.path-frontpage .button.inverted {
  font-size: 21px !important;
}

/* TASK 1 2026-04-17: line-height an reduzierte Textgroessen anpassen */
body { line-height: 1.5 !important; }
h1, .h1 { line-height: 1.1 !important; }
h2, .h2 { line-height: 1.2 !important; }
h3, .h3 { line-height: 1.25 !important; }
h4, .h4 { line-height: 1.3 !important; }
.p-m { line-height: 1.55 !important; }
.small { line-height: 1.45 !important; }
p { line-height: 1.55 !important; }
.paragraph--type--text p { line-height: 1.55 !important; }
.blog-body__text p { line-height: 1.55 !important; }

/* TASK 3 2026-04-17: Segment-Seiten Abstaende um ~50% reduzieren */
.segment-details__content { margin-bottom: 22px !important; }
.segment-details { margin-bottom: 24px !important; }
.paragraph--type--segment-detail { margin-bottom: 24px !important; padding-bottom: 0 !important; padding-top: 0 !important; }
.paragraph--type--segment-detail + .paragraph--type--segment-detail { margin-top: 0 !important; }
.segment-details__content_text p { margin-bottom: 14px !important; }
.segment-details__content_text p:last-child { margin-bottom: 0 !important; }
.segment-details__title { margin-bottom: 14px !important; }

/* TASK 4 2026-04-17: Ueber-uns Fullbild-Experience - fix transforms (CLAUDE.md Gotcha #3) */
body.ila-tl-overlay-open .layout-container,
body.ila-tl-overlay-open .dialog-off-canvas-main-canvas { transform: none !important; }
body.ila-tl-overlay-open { overflow: hidden !important; }
#ila-tl-overlay { transform: none !important; }

/* TASK 7 2026-04-17: Card Boxes auf Teilnahmemoeglichkeiten kompakter */
.node--type-page .paragraph--type--card-block .card { margin: 24px -16px !important; }
.node--type-page .paragraph--type--card-block .card__item { margin: 0 16px 20px !important; }
.node--type-page .paragraph--type--card-block .card__item_content { padding: 24px 30px !important; }
.node--type-page .paragraph--type--card-block .card__item_description { margin-bottom: 24px !important; max-height: none !important; line-height: 1.5 !important; }
.node--type-page .paragraph--type--card-block .card__item_title { margin-bottom: 10px !important; line-height: 1.2 !important; }
.node--type-page .paragraph--type--card-block .card__item_description p { margin-bottom: 8px !important; line-height: 1.5 !important; }
.node--type-page .paragraph--type--card-block .card__item_content .button { padding: 10px 16px !important; }
.node--type-page .paragraph--type--card-block .card__item_image { height: 200px !important; }



/* TASK MOBILE-MENU-FIX 2026-04-19: Force-override specificity issues */
@media screen and (max-width: 768px) {
  /* Hide span of active nolink item in level-1 submenu */
  header.overlay .menu-level-0.aside-level-1 .menu-level-1 > .menu-item--expanded.active.menu-item--nolink > span,
  header.overlay .menu-level-0.aside-level-1 .menu-level-1 > .menu-item--expanded.active > a {
    display: none !important;
  }
  /* Force back-button visible when item is active */
  header.overlay .region-navigation .menu .menu-item--expanded.active > .back-button {
    display: flex !important;
    position: relative !important;
    opacity: 1 !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    z-index: 10 !important;
    background: transparent;
    border: 0;
    color: #58FFFF;
    padding: 10px 0 20px 0;
    margin: 0 0 10px 0;
    cursor: pointer;
    font-family: AbsaraSans-Bold, serif;
    font-size: 28px;
    line-height: 32px;
    font-weight: bold;
    text-transform: uppercase;
    text-align: center;
    align-items: center;
    justify-content: center;
  }
  header.overlay .region-navigation .menu .menu-item--expanded.active > .back-button::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url('/themes/custom/ila_berlin/svg/Path_1979.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: scaleX(-1);
    margin-right: 15px;
    filter: brightness(0) saturate(100%) invert(90%) sepia(20%) saturate(800%) hue-rotate(120deg);
    flex-shrink: 0;
  }
  /* Force non-active back-buttons hidden */
  header.overlay .region-navigation .menu .menu-item--expanded:not(.active) > .back-button {
    display: none !important;
  }
}
/* Desktop: never show server-rendered or dynamic back-buttons */
@media screen and (min-width: 769px) {
  .region-navigation .menu-item--expanded > .back-button {
    display: none !important;
  }
}

/* TASK MOBILE-MENU-FIX 2026-04-19 PART 2: Hide field-title duplicate
   Root cause: Theme renders .field--name-field-title as header
   (e.g. '< AUSSTELLEN'). Our dynamic back-button shows the same thing,
   so both appear. Hide the field-title on mobile; our back-button owns
   the role. */
@media screen and (max-width: 768px) {
  header.overlay .region-navigation .menu .menu-item--expanded.active .field--name-field-title {
    display: none !important;
  }
}

/* TASK MOBILE-MENU-FIX 2026-04-19 PART 3: Restore tickets-button + hide
   outer back-button when inside deeper submenu */
@media screen and (max-width: 768px) {
  /* Restore ILA blue Tickets button (was accidentally removed with v6 block) */
  header.overlay .region-sub-navigation {
    display: flex;
  }
  header.overlay .region-sub-navigation .menu {
    display: flex !important;
    flex-direction: row !important;
  }
  header.overlay .region-sub-navigation .menu .menu-item {
    margin: 0 !important;
    list-style: none !important;
    margin-bottom: 0 !important;
  }
  header.overlay .region-sub-navigation .menu .menu-item a {
    background: #008FD3 !important;
    color: white !important;
    padding: 10px 22px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
    font-family: AbsaraSans-Bold, serif !important;
    font-size: 16px !important;
    text-transform: none !important;
  }
  header.overlay .region-sub-navigation .menu .menu-item a::after {
    display: none !important;
  }

  /* When user is in level-1 submenu (aside-level-1), hide the outer
     level-0 active item's back-button so only the current one shows. */
  header.overlay .region-navigation .menu.menu-level-0.aside-level-1 > .menu-item--expanded.active > .back-button {
    display: none !important;
  }
}

/* TASK MOBILE-MENU-FIX 2026-04-19 PART 4: Arrow for nolink, tickets position, font-size */
@media screen and (max-width: 768px) {
  /* 1. Arrow ">" icon for nolink-span in ALL levels (not just level-0) */
  header.overlay .region-navigation .menu .menu-item--expanded.menu-item--nolink > span {
    display: inline-flex !important;
    align-items: baseline;
  }
  header.overlay .region-navigation .menu .menu-item--expanded.menu-item--nolink > span::after {
    display: block;
    content: '';
    width: 6px;
    height: 12px;
    background-color: white;
    -webkit-mask-image: url('../svg/Path_1979.svg');
    mask-image: url('../svg/Path_1979.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    margin-left: 14px;
    line-height: 0;
    position: relative;
  }

  /* 2. Tickets button position — right-edge aligned with X close button */
  header.overlay .region-sub-navigation {
    position: absolute !important;
    top: 80px !important;
    right: 23px !important;
    left: auto !important;
    display: flex !important;
  }
  header.overlay .region-sub-navigation .menu {
    flex-direction: row !important;
    display: flex !important;
  }

  /* 3. Font-size 20px for ALL menu items (nolink + regular) in navigation */
  header.overlay .region-navigation .menu .menu-item > a,
  header.overlay .region-navigation .menu .menu-item.menu-item--nolink > span {
    font-size: 20px !important;
    line-height: 30px !important;
  }
}

/* TASK MOBILE-MENU-FIX 2026-04-19 PART 5: Tickets position + back-button layout */
@media screen and (max-width: 768px) {
  /* Tickets button — bottom edge aligned with the date on the left */
  header.overlay .region-sub-navigation {
    top: 65px !important;
  }

  /* Back-button: make it shrink to content width + centered,
     so arrow stays next to the text no matter how long it wraps */
  header.overlay .region-navigation .menu .menu-item--expanded.active > .back-button {
    width: -webkit-fit-content !important;
    width: -moz-fit-content !important;
    width: fit-content !important;
    max-width: 90% !important;
    margin: 0 auto 10px auto !important;
    justify-content: flex-start !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}


/* TASK SERVICE-MANUAL-TEXT 2026-04-19: Standard p text in ep26 wrapper
   was larger than intro (.h4 .leading__text). Match the smaller intro size. */
.ep26-wrapper p,
.ep26-intro p,
.ep26-card p,
.ep26-card-dark p {
  font-size: 18px !important;
  line-height: 1.5 !important;
}
