/* ===== Headings (MISSION / SERVICE / CASES / ABOUT) ===== */
:root{ --ink-red-from:#ff3b3b; --ink-red-to:#b30020; }

/* ラベル（英字小見出し）は中央＋黒の静的下線 */
#mission .block-title, #service .block-title, #cases .block-title, #about .block-title{
  display:inline-block; text-align:center; position:relative;
  margin:0 auto 14px; letter-spacing:.30em; font-weight:800;
}
#mission .block-title::after, #service .block-title::after, #cases .block-title::after, #about .block-title::after{
  content:""; display:block; width:clamp(72px,10vw,110px); height:3px;
  margin:8px auto 0; background:#111; border-radius:999px;
}

/* H2（3つだけ）：左寄せ＋赤グラデ下線アニメ */
#mission .h2, #service .h2:nth-of-type(1), #service .h2:nth-of-type(2){
  text-align:left; justify-self:start;
  font-size:clamp(22px,3.6vw,34px); line-height:1.25;
  max-width:min(980px,92vw); position:relative; padding-bottom:.55em;
}
#mission .h2::after, #service .h2:nth-of-type(1)::after, #service .h2:nth-of-type(2)::after{
  content:""; position:absolute; left:0; bottom:.1em; width:100%; height:.22em;
  background:linear-gradient(90deg,var(--ink-red-from),var(--ink-red-to));
  border-radius:999px; transform-origin:0 50%; transform:scaleX(0) skewX(-16deg);
  transition:transform .9s cubic-bezier(.2,.65,.2,1);
}
#mission .h2.ink-inview::after,
#service .h2:nth-of-type(1).ink-inview::after,
#service .h2:nth-of-type(2).ink-inview::after{
  transform:scaleX(1) skewX(-16deg);
}
@media (prefers-reduced-motion:reduce){
  #mission .h2::after, #service .h2:nth-of-type(1)::after, #service .h2:nth-of-type(2)::after{ transform:none !important; }
}

/* 親が中央寄せでも H2 は左に寄せる補助 */
#mission .container, #service .container, #cases .container, #about .container{ text-align:center; }
#mission .h2, #service .h2:nth-of-type(1), #service .h2:nth-of-type(2){ margin-left:0; }
