/**
 * Global settings.
 */
/**
 * Bacon overrides.
 */
/**
 * Mixins (imported after variables so they can use them)
 */
@keyframes skeleton-loading {
  0% {
    transform: translateX(-100%);
  }
  60% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(100%);
  }
}
/**
 * News sticky banner.
 *
 * Simplified sibling of the Event Sticky Banner: badge, title, description
 * and a single primary CTA - no price block, info line, or secondary CTA.
 * Kept as a separate component per product decision (avoids confusion
 * between the two banners).
 *
 * The bar is permanently `position: fixed` (never slides in or out and does
 * not release above the footer), so the chat trigger, its greeting popover,
 * and the back-to-top button must actively avoid it via JS-measured
 * offsets - see news-sticky-banner.js.
 */
.news-sticky-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1001;
  pointer-events: none;
}
.news-sticky-banner__inner {
  position: relative;
  pointer-events: auto;
  width: 100%;
  max-width: var(--w-ultra);
  margin-inline: auto;
  background-color: var(--c-brand-secondary);
  color: #fff;
}
.news-sticky-banner__close-btn {
  display: none;
  position: absolute;
  top: var(--s-lg);
  right: var(--s-lg);
  padding: 0;
  background: none;
  border: none;
  color: #fff;
}
.news-sticky-banner__close-btn .icon {
  font-size: 1.5rem;
}
@media (max-width: 479px) {
  .news-sticky-banner__close-btn {
    display: block;
  }
}
.news-sticky-banner__row {
  display: flex;
  flex-direction: column;
  gap: var(--s-md);
  padding: var(--s-lg);
}
.news-sticky-banner__content {
  display: flex;
  flex-direction: column;
  gap: var(--s-xs);
}
.news-sticky-banner .c-badge {
  width: fit-content;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  padding-inline: 4px;
  margin-bottom: 0;
}
.news-sticky-banner__title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}
.news-sticky-banner__description {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}
.news-sticky-banner__actions {
  display: flex;
}
.news-sticky-banner__cta.c-button {
  width: 100%;
  padding: 12px 20px;
  font-size: 16px;
  line-height: 20px;
  border-width: 0;
  text-align: center;
}
@media (min-width: 600px) {
  .news-sticky-banner__cta.c-button {
    width: auto;
  }
}
@media (min-width: 1024px) {
  .news-sticky-banner__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: var(--s-lg);
    padding: var(--s-md) var(--s-xl);
  }
  .news-sticky-banner__badge {
    align-self: start;
  }
}

.kimaai-chatbot-trigger,
.kimaai-chatbot-attention-popover {
  transition: bottom 0.32s cubic-bezier(0.32, 0.72, 0, 1);
}