.traveliaq-footer {
  position: relative;
  overflow: visible;
  transition: transform 0.25s ease;
}

.traveliaq-footer-joe {
  position: absolute;
  left: 50%;
  top: -170px;
  transform: translateX(-50%);
  z-index: 999999;
  width: 220px;
  height: 220px;
  pointer-events: none;
  transition: top 0.45s ease, transform 0.25s ease;
}

.traveliaq-footer-joe.tiaq-joe-peek {
  top: -92px;
}

.traveliaq-footer-joe.tiaq-joe-disappear {
  top: -70px;
}

.traveliaq-footer-joe.tiaq-joe-hmph {
  transform: translateX(-50%) translateY(-4px) rotate(-2deg);
}

.tiaq-footer-joe-character {
  width: 220px;
  height: 220px;
  margin: 0 auto;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
}

.tiaq-footer-joe-character.peek {
  background-image: url('/wp-content/traveliaq-banners/joe-footer-peek.webp') !important;
}

.tiaq-footer-joe-character.lift {
  background-image: url('/wp-content/traveliaq-banners/joe-footer-lift.webp') !important;
}

.tiaq-footer-joe-character.fail {
  background-image: url('/wp-content/traveliaq-banners/joe-footer-fail.webp') !important;
}

.tiaq-footer-joe-bubble {
  position: absolute;
  left: 50%;
  bottom: 188px;
  transform: translateX(-50%);
  background: #fff;
  color: #222;
  font-size: 13px;
  padding: 7px 10px;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
  opacity: 0;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.traveliaq-footer-joe.tiaq-show-bubble .tiaq-footer-joe-bubble {
  opacity: 1;
}

.traveliaq-footer.tiaq-footer-lift {
  transform: translateY(-8px);
}

.traveliaq-footer.tiaq-footer-drop {
  transform: translateY(0);
}

.traveliaq-footer.tiaq-footer-shake {
  animation: tiaqFooterShake 0.18s linear 2;
}

@keyframes tiaqFooterShake {
  0% { transform: translateY(0) translateX(0); }
  25% { transform: translateY(0) translateX(-2px); }
  50% { transform: translateY(0) translateX(2px); }
  75% { transform: translateY(0) translateX(-1px); }
  100% { transform: translateY(0) translateX(0); }
}