/* A numbered process with one selected step and a matching photograph. */
.quality-section { overflow-anchor:none; }
.quality-section .quality-photo { height:clamp(580px,52vw,730px); min-height:0; align-self:center; isolation:isolate; }
.quality-photo .quality-scene { opacity:0; pointer-events:none; transition:opacity 420ms ease; }
.quality-photo .quality-scene.is-active { opacity:1; }
.quality-scene[data-quality-scene="inspection"] { object-position:60% center; }
.quality-scene[data-quality-scene="delivery"] { object-position:38% center; }
.quality-photo::after { content:''; position:absolute; inset:45% 0 0; z-index:1; pointer-events:none; background:linear-gradient(transparent,rgba(8,26,33,.72)); }
.quality-section .quality-photo-caption { display:flex; align-items:center; gap:14px; position:absolute; z-index:2; left:26px; right:26px; bottom:26px; padding:0; color:#fff; background:transparent; font-size:18px; line-height:1.4; }
.quality-photo-index { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; flex-shrink:0; border:1px solid #ffffff66; font-size:15px; font-weight:500; }
.quality-photo-title { font-weight:600; }
.quality-section .quality-steps { margin-bottom:28px; border-top:1px solid #d5dedf; }
.quality-section .quality-steps details { position:relative; border-bottom:1px solid #d5dedf; border-left:3px solid transparent; transition:background-color .22s,border-color .22s; }
.quality-section .quality-steps details[open] { border-left-color:#007d91; background:#e9f1f1; }
.quality-section .quality-steps summary { display:grid; grid-template-columns:28px minmax(0,1fr) 18px; align-items:center; justify-content:normal; gap:14px; padding:20px 16px; color:#293535; font-size:18px; line-height:1.4; font-weight:600; }
.quality-section .quality-steps summary span { color:inherit; font-size:inherit; transform:none; }
.quality-section .quality-steps details[open] summary span { transform:none; }
.quality-section .quality-steps summary .quality-step-number { color:#829092; font-size:14px; font-weight:500; letter-spacing:.04em; }
.quality-section .quality-steps details[open] summary,.quality-section .quality-steps details[open] .quality-step-number { color:#007d91; }
.quality-section .quality-steps summary:focus-visible { outline:2px solid #007d91; outline-offset:-4px; }
.quality-step-icon { position:relative; width:16px; height:16px; }
.quality-step-icon::before,.quality-step-icon::after { content:''; position:absolute; top:7px; left:2px; width:12px; height:2px; background:currentColor; border-radius:1px; }
.quality-step-icon::after { transform:rotate(90deg); transition:transform .2s,opacity .2s; }
.quality-steps details[open] .quality-step-icon::after { transform:rotate(0); opacity:0; }
.quality-section .quality-steps details>p { max-width:none; margin:0; padding:0 24px 22px 58px; color:#52686b; font-size:16px; line-height:1.7; }
.quality-steps details[open]>p { animation:quality-copy-in .22s ease both; }
@keyframes quality-copy-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media(hover:hover) { .quality-section .quality-steps summary:hover { color:#007d91; } }
.quality-content .quality-inquiry { justify-content:center; max-width:100%; min-height:50px; padding:13px 25px; border:1px solid #007d91; border-radius:0; background:#007d91; color:#fff; text-align:center; transition:background-color .25s,border-color .25s; }
.quality-content .quality-inquiry:hover { background:#006679; border-color:#006679; color:#fff; transform:none; }
@media(max-width:850px) {
  .quality-section .quality-steps summary { gap:10px; padding:18px 12px; font-size:17px; grid-template-columns:24px minmax(0,1fr) 16px; }
  .quality-section .quality-steps details>p { padding:0 18px 20px 46px; }
}
@media(max-width:700px) {
  .quality-section .quality-photo { height:auto; aspect-ratio:1.35; }
  .quality-section .quality-photo-caption { left:20px; right:20px; bottom:20px; font-size:17px; }
  .quality-photo-index { width:36px; height:36px; font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .quality-photo .quality-scene,.quality-section .quality-steps details,.quality-step-icon::after,.quality-content .quality-inquiry { transition:none; }
  .quality-steps details[open]>p { animation:none; }
}
