/* EASYFITNESS Wismar — Consent-Platzhalter für den collective mind Chatbot.
   Vor der Einwilligung (Kategorie external_media) zeigt sich ein Platzhalter-Button
   unten rechts + eine kleine Consent-Karte. Nach der Freigabe wird das COMI-Bundle
   geladen, das seinen eigenen Chat-Button rendert (dieser Platzhalter wird entfernt).
   Liegt unter dem Consent-Banner (z-index 2147483000). */

.efcb-launcher {
  position: fixed; right: 24px; bottom: 24px; z-index: 900;
  width: 60px; height: 60px; border-radius: 50%;
  background: var(--ef-green); color: var(--ef-anthracite);
  border: none; cursor: pointer; display: grid; place-items: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  transition: transform .18s ease, box-shadow .18s ease;
}
.efcb-launcher:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3); }
.efcb-launcher:focus-visible { outline: 3px solid var(--ef-anthracite); outline-offset: 2px; }
.efcb-launcher svg { width: 30px; height: 30px; }

.efcb-card {
  position: fixed; right: 24px; bottom: 96px; z-index: 901;
  width: 320px; max-width: calc(100vw - 32px);
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.3);
  display: none; flex-direction: column;
  opacity: 0; transform: translateY(12px);
  transition: opacity .2s ease, transform .2s ease;
}
.efcb-card.is-open { display: flex; opacity: 1; transform: translateY(0); }

.efcb-card-head {
  background: var(--ef-anthracite); color: #fff;
  padding: 0.8rem 1rem; display: flex; align-items: center; gap: 0.5rem;
  border-bottom: 3px solid var(--ef-green);
}
.efcb-card-title { flex: 1; font-weight: 800; font-size: 0.95rem; }
.efcb-card-x {
  background: none; border: none; color: #fff; cursor: pointer;
  width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  transition: background .15s ease; flex: none;
}
.efcb-card-x:hover { background: rgba(255, 255, 255, 0.14); }
.efcb-card-x svg { width: 18px; height: 18px; }

.efcb-card-body {
  padding: 1.5rem 1.3rem; display: flex; flex-direction: column; gap: 0.8rem;
  text-align: center; color: var(--ef-anthracite);
}
.efcb-gate-icon { width: 48px; height: 48px; margin: 0.2rem auto 0; color: var(--ef-green); }
.efcb-card-body h3 { font-size: 1.05rem; font-weight: 800; margin: 0; }
.efcb-card-body p { font-size: 0.85rem; line-height: 1.5; color: rgba(39, 39, 38, 0.75); margin: 0; }
.efcb-card-body a { color: var(--ef-anthracite); font-weight: 700; }
.efcb-btn {
  border: none; cursor: pointer; border-radius: 999px;
  padding: 0.7rem 1.4rem; font-weight: 800; font-size: 0.9rem; margin-top: 0.2rem;
  background: var(--ef-green); color: var(--ef-anthracite); transition: filter .15s ease;
}
.efcb-btn:hover { filter: brightness(0.95); }
.efcb-link-btn {
  background: none; border: none; cursor: pointer; font: inherit;
  color: rgba(39, 39, 38, 0.6); text-decoration: underline; font-size: 0.8rem; padding: 0;
}
.efcb-link-btn:hover { color: var(--ef-anthracite); }
.efcb-fine { font-size: 0.72rem !important; color: rgba(39, 39, 38, 0.5) !important; }

@media (max-width: 480px) {
  .efcb-card { right: 12px; left: 12px; width: auto; bottom: 84px; }
  .efcb-launcher { right: 16px; bottom: 16px; }
}
