/**
 * Section Styles
 * VerbaCall Landing Theme
 */

/* ========================================
   GLOBAL CONTAINER
   ======================================== */

.container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 max(var(--side-padding, 24px), var(--safe-left, 0px));
  padding-right: max(var(--side-padding, 24px), var(--safe-right, 0px));
  width: 100%;
  box-sizing: border-box;
}

/* ========================================
   HERO SECTION
   ======================================== */

.hero-section {
  position: relative;
  min-height: calc(100vh - 48px);
  --hero-outer-gutter: clamp(16px, 2.5vw, 40px);
  width: calc(100% - (var(--hero-outer-gutter) + var(--hero-outer-gutter)));
  max-width: var(--max-width, 1440px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(96px, 12vh, 120px) var(--side-padding, 24px);
  padding-bottom: clamp(160px, 20vh, 300px);
  gap: clamp(48px, 8vw, 100px);
  overflow: hidden;
  /* Exact Figma background */
  background: #eefcff !important;
  border-radius: 30px;
  box-sizing: border-box;
}

/* Hero grid pattern overlay - starts at demo section title */
.hero-section::before {
  content: '';
  position: absolute;
  top: 480px;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('../images/hero-grid.png');
  background-size: 100% 100%;
  background-position: center top;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 1;
}

/* Ripple circles - exact Figma positions */
/* Container at: left: calc(50% - 755px/2), top: calc(50% - 755px/2 - 308px) */
/* Ripple animation keyframes */
@keyframes ripple-wave {
  0% {
    transform: scale(1);
    opacity: var(--ripple-opacity);
  }
  50% {
    transform: scale(1.08);
    opacity: calc(var(--ripple-opacity) * 1.5);
  }
  100% {
    transform: scale(1);
    opacity: var(--ripple-opacity);
  }
}

.hero-ripple {
  position: absolute;
  border-radius: 9999px;
  border: 2px solid rgba(180, 220, 230, var(--ripple-opacity, 0.5));
  background: radial-gradient(
    circle,
    rgba(200, 240, 250, calc(var(--ripple-opacity) * 0.8)) 0%,
    rgba(220, 250, 255, 0) 70%
  );
  pointer-events: none;
  z-index: 1;
  animation: ripple-wave 4s ease-in-out infinite;
}

/* Each ripple with opacity and animation delay based on Magic UI specs */
/* baseCircleOpacity: 0.24, circleOpacityDowngradeRatio: 0.03, waveSpeed: 80ms */
.hero-ripple-1 {
  width: 314.58px;
  height: 314.58px;
  left: calc(50% - 314.58px / 2);
  top: calc(50% - 308px - 755px / 2 + 220.78px);
  --ripple-opacity: 0.6;
  animation-delay: 0ms;
}

.hero-ripple-2 {
  width: 387.8px;
  height: 387.8px;
  left: calc(50% - 387.8px / 2);
  top: calc(50% - 308px - 755px / 2 + 184.17px);
  --ripple-opacity: 0.5;
  animation-delay: 80ms;
}

.hero-ripple-3 {
  width: 458.72px;
  height: 458.72px;
  left: calc(50% - 458.72px / 2);
  top: calc(50% - 308px - 755px / 2 + 148.71px);
  --ripple-opacity: 0.42;
  animation-delay: 160ms;
}

.hero-ripple-4 {
  width: 528.5px;
  height: 528.5px;
  left: calc(50% - 528.5px / 2);
  top: calc(50% - 308px - 755px / 2 + 113.25px);
  --ripple-opacity: 0.35;
  animation-delay: 240ms;
}

.hero-ripple-5 {
  width: 595.99px;
  height: 595.99px;
  left: calc(50% - 595.99px / 2);
  top: calc(50% - 308px - 755px / 2 + 80.08px);
  --ripple-opacity: 0.28;
  animation-delay: 320ms;
}

.hero-ripple-6 {
  width: 668.06px;
  height: 668.06px;
  left: calc(50% - 668.06px / 2);
  top: calc(50% - 308px - 755px / 2 + 43.47px);
  --ripple-opacity: 0.22;
  animation-delay: 400ms;
}

.hero-ripple-7 {
  width: 755px;
  height: 755px;
  left: calc(50% - 755px / 2);
  top: calc(50% - 308px - 755px / 2);
  --ripple-opacity: 0.16;
  animation-delay: 480ms;
}

/* Gradient overlay on ripples area */
.hero-section .hero-ripple-7::after {
  content: '';
  position: absolute;
  width: 755px;
  height: 755px;
  left: 0;
  top: 0;
  background: linear-gradient(
    180deg,
    #eafbfd 0%,
    rgba(236, 252, 254, 0) 50.48%,
    #eefcff 100%
  );
  pointer-events: none;
  border-radius: 9999px;
}

/* Hero blur/glow effects - exact Figma positions */
.hero-ellipse {
  position: absolute;
  width: 786px;
  height: 786px;
  border-radius: 9999px;
  filter: blur(250px);
  pointer-events: none;
}

.hero-ellipse-1 {
  background: #8ac8d6;
  left: 797px;
  top: -518px;
  z-index: 5;
}

.hero-ellipse-2 {
  background: #8acfd6;
  left: 797px;
  top: 779px;
  z-index: 5;
}

.hero-ellipse-3 {
  background: #8ad6cd;
  left: -216px;
  top: 489px;
  z-index: 5;
}

/* Hero grid now uses image from Figma - see ::before at top of hero section */

.hero-background {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1392px;
  height: 620px;
  background-image: url('../images/hero-background.png');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: bottom left;
  pointer-events: none;
  z-index: var(--z-background);
}

.hero-vector {
  position: absolute;
  top: -8px;
  right: -120px;
  width: 480px;
  height: 420px;
  pointer-events: none;
  z-index: 0;
  opacity: 0.35;
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 1) 35%,
    rgba(0, 0, 0, 0.55) 62%,
    rgba(0, 0, 0, 0) 88%,
    rgba(0, 0, 0, 0) 100%
  );
  mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 1) 35%,
    rgba(0, 0, 0, 0.55) 62%,
    rgba(0, 0, 0, 0) 88%,
    rgba(0, 0, 0, 0) 100%
  );
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.hero-vector img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hero-content {
  position: relative;
  z-index: 10;
  width: 100%;
  padding-top: clamp(64px, 10vh, 140px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 32px;
  animation: fadeInUp 1s var(--ease-out);
}

.hero-title {
  width: 100%;
  max-width: 710px;
  text-align: center;
  color: #110229;
  font-family: 'Geist', var(--font-family);
  font-weight: 400;
  font-size: clamp(2.25rem, 4.5vw, 4rem);
  line-height: 1.1;
  word-wrap: break-word;
  margin: 0;
  animation: fadeInUp 1s var(--ease-out) 0.2s backwards;
}

.hero-subtitle {
  width: 100%;
  max-width: min(520px, 100%);
  text-align: center;
  color: #110229;
  font-size: 18px;
  font-family: 'Geist', var(--font-family);
  font-weight: 400;
  line-height: 1.3;
  word-wrap: break-word;
  margin: 0;
  animation: fadeInUp 1s var(--ease-out) 0.4s backwards;
}

.hero-subtitle__line2 {
  white-space: nowrap;
}

.hero-cta {
  display: inline-flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 24px;
  animation: fadeInUp 1s var(--ease-out) 0.6s backwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 767px) {
  .hero-section {
    min-height: auto;
    padding: 72px var(--side-padding) 56px;
    gap: 48px;
    border-radius: 20px;
  }

  .hero-ellipse {
    display: none;
  }

  /* Keep the decorative V logo on mobile (scaled down) */
  .hero-vector {
    display: block;
    width: 240px;
    height: 200px;
    top: -16px;
    right: -48px;
    opacity: 0.22;
  }

  .hero-subtitle__line2 {
    white-space: normal;
  }

  /* Keep the hero background artwork on mobile (scaled down) */
  .hero-background {
    width: 120%;
    height: 420px;
    left: 50%;
    transform: translateX(-50%);
    background-size: cover;
    background-position: center bottom;
    opacity: 0.55;
  }

  /* Keep the pulse/ripple animation on mobile (scaled and centered) */
  /* Show all 7 ripples like desktop, scaled down proportionally */
  .hero-ripple {
    display: block;
    border-width: 1.5px;
    animation-duration: 4s;
    /* Reset to use the same subtle colors as desktop */
    border-color: rgba(180, 220, 230, var(--ripple-opacity, 0.5));
    background: radial-gradient(
      circle,
      rgba(200, 240, 250, calc(var(--ripple-opacity) * 0.8)) 0%,
      rgba(220, 250, 255, 0) 70%
    );
  }

  /* All 7 ripples - scaled to ~50% of desktop, centered at same point */
  .hero-ripple-1 {
    width: 160px;
    height: 160px;
    left: calc(50% - 80px);
    top: 100px;
    --ripple-opacity: 0.6;
    animation-delay: 0ms;
  }
  .hero-ripple-2 {
    width: 195px;
    height: 195px;
    left: calc(50% - 97.5px);
    top: 82.5px;
    --ripple-opacity: 0.5;
    animation-delay: 80ms;
  }
  .hero-ripple-3 {
    width: 230px;
    height: 230px;
    left: calc(50% - 115px);
    top: 65px;
    --ripple-opacity: 0.42;
    animation-delay: 160ms;
  }
  .hero-ripple-4 {
    width: 265px;
    height: 265px;
    left: calc(50% - 132.5px);
    top: 47.5px;
    --ripple-opacity: 0.35;
    animation-delay: 240ms;
  }
  .hero-ripple-5 {
    width: 300px;
    height: 300px;
    left: calc(50% - 150px);
    top: 30px;
    --ripple-opacity: 0.28;
    animation-delay: 320ms;
  }
  .hero-ripple-6 {
    width: 335px;
    height: 335px;
    left: calc(50% - 167.5px);
    top: 12.5px;
    --ripple-opacity: 0.22;
    animation-delay: 400ms;
  }
  .hero-ripple-7 {
    width: 380px;
    height: 380px;
    left: calc(50% - 190px);
    top: -10px;
    --ripple-opacity: 0.16;
    animation-delay: 480ms;
  }

  .hero-section .hero-ripple-7::after {
    width: 380px;
    height: 380px;
  }

  .hero-section::before {
    top: auto;
    bottom: 0;
    height: 320px;
    background-size: 300% auto;
    background-position: center bottom;
    background-repeat: no-repeat;
    opacity: 1;
  }
}

/* Smaller mobile screens - scale ripples further (~40% of desktop) */
@media (max-width: 480px) {
  .hero-ripple-1 {
    width: 125px;
    height: 125px;
    left: calc(50% - 62.5px);
    top: 95px;
  }
  .hero-ripple-2 {
    width: 155px;
    height: 155px;
    left: calc(50% - 77.5px);
    top: 80px;
  }
  .hero-ripple-3 {
    width: 185px;
    height: 185px;
    left: calc(50% - 92.5px);
    top: 65px;
  }
  .hero-ripple-4 {
    width: 210px;
    height: 210px;
    left: calc(50% - 105px);
    top: 52.5px;
  }
  .hero-ripple-5 {
    width: 240px;
    height: 240px;
    left: calc(50% - 120px);
    top: 37.5px;
  }
  .hero-ripple-6 {
    width: 270px;
    height: 270px;
    left: calc(50% - 135px);
    top: 22.5px;
  }
  .hero-ripple-7 {
    width: 300px;
    height: 300px;
    left: calc(50% - 150px);
    top: 7.5px;
  }

  .hero-section .hero-ripple-7::after {
    width: 300px;
    height: 300px;
  }
}

/* ========================================
   DEMO SECTION (Inside Hero)
   ======================================== */

.demo-wrapper {
  position: relative;
  z-index: 10;
  width: 100%;
}

.demo-container {
  /* Exact Figma values */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 6px 48px;
  gap: 24px;
  width: 1030px;
  height: 540px;
  max-width: 100%;
  background:
    radial-gradient(circle, rgba(17, 2, 41, 0.055) 1.2px, transparent 1.2px),
    #f9feff;
  background-size: 16px 16px;
  box-shadow: 0px 23px 144.2px rgba(0, 0, 0, 0.03);
  overflow: hidden;
  border-radius: 30px;
  outline: 12px solid rgba(255, 255, 255, 0.2);
  margin: 0 auto;
  position: relative;
}

@media (max-width: 767px) {
  .demo-container {
    padding: 16px 16px;
    height: auto;
    min-height: 520px;
    border-radius: 24px;
    outline: 8px solid rgba(255, 255, 255, 0.2);
  }

  .demo-stage {
    height: auto;
    gap: 20px;
  }

  .demo-header {
    gap: 10px;
  }

  .demo-title {
    font-size: 22px;
    line-height: 1.2;
  }

  .demo-subtitle {
    font-size: 14px;
    line-height: 1.35;
  }

  .demo-countdown__number {
    font-size: 84px;
  }

  .demo-calling-animation {
    width: 160px;
    height: 160px;
  }
}

/* Hide all stages by default */
.demo-stage {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
}

/* Show active stage based on data-stage attribute */
.demo-wrapper[data-stage='industry-selection'] .demo-stage--industry-selection {
  display: flex;
  opacity: 1;
}

.demo-wrapper[data-stage='information'] .demo-stage--information {
  display: flex;
  opacity: 1;
}

.demo-wrapper[data-stage='initializing'] .demo-stage--initializing {
  display: flex;
  opacity: 1;
}

.demo-wrapper[data-stage='calling'] .demo-stage--calling {
  display: flex;
  opacity: 1;
}

.demo-wrapper[data-stage='ongoing'] .demo-stage--ongoing {
  display: flex;
  opacity: 1;
}

.demo-wrapper[data-stage='rate'] .demo-stage--rate {
  display: flex;
  opacity: 1;
}

.demo-wrapper[data-stage='complete'] .demo-stage--complete {
  display: flex;
  opacity: 1;
}

/* ========================================
   DEMO STAGE ELEMENTS
   ======================================== */

/* Stage Titles */
.demo-stage-title,
.demo-rate-title {
  font-size: 28px;
  font-weight: var(--font-weight-medium);
  color: var(--color-dark);
  line-height: 1.2;
  text-align: center;
  margin-bottom: var(--space-xl);
}

/* Stage 2: Information Form */
.demo-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 400px;
}

.demo-input {
  width: 100%;
  padding: 14px 20px;
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-dark);
  background: var(--color-white);
  border: 1px solid rgba(42, 50, 51, 0.2);
  border-radius: 12px;
  transition: all var(--duration-base) var(--ease-in-out);
  font-family: inherit;
}

.demo-input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(95, 194, 228, 0.1);
}

.demo-input::placeholder {
  color: rgba(42, 50, 51, 0.4);
}

