:root {
  --accent-color: #7e102c;
  --accent-rgb: 126, 16, 44;
}

.services-section {
  padding: 20px 0;
  background: #f8f8f8;
}

.services-heading {
  max-width: 80%;
  margin: 0 auto 20px;
  text-align: center;
}

.services-eyebrow {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--accent-color);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.services-heading h2 {
  margin-bottom: 14px;
  color: #242424;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.18;
}

.services-heading h2 span { color: var(--accent-color); }
.services-heading p { margin: 0; color: #646464; font-size: 1rem; line-height: 1.7; }

.services-grid > [class*='col-'] { display: flex; margin-bottom: 30px; }

.service-card {
  --x: 50%;
  --y: 50%;
  position: relative;
  isolation: isolate;
  display: flex;
  width: 100%;
  overflow: hidden;
  border: 1px solid rgba(126, 16, 44, .16);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(31, 22, 24, .07);
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.service-card::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: radial-gradient(260px circle at var(--x) var(--y), rgba(var(--accent-rgb), .16), transparent 70%);
  content: '';
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

.service-card:hover, .service-card:focus-within {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 1px rgba(var(--accent-rgb), .14), 0 20px 45px rgba(var(--accent-rgb), .16);
  transform: translateY(-6px);
}

.service-card:hover::before, .service-card:focus-within::before { opacity: 1; }

.service-card-content { display: flex; flex: 1; flex-direction: column; padding: 32px 30px 28px; }
.service-icon { display: grid; width: 54px; height: 54px; margin-bottom: 25px; place-items: center; border-radius: 15px; background: rgba(var(--accent-rgb), .1); color: var(--accent-color); font-size: 1.35rem; }
.service-card h3 { margin: 0 0 13px; color: #242424; font-size: 1.32rem; font-weight: 700; }
.service-card p { margin: 0 0 24px; color: #5f5f5f; line-height: 1.7; }
.service-link { margin-top: auto; color: var(--accent-color); font-size: .9rem; font-weight: 700; letter-spacing: .02em; text-decoration: none; }
.service-link i { margin-left: 7px; transition: transform .2s ease; }
.service-link:hover, .service-link:focus { color: var(--accent-color); text-decoration: underline; }
.service-link:hover i, .service-link:focus i { transform: translateX(4px); }
.service-link:focus-visible { outline: 2px solid var(--accent-color); outline-offset: 4px; }

@media (max-width: 767.98px) { .services-section { padding: 70px 0; } .service-card-content { padding: 28px 24px 24px; } }
@media (prefers-reduced-motion: reduce) { .service-card, .service-card::before, .service-link i { transition: none; animation: none; } }
