.spe-cleaning-services {
  --spe-blue: #0989cb;
  --spe-navy: #123b64;
  --spe-cyan: #55c5dc;
  --spe-orange: #f7a018;
  --spe-green: #80c82a;
  background: linear-gradient(180deg, #f5fbfd 0%, #ffffff 100%);
  padding: clamp(56px, 7vw, 96px) 20px;
}

.spe-cleaning-services__inner {
  margin: 0 auto;
  max-width: 1200px;
  text-align: center;
}

.spe-cleaning-services__eyebrow {
  color: var(--spe-blue);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.12em;
  margin: 0 0 10px;
  text-transform: uppercase;
}

.spe-cleaning-services h2 {
  color: var(--spe-navy);
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.08;
  margin: 0;
}

.spe-cleaning-services__intro {
  color: #43586b;
  font-size: clamp(17px, 2vw, 20px);
  line-height: 1.6;
  margin: 18px auto 38px;
  max-width: 760px;
}

.spe-cleaning-services__grid {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.spe-cleaning-card {
  background: #fff;
  border: 1px solid rgba(18, 59, 100, 0.1);
  border-radius: 22px;
  box-shadow: 0 14px 36px rgba(18, 59, 100, 0.12);
  margin: 0;
  overflow: hidden;
  text-align: left;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.spe-cleaning-card:hover {
  box-shadow: 0 20px 46px rgba(18, 59, 100, 0.18);
  transform: translateY(-4px);
}

.spe-cleaning-card img {
  aspect-ratio: 3 / 4;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.spe-cleaning-card h3 {
  border-top: 4px solid var(--spe-cyan);
  color: var(--spe-navy);
  font-size: 19px;
  line-height: 1.3;
  margin: 0;
  min-height: 74px;
  padding: 20px 22px;
}

.spe-cleaning-card:nth-child(3n + 2) h3 {
  border-top-color: var(--spe-orange);
}

.spe-cleaning-card:nth-child(3n + 3) h3 {
  border-top-color: var(--spe-green);
}

.spe-cleaning-services__cta {
  background: var(--spe-orange);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(247, 160, 24, 0.28);
  color: #fff !important;
  display: inline-flex;
  font-size: 17px;
  font-weight: 800;
  justify-content: center;
  margin-top: 40px;
  padding: 15px 28px;
  text-decoration: none !important;
  transition: background 180ms ease, transform 180ms ease;
}

.spe-cleaning-services__cta:hover,
.spe-cleaning-services__cta:focus-visible {
  background: #df8700;
  transform: translateY(-2px);
}

.spe-cleaning-services__cta:focus-visible {
  outline: 3px solid var(--spe-navy);
  outline-offset: 4px;
}

@media (max-width: 900px) {
  .spe-cleaning-services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .spe-cleaning-services {
    padding-left: 16px;
    padding-right: 16px;
  }

  .spe-cleaning-services__grid {
    gap: 22px;
    grid-template-columns: 1fr;
  }

  .spe-cleaning-card h3 {
    min-height: 0;
  }

  .spe-cleaning-services__cta {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .spe-cleaning-card,
  .spe-cleaning-services__cta {
    transition: none;
  }
}
