/* Cases page */
.cases-sec { background: var(--ink); }

.cases-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2.5vw, 28px);
}

.case-card {
  background: var(--ink-3); border: 1px solid var(--line);
  border-radius: var(--r-md); overflow: hidden;
  transition: border-color 0.4s, transform 0.4s var(--ease), box-shadow 0.4s;
}
.case-card:hover {
  border-color: rgba(61,139,255,0.4);
  transform: translateY(-4px);
  box-shadow: 0 0 32px rgba(61,139,255,.12);
}
.case-img { height: clamp(140px, 16vw, 220px); }
.case-body { padding: clamp(16px, 2vw, 24px); }
.case-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.case-cat  { font-size: 9px; letter-spacing: 0.3em; color: var(--blue-bright); text-transform: uppercase; }
.case-year { font-size: 10px; letter-spacing: 0.2em; color: var(--text-dim); }
.case-card h2 { font-size: clamp(14px, 1.4vw, 17px); font-weight: 700; line-height: 1.45; margin-bottom: 10px; }
.case-card p  { color: var(--text-dim); font-size: 13px; line-height: 1.8; margin-bottom: 16px; }
.case-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.case-tags li {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.15em;
  color: var(--cyan); border: 1px solid rgba(94,234,212,0.3);
  padding: 3px 8px; border-radius: 2px;
}

/* スマートフォン：1カラム */
@media (max-width: 560px) {
  .cases-grid { grid-template-columns: 1fr; }
}
