/* Nordlichter: Aussteller- und Programm-Listen/Details.
   Bedarfsweise per Fluid AssetCollector nach nm.css laden.
   Farben, Schriftgrößen und allgemeine Komponenten stehen in nm.css. */

/* Inhalt darf auch bei langen Titeln/URLs auf kleinen Displays umbrechen. */
.aussteller {
  overflow-wrap: anywhere;
}

.aussteller-detail .profile-teaser {
  font-family: var(--bs-body-font-family);
  font-size: var(--nl-lead-size);
  font-weight: 400;
  line-height: 1.5;
}

.aussteller-detail .profile-contact-label,
.aussteller-detail .profile-eyebrow,
.aussteller-liste .directory-eyebrow,
.aussteller-programm .program-day-link > span,
.aussteller-programm .program-weekday {
  font-size: var(--nl-eyebrow-size);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Die vorhandene Frame-Hülle nutzen: kein zweiter Container mit Innenabstand. */
.frame-container-default:has(> .frame-inner > :is(.aussteller-detail, .aussteller-veranstaltung)) {
  max-width: var(--nl-content-width);
}

/* Ausstellerprofil: Kontakt, optionale Module und Galerie. */
.frame-type-aussteller_catalog .frame-inner:has(> .aussteller-detail) > .frame-header { display: none; }
.aussteller-detail .profile-header,
.aussteller-detail .profile-intro,
.aussteller-detail .profile-description,
.aussteller-detail .profile-modules {
  margin-bottom: var(--nl-section-space);
}

.aussteller-detail .profile-header h1 {
  margin: 0;
  max-width: 62rem;
  overflow-wrap: anywhere;
}

.aussteller-detail .profile-eyebrow,
.aussteller-detail .profile-contact-label {
  display: block;
  margin-bottom: .65rem;
  color: var(--bs-primary);
}

.aussteller-detail .profile-logo {
  display: grid;
  place-items: center;
  min-height: 20rem;
  padding: 2rem;
  border-radius: var(--bs-border-radius-lg);
  background: linear-gradient(145deg, color-mix(in srgb, var(--bs-body-color) 25%, var(--bs-body-bg)), color-mix(in srgb, var(--bs-body-color) 45%, var(--bs-body-bg)));
}

.aussteller-detail .profile-logo a { width: 100%; text-align: center; }
.aussteller-detail .profile-logo img { width: 100%; max-width: 280px; max-height: 280px; object-fit: contain; }

.aussteller-detail .profile-contact,
.aussteller-detail .profile-program {
  color: var(--nl-on-primary);
  background: linear-gradient(125deg, var(--bs-primary-text-emphasis), var(--bs-primary));
  border-radius: var(--bs-border-radius-xl);
  padding: clamp(1.5rem, 3vw, 3rem);
}

.aussteller-detail .profile-contact {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 20rem;
  box-shadow: var(--bs-box-shadow);
}

.aussteller-detail .profile-contact-stand {
  padding-bottom: 1.25rem;
  border-bottom: 1px solid color-mix(in srgb, var(--nl-on-primary) 25%, transparent);
}

.aussteller-detail .profile-contact-stand strong,
.aussteller-detail .profile-contact-link,
.aussteller-detail .profile-contact-actions,
.aussteller-detail .profile-contact-actions .btn,
.aussteller .profile-social {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.aussteller-detail .profile-contact-label { color: inherit; opacity: .8; }
.aussteller-detail .profile-contact-link { color: inherit; text-decoration: none; margin-bottom: .5rem; overflow-wrap: anywhere; font-weight: 700; }
.aussteller-detail .profile-contact-icon { width: 18px; height: 18px; flex-shrink: 0; }
.aussteller-detail .profile-contact-link:hover { color: inherit; text-decoration: underline; }
.aussteller-detail .profile-contact-details { margin-bottom: .5rem; }
.aussteller-detail .profile-contact-actions { flex-wrap: wrap; gap: .65rem; }
.aussteller-detail .profile-contact-actions .btn,
.aussteller .profile-social {
  --bs-btn-color: var(--nl-on-primary);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--nl-on-primary);
  --bs-btn-hover-bg: color-mix(in srgb, var(--nl-on-primary) 15%, transparent);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: var(--nl-on-primary);
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: transparent;
  min-height: 44px;
  padding: .55rem .9rem;
  font-size: .875rem;
  line-height: 1.3;
}
.aussteller-detail .profile-contact-actions .profile-contact-website { --bs-btn-bg: var(--bs-primary); }
.aussteller .profile-socials { display: flex; gap: .45rem; margin-left: auto; }
.aussteller-detail .profile-contact-actions .profile-social,
.aussteller .profile-social {
  --bs-btn-border-color: color-mix(in srgb, var(--nl-on-primary) 35%, transparent);
  --bs-btn-hover-border-color: var(--nl-on-primary);
  width: 44px;
  height: 44px;
  padding: .5rem;
  border-radius: 50%;
  justify-content: center;
}

.aussteller-detail .profile-description {
  padding-top: clamp(2rem, 4vw, 3.5rem);
  border-top: 1px solid var(--bs-border-color);
}

.aussteller-detail .profile-teaser {
  padding-left: 1.4rem;
  border-left: 5px solid var(--bs-secondary);
}

.aussteller-detail .profile-longtext { color: var(--bs-secondary-color); }
.aussteller-detail .profile-card { height: 100%; padding: clamp(1.25rem, 2.5vw, 2.7rem); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); }
.aussteller-detail .profile-card h2,
.aussteller-detail .profile-program h2 { margin-bottom: 1.5rem; overflow-wrap: anywhere; }
.aussteller-detail .profile-card-offers { color: var(--nl-on-primary); background: var(--bs-primary-text-emphasis); border-color: transparent; }
.aussteller-detail .profile-card-offers h2,
.aussteller-detail .profile-card-offers .profile-eyebrow,
.aussteller-detail .profile-program > header h2,
.aussteller-detail .profile-program > header .profile-eyebrow { color: inherit; }
.aussteller-detail .profile-card-offers ul { padding-left: 1.2rem; }
.aussteller-detail .profile-card-downloads { background: var(--bs-tertiary-bg); }

