.dl-int-p{
        font-size: 2.5rem;
        text-align: center;
        font-weight: 700;
        margin: 5rem 0 2rem 0;
        letter-spacing: 0.3rem;
 }

.div-box-border{
        border: 1px solid #ccc;
 }

.p-link-btn-box{
  height: 150px;
  padding: 1rem;
  background-color: #f7f7f7;
}

.p-link-btn-box p{
  padding: 2rem;
  text-align: center;
  font-size: 2rem;
  font-weight: 500;
}

/* PCスマホ共通部分　CTCSの特徴、一部共通で要件定義～維持保守あり*/

 .div-flex-pc{
   display: flex;
   flex-wrap: wrap;
   gap: 0 1em;
   margin: 2rem;
   }

 .div-block img{
    display: block;
    width: 230px;
    margin: 2rem auto;
   }

.div-oval {
    display: block;
    width: 230px;
    margin: 1rem auto;
    padding: 10px;
    background-color: #1d1d1d;
    border-radius: 40px;
    text-align: center;
    height: 6rem;
    position:relative
}

.div-oval p{
    font-size: 1.6rem;
    line-height: 1.2;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

/*PCスマホ共通部分 CTCS3つの特徴、要件定義～維持保守ここまで */

/*サービス内容部分 共通*/
.card__content {
  display: flex;
  flex-direction: column;
  padding: 1.3rem 0;
  border: #046C71 1px solid;
  border-radius: 10px;
  width: 100%;
  height: 205px;
  background-color: #fff;
  filter: drop-shadow(5px 5px 5px rgba(0,0,0,0.3));
  margin: 0 5px 5px;
}

.card-li-position{
  margin:0 auto;
}

.div-card-ttl{
 text-align:center;
}
/*サービス内容部分 共通 ここまで*/

/*シェアード・専任　共通*/
.plan-flex{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:2rem;
  margin:3rem 0;
}

.plan{
  display: flex;
  flex-direction: column;
  width:100%;
  padding:2rem;
  border:1px solid #ebebeb;
  box-shadow:0 2px 4px rgba(0,0,0,.12);
  box-sizing:border-box;
}

.plan .box-title{
  width:fit-content;
  margin:0 auto 1rem;
  padding:.5rem 1rem;
  color:#07367f;
  font-size:2.3rem;
  font-weight:500;
  letter-spacing:.1em;
  background:linear-gradient(transparent 70%,#a7d6ff 70%);
}

.plan img{
  display:block;
  height:auto;
  margin:1rem auto;
}

.plan ul{
  list-style-type: disc;
  margin: 2rem;
  line-height:1.5;
  font-size:1.6rem;
}

.plan-price {
  margin-top: auto;
  align-self: center;
  background: #2585c4;
  padding: 0.5em;
  width:fit-content;
  color: #fff;
  font-weight: 500;
  text-align:center;
  font-size: 1.8rem;
  line-height: 1.3;
}

/*シェアード・専任　共通　ここまで*/

/* PCスマホ共通部分　導入までの流れ*/

.flow-headline {
   color: #4788DC;
   font-size: 2.8rem;
   font-weight: 400;
   letter-spacing: 0.08em;
   font-weight: 700;
   margin: 3rem 0 2rem 0;
   line-height: 1.7;
   text-align:center;
  }

 .div-flex-flow{
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(320px, 1fr));
  margin: 0 auto;
   }

 .div-flex-flow img{
    display: block;
    width: 160px;
    margin: 2rem auto;
   }

.div-flex-flow ul{
    list-style-type: disc;
    width: 240px;
    margin: 0 auto;
    line-height: 1.5;
    font-size: 1.4rem;
}


/* PCスマホ共通部分　導入までの流れ ここまで */

@media (min-width: 768px) {

.m-mh-h3k {
  color: #20516A;
  font-size: 3rem;
  margin: 3rem auto;
  line-height: 1.7;
  text-align:center;
}

/*problem:PC用デザイン：開始*/
.problem_wrap {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
}
.problem {
  position: relative;
  width: 230px;
  height: 230px;
  margin-bottom: 30px;
  border: solid 1px #EBEBEB;
  border-radius: 50%;
  box-sizing: border-box;
}
.problem_txt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #20516A;
  line-height: 1.6;
  white-space: nowrap;
  font-size: 1.5rem;
  text-align: center;
}
.problem_txt span {
  font-size: 2rem;
}
/*problem:PC用デザイン：終了*/

/*サービス内容部分 PCのみ*/
.wrapper_grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(190px, 1fr));
  grid-gap: 10px;
  margin: 2rem 0;
}
.card_icon{
  width: 60px;
  max-height: 100%;
  margin: 0 auto;
}

