html { scroll-behavior: smooth; }
.solution-card {
  transition: transform 0.5s ease;
}
.solution-card:hover {
  transform: translate3D(0, -1px, 0) scale(1.1);
  transition: transform 0.4s ease;
}
#main-nav { transition: background-color 0.2s ease, backdrop-filter 0.2s ease; }
body { font-family: 'Albert Sans', sans-serif; }
h1, h2, h3, h4 { font-family: 'Merriweather', serif; }
.hero-section {
  position: relative;
  background: #ffffff;
  overflow: hidden;
}
.hero-ellipse {
  position: absolute;
  top: -554px;
  left: 515px;
  width: 1340px;
  height: 1340px;
  z-index: 0;
  pointer-events: none;
  opacity: 1;
  animation: ellipsePulse 4s ease-in-out infinite;
}
@keyframes ellipsePulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.15); opacity: 1; }
}
.news-banner-gradient {
  background: #e9e2e9;
}
.platform-card {
  transition: box-shadow 0.3s ease;
  will-change: box-shadow;
}
.platform-card:hover {
  box-shadow: 6px 6px 40px 0px #F2B94BB2, -6px -6px 40px 0px #B662A6B2;
}
/* ========== SHARED CARD HOVER BEHAVIOR ========== */
.hw-card,
.unlock-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  will-change: transform, box-shadow;
  cursor: pointer;
}
@media (min-width: 768px) {
  .hw-card,
  .unlock-card {
    box-shadow: 0px 4px 40px 0px #361637;
  }
  .hw-card:hover,
  .unlock-card:hover {
    transform: scale(1.12);
    box-shadow: 6px 6px 40px 0px #F2B94BB2, -6px -6px 40px 0px #B662A6B2;
    position: relative;
    z-index: 10;
  }
}

/* ========== UNLOCK CARD CHILD EFFECTS ========== */
.unlock-card .unlock-icon-wrap {
  position: relative;
  width: 80px;
  height: 80px;
  flex-shrink: 0;
}
.unlock-card .unlock-icon-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 20px;
  background-color: transparent;
  transition: background-color 0.3s ease;
  pointer-events: none;
}
@media (min-width: 768px) {
  .unlock-card:hover .unlock-icon-wrap::after {
    background-color: #F2B94B33;
  }
}
.unlock-card .unlock-last-word {
  transition: color 0.3s ease, font-weight 0.3s ease;
}
@media (min-width: 768px) {
  .unlock-card:hover .unlock-last-word {
    color: #F2B94B;
    font-weight: 700;
  }
}
.tab-active {
  color: #5B245C;
  border-bottom: 2px solid #5B245C;
}
.tab-inactive {
  color: #737373;
  border-bottom: 2px solid transparent;
}
.tab-inactive:hover {
  color: #5B245C;
}

/* ========== HERO CHAT CARD STYLES ========== */
.chat-card {
  border-radius: 20px;
  box-shadow: 0px 8px 32px rgba(0, 0, 0, 0.12);
  overflow: hidden;
}

.chat-body {
  height: 200px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
  scrollbar-width: none;
}
.chat-body::-webkit-scrollbar {
  display: none;
}

.chat-msg {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  width: 100%;
  flex-shrink: 0;
}

/* Desktop: Figma values (designed at 499px card width) */
@media (min-width: 768px) {
  .chat-msg.user {
    padding-left: 64px;
    padding-right: 16px;
  }
  .chat-msg.ai {
    padding-left: 16px;
    padding-right: 64px;
  }
}

.chat-avatar-sm {
  width: 24px;
  min-width: 24px;
  height: 24px;
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Albert Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
  color: #0a0a0a;
  background: #d4c4d3;
}

.chat-bubble {
  flex: 1 0 0;
  min-width: 1px;
  max-width: 344px;
  padding: 12px;
  font-family: 'Albert Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: normal;
  color: #0a0a0a;
  word-wrap: break-word;
}
.chat-msg.user .chat-bubble {
  background: #d4c4d3;
  border-radius: 16px 16px 4px 16px;
}
.chat-msg.ai .chat-bubble {
  background: #ffffff;
  border-radius: 16px 16px 16px 4px;
}

/* ========== CHAT CARD SPRING ANIMATION ==========
   Spring: { mass: 1, stiffness: 100, damping: 15 } — ζ≈0.75, settles in ~900ms
   Curve sampled from: x(t) = 1 - e^(-7.5t) * [cos(6.614t) + 1.134·sin(6.614t)]
   Peak overshoot ≈ +2.8% at t≈475ms — subtle bounce, not distracting
*/
.co-spring {
  transition:
    opacity  900ms linear(0, 0.191 8.3%, 0.408 13.9%, 0.612 19.4%, 0.775 25%, 0.892 30.6%, 0.965 36.1%, 1.006 41.7%, 1.024 47.2%, 1.028 52.8%, 1.026 58.3%, 1.017 66.7%, 1.006 77.8%, 1.001 88.9%, 1),
    transform 900ms linear(0, 0.191 8.3%, 0.408 13.9%, 0.612 19.4%, 0.775 25%, 0.892 30.6%, 0.965 36.1%, 1.006 41.7%, 1.024 47.2%, 1.028 52.8%, 1.026 58.3%, 1.017 66.7%, 1.006 77.8%, 1.001 88.9%, 1);
}

/* ========== CHAT CARD TEMPLATE - NARROW TABLET ========== */
@media (min-width: 768px) and (max-width: 1024px) {
  /* Give chat card more horizontal space by shrinking left text column */
  .tab-content > div:first-child > div:first-child {
    flex: 0 1 40%;
  }
  .tab-content > div:first-child > div:last-child {
    flex: 1 1 auto;
  }
  .tab-content > div:first-child > div:first-child h3 {
    font-size: 22px;
  }
  .tab-content > div:first-child > div:first-child p {
    font-size: 15px;
    line-height: 1.4;
  }
  .tab-content .co-messages {
    height: 280px;
  }
  .tab-content .co-btn {
    height: auto;
    min-height: 40px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .tab-content .co-btn-text {
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }
}

/* ========== MOBILE ========== */
@media (max-width: 767px) {
  /* Chat card template */
  .co-messages > div:first-child {
    padding-left: 0;
    justify-content: flex-end;
  }
  .co-messages > div:last-child {
    padding-right: 0;
  }
  .co-btn {
    height: auto;
    min-height: 40px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .co-btn-text {
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }

  /* Hero chat widget */
  .chat-body {
    background: #f8f9fa;
    padding: 20px;
    height: 240px;
  }
  .chat-msg.user {
    padding-left: 0;
    padding-right: 0;
    justify-content: flex-end;
  }
  .chat-msg.ai {
    padding-left: 0;
    padding-right: 0;
  }
  .chat-msg.user .chat-bubble {
    background: #5B245C;
    color: #ffffff;
  }
  .chat-avatar-sm {
    width: 32px;
    min-width: 32px;
    height: 32px;
    background: #e2e8f0;
    color: #475569;
  }
}
