/* Case Studies listing page - loaded only on pages using page-case-studies.php (see functions.php).
   Restrained report-style cards and filters; theme tokens from style.css; csl- prefix. */

/* ---------- Filters (hidden without JavaScript, since they need it) ---------- */
.csl-filters-band{display:none;background:var(--bg);border-bottom:1px solid var(--border-2);padding:20px 0}
.js .csl-filters-band{display:block}
.csl-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 20px}
.csl-filter{display:flex;flex-direction:column;gap:6px;min-width:200px}
.csl-filter span{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.csl-filter select{-webkit-appearance:none;appearance:none;height:42px;padding:0 40px 0 14px;border:1px solid var(--border-3);border-radius:var(--r-sm);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center;font:inherit;font-size:.92rem;color:var(--ink);cursor:pointer}
.csl-filter select:hover{border-color:var(--ink-3)}
.csl-filter select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.csl-clear,.csl-clear-inline{padding:0;border:0;background:none;font:inherit;font-size:.88rem;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.csl-clear{height:42px;padding:0 4px}
.csl-clear[hidden]{display:none}
.csl-clear:focus-visible,.csl-clear-inline:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.csl-count{margin:0 0 0 auto;align-self:center;font-size:.88rem;color:var(--ink-3)}

/* ---------- Cards ---------- */
.csl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.csl-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-3);border-radius:var(--r-sm);color:inherit;text-decoration:none;overflow:hidden;transition:border-color var(--t)}
.csl-card[hidden]{display:none}
.csl-card:hover{border-color:var(--ink)}
.csl-card:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.csl-card-img{aspect-ratio:16/10;background:var(--bg-2);overflow:hidden}
.csl-card-img img{display:block;width:100%;height:100%;object-fit:cover}
.csl-card-body{display:flex;flex-direction:column;flex:1;padding:22px 22px 20px}
.csl-card-meta{margin:0 0 10px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1.5;color:var(--ink-3)}
.csl-card-title{margin:0 0 14px;font-size:1.05rem;line-height:1.35;font-weight:600;color:var(--ink)}
.csl-card-claim{margin:0 0 20px;font-size:1.45rem;line-height:1.2;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.csl-card-metrics{list-style:none;margin:auto 0 0;padding:16px 0 0;border-top:1px solid var(--border-2);display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.csl-card-metrics li{padding:0 12px;border-left:1px solid var(--border-2)}
.csl-card-metrics li:first-child{padding-left:0;border-left:0}
.csl-card-metrics strong{display:block;font-size:1.05rem;font-weight:700;color:var(--ink)}
.csl-card-metrics span{display:block;margin-top:2px;font-size:.72rem;line-height:1.3;color:var(--ink-3)}
.csl-card-more{margin-top:18px;font-size:.86rem;font-weight:600;color:var(--ink)}
.csl-card:hover .csl-card-more{text-decoration:underline;text-underline-offset:3px}
.csl-empty{margin:28px 0 0;padding:28px;border:1px dashed var(--border-3);border-radius:var(--r-sm);text-align:center;color:var(--ink-3)}
.csl-empty[hidden]{display:none}

/* ---------- Responsive ---------- */
@media (max-width:1000px){.csl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .csl-grid{grid-template-columns:minmax(0,1fr)}
  .csl-filter{flex:1 1 100%}
  .csl-count{margin-left:0;width:100%}
}
@media (prefers-reduced-motion:reduce){.csl-card{transition:none}}

/* cards without a photo: the claim becomes the focal point instead of leaving an empty gap */
.csl-card:not(:has(.csl-card-img)) .csl-card-body{padding-top:26px}
.csl-card:not(:has(.csl-card-img)) .csl-card-title{margin-bottom:22px;font-size:.98rem;font-weight:500;color:var(--ink-2)}
.csl-card:not(:has(.csl-card-img)) .csl-card-claim{font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:28px}
