/* 装飾専用の余白を設け、文字に線を重ねないようにします。 */
.section h2,
.company-section h2,
.contact-band h2,
.page-main h2 {
  position: relative;
  isolation: isolate;
  padding-bottom: 14px;
}
.section h2::before,
.company-section h2::before,
.contact-band h2::before,
.page-main h2::before {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
  left: -.18em;
  top: auto;
  bottom: 1px;
  width: 2.4em;
  height: 8px;
  background: linear-gradient(110deg, rgba(179, 202, 157, .44), rgba(218, 231, 200, .23));
  clip-path: polygon(12% 0, 100% 0, 88% 100%, 0 100%);
}
.section h2::after,
.company-section h2::after,
.contact-band h2::after,
.page-main h2::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
  left: 0;
  top: auto;
  bottom: 4px;
  width: 34px;
  height: 1px;
  border: 0;
  background: rgba(173, 145, 94, .7);
}
.strengths-heading h2::before { left: calc(50% - 1.2em); }
.strengths-heading h2::after { left: calc(50% - 17px); }
@media (min-width: 761px) {
  .strengths-heading h2::before { left: -.18em; }
  .strengths-heading h2::after { left: 0; }
}

/* 大きな背景の面にも、文字を横切る輪郭線は付けません。 */
.section::after,
.page-heading::after,
.page-main::after,
.company-section::after {
  border: 0;
}