.aussteller-detail .profile-download {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  color: var(--bs-primary-text-emphasis);
  background: var(--bs-body-bg);
  font-weight: 800;
  text-decoration: none;
}

.aussteller-detail .profile-download:hover { border-color: var(--bs-primary); }
.aussteller-detail .profile-download-icon { display: grid; place-items: center; width: 44px; height: 50px; border-radius: var(--bs-border-radius-sm); background: var(--bs-primary); color: var(--nl-on-primary); font-size: .75rem; }
.aussteller-detail .profile-download-content { min-width: 0; overflow-wrap: anywhere; }
.aussteller-detail .profile-download-content small { display: block; margin-bottom: .2rem; color: var(--bs-secondary-color); letter-spacing: .08em; text-transform: uppercase; }

.aussteller-detail .profile-gallery-main,
.aussteller-detail .profile-video { display: block; overflow: hidden; border-radius: var(--bs-border-radius); background: var(--bs-tertiary-bg); }
.aussteller-detail .profile-gallery-main img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; }
.aussteller-detail .profile-gallery-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; margin-top: .55rem; }
.aussteller-detail .profile-gallery-thumb { display: block; overflow: hidden; border: 2px solid transparent; border-radius: var(--bs-border-radius-sm); background: var(--bs-tertiary-bg); }
.aussteller-detail .profile-gallery-thumb img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.aussteller-detail .profile-gallery-thumb.is-active { border-color: var(--bs-primary); }
.aussteller-detail .profile-video video { object-fit: contain; }
.aussteller-detail a:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 3px; }
.aussteller-detail .profile-contact a:focus-visible { outline-color: var(--nl-on-primary); }

