/* AI Solutions — service cards & icon animations */
.kai-services-intro h2 {
  font-family: Manrope, sans-serif;
  color: #061153;
  margin-bottom: 14px;
}
.kai-services-intro p {
  color: #616161;
  line-height: 1.8;
  margin: 0;
  max-width: 640px;
}

.kai-service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 48px;
}

@media (max-width: 991px) {
  .kai-service-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .kai-service-grid { grid-template-columns: 1fr; }
}

.kai-service-card {
  position: relative;
  background: #fff;
  border-radius: 20px;
  padding: 28px 26px 30px;
  box-shadow: 0 12px 40px rgba(6, 17, 83, 0.06);
  border: 1px solid rgba(16, 83, 243, 0.06);
  overflow: hidden;
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  height: 100%;
}

.kai-service-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, #1053F3, #4F8CFF, #1053F3);
  background-size: 200% 100%;
  opacity: 0;
  transition: opacity 0.35s ease;
  animation: kai-shimmer 2.4s linear infinite;
}

.kai-service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 50px rgba(16, 83, 243, 0.14);
  border-color: rgba(16, 83, 243, 0.18);
}

.kai-service-card:hover::before { opacity: 1; }

.kai-service-icon {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  margin-bottom: 20px;
  background: linear-gradient(145deg, #EEF3FF 0%, #E4ECFF 100%);
  position: relative;
}

.kai-service-icon svg {
  width: 40px;
  height: 40px;
  overflow: visible;
}

.kai-service-card h3 {
  font-family: Manrope, sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #061153;
  margin: 0 0 12px;
  line-height: 1.35;
}

.kai-service-card p {
  color: #616161;
  margin: 0;
  line-height: 1.75;
  font-size: 0.95rem;
}

/* Shared motion */
@keyframes kai-shimmer {
  0% { background-position: 0% 0; }
  100% { background-position: 200% 0; }
}
@keyframes kai-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes kai-pulse {
  0%, 100% { opacity: 0.35; transform: scale(0.85); }
  50% { opacity: 0.9; transform: scale(1.15); }
}
@keyframes kai-spin-slow {
  to { transform: rotate(360deg); }
}
@keyframes kai-dash {
  to { stroke-dashoffset: 0; }
}
@keyframes kai-blink {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 1; }
}
@keyframes kai-bounce-dot {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes kai-scan {
  0% { transform: translateY(-8px); opacity: 0; }
  30% { opacity: 1; }
  100% { transform: translateY(14px); opacity: 0; }
}
@keyframes kai-flow {
  0% { stroke-dashoffset: 24; }
  100% { stroke-dashoffset: 0; }
}

.kai-service-card:hover .kai-icon-float { animation: kai-float 1.6s ease-in-out infinite; }
.kai-orb { animation: kai-pulse 2.2s ease-in-out infinite; }
.kai-gear { transform-origin: 20px 20px; animation: kai-spin-slow 8s linear infinite; }
.kai-path-draw { stroke-dasharray: 40; stroke-dashoffset: 40; animation: kai-dash 1.8s ease forwards infinite alternate; }
.kai-dot-1 { animation: kai-bounce-dot 1.2s ease-in-out infinite; }
.kai-dot-2 { animation: kai-bounce-dot 1.2s ease-in-out 0.15s infinite; }
.kai-dot-3 { animation: kai-bounce-dot 1.2s ease-in-out 0.3s infinite; }
.kai-scan-line { animation: kai-scan 2s ease-in-out infinite; }
.kai-flow-line { stroke-dasharray: 6 6; animation: kai-flow 1.2s linear infinite; }
.kai-blink { animation: kai-blink 1.6s ease-in-out infinite; }

.kai-services-cta { margin-top: 48px; }

/* Equal-height service cards: pin Learn More to bottom regardless of title/tag wrapping */
.service-box-eight{height:100%;display:flex;flex-direction:column;}
.service-box-eight .tag-list{margin-top:auto;}

/* Equal-height industry boxes on the home page */
.industries-box{height:100%;}
a:has(> .industries-box){display:block;height:100%;}


/* Hero rating pill: small nudge right at mid-desktop widths so it clears the counter card */
@media (min-width: 1200px) and (max-width: 1499px){
  .tv-hero-section.style-8 .info-box{right:40px;}
}
@media (min-width: 992px) and (max-width: 1199px){
  /* match the theme's own 992-1024 treatment: raise the pill clear of the counter card */
  .tv-hero-section.style-8 .info-box{bottom:330px;}
}

/* Case-study tag rows: keep label and pills on single lines (mobile) */
.tv-project-item .project-tags > span{white-space:nowrap;}
.tv-project-item .project-tags .tag{white-space:nowrap;}
