.service-titles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 76px;
}

.service-titles > div {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--ice);
}

.service-titles span {
  color: var(--blue);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.service-titles h2 { margin: 0; font-size: 1.15rem; }
.partner-section { padding-top: 8px; }
.partner-section .section-title { margin-bottom: 28px; }

.partner-card {
  display: grid;
  grid-template-columns: minmax(260px, 420px) 1fr;
  gap: 36px;
  align-items: center;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: linear-gradient(145deg, #f8fcff, #eaf7ff);
  text-decoration: none;
  transition: transform .2s, box-shadow .2s;
}

.partner-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(8, 80, 130, .14);
}

.partner-card img { display: block; width: 100%; border-radius: 20px; }
.partner-copy { display: flex; min-height: 100%; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 30px; padding: 12px 12px 12px 0; }
.partner-intro { margin: 0 0 20px; font-size: 1.2rem; font-weight: 800; }
.price-list { display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)); gap: 12px; }
.price-list span { display: flex; justify-content: space-between; gap: 16px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--muted); }
.price-list b { color: var(--navy); }
.partner-note { margin: 18px 0 0; color: var(--muted); }

@media (max-width: 820px) {
  .service-titles { grid-template-columns: 1fr; margin-bottom: 52px; }
  .partner-card { grid-template-columns: 1fr; padding: 16px; }
  .partner-copy { padding: 4px; }
  .price-list { grid-template-columns: 1fr; }
}
