/* ========== Theme Variables (später im Admin änderbar) ========== */
:root{
  /* Typo */
  --font-sans: var(--font-sans, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial, sans-serif);
  --font-size: var(--font-size-base, 16px);
  --line-height: var(--line-height, 1.6);

  /* Layout */
  --container-max: var(--container-max, 1500px);
  --gap: var(--gap, 20px);

  /* Farben – mappe auf Admin-Tokens, falls gesetzt */
  --primary: var(--color-primary, #3b82f6);
  --primary-600: var(--color-primary-600, #2563eb); /* falls nicht vorhanden -> Fallback */
  --text: var(--color-text, #0f172a);
  --muted: var(--color-muted, #475569);
  --bg: var(--color-bg, #ffffff);
  --bg-weak: #f8fafc;
  --border: var(--color-border, #e5e7eb);

  /* Radien/Schatten – mappe auf Admin-Tokens */
  --shadow: var(--shadow-box, 0 8px 20px rgba(15,23,42,.06));

  --radius: 10px;
}

/* Optionale Modifikatoren via Body-Klassen (kannst du später im Admin setzen) */
body.shadow-none { --shadow: none; }
body.shadow-lg { --shadow: 0 16px 40px rgba(15,23,42,.10); }
body.theme-emerald { --primary:#10b981; --primary-600:#059669; }
body.theme-amber   { --primary:#f59e0b; --primary-600:#d97706; }
body.theme-rose    { --primary:#f43f5e; --primary-600:#e11d48; }

/* ========== Base ========== */
*{box-sizing:border-box}
html{font-size:var(--font-size)}
body.site{margin:0;font-family:var(--font-sans);line-height:var(--line-height);color:var(--text);background:var(--bg-weak)}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-600);text-decoration:underline}
img{max-width:100%;height:auto;display:block}

.inner-wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--gap)}
.clearfix::after{content:"";display:block;clear:both}

/* ========== Header & Branding ========== */
.site-header{background:var(--bg);border-bottom:1px solid var(--border)}
.site-header .inner-wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);min-height:70px}
.site-branding{display:flex;flex-direction:column}
.site-title{margin:0;font-size:1.4rem;font-weight:800}
.site-title a{color:var(--text);text-decoration:none}
.site-description{margin:2px 0 0;color:var(--muted);font-size:.9rem}

/* ========== Navigation ========== */
.main-navigation{display:flex;align-items:center}
.main-navigation .menu{display:flex;gap:18px;list-style:none;margin:0;padding:0}
.main-navigation .menu-item>a{display:block;padding:10px 4px;color:var(--text)}
.main-navigation .current-menu-item>a{color:var(--primary);position:relative}
.main-navigation .current-menu-item>a::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--primary);
}
.menu-toggle{display:none}

/* ========== Layout / Content ========== */
#content.site-content{padding:32px 0}
#primary.content-area{width:100%}
.site-main{display:block}

/* Kartenlook für Seiten/Artikel */
.post, .type-page, .hentry{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
}
.entry-header{margin-bottom:8px}
.entry-title{margin:0 0 8px}
.entry-content p{margin:0 0 16px}
.entry-content h2{margin:22px 0 10px;font-size:1.25rem}

/* Listen & Utilities */
.entry-content ol, .entry-content ul{margin:0 0 16px 20px}
.mm-lead{color:var(--muted)}

/* ========== Buttons & Links ========== */
.button, .btn, a.button{
  display:inline-block;
  background:var(--primary);
  color:#fff !important;
  border:1px solid transparent;
  border-radius: calc(var(--radius, 10px) - 4px);
  padding:10px 14px;
  line-height:1.25;
  font-weight:600;
  box-shadow:0 2px 0 rgba(0,0,0,.04);
  transition:background .15s ease, transform .05s ease, box-shadow .15s ease;
}
.button:hover, .btn:hover{background:var(--primary-600);text-decoration:none}
.button:active, .btn:active{transform:translateY(1px)}

/* ========== Footer ========== */
.site-footer{margin-top:32px;background:var(--bg);border-top:1px solid var(--border)}
.site-footer .inner-wrap{padding:18px 0}
.site-info{color:var(--muted);font-size:.9rem}

/* ========== Responsive ========== */
@media (max-width: 960px){
  .main-navigation .menu{gap:12px}
}
@media (max-width: 720px){
  .site-header .inner-wrap{flex-wrap:wrap;gap:12px}
  .main-navigation{width:100%}
  .main-navigation .menu{flex-wrap:wrap;gap:10px}
  .post, .type-page, .hentry{padding:18px}
}

/* === NAV RECHTSAUSRICHTEN === */
.site-header .inner-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-start; /* weg von space-between */
  gap: var(--gap);
}
.site-branding{ flex: 0 0 auto; }
.main-navigation{ margin-left:auto; }
.main-navigation .menu{ justify-content:flex-end; }

/* ==== Hamburger: Grundverhalten ==== */
/* Desktop */
.menu-toggle{ display:none; }

/* Mobile Breakpoint */
@media (max-width: 960px){
  .site-header .inner-wrap{ flex-wrap:wrap; }

  .menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:auto;
    min-width:44px;
    height:40px;
    padding:0 12px;
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:var(--bg);
    color:var(--text);
    cursor:pointer;
  }
  .menu-toggle .icon{
    display:inline-block;
    width:20px; height:2px;
    background:var(--text);
    position:relative;
  }
  .menu-toggle .icon::before,
  .menu-toggle .icon::after{
    content:"";
    position:absolute; left:0; right:0;
    height:2px; background:var(--text);
  }
  .menu-toggle .icon::before{ top:-6px; }
  .menu-toggle .icon::after { top: 6px; }

  /* Menü standardmäßig einklappen */
  #site-navigation{
    width:100%;
    order: 10;                 /* unter Branding */
  }
  #site-navigation .menu{
    display:none;
    flex-direction:column;
    gap:8px;
    margin-top:12px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:var(--bg);
    box-shadow:var(--shadow);
  }

  /* aufgeklappt */
  #site-navigation.is-open .menu{ display:flex; }

  /* Links etwas „touch-freundlicher“ */
  #site-navigation .menu-item > a{ padding:10px 6px; }
}

/* (optional) kleine Animation für den Icon-Zustand */
@media (max-width: 960px){
  #site-navigation.is-open + .menu-toggle .icon{ background:transparent; }
  #site-navigation.is-open + .menu-toggle .icon::before{ top:0; transform:rotate(45deg); }
  #site-navigation.is-open + .menu-toggle .icon::after{ top:0; transform:rotate(-45deg); }
}

/* ==== HERO: direkt unter Header, full-bleed ==== */
.header-image{
  /* Full-bleed Technik: Containerbreite „aufbrechen“ */
  width: 70vw;
  margin-left: 50%;
  transform: translateX(-50%);
}
.header-image .hero-img{
  display:block;
  width:100%;
  height:auto;
  max-height: 520px;
  object-fit: cover;
  border: none;
  border-radius: var(--radius);
  box-shadow: none;
}
@media (max-width: 640px){
  .header-image .hero-img{ max-height: 360px; }
}

/* ==== Sticky Header (nur Desktop) ==== */
@media (min-width: 961px){
  .site-header{
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
  }
}
/* Admin-Toggle (später): sticky AUS, wenn Body-Klasse .no-sticky gesetzt ist */
@media (min-width: 961px){
  body.no-sticky .site-header{ position: static; }
}

/* === Logo im Header === */
.site-branding{
  display:flex;
  align-items:center;
  gap:12px;
}
.site-logo{ display:inline-flex; align-items:center; }
.site-logo img{ display:block; width:auto; height:32px; }
.site-title{ margin:0; font-size:1.4rem; font-weight:800; line-height:1.2; }

/* Mobile: Logo etwas kleiner, Branding ggf. umbrechbar */
@media (max-width: 960px){
  .site-branding{ flex-wrap:wrap; gap:10px; }
  .site-logo img{ height:28px; }
}

/* === Branding: Logo links, Text rechts === */
.site-branding{ display:flex; align-items:center; gap:12px; }
.site-logo{ display:inline-flex; align-items:center; flex:0 0 auto; }
.site-logo img{ display:block; width:auto; height:32px; }

