/* Service, project, review and process families. */
.offering-card { display:grid; grid-template-columns:48% minmax(0,1fr); min-width:0; overflow:hidden; background:var(--paper); border-radius:18px; box-shadow:0 8px 28px rgb(11 27 34 / .07); }
.offering-card__image { display:block; width:100%; height:100%; min-height:220px; object-fit:cover; }
.offering-card__copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:20px; }
.offering-card h3 { font-size:20px; line-height:1.2; font-weight:600; margin:0; }
.offering-card__copy > p { font-size:14px; line-height:1.5; color:var(--copy); margin-top:12px; }
.offering-card ul { width:100%; list-style:none; padding:16px 0 0; margin-top:16px; border-top:1px solid var(--line); }
.offering-card li { font-size:12px; line-height:1.45; padding-bottom:6px; }
.offering-card li::before { content:"•"; color:var(--brand); margin-right:6px; }
.offering-card .content-link { margin-top:12px; }
.project-card { min-width:0; }
.project-card__copy { padding:20px 0 0; }
.project-card h3 { font-size:22px; font-weight:600; margin:0 0 8px; line-height:1.25; }
.project-card__copy p { font-size:14px; color:var(--copy); }
.project-card .content-link { margin-top:8px; }
.process-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; list-style:none; padding:0; }
.process-step { min-width:0; min-height:220px; display:flex; flex-direction:column; padding:30px; border-top:1px solid var(--line); border-radius:16px; background:var(--paper); box-shadow:0 14px 34px rgb(11 27 34 / .06); }
.process-step h3 { margin:0 0 12px; font-size:18px; line-height:1.3; }
.process-step p { font-size:14px; line-height:1.5; color:var(--copy); }
.process-step > span { padding-top:24px; margin-top:auto; font-size:36px; line-height:1; color:var(--line); }
.testimonial-card { min-width:0; margin:0; overflow:hidden; border-radius:20px; background:var(--paper); }
.testimonial-card a { display:block; }
.testimonial-card img { display:block; width:100%; height:auto; }
.testimonial-card a:focus-visible { outline-offset:-6px; box-shadow:none; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .offering-card,.process-step { transition:transform var(--motion-fast) var(--ease); }
  .offering-card:hover,.process-step:hover { transform:translateY(-2px); }
}
@media (max-width:1023px) {
  .offering-card { grid-template-columns:40% minmax(0,1fr); }
  .process-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .offering-card h3 { font-size:18px; }
}
@media (max-width:767px) {
  .offering-card__copy { padding:16px; }
  .offering-card__image { min-height:200px; }
  .process-list { grid-template-columns:minmax(0,1fr); gap:16px; }
  .process-step { min-height:0; padding:24px; }
}

:is(.offering-card,.process-step,.testimonial-card,.project-card) { transition:transform var(--motion-base) var(--ease),box-shadow var(--motion-base) var(--ease); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 :is(.offering-card,.process-step,.testimonial-card,.project-card):hover { transform:translateY(-3px); box-shadow:0 0 0 1px var(--card-hover-line),0 12px 30px #0b1b2210; }
}
