.d-flex {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
}

.flex-wrap {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.flex-space {
    -webkit-justify-content: space-between;
    -ms-justify-content: space-between;
    justify-content: space-between;
}

.flex-center {
  -webkit-justify-content: center; /* Safari 6.1+ */
  -ms-justify-content: center; /* IE 10 */
  justify-content: center;
}

h1, h2, h3, p {
    hyphens: auto;
    word-wrap: break-word;
}

main.public-post #post_content .container {
    overflow: initial;
}

main.public-post #post_content p {
    font-size: 18px;
    line-height: 1.6;
    padding: 0 0 0 1.25em;
}

main.public-post #post_content .faq p {
    padding: 0 0 0 0.4em;
}


main.public-post #post_content ul {
    margin: 1em 0 1em 3em;
}

main.public-post #post_content ul li {
    font-size: 20px;
    margin-bottom: 0.5em;
}


main.public-post h2.slant {
    color: #fff;/*文字色（白）*/
    font-size: 20px;/*文字サイズ*/
    padding: 20px;/*文字回りの余白（上下左右）*/
    display: block;
    position: relative;
    font-weight: 500;
    margin-top: 0.8em;
    margin-bottom:  0.8em;
}

@media (max-width: 800px) {

  main.public-post h2.slant {
    padding: 20px 35px 20px 20px;/*文字回りの余白（上下左右）*/
}

}

main.public-post h2.slant:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #4782bc;/*背景色*/
    transform: skew(-10deg);/*背景の傾き*/
    z-index: -1;
}

main.public-post h2.slant:after {
    content: '';
    position: absolute;
    border-left: 15px double #fff;/*左線（太さ 二重線 色）*/
    height: 100%;
    top: 0;
    right: 20px;
    transform: skew(-10deg);/*線の傾き*/
}

h2.mark-up {
    color: #616371;/*文字色*/
    font-size: 18px;/*文字サイズ*/
    padding: 10px 20px;/*文字回りの余白（上下 左右）*/
    display: block;
    border-left: 6px solid #99C1D5;/*二重線左側（太さ 実線 色）*/
    position: relative;
}

h2.mark-up:before {
    content: "";
    display: block;
    position: absolute;
    left: 3px;
    top: 0;
    width: 2px;/*二重線右側の太さ（幅）*/
    height: 100%;
    background: #99C1D5;/*二重線右側の色*/
}

h3.mark-up {
    color: #616371;/*文字色*/
    font-size: 18px;/*文字サイズ*/
    padding: 10px 20px;/*文字回りの余白（上下 左右）*/
    display: block;
    border-left: 6px solid #99C1D5;/*二重線左側（太さ 実線 色）*/
    position: relative;
}

h3.mark-up:before {
    content: "";
    display: block;
    position: absolute;
    left: 3px;
    top: 0;
    width: 2px;/*二重線右側の太さ（幅）*/
    height: 100%;
    background: #99C1D5;/*二重線右側の色*/
}

.group {
    padding: 2em 0;
}

.group:last-child {
    margin-bottom: 4em;
}

.group:first-child {
    padding-top: 0;
}

.group .group-inner {
    padding: 0 1em;
    margin-bottom: 4em;
}

main h2.slant + p {
    margin-top:0.75em;
}

main p + p {
    margin-top:1em;
}

main p + h3.mark-up {
    margin-top:1.75em;
}

#post_content .point {
    padding: 0 1em;
    width: calc(47.5% - 2em);
    margin-bottom: 4em;
}

#post_content .business-pic-box {
    margin-top: 2em;
}

#post_content .business-pic-2 {
    padding: 0 1em;
    width: calc(47.5% - 2em);
    margin-bottom: 4em;
}

#post_content .business-pic-1 {
    padding: 2em 4em;
    background: #fff;
    width: 60%;
    margin-bottom: 4em;
}

@media (max-width: 767px) {

    #post_content .point {
        padding: 0 1em;
        width: 95%;
        margin-bottom: 4em;
    }

    #post_content .business-pic-2 {
        padding: 0 1em;
        width: 95%;
        margin-bottom: 2em;
    }

    #post_content .business-pic-1 {
        padding: 1em;
        width: 100%;
        margin-bottom: 2em;
    }

}

.home.en .main_visual {
    position: relative;
}

.home.en .main_visual img {
    width: 100%;
}

.home.en .main_visual h1 {

  position: absolute; /* h1要素を絶対位置指定 */
  transform: translate(-50%, -50%);
  top: 45%; /* 上端を中央に */
  left: 55%; /* 左端を中央に */
  color: #fff; /* テキストの色 */
  font-size: 44px; /* フォントサイズ */
  text-align: left; /* テキストの中央揃え */
  width: 100%; /* 幅を100%にして親要素に合わせる */
  padding: 10px; /* 必要に応じてパディングを設定 */
  font-weight: normal;
  z-index: 2;
}

