/* ═══════════════════════════════════════════════
   MUTEKI — Services Section
   ═══════════════════════════════════════════════ */

/* SECTION SHELL */
#services {
  width: 100vw !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

.services {
  background: var(--bg, #fff);
  padding: 120px 0 100px;
  position: relative;
  overflow: hidden;
}

.sv-blob {
  position: absolute; border-radius: 50%;
  pointer-events: none; z-index: 0;
}
.sv-blob1 {
  width: 480px; height: 480px;
  top: -100px; right: -60px;
  background: radial-gradient(circle, rgba(91,79,232,0.06) 0%, transparent 65%);
  animation: svBlobDrift 16s ease-in-out infinite alternate;
}
.sv-blob2 {
  width: 360px; height: 360px;
  bottom: 0; left: -40px;
  background: radial-gradient(circle, rgba(139,92,246,0.05) 0%, transparent 65%);
  animation: svBlobDrift 20s ease-in-out infinite alternate-reverse;
}
@keyframes svBlobDrift {
  0% { transform: translate(0,0) scale(1); }
  100% { transform: translate(20px, 20px) scale(1.05); }
}

.sv-inner {
  max-width: 100%; margin: 0 auto;
  padding: 0 80px;
  position: relative; z-index: 2;
}

/* HEADER */
.sv-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 52px;
  gap: 24px;
  flex-wrap: wrap;
}
.sv-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'DM Sans', sans-serif;
  font-size: 12.5px; font-weight: 500;
  color: var(--indigo, #5B4FE8);
  letter-spacing: .5px;
  margin-bottom: 14px;
}
.sv-ew-line {
  display: inline-block;
  width: 22px; height: 1.5px;
  background: var(--indigo, #5B4FE8);
  border-radius: 2px;
}
.sv-h2 {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(32px, 3.6vw, 52px);
  font-weight: 900;
  line-height: 1.04;
  letter-spacing: -1.8px;
  text-transform: uppercase;
  margin: 0;
}
.sv-h2-plain { color: var(--ink, #0F0F2D); }
.sv-h2-grad {
  background: linear-gradient(135deg, var(--indigo,#5B4FE8) 0%, var(--violet,#8B5CF6) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.sv-all-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 12px; font-weight: 800;
  color: var(--indigo, #5B4FE8);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  border-bottom: 1.5px solid currentColor;
  padding-bottom: 2px;
  white-space: nowrap;
  transition: gap .2s, color .2s;
}
.sv-all-link:hover { gap: 14px; color: var(--violet, #8B5CF6); border-color: var(--violet, #8B5CF6); }
.sv-all-link svg { width: 14px; height: 14px; }

/* 4-3-2 GRID */
.sv-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
  align-items: start;
}

.sv-card:nth-child(1),
.sv-card:nth-child(2),
.sv-card:nth-child(3),
.sv-card:nth-child(4) { grid-column: span 3; }

.sv-card:nth-child(5),
.sv-card:nth-child(6),
.sv-card:nth-child(7) { grid-column: span 4; }

.sv-card:nth-child(8),
.sv-card:nth-child(9) { grid-column: span 6; }

/* Hidden / Revealed states */
.sv-hidden {
  display: none !important;
  visibility: hidden;
  pointer-events: none;
}
.sv-hidden.sv-revealed {
  display: flex !important;
  visibility: visible;
  pointer-events: auto;
  flex-direction: column;
  animation: svCardReveal .5s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes svCardReveal {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* CARD */
.sv-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1.5px solid rgba(91,79,232,0.09);
  border-radius: 18px;
  padding: 28px 24px 24px;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity .55s cubic-bezier(.16,1,.3,1),
    transform .55s cubic-bezier(.16,1,.3,1),
    box-shadow .25s,
    border-color .25s;
}
.sv-card.visible {
  opacity: 1;
  transform: translateY(0);
}
.sv-card:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 16px 48px rgba(91,79,232,0.13), 0 0 0 1.5px rgba(91,79,232,0.2);
  border-color: rgba(91,79,232,0.25);
}

/* Left accent border */
.sv-card-border {
  position: absolute;
  left: 0; top: 16px; bottom: 16px;
  width: 3px; border-radius: 2px;
  background: linear-gradient(to bottom, var(--indigo,#5B4FE8), var(--violet,#8B5CF6));
  transform: scaleY(0); transform-origin: bottom;
  transition: transform .32s cubic-bezier(.16,1,.3,1);
}
.sv-card:hover .sv-card-border { transform: scaleY(1); }

/* Shimmer sweep */
.sv-card::before {
  content: '';
  position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(91,79,232,0.04), transparent);
  transition: left .55s ease;
  pointer-events: none;
}
.sv-card:hover::before { left: 150%; }

/* Card top row */
.sv-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 22px;
}

/* Icon */
.sv-icon-wrap {
  width: 52px; height: 52px;
  background: var(--indigo-soft, #EEF0FF);
  border: 1.5px solid rgba(91,79,232,0.14);
  border-radius: 14px;
  display: grid; place-items: center;
  color: var(--indigo, #5B4FE8);
  flex-shrink: 0;
  transition: background .25s, transform .25s, box-shadow .25s, color .25s;
}
.sv-icon-wrap svg { width: 30px; height: 30px; }
.sv-card:hover .sv-icon-wrap {
  background: var(--indigo, #5B4FE8);
  color: #fff;
  transform: rotate(-6deg) scale(1.08);
  box-shadow: 0 6px 20px rgba(91,79,232,0.35);
}

/* Number */
.sv-card-num {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 11px; font-weight: 800;
  color: var(--sub2, #9CA3AF);
  letter-spacing: 1px;
  transition: color .2s;
  display: flex;
  align-items: center;
}
.sv-card:hover .sv-card-num { color: var(--indigo, #5B4FE8); }

/* New Badge */
.sv-badge-new {
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 6px;
  background: linear-gradient(135deg, #10B981, #059669);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 4px;
}

/* Title */
.sv-card-title {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 15px; font-weight: 800;
  color: var(--ink, #0F0F2D);
  line-height: 1.3;
  letter-spacing: -.3px;
  text-transform: uppercase;
  margin-bottom: 10px;
  transition: color .2s;
}
.sv-card:hover .sv-card-title { color: var(--indigo, #5B4FE8); }

/* Description */
.sv-card-desc {
  font-family: 'DM Sans', sans-serif;
  font-size: 13.5px; line-height: 1.68;
  color: var(--sub, #6B7280);
  margin-bottom: 16px;
  flex-grow: 1;
}

/* Learn more link */
.sv-card-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: 12.5px; font-weight: 700;
  color: var(--indigo, #5B4FE8);
  text-decoration: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .2s .05s, transform .2s .05s, gap .2s;
  width: fit-content;
}
.sv-card-link svg { width: 13px; height: 13px; }
.sv-card-link:hover { gap: 10px; }
.sv-card:hover .sv-card-link { opacity: 1; transform: translateY(0); }

/* SHOW MORE BUTTON */
.sv-showmore-wrap {
  display: flex; justify-content: center;
  margin-top: 36px;
}
.sv-showmore {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 12px; font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--ink, #0F0F2D);
  background: transparent;
  border: 1.5px solid var(--border, #E5E7EB);
  border-radius: 100px;
  padding: 13px 30px;
  cursor: pointer;
  transition: all .22s;
  outline: none;
}
.sv-showmore:hover {
  border-color: var(--indigo, #5B4FE8);
  color: var(--indigo, #5B4FE8);
  background: var(--indigo-soft, #EEF0FF);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(91,79,232,0.12);
}
.sv-sm-icon {
  display: flex; align-items: center;
  transition: transform .35s cubic-bezier(.16,1,.3,1);
}
.sv-sm-icon svg { width: 13px; height: 13px; }
.sv-showmore[aria-expanded="true"] .sv-sm-icon { transform: rotate(180deg); }

/* RESPONSIVE */
@media (max-width: 1100px) {
  .sv-grid .sv-card:nth-child(n) { grid-column: span 6; }
  .sv-inner { padding: 0 28px; }
}
@media (max-width: 640px) {
  .sv-grid .sv-card:nth-child(n) { grid-column: span 12; }
  .sv-header  { flex-direction: column; align-items: flex-start; }
  .sv-inner   { padding: 0 20px; }
  .services   { padding: 72px 0 64px; }
}
