/* falcon.com home page: the fourth "ways in" figure, a grid of the channels people can use to
   reach an agent. Each card has an icon, the channel's name, one sentence and a few facts. Classes
   only. The still grid is the base style; when the visitor allows motion, cards rise in as they
   scroll into view (where the browser supports scroll-driven animation) and each icon pulses in
   turn. */

.ch-lede {
  margin: -0.5rem 0 1.5rem;
  color: var(--text-muted);
}
.ch-grid {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 640px) {
  .ch-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px) {
  .ch-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ch-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
  padding: 1.25rem;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: var(--surface);
}
.ch-ico {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 0.25rem;
  border: 1px solid var(--red-200);
  border-radius: 50%;
  background: var(--red-50);
}
.ch-ico svg {
  width: 1.375rem;
  height: 1.375rem;
  fill: none;
  stroke: var(--red-600);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ch-soon .ch-ico {
  border-color: var(--line-strong);
  background: var(--surface-high);
}
.ch-soon .ch-ico svg {
  stroke: var(--warm-600);
}
.ch-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 600;
}
.ch-name .tag {
  font-size: 0.75rem;
}
.ch-what {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.9375rem;
}
.ch-facts {
  display: grid;
  gap: 0.25rem;
  margin: auto 0 0;
  padding: 0.5rem 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
  font-size: 0.875rem;
}
.ch-facts li {
  position: relative;
  padding-left: 1rem;
}
.ch-facts li::before {
  position: absolute;
  top: 0.55em;
  left: 0.125rem;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--accent-line);
  content: "";
}
.ch-soon .ch-facts li::before {
  background: var(--line-strong);
}

@media (prefers-reduced-motion: no-preference) {
  /* Each icon pulses in turn, one card every 1.5 seconds. */
  .ch-ico {
    animation: ch-pulse 13.5s ease-in-out infinite both;
  }
  .ch-card:nth-child(2) .ch-ico {
    animation-delay: 1.5s;
  }
  .ch-card:nth-child(3) .ch-ico {
    animation-delay: 3s;
  }
  .ch-card:nth-child(4) .ch-ico {
    animation-delay: 4.5s;
  }
  .ch-card:nth-child(5) .ch-ico {
    animation-delay: 6s;
  }
  .ch-card:nth-child(6) .ch-ico {
    animation-delay: 7.5s;
  }
  .ch-card:nth-child(7) .ch-ico {
    animation-delay: 9s;
  }
  .ch-card:nth-child(8) .ch-ico {
    animation-delay: 10.5s;
  }
  .ch-card:nth-child(9) .ch-ico {
    animation-delay: 12s;
  }

  /* Cards rise in as they enter the view, a column at a time. */
  @supports (animation-timeline: view()) {
    .ch-card {
      animation: ch-in linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 70%;
    }
    .ch-card:nth-child(3n + 2) {
      animation-range: entry 10% entry 80%;
    }
    .ch-card:nth-child(3n) {
      animation-range: entry 20% entry 90%;
    }
  }
}

@keyframes ch-pulse {
  0%,
  12%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 transparent;
  }
  5% {
    transform: scale(1.1);
    border-color: var(--red-400);
    box-shadow: 0 0 0 5px var(--red-100);
  }
}
@keyframes ch-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* The second grid, for your systems, sits under the customer channels. */
.ch-sys-title {
  margin-top: 56px;
}