.demo-submit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 32px;
  background: linear-gradient(180deg, #5fc2e4 0%, #1290ac 100%);
  color: var(--color-white);
  border: none;
  border-radius: 100px;
  font-size: 16px;
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  transition: all var(--duration-base) var(--ease-in-out);
  font-family: inherit;
}

.demo-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(18, 144, 172, 0.3);
}

.demo-submit-btn svg {
  width: 16px;
  height: 16px;
}

/* Stage 3: Initializing Call (Countdown) */
.demo-countdown {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.demo-countdown__text {
  font-size: 24px;
  font-weight: var(--font-weight-medium);
  color: var(--color-dark);
  margin: 0;
}

.demo-countdown__number {
  font-size: 120px;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  line-height: 1;
  animation: pulse 1s ease-in-out infinite;
}

@keyframes pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
}

/* Stage 4: Calling Animation */
.demo-calling-animation {
  position: relative;
  width: 200px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.demo-calling-pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border: 3px solid var(--color-primary);
  border-radius: 50%;
  opacity: 0;
  animation: calling-pulse 2s ease-out infinite;
}

.demo-calling-pulse:nth-child(2) {
  animation-delay: 0.7s;
}

.demo-calling-pulse:nth-child(3) {
  animation-delay: 1.4s;
}

@keyframes calling-pulse {
  0% {
    transform: scale(0.5);
    opacity: 0.8;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

/* Stage 5: Ongoing Call */
.demo-call-info {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.demo-call-avatar {
  width: 67px;
  height: 67px;
  border-radius: 50%;
  background: linear-gradient(135deg, #5fc2e4 0%, #1290ac 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.demo-call-avatar svg {
  width: 40px;
  height: 40px;
  color: var(--color-white);
}

.demo-call-details {
  text-align: left;
}

.demo-call-status {
  font-size: 14px;
  color: rgba(42, 50, 51, 0.6);
  margin: 0 0 4px 0;
}

.demo-call-agent {
  font-size: 20px;
  font-weight: var(--font-weight-medium);
  color: var(--color-dark);
  margin: 0;
}

.demo-call-timer {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 18px;
  font-weight: var(--font-weight-medium);
  color: var(--color-dark);
  padding: 8px 16px;
  background: rgba(95, 194, 228, 0.1);
  border-radius: 100px;
}

.demo-chat-bubbles {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  max-width: 500px;
  margin-bottom: 24px;
}

.demo-chat-bubble {
  padding: 12px 16px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.5;
  max-width: 70%;
}

.demo-chat-bubble--agent {
  background: rgba(95, 194, 228, 0.1);
  color: var(--color-dark);
  align-self: flex-start;
  border-bottom-left-radius: 4px;
}

.demo-chat-bubble--user {
  background: var(--color-primary);
  color: var(--color-white);
  align-self: flex-end;
  border-bottom-right-radius: 4px;
}

.demo-chat-bubble--active {
  animation: fadeIn 0.4s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.demo-end-call-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 32px;
  background: rgba(239, 68, 68, 0.1);
  color: #dc2626;
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: 100px;
  font-size: 16px;
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  transition: all var(--duration-base) var(--ease-in-out);
  font-family: inherit;
}

.demo-end-call-btn:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.5);
}

.demo-end-call-btn svg {
  width: 16px;
  height: 16px;
}

/* Stage 6 & 7: Rating */
.demo-rating {
  display: flex;
  gap: 12px;
  margin-bottom: 32px;
}

.demo-star {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: rgba(42, 50, 51, 0.2);
  transition: all var(--duration-base) var(--ease-in-out);
}

.demo-star:hover {
  color: #ffc107;
  transform: scale(1.1);
}

.demo-star svg {
  width: 48px;
  height: 48px;
  display: block;
}

.demo-star--filled {
  color: #ffc107;
  pointer-events: none;
}

.demo-star--half {
  position: relative;
  color: #ffc107;
  pointer-events: none;
}

.demo-star--half svg:first-child {
  position: relative;
  z-index: 2;
}

.demo-rating--filled .demo-star {
  pointer-events: none;
}

.demo-book-btn,
.demo-reset-btn {
  padding: 14px 32px;
  border-radius: 100px;
  font-size: 16px;
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  transition: all var(--duration-base) var(--ease-in-out);
  font-family: inherit;
  border: none;
}

.demo-book-btn {
  background: linear-gradient(180deg, #5fc2e4 0%, #1290ac 100%);
  color: var(--color-white);
  margin-bottom: 16px;
}

.demo-book-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(18, 144, 172, 0.3);
}

.demo-reset-btn {
  background: transparent;
  color: var(--color-primary);
  text-decoration: underline;
}

.demo-reset-btn:hover {
  color: #1290ac;
}

/* Stage 1: Industry Selection (Existing styles) */
.demo-header {
  width: 662px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
}

/* Demo stage layout */
.demo-stage--industry-selection {
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.demo-title {
  align-self: stretch;
  text-align: center;
  color: #110229;
  font-size: 28px;
  font-family: 'Geist', var(--font-family);
  font-weight: 500;
  line-height: 33.6px;
  word-wrap: break-word;
  margin: 0;
}

.demo-subtitle {
  align-self: stretch;
  text-align: center;
  color: rgba(42, 50, 51, 0.7);
  font-size: 16px;
  font-family: 'Geist', var(--font-family);
  font-weight: 400;
  line-height: 20.8px;
  word-wrap: break-word;
  margin: 0;
}

.demo-cards {
  display: inline-flex;
  justify-content: center;
  align-items: flex-start;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.industry-card {
  /* Exact Figma values */
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  align-content: flex-start;
  padding: 12px;
  gap: 10px;
  width: 230px;
  height: 230px;
  border-radius: 12px;
  overflow: hidden;
  transition: transform var(--duration-base) var(--ease-out);
  /* Combined background layers as per Figma */
  background-color: #ffffff;
  background-size: cover;
  background-position: center;
}

.industry-card:hover {
  transform: translateY(-8px);
}

/* Card inner content wrapper - contains header at top, content at bottom */
.industry-card__inner {
  /* Exact Figma: Frame 292 */
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  flex: 1 1 0;
  height: 206px;
  position: relative;
  z-index: 2;
}

/* Combined background for each industry card - gradient, dark overlay, image, white */
.industry-card:nth-child(1) {
  background:
    linear-gradient(
      360deg,
      rgba(18, 144, 172, 0.7) 0%,
      rgba(90, 178, 170, 0.7) 92.31%
    ),
    linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
    url('../images/industry-senior-living.png') center/cover,
    #ffffff;
}

.industry-card:nth-child(2) {
  background:
    linear-gradient(
      360deg,
      rgba(18, 144, 172, 0.7) 0%,
      rgba(90, 178, 170, 0.7) 92.31%
    ),
    linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
    url('../images/industry-realtor.png') center/cover,
    #ffffff;
}

.industry-card:nth-child(3) {
  background:
    linear-gradient(
      360deg,
      rgba(18, 144, 172, 0.7) 0%,
      rgba(90, 178, 170, 0.7) 92.31%
    ),
    linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
    url('../images/industry-healthcare.png') center/cover,
    #ffffff;
}

.industry-card:nth-child(4) {
  background:
    linear-gradient(
      360deg,
      rgba(18, 144, 172, 0.7) 0%,
      rgba(90, 178, 170, 0.7) 92.31%
    ),
    linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
    url('../images/industry-verbacall.png') center/cover,
    #ffffff;
}

.industry-card__header {
  /* Exact Figma: Frame 36969 */
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  padding: 0px;
  gap: 8px;
  height: 24px;
  flex: none;
  order: 0;
  align-self: stretch;
  flex-grow: 0;
}

.industry-card__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}

.industry-card__icon svg {
  width: 24px;
  height: 24px;
}

.industry-card__title {
  /* Exact Figma */
  font-family: 'Geist', var(--font-family);
  font-style: normal;
  font-weight: 500;
  font-size: 20px;
  line-height: 24px;
  color: #ffffff;
  margin-top: 14px;
}

.industry-card__content {
  /* Exact Figma: Frame 36970 */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  gap: 12px;
  align-self: stretch;
}

.industry-card__description {
  /* Exact Figma */
  font-family: 'Geist', var(--font-family);
  font-style: normal;
  font-weight: 400;
  font-size: 14px;
  line-height: 130%;
  color: #ffffff;
  align-self: stretch;
  /* Adjust vertical position */
  transform: translateY(15px);
}

.industry-card__cta {
  /* Exact Figma: Frame 291 */
  display: inline-flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 6px 0px;
  gap: 12px;
  height: 36px;
  background: #ffffff;
  border-radius: 100px;
  border: none;
  text-decoration: none;
  cursor: pointer;
  align-self: stretch;
  transition: all var(--duration-base) var(--ease-in-out);
}

.industry-card__cta span {
  /* Exact Figma: Call Now text */
  font-family: 'Geist', var(--font-family);
  font-style: normal;
  font-weight: 500;
  font-size: 13px;
  line-height: 120%;
  text-align: center;
  color: #110229;
}

.industry-card__cta:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.industry-card__cta svg {
  width: 8px;
  height: 16px;
}

@media (max-width: 1023px) {
  .demo-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
    width: 100%;
    max-width: 520px;
    justify-items: center;
  }

  .industry-card {
    width: 100%;
    max-width: 230px;
  }
}

@media (max-width: 639px) {
  .demo-wrapper {
    padding-top: var(--space-2xl);
  }

  .demo-cards {
    display: grid;
    grid-template-columns: 1fr;
    max-width: 360px;
    justify-items: stretch;
  }

  .industry-card {
    max-width: 100%;
    height: auto;
    min-height: 240px;
    padding-bottom: 16px;
  }

  .industry-card__inner {
    padding-bottom: 4px;
  }
}

/* ========================================
   FEATURES SECTION - 3-Column Carousel
   ======================================== */

.features-section {
  width: 100%;
  max-width: var(--max-width, 1440px);
  margin: 0 auto;
  padding: 96px 0;
  background-color: var(--color-white);
  overflow: hidden;
}

.features-header {
  max-width: var(--container-width, 1200px);
  margin: 0 auto 48px;
  padding: 0 var(--side-padding, 24px);
  text-align: center;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  gap: 24px;
  align-items: center;
}

.features-title {
  font-size: 52px;
  line-height: 110%;
  font-weight: 400;
  color: #110229;
  max-width: 576px;
  margin: 0;
  text-align: center;
  font-family: 'Geist', var(--font-family);
  letter-spacing: 0;
}

.features-subtitle {
  font-size: 16px;
  line-height: 1.3;
  font-weight: var(--font-weight-normal);
  color: rgba(42, 50, 51, 0.7);
  margin: 0 auto;
  max-width: 720px;
  text-wrap: balance;
}

/* Carousel Container */
.features-carousel {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.features-carousel__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  max-width: none;
  margin: 0 auto 48px;
  padding: 0 var(--side-padding, 24px);
  box-sizing: border-box;
  position: relative;
}

/* Preview Slides (Left & Right) - 3D Perspective Effect */
.features-carousel__preview {
  width: 380px;
  height: 440px;
  flex-shrink: 0;
  overflow: visible;
  position: relative;
  perspective: 1000px;
}

.features-carousel__preview--left {
  /* No fade effect - match Figma design */
}

.features-carousel__preview--right {
  /* No fade effect - match Figma design */
}

.features-carousel__preview-inner {
  position: absolute;
  width: 380px;
  height: 440px;
  transform-style: preserve-3d;
}

.features-carousel__preview--left .features-carousel__preview-inner {
  /* 3D rotation showing right edge */
  right: 0;
  left: auto;
  transform: rotateY(18deg) scale(0.95);
  transform-origin: right center;
}

.features-carousel__preview--right .features-carousel__preview-inner {
  /* 3D rotation showing left edge */
  left: 0;
  right: auto;
  transform: rotateY(-18deg) scale(0.95);
  transform-origin: left center;
}

/* Main Active Slide */
.features-carousel__main {
  width: 520px;
  height: 600px;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}

/* Feature Card Styles */
.feature-card {
  background: var(--color-white);
  border: 1px solid #ebedf1;
  border-radius: 32px;
  padding: 32px 24px;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
}

.feature-card--active {
  box-shadow: none;
}

.feature-card--preview {
  opacity: 0.9;
  transform: scale(0.98);
}

/* Hide animation backgrounds on preview cards to avoid edge visibility */
.feature-card--preview .feature-animation__bg,
.feature-card--preview .feature-animation__dots-bg {
  display: none;
}

.feature-card--preview .feature-animation,
.feature-card--preview .feature-animation *,
.feature-card--preview .feature-animation::before,
.feature-card--preview .feature-animation::after,
.feature-card--preview .feature-animation *::before,
.feature-card--preview .feature-animation *::after {
  animation-play-state: paused !important;
}

.feature-card--preview .feature-animation {
  background: transparent !important;
  background-image: none !important;
}

.feature-card--preview .feature-animation--appointment {
  background: transparent !important;
  background-image: none !important;
}

/* Card Content */
.feature-card__content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: center;
  width: 100%;
}

.feature-card__title {
  font-size: 20px;
  line-height: 1.2;
  font-weight: var(--font-weight-normal);
  color: #110229;
  letter-spacing: -0.5px;
  margin: 0;
}

.feature-card__description {
  font-size: 14px;
  line-height: 1.4;
  font-weight: var(--font-weight-normal);
  color: rgba(42, 50, 51, 0.7);
  margin: 0;
}

/* Card Graphic */
.feature-card__graphic {
  width: 100%;
  height: 340px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: transparent;
}

.feature-card--active .feature-card__graphic {
  height: 420px;
}

.feature-card__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  border: none;
  outline: none;
  box-shadow: none;
}

/* Navigation Controls */
.features-carousel__controls {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: center;
}

.features-carousel__btn {
  width: 48px;
  height: 48px;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  padding: 0;
  border-radius: 50%;
}

.features-carousel__btn--prev {
  opacity: 0.4;
}

.features-carousel__btn--prev:hover {
  opacity: 0.7;
}

.features-carousel__btn--next:hover {
  opacity: 0.7;
}

.features-carousel__btn:active {
  transform: scale(0.95);
}

.features-carousel__btn svg {
  width: 48px;
  height: 48px;
}