.aussteller-detail .profile-event { position: relative; padding: clamp(1.25rem, 2.5vw, 2rem); border-radius: var(--bs-border-radius-lg); color: var(--bs-body-color); background: var(--bs-body-bg); }
.aussteller-detail .profile-event-meta { display: flex; flex-wrap: wrap; gap: .55rem; }
.aussteller-detail .profile-event-meta span { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .72rem; border-radius: var(--bs-border-radius-pill); color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); font-size: .83rem; font-weight: 750; }
.aussteller-detail .profile-event-meta .profile-event-room { color: var(--bs-secondary-text-emphasis); background: var(--bs-secondary-bg-subtle); }
.aussteller-detail .profile-event h3 { margin: 1.4rem 0; }
.aussteller-detail .profile-event h3 a { color: inherit; text-decoration: none; }
.aussteller-detail .profile-event:hover h3 a { color: var(--bs-primary); }
.aussteller-detail .profile-event-details { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--bs-border-color); color: var(--bs-primary); font-weight: 800; }
.aussteller-detail .profile-navigation { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1rem; margin-top: clamp(3rem, 6vw, 5rem); }
.aussteller-detail .profile-navigation-previous { justify-self: start; }
.aussteller-detail .profile-navigation-next { justify-self: end; }
.aussteller-detail .profile-navigation > span a { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; font-weight: 700; text-decoration: none; }
.aussteller-detail .profile-navigation > span a:hover { text-decoration: underline; }
@media (max-width: 575.98px) {
  .aussteller-detail .profile-navigation { gap: .5rem; font-size: .8rem; }
  .aussteller-detail .profile-navigation-list { font-size: inherit; padding: .65rem .75rem; }
  .aussteller-detail .profile-navigation > span a { gap: .2rem; }
}

@media (max-width: 991.98px) {
  .aussteller-detail .profile-logo { min-height: 17.5rem; }
}

@media (max-width: 575.98px) {
  .aussteller-detail .profile-socials { margin-left: 0; }
  .aussteller-detail .profile-download { gap: .65rem; padding: 1rem; }
}

/* Programmübersicht: Tagesnavigation, Raumfilter und vollständig klickbare Karten. */
.aussteller-programm .program-day-link {
  display: grid;
  grid-template-columns: 1fr auto;
  min-height: 7.25rem;
  padding: 1.35rem 1.7rem;
  color: var(--bs-body-color);
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 1.2rem;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.aussteller-programm .program-day-link:hover,
.aussteller-programm .program-day-link:focus-visible {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  box-shadow: 0 .75rem 1.875rem rgba(var(--bs-primary-rgb), .1);
  transform: translateY(-2px);
}

.aussteller-programm .program-day-link > span {
  color: var(--bs-secondary-text-emphasis);
}

.aussteller-programm .program-day-link strong {
  grid-column: 1;
  font-family: var(--nl-heading-font);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 500;
}

.aussteller-programm .program-day {
  min-width: 0;
  scroll-margin-top: 2rem;
}

.aussteller-programm .program-day-header {
  position: relative;
  padding-bottom: 1.3rem;
  border-bottom: 1px solid var(--bs-border-color);
}

.aussteller-programm .program-day-header::after {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 4.5rem;
  height: 3px;
  background: var(--bs-secondary);
  content: "";
}

.aussteller-programm .program-weekday {
  display: block;
  margin-bottom: .3rem;
  color: var(--bs-primary);
}

.aussteller-programm .program-day-header h2 {
  margin: 0;
}

.aussteller-programm .program-result-count {
  padding-bottom: .4rem;
  color: var(--bs-secondary-color);
  font-size: .85rem;
}

.aussteller-programm .program-room-filter {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding-top: 1.25rem;
}

.aussteller-programm .program-filter {
  min-height: 2.375rem;
  padding: .48rem .85rem;
  color: var(--bs-primary-text-emphasis);
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 50rem;
  font: inherit;
  font-size: .8rem;
  font-weight: 750;
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.aussteller-programm .program-filter:hover {
  border-color: var(--bs-secondary);
}

.aussteller-programm .program-filter.active {
  color: var(--nl-on-secondary);
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
}

.aussteller-programm .program-filter:focus-visible,
.aussteller-programm .program-day-link:focus-visible {
  outline: 3px solid var(--bs-focus-ring-color);
  outline-offset: 3px;
}

.aussteller-programm .program-event-list {
  display: grid;
  gap: var(--nl-grid-gutter-y);
  padding-top: 1rem;
  counter-reset: program-event;
}

.aussteller-programm .program-event-card {
  position: relative;
  padding: 2rem 2rem 1.5rem;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 1.35rem;
  box-shadow: 0 .5rem 1.875rem rgba(var(--bs-primary-rgb), .045);
  counter-increment: program-event;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.aussteller-programm .program-event-card::before {
  position: absolute;
  top: 1.8rem;
  right: 1.5rem;
  color: var(--bs-primary-border-subtle);
  font-family: var(--nl-heading-font);
  font-size: 1.8rem;
  content: counter(program-event, decimal-leading-zero);
  pointer-events: none;
}

.aussteller-programm .program-event-card:hover,
.aussteller-programm .program-event-card:focus-within {
  border-color: var(--bs-primary);
  box-shadow: 0 .5rem 1.875rem rgba(var(--bs-primary-rgb), .12);
}

.aussteller-programm .program-event-card:focus-within {
  outline: 3px solid var(--bs-focus-ring-color);
  outline-offset: 3px;
}

.aussteller-programm .program-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  padding-right: 2rem;
}

.aussteller-programm .program-event-meta > span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .72rem;
  border-radius: 50rem;
  font-size: .85rem;
  font-weight: 750;
}

.aussteller-programm .program-event-time {
  color: var(--bs-primary-text-emphasis);
  background: var(--bs-primary-bg-subtle);
}

.aussteller-programm .program-event-room {
  color: var(--bs-secondary-text-emphasis);
  background: var(--bs-secondary-bg-subtle);
}

.aussteller-programm .program-event-card h3 {
  margin: 1.6rem 0 .65rem;
}

.aussteller-programm .program-event-card h3 a {
  color: var(--bs-body-color);
  text-decoration: none;
}

.aussteller-programm .program-event-card:hover h3 a,
.aussteller-programm .program-event-card h3 a:focus-visible {
  color: var(--bs-primary);
}

.aussteller-programm .program-speaker {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: var(--bs-body-color);
  font-weight: 750;
}

.aussteller-programm .program-speaker svg {
  color: var(--bs-secondary);
}

.aussteller-programm svg {
  flex-shrink: 0;
}

.aussteller-programm .program-description {
  margin: 1.35rem 0 1.5rem;
  color: var(--bs-secondary-color);
}

.aussteller-programm .program-detail-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.15rem;
  padding-top: 1.15rem;
  color: var(--bs-primary);
  border-top: 1px solid var(--bs-border-color);
  font-weight: 800;
}

