/* Shared by public discovery and supplier-related case studies. */
.cs-cards {
  --cs-ink: #213441;
  --cs-muted: #65737a;
  --cs-line: rgba(38,55,70,.14);
  --cs-green: #42655b;
  --cs-gold: #c79a24;
  color: var(--cs-ink);
  font-family: 'DM Sans',sans-serif;
}
.cs-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.cs-card { display:flex; min-width:0; min-height:390px; flex-direction:column; overflow:hidden; border:1px solid rgba(35,57,65,.11); border-radius:14px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 9px 24px rgba(33,52,65,.07); transition:transform .2s ease,box-shadow .2s ease; }
.cs-card:hover { transform:translateY(-4px); color:inherit; text-decoration:none; box-shadow:0 16px 33px rgba(33,52,65,.13); }
.cs-card:focus-visible { outline:3px solid var(--cs-gold); outline-offset:3px; }
.cs-card-media { position:relative; height:205px; flex:0 0 205px; overflow:hidden; background:#dce4df; }
.cs-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.cs-card:hover .cs-card-media img { transform:scale(1.035); }
.cs-image-placeholder { display:grid; width:100%; height:100%; place-items:center; background:linear-gradient(135deg,transparent 49.8%,rgba(66,101,91,.11) 50%,transparent 50.3%),linear-gradient(45deg,transparent 49.8%,rgba(66,101,91,.08) 50%,transparent 50.3%),#e3e9e3; }
.cs-image-placeholder span { display:grid; width:48px; height:48px; place-items:center; border:1px solid rgba(66,101,91,.27); border-radius:50%; color:var(--cs-green); font:500 26px 'Space Grotesk',sans-serif; }
.cs-category { position:absolute; top:13px; left:13px; max-width:calc(100% - 26px); overflow:hidden; padding:7px 10px; border-radius:999px; background:rgba(247,245,239,.95); color:var(--cs-ink); font-size:9px; font-weight:700; letter-spacing:.03em; text-overflow:ellipsis; white-space:nowrap; }
.cs-card-content { display:flex; min-height:0; flex:1; flex-direction:column; padding:18px 19px 17px; }
.cs-card-location { margin:0 0 8px; color:var(--cs-green); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.cs-card h3 { display:-webkit-box; margin:0; overflow:hidden; color:var(--cs-ink); font:600 22px/1.12 'Space Grotesk',sans-serif; letter-spacing:-.04em; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.cs-card-client { margin:9px 0 0; color:var(--cs-muted); font-size:11px; }
.cs-card-client strong { color:#3a4b50; font-weight:600; }
.cs-card-bottom { display:flex; flex-direction:column; margin-top:auto; }
.cs-card-divider { height:1px; margin:16px 0 12px; background:var(--cs-line); }
.cs-card-footer { display:flex; align-items:center; gap:10px; }
.cs-supplier-logo { display:flex; align-items:center; justify-content:center; flex:0 0 42px; width:42px; height:42px; overflow:hidden; border:2px solid #fff; border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.15); color:var(--cs-ink); font-size:16px; font-weight:700; }
.cs-supplier-logo img { width:100%; height:100%; border-radius:50%; object-fit:contain; }
.cs-supplier { min-width:0; color:var(--cs-ink); font-size:14px; font-weight:700; overflow-wrap:anywhere; }
.cs-card-cta { display:inline-flex; align-items:center; align-self:flex-end; gap:8px; margin-top:24px; color:var(--cs-ink); font-size:12px; font-weight:700; }
.cs-card-cta i { color:#c28f00; font-size:11px; transition:transform .2s ease; }
.cs-card:hover .cs-card-cta i { transform:translateX(3px); }
.cs-cards .cs-services { display:flex; flex-wrap:wrap; gap:6px; margin-top:13px; }
.cs-cards .cs-services span { max-width:100%; overflow:hidden; padding:5px 8px; border-radius:999px; background:#eef2ef; color:#526b63; font-size:9px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:767.98px) {
  .cs-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .cs-card { min-height:355px; border-radius:11px; }
  .cs-card-media { height:170px; flex-basis:170px; }
  .cs-card-content { padding:14px 14px 13px; }
  .cs-card h3 { font-size:19px; }
  .cs-card-divider { margin:13px 0 10px; }
}
@media(max-width:520px) {
  .cs-grid { grid-template-columns:1fr; }
  .cs-card { min-height:0; }
  .cs-card-media { height:210px; flex-basis:210px; }
  .cs-card-content { padding:16px 17px; }
}
@media(prefers-reduced-motion:reduce) {
  .cs-cards *, .cs-cards *::before, .cs-cards *::after { transition-duration:.01ms!important; }
}
