/* ==========================================
   RESET / BASE
   ========================================== */

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: system-ui, -apple-system, sans-serif;
  background: #f5f5f5;
}

/* Wrapper keeps the image responsive */
.image-container {
  position: relative;
  display: inline-block;
  max-width: 100%;
  margin: 0 auto;
}

.image-container img {
  display: block;
  width: 100%;
  height: auto;
}

/* ==========================================
   1PACT IMMO CHAT ATTENTION BUBBLE
   ========================================== */

.immo-chat-teaser {

  /*
   * Position:
   * The AnythingLLM button is approximately
   * 56px wide and sits around 18px from
   * the right/bottom edges.
   *
   * 82px leaves space for the chatbot button.
   */

  position: fixed;
  right: 82px;
  bottom: 18px;
  width: 300px;
  max-width: calc(100vw - 105px);
  padding: 11px 38px 11px 13px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.18);

  /*
   * Initially hidden.
   * JavaScript will make it visible
   * after 4 seconds.
   */

  opacity: 0;
  visibility: hidden;
  z-index: 999998;
  cursor: pointer;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /*
   * Prevent text selection when clicking
   * the bubble.
   */

  user-select: none;

  /*
   * Make the entire bubble clickable.
   */

  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/*
 * Visible state
 */

.immo-chat-teaser--visible {
  visibility: visible;
  opacity: 1;
  animation: immo-teaser-in 0.45s ease-out forwards;
}

/*
 * Hover
 */

.immo-chat-teaser:hover {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
}

/* ==========================================
   ARROW TOWARD CHAT BUTTON
   ========================================== */

.immo-chat-teaser::after {
  content: "";
  position: absolute;
  right: -9px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-left: 10px solid #ffffff;
}

/* ==========================================
   TITLE
   ========================================== */

.immo-chat-teaser__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 3px 0;
  color: #c91629;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

/* ==========================================
   CHAT ICON
   ========================================== */

.immo-chat-teaser__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: #c91629;
  color: #ffffff;
  font-size: 14px;
  line-height: 1;
}

/* ==========================================
   SECOND LINE
   ========================================== */

.immo-chat-teaser__text {
  margin: 0;
  color: #666666;
  font-size: 13px;
  line-height: 1.35;
}

/* ==========================================
   CLOSE BUTTON
   ========================================== */

.immo-chat-teaser__close {
  position: absolute;
  top: 4px;
  right: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #aaaaaa;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease;
}

.immo-chat-teaser__close:hover {
  color: #333333;
}

/* ==========================================
   ENTRANCE ANIMATION
   ========================================== */

@keyframes immo-teaser-in {
  from {
    opacity: 0;
    transform: translateX(15px) scale(0.94);
  }

  to {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

/* ==========================================
   SUBTLE FLOATING ATTENTION
   ========================================== */

@keyframes immo-teaser-float {
  0%,
  100% {
    transform:
      translateX(0)
      translateY(0);
  }

  50% {
    transform:
      translateX(0)
      translateY(-3px);
  }
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 600px) {
  .immo-chat-teaser {
    right: 72px;
    bottom: 15px;
    width: 230px;
    max-width: calc(100vw - 88px);
    padding: 9px 34px 9px 11px;
    border-radius: 9px;
  }

  .immo-chat-teaser__title {
    font-size: 14px;
  }

  .immo-chat-teaser__icon {
    width: 24px;
    height: 24px;
    font-size: 12px;
  }

  .immo-chat-teaser__text {
    font-size: 12px;
  }
}

/* ==========================================
   ACCESSIBILITY
   ========================================== */

@media (prefers-reduced-motion: reduce) {
  .immo-chat-teaser--visible {
    animation: none;
  }
}