/* IMK Speaker-Dashboard — Elementor-Widgets „IMK Speaker“ / „IMK Logos“ (1.6.0) */
.imkw { --imkw-lila: #38207E; --imkw-lila-2: #452295; --imkw-grund: #1C0F45; --imkw-gelb: #FFF645; }

/* Speaker: 3/2/1 Spalten, alle Boxen gleich hoch (gleiches Seitenverhältnis) */
.imkw-speaker { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1024px) { .imkw-speaker { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .imkw-speaker { grid-template-columns: minmax(0, 1fr); } }

.imkw-box { position: relative; aspect-ratio: 1 / 1.12; border-radius: 12px; overflow: hidden; background: var(--imkw-lila); color: #fff; font-size: 14px; line-height: 1.5; }
.imkw-box[tabindex] { cursor: pointer; }
.imkw-box:focus-visible { outline: 3px solid var(--imkw-gelb); outline-offset: 3px; }
.imkw-box p { margin: 0; }
.imkw-bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.imkw-initialen { display: flex; align-items: flex-start; justify-content: center; padding-top: 22%; box-sizing: border-box;
    background: linear-gradient(135deg, var(--imkw-lila-2), var(--imkw-grund)); font-size: 56px; font-weight: 700; color: rgba(255, 255, 255, .35); }
.imkw-flag { position: absolute; top: 12px; left: 12px; z-index: 3; padding: 4px 12px; border-radius: 999px;
    background: var(--imkw-gelb); color: var(--imkw-grund); font-size: 12px; font-weight: 700; }
.imkw-unten { position: absolute; left: 0; right: 0; bottom: 0; padding: 64px 16px 14px; background: linear-gradient(transparent, var(--imkw-grund) 35%); }
.imkw-name { font-size: 18px; font-weight: 700; line-height: 1.25; }
.imkw-titel { margin: 2px 0 6px !important; color: var(--imkw-gelb); font-size: 14px; }

/* Lernfläche: schiebt sich von unten herein (Hover nur bei echter Maus; Tastatur und Tippen über .ist-offen aus widget.js) */
.imkw-lernen { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 8px;
    padding: 44px 18px 16px; background: var(--imkw-lila-2); font-size: 14px; line-height: 1.45; transform: translateY(100%); transition: transform .45s ease; }
.imkw-label { color: var(--imkw-gelb); font-weight: 700; }
@media (hover: hover) { .imkw-box:hover .imkw-lernen { transform: none; } }
.imkw-box.ist-offen .imkw-lernen { transform: none; }
@media (prefers-reduced-motion: reduce) { .imkw-lernen { transition: none; } }

.imkw-platzhalter { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 20px; text-align: center;
    background: linear-gradient(135deg, var(--imkw-lila), var(--imkw-grund)); border: 2px dashed rgba(255, 255, 255, .25); box-sizing: border-box; }
.imkw-platzhalter-titel { color: var(--imkw-gelb); font-size: 22px; font-weight: 700; letter-spacing: .04em; }

/* Logos: gleichmäßiges Raster, gleiche Logo-Höhe */
.imkw-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 24px 32px; align-items: center; }
.imkw-logo { display: flex; align-items: center; justify-content: center; height: 80px; }
.imkw-logo a { display: flex; align-items: center; justify-content: center; height: 100%; }
.imkw-logo img { display: block; max-width: 100%; max-height: 70px; width: auto; height: auto; object-fit: contain; }
.imkw-logos--grau img { filter: grayscale(1); opacity: .8; transition: filter .3s, opacity .3s; }
.imkw-logos--grau .imkw-logo:hover img, .imkw-logos--grau a:focus-visible img { filter: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .imkw-logos--grau img { transition: none; } }

.imkw-leer { padding: 16px; border: 1px dashed currentColor; border-radius: 8px; opacity: .7; }
