/* Shared info cards — contact / career */
.tm-info-section {
  background: #fff;
  padding: 4rem 0 5rem;
}
.tm-info-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 2.5rem;
}
.tm-info-section .tm-info-kicker {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 0.75rem;
}
.tm-info-section .tm-info-title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 2rem;
}
.tm-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.tm-info-card {
  border: 1px solid #e8e8e8;
  border-top: 4px solid #3f2fee;
  border-radius: 16px;
  padding: 1.75rem 1.5rem;
  background: #fafafa;
  min-height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tm-info-card:nth-child(1) { border-top-color: #3f2fee; }
.tm-info-card:nth-child(2) { border-top-color: #EF4181; }
.tm-info-card:nth-child(3) { border-top-color: #f5c400; }
.tm-info-card:nth-child(4) { border-top-color: #1db97a; }
.tm-info-card:nth-child(5) { border-top-color: #e85d2b; }
.tm-info-card:hover {
  animation: tm-card-vibrate 0.45s ease-in-out;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
}
@keyframes tm-card-vibrate {
  0%, 100% { transform: translateX(0); }
  15% { transform: translateX(-3px) rotate(-0.4deg); }
  30% { transform: translateX(3px) rotate(0.4deg); }
  45% { transform: translateX(-2px) rotate(-0.3deg); }
  60% { transform: translateX(2px) rotate(0.3deg); }
  75% { transform: translateX(-1px); }
  90% { transform: translateX(1px); }
}
@media (prefers-reduced-motion: reduce) {
  .tm-info-card:hover { animation: none; }
}
.tm-info-card--wide {
  grid-column: span 2;
}
.tm-info-card h2 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 0.75rem;
  line-height: 1.3;
}
.tm-info-card p,
.tm-info-card li {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
  color: #333;
  margin: 0 0 0.75rem;
}
.tm-info-card ul {
  margin: 0;
  padding-left: 1.15rem;
}
.tm-info-card li { margin-bottom: 0.4rem; }
.tm-info-card a { color: #000; font-weight: 600; text-decoration: underline !important; }
.tm-info-card .tm-contact-line {
  display: block;
  margin-bottom: 0.5rem;
}
@media (max-width: 991px) {
  .tm-info-grid { grid-template-columns: 1fr 1fr; }
  .tm-info-card--wide { grid-column: span 2; }
}
@media (max-width: 767px) {
  .tm-info-inner { padding-left: 1rem; padding-right: 1rem; }
  .tm-info-grid { grid-template-columns: 1fr; }
  .tm-info-card--wide { grid-column: span 1; }
}
