/* serviceDetails */
.service-features {
  margin-top: 2rem;
}

.feature-card {
  position: relative;
  padding: 3.5rem 5rem;
  background-image: repeating-linear-gradient(90deg, #bbbbbb, #bbbbbb 6px, transparent 6px, transparent 11px), repeating-linear-gradient(90deg, #bbbbbb, #bbbbbb 6px, transparent 6px, transparent 11px);
  background-position: left top, left bottom;
  background-repeat: repeat-x, repeat-x;
  background-size: 100% 1px, 100% 1px;
  /* outline: 1px solid red; */
}

.feature-card::after {
  position: absolute;
  top: 0;
  right: 0;
  color: rgba(198, 168, 109, 0.1);
  font-size: 6.5rem;
  font-family: 'PingFang MO', sans-serif;
}

.feature-card:nth-of-type(1)::after {
  content: 'Design';
}
.feature-card:nth-of-type(2)::after {
  content: 'Responsive';
}
.feature-card:nth-of-type(3)::after {
  content: 'SEO Basics';
}
.feature-card:nth-of-type(4)::after {
  content: 'Social Media';
}
.feature-card:nth-of-type(5)::after {
  content: 'Animation';
}
.feature-card:nth-of-type(6)::after {
  content: 'Support';
}

.feature-card__title {
  position: relative;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.1rem;
}

.feature-card__title::before {
  content: '';
  width: 2.5rem;
  height: 1.25px;
  background: #333;
  display: block;
  position: absolute;
  top: 50%;
  left: -3.5rem;
} 

.feature-card__text {
  margin: 1rem 0 0 1rem;
  font-weight: 300;
  line-height: 2;
  letter-spacing: 0.1rem;
}

/* service__price */
.service__price {
  margin-top: 10rem;
}

.service__price p {
  font-size: 2.5rem;
  font-weight: 400;
  text-align: center;
}

/* serviceList */
.service-list {
  margin-top: 4rem;
  display: grid;
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  column-gap: 7rem;
  row-gap: 3rem;
}

.service-list__item {
  font-size: clamp(0.9rem, 1.6vw, 1.25rem);
}

.service-list__item::before {
  content: '✔️ ';
  font-size: 1rem;
}

/* serviceOption */
.sub-section__serviceOption {
  margin-bottom: 10rem;
}

.option-list {
  margin: 4rem auto 0;
  width: 500px;
}

.option-item {
  display: flex;
  align-items: baseline;
  gap: 11px;
  margin-top: 2rem;
  font-size: 1.25rem;
  font-weight: 400;
}

.option-leader {
  flex: 1;
  height: 1em;
  background:
    radial-gradient(circle, #777 2px, transparent 1.5px) left center / 20px 6px repeat-x;
  transform: translateY(0.15em);
}

/* serviceFlow */
.flow__phase {
  margin-top: 4rem;
}

.flow__phaseTitle {
  display: flex;
  align-items: center;
  gap: 24px;
  font-size: 22px;
  font-weight: 700;
  color: #c7a36a;
}

/* 右側の点線 */
.flow__phaseTitle::after {
  content: "";
  flex: 1;
  height: 1.5px;
  background:
    repeating-linear-gradient(
      to right,
      #cfcfcf 0,
      #cfcfcf 6px,
      transparent 6px,
      transparent 12px
    );
}

.flow__content {
  position: relative;
  margin-top: 2.5rem;
  padding-left: 2.5rem;
}

.flow__content:before {
  content: '';
  width: 2px;
  bottom: -3.5rem;
  background-color: #ddd;
  position: absolute;
  top: 10px;
  left: 12px;
}

.flow__item:last-child .flow__content:before {
  display: none;
}

.flow__title {
  position: relative;
  color: var(--title);
  font-size: 1.25rem;
  font-weight: 700;
}

.flow__title::before {
  content: '';
  width: 1rem;
  height: 1rem;
  background-color: #d9d9d9;
  border-radius: 50px;
  position: absolute;
  left: -35px;
  top: 5px;
  margin: auto;
}

.flow__no {
  display: inline-block;
  margin-right: 1.5rem;
}

.flow__text {
  margin-top: 1rem;
  font-weight: 300;
  line-height: 2;
}

.flow__text__note {
  font-size: 0.8rem;
}

@media screen and (max-width: 900px) {
  .feature-card::after {
    font-size: min(14cqw, 6.5rem);
  }

  /* serviceList */
  .service-list {
    column-gap: 2rem;
    row-gap: 1.5rem;
  }

  .service-list__item {
    font-size: 1.75cqw;
  }

  .service-list__item::before {
    content: '✔️ ';
    font-size: 1.75cqw;
  }

  /* serviceOption */
  .option-list {
    width:90%;
    max-width: 600px;
  }
}

@media screen and (max-width: 580px) {
  .feature-card {
    padding: 1.5rem 1rem;
  }

  .feature-card::after {
    top: auto;
    bottom: 0;
    font-size: 14cqw;
  }

  .feature-card__title {
    font-size: 4.2cqw;
    font-weight: 600;
    letter-spacing: 0.1rem;
  }

  .feature-card__title::before {
    width: 10px;
    height: 1.25px;
    left: -1rem;
  } 

  .feature-card__text {
    margin: 1rem 0 0 1rem;
    font-size: 3.5cqw;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.05rem;
  }

  /* service__price */
  .service__price {
    margin-top: 5rem;
  }

  .service__price p {
    font-size: 7cqw;
    font-weight: 400;
    text-align: center;
    line-height: 2;
  }

  /* serviceList */
  .service-list {
    margin-top: 2rem;
    display: block;
    width: fit-content;
    margin-inline: auto;
  }

  .service-list__item {
    font-size: 3.5cqw;
  }

  .service-list__item:nth-of-type(n + 2) {
    margin-top: 1.5rem;
  }

  .service-list__item::before {
    content: '✔️ ';
    font-size: 3.5cqw;
  }

  /* serviceOption */
  .sub-section__serviceOption {
    margin-bottom: 7rem;
  }

  .option-list {
    width:95%;
  }

  .option-item {
    font-size: 4.5cqw;
  }

  .option-leader {
    background:
      radial-gradient(circle, #777 1.5px, transparent 1.5px) left center / 15px 6px repeat-x;
  }

  /* serviceFlow */
  .flow__phase {
    margin-top: 3rem;
  }

  .flow__phaseTitle {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 5cqw;
    font-weight: 700;
    color: #c7a36a;
  }

  /* 右側の点線 */
  .flow__phaseTitle::before,
  .flow__phaseTitle::after {
    content: "";
    flex: 1;
    height: 1.5px;
    background:
      repeating-linear-gradient(
        to right,
        #cfcfcf 0,
        #cfcfcf 6px,
        transparent 6px,
        transparent 12px
      );
  }

  .flow__content {
    position: relative;
    margin-top: 1.5rem;
    padding-left: 2rem;
  }

  .flow__content:before {
    content: '';
    width: 2px;
    bottom: -2rem;
    background-color: #ddd;
    position: absolute;
    top: 10px;
    left: 12.5px;
  }

  .flow__title {
    font-size: 4.5cqw;
  }

  .flow__title::before {
    content: '';
    width: 0.8rem;
    height: 0.8rem;
    background-color: #d9d9d9;
    border-radius: 50px;
    position: absolute;
    left: -25px;
    top: 5px;
    margin: auto;
  }

  .flow__no {
    margin-right: 0.5rem;
  }

  .flow__text {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    line-height: 1.75;
  }

  .flow__text__note {
    font-size: 0.8rem;
  }
}