@charset "utf-8";
@media (min-width:1280px),
print {
  .s-list {
    display: grid;
    gap: 32px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 40px 0 38px
  }

  .s-list__item {
    padding: 32px 40px 30px;
    background: #fff
  }

  .s-list__item .it-text {
    position: relative;
    padding-bottom: 16px;
    margin-bottom: 9px
  }

  .s-list__item .it-text:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 20px;
    height: 1px;
    background-color: var(--primary-color)
  }

  .s-list__item .it-tt {
    font-weight: 400;
    font-size: 2.4rem;
    line-height: 1.8;
    letter-spacing: .03em
  }

  .s-list02 {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 40px 0 21px
  }

  .s-list02__item {
    padding: 26px 0;
    background: #f4f4f4;
    text-align: center
  }

  .s-list02__item .it-thumb {
    padding-bottom: 20px;
    margin-bottom: 24px;
    border-bottom: 1px solid #ebebeb
  }

  .s-list02__item .it-thumb__img {
    width: 100px;
    height: 100px;
    border: 1px solid rgba(51, 51, 51, .1);
    border-radius: 1000px;
    overflow: hidden;
    display: inline-flex;
    justify-content: center;
    align-items: center
  }

  .s-list02__item .it-thumb__img img {
    width: 45px
  }

  .s-list02__item .it-thumb__caption {
    font-family: var(--font-en);
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 1.2;
    letter-spacing: .05em;
    margin-top: 14px
  }

  .s-list02__item .it-text {
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em
  }

  .s-list02__item .it-text__sub {
    display: block;
    margin-top: 8px;
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.8;
    letter-spacing: .05em;
    color: rgba(51, 51, 51, .5)
  }

  .s-list02--5col {
    grid-template-columns: repeat(5, 1fr)
  }

  .s-list02--3col {
    grid-template-columns: repeat(3, 1fr)
  }

  .s-flow {
    display: grid;
    gap: 39px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-bottom: 44px
  }

  .s-flow__item {
    padding: 27px 32px 26px;
    background: #f4f4f4
  }

  .s-flow__item:not(:last-of-type) {
    position: relative
  }

  .s-flow__item:not(:last-of-type):after {
    content: "";
    position: absolute;
    top: 50%;
    right: -25px;
    transform: translateY(-50%);
    width: 14px;
    height: 12px;
    background-image: url(../images/service/cmo/ic_ar.svg?v6f16bd9453a53167bd4c726561aada84);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-flow__item .item-no {
    font-family: var(--font-en);
    display: block;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 1.2;
    letter-spacing: .05em;
    color: var(--primary-color);
    margin-bottom: 11px
  }

  .s-flow__item .item-tt {
    font-weight: 400;
    font-size: 1.8rem;
    line-height: 1.8;
    letter-spacing: .05em;
    display: block;
    margin-bottom: 6px
  }

  .s-flow--4col {
    grid-template-columns: repeat(4, 1fr);
    gap: 22px 39px;
    padding-right: 26px
  }

  .s-box {
    padding: 22px;
    background: #f4f4f4;
    margin-top: 40px;
    font-weight: 400;
    font-size: 2rem;
    line-height: 1.8;
    letter-spacing: .03em
  }

  .s-box .line {
    margin: 0 6px 0 10px
  }

  .s-box02 {
    padding: 32px;
    background: #f4f4f4
  }

  .s-box02--type02 {
    padding-top: 25px;
    padding-bottom: 30px
  }

  .s-box02 .s-ar {
    display: inline-flex;
    flex-wrap: wrap;
    margin-bottom: 24px;
    margin-right: 25px
  }

  .s-box02 .s-ar>span {
    position: relative;
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    padding: 4px 11px;
    display: inline-flex;
    justify-content: center;
    align-items: center
  }

  .s-box02 .s-ar>span:not(:last-of-type) {
    margin-right: 18px
  }

  .s-box02 .s-ar>span:after {
    content: "";
    position: absolute;
    top: 50%;
    right: -17px;
    transform: translateY(-50%);
    width: 18px;
    height: 100%;
    background-color: #ebebeb;
    clip-path: polygon(100% 50%, 0 0, 0 100%);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-sw {
    display: inline-flex;
    flex-wrap: wrap;
    margin-right: 8px
  }

  .s-box02 .s-sw>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: 4px 11px;
    margin-left: 3px
  }

  .s-box02 .s-sw>span:not(:last-of-type) {
    margin-right: 48px;
    position: relative
  }

  .s-box02 .s-sw>span:not(:last-of-type):after {
    content: "";
    position: absolute;
    top: 50%;
    right: -43px;
    transform: translateY(-50%);
    width: 34px;
    height: 12px;
    background-image: url(../images/service/cmo/ic_sw.png?v0fda04adc2a9414a1f14d03007dc8192);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-plus {
    display: inline-flex;
    flex-wrap: wrap;
    margin-right: 7px;
    margin-top: 16px;
    margin-left: -3px
  }

  .s-box02 .s-plus--type02 {
    margin-bottom: 15px
  }

  .s-box02 .s-plus--type02>span:not(:last-of-type):after {
    display: none
  }

  .s-box02 .s-plus>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: 4px 11px;
    margin-left: 3px
  }

  .s-box02 .s-plus>span:not(:last-of-type) {
    margin-right: 32px;
    position: relative
  }

  .s-box02 .s-plus>span:not(:last-of-type):after {
    content: "";
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: -23px;
    width: 12px;
    height: 12px;
    background-image: url(../images/service/cmo/ic_plus.svg?v2907525f8334e0fcc6c8b9b329e51ead);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-dot {
    display: inline-flex;
    flex-wrap: wrap;
    margin-right: 7px;
    margin-top: 16px
  }

  .s-box02 .s-dot--type02 {
    margin-bottom: 15px
  }

  .s-box02 .s-dot--type02>span:not(:last-of-type):after {
    display: none
  }

  .s-box02 .s-dot>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: 4px 11px;
    margin-left: 3px
  }

  .s-box02 .s-dot>span:not(:last-of-type) {
    margin-right: 32px;
    position: relative
  }

  .s-box02 .s-dot>span:not(:last-of-type):after {
    content: "・";
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: -26px;
    font-size: 1.6rem;
    line-height: 1;
    text-align: center;
    color: var(--text-color);
    display: flex;
    align-items: center
  }

  .s-box02 .hl {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: 4px 11px;
    margin: 0 9px
  }

  .s-box02--custom .s-dot {
    margin-top: 0
  }

  .s-box02--custom p {
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em
  }

  .s-box02--custom p+p {
    margin-top: 22px
  }

  .s-box02--custom p sup {
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    position: relative;
    top: -7px;
    margin-left: 19px
  }

  .s-box02--custom p sub {
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .05em;
    position: relative;
    bottom: -7px;
    left: -7px;
    margin-right: 19px
  }

  .s-listCheck__it {
    position: relative;
    padding-left: 37px
  }

  .s-listCheck__it+.s-listCheck__it {
    margin-top: 9px
  }

  .s-listCheck__it:before {
    content: "";
    position: absolute;
    top: 4px;
    left: 0;
    width: 23px;
    height: 23px;
    background-image: url(../images/service/cmo/ic_check.png?v5fe7f792b15ad18cdc43a46430057873);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .page-tl {
    margin-bottom: 40px
  }

  .service-index .box-list {
    margin-top: 48px
  }

  .service-index .bridge {
    text-align: center
  }

  .service-index .solutions {
    text-align: center
  }

  .service-index .solutions .box-list {
    margin-bottom: 46px
  }

  .service-index .solutions .page-tl02 {
    text-align: center
  }

  .service-index .solutions__tt {
    font-weight: 400;
    font-size: 2.8rem;
    line-height: 1.8;
    letter-spacing: .03em;
    margin-bottom: 27px
  }

  .page-tl02 {
    text-align: left
  }

  .bridge {
    text-align: center
  }

  .bridge p+p {
    margin-top: 29px
  }

  .our-cmo .our-list__item {
    padding: 50px 0 57px
  }

  .our-cmo .our-list__item:first-child {
    padding-top: 0
  }

  .our-cmo .our-list__item:not(:last-of-type) {
    border-bottom: 1px solid rgba(51, 51, 51, .1)
  }

  .our-cmo .our-list__item:last-of-type {
    padding-bottom: 0
  }

  .our-cmo .our-list__item .page-tl03~.page-tl03 {
    margin-top: 45px
  }

  .our-cmo .our-list__item .note {
    margin-top: 24px
  }

  .other .box-list {
    margin-top: 46px
  }
}

@media (min-width:768px) and (max-width:1279px) {
  .s-list {
    display: grid;
    gap: 2.5vw;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 3.13vw 0 2.97vw
  }

  .s-list__item {
    padding: 2.5vw 3.13vw 2.34vw;
    background: #fff
  }

  .s-list__item .it-text {
    position: relative;
    padding-bottom: 1.25vw;
    margin-bottom: .7vw
  }

  .s-list__item .it-text:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 1.56vw;
    height: 1px;
    background-color: var(--primary-color)
  }

  .s-list__item .it-tt {
    font-weight: 400;
    font-size: 1.88vw;
    line-height: 1.8;
    letter-spacing: .03em
  }

  .s-list02 {
    display: grid;
    gap: 1.25vw;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 3.13vw 0 1.64vw
  }

  .s-list02__item {
    padding: 2.03vw 0;
    background: #f4f4f4;
    text-align: center
  }

  .s-list02__item .it-thumb {
    padding-bottom: 1.56vw;
    margin-bottom: 1.88vw;
    border-bottom: 1px solid #ebebeb
  }

  .s-list02__item .it-thumb__img {
    width: 7.81vw;
    height: 7.81vw;
    border: 1px solid rgba(51, 51, 51, .1);
    border-radius: 78.13vw;
    overflow: hidden;
    display: inline-flex;
    justify-content: center;
    align-items: center
  }

  .s-list02__item .it-thumb__img img {
    width: 3.52vw
  }

  .s-list02__item .it-thumb__caption {
    font-family: var(--font-en);
    font-weight: 400;
    font-size: .94vw;
    line-height: 1.2;
    letter-spacing: .05em;
    margin-top: 1.09vw
  }

  .s-list02__item .it-text {
    font-weight: 400;
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em
  }

  .s-list02__item .it-text__sub {
    display: block;
    margin-top: .63vw;
    font-weight: 400;
    font-size: 1.09vw;
    line-height: 1.8;
    letter-spacing: .05em;
    color: rgba(51, 51, 51, .5)
  }

  .s-list02--5col {
    grid-template-columns: repeat(5, 1fr)
  }

  .s-list02--3col {
    grid-template-columns: repeat(3, 1fr)
  }

  .s-flow {
    display: grid;
    gap: 3.05vw;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-bottom: 3.44vw
  }

  .s-flow__item {
    padding: 2.11vw 2.5vw 2.03vw;
    background: #f4f4f4
  }

  .s-flow__item:not(:last-of-type) {
    position: relative
  }

  .s-flow__item:not(:last-of-type):after {
    content: "";
    position: absolute;
    top: 50%;
    right: -1.95vw;
    transform: translateY(-50%);
    width: 1.09vw;
    height: .94vw;
    background-image: url(../images/service/cmo/ic_ar.svg?v6f16bd9453a53167bd4c726561aada84);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-flow__item .item-no {
    font-family: var(--font-en);
    display: block;
    font-weight: 400;
    font-size: .94vw;
    line-height: 1.2;
    letter-spacing: .05em;
    color: var(--primary-color);
    margin-bottom: .86vw
  }

  .s-flow__item .item-tt {
    font-weight: 400;
    font-size: 1.41vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: block;
    margin-bottom: .47vw
  }

  .s-flow--4col {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.72vw 3.05vw;
    padding-right: 2.03vw
  }

  .s-box {
    padding: 1.72vw;
    background: #f4f4f4;
    margin-top: 3.13vw;
    font-weight: 400;
    font-size: 1.56vw;
    line-height: 1.8;
    letter-spacing: .03em
  }

  .s-box .line {
    margin: 0 .47vw 0 .78vw
  }

  .s-box02 {
    padding: 2.5vw;
    background: #f4f4f4
  }

  .s-box02--type02 {
    padding-top: 1.95vw;
    padding-bottom: 2.34vw
  }

  .s-box02 .s-ar {
    display: inline-flex;
    flex-wrap: wrap;
    margin-bottom: 1.88vw;
    margin-right: 1.95vw
  }

  .s-box02 .s-ar>span {
    position: relative;
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    padding: .31vw .86vw;
    display: inline-flex;
    justify-content: center;
    align-items: center
  }

  .s-box02 .s-ar>span:not(:last-of-type) {
    margin-right: 1.41vw
  }

  .s-box02 .s-ar>span:after {
    content: "";
    position: absolute;
    top: 50%;
    right: -1.33vw;
    transform: translateY(-50%);
    width: 1.41vw;
    height: 100%;
    background-color: #ebebeb;
    clip-path: polygon(100% 50%, 0 0, 0 100%);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-sw {
    display: inline-flex;
    flex-wrap: wrap;
    margin-right: .63vw
  }

  .s-box02 .s-sw>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: .31vw .86vw;
    margin-left: .23vw
  }

  .s-box02 .s-sw>span:not(:last-of-type) {
    margin-right: 3.75vw;
    position: relative
  }

  .s-box02 .s-sw>span:not(:last-of-type):after {
    content: "";
    position: absolute;
    top: 50%;
    right: -3.36vw;
    transform: translateY(-50%);
    width: 2.66vw;
    height: .94vw;
    background-image: url(../images/service/cmo/ic_sw.png?v0fda04adc2a9414a1f14d03007dc8192);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-plus {
    display: inline-flex;
    flex-wrap: wrap;
    margin-right: .55vw;
    margin-top: 1.25vw;
    margin-left: -.23vw
  }

  .s-box02 .s-plus--type02 {
    margin-bottom: 1.17vw
  }

  .s-box02 .s-plus--type02>span:not(:last-of-type):after {
    display: none
  }

  .s-box02 .s-plus>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: .31vw .86vw;
    margin-left: .23vw
  }

  .s-box02 .s-plus>span:not(:last-of-type) {
    margin-right: 2.5vw;
    position: relative
  }

  .s-box02 .s-plus>span:not(:last-of-type):after {
    content: "";
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: -1.8vw;
    width: .94vw;
    height: .94vw;
    background-image: url(../images/service/cmo/ic_plus.svg?v2907525f8334e0fcc6c8b9b329e51ead);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-dot {
    display: inline-flex;
    flex-wrap: wrap;
    margin-right: .55vw;
    margin-top: 1.25vw
  }

  .s-box02 .s-dot--type02 {
    margin-bottom: 1.17vw
  }

  .s-box02 .s-dot--type02>span:not(:last-of-type):after {
    display: none
  }

  .s-box02 .s-dot>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: .31vw .86vw;
    margin-left: .23vw
  }

  .s-box02 .s-dot>span:not(:last-of-type) {
    margin-right: 2.5vw;
    position: relative
  }

  .s-box02 .s-dot>span:not(:last-of-type):after {
    content: "・";
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: -2.03vw;
    font-size: 1.25vw;
    line-height: 1;
    text-align: center;
    color: var(--text-color);
    display: flex;
    align-items: center
  }

  .s-box02 .hl {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: .31vw .86vw;
    margin: 0 .7vw
  }

  .s-box02--custom .s-dot {
    margin-top: 0
  }

  .s-box02--custom p {
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em
  }

  .s-box02--custom p+p {
    margin-top: 1.72vw
  }

  .s-box02--custom p sup {
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    position: relative;
    top: -.55vw;
    margin-left: 1.48vw
  }

  .s-box02--custom p sub {
    font-size: 1.25vw;
    line-height: 1.8;
    letter-spacing: .05em;
    position: relative;
    bottom: -.55vw;
    left: -.55vw;
    margin-right: 1.48vw
  }

  .s-listCheck__it {
    position: relative;
    padding-left: 2.89vw
  }

  .s-listCheck__it+.s-listCheck__it {
    margin-top: .7vw
  }

  .s-listCheck__it:before {
    content: "";
    position: absolute;
    top: .31vw;
    left: 0;
    width: 1.8vw;
    height: 1.8vw;
    background-image: url(../images/service/cmo/ic_check.png?v5fe7f792b15ad18cdc43a46430057873);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .page-tl {
    margin-bottom: 3.13vw
  }

  .service-index .box-list {
    margin-top: 3.75vw
  }

  .service-index .bridge {
    text-align: center
  }

  .service-index .solutions {
    text-align: center
  }

  .service-index .solutions .box-list {
    margin-bottom: 3.59vw
  }

  .service-index .solutions .page-tl02 {
    text-align: center
  }

  .service-index .solutions__tt {
    font-weight: 400;
    font-size: 2.19vw;
    line-height: 1.8;
    letter-spacing: .03em;
    margin-bottom: 2.11vw
  }

  .page-tl02 {
    text-align: left
  }

  .bridge {
    text-align: center
  }

  .bridge p+p {
    margin-top: 2.27vw
  }

  .our-cmo .our-list__item {
    padding: 3.91vw 0 4.45vw
  }

  .our-cmo .our-list__item:first-child {
    padding-top: 0
  }

  .our-cmo .our-list__item:not(:last-of-type) {
    border-bottom: 1px solid rgba(51, 51, 51, .1)
  }

  .our-cmo .our-list__item:last-of-type {
    padding-bottom: 0
  }

  .our-cmo .our-list__item .page-tl03~.page-tl03 {
    margin-top: 3.52vw
  }

  .our-cmo .our-list__item .note {
    margin-top: 1.88vw
  }

  .other .box-list {
    margin-top: 3.59vw
  }
}

@media only screen and (max-width:767px) {
  .s-list {
    display: grid;
    gap: 4.1vw;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin: 10.26vw 0 9.74vw;
    text-align: center
  }

  .s-list__item {
    padding: 6.67vw 5.13vw 6.15vw;
    background: #fff
  }

  .s-list__item .it-text {
    position: relative;
    padding-bottom: 4.1vw;
    margin-bottom: 3.08vw
  }

  .s-list__item .it-text:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 5.13vw;
    height: 1px;
    background-color: var(--primary-color)
  }

  .s-list__item .it-tt {
    font-weight: 400;
    font-size: 4.62vw;
    line-height: 1.8;
    letter-spacing: .03em
  }

  .s-list02 {
    display: grid;
    gap: 4.1vw;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin: 10.26vw 0 6.92vw
  }

  .s-list02__item {
    background: #f4f4f4;
    text-align: center;
    display: flex
  }

  .s-list02__item .it-thumb {
    padding: 5.9vw 0 5.38vw;
    width: 28.97vw;
    flex-shrink: 0;
    border-right: 1px solid #ebebeb
  }

  .s-list02__item .it-thumb__img {
    width: 16.67vw;
    height: 16.67vw;
    border: 1px solid rgba(51, 51, 51, .1);
    border-radius: 256.41vw;
    overflow: hidden;
    display: inline-flex;
    justify-content: center;
    align-items: center
  }

  .s-list02__item .it-thumb__img img {
    width: 8.46vw
  }

  .s-list02__item .it-thumb__caption {
    font-family: var(--font-en);
    font-weight: 400;
    font-size: 2.82vw;
    line-height: 1.2;
    letter-spacing: .05em;
    margin-top: 3.59vw
  }

  .s-list02__item .it-text {
    width: 100%;
    font-weight: 400;
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    text-align: left;
    padding: 6.67vw 6.15vw 5.9vw;
    display: flex;
    flex-direction: column;
    justify-content: center
  }

  .s-list02__item .it-text__sub {
    display: block;
    margin-top: 2.05vw;
    font-weight: 400;
    font-size: 3.08vw;
    line-height: 1.8;
    letter-spacing: .05em;
    color: rgba(51, 51, 51, .5)
  }

  .s-flow {
    display: grid;
    gap: 8.46vw;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-bottom: 6.15vw
  }

  .s-flow__item {
    padding: 4.62vw 5.9vw;
    background: #f4f4f4
  }

  .s-flow__item:not(:last-of-type) {
    position: relative
  }

  .s-flow__item:not(:last-of-type):after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -5.9vw;
    transform: translateX(-50%);
    width: 3.08vw;
    height: 3.33vw;
    background-image: url(../images/service/cmo/ic_ar_sp.svg?va679e98731892b25caeb9cc259bc5ef6);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-flow__item .item-no {
    font-family: var(--font-en);
    display: block;
    font-weight: 400;
    font-size: 2.82vw;
    line-height: 1.2;
    letter-spacing: .05em;
    color: var(--primary-color);
    margin-bottom: 1.28vw
  }

  .s-flow__item .item-tt {
    font-weight: 400;
    font-size: 4.1vw;
    line-height: 1.6;
    letter-spacing: .05em;
    display: block;
    margin-bottom: 1px;
    margin-top: 1.54vw
  }

  .s-box {
    padding: 4.1vw;
    background: #f4f4f4;
    margin-top: 10.26vw;
    font-weight: 400;
    font-size: 4.1vw;
    line-height: 1.6;
    letter-spacing: .03em;
    text-align: center
  }

  .s-box .line {
    margin: 0 1.54vw 0 2.56vw
  }

  .s-box02 {
    padding: 8.21vw;
    background: #f4f4f4
  }

  .s-box02 .it-text01 {
    margin-bottom: 4.36vw
  }

  .s-box02--type02 {
    padding-top: 7.69vw;
    padding-bottom: 7.69vw
  }

  .s-box02--type02 .it-text01 {
    margin-bottom: 0
  }

  .s-box02 .s-ar {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: -2.31vw
  }

  .s-box02 .s-ar>span {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    padding: 1.03vw 2.82vw;
    margin-bottom: 3.85vw
  }

  .s-box02 .s-ar>span:not(:last-of-type) {
    margin-right: 4.62vw
  }

  .s-box02 .s-ar>span:after {
    content: "";
    position: absolute;
    top: 50%;
    right: -4.62vw;
    transform: translateY(-50%);
    width: 4.62vw;
    height: 100%;
    background-color: #ebebeb;
    clip-path: polygon(100% 50%, 0 0, 0 100%);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-sw {
    display: flex;
    flex-wrap: wrap;
    margin: 2.05vw 0
  }

  .s-box02 .s-sw>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: 1.03vw 2.82vw;
    margin-left: .77vw
  }

  .s-box02 .s-sw>span:not(:last-of-type) {
    margin-right: 12.31vw;
    position: relative
  }

  .s-box02 .s-sw>span:not(:last-of-type):after {
    content: "";
    position: absolute;
    top: 50%;
    right: -11.03vw;
    transform: translateY(-50%);
    width: 8.72vw;
    height: 3.08vw;
    background-image: url(../images/service/cmo/ic_sw.png?v0fda04adc2a9414a1f14d03007dc8192);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-plus {
    margin: 2.56vw 0 3.08vw
  }

  .s-box02 .s-plus+span {
    display: block;
    text-align: center
  }

  .s-box02 .s-plus>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: block;
    text-align: center;
    padding: 1.03vw 2.82vw
  }

  .s-box02 .s-plus>span:not(:last-of-type) {
    margin-bottom: 7.18vw;
    position: relative
  }

  .s-box02 .s-plus>span:not(:last-of-type):after {
    content: "";
    position: absolute;
    bottom: -4.62vw;
    margin: auto;
    left: 0;
    right: 0;
    width: 3.08vw;
    height: 3.08vw;
    background-image: url(../images/service/cmo/ic_plus.svg?v2907525f8334e0fcc6c8b9b329e51ead);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .s-box02 .s-plus--type02 {
    margin-bottom: 1.79vw
  }

  .s-box02 .s-plus--type02>span {
    display: inline-block
  }

  .s-box02 .s-plus--type02>span:not(:last-of-type):after {
    display: none
  }

  .s-box02 .s-dot {
    margin: 2.56vw 0 3.08vw;
    display: block
  }

  .s-box02 .s-dot+span {
    display: block;
    text-align: center
  }

  .s-box02 .s-dot>span {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: block;
    text-align: center;
    padding: 1.03vw 2.82vw
  }

  .s-box02 .s-dot>span:not(:last-of-type) {
    margin-bottom: 7.18vw;
    position: relative
  }

  .s-box02 .s-dot>span:not(:last-of-type):after {
    content: "・";
    position: absolute;
    bottom: -5.38vw;
    margin: auto;
    left: 0;
    right: 0;
    font-size: 4.1vw;
    line-height: 1;
    text-align: center;
    color: var(--text-color)
  }

  .s-box02 .s-dot--type02 {
    margin-bottom: 1.79vw
  }

  .s-box02 .s-dot--type02>span {
    display: inline-block
  }

  .s-box02 .s-dot--type02>span:not(:last-of-type):after {
    display: none
  }

  .s-box02 .hl {
    background-color: #ebebeb;
    font-weight: 400;
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    display: inline-block;
    padding: 1.03vw 2.05vw;
    margin: 2.31vw
  }

  .s-box02--custom p {
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em
  }

  .s-box02--custom p+p {
    margin-top: 3.85vw
  }

  .s-box02--custom p sup {
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    position: relative;
    top: -1.79vw
  }

  .s-box02--custom p sub {
    font-size: 3.59vw;
    line-height: 1.8;
    letter-spacing: .05em;
    position: relative;
    bottom: -1.79vw;
    left: -1.79vw
  }

  .s-listCheck__it {
    position: relative;
    padding-left: 7.69vw
  }

  .s-listCheck__it+.s-listCheck__it {
    margin-top: 3.08vw
  }

  .s-listCheck__it:before {
    content: "";
    position: absolute;
    top: 1.28vw;
    left: 0;
    width: 4.62vw;
    height: 4.62vw;
    background-image: url(../images/service/cmo/ic_check.png?v5fe7f792b15ad18cdc43a46430057873);
    background-repeat: no-repeat;
    background-size: 100% 100%
  }

  .service-index .box-list {
    margin-top: 13.08vw
  }

  .service-index .bridge .page-tl {
    justify-content: flex-start;
    text-align: left
  }

  .service-index .solutions .page-tl {
    justify-content: flex-start;
    text-align: left;
    margin-bottom: 8.97vw
  }

  .service-index .solutions .box-list {
    margin: 8.97vw 0
  }

  .service-index .solutions .page-tl02 {
    text-align: center
  }

  .service-index .solutions__tt {
    font-weight: 400;
    font-size: 5.64vw;
    line-height: 1.8;
    letter-spacing: .03em;
    margin-bottom: 7.44vw;
    text-align: left
  }

  .other .box-list {
    margin-top: 8.97vw
  }

  .bridge {
    padding-top: 9.23vw
  }

  .bridge p+p {
    margin-top: 6.41vw
  }

  .our-cmo .our-list__item {
    padding: 14.36vw 0 9.74vw
  }

  .our-cmo .our-list__item:first-child {
    padding-top: 2.31vw
  }

  .our-cmo .our-list__item:not(:last-of-type) {
    border-bottom: 1px solid rgba(51, 51, 51, .1)
  }

  .our-cmo .our-list__item:last-of-type {
    padding-bottom: 0
  }

  .our-cmo .our-list__item .page-tl03~.page-tl03 {
    margin-top: 10vw
  }

  .our-cmo .our-list__item .note {
    margin-top: 6.15vw
  }
}


.section-04 {
    background-color: #e3e3e3
}

@media(min-width: 768px) {
    .section-04 {
        padding: min(5.1602814699vw, 66px) 0 min(7.036747459vw, 90px);

        margin: min(10.9460516028vw, 140px) min(3.5183737295vw, 45px) 0;
    }
}

@media only screen and (max-width: 767px) {
    .section-04 {
        padding: 12.8vw 0 16.5333333333vw;
        margin: 18.6666666667vw 5.3333333333vw 6.6666666667vw;
    }
}

.section-04 .group-box {
    text-align: center
}

.section-04 .group-box__text-01 {
    letter-spacing: 0;
    font-weight: 500;
    line-height: 1.8
}

.section-04 .group-box__text-01::before,
.section-04 .group-box__text-01::after {
    content: "";
    display: block;
    width: 0;
    height: 0
}

.section-04 .group-box__text-01::before {
    margin-top: calc((1 - 1.8)*.5em)
}

.section-04 .group-box__text-01::after {
    margin-bottom: calc((1 - 1.8)*.5em)
}

.section-04 .group-box__text-01 {
    margin-bottom: 1.5em
}

@media(min-width: 768px) {
    .section-04 .group-box__text-01 {
        font-size: min(2.5019546521vw, 32px)
    }
}

@media only screen and (max-width: 767px) {
    .section-04 .group-box__text-01 {
        font-size: 6.6666666667vw
    }
}

.section-04 .group-box__text-01 .red {
    color: var(--primary-color)
}

.section-04 .group-box__text-02 {
    letter-spacing: 0;
    font-weight: 500;
    line-height: 1.8
}

.section-04 .group-box__text-02::before,
.section-04 .group-box__text-02::after {
    content: "";
    display: block;
    width: 0;
    height: 0
}

.section-04 .group-box__text-02::before {
    margin-top: calc((1 - 1.8)*.5em)
}

.section-04 .group-box__text-02::after {
    margin-bottom: calc((1 - 1.8)*.5em)
}

.section-04 .group-box__text-02 {
    color: #333
}

@media(min-width: 768px) {
    .section-04 .group-box__text-02 {
        font-size: min(1.250977326vw, 16px);
        margin-bottom: 1.563em
    }
}

@media only screen and (max-width: 767px) {
    .section-04 .group-box__text-02 {
        font-size: 3.4666666667vw;
        text-align: left;
        margin-bottom: 8vw
    }
}

.section-04 .group-box__flow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

@media(min-width: 768px) {
    .section-04 .group-box__flow {
        gap: 2.375em
    }
}

@media only screen and (max-width: 767px) {
    .section-04 .group-box__flow {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 1em
    }
}

@media(min-width: 768px) {
    .section-04 .group-box__flow .c-flow-01__item {
        min-width: min(19.5465207193vw, 250px);
        padding: min(.5473025801vw, 7px)
    }
}

@media only screen and (max-width: 767px) {
    .section-04 .group-box__flow .c-flow-01__item {
        padding: 1em;
        line-height: 1
    }
}

@media(min-width: 768px) {
    .section-04 .group-box__btn {
        margin-top: auto;
        padding-top: min(4.6911649726vw, 60px)
    }
}

@media only screen and (max-width: 767px) {
    .section-04 .group-box__btn {
        margin-top: 11.4666666667vw
    }
}

/*# sourceMappingURL=academy.css.map */

.service_table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    text-align-last: center;
}
.service_table th,
.service_table td {
  border: 1px solid #c8c8c8;
}
.service_table td {
  padding: 20px 10px;
}
.service_table th.cow01 {
  width: 150px;
}
.service_table th.cow02 {
  width: calc((100% - 150px) / 3);
  height: 80px;
  color: var(--primary-color);
  background-color: #fff;
}
@media only screen and (max-width: 767px) {
  .service_table td {
    padding: 15px 10px;
  }
  .service_table th.cow02 {
    width: 100%;
    height: 40px;
  }
  .service_table td.cow01 {
    width: 30%;
  }
  .service_table td.cow02 {
    width: 70%;
  }
}