/* ============================================================
   WHY SERVA — Feature Grid (beige background)
   ============================================================ */

.why {
  background: var(--color-beige);
  padding: 8rem 4rem;
  position: relative;
}

/* Section header HR on beige bg */
.why .section-header hr {
  border-color: var(--border-dark);
}

/* ── Intro ──────────────────────────────────────────────── */
.why__intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 4rem;
  margin-bottom: 5rem;
}

.why__heading {
  color: var(--color-dark);
  max-width: 14ch;
}

.why__sub {
  max-width: 36ch;
  font-size: .88rem;
  font-weight: 300;
  color: var(--color-mid);
  line-height: 1.85;
  text-align: right;
  flex-shrink: 0;
}

/* ── Grid ───────────────────────────────────────────────── */
.why__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border-dark);
  border-left: 1px solid var(--border-dark);
}

/* ── Item ───────────────────────────────────────────────── */
.why__item {
  padding: 2.75rem 2.75rem 3.25rem;
  border-right: 1px solid var(--border-dark);
  border-bottom: 1px solid var(--border-dark);
  position: relative;
  transition: background .3s ease;
  overflow: hidden;
}

/* Teal accent bar slides in on hover */
.why__item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-teal);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1);
}

.why__item:hover::before {
  transform: scaleX(1);
}

.why__item:hover {
  background: rgba(26, 26, 26, .03);
}

/* Number */
.why__item-num {
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .15em;
  color: var(--color-teal-mid);
  display: block;
  margin-bottom: 1.75rem;
  opacity: .8;
}

/* Icon */
.why__item-icon {
  width: 2.5rem;
  height: 2.5rem;
  color: var(--color-teal);
  margin-bottom: 1.5rem;
  transition: color .3s;
}

.why__item:hover .why__item-icon {
  color: var(--color-teal-mid);
}

.why__item-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Title */
.why__item-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -.015em;
  color: var(--color-dark);
  margin-bottom: .65rem;
  line-height: 1.25;
}

/* Description */
.why__item-desc {
  font-family: var(--font-body);
  font-size: .83rem;
  font-weight: 300;
  color: var(--color-mid);
  line-height: 1.85;
}