.aussteller-programm .program-empty {
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg);
  border-radius: .75rem;
}

.aussteller-programm [hidden] {
  display: none !important;
}

@media (max-width: 767.98px) {
  /* Bootstrap Package: kein Scrollcontainer oberhalb der Sticky-Navigation. */
  .section:has(.aussteller-programm) {
    overflow: clip;
  }

  .aussteller-programm .program-day-navigation {
    position: sticky;
    top: 0;
    z-index: 20;
    margin-right: -.75rem;
    margin-left: -.75rem;
    padding: .75rem;
    background: rgba(var(--bs-body-bg-rgb), .94);
    backdrop-filter: blur(12px);
  }

  .aussteller-programm .program-day-link {
    min-height: 4.875rem;
    padding: .8rem 1rem;
    border-radius: .85rem;
  }

  .aussteller-programm .program-day-link strong {
    font-size: 1.25rem;
  }

  .aussteller-programm .program-days {
    row-gap: 4rem !important;
  }

  .aussteller-programm .program-day {
    scroll-margin-top: 9rem;
  }

  .aussteller-programm .program-room-filter {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .35rem;
    scrollbar-width: thin;
  }

  .aussteller-programm .program-filter {
    flex: 0 0 auto;
  }

  .aussteller-programm .program-event-card {
    padding: 1.5rem 1.25rem 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aussteller-programm .program-day-link,
  .aussteller-programm .program-event-card,
  .aussteller-programm .program-filter {
    transition: none;
  }
}

/* Ausstellerübersicht: lokale Suche, kombinierbare Kategorien und Kartenraster. */
.frame-type-aussteller_catalog .frame-inner:has(> .aussteller-liste) > .frame-header { display: none; }
.aussteller-liste [hidden] { display: none !important; }
.aussteller-liste .directory-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr);
  align-items: end;
  gap: clamp(1.5rem, 4vw, 4rem);
  margin-bottom: 2rem;
  padding: clamp(1.5rem, 3vw, 3rem);
  border-radius: var(--bs-border-radius-xl);
  color: var(--nl-on-primary);
  background: radial-gradient(circle at 82% 30%, color-mix(in srgb, var(--bs-secondary) 22%, transparent), transparent 30%), linear-gradient(124deg, var(--bs-primary-text-emphasis), var(--bs-primary));
}
.aussteller-liste .directory-eyebrow { margin-bottom: .75rem; }
.aussteller-liste .directory-header h1 { margin: 0; color: inherit; }
.aussteller-liste .directory-header > p { margin: 0; }
.aussteller-liste .directory-filter { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background: var(--bs-tertiary-bg); }
.aussteller-liste .directory-search label,
.aussteller-liste .directory-categories > p { display: block; margin: 0 0 .75rem; font-size: .82rem; font-weight: 800; }
.aussteller-liste .directory-categories > p span { margin-left: .35rem; color: var(--bs-secondary-color); font-weight: 400; }
.aussteller-liste .directory-search-field { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; min-height: 58px; padding: 0 .85rem; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); background: var(--bs-body-bg); }
.aussteller-liste .directory-search-field:focus-within { border-color: var(--bs-primary); box-shadow: 0 0 0 3px var(--bs-focus-ring-color); }
.aussteller-liste .directory-search-field > svg { color: var(--bs-secondary); }
.aussteller-liste .directory-search-field input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--bs-body-color); background: transparent; font: inherit; }
.aussteller-liste .directory-search-field input::placeholder { color: var(--bs-secondary-color); }
.aussteller-liste .directory-search-field input::-webkit-search-cancel-button { appearance: none; }
.aussteller-liste .directory-search-reset { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; color: var(--bs-secondary-color); background: transparent; font-size: 1.5rem; cursor: pointer; }
.aussteller-liste .directory-search-reset:hover { color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
.aussteller-liste .directory-category-buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.aussteller-liste .directory-category { min-height: 44px; padding: .55rem .9rem; border: 1px solid var(--bs-primary-border-subtle); border-radius: var(--bs-border-radius-pill); color: var(--bs-primary-text-emphasis); background: transparent; font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.aussteller-liste .directory-category:hover { border-color: var(--bs-primary); }
.aussteller-liste .directory-category.is-active { color: var(--nl-on-primary); border-color: var(--bs-primary); background: var(--bs-primary); }
.aussteller-liste button:focus-visible,
.aussteller-liste a:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 3px; }
.aussteller-liste .directory-results { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; min-height: 82px; padding: .75rem 0; }
.aussteller-liste .directory-results p { margin: 0; color: var(--bs-secondary-color); }
.aussteller-liste .directory-count { color: var(--bs-body-color); font-family: var(--nl-heading-font); font-size: 1.8rem; font-weight: 500; }
.aussteller-liste .directory-reset { padding: .4rem 0; border: 0; border-bottom: 1px solid currentColor; color: var(--bs-primary); background: transparent; font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.aussteller-liste .directory-card { position: relative; overflow: hidden; display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); box-shadow: var(--bs-box-shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.aussteller-liste .directory-card:hover { transform: translateY(-4px); border-color: var(--bs-primary-border-subtle); box-shadow: var(--bs-box-shadow); }
.aussteller-liste .directory-card-logo { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 9; padding: 1.4rem; border-bottom: 1px solid var(--bs-border-color); background: linear-gradient(145deg, color-mix(in srgb, var(--bs-body-color) 25%, var(--bs-body-bg)), color-mix(in srgb, var(--bs-body-color) 45%, var(--bs-body-bg))); }
.aussteller-liste .directory-card-logo img { display: block; width: auto; max-width: 78%; height: auto; max-height: 118px; object-fit: contain; }
.aussteller-liste .directory-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.5rem; }
.aussteller-liste .directory-card-categories { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1rem; }
.aussteller-liste .directory-card-categories span { padding: .35rem .62rem; border-radius: var(--bs-border-radius-pill); color: var(--bs-primary); background: var(--bs-primary-bg-subtle); font-size: .68rem; font-weight: 800; }
.aussteller-liste .directory-card h2 { margin: 0; }
.aussteller-liste .directory-card h2 a { color: inherit; text-decoration: none; }
.aussteller-liste .directory-card:hover h2 a { color: var(--bs-primary); }
.aussteller-liste .directory-card-stand { display: flex; align-items: center; gap: .4rem; margin: 1rem 0 0; color: var(--bs-secondary-text-emphasis); font-size: .82rem; font-weight: 800; }
.aussteller-liste .directory-card-description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin: 1.1rem 0 1.5rem; color: var(--bs-secondary-color); }
.aussteller-liste .directory-card-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--bs-border-color); color: var(--bs-primary); font-weight: 800; }
.aussteller-liste .directory-card-link > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--nl-on-primary); background: var(--bs-primary); }
.aussteller-liste .directory-empty { padding: clamp(2rem, 5vw, 5rem); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background: var(--bs-tertiary-bg); text-align: center; }
.aussteller-liste .directory-empty p { color: var(--bs-secondary-color); }
@media (max-width: 991.98px) {
  .aussteller-liste .directory-header,
  .aussteller-liste .directory-filter { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 767.98px) {
  .aussteller-liste .directory-category-buttons { flex-wrap: nowrap; overflow-x: auto; padding: .25rem .25rem .5rem; scrollbar-width: thin; }
  .aussteller-liste .directory-category { flex: 0 0 auto; }
  .aussteller-liste .directory-results { min-height: 72px; }
  .aussteller-liste .directory-card-logo img { max-height: 108px; }
}
@media (prefers-reduced-motion: reduce) {
  .aussteller-liste .directory-card { transition: none; }
  .aussteller-liste .directory-card:hover { transform: none; }
}

/* Veranstaltungsdetail: gemeinsame Typografie, Fakten und Referentenkarte. */
.frame-type-aussteller_programme .frame-inner:has(> .aussteller-veranstaltung) > .frame-header { display: none; }
.aussteller-veranstaltung .event-back { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 2.5rem; font-weight: 700; text-decoration: none; }
.aussteller-veranstaltung .event-back:hover { text-decoration: underline; }
.aussteller-veranstaltung .event-header { max-width: 60rem; margin-bottom: 2.5rem; }
.aussteller-veranstaltung .event-header h1 { margin: 0; }
.aussteller-veranstaltung .event-teaser { margin: 1.5rem 0 0; color: var(--bs-secondary-color); }
.aussteller-veranstaltung .event-facts { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, .75fr); margin-bottom: var(--nl-section-space); overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); background: var(--bs-tertiary-bg); }
.aussteller-veranstaltung .event-facts-with-costs { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, .75fr) minmax(0, 1.35fr); }
.aussteller-veranstaltung .event-fact { display: flex; align-items: flex-start; gap: .85rem; min-width: 0; padding: 1.45rem; border-right: 1px solid var(--bs-border-color); }
.aussteller-veranstaltung .event-fact:last-child { border-right: 0; }
.aussteller-veranstaltung .event-fact > svg,
.aussteller-veranstaltung .event-cost-icon { flex-shrink: 0; margin-top: .55rem; color: var(--bs-secondary); }
.aussteller-veranstaltung .event-cost-icon { display: grid; place-items: center; width: 22px; height: 22px; border: 2px solid currentColor; border-radius: 50%; }
.aussteller-veranstaltung .event-fact > div { min-width: 0; overflow-wrap: anywhere; }
.aussteller-veranstaltung .event-fact small,
.aussteller-veranstaltung .event-fact strong { display: block; }
.aussteller-veranstaltung .event-fact small { color: var(--bs-secondary-color); margin-bottom: .2rem; }
.aussteller-veranstaltung .event-image { overflow: hidden; margin: 0 0 var(--nl-section-space); aspect-ratio: 16 / 9; border-radius: var(--bs-border-radius-xl); background: var(--bs-tertiary-bg); }
.aussteller-veranstaltung .event-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.aussteller-veranstaltung .event-main { display: grid; column-gap: var(--nl-grid-gutter-x); row-gap: var(--nl-grid-gutter-y); align-items: start; }
.aussteller-veranstaltung .event-main-with-speaker { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: min-content 1fr; }
.aussteller-veranstaltung .event-description { grid-column: 1; grid-row: 1; color: var(--bs-secondary-color); }
.aussteller-veranstaltung .event-speaker-card { grid-column: 2; grid-row: 1 / span 2; min-width: 0; overflow: hidden; border-radius: var(--bs-border-radius-lg); color: var(--nl-on-primary); background: linear-gradient(140deg, var(--bs-primary-text-emphasis), var(--bs-primary)); box-shadow: var(--bs-box-shadow); }
.aussteller-veranstaltung .event-speaker-image { margin: 0; aspect-ratio: 4 / 3; background: var(--bs-tertiary-bg); overflow: hidden; }
.aussteller-veranstaltung .event-speaker-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.aussteller-veranstaltung .event-speaker-body { padding: clamp(1.6rem, 3vw, 2.4rem); }
.aussteller-veranstaltung .event-speaker-body h2 { color: inherit; margin: 0 0 1rem; }
.aussteller-veranstaltung .event-speaker-body > .nl-eyebrow { color: var(--nl-on-primary-accent); }
.aussteller-veranstaltung .event-speaker-exhibitor { margin: 0 0 1.6rem; color: color-mix(in srgb, var(--nl-on-primary) 80%, transparent); font-weight: 700; }
.aussteller-veranstaltung .event-speaker-exhibitor > span { display: flex; align-items: center; gap: .35rem; margin-top: .5rem; color: var(--nl-on-primary-accent); }
.aussteller-veranstaltung .event-speaker-contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding-top: 1.25rem; border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); }
.aussteller-veranstaltung .event-speaker-contacts .btn { display: flex; align-items: center; justify-content: flex-start; gap: .45rem; min-width: 0; padding: .7rem .75rem; border-radius: var(--bs-border-radius-sm); text-align: left; overflow-wrap: anywhere; --bs-btn-font-size: var(--nl-small-size); }
.aussteller-veranstaltung .event-speaker-profile {
  display: flex; align-items: center; justify-content: center; gap: .55rem; width: 100%; margin-bottom: 1.25rem; border-radius: var(--bs-border-radius-pill);
  --bs-btn-color: var(--bs-primary-text-emphasis); --bs-btn-bg: var(--bs-white); --bs-btn-border-color: var(--bs-white);
  --bs-btn-hover-color: var(--bs-primary-text-emphasis); --bs-btn-hover-bg: var(--bs-secondary-bg-subtle); --bs-btn-hover-border-color: var(--bs-secondary-bg-subtle);
  --bs-btn-active-color: var(--bs-primary-text-emphasis); --bs-btn-active-bg: var(--bs-secondary-bg-subtle); --bs-btn-active-border-color: var(--bs-secondary-bg-subtle);
}
.aussteller-veranstaltung .event-speaker-card .btn-outline-light {
  --bs-btn-color: var(--nl-on-primary); --bs-btn-bg: transparent; --bs-btn-border-color: color-mix(in srgb, var(--nl-on-primary) 30%, transparent);
  --bs-btn-hover-color: var(--bs-primary-text-emphasis); --bs-btn-hover-bg: var(--bs-white); --bs-btn-hover-border-color: var(--bs-white);
  --bs-btn-active-color: var(--bs-primary-text-emphasis); --bs-btn-active-bg: var(--bs-white); --bs-btn-active-border-color: var(--bs-white);
}
.aussteller-veranstaltung .event-speaker-card svg { flex-shrink: 0; }
.aussteller-veranstaltung .event-speaker-socials { flex-wrap: wrap; margin: 1rem 0 0; }
.aussteller-veranstaltung .event-participation { grid-column: 1; grid-row: 2; padding: clamp(1.5rem, 3vw, 2.5rem); border-left: 5px solid var(--bs-secondary); border-radius: 0 var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0; background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }
.aussteller-veranstaltung .event-bottom { display: flex; justify-content: center; margin-top: clamp(3rem, 6vw, 5rem); padding-top: 2.5rem; border-top: 1px solid var(--bs-border-color); }
@media (max-width: 991.98px) {
  .aussteller-veranstaltung .event-facts { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aussteller-veranstaltung .event-fact { border: 0; }
  .aussteller-veranstaltung .event-fact:nth-child(odd) { border-right: 1px solid var(--bs-border-color); }
  .aussteller-veranstaltung .event-fact:nth-child(n+3) { border-top: 1px solid var(--bs-border-color); }
  .aussteller-veranstaltung .event-main-with-speaker { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .aussteller-veranstaltung .event-speaker-card,
  .aussteller-veranstaltung .event-participation { grid-column: 1; grid-row: auto; }
}
@media (max-width: 575.98px) {
  .aussteller-veranstaltung .event-facts { grid-template-columns: minmax(0, 1fr); }
  .aussteller-veranstaltung .event-fact:nth-child(n) { border: 0; }
  .aussteller-veranstaltung .event-fact + .event-fact { border-top: 1px solid var(--bs-border-color); }
}

@media (max-width: 575.98px) {
  .aussteller-veranstaltung .event-speaker-contacts { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 992px) {
  .aussteller-veranstaltung .event-main { column-gap: var(--nl-grid-wide-gutter-x); row-gap: var(--nl-grid-wide-gutter-y); }
}
