@import url("//fonts.googleapis.com/css?family=Noto+Sans+JP:400,500,700&display=swap&subset=japanese");
@import url("//fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;1,500;1,700&display=swap");
.sec_service {
  width: 100%;
  position: relative;
  margin-bottom: 50px; }
  @media screen and (min-width: 960px) {
    .sec_service {
      margin-bottom: 240px;
      align-items: flex-start; } }
  .sec_service .service_image {
    width: 80%;
    max-width: 700px;
    margin: 0 auto 20px; }
    @media screen and (min-width: 960px) {
      .sec_service .service_image {
        width: 43%;
        margin: 0;
        position: absolute;
        top: 0;
        z-index: 0; }
        .sec_service .service_image.imgL {
          left: 0; }
        .sec_service .service_image.imgR {
          right: 0; } }
    @media screen and (min-width: 960px) {
      .sec_service .service_image.vertical {
        width: 30%; } }
  .sec_service .service_cont {
    width: 100%;
    position: relative;
    z-index: 1;
    padding: 15px; }
    @media screen and (min-width: 960px) {
      .sec_service .service_cont {
        width: 59%;
        padding: 0; } }
    .sec_service .service_cont .service_sttl {
      margin-bottom: 3px;
      font-family: "Montserrat", sans-serif;
      color: #FFDC00;
      font-weight: 700;
      font-style: italic;
      font-size: 1.5rem;
      display: flex;
      align-items: center; }
      @media screen and (min-width: 960px) {
        .sec_service .service_cont .service_sttl {
          margin-bottom: 10px; } }
      .sec_service .service_cont .service_sttl::after {
        content: '';
        background: #FFDC00;
        height: 1px;
        width: 60px;
        display: inline-block;
        margin-left: 8px; }
      @media screen and (min-width: 960px) {
        .sec_service .service_cont .service_sttl.tR {
          justify-content: flex-end; }
          .sec_service .service_cont .service_sttl.tR::after {
            display: none; }
          .sec_service .service_cont .service_sttl.tR::before {
            content: '';
            background: #FFDC00;
            height: 1px;
            width: 60px;
            display: inline-block;
            margin-right: 8px; } }
    .sec_service .service_cont .service_ttl {
      margin-bottom: 30px;
      font-weight: 700;
      font-size: 2.0rem; }
      @media screen and (min-width: 960px) {
        .sec_service .service_cont .service_ttl {
          margin-bottom: 50px;
          font-size: 3.0rem; } }
      .sec_service .service_cont .service_ttl span {
        font-size: 1.5rem; }
        @media screen and (min-width: 960px) {
          .sec_service .service_cont .service_ttl span {
            font-size: 1.8rem; } }
      .sec_service .service_cont .service_ttl.tR {
        text-align: left; }
        @media screen and (min-width: 960px) {
          .sec_service .service_cont .service_ttl.tR {
            text-align: right; } }
    .sec_service .service_cont .service_txt_wrap {
      width: 100%;
      padding: 22px 15px;
      background: rgba(255, 255, 255, 0.95);
      border-radius: 15px 0 0 0; }
      @media screen and (min-width: 960px) {
        .sec_service .service_cont .service_txt_wrap {
          border-radius: 30px 0 0 0;
          padding: 45px 38px; } }
      .sec_service .service_cont .service_txt_wrap p {
        margin-bottom: 30px; }
      .sec_service .service_cont .service_txt_wrap ul.tag {
        display: inline-flex;
        flex-wrap: wrap; }
        .sec_service .service_cont .service_txt_wrap ul.tag li {
          display: inline-block;
          line-height: 1;
          background: #E7E7E7;
          padding: 5px 10px;
          border-radius: 15px;
          margin-right: 0.8em;
          font-size: 1.3rem;
          margin-bottom: 5px; }
          @media screen and (min-width: 960px) {
            .sec_service .service_cont .service_txt_wrap ul.tag li {
              padding: 8px 12px;
              margin-right: 1.5em;
              font-size: 1.4rem;
              margin-bottom: 10px; } }
  .sec_service::after {
    content: '';
    display: block;
    background: #FFFDD5;
    height: 92%;
    width: 120%;
    position: absolute;
    z-index: -1;
    padding: 40px;
    top: 10%; }
    @media screen and (min-width: 960px) {
      .sec_service::after {
        height: 100%;
        top: -12%; } }
  @media screen and (min-width: 960px) {
    .sec_service.contL .service_cont {
      text-align: left; }
    .sec_service.contL::after {
      right: calc((100vw - 120%) / 2); } }
  @media screen and (min-width: 960px) {
    .sec_service.contR {
      justify-content: flex-end; }
      .sec_service.contR::after {
        left: calc((100vw - 120%) / 2); } }