/* === Branding: Logo links, Text rechts === */
.site-branding{ display:flex; align-items:center; gap:12px; }
.site-logo{ display:inline-flex; align-items:center; flex:0 0 auto; }
.site-logo img{ display:block; width:auto; height:50px; }

/* === FIX: Branding horizontal (Logo links, Text rechts) === */
/* Stelle sicher, dass diese Regeln AM ENDE der CSS-Datei stehen. */
.site-branding{
  display:flex;
  flex-direction: row !important;
  align-items:center;
  gap:12px;
  flex: 0 1 auto;
}
.site-branding .brand-text{
  display:flex;
  flex-direction: column;
  min-width: 0;
}
.site-title{ margin:0; font-size:1.4rem; font-weight:800; line-height:1.2; }
.site-description{ margin:0; color:var(--muted); font-size:.92rem; }
.site-branding, .site-branding *{}

/* === Highlights (3 Karten unter dem Hero) === */
.highlights{ background: var(--bg-weak); padding: 40px 0; }
.highlights .highlights-grid{
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--gap);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.highlight-card{
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px;
  text-align: center;
}
.highlight-media{ margin: 0 auto 16px; overflow: hidden; border-radius: calc(var(--radius, 10px) - 2px); }
.highlight-media img{ width: 100%; height: 260px; object-fit: cover; display: block; }
.highlight-title{ margin: 8px 0 10px; font-size: 1.6rem; font-weight: 700; color: var(--text); }
.highlight-text{ margin: 0; color: var(--muted); line-height: 1.7; }

@media (max-width: 1100px){
  .highlights .highlights-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px){
  .highlights .highlights-grid{ grid-template-columns: 1fr; }
  .highlight-media img{ height: 220px; }
}

