:root { --quality-red: #bd302c; --quality-ivory: #f6f3ec; --quality-line: #d8d1c8; }
.subpage--quality { background: #fff; }
.quality-hero { padding: 150px 24px 76px; background: radial-gradient(ellipse at center, rgba(255,255,255,.9) 0%, rgba(255,255,255,.68) 34%, rgba(255,255,255,.12) 74%), url("../img/quality/hero.png") center / cover no-repeat; text-align: center; }
.quality-hero h1 { margin: 8px 0 24px; font-size: 52px; font-weight: 500; line-height: 1.25; }
.quality-hero p { font-size: 17px; font-weight: 500; line-height: 2.05; }
.quality-section { padding: 100px 24px; background: #fff; }
.quality-section--ivory { background: var(--quality-ivory); }
.quality-inner { width: min(1020px, 100%); margin: auto; }
.quality-heading { margin-bottom: 56px; text-align: center; }
.quality-label { display: inline-block; position: relative; margin-bottom: 18px; padding-bottom: 12px; font-family: var(--font-en); font-size: 14px; letter-spacing: .04em; }
.quality-label::after { content: ""; position: absolute; bottom: 0; left: 50%; width: 76px; height: 6px; border-top: 4px solid var(--quality-red); border-radius: 50%; transform: translateX(-50%) rotate(-2deg); }
.quality-heading h2 { margin-bottom: 18px; font-size: 36px; font-weight: 500; line-height: 1.45; }
.quality-heading p { font-size: 16px; line-height: 2; }
.quality-split { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.quality-copy h2 { font-size: 36px; font-weight: 500; line-height: 1.45; }
.quality-copy p { margin: 18px 0; font-size: 16px; line-height: 2; }
.quality-copy .quality-label::after { left: 0; transform: rotate(-2deg); }
.quality-rule-list { margin-top: 28px; }
.quality-rule-list li { padding: 12px 4px; border-bottom: 1px solid var(--quality-line); font-size: 16px; }
.quality-world { position: relative; padding: 50px 0; background: radial-gradient(circle, #f7e4b0, transparent 46%); text-align: center; }
.quality-world strong { color: var(--quality-red); }
.quality-world span { display: block; color: var(--quality-red); font-family: var(--font-en); }
.quality-world__fssc { font-size: 55px; }
.quality-world__alliance { font-size: 38px; }
.quality-metrics { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--quality-line); border-bottom: 1px solid var(--quality-line); }
.quality-metric { padding: 28px 12px; border-right: 1px solid var(--quality-line); text-align: center; }
.quality-metric:last-child { border: 0; }
.quality-metric b { display: block; color: var(--quality-red); font-size: 35px; line-height: 1.1; }
.quality-metric small { font-size: 12px; }
.quality-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; border: 1px solid var(--quality-line); background: var(--quality-line); }
.quality-card { padding: 34px; background: #fff; }
.quality-card > b { color: var(--quality-red); font-family: var(--font-en); }
.quality-card h3 { margin: 12px 0; font-size: 20px; font-weight: 500; }
.quality-card p { font-size: 15px; line-height: 1.9; }
.quality-flow { display: grid; grid-template-columns: repeat(5, 1fr); align-items: stretch; }
.quality-flow li { position: relative; padding: 26px 16px; border-right: 1px solid #fff; background: #f5f2ed; text-align: center; }
.quality-flow li:not(:last-child)::after { content: "▶"; position: absolute; top: 50%; right: -8px; z-index: 1; color: var(--quality-red); }
.quality-flow b { display: block; color: var(--quality-red); font-size: 22px; }
.quality-flow span { font-size: 13px; }
.quality-cta { text-align: center; }
.quality-cta .quality-heading { margin-bottom: 32px; }
.quality-cta .btn { margin: 8px; }
@media (max-width: 640px) {
  .quality-hero { padding: 110px 20px 58px; text-align: left; }
  .quality-hero h1 { font-size: 36px; }
  .quality-hero p { font-size: 13px; text-align: left; }
  .quality-section { padding: 76px 20px; }
  .quality-heading { margin-bottom: 42px; text-align: left; }
  .quality-label::after { left: 0; transform: rotate(-2deg); }
  .quality-heading h2, .quality-copy h2 { font-size: 29px; }
  .quality-heading p { font-size: 13px; }
  .quality-split { grid-template-columns: 1fr; gap: 34px; }
  .quality-copy p, .quality-rule-list li { font-size: 14px; }
  .quality-metrics { grid-template-columns: repeat(2, 1fr); }
  .quality-metric:nth-child(2n) { border-right: 0; }
  .quality-metric:last-child { grid-column: 1 / -1; border-top: 1px solid var(--quality-line); }
  .quality-metric b { font-size: 30px; }
  .quality-cards { grid-template-columns: 1fr; }
  .quality-card p { font-size: 13px; }
  .quality-flow { grid-template-columns: 1fr; }
  .quality-flow li { border-bottom: 1px solid #fff; }
  .quality-flow li:not(:last-child)::after { top: auto; right: auto; bottom: -11px; left: 50%; content: "▼"; transform: translateX(-50%); }
  .quality-world__alliance { font-size: 34px; }
  .quality-copy .btn { display: flex; margin-right: auto; margin-left: auto; }
  .quality-cta .quality-heading { text-align: center; }
  .quality-cta .quality-label::after { left: 50%; transform: translateX(-50%) rotate(-2deg); }
  .quality-cta .btn { display: flex; margin: 10px auto; }
}
