@media only screen and (max-width: 768px) {
  .c-title {
    margin-bottom: 13.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .c-title {
    margin-bottom: 6.25vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-case {
    margin-bottom: 21.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-case {
    margin-bottom: 7.5vw;
  }
}

.p-article-categories {
  display: flex;
  flex-wrap: wrap;
}
@media only screen and (max-width: 768px) {
  .p-article-categories {
    gap: 1.6vw;
    margin-bottom: 0.625vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-categories {
    gap: 0.625vw;
  }
}
.p-article-categories li {
  background: var(--bc02);
  color: #fff;
  display: -ms-grid;
  display: grid;
  place-content: center;
}
@media only screen and (max-width: 768px) {
  .p-article-categories li {
    font-size: 2.6666666667vw;
    height: 4.8vw;
    padding-inline: 1.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-categories li {
    font-size: 0.75vw;
    height: 1.25vw;
    padding-inline: 0.4375vw;
  }
}

.p-article-title {
  font-weight: 900;
}
@media only screen and (max-width: 768px) {
  .p-article-title {
    font-size: 7.4666666667vw;
    line-height: 1.57;
    margin-bottom: 1.0625vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-title {
    font-size: 2.5vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-date {
    font-size: 3.7333333333vw;
    margin-bottom: 10.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-date {
    font-size: 1vw;
    margin-bottom: 3.75vw;
  }
}

.p-article-toc {
  background: #efefef;
}
@media only screen and (max-width: 768px) {
  .p-article-toc {
    margin: 0 -5.3333333333vw 24vw;
    padding: 8vw 5.3333333333vw 10.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc {
    margin-bottom: 6.25vw;
    padding: 3.125vw;
  }
}

.p-article-toc-title {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-article-toc-title {
    font-size: 5.3333333333vw;
    margin-bottom: 1.25vw;
    padding-left: 8.5333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-title {
    font-size: 1.25vw;
    margin-bottom: 2.25vw;
    padding-left: 2vw;
  }
}
.p-article-toc-title::before {
  background: var(--bc02);
  content: "";
  display: block;
  mask-image: url(../../img/icon-toc.svg);
  mask-repeat: no-repeat;
  mask-size: cover;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
@media only screen and (max-width: 768px) {
  .p-article-toc-title::before {
    height: 4.2666666667vw;
    width: 5.0666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-title::before {
    height: 1vw;
    width: 1.1875vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-toc-heading {
    font-size: 5.3333333333vw;
    margin-bottom: 2.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-heading {
    font-size: 1.25vw;
    margin-bottom: 0.625vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-article-toc-heading:not(:first-child) {
    margin-top: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-heading:not(:first-child) {
    margin-top: 1.875vw;
  }
}

.p-article-toc-heading-sub {
  border-left: 1px solid var(--bc02);
  font-weight: normal;
}
@media only screen and (max-width: 768px) {
  .p-article-toc-heading-sub {
    margin-left: 3.2vw;
    font-size: 4.2666666667vw;
    line-height: 1.875;
    padding-left: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-heading-sub {
    margin-left: 0.75vw;
    font-size: 1vw;
    line-height: 1.875;
    padding-left: 0.9375vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-toc-list {
    padding-left: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-list {
    padding-left: 0.75vw;
  }
}
.p-article-toc-list li {
  border-left: 1px solid var(--bc02);
}
@media only screen and (max-width: 768px) {
  .p-article-toc-list li {
    font-size: 4.2666666667vw;
    line-height: 1.875;
    padding-left: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-toc-list li {
    font-size: 1vw;
    line-height: 1.875;
    padding-left: 0.9375vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-main {
    margin-bottom: 25.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-main {
    margin-bottom: 9.375vw;
  }
}

.p-ttl01 {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-ttl01 {
    margin: 0 auto 3.2vw;
    padding-bottom: 3.4666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-ttl01 {
    margin: 0 auto 1.875vw;
    padding-bottom: 1.25vw;
    width: var(--box-width);
  }
}
.p-ttl01::before {
  background: #e2e2e2;
  bottom: 0;
  content: "";
  display: block;
  height: 2px;
  left: 0;
  position: absolute;
  width: 100%;
}
.p-ttl01::after {
  background: var(--bc02);
  bottom: 0;
  content: "";
  display: block;
  height: 2px;
  left: 0;
  position: absolute;
}
@media only screen and (max-width: 768px) {
  .p-ttl01::after {
    width: 14.1333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-ttl01::after {
    width: 3.3125vw;
  }
}
.p-ttl01 h2 {
  font-weight: 900;
}
@media only screen and (max-width: 768px) {
  .p-ttl01 h2 {
    font-size: 6.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-ttl01 h2 {
    font-size: 2vw;
  }
}

.p-ttl02 {
  line-height: 1.25;
}
@media only screen and (max-width: 768px) {
  .p-ttl02 {
    border-left: 0.8vw solid var(--bc02);
    font-size: 5.3333333333vw;
    margin-bottom: 3.7333333333vw;
    padding-left: 2.9333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-ttl02 {
    border-left: 0.1875vw solid var(--bc02);
    font-size: 1.5vw;
    margin-bottom: 1.25vw;
    padding-left: 1.125vw;
  }
}

.p-text {
  line-height: 1.75;
}
@media only screen and (max-width: 768px) {
  .p-text {
    font-size: 4.2666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-text {
    font-size: 1vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-text:not(:last-child) {
    margin-bottom: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-text:not(:last-child) {
    margin-bottom: 3.3125vw;
  }
}

@media print, screen and (min-width: 769px) {
  .p-block {
    display: flex;
    gap: 3.125vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-block:not(:last-child) {
    margin-bottom: 10.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-block:not(:last-child) {
    margin-bottom: 3.3125vw;
  }
}
.p-block .p-image {
  flex-shrink: 0;
}
@media print, screen and (min-width: 769px) {
  .p-block .p-image {
    width: 23.75vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-block .p-text {
    margin-bottom: 4vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-block .p-text {
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 769px) {
  .p-block.-img-left {
    flex-direction: row-reverse;
  }
}

.p-image {
  margin-inline: auto;
}
.p-image img {
  height: auto;
  width: 100%;
}
@media print, screen and (min-width: 769px) {
  .p-image {
    max-width: 45vw;
  }
}
@media only screen and (max-width: 768px) {
  .p-image:not(:last-child) {
    margin-bottom: 10.6666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-image:not(:last-child) {
    margin-bottom: 3.3125vw;
  }
}

.p-article-author {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-article-author {
    background: url("../img/bg-comment_sp.svg") no-repeat left top/100% auto;
    margin-bottom: 18.6666666667vw;
    padding-top: 12.2666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-author {
    background: url("../img/bg-comment.svg") no-repeat left top/100% auto;
    margin-bottom: 6.25vw;
    padding-top: 3.4375vw;
  }
}

.p-article-author-title {
  background: url("../img/ttl-author.svg") no-repeat left top/cover;
  position: absolute;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .p-article-author-title {
    font-size: 4.2666666667vw;
    height: 11.2vw;
    left: 4.2666666667vw;
    padding-top: 0.8vw;
    top: -4.5333333333vw;
    width: 59.4666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-author-title {
    font-size: 1.25vw;
    height: 3.25vw;
    left: -0.875vw;
    padding-top: 0.25vw;
    top: -1.625vw;
    width: 17.375vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-author-inner {
    background: #fff url("../img/bg-comment_sp.svg") no-repeat left bottom/100% auto;
    padding: 0 6.1333333333vw 9.6vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-author-inner {
    background: #fff url("../img/bg-comment.svg") no-repeat left bottom/100% auto;
    padding: 0 3.4375vw 4.125vw;
    display: flex;
    justify-content: space-between;
    gap: 2.5vw;
  }
}

.p-article-author-name {
  font-weight: bold;
}
@media only screen and (max-width: 768px) {
  .p-article-author-name {
    font-size: 5.3333333333vw;
    margin-bottom: 4vw;
    text-align: center;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-author-name {
    font-size: 1.25vw;
    margin-bottom: 0.9375vw;
  }
}

.p-article-author-text {
  line-height: 1.75;
}
@media only screen and (max-width: 768px) {
  .p-article-author-text {
    font-size: 4.2666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-author-text {
    font-size: 1vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-author-image {
    margin-top: 6.1333333333vw;
    position: relative;
    text-align: center;
  }
}
.p-article-author-image img {
  height: auto;
  position: relative;
}
@media only screen and (max-width: 768px) {
  .p-article-author-image img {
    width: 43.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-author-image img {
    width: 14vw;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-service {
    margin-bottom: 21.3333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service {
    margin-bottom: 8.125vw;
  }
}

.p-article-service-title {
  font-weight: 900;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .p-article-service-title {
    font-size: 7.4666666667vw;
    line-height: 1.57;
    margin-bottom: 8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-title {
    font-size: 2.5vw;
    margin-bottom: 1.875vw;
  }
}

.p-article-service-list {
  display: flex;
}
@media only screen and (max-width: 768px) {
  .p-article-service-list {
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 7.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-list {
    justify-content: center;
    gap: 3.3125vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-list li {
    flex: 0 0 calc((100% - 9.9375vw) / 4);
  }
}
.p-article-service-list a {
  display: block;
  transition: opacity 0.3s ease-in-out;
}
@media only screen and (max-width: 768px) {
  .p-article-service-list a {
    width: 40.8vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-list a:hover {
    opacity: 0.7;
  }
}

@media only screen and (max-width: 768px) {
  .p-article-service-image {
    margin-bottom: 1.8666666667vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-image {
    margin-bottom: 0.75vw;
  }
}
.p-article-service-image img {
  height: auto;
  width: 100%;
}

.p-article-service-name {
  font-weight: bold;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .p-article-service-name {
    font-size: 3.7333333333vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-name {
    font-size: 1.25vw;
  }
}

.p-article-service-txt {
  line-height: 1.8;
}
@media only screen and (max-width: 768px) {
  .p-article-service-txt {
    margin-top: 0.4em;
    font-size: 3.2vw;
  }
}
@media print, screen and (min-width: 769px) {
  .p-article-service-txt {
    margin-top: 0.6em;
    font-size: 1vw;
  }
}