.card-ttl{
  font-size: 1.8rem;
  line-height: 1.5;
  letter-spacing: 0.1rem;
  font-weight: 500;
  color: #07367f;
  margin: 0.5rem auto;
}

.card-ttl span{
  font-size: 1.4rem;
}

.div-block {
  flex: 1;
  padding: 0 2rem;
}

/*サービス内容部分 PCのみここまで*/

/*アコーディオン　PC*/

.accordion-strat-div{
  margin: 3rem 0;
}

.accordion-case {
    font-size: 2rem;
}
.accordion-case:not([open]) {
    margin-bottom: 7px;
}
.accordion-case summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em 2em;
    border-left: 5px solid #287f8f;
    background-color: #e6edf3;
    color: #333333;
    font-weight: 600;
    cursor: pointer;
    line-height: 1.3;
}

.accordion-case summary::-webkit-details-marker {
    display: none;
}

.accordion-case summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 7px;
    height: 7px;
    margin-left: 10px;
    border-bottom: 3px solid #b6bdc3;
    border-right: 3px solid #b6bdc3;
    content: '';
    transition: transform .3s;
}

.accordion-case[open] summary::after {
    transform: rotate(225deg);
}

.accordion-open-div
 {
    background-color: #f8f8f8;
    padding: 0 0 3rem 2rem;
}

.accordion-case p {
    transform: translateY(-10px);
    opacity: 0;
    transition: transform .5s, opacity .5s;
}
.accordion-case[open] p {
    transform: none;
    opacity: 1;
    padding: 0 1rem 0 1rem;
    margin-top: 1rem;
    font-size: 1.7rem;
    line-height: 1.2;
}

.accordion-case-ttl{
    font-size: 2rem;
    line-height: 1.2;
    letter-spacing: 0.1em;
    font-weight: 500;
    color: #fff;
    background-color: #07367f;
    display: inline-block;
    padding: 5px 10px;
    margin: 3rem 0 0 0;
}
/*アコーディオン　PCここまで*/

/*PC サイクル図 */
.flow_cycle {
        display: grid;
        grid-template-columns:minmax(300px,1fr) 50px minmax(300px,1fr);
        grid-template-rows:auto 80px auto;
        grid-template-areas:"start right stable""up . down""improve left analysis";
        place-content: center;
        place-items: center;
    }
.start{
grid-area:start;
}

.stable{
grid-area:stable;
}

.analysis{
grid-area:analysis;
}

.improve{
grid-area:improve;
}

.right{
grid-area:right;
}


.down{
grid-area:down;
}

.left{
grid-area:left;
}

.up{
grid-area:up;
}

.arrow{
display:flex;
justify-content:center;
align-items:center;
}

.arrow svg{
width:50px;
height:50px;
}

.arrow polygon{
fill:#2EA7E0;
}

.right svg{
transform:rotate(0deg);
}

.down svg{
transform:rotate(90deg);
}

.left svg{
transform:rotate(180deg);
}

.up svg{
transform:rotate(270deg);
}

.flow_cycle_content {
  display: flex;
  flex-direction: column;
  padding: 1.3rem 0;
  border: #046C71 1px solid;
  border-radius: 10px;
  width: 70%;
  min-height: 250px;
}

.flow_cycle_ttl-img{
  display:flex;
  align-items: center;
  font-size: 1.6rem;
  line-height: 1.2;
  letter-spacing: 0.1rem;
  font-weight: 500;
  color: #07367f;
}

.flow_cycle_ttl-img img{
  width: 100px;
  margin: 0 2rem;
}

.flow_cycle_content ul{
    list-style-type: disc;
    margin: 1rem auto;
    line-height: 1.5;
    font-size: 1.6rem;
}
/*PC サイクル図 ここまで*/
}

/*スマートフォン用デザイン：開始*/
@media screen and (max-width: 768px){
.m-mh-h3k {
  color: #20516A;
  font-size: 2rem;
  margin: 1rem auto;
  line-height: 1.7;
  text-align:center;
  margin-top: 3rem;
}

/*problem:スマホ用デザイン*/
.problem_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.problem {
  position: relative;
  width: 44vw;
  height: 44vw;
  margin-bottom: 4.6vw;
  border: solid 1px #EBEBEB;
  border-radius: 50%;
  box-sizing: border-box;
}
.problem_txt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #20516A;
  line-height: 1.7;
  white-space: nowrap;
  font-size: 1.2rem;
  text-align:center;
}
.problem_txt span {
  font-size: 1.5rem;
}
/*problem:スマホ用デザイン：終了*/