/* Carousel Transition Animations */
.features-carousel__main,
.features-carousel__preview {
  transition:
    transform 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.feature-card__content,
.feature-card__graphic {
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

/* Transition states */
.features-carousel.is-transitioning
  .feature-card--active
  .feature-card__content,
.features-carousel.is-transitioning
  .feature-card--active
  .feature-card__graphic {
  opacity: 0;
  transform: translateY(10px);
}

.features-carousel.is-transitioning .features-carousel__preview {
  opacity: 0.5;
}

/* Slide direction animations */
.features-carousel.slide-next .features-carousel__main {
  animation: slideInFromRight 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.features-carousel.slide-prev .features-carousel__main {
  animation: slideInFromLeft 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideInFromRight {
  from {
    transform: translateX(50px);
    opacity: 0.5;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInFromLeft {
  from {
    transform: translateX(-50px);
    opacity: 0.5;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

/* Responsive Styles */
@media (max-width: 1023px) {
  .features-section {
    padding: 64px 0;
  }

  .features-title {
    font-size: 30px;
  }

  .features-carousel__preview {
    display: none;
  }

  .features-carousel__container {
    justify-content: center;
    padding: 0 24px;
  }

  .features-carousel__main {
    width: 100%;
    max-width: 500px;
    height: auto;
  }

  .feature-card {
    height: auto;
    padding: 28px 24px;
  }

  .feature-card__graphic {
    height: 350px;
    min-height: 350px;
  }

  .feature-card--active .feature-card__graphic {
    height: 380px;
  }

  /* Tablet animation scaling */
  .feature-animation {
    padding: 20px;
  }
}

@media (max-width: 767px) {
  .features-section {
    padding: 48px 0;
  }

  .features-title {
    font-size: 26px;
  }

  .feature-card {
    padding: 24px 16px;
    border-radius: 20px;
  }

  .feature-card__title {
    font-size: 18px;
    line-height: 1.3;
  }

  .feature-card__description {
    font-size: 14px;
    line-height: 1.4;
  }

  .feature-card__graphic {
    height: 380px;
    min-height: 380px;
    overflow: visible;
  }

  .feature-card--active .feature-card__graphic {
    height: 400px;
  }

  .features-carousel__controls {
    gap: 16px;
  }

  .features-carousel__btn {
    width: 44px;
    height: 44px;
  }

  .features-carousel__btn svg {
    width: 44px;
    height: 44px;
  }

  /* Animations fit naturally on mobile */
  .feature-animation {
    padding: 16px;
  }

  /* Frame-based animations use object-fit */
  .feature-animation__frame {
    object-fit: contain;
    width: 100%;
    height: 100%;
  }

  /* Lead nurturing mobile adjustments - slight reduction */
  .feature-animation--lead-nurturing .feature-animation__hub {
    width: 70px;
    height: 70px;
  }

  .feature-animation--lead-nurturing .feature-animation__hub-icon {
    width: 38px;
    height: 38px;
  }

  .feature-animation__lead {
    width: 42px;
    height: 42px;
  }

  .feature-animation__lead svg {
    width: 22px;
    height: 22px;
  }

  .feature-animation__lead::after {
    font-size: 8px;
  }

  /* Warm handoff mobile - keep readable */
  .feature-animation--warm-handoff .feature-animation__agent,
  .feature-animation--warm-handoff .feature-animation__client {
    width: 75px;
    height: 75px;
  }

  .feature-animation--warm-handoff .feature-animation__agent-icon,
  .feature-animation--warm-handoff .feature-animation__client-icon {
    width: 38px;
    height: 38px;
  }

  .feature-animation--warm-handoff .feature-animation__transfer-line {
    stroke-width: 2.5;
  }
}

@media (max-width: 480px) {
  .features-carousel__main {
    width: 100%;
    max-width: 100%;
    padding: 0 12px;
  }

  .feature-card {
    padding: 20px 14px;
  }

  .feature-card__graphic {
    height: 340px;
    min-height: 340px;
  }

  .feature-card--active .feature-card__graphic {
    height: 360px;
  }

  .feature-animation {
    padding: 12px;
  }

  /* Keep animations readable on small screens */
  .feature-animation--lead-nurturing .feature-animation__hub {
    width: 60px;
    height: 60px;
  }

  .feature-animation--lead-nurturing .feature-animation__hub-icon {
    width: 32px;
    height: 32px;
  }

  .feature-animation__lead {
    width: 38px;
    height: 38px;
  }

  .feature-animation__lead svg {
    width: 20px;
    height: 20px;
  }
}

/* ========================================
   FEATURE ANIMATION TEMPLATES
   ======================================== */

/* Base Animation Styles */
.feature-animation {
  width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.feature-animation__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(18, 144, 172, 0.03) 0%,
    rgba(46, 168, 46, 0.02) 100%
  );
  border-radius: 16px;
  z-index: 0;
}

/* Dots background pattern (matching Figma) */
.feature-animation__dots-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.08) 1.5px,
    transparent 1.5px
  );
  background-size: 20px 20px;
  opacity: 1;
}

/* ===== Appointment Booking Animation ===== */
/*
   Frame-based animation from Figma (8 frames, ~6s loop):
   Frame 1: Phone icon centered
   Frame 2: Olivia's incoming message with voice waveform
   Frame 3: Agent response appears
   Frame 4: Full conversation
   Frame 5: Agent confirms appointment
   Frame 6: Calendar sync icons appear
   Frame 7: "Appointment Booked!" card
   Frame 8: Final calendar state
*/
.feature-animation--appointment {
  gap: 16px;
  padding: 32px 24px;
  background-color: #fafafa;
  background-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.06) 1.5px,
    transparent 1.5px
  );
  background-size: 20px 20px;
}

/* Frame-based animation container */
.feature-animation--appointment-frames {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
}

.feature-animation__frames {
  position: relative;
  width: 100%;
  height: 100%;
}

.feature-animation__frame {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  object-fit: contain;
  will-change: opacity;
  transition: opacity 200ms ease-in-out;
}

.feature-animation--appointment-frames .feature-animation__frame {
  animation: none !important;
}

.feature-card--preview .feature-animation__frame {
  transition: none;
}

.feature-animation__frame.is-active {
  opacity: 1;
}

/* Frame animation keyframes - 8 frames, ~750ms per frame = 6s total */
.feature-animation__frame:nth-child(1) {
  animation: frameShow1 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(2) {
  animation: frameShow2 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(3) {
  animation: frameShow3 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(4) {
  animation: frameShow4 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(5) {
  animation: frameShow5 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(6) {
  animation: frameShow6 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(7) {
  animation: frameShow7 6s steps(1) infinite;
}
.feature-animation__frame:nth-child(8) {
  animation: frameShow8 6s steps(1) infinite;
}

/* Each frame shows for 12.5% of the animation (100% / 8 frames) */
@keyframes frameShow1 {
  0%,
  12.5% {
    opacity: 1;
  }
  12.51%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow2 {
  0%,
  12.5% {
    opacity: 0;
  }
  12.51%,
  25% {
    opacity: 1;
  }
  25.01%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow3 {
  0%,
  25% {
    opacity: 0;
  }
  25.01%,
  37.5% {
    opacity: 1;
  }
  37.51%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow4 {
  0%,
  37.5% {
    opacity: 0;
  }
  37.51%,
  50% {
    opacity: 1;
  }
  50.01%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow5 {
  0%,
  50% {
    opacity: 0;
  }
  50.01%,
  62.5% {
    opacity: 1;
  }
  62.51%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow6 {
  0%,
  62.5% {
    opacity: 0;
  }
  62.51%,
  75% {
    opacity: 1;
  }
  75.01%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow7 {
  0%,
  75% {
    opacity: 0;
  }
  75.01%,
  87.5% {
    opacity: 1;
  }
  87.51%,
  100% {
    opacity: 0;
  }
}

@keyframes frameShow8 {
  0%,
  87.5% {
    opacity: 0;
  }
  87.51%,
  100% {
    opacity: 1;
  }
}

/* ===== 4-Frame Animation (Spam Filtering) ===== */
.feature-animation--frames-4 .feature-animation__frame:nth-child(1) {
  animation: frameShow4_1 4s steps(1) infinite;
}
.feature-animation--frames-4 .feature-animation__frame:nth-child(2) {
  animation: frameShow4_2 4s steps(1) infinite;
}
.feature-animation--frames-4 .feature-animation__frame:nth-child(3) {
  animation: frameShow4_3 4s steps(1) infinite;
}
.feature-animation--frames-4 .feature-animation__frame:nth-child(4) {
  animation: frameShow4_4 4s steps(1) infinite;
}

@keyframes frameShow4_1 {
  0%,
  25% {
    opacity: 1;
  }
  25.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow4_2 {
  0%,
  25% {
    opacity: 0;
  }
  25.01%,
  50% {
    opacity: 1;
  }
  50.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow4_3 {
  0%,
  50% {
    opacity: 0;
  }
  50.01%,
  75% {
    opacity: 1;
  }
  75.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow4_4 {
  0%,
  75% {
    opacity: 0;
  }
  75.01%,
  100% {
    opacity: 1;
  }
}

/* ===== 5-Frame Animation (Live Transfer) ===== */
.feature-animation--frames-5 .feature-animation__frame:nth-child(1) {
  animation: frameShow5_1 5s steps(1) infinite;
}
.feature-animation--frames-5 .feature-animation__frame:nth-child(2) {
  animation: frameShow5_2 5s steps(1) infinite;
}
.feature-animation--frames-5 .feature-animation__frame:nth-child(3) {
  animation: frameShow5_3 5s steps(1) infinite;
}
.feature-animation--frames-5 .feature-animation__frame:nth-child(4) {
  animation: frameShow5_4 5s steps(1) infinite;
}
.feature-animation--frames-5 .feature-animation__frame:nth-child(5) {
  animation: frameShow5_5 5s steps(1) infinite;
}

@keyframes frameShow5_1 {
  0%,
  20% {
    opacity: 1;
  }
  20.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow5_2 {
  0%,
  20% {
    opacity: 0;
  }
  20.01%,
  40% {
    opacity: 1;
  }
  40.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow5_3 {
  0%,
  40% {
    opacity: 0;
  }
  40.01%,
  60% {
    opacity: 1;
  }
  60.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow5_4 {
  0%,
  60% {
    opacity: 0;
  }
  60.01%,
  80% {
    opacity: 1;
  }
  80.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow5_5 {
  0%,
  80% {
    opacity: 0;
  }
  80.01%,
  100% {
    opacity: 1;
  }
}

/* ===== 7-Frame Animation (Lead Qualification, Call Summary) ===== */
.feature-animation--frames-7 .feature-animation__frame:nth-child(1) {
  animation: frameShow7_1 5.25s steps(1) infinite;
}
.feature-animation--frames-7 .feature-animation__frame:nth-child(2) {
  animation: frameShow7_2 5.25s steps(1) infinite;
}
.feature-animation--frames-7 .feature-animation__frame:nth-child(3) {
  animation: frameShow7_3 5.25s steps(1) infinite;
}
.feature-animation--frames-7 .feature-animation__frame:nth-child(4) {
  animation: frameShow7_4 5.25s steps(1) infinite;
}
.feature-animation--frames-7 .feature-animation__frame:nth-child(5) {
  animation: frameShow7_5 5.25s steps(1) infinite;
}
.feature-animation--frames-7 .feature-animation__frame:nth-child(6) {
  animation: frameShow7_6 5.25s steps(1) infinite;
}
.feature-animation--frames-7 .feature-animation__frame:nth-child(7) {
  animation: frameShow7_7 5.25s steps(1) infinite;
}

@keyframes frameShow7_1 {
  0%,
  14.28% {
    opacity: 1;
  }
  14.29%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow7_2 {
  0%,
  14.28% {
    opacity: 0;
  }
  14.29%,
  28.57% {
    opacity: 1;
  }
  28.58%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow7_3 {
  0%,
  28.57% {
    opacity: 0;
  }
  28.58%,
  42.86% {
    opacity: 1;
  }
  42.87%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow7_4 {
  0%,
  42.86% {
    opacity: 0;
  }
  42.87%,
  57.14% {
    opacity: 1;
  }
  57.15%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow7_5 {
  0%,
  57.14% {
    opacity: 0;
  }
  57.15%,
  71.43% {
    opacity: 1;
  }
  71.44%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow7_6 {
  0%,
  71.43% {
    opacity: 0;
  }
  71.44%,
  85.71% {
    opacity: 1;
  }
  85.72%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow7_7 {
  0%,
  85.71% {
    opacity: 0;
  }
  85.72%,
  100% {
    opacity: 1;
  }
}

/* ===== 14-Frame Animation (Outbound Call Automation) ===== */
.feature-animation--frames-14 .feature-animation__frame:nth-child(1) {
  animation: frameShow14_1 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(2) {
  animation: frameShow14_2 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(3) {
  animation: frameShow14_3 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(4) {
  animation: frameShow14_4 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(5) {
  animation: frameShow14_5 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(6) {
  animation: frameShow14_6 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(7) {
  animation: frameShow14_7 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(8) {
  animation: frameShow14_8 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(9) {
  animation: frameShow14_9 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(10) {
  animation: frameShow14_10 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(11) {
  animation: frameShow14_11 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(12) {
  animation: frameShow14_12 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(13) {
  animation: frameShow14_13 10.5s steps(1) infinite;
}
.feature-animation--frames-14 .feature-animation__frame:nth-child(14) {
  animation: frameShow14_14 10.5s steps(1) infinite;
}

/* Each frame = 7.14% (100/14) */
@keyframes frameShow14_1 {
  0%,
  7.14% {
    opacity: 1;
  }
  7.15%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_2 {
  0%,
  7.14% {
    opacity: 0;
  }
  7.15%,
  14.28% {
    opacity: 1;
  }
  14.29%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_3 {
  0%,
  14.28% {
    opacity: 0;
  }
  14.29%,
  21.42% {
    opacity: 1;
  }
  21.43%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_4 {
  0%,
  21.42% {
    opacity: 0;
  }
  21.43%,
  28.57% {
    opacity: 1;
  }
  28.58%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_5 {
  0%,
  28.57% {
    opacity: 0;
  }
  28.58%,
  35.71% {
    opacity: 1;
  }
  35.72%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_6 {
  0%,
  35.71% {
    opacity: 0;
  }
  35.72%,
  42.85% {
    opacity: 1;
  }
  42.86%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_7 {
  0%,
  42.85% {
    opacity: 0;
  }
  42.86%,
  50% {
    opacity: 1;
  }
  50.01%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_8 {
  0%,
  50% {
    opacity: 0;
  }
  50.01%,
  57.14% {
    opacity: 1;
  }
  57.15%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_9 {
  0%,
  57.14% {
    opacity: 0;
  }
  57.15%,
  64.28% {
    opacity: 1;
  }
  64.29%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_10 {
  0%,
  64.28% {
    opacity: 0;
  }
  64.29%,
  71.42% {
    opacity: 1;
  }
  71.43%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_11 {
  0%,
  71.42% {
    opacity: 0;
  }
  71.43%,
  78.57% {
    opacity: 1;
  }
  78.58%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_12 {
  0%,
  78.57% {
    opacity: 0;
  }
  78.58%,
  85.71% {
    opacity: 1;
  }
  85.72%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_13 {
  0%,
  85.71% {
    opacity: 0;
  }
  85.72%,
  92.85% {
    opacity: 1;
  }
  92.86%,
  100% {
    opacity: 0;
  }
}
@keyframes frameShow14_14 {
  0%,
  92.85% {
    opacity: 0;
  }
  92.86%,
  100% {
    opacity: 1;
  }
}

.feature-animation__chat-bubble {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
  max-width: 320px;
  position: relative;
  z-index: 1;
}

.feature-animation__chat-bubble--incoming {
  align-self: flex-start;
  animation: appointmentStep1 8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.feature-animation__chat-bubble--outgoing {
  align-self: flex-end;
  background: rgba(255, 255, 255, 0.5);
  animation: appointmentStep2 8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.feature-animation__chat-bubble--outgoing .feature-animation__name {
  color: #110229;
}

.feature-animation__chat-bubble--outgoing .feature-animation__text {
  color: rgba(42, 50, 51, 0.7);
}

.feature-animation__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.feature-animation__message {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.3;
}

.feature-animation__name {
  font-size: 16px;
  font-weight: 600;
  color: #110229;
}

.feature-animation__text {
  font-size: 14px;
  line-height: 1.3;
  color: rgba(42, 50, 51, 0.7);
}

.feature-animation__agent-icon {
  width: 37.5px;
  height: 37.5px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.feature-animation__agent-icon svg {
  width: 100%;
  height: 100%;
}

/* Booked card */
.feature-animation__booked-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  border: 1px solid #1290ac;
  border-radius: 12px;
  box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  position: relative;
  z-index: 2;
  animation: appointmentStep3 8s cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
}

.feature-animation__calendar-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}

.feature-animation__booked-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.feature-animation__booked-label {
  font-size: 14px;
  font-weight: 600;
  color: #1290ac;
}

.feature-animation__booked-time {
  font-size: 12px;
  color: rgba(42, 50, 51, 0.7);
}

/* Floating calendar icon */
.feature-animation__floating-icon {
  position: absolute;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #1290ac 0%, #0d7a8f 100%);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(18, 144, 172, 0.4);
  z-index: 3;
  animation: appointmentStep4 8s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}

.feature-animation__floating-icon svg {
  width: 24px;
  height: 24px;
}

.feature-animation__floating-icon svg rect,
.feature-animation__floating-icon svg path {
  stroke: white;
}

/* Step 1: Olivia's message - appears at 0%, visible 0-75%, fades 75-85% */
@keyframes appointmentStep1 {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  8% {
    opacity: 1;
    transform: translateY(0);
  }
  75% {
    opacity: 1;
    transform: translateY(0);
  }
  85% {
    opacity: 0;
    transform: translateY(-10px);
  }
  100% {
    opacity: 0;
    transform: translateY(20px);
  }
}

/* Step 2: Agent response - appears at 12%, visible 12-75%, fades with step 1 */
@keyframes appointmentStep2 {
  0%,
  12% {
    opacity: 0;
    transform: translateY(20px);
  }
  20% {
    opacity: 1;
    transform: translateY(0);
  }
  75% {
    opacity: 1;
    transform: translateY(0);
  }
  85% {
    opacity: 0;
    transform: translateY(-10px);
  }
  100% {
    opacity: 0;
    transform: translateY(20px);
  }
}

/* Step 3: Booked card - appears at 30%, visible 30-65%, fades as icon floats */
@keyframes appointmentStep3 {
  0%,
  30% {
    opacity: 0;
    transform: translateY(20px) scale(0.9);
  }
  40% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  60% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  70% {
    opacity: 0;
    transform: translateY(-10px) scale(0.95);
  }
  100% {
    opacity: 0;
    transform: translateY(20px) scale(0.9);
  }
}

/* Step 4: Floating icon - appears at 50%, floats up 50-80%, fades 80-90% */
@keyframes appointmentStep4 {
  0%,
  50% {
    opacity: 0;
    transform: translateY(40px) scale(0.5);
  }
  60% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  70% {
    opacity: 1;
    transform: translateY(-30px) scale(1.1);
  }
  80% {
    opacity: 0.5;
    transform: translateY(-60px) scale(0.9);
  }
  90%,
  100% {
    opacity: 0;
    transform: translateY(-80px) scale(0.5);
  }
}

@keyframes fadeSlideIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== SPAM Filtering Animation ===== */
/*
   Figma sequence (11 stages, ~7s loop):
   Start: Lead (21), Spam (1482), Protection Enabled
   Stage 3: Spam item highlighted red, count increases to 1483
   Stage 6: Spam count increases to 1484
   Stage 10: Lead item turns GREEN, count goes to 22 (good lead captured!)
*/
.feature-animation--spam {
  flex-direction: row;
  gap: 16px;
  padding: 20px;
  background-color: #fafafa;
  background-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.06) 1.5px,
    transparent 1.5px
  );
  background-size: 20px 20px;
}

.feature-animation__spam-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: transparent;
  position: relative;
  z-index: 1;
  width: 185px;
}

.feature-animation__spam-box {
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(18, 144, 172, 0.1);
  border: 1px solid #1290ac;
  border-radius: 4px 4px 0 0;
  padding: 8px;
}

.feature-animation__spam-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(255, 255, 255, 0.6);
  border-radius: 12px;
  box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  margin-bottom: 8px;
  animation: spamPanelSlideIn 7s ease-in-out infinite;
}

.feature-animation__spam-item--lead {
  animation: spamLeadPulse 7s ease-in-out infinite;
}

.feature-animation__spam-item--spam {
  animation: spamSpamPulse 7s ease-in-out infinite;
}

.feature-animation__spam-item svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.feature-animation__spam-item span {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  color: #110229;
}

.feature-animation__count {
  font-size: 14px;
  font-weight: 700;
  transition: transform 0.3s ease;
}

.feature-animation__count--good {
  color: #1290ac;
  animation: spamLeadCountPulse 7s ease-in-out infinite;
}

.feature-animation__count--bad {
  color: #bc2b2d;
  animation: spamCountIncrement 7s ease-in-out infinite;
}

.feature-animation__protection {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 8px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(18, 144, 172, 0.1);
  border: 1px solid #1290ac;
  border-radius: 0 0 4px 4px;
  animation: protectionPulse 7s ease-in-out infinite;
}

.feature-animation__protection svg {
  width: 22px;
  height: 19px;
  fill: #1290ac;
}

.feature-animation__protection span {
  font-size: 14px;
  font-weight: 500;
  color: #1290ac;
}

.feature-animation__spam-preview {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding: 12px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(255, 255, 255, 0.6);
  border-radius: 8px;
  box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  width: 225px;
  height: 316px;
  position: relative;
  z-index: 1;
  animation: spamPreviewPulse 7s ease-in-out infinite;
}

.feature-animation__line {
  height: 13px;
  background: #eef6f7;
  border-radius: 8px;
  animation: lineShimmer 2s ease-in-out infinite;
}

.feature-animation__line--short {
  width: 63%;
  animation-delay: 0.2s;
}

.feature-animation__line--medium {
  width: 83%;
  animation-delay: 0.4s;
}

/* Panel slides in at start */
@keyframes spamPanelSlideIn {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  10% {
    opacity: 1;
    transform: translateX(0);
  }
  90% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(-20px);
  }
}

/* Lead item - pulses green at 70% when good lead is captured */
@keyframes spamLeadPulse {
  0%,
  65% {
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
  70%,
  85% {
    background: rgba(18, 144, 172, 0.15);
    box-shadow:
      0 0 20px rgba(18, 144, 172, 0.3),
      0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
  90%,
  100% {
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
}

/* Spam item - pulses red at 30% and 50% when spam is blocked */
@keyframes spamSpamPulse {
  0%,
  25% {
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
  30%,
  35% {
    background: rgba(188, 43, 45, 0.1);
    box-shadow:
      0 0 15px rgba(188, 43, 45, 0.2),
      0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
  40%,
  45% {
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
  50%,
  55% {
    background: rgba(188, 43, 45, 0.1);
    box-shadow:
      0 0 15px rgba(188, 43, 45, 0.2),
      0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
  60%,
  100% {
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 15px 36.4px rgba(0, 0, 0, 0.1);
  }
}

/* Lead count pulses at 70% when incremented */
@keyframes spamLeadCountPulse {
  0%,
  65% {
    transform: scale(1);
  }
  70% {
    transform: scale(1.3);
  }
  75%,
  100% {
    transform: scale(1);
  }
}

/* Spam count pulses at 30% and 50% */
@keyframes spamCountIncrement {
  0%,
  25% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.3);
  }
  35%,
  45% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.3);
  }
  55%,
  100% {
    transform: scale(1);
  }
}

/* Protection bar glows throughout */
@keyframes protectionPulse {
  0%,
  100% {
    box-shadow: inset 0 0 0 rgba(18, 144, 172, 0);
  }
  25%,
  75% {
    box-shadow: inset 0 0 10px rgba(18, 144, 172, 0.2);
  }
}

/* Preview card pulses with activity */
@keyframes spamPreviewPulse {
  0%,
  20% {
    opacity: 0.7;
  }
  30%,
  35% {
    opacity: 1;
    border-color: rgba(188, 43, 45, 0.3);
  }
  40%,
  45% {
    opacity: 0.8;
    border-color: transparent;
  }
  50%,
  55% {
    opacity: 1;
    border-color: rgba(188, 43, 45, 0.3);
  }
  60%,
  65% {
    opacity: 0.8;
    border-color: transparent;
  }
  70%,
  80% {
    opacity: 1;
    border-color: rgba(18, 144, 172, 0.3);
  }
  85%,
  100% {
    opacity: 0.7;
    border-color: transparent;
  }
}

@keyframes lineShimmer {
  0%,
  100% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
}

/* ===== Call Summary / CRM Integration Animation ===== */
/*
   Figma sequence (4 variants, ~6s loop):
   Frame 1: Tags, hub, integrations with gray lines
   Frame 3: Connection lines turn GREEN (syncing data)
   Frame 4: Lines fade back to gray
*/
.feature-animation--call-summary {
  gap: 20px;
  background: url('../images/feature-bg-dots.png') center/contain no-repeat;
}

.feature-animation__tags {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.feature-animation__tag {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid #eeeff3;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  color: #110229;
  animation: crmTagSync 6s ease-in-out infinite;
}

.feature-animation__tag:nth-child(1) {
  animation-delay: 0s;
}
.feature-animation__tag:nth-child(2) {
  animation-delay: 0.1s;
}
.feature-animation__tag:nth-child(3) {
  animation-delay: 0.2s;
}

.feature-animation__tag svg {
  width: 24px;
  height: 24px;
}

/* Tags pulse green during sync */
@keyframes crmTagSync {
  0%,
  30% {
    border-color: #eeeff3;
    box-shadow: none;
  }
  40%,
  70% {
    border-color: #1290ac;
    box-shadow: 0 0 12px rgba(18, 144, 172, 0.25);
  }
  80%,
  100% {
    border-color: #eeeff3;
    box-shadow: none;
  }
}

.feature-animation__hub {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  height: 112px;
  background: linear-gradient(135deg, #1290ac 0%, #0d7a8f 100%);
  border-radius: 50%;
  box-shadow: 0 8px 32px rgba(18, 144, 172, 0.3);
  position: relative;
  z-index: 2;
  animation: crmHubPulse 6s ease-in-out infinite;
}

.feature-animation__hub-icon {
  width: 56px;
  height: 56px;
}

.feature-animation__hub-icon svg {
  width: 100%;
  height: 100%;
}

.feature-animation__hub-icon svg path[fill='#1290AC'] {
  fill: #fff;
}

.feature-animation__hub-icon svg path[stroke='#1290AC'] {
  stroke: rgba(255, 255, 255, 0.8);
}

/* Hub pulses stronger during sync */
@keyframes crmHubPulse {
  0%,
  30% {
    transform: scale(1);
    box-shadow: 0 8px 32px rgba(18, 144, 172, 0.3);
  }
  40%,
  70% {
    transform: scale(1.1);
    box-shadow: 0 16px 48px rgba(18, 144, 172, 0.5);
  }
  80%,
  100% {
    transform: scale(1);
    box-shadow: 0 8px 32px rgba(18, 144, 172, 0.3);
  }
}

.feature-animation__integrations {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.feature-animation__integration-img {
  width: 56px;
  height: 56px;
  border-radius: 4px;
  border: 1px solid #eeeff3;
  background: #fff;
  object-fit: contain;
  padding: 8px;
  box-sizing: border-box;
  animation: crmIntegrationSync 6s ease-in-out infinite;
}

.feature-animation__integration-img:nth-child(1) {
  animation-delay: 0s;
}
.feature-animation__integration-img:nth-child(2) {
  animation-delay: 0.08s;
}
.feature-animation__integration-img:nth-child(3) {
  animation-delay: 0.16s;
}
.feature-animation__integration-img:nth-child(4) {
  animation-delay: 0.24s;
}
.feature-animation__integration-img:nth-child(5) {
  animation-delay: 0.32s;
}

/* Integrations get green border during sync */
@keyframes crmIntegrationSync {
  0%,
  30% {
    border-color: #eeeff3;
    box-shadow: none;
    transform: scale(1);
  }
  40%,
  70% {
    border-color: #1290ac;
    box-shadow: 0 0 15px rgba(18, 144, 172, 0.3);
    transform: scale(1.05);
  }
  80%,
  100% {
    border-color: #eeeff3;
    box-shadow: none;
    transform: scale(1);
  }
}

.feature-animation__integration-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  animation: crmIntegrationSync 6s ease-in-out infinite;
  background: #fff;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.feature-animation__integration-icon svg {
  width: 28px;
  height: 28px;
}

.feature-animation__integration-icon:nth-child(2) {
  animation-delay: 0.2s;
}
.feature-animation__integration-icon:nth-child(3) {
  animation-delay: 0.4s;
}
.feature-animation__integration-icon:nth-child(4) {
  animation-delay: 0.6s;
}
.feature-animation__integration-icon:nth-child(5) {
  animation-delay: 0.8s;
}

/* Call Summary Background Pattern - connection lines */
.feature-animation__bg-pattern {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

/* Connection lines that turn green during sync */
.feature-animation__bg-pattern::before {
  content: '';
  position: absolute;
  top: 25%;
  left: 50%;
  width: 2px;
  height: 20%;
  background: #e2e8f0;
  transform: translateX(-50%);
  animation: crmLineSync 6s ease-in-out infinite;
}

.feature-animation__bg-pattern::after {
  content: '';
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 2px;
  height: 20%;
  background: #e2e8f0;
  transform: translateX(-50%);
  animation: crmLineSync 6s ease-in-out infinite;
  animation-delay: 0.1s;
}

@keyframes crmLineSync {
  0%,
  30% {
    background: #e2e8f0;
    box-shadow: none;
  }
  40%,
  70% {
    background: #1290ac;
    box-shadow: 0 0 8px rgba(18, 144, 172, 0.5);
  }
  80%,
  100% {
    background: #e2e8f0;
    box-shadow: none;
  }
}

/* ===== Lead Nurturing Animation ===== */
/*
   Figma sequence (9 variants, ~9s loop):
   Frame 1: All gray person icons with "zzz" (dormant leads)
   Frame 3: First lead transforms - photo avatar with green border
   Frame 6: Two leads are now photos with green borders
   Frame 9: Four leads are now real photos (being nurtured)
*/
.feature-animation--lead-nurturing {
  justify-content: center;
  background: url('../images/feature-bg-dots.png') center/contain no-repeat;
}

.feature-animation__connecting-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

/* Line animations synced with lead wake-ups */
/* Line 1 → Lead-1 (wakes at 20-30%) */
.feature-animation__connecting-lines line:nth-child(1) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDrawLead1 9s ease-in-out infinite;
}

/* Line 2 → Lead-2 (dormant, stays grey) */
.feature-animation__connecting-lines line:nth-child(2) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDormant 9s ease-in-out infinite;
}

/* Line 3 → Lead-3 (wakes at 35-45%) */
.feature-animation__connecting-lines line:nth-child(3) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDrawLead3 9s ease-in-out infinite;
}

/* Line 4 → Lead-4 (dormant, stays grey) */
.feature-animation__connecting-lines line:nth-child(4) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDormant 9s ease-in-out infinite;
}

/* Line 5 → Lead-7 (wakes at 65-75%) */
.feature-animation__connecting-lines line:nth-child(5) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDrawLead7 9s ease-in-out infinite;
}

/* Line 6 → Lead-4 (dormant, stays grey) */
.feature-animation__connecting-lines line:nth-child(6) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDormant 9s ease-in-out infinite;
}

/* Line 7 → Lead-6 (dormant, stays grey) */
.feature-animation__connecting-lines line:nth-child(7) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDormant 9s ease-in-out infinite;
}

/* Line 8 → Lead-5 (wakes at 50-60%) */
.feature-animation__connecting-lines line:nth-child(8) {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: lineDrawLead5 9s ease-in-out infinite;
}

/* Line synced with Lead-1 wake-up (20-30%) */
@keyframes lineDrawLead1 {
  0%,
  15% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
  25% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  30%,
  80% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  90%,
  100% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
}

/* Line synced with Lead-3 wake-up (35-45%) */
@keyframes lineDrawLead3 {
  0%,
  30% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
  40% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  45%,
  80% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  90%,
  100% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
}

/* Line synced with Lead-5 wake-up (50-60%) */
@keyframes lineDrawLead5 {
  0%,
  45% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
  55% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  60%,
  80% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  90%,
  100% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
}

/* Line synced with Lead-7 wake-up (65-75%) */
@keyframes lineDrawLead7 {
  0%,
  60% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
  70% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  75%,
  85% {
    stroke-dashoffset: 0;
    stroke: #1290ac;
    opacity: 1;
  }
  95%,
  100% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
}

/* Dormant lines stay grey and subtle */
@keyframes lineDormant {
  0%,
  100% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.2;
  }
  50% {
    stroke-dashoffset: 200;
    stroke: #e2e8f0;
    opacity: 0.3;
  }
}

.feature-animation--lead-nurturing .feature-animation__hub {
  width: 85px;
  height: 85px;
  z-index: 3;
  animation: leadHubPulse 9s ease-in-out infinite;
}

@keyframes leadHubPulse {
  0%,
  20% {
    transform: scale(1);
    box-shadow: 0 8px 32px rgba(18, 144, 172, 0.3);
  }
  40%,
  70% {
    transform: scale(1.1);
    box-shadow: 0 16px 48px rgba(18, 144, 172, 0.5);
  }
  85%,
  100% {
    transform: scale(1);
    box-shadow: 0 8px 32px rgba(18, 144, 172, 0.3);
  }
}

.feature-animation--lead-nurturing .feature-animation__hub-icon {
  width: 45px;
  height: 45px;
}

.feature-animation__leads {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.feature-animation__lead {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(211, 226, 227, 0.6);
  border-radius: 50%;
  border: 2px solid #d7dddf;
  transition: all 0.5s ease;
}

.feature-animation__lead svg {
  width: 24px;
  height: 24px;
  opacity: 0.7;
}

/* Sleeping "zzz" indicator - visible when dormant */
.feature-animation__lead::after {
  content: 'zzz';
  position: absolute;
  top: -10px;
  right: -8px;
  font-size: 9px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: -1px;
  animation: zzzFloat 2s ease-in-out infinite;
}

@keyframes zzzFloat {
  0%,
  100% {
    opacity: 0.6;
    transform: translateY(0) rotate(-10deg);
  }
  50% {
    opacity: 1;
    transform: translateY(-4px) rotate(5deg);
  }
}

/* 7 leads positioned around the center hub (matching Figma positions) */
.feature-animation__lead--1 {
  top: 15%;
  left: 10%;
}
.feature-animation__lead--2 {
  top: 8%;
  left: 35%;
}
.feature-animation__lead--3 {
  top: 8%;
  right: 22%;
}
.feature-animation__lead--4 {
  top: 40%;
  right: 6%;
}
.feature-animation__lead--5 {
  bottom: 18%;
  right: 22%;
}
.feature-animation__lead--6 {
  bottom: 22%;
  left: 30%;
}
.feature-animation__lead--7 {
  top: 48%;
  left: 6%;
}
.feature-animation__lead--8 {
  display: none;
}

/* Lead activation animations - staggered to simulate nurturing */
/* Lead 1 - first to wake up at 25% */
.feature-animation__lead--1 {
  animation: leadWakeUp1 9s ease-in-out infinite;
}
.feature-animation__lead--1::after {
  animation: zzzFade1 9s ease-in-out infinite;
}

/* Lead 3 - wakes up at 40% */
.feature-animation__lead--3 {
  animation: leadWakeUp2 9s ease-in-out infinite;
}
.feature-animation__lead--3::after {
  animation: zzzFade2 9s ease-in-out infinite;
}

/* Lead 5 - wakes up at 55% */
.feature-animation__lead--5 {
  animation: leadWakeUp3 9s ease-in-out infinite;
}
.feature-animation__lead--5::after {
  animation: zzzFade3 9s ease-in-out infinite;
}

/* Lead 7 - wakes up at 70% */
.feature-animation__lead--7 {
  animation: leadWakeUp4 9s ease-in-out infinite;
}
.feature-animation__lead--7::after {
  animation: zzzFade4 9s ease-in-out infinite;
}

/* Other leads stay dormant but pulse slightly */
.feature-animation__lead--2,
.feature-animation__lead--4,
.feature-animation__lead--6 {
  animation: leadDormant 9s ease-in-out infinite;
}

/* Lead wakes up - border turns green, glow appears */
@keyframes leadWakeUp1 {
  0%,
  20% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
  30%,
  80% {
    background: rgba(18, 144, 172, 0.15);
    border-color: #1290ac;
    box-shadow: 0 0 15px rgba(18, 144, 172, 0.4);
    transform: scale(1.1);
  }
  90%,
  100% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
}

@keyframes leadWakeUp2 {
  0%,
  35% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
  45%,
  80% {
    background: rgba(18, 144, 172, 0.15);
    border-color: #1290ac;
    box-shadow: 0 0 15px rgba(18, 144, 172, 0.4);
    transform: scale(1.1);
  }
  90%,
  100% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
}

@keyframes leadWakeUp3 {
  0%,
  50% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
  60%,
  80% {
    background: rgba(18, 144, 172, 0.15);
    border-color: #1290ac;
    box-shadow: 0 0 15px rgba(18, 144, 172, 0.4);
    transform: scale(1.1);
  }
  90%,
  100% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
}

@keyframes leadWakeUp4 {
  0%,
  65% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
  75%,
  85% {
    background: rgba(18, 144, 172, 0.15);
    border-color: #1290ac;
    box-shadow: 0 0 15px rgba(18, 144, 172, 0.4);
    transform: scale(1.1);
  }
  95%,
  100% {
    background: rgba(211, 226, 227, 0.6);
    border-color: #d7dddf;
    box-shadow: none;
    transform: scale(1);
  }
}

/* zzz fades out when lead wakes up */
@keyframes zzzFade1 {
  0%,
  20% {
    opacity: 1;
  }
  30%,
  80% {
    opacity: 0;
  }
  90%,
  100% {
    opacity: 1;
  }
}

@keyframes zzzFade2 {
  0%,
  35% {
    opacity: 1;
  }
  45%,
  80% {
    opacity: 0;
  }
  90%,
  100% {
    opacity: 1;
  }
}

@keyframes zzzFade3 {
  0%,
  50% {
    opacity: 1;
  }
  60%,
  80% {
    opacity: 0;
  }
  90%,
  100% {
    opacity: 1;
  }
}

@keyframes zzzFade4 {
  0%,
  65% {
    opacity: 1;
  }
  75%,
  85% {
    opacity: 0;
  }
  95%,
  100% {
    opacity: 1;
  }
}

/* Dormant leads just pulse gently */
@keyframes leadDormant {
  0%,
  100% {
    opacity: 0.7;
    transform: scale(0.95);
  }
  50% {
    opacity: 0.9;
    transform: scale(1);
  }
}

/* ===== Outbound Call Automation Animation ===== */
/*
   Figma sequence (8 variants, ~8s loop):
   Frame 1: Phone icon + "Automate Calls!" button + cursor nearby
   Frame 3: Cursor moves to button, clicks
   Frame 6: Three scheduled call cards appear stacked
   Frame 8: "Automation Complete!" card replaces button
*/
.feature-animation--outbound {
  gap: 32px;
  background: url('../images/feature-bg-dots.png') center/contain no-repeat;
}

.feature-animation__phone-ring {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 127px;
  height: 127px;
  z-index: 1;
}

.feature-animation__ring {
  position: absolute;
  border-radius: 50%;
  animation: outboundRing 8s ease-out infinite;
  background: rgba(18, 144, 172, 0.08);
}

.feature-animation__ring--1 {
  width: 127px;
  height: 127px;
}

.feature-animation__ring--2 {
  width: 160px;
  height: 160px;
}

.feature-animation__ring--3 {
  width: 200px;
  height: 200px;
}

/* Rings expand in sequence when automation activates */
@keyframes outboundRing {
  0%,
  30% {
    transform: scale(0.8);
    opacity: 0;
  }
  40% {
    transform: scale(0.9);
    opacity: 0.8;
  }
  60% {
    transform: scale(1.3);
    opacity: 0.4;
  }
  80%,
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

.feature-animation__ring--1 {
  animation-delay: 0s;
}
.feature-animation__ring--2 {
  animation-delay: 0.15s;
}
.feature-animation__ring--3 {
  animation-delay: 0.3s;
}

.feature-animation__phone-icon {
  width: 127px;
  height: 127px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
  animation: outboundPhonePulse 8s ease-in-out infinite;
}

@keyframes outboundPhonePulse {
  0%,
  25% {
    transform: scale(1);
  }
  35%,
  70% {
    transform: scale(1.1);
  }
  80%,
  100% {
    transform: scale(1);
  }
}

.feature-animation__phone-icon svg {
  width: 48px;
  height: 48px;
}

.feature-animation__phone-icon svg path {
  fill: #1290ac;
}

.feature-animation__cta-btn {
  padding: 10px 32px;
  background: #1290ac;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  z-index: 1;
  animation: outboundButtonClick 8s ease-in-out infinite;
}

/* Button gets clicked at 25%, pulses success at 70% */
@keyframes outboundButtonClick {
  0%,
  20% {
    transform: scale(1);
    box-shadow: 0 4px 20px rgba(18, 144, 172, 0.2);
    background: #1290ac;
  }
  25% {
    transform: scale(0.95);
    box-shadow: 0 2px 10px rgba(18, 144, 172, 0.3);
    background: #0d7a8f;
  }
  30%,
  65% {
    transform: scale(1);
    box-shadow: 0 4px 20px rgba(18, 144, 172, 0.2);
    background: #1290ac;
  }
  70%,
  85% {
    transform: scale(1.05);
    box-shadow: 0 8px 30px rgba(46, 168, 46, 0.4);
    background: #2ea82e;
  }
  95%,
  100% {
    transform: scale(1);
    box-shadow: 0 4px 20px rgba(18, 144, 172, 0.2);
    background: #1290ac;
  }
}

/* Cursor animation (add ::after pseudo for cursor) */
.feature-animation--outbound::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2l12 11.5-5.5 1 3.5 7-2.5 1-3.5-7-4 3z'/%3E%3C/svg%3E")
    center/contain no-repeat;
  z-index: 10;
  animation: outboundCursor 8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes outboundCursor {
  0%,
  10% {
    opacity: 1;
    transform: translate(80px, 20px);
  }
  20%,
  25% {
    opacity: 1;
    transform: translate(0, 60px);
  }
  26% {
    opacity: 1;
    transform: translate(0, 62px) scale(0.9);
  }
  30%,
  60% {
    opacity: 0;
    transform: translate(0, 60px);
  }
  70%,
  100% {
    opacity: 0;
    transform: translate(80px, 20px);
  }
}

.feature-animation__cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(18, 144, 172, 0.45);
}

/* ===== Live Transfer Animation ===== */
/*
   Figma sequence (5 variants, ~6s loop):
   Static layout with animated flow lines pulsing
   People on left -> Center hub -> Advisors on right
   Lines pulse in sequence showing transfer flow
*/
.feature-animation--live-transfer {
  flex-direction: row;
  gap: 16px;
  padding: 24px 12px;
  background: url('../images/feature-bg-dots.png') center/contain no-repeat;
  align-items: center;
  justify-content: center;
}

.feature-animation__transfer-left,
.feature-animation__transfer-right {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  z-index: 1;
}

.feature-animation__person,
.feature-animation__advisor {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid #eeeff3;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  color: #110229;
}

.feature-animation__person svg,
.feature-animation__advisor svg {
  width: 24px;
  height: 24px;
}

/* Staggered rotations for people (matching Figma) */
.feature-animation__transfer-left .feature-animation__person:nth-child(1) {
  transform: rotate(-5deg);
  animation: liveTransferLeft 6s ease-in-out infinite;
  animation-delay: 0s;
}
.feature-animation__transfer-left .feature-animation__person:nth-child(2) {
  transform: rotate(6deg);
  animation: liveTransferLeft 6s ease-in-out infinite;
  animation-delay: 0.1s;
}
.feature-animation__transfer-left .feature-animation__person:nth-child(3) {
  animation: liveTransferLeft 6s ease-in-out infinite;
  animation-delay: 0.2s;
}
.feature-animation__transfer-left .feature-animation__person:nth-child(4) {
  transform: rotate(-6deg);
  animation: liveTransferLeft 6s ease-in-out infinite;
  animation-delay: 0.3s;
}
.feature-animation__transfer-left .feature-animation__person:nth-child(5) {
  transform: rotate(7deg);
  animation: liveTransferLeft 6s ease-in-out infinite;
  animation-delay: 0.4s;
}

/* Left side people highlight in sequence as they get transferred */
@keyframes liveTransferLeft {
  0%,
  20% {
    border-color: #eeeff3;
    box-shadow: none;
  }
  30%,
  40% {
    border-color: #1290ac;
    box-shadow: 0 0 12px rgba(18, 144, 172, 0.3);
  }
  50%,
  100% {
    border-color: #eeeff3;
    box-shadow: none;
  }
}

.feature-animation__advisor {
  border: 1px solid #eeeff3;
}

.feature-animation__transfer-right .feature-animation__advisor:nth-child(1) {
  animation: liveTransferRight 6s ease-in-out infinite;
  animation-delay: 0.6s;
}
.feature-animation__transfer-right .feature-animation__advisor:nth-child(2) {
  animation: liveTransferRight 6s ease-in-out infinite;
  animation-delay: 0.7s;
}
.feature-animation__transfer-right .feature-animation__advisor:nth-child(3) {
  animation: liveTransferRight 6s ease-in-out infinite;
  animation-delay: 0.8s;
}

/* Right side advisors receive the transfer */
@keyframes liveTransferRight {
  0%,
  40% {
    border-color: #eeeff3;
    box-shadow: none;
  }
  50%,
  70% {
    border-color: #2ea82e;
    box-shadow: 0 0 12px rgba(46, 168, 46, 0.3);
  }
  80%,
  100% {
    border-color: #eeeff3;
    box-shadow: none;
  }
}

.feature-animation__transfer-center {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 13px 16px;
  background: linear-gradient(
    to right,
    rgba(18, 144, 172, 0.1),
    rgba(75, 224, 83, 0.1)
  );
  border: 1px solid #1290ac;
  border-radius: 8px;
  position: relative;
  z-index: 2;
  animation: liveTransferCenter 6s ease-in-out infinite;
}

.feature-animation__transfer-center svg {
  width: 22px;
  height: 19px;
}

.feature-animation__transfer-center svg path[fill='#1290AC'],
.feature-animation__transfer-center svg path {
  fill: #1290ac;
}

.feature-animation__transfer-center svg path[stroke='#1290AC'] {
  stroke: #1290ac;
}

/* Center hub pulses during transfer */
@keyframes liveTransferCenter {
  0%,
  25% {
    box-shadow: 0 0 0 0 rgba(18, 144, 172, 0);
    transform: scale(1);
  }
  35%,
  65% {
    box-shadow: 0 0 25px 8px rgba(18, 144, 172, 0.3);
    transform: scale(1.05);
  }
  75%,
  100% {
    box-shadow: 0 0 0 0 rgba(18, 144, 172, 0);
    transform: scale(1);
  }
}

.feature-animation__transfer-center span {
  font-size: 14px;
  font-weight: 500;
  color: #1290ac;
  white-space: nowrap;
}

.feature-animation__transfer-lines {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

/* SVG-based connection lines matching Figma mask lines */
.feature-animation__transfer-lines {
  background-image: url('../images/live-transfer-lines.svg');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.6;
  animation: liveTransferFlow 6s ease-in-out infinite;
}

@keyframes liveTransferFlow {
  0%,
  25% {
    opacity: 0.3;
  }
  35%,
  65% {
    opacity: 1;
  }
  75%,
  100% {
    opacity: 0.3;
  }
}

/* ===== Warm Handoff Animation ===== */
/*
   Figma sequence (6 variants, ~7s loop):
   Frame 1: Two dashed waveform cards on left
   Frame 4: Cursor appears, hovers over a card
   Frame 6: Card transfers to right side with green border (handoff complete)
*/
.feature-animation--warm-handoff {
  padding: 24px;
  background: url('../images/feature-bg-dots.png') center/contain no-repeat;
}

.feature-animation__handoff-layout {
  display: flex;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  max-width: 450px;
  position: relative;
  z-index: 1;
  height: 100%;
}

.feature-animation__handoff-left {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 203px;
}

.feature-animation__handoff-right {
  width: 203px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: 0;
}

.feature-animation__handoff-label {
  font-size: 13px;
  font-weight: 400;
  color: rgba(42, 50, 51, 0.7);
  margin-bottom: 16px;
  text-align: center;
}

.feature-animation__handoff-right .feature-animation__handoff-label {
  color: #110229;
}

.feature-animation__handoff-divider {
  width: 1px;
  height: 391px;
  background: #c0e6e9;
  position: relative;
  margin: 0 12px;
  animation: handoffDividerPulse 7s ease-in-out infinite;
}

@keyframes handoffDividerPulse {
  0%,
  40% {
    background: #c0e6e9;
  }
  50%,
  70% {
    background: #1290ac;
    box-shadow: 0 0 10px rgba(18, 144, 172, 0.3);
  }
  80%,
  100% {
    background: #c0e6e9;
  }
}

.feature-animation__handoff-divider::before,
.feature-animation__handoff-divider::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 7px;
  height: 7px;
  background: #c0e6e9;
  border-radius: 50%;
  animation: handoffDotPulse 7s ease-in-out infinite;
}

@keyframes handoffDotPulse {
  0%,
  40% {
    background: #c0e6e9;
    transform: translateX(-50%) scale(1);
  }
  50%,
  70% {
    background: #1290ac;
    transform: translateX(-50%) scale(1.3);
  }
  80%,
  100% {
    background: #c0e6e9;
    transform: translateX(-50%) scale(1);
  }
}

.feature-animation__handoff-divider::before {
  top: 0;
}

.feature-animation__handoff-divider::after {
  bottom: 0;
}

/* Grid lines */
.feature-animation--warm-handoff::before {
  content: '';
  position: absolute;
  top: 20%;
  left: 5%;
  right: 5%;
  height: 1px;
  background: #c0e6e9;
}

.feature-animation__handoff-card {
  padding: 16px 20px;
  background: transparent;
  border: 1px solid #1290ac;
  border-radius: 8px;
  min-width: 140px;
}

.feature-animation__handoff-card--dashed {
  border-style: dashed;
}

/* First card (top) - gets selected and transferred */
.feature-animation__handoff-left .feature-animation__handoff-card:nth-child(2) {
  animation: handoffCardSelect 7s ease-in-out infinite;
}

/* Second card (bottom) - stays in place */
.feature-animation__handoff-left .feature-animation__handoff-card:nth-child(3) {
  animation: handoffCardStay 7s ease-in-out infinite;
}

@keyframes handoffCardSelect {
  0%,
  30% {
    border-color: #1290ac;
    border-style: dashed;
    transform: translateX(0);
    opacity: 1;
  }
  40%,
  45% {
    border-color: #1290ac;
    border-style: solid;
    transform: translateX(0) scale(1.02);
    box-shadow: 0 0 15px rgba(18, 144, 172, 0.3);
    opacity: 1;
  }
  55%,
  60% {
    border-color: #2ea82e;
    border-style: solid;
    transform: translateX(120px);
    box-shadow: 0 0 20px rgba(46, 168, 46, 0.4);
    opacity: 0;
  }
  70%,
  100% {
    border-color: #1290ac;
    border-style: dashed;
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes handoffCardStay {
  0%,
  100% {
    opacity: 0.8;
  }
  50% {
    opacity: 1;
  }
}

/* Card appears on right side after transfer */
.feature-animation__handoff-right::after {
  content: '';
  position: absolute;
  top: 60px;
  right: 20px;
  width: 140px;
  height: 90px;
  border: 2px solid #2ea82e;
  border-radius: 8px;
  background: rgba(46, 168, 46, 0.05);
  animation: handoffCardReceive 7s ease-in-out infinite;
}

@keyframes handoffCardReceive {
  0%,
  50% {
    opacity: 0;
    transform: translateX(-20px) scale(0.9);
  }
  60%,
  80% {
    opacity: 1;
    transform: translateX(0) scale(1);
    box-shadow: 0 0 20px rgba(46, 168, 46, 0.3);
  }
  90%,
  100% {
    opacity: 0;
    transform: translateX(0) scale(0.95);
  }
}

/* Cursor animation */
.feature-animation--warm-handoff::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2l12 11.5-5.5 1 3.5 7-2.5 1-3.5-7-4 3z'/%3E%3C/svg%3E")
    center/contain no-repeat;
  z-index: 10;
  animation: handoffCursor 7s ease-in-out infinite;
  pointer-events: none;
}

@keyframes handoffCursor {
  0%,
  20% {
    opacity: 0;
    top: 30%;
    left: 50%;
  }
  30%,
  35% {
    opacity: 1;
    top: 35%;
    left: 25%;
  }
  40% {
    opacity: 1;
    top: 36%;
    left: 25%;
    transform: scale(0.9);
  }
  45%,
  55% {
    opacity: 1;
    top: 35%;
    left: 45%;
  }
  60%,
  100% {
    opacity: 0;
    top: 35%;
    left: 60%;
  }
}

.feature-animation__waveform {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 60px;
}

.feature-animation__waveform span {
  width: 4px;
  background: rgba(18, 144, 172, 0.4);
  border-radius: 2px;
  animation: waveform 1.5s ease-in-out infinite;
}

.feature-animation__waveform span:nth-child(1) {
  height: 30%;
  animation-delay: 0s;
}
.feature-animation__waveform span:nth-child(2) {
  height: 50%;
  animation-delay: 0.08s;
}
.feature-animation__waveform span:nth-child(3) {
  height: 75%;
  animation-delay: 0.12s;
}
.feature-animation__waveform span:nth-child(4) {
  height: 40%;
  animation-delay: 0.16s;
}
.feature-animation__waveform span:nth-child(5) {
  height: 65%;
  animation-delay: 0.2s;
}
.feature-animation__waveform span:nth-child(6) {
  height: 35%;
  animation-delay: 0.24s;
}
.feature-animation__waveform span:nth-child(7) {
  height: 55%;
  animation-delay: 0.28s;
}

@keyframes waveform {
  0%,
  100% {
    transform: scaleY(0.5);
    opacity: 0.4;
  }
  50% {
    transform: scaleY(1);
    opacity: 1;
  }
}

/* ===== Lead Qualification Animation ===== */
/*
   Figma sequence (2 variants, ~6s loop):
   Frame 1: Gray bars + "Without VerbaCall" badge (spam leads)
   Frame 2: Blue/teal bars appear + "With VerbaCall" badge (qualified leads)
*/
.feature-animation--lead-qualification {
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: url('../images/feature-bg-dots.png') center/contain no-repeat;
}

.feature-animation__qualification-layout {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.feature-animation__chart-container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.feature-animation__chart-icon-top {
  position: relative;
  width: 50px;
  height: 50px;
  z-index: 2;
  margin-bottom: 16px;
  animation: qualifyIconPulse 6s ease-in-out infinite;
}

@keyframes qualifyIconPulse {
  0%,
  40% {
    transform: translateY(0) scale(1);
    filter: grayscale(100%);
  }
  50%,
  90% {
    transform: translateY(-5px) scale(1.1);
    filter: grayscale(0%);
  }
  100% {
    transform: translateY(0) scale(1);
    filter: grayscale(100%);
  }
}

.feature-animation__chart-icon-top svg {
  width: 100%;
  height: 100%;
}

/* Vertical dashed line from icon */
.feature-animation__chart-icon-top::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 100%;
  width: 1px;
  height: 280px;
  border-left: 1px dashed #1290ac;
  transform: translateX(-50%);
  animation: qualifyLinePulse 6s ease-in-out infinite;
}

@keyframes qualifyLinePulse {
  0%,
  40% {
    border-color: #94a3b8;
    opacity: 0.5;
  }
  50%,
  90% {
    border-color: #1290ac;
    opacity: 1;
  }
  100% {
    border-color: #94a3b8;
    opacity: 0.5;
  }
}

.feature-animation__chart {
  display: flex;
  align-items: flex-end;
  gap: 23px;
  height: 300px;
  position: relative;
  z-index: 1;
  margin-top: 20px;
}

.feature-animation__bar {
  width: 32px;
  border-radius: 4px 4px 0 0;
  transform-origin: bottom;
}

/* 4 bars matching Figma - heights from left: 199px, 225px, 164px, 298px */
.feature-animation__bar--1 {
  height: 199px;
  animation: qualifyBar 6s ease-in-out infinite;
  animation-delay: 0s;
}
.feature-animation__bar--2 {
  height: 225px;
  animation: qualifyBar 6s ease-in-out infinite;
  animation-delay: 0.1s;
}
.feature-animation__bar--3 {
  height: 164px;
  animation: qualifyBar 6s ease-in-out infinite;
  animation-delay: 0.2s;
}
.feature-animation__bar--4 {
  height: 298px;
  animation: qualifyBar 6s ease-in-out infinite;
  animation-delay: 0.3s;
}

@keyframes qualifyBar {
  0%,
  40% {
    background: #e0ebed;
    transform: scaleY(0.6);
    box-shadow: none;
  }
  50%,
  90% {
    background: linear-gradient(180deg, #5fc2e4 0%, #1290ac 100%);
    transform: scaleY(1);
    box-shadow: 0 4px 12px rgba(18, 144, 172, 0.3);
  }
  100% {
    background: #e0ebed;
    transform: scaleY(0.6);
    box-shadow: none;
  }
}

.feature-animation__qualification-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px;
  backdrop-filter: blur(4.15px);
  -webkit-backdrop-filter: blur(4.15px);
  background: rgba(255, 255, 255, 0.9);
  border-radius: 100px;
  box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
  position: absolute;
  bottom: 40px;
  left: 20px;
  z-index: 2;
  animation: qualifyBadge 6s ease-in-out infinite;
  white-space: nowrap;
}

@keyframes qualifyBadge {
  0%,
  40% {
    border: 1px solid #94a3b8;
    box-shadow: 0 3px 20px rgba(0, 0, 0, 0.05);
  }
  50%,
  90% {
    border: 2px solid #1290ac;
    box-shadow: 0 0 20px rgba(18, 144, 172, 0.3);
  }
  100% {
    border: 1px solid #94a3b8;
    box-shadow: 0 3px 20px rgba(0, 0, 0, 0.05);
  }
}

.feature-animation__qualification-badge svg {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border-radius: 50%;
  padding: 5px;
  animation: qualifyBadgeIcon 6s ease-in-out infinite;
}

@keyframes qualifyBadgeIcon {
  0%,
  40% {
    background: #e0ebed;
  }
  50%,
  90% {
    background: rgba(18, 144, 172, 0.15);
  }
  100% {
    background: #e0ebed;
  }
}

.feature-animation__qualification-badge div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.feature-animation__qualification-badge strong {
  font-size: 13px;
  font-weight: 600;
  animation: qualifyBadgeText 6s ease-in-out infinite;
}

@keyframes qualifyBadgeText {
  0%,
  40% {
    color: #64748b;
  }
  50%,
  90% {
    color: #1290ac;
  }
  100% {
    color: #64748b;
  }
}

.feature-animation__qualification-badge span {
  font-size: 11px;
  color: #94a3b8;
}

.feature-animation__chart-icon {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #2ea82e 0%, #259125 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(46, 168, 46, 0.35);
}

.feature-animation__chart-icon svg {
  width: 24px;
  height: 24px;
}

.feature-animation__chart-icon svg path[fill='#1290AC'] {
  fill: #fff;
}

.feature-animation__chart-icon svg path[stroke='#1290AC'] {
  stroke: rgba(255, 255, 255, 0.8);
}

/* Animation Restart on Slide Change */
.feature-card--active .feature-animation {
  animation: restartAnimations 0.1s;
}

/* Responsive Adjustments for Animations */
@media (max-width: 1200px) {
  .feature-animation__chat-bubble {
    padding: 12px 16px;
  }

  .feature-animation__spam-panel {
    min-width: 240px;
    padding: 20px;
  }

  .feature-animation--live-transfer {
    gap: 16px;
  }

  .feature-animation__person,
  .feature-animation__advisor {
    padding: 6px 10px;
    font-size: 10px;
  }
}

@media (max-width: 767px) {
  .feature-animation {
    padding: 16px;
  }

  .feature-animation__chat-bubble {
    padding: 10px 14px;
    max-width: 95%;
  }

  .feature-animation__spam-panel {
    min-width: 200px;
    padding: 16px;
  }

  .feature-animation__tag {
    padding: 8px 12px;
    font-size: 12px;
  }

  .feature-animation__hub {
    width: 60px;
    height: 60px;
  }

  .feature-animation__hub-icon {
    width: 30px;
    height: 30px;
  }

  .feature-animation--lead-nurturing .feature-animation__hub {
    width: 70px;
    height: 70px;
  }

  .feature-animation__lead svg {
    width: 28px;
    height: 28px;
  }

  .feature-animation__phone-ring {
    width: 90px;
    height: 90px;
  }

  .feature-animation__phone-icon {
    width: 48px;
    height: 48px;
  }

  .feature-animation__cta-btn {
    padding: 12px 24px;
    font-size: 14px;
  }

  .feature-animation--live-transfer {
    gap: 8px;
    padding: 16px 8px;
  }

  .feature-animation__transfer-center {
    padding: 14px 16px;
  }

  .feature-animation__handoff-card {
    padding: 16px 20px;
    min-width: 120px;
  }

  .feature-animation__chart {
    height: 100px;
    gap: 8px;
    padding: 12px;
  }

  .feature-animation__bar {
    width: 24px;
  }
}

/* ========================================
   BENEFITS SECTION
   ======================================== */

.benefits-section {
  position: relative;
  padding: var(--space-5xl) 0 var(--space-3xl) 0;
  background-color: var(--color-white);
  /* Note: overflow: hidden breaks sticky positioning, removed */
}

.benefits-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--side-padding, 24px);
  text-align: center;
  position: relative;
  box-sizing: border-box;
  z-index: 50;
  box-sizing: border-box;
}

.benefits-header-inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 24px;
  align-self: stretch;
}

/* Benefits Header Decorative Frame (from Figma) */
.benefits-header-frame {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 303px;
  pointer-events: none;
  overflow: hidden;
  z-index: 60; /* Above the header content */
}

.benefits-frame__left,
.benefits-frame__right {
  position: absolute;
  top: 0;
  height: 303px;
}

.benefits-frame__left {
  left: 0;
}

.benefits-frame__right {
  right: 0;
  transform: scaleX(-1);
}

.benefits-frame__border {
  position: absolute;
  left: 0;
  border: 1px solid #ebedf1;
  border-left: none;
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
}

/* Border 1: 136x303 at top:0 */
.benefits-frame__border--1 {
  width: 136px;
  height: 303px;
  top: 0;
}

/* Border 2: 178x219 at top:43 */
.benefits-frame__border--2 {
  width: 178px;
  height: 219px;
  top: 43px;
}

/* Border 3: 223x139 at top:82 */
.benefits-frame__border--3 {
  width: 223px;
  height: 139px;
  top: 82px;
}

/* Animated blue accent line - positioned relative to title */
.benefits-title {
  position: relative;
}

.benefits-title::after {
  content: '';
  position: absolute;
  bottom: 45%;
  left: 0;
  width: 120px;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    #5fc2e4,
    #5fc2e4,
    transparent
  );
  box-shadow: none;
  animation: benefitsLineSweep 8s ease-in-out infinite;
  pointer-events: none;
  z-index: 100;
}

@keyframes benefitsLineSweep {
  0% {
    transform: translateX(-100vw);
    opacity: 0;
  }
  5% {
    opacity: 1;
  }
  95% {
    opacity: 1;
  }
  100% {
    transform: translateX(100vw);
    opacity: 0;
  }
}

/* Hide frame on smaller screens */
@media (max-width: 1024px) {
  .benefits-header-frame {
    display: none;
  }
}

/* Grid pattern on both sides of benefits header */
.benefits-section::before,
.benefits-section::after {
  content: '';
  position: absolute;
  top: 0;
  width: 200px;
  height: 400px;
  background-image:
    repeating-linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.03) 0px,
      rgba(0, 0, 0, 0.03) 1px,
      transparent 1px,
      transparent 24px
    ),
    repeating-linear-gradient(
      0deg,
      rgba(0, 0, 0, 0.03) 0px,
      rgba(0, 0, 0, 0.03) 1px,
      transparent 1px,
      transparent 24px
    );
  pointer-events: none;
  z-index: 1;
}

.benefits-section::before {
  left: 0;
}

.benefits-section::after {
  right: 0;
}

.benefits-section {
  position: relative;
}

.benefits-title {
  width: 550px;
  max-width: 100%;
  font-family: 'Geist', var(--font-family);
  font-size: 52px;
  font-weight: 400;
  line-height: 110%;
  text-align: center;
  color: #110229;
  word-wrap: break-word;
  margin: 0;
  letter-spacing: 0;
}

.benefits-subtitle {
  width: 598px;
  max-width: 100%;
  font-family: 'Inter', var(--font-family);
  font-size: 17px;
  font-weight: 500;
  line-height: 120%;
  text-align: center;
  color: #000318;
  word-wrap: break-word;
  margin: 0;
  opacity: 0;
}

/* Responsive padding for benefits header */
@media (max-width: 1200px) {
  .benefits-header {
    padding-left: 120px;
    padding-right: 120px;
  }
}

@media (max-width: 768px) {
  .benefits-header {
    padding-left: 24px;
    padding-right: 24px;
  }

  .benefits-title {
    font-size: 30px;
    line-height: 36px;
  }

  .benefits-subtitle {
    font-size: 15px;
    line-height: 18px;
  }
}

@media (max-width: 767px) {
  .benefits-title::after {
    display: none;
  }
}

/* Scroll container for parallax effect */
.benefits-scroll {
  position: relative;
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

.benefits-cards {
  display: block;
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  position: relative;
}

/* Wrapper provides the scroll height for each card */
.benefit-card-wrapper {
  height: 100vh;
  min-height: 600px;
  width: 100%;
  position: relative;
}

@media (prefers-reduced-motion: no-preference) {
  .benefit-card-wrapper:last-child {
    height: clamp(520px, 65vh, 620px);
    min-height: 520px;
  }
}

/* Progressive z-index - LATER cards stack ON TOP of earlier ones */
.benefit-card-wrapper:nth-child(1) .benefit-card {
  z-index: 10;
}
.benefit-card-wrapper:nth-child(2) .benefit-card {
  z-index: 20;
}
.benefit-card-wrapper:nth-child(3) .benefit-card {
  z-index: 30;
}
.benefit-card-wrapper:nth-child(4) .benefit-card {
  z-index: 40;
}

/* The card - starts in normal flow */
.benefit-card {
  position: relative;
  background: var(--color-white);
  border-radius: 32px;
  /* Enhanced drop shadow matching Figma */
  --benefit-card-shadow:
    0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 10px 25px -5px rgba(0, 0, 0, 0.1),
    0px 25px 50px -12px rgba(0, 0, 0, 0.15);
  --benefit-card-shadow-hover: 0 20px 40px rgba(0, 0, 0, 0.12);
  box-shadow: var(--benefit-card-shadow);
  transition: box-shadow 0.3s ease;
  width: 100%;
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  border: 1px solid rgba(0, 0, 0, 0.03);
  box-sizing: border-box;
}

/* Card becomes fixed when in "stuck" state - stays fixed to stack behind newer cards */
.benefit-card.is-stuck {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  width: 1200px;
  max-width: calc(100% - 48px); /* Don't exceed viewport minus padding */
  box-shadow: none;
}

.benefit-card.is-stuck.is-front {
  box-shadow: var(--benefit-card-shadow);
}

.benefit-card:hover {
  box-shadow: var(--benefit-card-shadow-hover);
}

.benefit-card.is-stuck.is-front:hover {
  box-shadow: var(--benefit-card-shadow-hover);
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .benefit-card-wrapper {
    height: auto;
    margin-bottom: var(--space-3xl);
  }

  .benefit-card,
  .benefit-card.is-stuck {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: auto !important;
  }
}

@media (max-width: 1023px) {
  .benefits-scroll {
    padding: 0 24px;
  }

  .benefit-card-wrapper {
    height: 90vh;
    min-height: 550px;
  }

  .benefit-card.is-stuck {
    top: 50%;
    transform: translateY(-50%);
    width: calc(100% - 48px);
    max-width: calc(100% - 48px);
  }
}

@media (max-width: 767px) {
  .benefits-section {
    padding: var(--space-4xl) 0 var(--space-xl) 0;
  }

  .benefits-scroll {
    padding: 0 16px;
  }

  .benefit-card-wrapper {
    height: 80vh;
    min-height: 450px;
  }

  .benefit-card-wrapper:last-child {
    height: auto;
    min-height: auto;
    padding-bottom: 24px;
  }

  .benefit-card {
    width: 100%;
    border-radius: 24px;
  }

  .benefit-card.is-stuck {
    top: 50%;
    transform: translateY(-50%);
    width: calc(100% - 32px);
    max-width: calc(100% - 32px);
    border-radius: 24px;
  }

  .benefit-card-wrapper:last-child .benefit-card,
  .benefit-card-wrapper:last-child .benefit-card.is-stuck {
    position: relative !important;
    top: auto !important;
    transform: none !important;
  }
}

/* ========================================
   TESTIMONIAL SECTION
   ======================================== */

.testimonial-section {
  padding: 96px 24px;
  background-color: #fbfbfb;
  overflow: hidden;
}

.testimonial-container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--side-padding, 24px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  align-items: center;
  gap: 48px;
}

.testimonial-header {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 24px;
}

.testimonial-title {
  width: 654px;
  max-width: 100%;
  text-align: center;
  color: #110229;
  font-family: 'Geist', var(--font-family);
  font-size: 52px;
  font-weight: 400;
  line-height: 110%;
  margin: 0;
  letter-spacing: 0;
}

.testimonial-subtitle {
  width: 612px;
  max-width: 100%;
  text-align: center;
  color: rgba(42, 50, 51, 0.7);
  font-family: 'Geist', var(--font-family);
  font-size: 16px;
  font-weight: 400;
  line-height: 20.8px;
  margin: 0;
}

/* Testimonial Carousel */
.testimonial-carousel {
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  overflow: hidden;
}

.testimonial-carousel__track {
  display: flex;
  gap: 48px;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  align-items: stretch;
  width: max-content;
}

/* Testimonial Card - 934px from Figma */
.testimonial-card {
  flex: 0 0 auto;
  width: 934px;
  min-height: 340px;
  background: white;
  border-radius: 12px;
  border: 1px solid #e9e9e9;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  overflow: hidden;
}

/* Card Content (Left Side) */
.testimonial-card__content {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;
  padding: 64px 32px;
}

.testimonial-card__logo {
  height: 53px;
  display: flex;
  align-items: center;
}

.testimonial-card__logo img {
  height: auto;
  max-height: 53px;
  width: auto;
  max-width: 151px;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.testimonial-card__quote {
  color: #110229;
  font-family: 'Geist', var(--font-family);
  font-size: 28px;
  font-weight: 400;
  line-height: 33.6px;
  margin: 0;
  font-style: normal;
}

.testimonial-card__author {
  color: rgba(42, 50, 51, 0.7);
  font-family: 'Geist', var(--font-family);
  font-size: 16px;
  font-weight: 400;
  line-height: 20.8px;
  font-style: normal;
}

/* Card Image (Right Side) */
.testimonial-card__image {
  flex: 1 1 0;
  align-self: stretch;
  background: #f7f7f7;
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.testimonial-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Carousel Controls */
.testimonial-carousel__controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  align-self: center;
}

.testimonial-carousel__btn {
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 100px;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}

.testimonial-carousel__btn--prev {
  background: rgba(0, 3, 24, 0.05);
  color: #000318;
}

.testimonial-carousel__btn--next {
  background: #000318;
  color: white;
}

.testimonial-carousel__btn:hover {
  transform: scale(1.05);
}

.testimonial-carousel__btn--prev:hover {
  background: rgba(0, 3, 24, 0.1);
}

.testimonial-carousel__btn--next:hover {
  background: #1a1d35;
}

.testimonial-carousel__btn svg {
  width: 16px;
  height: 14px;
}

/* Testimonial CTA */
.testimonial-cta {
  display: flex;
  justify-content: center;
}

.testimonial-cta .btn-dark {
  padding: 16px 24px;
  background: black;
  border-radius: 12px;
  color: white;
  font-family: 'Geist', var(--font-family);
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.2s ease;
}

.testimonial-cta .btn-dark:hover {
  background: #1a1a1a;
}

/* Responsive */
@media (max-width: 1400px) {
  .testimonial-section {
    padding: 80px 60px;
  }

  .testimonial-card {
    width: 800px;
  }

  .testimonial-card__quote {
    font-size: 24px;
    line-height: 30px;
  }

  .testimonial-carousel__track {
    gap: 32px;
  }
}

@media (max-width: 1024px) {
  .testimonial-section {
    padding: 64px 40px;
  }

  .testimonial-title {
    font-size: 30px;
    line-height: 36px;
  }

  .testimonial-card {
    width: 700px;
    min-height: 300px;
  }

  .testimonial-card__content {
    padding: 48px 24px;
  }

  .testimonial-card__quote {
    font-size: 22px;
    line-height: 28px;
  }

  .testimonial-carousel__track {
    gap: 24px;
  }
}

@media (max-width: 900px) {
  .testimonial-card {
    width: 600px;
    min-height: 280px;
  }

  .testimonial-card__content {
    padding: 40px 24px;
  }

  .testimonial-card__quote {
    font-size: 20px;
    line-height: 26px;
  }
}

@media (max-width: 767px) {
  .testimonial-section {
    padding: 48px 20px;
  }

  .testimonial-container {
    gap: 32px;
  }

  .testimonial-title {
    font-size: 26px;
    line-height: 32px;
    width: 100%;
  }

  .testimonial-subtitle {
    width: 100%;
  }

  .testimonial-card {
    width: calc(100vw - 40px);
    max-width: 500px;
    flex-direction: column;
  }

  .testimonial-card__content {
    padding: 32px 24px;
    order: 2;
  }

  .testimonial-card__image {
    width: 100%;
    min-height: 200px;
    max-height: 250px;
    border-radius: 12px 12px 0 0;
    border-top-right-radius: 12px;
    border-bottom-right-radius: 0;
    order: 1;
  }

  .testimonial-card__quote {
    font-size: 18px;
    line-height: 24px;
  }

  .testimonial-carousel__track {
    gap: 16px;
  }
}

/* ========================================
   PARTNERS SECTION
   ======================================== */

.partners-section {
  padding: var(--space-4xl) 0 var(--space-2xl);
  background-color: var(--color-white);
}

.partners-container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--side-padding);
  text-align: center;
}

.partners-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  margin-bottom: var(--space-3xl);
}

.partners-title {
  width: 654px;
  max-width: 100%;
  font-family: 'Geist', var(--font-family);
  font-size: 52px;
  font-weight: 400;
  line-height: 110%;
  text-align: center;
  color: #110229;
  margin: 0;
  letter-spacing: 0;
}

.partners-subtitle {
  font-family: 'Geist', var(--font-family);
  font-size: 16px;
  font-weight: 400;
  line-height: 20.8px;
  text-align: center;
  color: rgba(42, 50, 51, 0.7);
  margin: 0;
}

.partners-carousel {
  overflow: hidden;
  position: relative;
  width: 100%;
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 10%,
    black 90%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 10%,
    black 90%,
    transparent 100%
  );
}

.partners-track {
  display: flex;
  gap: 80px;
  animation: scroll-logos 40s linear infinite;
  width: max-content;
}

.partner-logo-wrapper {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.partner-logo {
  opacity: 1;
  max-width: 120px;
  height: 80px;
  object-fit: contain;
}

@keyframes scroll-logos {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Pause animation on hover */
.partners-carousel:hover .partners-track {
  animation-play-state: paused;
}

/* Partners Grid Layout */
/* Infinite Carousel Container */
.partners-carousel {
  width: 100%;
  overflow-x: hidden;
  overflow-y: visible;
  margin: 0 auto var(--space-xl);
  padding: 20px 0;
  position: relative;
}

/* Fade edges */
.partners-carousel::before,
.partners-carousel::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}

.partners-carousel::before {
  left: 0;
  background: linear-gradient(to right, #fff 0%, transparent 100%);
}

.partners-carousel::after {
  right: 0;
  background: linear-gradient(to left, #fff 0%, transparent 100%);
}

.partners-grid {
  display: flex;
  align-items: center;
  gap: 24px;
  width: max-content;
  animation: scroll-left 30s linear infinite;
}

.partners-grid:hover {
  animation-play-state: paused;
}

@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.partner-card {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 150px;
  background: transparent;
  border: none;
  border-radius: 24px;
  padding: 0;
  flex-shrink: 0;
  overflow: hidden;
}

.partner-card:hover {
  /* No hover effect needed */
}

.partner-card .partner-logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-base) var(--ease-in-out);
}

.partner-card:hover .partner-logo {
  transform: scale(1.05);
}

.partners-btn {
  display: none;
}

@media (max-width: 767px) {
  .partners-title {
    font-size: 26px;
    line-height: 32px;
  }

  .partners-subtitle {
    font-size: 14px;
    line-height: 18px;
  }

  .partners-track {
    gap: 40px;
  }

  .partner-logo {
    max-width: 120px;
    height: 48px;
  }

  .partners-grid {
    gap: 12px;
    animation-duration: 20s;
  }

  .partner-card {
    width: 120px;
    height: 120px;
    padding: 16px;
  }

  .partners-carousel::before,
  .partners-carousel::after {
    width: 50px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .partners-track,
  .partners-grid {
    animation: none !important;
  }
}

/* ========================================
   FAQ SECTION
   ======================================== */

.faq-section {
  padding: var(--space-5xl) 0;
  background-color: var(--color-white);
}

.faq-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 var(--side-padding, 24px);
  box-sizing: border-box;
}

.faq-header {
  text-align: center;
  margin-bottom: var(--space-4xl);
}

.faq-title {
  font-size: 52px;
  line-height: 110%;
  color: var(--color-dark);
  margin-bottom: var(--space-base);
  font-weight: 400;
  font-family: 'Geist', var(--font-family);
  text-align: center;
  letter-spacing: 0;
}

.faq-subtitle {
  font-size: 16px;
  color: var(--color-text-muted);
  margin: 0;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.faq-item {
  border-bottom: 1px solid var(--color-border);
}

.faq-item:first-child {
  border-top: 1px solid var(--color-border);
}

.faq-question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 18px;
  font-weight: var(--font-weight-medium);
  color: var(--color-dark);
  transition: color 0.2s ease;
}

.faq-question:hover {
  color: var(--color-primary);
}

.faq-question span {
  flex: 1;
  padding-right: 16px;
}

.faq-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  color: var(--color-text-muted);
  transition: transform 0.3s ease;
}

.faq-item.is-open .faq-icon {
  transform: rotate(180deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.3s ease,
    padding 0.3s ease;
}

.faq-item.is-open .faq-answer {
  max-height: 500px;
  padding-bottom: 24px;
}

.faq-answer p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text-muted);
  margin: 0;
}

.faq-cta {
  text-align: center;
  margin-top: var(--space-4xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
}

.faq-cta p {
  font-size: 16px;
  color: var(--color-text-muted);
  margin: 0;
}

@media (max-width: 767px) {
  .faq-title {
    font-size: 26px;
  }

  .faq-question {
    font-size: 16px;
    padding: 20px 0;
  }

  .faq-answer p {
    font-size: 14px;
  }
}

/* ========================================
   CTA SECTION
   ======================================== */

.cta-section {
  padding: 48px 24px;
  background: var(--color-white);
}

.cta-container {
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  background: #000000;
  border-radius: 32px;
  padding: 0 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 24px;
  height: 423px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* Decorative glow effect - large blurred circle */
.cta-glow {
  position: absolute;
  width: 786px;
  height: 786px;
  left: -504px;
  top: -580px;
  background: #ffffff;
  opacity: 0.6;
  filter: blur(250px);
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
}

/* Decorative vector shape - from Figma: left: 723px, top: 75px */
.cta-vector {
  position: absolute;
  width: 612px;
  height: 532px;
  left: 723px;
  top: 75px;
  opacity: 0.1;
  pointer-events: none;
  z-index: 2;
}

.cta-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 24px;
  width: 479px;
  max-width: 100%;
  z-index: 3;
}

.cta-title {
  font-family: 'Geist', var(--font-family);
  font-size: 53px;
  font-weight: 400;
  line-height: 58.3px;
  color: #ffffff;
  margin: 0;
}

.cta-description {
  font-family: 'Geist', var(--font-family);
  font-size: 16px;
  font-weight: 400;
  line-height: 20.8px;
  color: #ffffff;
  margin: 0;
}

.btn-cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 16px 24px;
  gap: 10px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: none;
  font-family: 'Geist', var(--font-family);
  font-size: 16px;
  font-weight: 400;
  color: #000318;
  text-decoration: none;
  transition: all 0.2s ease;
  position: relative;
  z-index: 10;
}

.btn-cta:hover {
  border-color: #9ca3af;
  transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 1024px) {
  .cta-section {
    padding: 60px 40px;
  }

  .cta-container {
    padding: 0 40px;
    height: 380px;
  }

  .cta-title {
    font-size: 42px;
    line-height: 48px;
  }

  .cta-vector {
    width: 400px;
    height: 350px;
    right: -50px;
  }
}

@media (max-width: 1024px) {
  .cta-vector {
    left: auto;
    right: -100px;
    width: 450px;
    height: auto;
  }
}

@media (max-width: 767px) {
  .cta-section {
    padding: 40px 20px;
  }

  .cta-container {
    padding: 40px 24px;
    height: auto;
    min-height: 320px;
    align-items: center;
  }

  .cta-content {
    width: 100%;
    align-items: center;
    text-align: center;
  }

  .cta-title {
    font-size: 32px;
    line-height: 36px;
  }

  .cta-glow {
    width: 400px;
    height: 400px;
    left: -200px;
    top: -200px;
    filter: blur(150px);
  }

  .cta-vector {
    width: 250px;
    right: -80px;
    top: 50px;
    opacity: 0.08;
  }

  .btn-cta {
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
  }
}

/* ========================================
   FOOTER
   ======================================== */

.site-footer {
  background-color: #eefcff;
  color: var(--color-dark);
  --footer-outer-gutter: clamp(16px, 2.5vw, 40px);
  padding: 96px 80px 120px;
  padding-left: max(80px, var(--safe-left, 0px));
  padding-right: max(80px, var(--safe-right, 0px));
  border-radius: 30px;
  position: relative;
  overflow: hidden;
  width: calc(100% - (var(--footer-outer-gutter) + var(--footer-outer-gutter)));
  max-width: var(--max-width, 1440px);
  margin: 0 auto 24px auto;
  box-sizing: border-box;
}

.footer-ellipse {
  position: absolute;
  width: 786px;
  height: 786px;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(250px);
}

.footer-ellipse--top {
  top: -495px;
  left: 797px;
  background: #8ac8d6;
  z-index: 0;
}

.footer-ellipse--bottom {
  top: 307px;
  left: -273px;
  background: #8ad6cd;
  z-index: 1;
}

.footer-content {
  width: 100%;
  max-width: var(--container-width, 1200px);
  margin: 0 auto;
  padding: 0 max(var(--side-padding, 24px), var(--safe-left, 0px));
  padding-right: max(var(--side-padding, 24px), var(--safe-right, 0px));
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

.footer-grid {
  display: flex;
  gap: 197px;
  align-items: flex-start;
}

.footer-brand {
  width: 295px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.footer-logo img {
  height: 33.627px;
  width: auto;
  max-width: 194px;
}

.footer-copyright {
  font-family:
    'Geist',
    'Inter',
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    system-ui,
    sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 18px;
  color: rgba(2, 35, 41, 0.7);
  margin: 0;
}

.footer-description {
  font-family:
    'Geist',
    'Inter',
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    system-ui,
    sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 18px;
  color: rgba(2, 35, 41, 0.7);
  margin: 0;
}

.footer-social {
  display: flex;
  gap: 12px;
}

.footer-social a {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.7;
  transition: opacity var(--duration-base) var(--ease-in-out);
}

.footer-social a:hover {
  opacity: 1;
}

.footer-social img,
.footer-social svg {
  width: 20px;
  height: 20px;
  display: block;
}

.footer-grants {
  margin-top: 8px;
}

.elevenlabs-grants-logo {
  width: 180px;
  height: auto;
  opacity: 0.7;
  transition: opacity var(--duration-base) var(--ease-in-out);
}

.elevenlabs-grants-logo:hover {
  opacity: 1;
}

.footer-links-wrapper {
  display: flex;
  flex: 1;
  gap: 24px;
}

.footer-section {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.footer-section h3 {
  font-family: 'IBM Plex Mono', 'Courier New', Courier, monospace;
  font-size: 14px;
  font-weight: 500;
  line-height: 120%;
  text-transform: uppercase;
  color: #000000;
  margin: 0;
  font-style: normal;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-links li {
  margin: 0;
}

.footer-links a {
  font-family:
    'Geist',
    'Inter',
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    system-ui,
    sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 120%;
  color: rgba(2, 35, 41, 0.6);
  text-decoration: none;
  transition: color var(--duration-base) var(--ease-in-out);
  white-space: pre-wrap;
}

.footer-links a:hover {
  color: var(--color-primary);
}

@media (max-width: 1023px) {
  .site-footer {
    padding: 80px 60px 100px;
    padding-left: max(60px, var(--safe-left, 0px));
    padding-right: max(60px, var(--safe-right, 0px));
  }

  .footer-grid {
    flex-direction: column;
    gap: 60px;
  }

  .footer-brand {
    width: 100%;
  }

  .footer-links-wrapper {
    flex-wrap: wrap;
  }
}

@media (max-width: 639px) {
  .site-footer {
    padding: 40px 24px 48px;
    padding-left: max(24px, var(--safe-left, 0px));
    padding-right: max(24px, var(--safe-right, 0px));
    border-radius: 20px;
    width: calc(100% - 32px);
  }

  .footer-grid {
    gap: 28px;
  }

  .footer-brand {
    gap: 14px;
    text-align: center;
    align-items: center;
  }

  .footer-description {
    font-size: 13px;
    line-height: 1.5;
    max-width: 300px;
  }

  .footer-social {
    justify-content: center;
  }

  .footer-grants {
    display: flex;
    justify-content: center;
  }

  .footer-links-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
    width: 100%;
  }

  /* Reorder sections for better balance on mobile */
  /* Company (3 items) pairs with Legal (4 items) */
  /* Industries (7 items) pairs with Resources (3 items) */
  .footer-section:nth-child(1) {
    order: 1;
  } /* Company - top left */
  .footer-section:nth-child(2) {
    order: 3;
  } /* Industries - bottom left */
  .footer-section:nth-child(3) {
    order: 2;
  } /* Legal - top right */
  .footer-section:nth-child(4) {
    order: 4;
  } /* Resources - bottom right */

  .footer-section {
    gap: 10px;
  }

  .footer-section h3 {
    font-size: 11px;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
  }

  .footer-links {
    gap: 8px;
  }

  .footer-links a {
    font-size: 13px;
  }

  .footer-ellipse {
    width: 400px;
    height: 400px;
  }

  .footer-ellipse--top {
    top: -200px;
    left: 50%;
    transform: translateX(-50%);
  }

  .footer-ellipse--bottom {
    top: auto;
    bottom: -200px;
    left: 50%;
    transform: translateX(-50%);
  }
}