/* === FIX: Highlights bündig mit dem oberen Content === */
.highlights{ background: var(--bg-weak); padding: 40px 0; }
.highlights .highlights-grid{
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* === A11y: Skip-Link (Zum Inhalt springen) === */
.skip-link{
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 2000;
  background: var(--primary);
  color: #fff;
  padding: 10px 14px;
  border-radius: var(--radius);
  text-decoration: none;
  box-shadow: var(--shadow);
}
.skip-link:focus,
.skip-link:active{
  left: 12px;
  top: 12px;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* ===== THEME-KLASSEN (am Ende der Datei platzieren) ===== */

/* Farben */
body.theme-blue   { --primary:#3b82f6; --primary-600:#2563eb; }
body.theme-emerald{ --primary:#10b981; --primary-600:#059669; }
body.theme-amber  { --primary:#f59e0b; --primary-600:#d97706; }
body.theme-rose   { --primary:#f43f5e; --primary-600:#e11d48; }

/* Schatten-Stufen */
body.shadow-none{ --shadow: none; }
body.shadow-sm  { --shadow: 0 4px 10px rgba(15,23,42,.05); }
body.shadow-md  { --shadow: 0 8px 20px rgba(15,23,42,.08); }
body.shadow-lg  { --shadow: 0 16px 40px rgba(15,23,42,.12); }

/* Sticky ausschalten (Desktop) */
@media (min-width: 961px){
  body.sticky-off .site-header{ position: static; box-shadow:none; }
}

/* (optional) Globale Abstände via Klasse – später im Admin nutzbar
body.space-comfy  { --gap: 24px; }
body.space-compact{ --gap: 14px; }
*/

/* === Global: Smooth-Scroll (Browser-Fallback) === */
html { scroll-behavior: smooth; }

/* === Aktiver Menüpunkt etwas deutlicher hervorheben === */
.main-navigation .current-menu-item > a{
  color: var(--primary);
  position: relative;
  text-decoration: none;
}
.main-navigation .current-menu-item > a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-6px;
  height:2px;
  background: var(--primary);
}

/* === Admin: einfache Tabellen/Formulare === */
.admin-table{ width:100%; border-collapse:collapse; margin: 12px 0 18px; }
.admin-table th, .admin-table td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--border); }
.admin-table th{ font-weight:700; }

.form-row{ margin:14px 0; display:flex; flex-direction:column; gap:6px; }
.form-row.inline{ flex-direction:row; gap:18px; align-items:center; }
.form-row label{ font-weight:600; }
.form-row input[type="text"], .form-row textarea{
  width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg);
}
.form-actions{ display:flex; gap:10px; margin-top:14px; }
.notice{ padding:10px 12px; border-radius:var(--radius); margin:10px 0; }
.notice-error{ background:#fee2e2; border:1px solid #fecaca; color:#991b1b; }

.button{ display:inline-block; padding:8px 12px; border:1px solid var(--border); border-radius:var(--radius); text-decoration:none; }
.button-primary{ background:var(--primary); color:#fff; border-color:var(--primary-600); }

/* === Footer =========================================================== */
.site-footer {
  background: #0f172a;
  color: #e5e7eb;
  padding: 28px 16px;
}
.site-footer .inner-wrap { max-width: 1080px; margin: 0 auto; }
.site-footer .site-info {
  text-align: center;
  font-size: 0.95rem;
  margin-bottom: 10px;
  opacity: 0.9;
}
/* Footer-Navigation */
.footer-navigation { display: flex; justify-content: center; }
.footer-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  align-items: center;
  justify-content: center;
}
.footer-menu .menu-item { }
.footer-menu .menu-item a {
  color: #e5e7eb;
  text-decoration: none;
  font-size: 0.95rem;
  line-height: 1.6;
  padding: 6px 8px;
  border-radius: var(--radius);
  transition: color .15s ease, background-color .15s ease;
}
.footer-menu .menu-item a:hover,
.footer-menu .menu-item a:focus {
  color: #ffffff;
  background: rgba(255,255,255,.08);
  outline: none;
}
@media (max-width: 480px) {
  .site-footer { padding: 24px 14px; }
  .footer-menu { gap: 10px 16px; }
}

/* ganz oben oder bei deinen Root-Variablen */
:root{ --mm-container: 1320px; }
@media (min-width: 1600px){ :root{ --mm-container: 1440px; } }

/* === Card + Container für Inhaltsblöcke =============================== */
:root{
  --mm-container: 1320px;
  --mm-card-bg: #fff;
  --mm-card-radius: var(--radius);
  --mm-card-shadow: 0 6px 24px rgba(0,0,0,.06);
  --mm-card-border: 1px solid rgba(0,0,0,.06);
  --mm-card-pad: 1.25rem;
  --mm-section-gap: 24px;
}
@media (min-width: 1600px){ :root{ --mm-container: 1440px; } }
.mm-wrap{ width: 100%; }
.mm-wrap.mm-contained{ max-width: var(--mm-container); margin: 0 auto; padding: 0 1rem; }
.mm-section{ margin: var(--mm-section-gap) 0; }
.mm-card{
  background: var(--mm-card-bg);
  border-radius: var(--mm-card-radius);
  box-shadow: var(--mm-card-shadow);
  border: var(--mm-card-border);
  overflow: hidden;
}
.mm-card-body{ padding: var(--mm-card-pad); }

:root{
  --mm-container: 1320px;
  --mm-card-bg: #fff;
  --mm-card-radius: var(--radius);
  --mm-card-shadow: 0 6px 24px rgba(0,0,0,.06);
  --mm-card-border: 1px solid rgba(0,0,0,.06);
  --mm-card-pad: 1.25rem;
  --mm-section-gap: 24px;
}
.mm-wrap{ width:100%; }
.mm-wrap.mm-contained{ max-width: var(--mm-container); margin: 0 auto; padding: 0 1rem; }
.mm-section{ margin: var(--mm-section-gap) 0; }
.mm-card{ background: var(--mm-card-bg); border-radius: var(--mm-card-radius);
          box-shadow: var(--mm-card-shadow); border: var(--mm-card-border); overflow:hidden; }
.mm-card-body{ padding: var(--mm-card-pad); }

/* === Header-Navigation neutralisieren (keine Farbe, kein Hover, kein Active) === */
/* HINWEIS: Lässt die Header-Links neutral – falls du die Aktiv-Markierung willst, entferne diesen Block. */
.site-header .main-navigation .menu-item > a{
  color: var(--text) !important;
  text-decoration: none !important;
  background: transparent !important;
}
.site-header .main-navigation .menu-item > a:hover,
.site-header .main-navigation .menu-item > a:focus{
  color: var(--text) !important;
  text-decoration: none !important;
  background: transparent !important;
  outline: none;
}
.site-header .main-navigation .current-menu-item > a{ color: var(--text) ; }
.site-header .main-navigation .current-menu-item > a::after{ content: none; }
.site-header a, .site-header a:hover{
  color: var(--text);
  text-decoration: none !important;
}

/* Exhibitors – Liste */
.exhibitors-index { padding: 1rem 0; }
.exhibitors-head { display:flex; justify-content:space-between; align-items:end; gap:.75rem; margin-bottom:1rem; }
.exhibitors-title { font-size: clamp(1.25rem, 2vw, 1.75rem); margin:0; }
.exhibitors-count { color:#6b7280; font-size:.95rem; }
.exhibitors-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { .exhibitors-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767.98px) { .exhibitors-grid .ex-card:nth-child(n+13) { display: none; } }
.ex-card { border:1px solid #e5e7eb; border-radius: var(--radius); overflow:hidden; background:#fff; transition: transform .15s ease, box-shadow .15s ease; }
.ex-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.06); }
.ex-card__link { display:block; text-decoration:none !important; color:inherit; }
.ex-card__media { display:flex; align-items:center; justify-content:center; background:transparent; height: 120px; }
.ex-card__media img { max-height: 80px; max-width: 80%; object-fit: contain; }
.ex-card__body { padding: .85rem 1rem; }
.ex-card__title { margin:0; font-size:1.05rem; line-height:1.25; text-align: center; }

/* Exhibitors – Detail */
.ex-detail { padding: 1rem 0; }
.ex-detail__back { display:inline-block; margin-bottom:.75rem; color:#2563eb; text-decoration:none; }
.ex-detail__header { display:grid; grid-template-columns: 1fr; gap:1rem; align-items:center; }
.ex-detail__media { display:flex; align-items:center; justify-content:center; background:#f8fafc; border:1px solid #e5e7eb; border-radius: var(--radius); min-height:160px; }
.ex-detail__media img { max-height: 140px; max-width: 90%; object-fit: contain; }
.ex-detail__title { margin:.25rem 0 .25rem; font-size: clamp(1.3rem, 2.6vw, 2rem); }
.ex-detail__website a { color:#2563eb; text-decoration:none; }
.ex-detail__body { margin-top:1rem; }

/* Desktop (>=1024px): 3 Karten pro Zeile */
@media (min-width: 1024px) {
  .exhibitors-grid { grid-template-columns: 1fr 1fr 1fr; }
}

/* ========== Exhibitor Detail (WOW) ========== */
:root {
  --exd-grad-a: #3b82f6;
  --exd-grad-b: #a855f7;
  --exd-surface: #ffffff;
  --exd-muted: #6b7280;
  --exd-ring: rgba(59,130,246,.35);
}
.exd { padding: 1rem 0 2rem; }
.exd-back { display:inline-block; margin-bottom:.5rem; color:#2563eb; text-decoration:none; }
.exd-back:hover { text-decoration:underline; }

/* HERO */
.exd-hero {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: linear-gradient(120deg, var(--exd-grad-a), var(--exd-grad-b));
  padding: clamp(1.2rem, 3vw, 2rem);
  margin-bottom: 1.25rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
}
.exd-hero__bg { position:absolute; inset:0; pointer-events:none; }
.exd-bubble {
  position:absolute; width:240px; height:240px; border-radius: var(--radius);
  filter: blur(40px);
  opacity:.35; background:#fff;
  animation: exdFloat 16s ease-in-out infinite;
}
.exd-b1 { top:-60px; left:-40px; }
.exd-b2 { bottom:-70px; right:-50px; width:280px; height:280px; animation-delay: -6s; }
.exd-b3 { top:20%; right:20%; width:180px; height:180px; animation-delay: -10s; }
@keyframes exdFloat { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-12px) } }

.exd-hero__card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  backdrop-filter: blur(8px);
  background: linear-gradient( to bottom right, rgba(255,255,255,.18), rgba(255,255,255,.06) );
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--radius);
  padding: clamp(1rem, 2.5vw, 1.25rem);
}
.exd-logo {
  position: relative;
  width: 132px; height:132px;
  border-radius: var(--radius);
  background: rgba(255,255,255,.9);
  box-shadow: 0 12px 40px rgba(0,0,0,.18), 0 0 0 6px rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center;
  margin: .25rem 0;
}
.exd-logo img { max-width: 88%; max-height: 88%; object-fit: contain; }
.exd-hero__text { color: #fff; }
.exd-title { margin:.25rem 0 .5rem; font-size: clamp(1.4rem, 3.2vw, 2.2rem); line-height:1.1; color:#fff; }

.exd-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin:.25rem 0 .75rem; }
.exd-chip {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.85rem; color:#fff; background: rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.35);
  padding:.35rem .6rem; border-radius: var(--radius); backdrop-filter: blur(4px);
}
.exd-chip.is-ok { background: rgba(34,197,94,.25); border-color: rgba(34,197,94,.5); }
.exd-chip.is-bad { background: rgba(239,68,68,.25); border-color: rgba(239,68,68,.5); }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:.5rem; padding:.6rem .9rem; border-radius: var(--radius); border:1px solid transparent; text-decoration:none; font-weight:600; }
.btn .i { width:1.05rem; height:1.05rem; }
.btn-primary { background:#111827; color:#fff; border-color:#111827; box-shadow: 0 6px 18px rgba(0,0,0,.22); }
.btn-primary:hover { transform: translateY(-1px); }
.btn-ghost { background: rgba(255,255,255,.12); color:#fff; border-color: rgba(255,255,255,.35); }
.btn-ghost:hover { background: rgba(255,255,255,.2); }

/* CONTENT GRID */
.exd-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 960px) { .exd-grid { grid-template-columns: 2fr 1fr; } }

.exd-card {
  background: var(--exd-surface);
  border: 1px solid #e5e7eb;
  border-radius: var(--radius);
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}
.exd-card h2, .exd-card h3 { margin: .25rem 0 .6rem; }
.muted { color: var(--exd-muted); }

/* Aside lists */
.exd-aside .exd-card { position: sticky; top: 1rem; }
.exd-list { list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.exd-list li { display:grid; grid-template-columns: 120px 1fr; gap:.5rem; align-items:start; }
.exd-list .k { color:#374151; font-weight:600; }
.exd-list .v a { color:#2563eb; text-decoration:none; }
.exd-list .v a:hover { text-decoration:underline; }

/* Typo content */
.prose p { margin:.6rem 0; line-height:1.6; }

/* ===== Exhibitor MEDIA (kompakt + wow) ===== */
.exd-media { display: grid; gap: .9rem; margin: 1rem 0 1.25rem; }
@media (min-width: 1024px) { .exd-media { grid-template-columns: 2fr 1fr; align-items: start; } }

/* ===== Exhibitor MEDIA – UNIFORME GALLERY ===== */
.exd-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
}
@media (min-width: 720px)  { .exd-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .exd-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.exd-thumb {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--radius);
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  aspect-ratio: 1 / 1;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
  transition: transform .18s ease, box-shadow .18s ease;
}
.exd-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform .25s ease;
}
.exd-thumb:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.exd-thumb:hover img { transform: scale(1.06); }

/* (alte Sonderregeln ggf. entfernen) */
@media (min-width: 1024px){ .exd-thumb.is-wide { grid-column: span 2; } }
.exd-thumb img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .25s ease; }
.exd-thumb:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.exd-thumb:hover img { transform: scale(1.06); }

/* Video kompakt */
.exd-video--compact { align-self: start; }
.exd-video__frame, .exd-video__player {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: none;
  border-radius: var(--radius);
  background: #000;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
@media (min-width: 1200px) {
  .exd-video__frame, .exd-video__player { max-height: 360px; }
}

/* Lightbox / Modal */
.exd-no-scroll { overflow: hidden; }
.exd-lightbox[aria-hidden="true"] { display: none; }
.exd-lightbox {
  position: fixed; inset: 0; z-index: 1000;
  display: grid; place-items: center;
  background: rgba(10,13,20,.6);
  backdrop-filter: blur(6px);
  animation: exdFade .18s ease;
}
@keyframes exdFade { from { opacity: 0 } to { opacity: 1 } }
.exd-lb__stage {
  max-width: min(92vw, 1200px);
  max-height: 86vh;
  border-radius: var(--radius);
  overflow: hidden;
  background: #0b0b0b;
  box-shadow: 0 20px 60px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08) inset;
  display:flex; align-items:center; justify-content:center;
}
.exd-lb__stage img { max-width: 100%; max-height: 86vh; object-fit: contain; display: block; background: #0b0b0b; }
.exd-lb__close, .exd-lb__nav {
  position: absolute; top: 14px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.35);
  color: #fff; cursor: pointer; user-select: none;
  padding: .5rem .7rem; border-radius: var(--radius);
  backdrop-filter: blur(4px);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.exd-lb__close { right: 14px; }
.exd-lb__nav { top: 50%; transform: translateY(-50%); padding: .6rem .8rem; font-size: 1.6rem; line-height: 1; }
.exd-lb__prev { left: 14px; }
.exd-lb__next { right: 14px; }
.exd-lb__close:hover, .exd-lb__nav:hover { background: rgba(255,255,255,.28); }

/* ===== Exhibitor Detail – Content Grid & Abstände ===== */
.exd-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1rem 0 2rem; }
@media (min-width: 992px) {
  .exd-grid { grid-template-columns: 2fr 1fr; align-items: start; }
}
.exd-col-main { display: grid; gap: 1rem; }
.exd-aside { display: grid; gap: 1rem; position: static; }
.exd-card {
  background: #fff; border: 1px solid #e5e7eb; border-radius: var(--radius);
  padding: 1rem 1.1rem; box-shadow: 0 6px 18px rgba(0,0,0,.05);
}
.exd-card h2, .exd-card h3 { margin: 0 0 .6rem; }

/* ===== Desktop: 3er-Galerie + Video füllt rechte Spalte (zweireihig) ===== */
@media (min-width: 1024px){
  .exd-media{
    display: grid;
    gap: .9rem;
    grid-template-columns: 3fr 2fr;
    grid-template-rows: auto auto;
    grid-template-areas: "g v" "g v";
    align-items: start;
  }
  .exd-gallery{
    grid-area: g;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
  }
  .exd-video{ grid-area: v; align-self: stretch; }
  .exd-video__frame, .exd-video__player{ width: 100%; height: 100%; max-height: none; }
}
@media (min-width: 1200px){
  .exd-gallery{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ===== FIX: Sidebar-Sticky sauber, keine Überlappungen ===== */
@media (max-width: 1199.98px){
  .exd-aside, .exd-aside .exd-card{ position: static !important; }
}
@media (min-width: 1200px){
  .exd-aside{
    position: sticky;
    top: 1rem;
    align-self: start;
    height: fit-content;
    z-index: 1;
  }
  .exd-aside .exd-card{ position: static !important; }
}
.exd-aside{ display: grid; gap: var(--gap, 1rem); }
.exd-col-main{ display: grid; gap: var(--gap, 1rem); }

/* === Home: 2-Spalten-Layout ============================================ */
.home-grid{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap: 24px;
  align-items: start;
}
@media (max-width: 960px){ .home-grid{ grid-template-columns: 1fr; } }

/* Sidebar Widgets */
.home-widget + .home-widget{ margin-top: 16px; }
.home-aside .h6{ font-size: 1rem; font-weight: 700; }
.list-unstyled{ list-style:none; margin:0; padding:0; }

/* === Vereinheitlichte Seitenbreite & Centering ============================ */
:root{
  --container-max: 1500px;
  --container-pad-x: clamp(12px, 2vw, 24px);
}
.inner-wrap,
.mm-contained,
.mm-wrap.mm-contained{
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad-x);
  padding-right: var(--container-pad-x);
}
.hero .inner-wrap,
.hero-single .inner-wrap,
.hero-slider .inner-wrap,
.site-header .inner-wrap,
header .inner-wrap{
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad-x);
  padding-right: var(--container-pad-x);
}
/* Optional: optische Feinkorrektur – Sidebar-News behalten ihre kleine Card-Größe */
.home-aside .mm-card.home-widget .mm-card-body .mm-meta{ margin-bottom:.25rem; }
.home-aside .mm-card.home-widget .mm-card-body .mm-excerpt{ margin:0 0 .5rem; }

/* Feinjustierung: leichter Links-Offset (~3 mm) */
@media (min-width: 1200px) {
  :root { --container-shift-x: -10px; }
  .inner-wrap,
  .mm-contained,
  .mm-wrap.mm-contained,
  .hero .inner-wrap,
  .hero-single .inner-wrap,
  .hero-slider .inner-wrap,
  .site-header .inner-wrap,
  header .inner-wrap { transform: translateX(var(--container-shift-x)); }
  body { overflow-x: hidden; }
}

/* ========== Schmalere Seitenvariante für bestimmte Seiten (z. B. News) ===== */
:root{ --container-max-narrow: 1120px; }
.mm-contained--narrow,
.mm-wrap.mm-contained--narrow{ max-width: var(--container-max-narrow); }
.inner-wrap--narrow{
  max-width: var(--container-max-narrow);
  margin-left: auto; margin-right: auto;
}

/* News-Übersicht: Extra Abstand zwischen den Cards */
.news-grid { --bs-gutter-y: 3rem; }
.news-grid > [class*="col-"] { margin-bottom: 1rem; }

/* ===== Modal (Startseite – News) ======================================= */
.mm-modal{
  position: fixed; inset: 0; display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  background: transparent;
  opacity: 0; pointer-events: none;
  transition: opacity .18s ease;
  z-index: 1000;
}
.mm-modal.is-open{ opacity: 1; pointer-events: auto; }
.mm-modal__backdrop{ position: fixed; inset: 0; background: rgba(0,0,0,.45); }
.mm-modal__dialog{
  grid-column: 2;
  margin: min(8vh,64px) 0;
  background: #fff; color: inherit;
  width: min(900px, calc(100vw - 32px));
  max-height: calc(100vh - 16vh);
  border-radius: var(--radius);
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  overflow: hidden;
  transform: translateY(10px);
  transition: transform .18s ease, opacity .18s ease;
  opacity: 0;
}
.mm-modal.is-open .mm-modal__dialog{ transform: translateY(0); opacity: 1; }
.mm-modal__close{
  position: absolute; top: 10px; right: 10px;
  border: 0; background: #f3f4f6; color: #111;
  width: 36px; height: 36px; border-radius: var(--radius);
  font-size: 18px; line-height: 36px; cursor: pointer;
}
.mm-modal__close:hover{ background:#e5e7eb; }
.mm-modal__content{ padding: 20px 22px; overflow: auto; max-height: calc(100vh - 16vh - 20px); }
.mm-modal__content h1, .mm-modal__content h2, .mm-modal__content h3{ margin-top: .25rem; }
@media (max-width: 576px){ .mm-modal__dialog{ width: calc(100vw - 16px); } }

/* Exhibitors · Socials */
.exd-social{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .6rem;
}
.exd-social__item{ list-style: none; }
.so-tile{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border-radius: var(--radius);
  border: 1px solid #e5e7eb;
  background: #fff; color: #111;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
  text-decoration: none;
}
.so-tile:hover, .so-tile:focus{ background: #f8fafc; outline: none; }
.sr-only{
  position: absolute; left: -9999px; top: auto;
  width: 1px; height: 1px; overflow: hidden;
}

/* ===== Public Gallery · Index (robust) ================================ */
.mm-gallery{ --mm-max:1100px; --mm-gap:18px; }
.mm-gallery > .mm-wrap{ max-width:var(--mm-max); margin:0 auto; padding:20px 16px; }
.mm-gallery > .mm-wrap > h1{ font-size:clamp(1.6rem,2.2vw,2rem); margin:0 0 12px; }
.mm-gallery .mm-meta{ font-size:.95rem; color:#667085; }

/* Grid */
.mm-gallery .mm-grid{
  display:grid; gap:var(--mm-gap);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (min-width:760px){ .mm-gallery .mm-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1080px){ .mm-gallery .mm-grid{ grid-template-columns:repeat(4,1fr); } }

/* Cards */
.mm-gallery .mm-grid > a.mm-card{
  display:flex; flex-direction:column; text-decoration:none; color:inherit;
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius: var(--radius); overflow:hidden; box-shadow:0 4px 16px rgba(0,0,0,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.mm-gallery .mm-grid > a.mm-card:hover{ transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,0,0,.08); }

/* Media */
.mm-gallery .mm-card .mm-media{
  background:#f2f2f2; overflow:hidden; aspect-ratio:16/10; position:relative;
}
.mm-gallery .mm-card .mm-media img{ width:100%; height:100%; object-fit:cover; display:block; }
@supports not (aspect-ratio: 1 / 1) {
  .mm-gallery .mm-card .mm-media{ aspect-ratio:auto; padding-top:62.5%; }
  .mm-gallery .mm-card .mm-media img{ position:absolute; inset:0; }
}
.mm-gallery .mm-card .mm-body{ padding:10px 12px; }
.mm-gallery .mm-card .mm-title{ font-weight:600; line-height:1.25; margin:0 0 4px; font-size:.98rem; }
.mm-gallery .mm-card .mm-meta{ font-size:.86rem; color:#667085; }
.mm-gallery .mm-empty{ color:#6b7280; padding:12px 0; }

/* Pagination */
.mm-gallery nav.pagination{ display:flex; gap:6px; justify-content:center; padding:14px 0 0; }
.mm-gallery .pagination .page-item{ display:inline-block; }
.mm-gallery .pagination .page-link{
  display:inline-block; min-width:36px; padding:6px 10px;
  border-radius: var(--radius); border:1px solid #e5e7eb; background:#fff; color:inherit; text-decoration:none; text-align:center;
}
.mm-gallery .pagination .page-item.active .page-link{ background:#0d6efd; color:#fff; border-color:#0d6efd; }
.mm-gallery .pagination .page-item.disabled .page-link{ opacity:.5; pointer-events:none; }

/* ===== Public Gallery · Album ========================================== */
.mm-album{ --mm-max:1100px; --mm-gap:14px; }
.mm-album .mm-wrap{ max-width:var(--mm-max); margin:0 auto; padding:20px 16px; }
.mm-album h1{ font-size:clamp(1.6rem,2.2vw,2rem); margin:0 0 6px; }
.mm-album .mm-meta{ font-size:.9rem; color:#667085; margin-bottom:14px; }
.mm-album .mm-grid{ display:grid; gap:var(--mm-gap); grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:760px){ .mm-album .mm-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1080px){ .mm-album .mm-grid{ grid-template-columns:repeat(4,1fr); } }
.mm-album .mm-thumb{ display:block; border-radius: var(--radius); overflow:hidden; border:1px solid rgba(0,0,0,.06); background:#f6f7f9; }
.mm-album .mm-thumb .ph{ aspect-ratio:4/3; }
.mm-album .mm-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.mm-album .mm-thumb:hover img{ transform:scale(1.02); }

/* ===== Album Lightbox =================================================== */
#mmLightbox{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:2147483647; }
#mmLightbox.is-open{ display:flex; }
#mmLightbox::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.62); }
#mmLbBox{
  position:relative; z-index:1; display:flex; flex-direction:column;
  background:#fff; border-radius: var(--radius); box-shadow:0 18px 48px rgba(0,0,0,.35);
  max-width:min(96vw,1100px); max-height:calc(100vh - 64px);
  min-width:280px; min-height:180px; overflow:hidden;
}
#mmLbHead{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  padding:.5rem .75rem; border-bottom:1px solid rgba(255,255,255,.08); color:#0b0b0b;
}
#mmLbClose{
  appearance:none; border:0; background:transparent; color:#0b0b0b;
  width:36px; height:36px; border-radius: var(--radius); font-size:20px; line-height:1; cursor:pointer;
}
#mmLbClose:hover{ background:rgba(255,255,255,.08); }
#mmLbBody{ flex:1; display:flex; align-items:center; justify-content:center; background:#000; overflow:auto; }
#mmLbImg{ display:block; max-width:100%; max-height:calc(100vh - 112px); height:auto; width:auto; }
#mmLbStage{ position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
#mmLbNav{ position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; pointer-events:none; padding:0 8px; }
.mmLbBtn{ pointer-events:auto; width:42px; height:42px; border-radius: var(--radius); border:0; background:rgba(0,0,0,.45); color:#fff; font-size:20px; cursor:pointer; }
.mmLbBtn:hover{ background:rgba(0,0,0,.6); }
@media (max-height:520px){
  #mmLbBox{ max-height:calc(100vh - 32px); }
  #mmLbImg{ max-height:calc(100vh - 80px); }
}

/* ===== Album Pagination (scoped) ======================================= */
.mm-album nav[aria-label="Seiten"]{ margin-top:22px; display:flex; justify-content:center; }
.mm-album .pagination{
  --mm-pill-bg:#f3f4f6; --mm-pill-fg:#0f172a; --mm-pill-hover:#e5e7eb;
  --mm-pill-active:#111827; --mm-pill-active-fg:#fff; --mm-pill-border:rgba(0,0,0,.08);
  display:flex; gap:10px; flex-wrap:wrap; padding:0; background:transparent; border:0; margin:0 auto;
}
.mm-album .pagination .page-item{ display:inline-flex; }
.mm-album .pagination .page-link{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 14px;
  border-radius: var(--radius); border:1px solid var(--mm-pill-border);
  background:var(--mm-pill-bg); color:var(--mm-pill-fg);
  font-weight:600; text-decoration:none; line-height:1;
  box-shadow:0 1px 0 rgba(0,0,0,.02) inset;
  transition:background .18s ease, color .18s ease, transform .05s ease;
}
.mm-album .pagination .page-link:hover{ background:var(--mm-pill-hover); text-decoration:none; }
.mm-album .pagination .page-item.active .page-link{ background:var(--mm-pill-active); color:var(--mm-pill-active-fg); border-color:var(--mm-pill-active); }
.mm-album .pagination .page-item.disabled .page-link{ opacity:.45; cursor:not-allowed; filter:saturate(.6); }
.mm-album .pagination .page-link:focus{ outline:0; box-shadow:0 0 0 3px rgba(59,130,246,.35); }
.mm-album .pagination .page-item:first-child .page-link,
.mm-album .pagination .page-item:nth-child(2) .page-link,
.mm-album .pagination .page-item:last-child .page-link,
.mm-album .pagination .page-item:nth-last-child(2) .page-link{ min-width:44px; }

@media (max-width:420px){
  .mm-album .pagination{ gap:8px; }
  .mm-album .pagination .page-link{ min-width:36px; height:36px; padding:0 12px; font-weight:600; }
}

/* === Admin Sidebar · Submenu-Einrückung (für aufklappbare Unterpunkte) === */
#sidebar-accordion .nav-submenu{
  padding-left: 1.5rem;
  margin-top: .25rem;
}
#sidebar-accordion .nav-submenu .nav-link{
  font-size: .95rem;
  padding: .25rem 0 .25rem .25rem;
}
#sidebar-accordion .nav-submenu .nav-submenu{ padding-left: 1.25rem; }
.nav-caret{ transition: transform .2s ease; }
.nav-link.collapsed .nav-caret{ transform: rotate(-90deg); }




/* ==== Live-Design Overrides (am Ende eingefügt) ===================== */
/* Überschriften separat steuerbar (fallback auf --text) */
h1, h2, h3, h4, h5, h6 { color: var(--heading, var(--text)); }

/* Header / Footer übersteuerbar */
.site-header {
  background: var(--header-bg, var(--bg));
  color: var(--header-fg, var(--text));
}
.site-header a { color: inherit; }

.site-footer {
  background: var(--footer-bg, #0f172a);
  color: var(--footer-fg, #e5e7eb);
}

/* Cards: Farbe, Rahmen, Radius, Schatten zentral */
.mm-card{
  background: var(--mm-card-bg, #fff) !important;
  border: 1px solid var(--mm-card-border, rgba(0,0,0,.06)) !important;
  border-radius: var(--mm-card-radius, var(--radius)) !important;
  box-shadow: var(--mm-card-shadow, 0 6px 24px rgba(0,0,0,.06)) !important;
}

/* Globale Buttons: unabhängig von Primärfarbe steuerbar */
.button, .btn, a.button{
  background: var(--btn-bg, var(--primary)) !important;
  color: var(--btn-fg, #fff) !important;
  border-color: var(--btn-border, transparent) !important;
}
.button:hover, .btn:hover, a.button:hover{
  background: var(--btn-hover-bg, var(--primary-600)) !important;
  color: var(--btn-hover-fg, #fff) !important;
  text-decoration: none;
}

/* Hintergrundflächen */
body.site{
  background: var(--bg-weak, #f8fafc);
  color: var(--text, #0f172a);
}

/* Sicherheit: Containerbreite (falls woanders enger definiert wurde) */
.inner-wrap,
.mm-contained,
.mm-wrap.mm-contained{
  max-width: var(--container-max, 1500px);
}


/* ==== Live-Design Overrides – erweitert ================================= */

/* Headings separat steuerbar */
h1, h2, h3, h4, h5, h6 { color: var(--heading, var(--text)) !important; }

/* Header / Nav */
.site-header { background: var(--header-bg, var(--bg)) !important; color: var(--header-fg, var(--text)) !important; }
.site-header .main-navigation .menu-item > a{
  color: var(--nav-link, var(--header-fg, var(--text))) !important;
  text-decoration: none !important;
}
.site-header .main-navigation .menu-item > a:hover,
.site-header .main-navigation .menu-item > a:focus{
  color: var(--nav-link-hover, var(--primary, var(--text))) !important;
  background: transparent !important;
}

/* Footer (stark übersteuern) */
.site-footer { background: var(--footer-bg, #0f172a) !important; color: var(--footer-fg, #e5e7eb) !important; }
.site-footer a { color: var(--footer-fg, #e5e7eb) !important; }

/* Globale Flächen */
body.site{ background: var(--bg-weak, #f8fafc) !important; color: var(--text, #0f172a) !important; }

/* Containerbreite wirklich durchsetzen */
.inner-wrap,
.mm-contained,
.mm-wrap.mm-contained{
  max-width: var(--container-max, 1500px) !important;
}

/* Cards: alle Varianten (Frontend & evtl. Bootstrap .card) */
.mm-card,
.card,
.post, .type-page, .hentry{
  background: var(--mm-card-bg, #fff) !important;
  border: 1px solid var(--mm-card-border, rgba(0,0,0,.06)) !important;
  border-radius: var(--mm-card-radius, var(--radius, 10px)) !important;
  box-shadow: var(--mm-card-shadow, var(--shadow, 0 6px 24px rgba(0,0,0,.06))) !important;
}

/* Buttons: unabhängig steuerbar + Radius */
.button, .btn, a.button{
  background: var(--btn-bg, var(--primary)) !important;
  color: var(--btn-fg, #fff) !important;
  border-color: var(--btn-border, transparent) !important;
  border-radius: var(--btn-radius, calc(var(--radius, 10px) - 2px)) !important;
}
.button:hover, .btn:hover, a.button:hover{
  background: var(--btn-hover-bg, var(--primary-600, var(--primary))) !important;
  color: var(--btn-hover-fg, #fff) !important;
  text-decoration: none !important;
}

/* Sticky Toggle: Listener setzt Klasse auf <html>, daher hier generisch */
@media (min-width: 961px){
  .sticky-off .site-header{ position: static !important; box-shadow:none !important; }
}

/* Nav-Unterstreichung aus globalen Regeln neutralisieren, aber per Var steuerbar */
.main-navigation .current-menu-item > a::after{ background: var(--nav-link, var(--primary)); }

/* === Live-Design · Ergänzungen (BITTE am Dateiende lassen) ================== */
:root{
  --font-heading: var(--font-sans);
  --body-weight: 400;
  --heading-weight: 800;
  --body-style: normal;
  --heading-style: normal;

  /* pro Heading Level: Farbe + Größe (können überschrieben werden) */
  --h1-color: var(--heading, var(--text));
  --h2-color: var(--heading, var(--text));
  --h3-color: var(--heading, var(--text));
  --h4-color: var(--heading, var(--text));
  --h5-color: var(--heading, var(--text));
  --h6-color: var(--heading, var(--text));
  --h1-size: 32px; --h2-size: 28px; --h3-size: 24px;
  --h4-size: 20px; --h5-size: 18px; --h6-size: 16px;

  /* Header/Nav/Footer */
  --header-bg: var(--bg);
  --header-fg: var(--text);
  --nav-link: var(--text);
  --nav-link-hover: var(--primary);
  --footer-bg: #0f172a;
  --footer-fg: #e5e7eb;

  /* Buttons (fallen auf global zurück) */
  --btn-bg: var(--primary);
  --btn-fg: #fff;
  --btn-border: transparent;
  --btn-hover-bg: var(--primary-600, var(--primary));
  --btn-hover-fg: #fff;
  /* wenn --btn-radius nicht gesetzt ist, nimmt CSS unten var(--radius) */
}

/* Body/Headings global */
body.site{
  font-family: var(--font-sans) !important;
  font-weight: var(--body-weight) !important;
  font-style: var(--body-style) !important;
  color: var(--text, #0f172a) !important;
}

/* Überschriften – je Level eigene Farbe & Größe */
h1,h2,h3,h4,h5,h6{
  font-family: var(--font-heading, var(--font-sans)) !important;
  font-weight: var(--heading-weight, 800) !important;
  font-style: var(--heading-style, normal) !important;
  line-height: 1.2;
}
h1{ color: var(--h1-color, var(--heading, var(--text))) !important; font-size: var(--h1-size) !important; }
h2{ color: var(--h2-color, var(--heading, var(--text))) !important; font-size: var(--h2-size) !important; }
h3{ color: var(--h3-color, var(--heading, var(--text))) !important; font-size: var(--h3-size) !important; }
h4{ color: var(--h4-color, var(--heading, var(--text))) !important; font-size: var(--h4-size) !important; }
h5{ color: var(--h5-color, var(--heading, var(--text))) !important; font-size: var(--h5-size) !important; }
h6{ color: var(--h6-color, var(--heading, var(--text))) !important; font-size: var(--h6-size) !important; }

/* Header/Nav Farben */
.site-header{ background: var(--header-bg, var(--bg)) !important; color: var(--header-fg, var(--text)) !important; }
.site-header .main-navigation .menu-item > a{
  color: var(--nav-link, var(--header-fg, var(--text))) !important;
  text-decoration: none !important;
}
.site-header .main-navigation .menu-item > a:hover,
.site-header .main-navigation .menu-item > a:focus{
  color: var(--nav-link-hover, var(--primary, var(--text))) !important;
  background: transparent !important;
}

/* Footer */
.site-footer{ background: var(--footer-bg) !important; color: var(--footer-fg) !important; }
.site-footer a{ color: var(--footer-fg) !important; }

/* Containerbreite strikt */
.inner-wrap,
.mm-contained,
.mm-wrap.mm-contained{
  max-width: var(--container-max, 1500px) !important;
}

/* Cards (Frontend + Bootstrap + Posts) – Radius fällt auf global zurück,
   außer wenn --mm-card-radius gesetzt (durch „Card-Radius separat steuern“) */
.mm-card,
.card,
.post, .type-page, .hentry{
  background: var(--mm-card-bg, #fff) !important;
  border: 1px solid var(--mm-card-border, rgba(0,0,0,.06)) !important;
  border-radius: var(--mm-card-radius, var(--radius, 10px)) !important;
  box-shadow: var(--mm-card-shadow, var(--shadow, 0 6px 24px rgba(0,0,0,.06))) !important;
}

/* Buttons – Radius fällt auf global zurück, wenn --btn-radius nicht gesetzt */
.button, .btn, a.button{
  background: var(--btn-bg) !important;
  color: var(--btn-fg) !important;
  border-color: var(--btn-border) !important;
  border-radius: var(--btn-radius, var(--radius, 10px)) !important;
}
.button:hover, .btn:hover, a.button:hover{
  background: var(--btn-hover-bg) !important;
  color: var(--btn-hover-fg) !important;
  text-decoration: none !important;
}

/* Sticky Toggle */
@media (min-width: 961px){
  .sticky-off .site-header{ position: static !important; box-shadow: none !important; }
}

/* === Highlights (Startseite) – Konfigurierbar über Variablen ================= */
:root{
  --hl-gap: 28px;                  /* Abstand zwischen Karten */
  --hl-radius: 12px;               /* Karten-Radius */
  --hl-card-bg: #fff;              /* Karten-Hintergrund */
  --hl-card-border: rgba(0,0,0,.06);
  --hl-card-shadow: 0 6px 24px rgba(0,0,0,.06);

  --hl-title-color: #0f172a;
  --hl-text-color: #4b5563;

  --hl-btn-bg: #f9fafb;
  --hl-btn-border: #d1d5db;
  --hl-btn-fg: #374151;
  --hl-btn-hover-bg: #f3f4f6;
  --hl-btn-hover-border: #cbd5e1;
  --hl-btn-hover-fg: #111827;

  --hl-media-fit: cover;           /* globales default (cover|contain) */
  --hl-img-pad: 0%;                /* NEU: Innenabstand des Bildes (z.B. 6%) */
}

/* Grid: letzte Reihe bleibt zentriert */
.mm-high-grid{
  --cols: 3;                       /* Default, wird über Klasse überschrieben */
  display:flex; flex-wrap:wrap;
  gap: var(--hl-gap);
  justify-content:center;
}
.mm-high-grid.cols-2{ --cols: 2; }
.mm-high-grid.cols-3{ --cols: 3; }
.mm-high-grid.cols-4{ --cols: 4; }

.mm-high-item{
  flex: 1 1 calc( (100% - (var(--cols) - 1) * var(--hl-gap)) / var(--cols) );
  max-width: calc( (100% - (var(--cols) - 1) * var(--hl-gap)) / var(--cols) );
  display:flex; flex-direction:column;
}

/* Karte */
.mm-high-card{
  height:100%;
  display:flex; flex-direction:column;
  background: var(--hl-card-bg);
  border-radius: var(--hl-radius);
  box-shadow: var(--hl-card-shadow);
  border: 1px solid var(--hl-card-border);
  overflow:hidden;
}

/* Bildbereich: 4:3 (wie vorher) */
.mm-high-media{ width:100%; aspect-ratio: 4 / 3; overflow:hidden; background:var(--hl-bg); }
.mm-high-media img{
  width:100%; height:100%; display:block;
  object-fit: var(--hl-media-fit);
  object-position: center center;
  padding: var(--hl-img-pad);
}
/* Per-Block Override (keine Inline Styles nötig) */
.mm-high-media.is-cover  img{ object-fit: cover; }
.mm-high-media.is-contain img{ object-fit: contain; }

.mm-high-body{ padding:1.5rem; text-align:center; }
.mm-high-title{
  font-size: clamp(1.1rem, 1vw + .9rem, 1.2rem);
  font-weight:700;
  margin:.75rem 0 .5rem;
  color: var(--hl-title-color);
}
.mm-high-text{
  color: var(--hl-text-color);
  line-height:1.7;
  margin:0 0 1rem;
}

.mm-btn{
  display:inline-block;
  padding:.55rem 1rem;
  border:1px solid var(--hl-btn-border);
  background: var(--hl-btn-bg);
  border-radius: var(--radius);
  color: var(--hl-btn-fg);
  text-decoration:none;
}
.mm-btn:hover{
  background: var(--hl-btn-hover-bg);
  border-color: var(--hl-btn-hover-border);
  color: var(--hl-btn-hover-fg);
}

/* Mobile: 1 pro Reihe wie gehabt */
@media (max-width: 767.98px){
  .mm-high-grid{ --cols: 1; }
  .mm-high-item{ flex-basis:100%; max-width:100%; }
}

/* Karten / Artikel */
.mm-card,
.post,
.type-page,
.hentry {
  border-radius: var(--mm-card-radius, var(--radius)) !important;
}

/* Buttons */
.btn,
.button {
  border-radius: var(--btn-radius, var(--radius)) !important;
}

/* Highlight-Karten / Exhibitor-Karten */
.highlight-card,
.ex-card {
  border-radius: var(--hl-radius, var(--radius)) !important;
}

/* === BRANDING: Logo links, Text rechts (final) === */
.site-branding{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:12px !important;
  flex:0 1 auto !important;
}
.site-logo{ display:inline-flex !important; align-items:center !important; flex:0 0 auto !important; }
.site-logo img{ height:50px !important; width:auto !important; display:block !important; }

.site-branding .brand-text{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
}
.site-title{ margin:0 !important; font-size:1.4rem !important; font-weight:800 !important; line-height:1.2 !important; }
.site-description{ margin:0 !important; color:var(--muted) !important; font-size:.92rem !important; }

@media (max-width: 960px){
  .site-branding{ flex-wrap:wrap !important; gap:10px !important; }
  .site-logo img{ height:28px !important; }
}





/* ========================================================================
   AUSSTELLER – FLACHE LISTE (OHNE CARD) + NUMMERIERUNG + 3/2/1 SPALTEN
   ======================================================================== */

/* --- Seitenweite Variablen / Breiten-Limiter für das Grid --- */
.exhibitors-index{
  --ex-grid-max: 980px;           /* Desktop-Gesamtbreite für 3 Spalten -> dichter */
  --ex-grid-max-md: 660px;        /* Tablet-Gesamtbreite für 2 Spalten */
}

/* --- Kopf (dezent) --- */
.exhibitors-index .exhibitors-head{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; margin-bottom:8px;
}
.exhibitors-index .exhibitors-title{ margin:0; font-size:18px; font-weight:700; color:var(--text, #0f172a); }
.exhibitors-index .exhibitors-count{ font-size:12px; color:var(--muted, #6b7280); }

/* --- Grid: 3 / 2 / 1 Spalten, enger Spaltenabstand, zentriert & limitiert --- */
.exhibitors-index .exhibitors-grid{
  display:grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  column-gap: 2px !important;         /* minimaler Abstand 1|2|3 */
  row-gap: 8px !important;             /* vertikal kompakt */
  align-items:start !important;
  counter-reset: exnum;                /* für Nummerierung */
  max-width: var(--ex-grid-max) !important;
  margin-inline: auto !important;      /* zentrieren */
  justify-items: start !important;     /* Inhalte linksbündig in der Spur */
}
@media (max-width: 991.98px){
  .exhibitors-index .exhibitors-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: var(--ex-grid-max-md) !important;
    column-gap: 4px !important;
  }
}
@media (max-width: 767.98px){
  .exhibitors-index .exhibitors-grid{
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
    row-gap: 6px !important;
  }
}

/* --- Items flach machen: jegliche Card-Optik abschalten --- */
.exhibitors-index .ex-card{
  margin:0 !important; padding:0 !important;
  background:transparent !important; border:0 !important;
  border-radius:0 !important; box-shadow:none !important; overflow:visible !important;
}

/* --- Zeile pro Eintrag: [Nr | Logo | Text] – dicht + Logo gut sichtbar --- */
.exhibitors-index .ex-card__link{
  width:100% !important;
  display:grid !important;
  grid-template-columns: 28px 80px 1fr !important; /* Nummer | Logo | Name */
  column-gap:6px !important;                       /* kleiner Abstand Logo↔Text */
  align-items:center !important;
  padding:2px 2px !important;                      /* sehr dicht */
  min-height:44px !important;
  text-decoration:none !important;
  color:inherit !important;
  background:transparent !important;
  border-radius:2px !important; /* nur für sichtbaren Fokus */
  box-shadow:none !important;
}

/* Laufende Nummer */
.exhibitors-index .ex-card__link::before{
  counter-increment: exnum;
  content: counter(exnum) ".";
  font-size:13px; font-weight:700;
  color:var(--muted, #6b7280);
  text-align:right;
}

/* Logo-Feld links – größer, aber kompakt */
.exhibitors-index .ex-card__media{
  width:80px !important; height:60px !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
}
.exhibitors-index .ex-card__media img{
  max-width:100% !important; max-height:100% !important;
  object-fit:contain !important; display:block !important;
}

/* Text rechts vom Logo – linksbündig, 1 Zeile mit Ellipsis */
.exhibitors-index .ex-card__body{
  min-width:0 !important; text-align:left !important;
}
.exhibitors-index .ex-card__title{
  margin:0 !important; text-align:left !important;
  font-size:14.5px !important; font-weight:600 !important; line-height:1.15 !important;
  white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;
}

/* Tastaturfokus schlank sichtbar */
.exhibitors-index .ex-card__link:focus{
  outline:2px solid rgba(59,130,246,.45) !important;
  outline-offset:2px !important;
}

/* Leichter Hover nur auf Desktop – ohne Card-Effekt */
@media (hover:hover){
  .exhibitors-index .ex-card__link:hover .ex-card__title{ text-decoration:underline; }
}

/* --- Mobile: etwas kompaktere Maße --- */
@media (max-width: 767.98px){
  .exhibitors-index .ex-card__link{
    grid-template-columns: 26px 68px 1fr !important;
    padding:2px 2px !important; min-height:42px !important;
  }
  .exhibitors-index .ex-card__media{ width:68px !important; height:50px !important; }
  .exhibitors-index .ex-card__title{ font-size:14px !important; }
}

/* --- Pagination (optional, dezent) --- */
.exhibitors-index .mm-pagination{
  margin-top:10px; display:flex; justify-content:center; gap:8px;
}
.exhibitors-index .mm-page-btn{
  font-size:12.5px; padding:4px 8px; border-radius:6px;
  background:#f3f4f6; color:#111827; text-decoration:none;
}
.exhibitors-index .mm-page-btn:hover{ background:#e5e7eb; }
.exhibitors-index .mm-page-info{ font-size:12.5px; color:var(--muted, #6b7280); }


.exhibitors-index .ex-card .ex-card__title{
  color: var(--text, #0f172a) !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  text-align: left !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
text-decoration: none !important;
}

/* === Exhibitors: Text konsequent dunkel ================================ */

/* 1) Link-Zeile selbst (damit nichts Weißes erbt) */
.exhibitors-index .ex-card__link,
.exhibitors-index .ex-card__link:hover,
.exhibitors-index .ex-card__link:focus{
  color: var(--text, #0f172a) !important;
}

/* 2) Laufende Nummer vor jedem Eintrag */
.exhibitors-index .ex-card__link::before{
  color: var(--text, #0f172a) !important;
}

/* 3) Firmenname rechts vom Logo (überstimmt .ex-card__title{ color:#fff !important } ) */
.exhibitors-index .ex-card .ex-card__title{
  color: var(--text, #0f172a) !important;
}

/* 4) Kopf-Zähler „5 Einträge“ */
.exhibitors-index .exhibitors-count{
  color: var(--text, #0f172a) !important;
  opacity: 1 !important; /* falls vorher ausgeblichen */
}


/* ================= MOBILE MENÜ (variablenbasiert) ====================== */
@media (max-width: 991.98px){
  /* Bootstrap Offcanvas */
  .offcanvas{
    background: var(--mnav-bg, #111827);
    color: var(--mnav-fg, #e5e7eb);
    border-radius: var(--mnav-radius, 12px);
    width: var(--mnav-width, 360px);
    box-shadow: var(--mnav-shadow, 0 14px 36px rgba(0,0,0,.28));
  }
  .offcanvas .nav-link,
  .offcanvas a{
    color: var(--mnav-fg, #e5e7eb);
    font-size: var(--mnav-link-size, 16px);
    font-weight: var(--mnav-link-weight, 600);
    text-transform: calc(var(--mnav-uppercase, 0) * 1) ? uppercase : none; /* Fallback unten */
  }
  /* Fallback für text-transform, weil calc() nicht für Keywords taugt */
  .offcanvas .nav-link,
  .offcanvas a{
    text-transform: none;
  }
  :root[style*="--mnav-uppercase: 1"] .offcanvas .nav-link,
  :root[style*="--mnav-uppercase:1"] .offcanvas .nav-link,
  :root[style*="--mnav-uppercase: 1"] .offcanvas a,
  :root[style*="--mnav-uppercase:1"] .offcanvas a{
    text-transform: uppercase;
    letter-spacing: .02em;
  }
  .offcanvas .nav-link:hover,
  .offcanvas a:hover{ color: var(--mnav-accent, #3b82f6); }
  .offcanvas hr, .offcanvas .dropdown-divider{ border-color: var(--mnav-divider, #334155); }

  .offcanvas-backdrop.show{
    background: var(--mnav-overlay, rgba(0,0,0,.6));
    backdrop-filter: var(--mnav-blur, none);
  }

  /* Fallback: Navbar-Collapse */
  .navbar-collapse.show, .mobile-nav, .site-nav--mobile{
    background: var(--mnav-bg, #111827);
    color: var(--mnav-fg, #e5e7eb);
    border-radius: var(--mnav-radius, 12px);
    box-shadow: var(--mnav-shadow, 0 14px 36px rgba(0,0,0,.28));
  }
  .navbar-collapse.show a, .mobile-nav a, .site-nav--mobile a{
    color: var(--mnav-fg, #e5e7eb);
    font-size: var(--mnav-link-size, 16px);
    font-weight: var(--mnav-link-weight, 600);
    text-transform: none;
  }
  :root[style*="--mnav-uppercase: 1"] .navbar-collapse.show a,
  :root[style*="--mnav-uppercase:1"] .mobile-nav a,
  :root[style*="--mnav-uppercase:1"] .site-nav--mobile a{
    text-transform: uppercase;
    letter-spacing: .02em;
  }
  .navbar-collapse.show a:hover, .mobile-nav a:hover, .site-nav--mobile a:hover{
    color: var(--mnav-accent, #3b82f6);
  }
}


/* Offcanvas / Mobiles Menü – zieht nur, wenn das Markup .offcanvas/.offcanvas-backdrop nutzt */
.offcanvas {
  background: var(--mnav-bg, #fff) !important;
  color: var(--mnav-fg, var(--text, #0f172a)) !important;
  width: var(--mnav-width, 320px) !important;
  border-radius: var(--mnav-radius, 0) !important;
  box-shadow: var(--mnav-shadow, 0 12px 30px rgba(0,0,0,.25)) !important;
  backdrop-filter: blur(var(--mnav-blur, 0));
}
.offcanvas .navbar-nav .nav-link,
.offcanvas .list-group-item,
.offcanvas .menu a {
  color: var(--mnav-fg, var(--text, #0f172a)) !important;
  font-size: var(--mnav-link-size, 16px) !important;
  font-weight: var(--mnav-link-weight, 600) !important;
  text-transform: var(--mnav-tt, none) !important;
}
.offcanvas .navbar-nav .nav-link:hover,
.offcanvas .menu a:hover {
  color: var(--mnav-accent, var(--primary, #3b82f6)) !important;
}
.offcanvas .dropdown-divider,
.offcanvas hr {
  border-color: var(--mnav_divider, rgba(0,0,0,.1)) !important;
}

/* Overlay/Hintergrund der Offcanvas */
.offcanvas-backdrop.show {
  background: var(--mnav-overlay, rgba(0,0,0,.55)) !important;
  opacity: 1 !important;
}

/* ===== Mobile-Menü (Custom: #site-navigation + .menu-toggle) ============= */
@media (max-width: 960px){
  /* Toggle-Button farblich anbinden */
  .menu-toggle{
    background: var(--mnav-bg, var(--bg, #fff)) !important;
    color: var(--mnav-fg, var(--text, #0f172a)) !important;
    border-color: var(--mnav-divider, #e5e7eb) !important;
  }
  .menu-toggle .icon,
  .menu-toggle .icon::before,
  .menu-toggle .icon::after{
    background: var(--mnav-fg, var(--text, #0f172a)) !important;
  }

  /* Das aufgeklappte Menü-Panel */
  #site-navigation.is-open .menu{
    display: flex; /* bleibt wie bei dir, nur zur Sicherheit */
  }
  #site-navigation .menu{
    background: var(--mnav-bg, var(--bg, #fff)) !important;
    color: var(--mnav-fg, var(--text, #0f172a)) !important;
    border-radius: var(--mnav-radius, 12px) !important;
    box-shadow: var(--mnav-shadow, 0 14px 36px rgba(0,0,0,.18)) !important;
    padding: 12px !important;
  }
  #site-navigation .menu a{
    color: var(--mnav-fg, var(--text, #0f172a)) !important;
    font-size: var(--mnav-link-size, 16px) !important;
    font-weight: var(--mnav-link-weight, 600) !important;
    text-transform: var(--mnav-tt, none) !important;
    text-decoration: none !important;
  }
  #site-navigation .menu a:hover,
  #site-navigation .current-menu-item > a{
    color: var(--mnav-accent, var(--primary, #3b82f6)) !important;
  }
}


@media (max-width: 991.98px){
  .offcanvas{
    background: var(--mnav-bg, #111827);
    color: var(--mnav-fg, #e5e7eb);
    /* … */
  }
  .offcanvas-backdrop.show{
    background: var(--mnav-overlay, rgba(0,0,0,.6));
    /* … */
  }
}


