/* Quality Control & Testing page — the blocks of the owner's own quality file:
   the quality-policy block with its statistics row, the five-checkpoint flow
   drawn as a vertical timeline, the eight test-method cards, the defect-handling
   steps and the document cards. Page furniture (banner, section heads, the
   closing call to action) comes from the shared page shell, page-shell.css, and
   the AQL table is rendered by the site's own components/spec-table.php, so
   neither is restyled here. Scoped to .bovt-qc. Colours are tokens. */

/* ===== Quality policy + statistics ===== */
.bovt-qc .policy-wrap{display:flex;align-items:center;gap:50px;flex-wrap:wrap;margin-bottom:50px}
.bovt-qc .policy-img{flex:1;min-width:320px}
.bovt-qc .policy-text{flex:1;min-width:320px}
.bovt-qc .policy-text h2{font-size:28px;font-weight:800;margin:10px 0 18px}
.bovt-qc .policy-text p{color:#555;font-size:15px;margin:0 0 14px}
.bovt-qc .policy-text p:last-child{margin-bottom:0}
.bovt-qc .qc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.bovt-qc .qc-stat{background:#fff;border-radius:14px;padding:26px 18px;text-align:center;box-shadow:0 4px 14px rgba(0,0,0,.06);border-top:3px solid var(--color-orange)}
.bovt-qc .qc-stat h3{font-size:26px;font-weight:800;color:var(--color-blue);margin:0}
.bovt-qc .qc-stat p{font-size:12px;color:#666;margin:6px 0 0}

/* ===== Five-checkpoint flow (vertical timeline) ===== */
.bovt-qc .qcflow{position:relative;max-width:880px;margin:0 auto;padding-left:40px}
.bovt-qc .qcflow::before{content:"";position:absolute;left:16px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--color-blue),var(--color-orange))}
.bovt-qc .qcflow-item{position:relative;margin-bottom:38px}
.bovt-qc .qcflow-item:last-child{margin-bottom:0}
.bovt-qc .qcflow-item .qf-dot{position:absolute;left:-40px;top:2px;width:34px;height:34px;background:#fff;border:3px solid var(--color-blue);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--color-blue);font-size:14px}
.bovt-qc .qcflow-item .qf-card{background:#fff;border-radius:14px;padding:20px 24px;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.bovt-qc .qcflow-item h4{font-size:16px;font-weight:800;margin:0 0 8px}
.bovt-qc .qcflow-item p{font-size:13.5px;color:#666;margin:0 0 10px}
.bovt-qc .qcflow-item .qf-tags{display:flex;flex-wrap:wrap;gap:7px}
.bovt-qc .qcflow-item .qf-tags span{background:var(--color-brand-tint);color:var(--color-blue);font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:14px}

/* ===== Test method cards ===== */
.bovt-qc .test-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.bovt-qc .test-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.06);transition:transform .3s ease,box-shadow .3s ease}
.bovt-qc .test-card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(0,0,0,.1)}
.bovt-qc .test-card .tc-img{position:relative}
.bovt-qc .test-card .tc-tag{position:absolute;top:10px;left:10px;z-index:2;background:var(--color-orange);color:#fff;font-size:10.5px;font-weight:800;padding:3px 10px;border-radius:14px;text-transform:uppercase}
.bovt-qc .test-card .tc-body{padding:18px}
.bovt-qc .test-card h4{font-size:14.5px;font-weight:800;margin:0 0 8px}
.bovt-qc .test-card p{font-size:12px;color:#777;margin:0 0 10px}
.bovt-qc .test-card .tc-spec{font-size:11px;color:#999;border-top:1px dashed var(--color-border-soft);padding-top:8px}
.bovt-qc .test-card .tc-spec b{color:var(--color-blue)}

/* ===== Document cards ===== */
.bovt-qc .doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.bovt-qc .doc-card{background:#fff;border-radius:14px;padding:26px;box-shadow:0 4px 14px rgba(0,0,0,.05);display:flex;gap:16px;align-items:flex-start}
.bovt-qc .doc-card .dc-icon{width:46px;height:46px;background:var(--color-brand-tint);color:var(--color-blue);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;flex-shrink:0}
.bovt-qc .doc-card h4{font-size:14.5px;font-weight:800;margin:0 0 8px}
.bovt-qc .doc-card p{font-size:12.5px;color:#777;margin:0}

/* ===== Defect handling steps ===== */
.bovt-qc .improve-wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
.bovt-qc .improve-step{flex:1;min-width:150px;text-align:center;background:#fff;border-radius:14px;padding:26px 16px;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.bovt-qc .improve-step .is-icon{width:48px;height:48px;background:var(--color-orange);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;margin:0 auto 12px}
.bovt-qc .improve-step h5{font-size:13.5px;font-weight:700;margin:0 0 6px}
.bovt-qc .improve-step p{font-size:11.5px;color:#777;margin:0}

@media (max-width:900px){
  .bovt-qc .qc-stats,.bovt-qc .test-grid,.bovt-qc .doc-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .bovt-qc .qc-stats,.bovt-qc .test-grid,.bovt-qc .doc-grid{grid-template-columns:1fr}
  .bovt-qc .improve-step{min-width:100%}
  .bovt-qc .qcflow{padding-left:30px}
  .bovt-qc .qcflow-item .qf-dot{left:-30px;width:28px;height:28px;font-size:12px}
}
