/* Service cards (design-direction.md #4). Root classes: .mm-cards, .mm-card */
.mm-cards { display: grid; gap: var(--mm-grid-gap); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 690px) { .mm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) {
  .mm-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mm-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* P2: a two-up option for a pair of cards */
}
.mm-cards__intro { display: grid; gap: var(--mm-space-4); align-content: start; min-width: 0; padding-block: var(--mm-space-2) var(--mm-space-4); }
.mm-card { position: relative; display: flex; flex-direction: column; gap: var(--mm-space-4); min-width: 0; padding: var(--mm-card-pad); background: var(--mm-bg-card); color: var(--mm-text-body); border: 1px solid var(--mm-border); border-radius: var(--mm-radius-md); transition: border-color var(--mm-dur) var(--mm-ease), box-shadow var(--mm-dur) var(--mm-ease), transform var(--mm-dur) var(--mm-ease); }
.mm-card__title { font-family: var(--mm-font-display); font-size: var(--mm-font-size-h3); line-height: var(--mm-leading-subhead); font-weight: var(--mm-weight-semibold); color: var(--mm-text); }
.mm-card__text { font-size: 1.0625rem; line-height: 1.55; }
.mm-card__link { color: inherit; text-decoration: none; } /* P2: the title is the link; it underlines on hover */
.mm-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.mm-card__more { margin-top: auto; padding-top: var(--mm-space-2); color: var(--mm-accent); font: 600 1.375rem/1 var(--mm-font-ui); } /* P2: arrow only, aria-hidden; no repeated link label */
.mm-card__more > span { display: inline-block; transition: transform var(--mm-dur) var(--mm-ease); }
.mm-card--link:hover { border-color: var(--mm-border-strong); box-shadow: var(--mm-shadow-2); transform: translateY(-2px); }
.mm-card--link:hover .mm-card__link { color: var(--mm-link-hover); text-decoration: underline; text-decoration-color: var(--mm-link-underline); text-decoration-thickness: 2px; text-underline-offset: 0.15em; }
.mm-card--link:hover .mm-card__more > span { transform: translateX(4px); }
@supports selector(:has(a)) {
  .mm-card__link:focus-visible { outline: none; }
  .mm-card:has(.mm-card__link:focus-visible) { outline: var(--mm-focus-width) solid var(--mm-focus); outline-offset: var(--mm-focus-offset); }
}
@media (prefers-reduced-motion: reduce) {
  .mm-card--link:hover, .mm-card--link:hover .mm-card__more > span { transform: none; }
}