.home.en .main_visual h1 span {
    font-size: 48px;
}

@media (max-width: 1500px) {

    .home.en .main_visual h1 {
      font-size: 36px; /* フォントサイズ */
      
    }

    .home.en .main_visual h1 span {
        font-size: 42px;
    }
}

@media (max-width: 1200px) {

    .home.en .main_visual h1 {
  font-size: 32px; /* フォントサイズ */
  left: 52.5%; /* 左端を中央に */
}

.home.en .main_visual h1 span {
    font-size: 38px;
}


}

@media (max-width: 1100px) {

    .home.en .main_visual h1 {
  font-size: 26px; /* フォントサイズ */
  left: 52.5%; /* 左端を中央に */
}

.home.en .main_visual h1 span {
    font-size: 32px;
}


}

@media (max-width: 900px) {

    .home.en .main_visual h1 {
  font-size: 22px; /* フォントサイズ */
  left: 52.5%; /* 左端を中央に */
}

.home.en .main_visual h1 span {
    font-size: 26px;
}


}

@media (max-width: 767px) {

.home.en .main_visual h1 {

  position: absolute; /* h1要素を絶対位置指定 */
  transform: translate(-50%, -50%);
  top: 50%; /* 上端を中央に */
  left: 55%; /* 左端を中央に */
  color: #fff; /* テキストの色 */
  font-size: 36px; /* フォントサイズ */
  text-align: left; /* テキストの中央揃え */
  width: 100%; /* 幅を100%にして親要素に合わせる */
  padding: 10px; /* 必要に応じてパディングを設定 */
  font-weight: normal;
  z-index: 2;
}

.home.en .main_visual h1 span {
    font-size: 40px;
}


}

@media (max-width: 600px) {

.home.en .main_visual h1 {

  position: absolute; /* h1要素を絶対位置指定 */
  transform: translate(-50%, -50%);
  top: 50%; /* 上端を中央に */
  left: 52.5%; /* 左端を中央に */
  color: #fff; /* テキストの色 */
  font-size: 26px; /* フォントサイズ */
  text-align: left; /* テキストの中央揃え */
  width: 100%; /* 幅を100%にして親要素に合わせる */
  padding: 10px; /* 必要に応じてパディングを設定 */
  font-weight: normal;
  z-index: 2;
}

.home.en .main_visual h1 span {
    font-size: 30px;
}


}

@media (max-width: 420px) {

.home.en .main_visual h1 {

  position: absolute; /* h1要素を絶対位置指定 */
  transform: translate(-50%, -50%);
  top: 50%; /* 上端を中央に */
  left: 52.5%; /* 左端を中央に */
  color: #fff; /* テキストの色 */
  font-size: 20px; /* フォントサイズ */
  text-align: left; /* テキストの中央揃え */
  width: 100%; /* 幅を100%にして親要素に合わせる */
  padding: 10px; /* 必要に応じてパディングを設定 */
  font-weight: normal;
  z-index: 2;
}

.home.en .main_visual h1 span {
    font-size: 24px;
}


}

@media (max-width: 340px) {

.home.en .main_visual h1 {

  position: absolute; /* h1要素を絶対位置指定 */
  transform: translate(-50%, -50%);
  top: 50%; /* 上端を中央に */
  left: 52.5%; /* 左端を中央に */
  color: #fff; /* テキストの色 */
  font-size: 18px; /* フォントサイズ */
  text-align: left; /* テキストの中央揃え */
  width: 100%; /* 幅を100%にして親要素に合わせる */
  padding: 10px; /* 必要に応じてパディングを設定 */
  font-weight: normal;
  z-index: 2;
}

.home.en .main_visual h1 span {
    font-size: 20px;
}


}

.black_over {
  position: absolute; /* オーバーレイを絶対位置指定 */
  top: 0; /* 上端を合わせる */
  left: 0; /* 左端を合わせる */
  width: 100%; /* 幅を100%に */
  height: 100%; /* 高さを100%に */
  background-color: rgba(0, 0, 0, 0.5); /* 半透明の黒 */
  z-index: 1; /* テキストより後ろに配置 */
}


@media only screen and (max-width: 768px) { 

  .en .each-service .service.left .text-zone {
    transform: unset;
  }

  .en .each-service .service.right .text-zone {
    transform: unset;
  }

  .each-service .service.right .text-zone,
  .each-service .service.left .text-zone {
    padding: 40px 12px 40px 12px;
  }

  .en .each-service .service .text-zone p.service-sub {
    width: 100%;
  }


}