#vision h2 { position: relative; font-family: 'Noto Sans JP', sans-serif; font-size: 3.8rem; }
#vision h2::before { content: ''; position: absolute; right: 0; bottom: -33px; left: 0; width: 100px; height: 2px; margin: auto; }

#visual { position: relative; }
#visual figure img { z-index: 0; width: 100%; height: auto; }
#visual .title-area { position: absolute; z-index: 1; top: 0; right: 0; }
#visual .title-area span { position: absolute; bottom: 0; left: 70px; display: inline-block; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 2rem; color: #000; line-height: 1; }

#about { z-index: 0; position: relative; padding: 65px 0; color: #fff; text-align: center; background: #ba0009; overflow: hidden; }
#about::before { content: ''; z-index: 1; position: absolute; bottom: -400px; right: -500px; width: 2000px; height: 500px; background: #cc0001; transform: rotate(-30deg); }
#about h2 { z-index: 2; position: relative; margin-bottom: 55px; font-weight: 500; color: #fff; }
#about h2::before { background: rgba(255, 255, 255, .5); }
#about p { z-index: 2; position: relative; font-size: 1.8rem; line-height: 2; }
#about p + p { margin-top: 40px; }

#visions { padding: 55px 0; text-align: center; }
#visions h2 { margin-bottom: 95px; font-weight: 300; }
#visions h2::before { background: #000; }
#visions strong { display: block; margin-bottom: 30px; font-family: 'Noto Serif JP', serif; font-weight: 600; font-size: 3rem; }
#visions figure img { width: 100%; height: auto; }
#visions p { margin-top: 35px; font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 1.6rem; line-height: 2; }

#strength { position: relative; padding: 85px 0 150px; text-align: center; background: #eee; }
#strength h2 { margin-bottom: 90px; font-weight: 300; }
#strength h2::before { background: #000; }
#strength strong { display: block; margin-bottom: 30px; font-family: 'Noto Serif JP', serif; font-weight: 600; font-size: 3rem; }
#strength > p { font-family: 'Noto Sans JP', sans-serif; font-weight: 700; font-size: 1.6rem; line-height: 2; }
#strength > section { width: 870px; margin: 60px auto 0; text-align: left; }
#strength h3 { padding-bottom: 15px; font-family: 'Noto Sans JP', sans-serif; font-weight: 400; font-size: 2.8rem; color: #cc0001; }
#strength h3 > span { position: relative; display: inline-block; margin-left: 20px; padding-left: 20px; font-size: 4.4rem; color: #000; }
#strength h3 > span::before { content: ''; position: absolute; top: 0; left: 0; width: 1px; height: 80px; background: #ccc; }
#strength section > div { padding: 40px 60px 50px; border-top: 4px solid #cc0001; background: #fff; }
#strength h4 { margin-bottom: 45px; font-family: 'Noto Sans JP', sans-serif; font-weight: 400; font-size: 3.2rem; }
#strength div > p { margin-bottom: 30px; font-family: 'Noto Sans JP', sans-serif; font-weight: 400; font-size: 1.6rem; line-height: 1.8; }
#strength div img { display: block; margin: 0 auto; }

@media ( max-width: 767px ) {
  #vision h2 { font-size: 2.6rem; }
  #vision h2::before {  bottom: -17px; }

  #visual .title-area { top: 20px; width: 50%; }
  #visual .title-area img { width: 100%; height: auto; }
  #visual .title-area span { bottom: -20px; left: 0; font-size: 1.4rem; }

  #about { padding: 30px 15px; }
  #about::before { right: -400px; bottom: -700px; }
  #about p { width: 100%; font-size: 1.6rem; }

  #visions { padding: 40px 0; }
  #visions h2 { margin-bottom: 50px; }
  #visions strong { font-size: 2rem; }
  #visions p { width: 75%; margin: 35px auto 0; font-size: 1.4rem; }

  #strength { margin-bottom: 50px; padding: 40px 15px 50px; }
  #strength h2 { margin-bottom: 40px; }
  #strength strong { font-size: 2rem; }
  #strength > p { width: 100%; font-size: 1.4rem; }
  #strength > section { width: 100%; }
  #strength h3 { font-size: 2rem; text-align: center; }
  #strength h3 > span { display: block; margin-left: 0; padding-left: 0;  font-size: 2.6rem; }
  #strength h3 > span::before { content: none; }
  #strength section > div { padding: 20px 15px 30px; }
  #strength h4 { margin-bottom: 25px; font-size: 2rem; }
  #strength div > p { margin-bottom: 25px; font-size: 1.4rem; }
  #strength div img { width: 100%; height: auto; }
}