/* Custom parts page: process steps and part gallery. */
.parts-steps { list-style: none; counter-reset: step; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; padding: 0; margin: 0; }
.parts-steps li { counter-increment: step; background: #fff; border: 1px solid #dce2e4; border-top: 3px solid #ad482d; padding: 24px; }
.parts-steps li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--heading); font-size: 14px; letter-spacing: .1em; color: #ad482d; margin-bottom: 14px; }
.parts-steps h3 { font-size: 22px; margin-bottom: 10px; }
.parts-steps p { font-size: 15px; color: #5a6b75; }
.parts-group + .parts-group { margin-top: 48px; }
.parts-group > h3 { font-size: 20px; margin-bottom: 18px; padding-bottom: 10px; border-bottom: 1px solid #dce2e4; }
.parts-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; }
.part-card { margin: 0; background: #fff; border: 1px solid #dce2e4; display: flex; flex-direction: column; }
.part-card img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: #fff; }
.part-card figcaption { padding: 14px 16px 16px; border-top: 2px solid #c47c59; flex: 1; }
.part-card strong { display: block; font-size: 15px; line-height: 1.4; color: #24333c; }
.part-card span { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; color: #5a6b75; }
@media (max-width: 1100px) { .parts-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .parts-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .parts-steps { grid-template-columns: minmax(0, 1fr); } .parts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .part-card figcaption { padding: 10px 12px 12px; } .part-card strong { font-size: 14px; } }