/*サービス内容部分 スマホのみ*/
.wrapper_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(100px, 1fr));
  grid-gap: 1rem;
  margin: 1rem 0;
    }

.card_icon{
  width: 40px;
  max-height: 100%;
  margin: 0 auto;
}

.card-ttl{
  font-size: 1.6rem;
  line-height: 1.2;
  letter-spacing: 0.1rem;
  font-weight: 500;
  color: #07367f;
  margin: 0.5rem auto;
}

.card-ttl span{
  font-size: 1.4rem;
}

/*サービス内容部分 スマホのみここまで*/

/* CTCSが提供するアプリケーション維持保守3つの特徴 */
.div-flex-pc {
        display: block;
        margin: 2rem auto;
        width: 90%;
    }
.div-flex-pc img {
        display: block;
        margin: 1.5rem auto;
    }
.div-block{
    padding: 1rem;
}
/* CTCSが提供するアプリケーション維持保守3つの特徴ここまで */

/*アコーディオン スマホ*/

.accordion-strat-div{
  margin: 3rem 0;
}

.accordion-case {
    font-size: 2rem;
}
.accordion-case:not([open]) {
    margin-bottom: 7px;
}
.accordion-case summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1rem;
    border-left: 5px solid #287f8f;
    background-color: #e6edf3;
    font-size: 1.5rem;
    color: #333333;
    font-weight: 500;
    cursor: pointer;
}

.accordion-case summary::-webkit-details-marker {
    display: none;
}

.accordion-case summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 0.5rem;
    height: 0.4rem;
    margin-left: 10px;
    border-bottom: 0.2rem solid #b6bdc3;
    border-right: 0.2rem solid #b6bdc3;
    content: '';
    transition: transform .3s;
}

.accordion-case[open] summary::after {
    transform: rotate(225deg);
}

.accordion-open-div
 {
    background-color: #f8f8f8;
    padding: 0 0 3rem 2rem;
}

.accordion-case p {
    transform: translateY(-10px);
    opacity: 0;
    transition: transform .5s, opacity .5s;
}
.accordion-case[open] p {
    transform: none;
    opacity: 1;
    padding: 0 1rem 0 1rem;
    margin-top: 1rem;
    font-size: 1.7rem;
    line-height: 1.2;
}

.accordion-case-ttl{
    font-size: 1.5rem;
    line-height: 1.2;
    letter-spacing: 0.1em;
    font-weight: 500;
    color: #fff;
    background-color: #07367f;
    display: inline-block;
    padding: 5px 10px;
    margin: 3rem 0 0 0;
}

/*アコーディオン スマホここまで*/
/*スマホ サイクル図 */
.flow_cycle {
        display: grid;
        grid-template-columns: minmax(120px,1fr) 24px minmax(120px,1fr);
        grid-template-rows: auto 24px auto;
        grid-template-areas:"start right stable""up . down""improve left analysis";
        place-content: center;
        place-items: center;
    }
.start{
grid-area:start;
}

.stable{
grid-area:stable;
}

.analysis{
grid-area:analysis;
}

.improve{
grid-area:improve;
}

.right{
grid-area:right;
}


.down{
grid-area:down;
}

.left{
grid-area:left;
}

.up{
grid-area:up;
}

.arrow{
display:flex;
justify-content:center;
align-items:center;
}

.arrow svg{
width: 18px;
height: 18px
}

.arrow polygon{
fill:#2EA7E0;
}

.right svg{
transform:rotate(0deg);
}

.down svg{
transform:rotate(90deg);
}

.left svg{
transform:rotate(180deg);
}

.up svg{
transform:rotate(270deg);
}

.flow_cycle_content {
  display: flex;
  flex-direction: column;
  padding: 1.3rem 0;
  border: #046C71 1px solid;
  border-radius: 10px;
  width: 100%;
  height: 140px;
}

.flow_cycle_ttl-img{
  display:flex;
  align-items: center;
  font-size: 1.4rem;
  line-height: 1.2;
  letter-spacing: 0.1rem;
  font-weight: 500;
  color: #07367f;
}

.flow_cycle_ttl-img img{
  width:30%;
  margin:0 0.5rem;
}

.flow_cycle_content ul{
    list-style-type: disc;
    margin: 0.5rem auto;
    line-height: 1.5;
    font-size: 1rem;
}
/*スマホ サイクル図 ここまで*/

}