/* Layout for implementation case studies; colors and typography are shared. */
.project-detail .hero { max-width: 860px; }
.project-detail h1 { text-wrap: balance; }
.project-detail .project-summary { max-width: 76ch; }
.project-detail .project-facts { margin-bottom: 32px; }
.project-detail .implementation-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  padding: 0;
  margin: 24px 0;
  list-style: none;
  counter-reset: implementation-step;
}
.project-detail .implementation-flow li {
  counter-increment: implementation-step;
  padding: 18px;
  background: var(--soft);
}
.project-detail .implementation-flow li::before {
  content: counter(implementation-step, decimal-leading-zero);
  display: block;
  margin-bottom: 8px;
  color: var(--accent);
}
.project-detail .implementation-flow h3 { font-size: 17px; margin-bottom: 8px; }
.project-detail .implementation-flow p { font-size: 15px; margin-bottom: 0; color: var(--muted); }
.project-detail .implementation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 40px;
}
.project-detail .implementation-grid article { min-width: 0; }
.project-detail .implementation-grid p { color: var(--muted); }
.project-detail details { margin-top: 24px; }
.project-detail summary { cursor: pointer; color: var(--accent); padding-block: 8px; }
.project-detail code { font-size: .9em; overflow-wrap: anywhere; }
.project-detail .related-links { display: flex; flex-wrap: wrap; gap: 12px 24px; }
@media (max-width: 900px) {
  .project-detail .implementation-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .project-detail .implementation-flow,
  .project-detail .implementation-grid { grid-template-columns: minmax(0, 1fr); }
}
