.news-article--cms {
  width: 86.66%;
  padding-top: 6.15%;
  padding-bottom: 6.15%;
  margin: 0 auto;
  margin-bottom: 7.69%;
  font-size: 14px;
  font-size: 1.4rem;
  background: #fff;
  border-radius: 8px;
}

@media print, screen and (min-width: 768px) {
  .news-article--cms {
    width: 83.57%;
    max-width: 1170px;
    padding-top: 4.27%;
    padding-bottom: 3.41%;
    margin: 0 auto;
    margin-bottom: 5.98%;
    font-size: 1.6rem;
    border-radius: 8px;
  }
}

@scope (.news-article--cms) {
  /* 見出し */
  h2 {
    margin-top: clamp(30px, 4.8780487805vw, 50px);
    font-size: clamp(17px, 2.4390243902vw, 24px);
    padding: 0 15px 10px;
    margin-bottom: 5.33%;
    line-height: 1.4;
    color: #45494e;
    border-bottom: 2px solid #257cde;
  }

  @media print, screen and (min-width: 768px) {
    h2 {
      padding: 0 10px 20px;
      margin-bottom: 30px;
      line-height: 1.3;
    }
  }

  h3 {
    position: relative;
    margin-bottom: 3.33%;
    line-height: 1.5;
    padding-bottom: clamp(5px, 0.9114583333vw, 10px);
    font-size: clamp(16px, 2.6041666667vw, 24px);
    font-weight: 700;
    color: #257cde;
    background: linear-gradient(
      to right,
      rgba(var(--gradient-color-01-start-rgb)) 0%,
      rgba(var(--gradient-color-01-start-rgb)) 100%
    );
    background-repeat: no-repeat;
    background-position: 0 bottom;
    background-size: 80px 2px;
  }

  /* 段落 */
  p {
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
    font-size: clamp(14px, 1.9512195122vw, 16px);
    line-height: 1.6;

    a {
      color: #257cde;
      text-decoration: underline;
    }
  }

  @media print, screen and (min-width: 768px) {
    p {
      line-height: 2;
    }
  }

  @media (any-hover: hover) {
    p a:hover {
      text-decoration: none;
    }
  }

  strong {
    font-weight: bold;
  }

  .note {
    font-size: clamp(12px, 1.7142857143vw, 14px);
  }

  .strong {
    font-size: clamp(18px, 2.4390243902vw, 20px);
    font-weight: bold;
  }

  .highlight {
    background-color: #ffeea8;
  }

  /* 画像 */
  img {
    width: auto;
    max-width: 100%;
  }

  figcaption {
    margin-top: clamp(4px, 0.9756097561vw, 8px);
  }

  /* リスト */
  ul:not([class]),
  ol:not([class]) {
    margin-left: clamp(20px, 2.9268292683vw, 24px);
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);

    li {
      margin-bottom: 0;
      font-size: clamp(14px, 1.9512195122vw, 16px);
      line-height: 1.8;
    }
  }

  ul:not([class]) li {
    list-style-type: disc;
  }

  ol:not([class]) li {
    list-style-type: decimal;
  }

  @media print, screen and (min-width: 768px) {
    ul:not([class]),
    ol:not([class]) {
      margin-left: clamp(20px, 2.9268292683vw, 24px);
    }
  }

  /* 注釈リスト */
  ul:has(.annotationList) li,
  ol:has(.annotationList) li {
    text-indent: -1em;
    margin-left: -0.5em;
    list-style: none;
  }

  /* table */
  table {
    width: 100%;
    margin-bottom: 20px;
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;

    *:last-child {
      margin-bottom: 0;
    }

    th,
    td {
      padding: 10px 10px;
      vertical-align: top;
    }

    th {
      font-size: 14px;
      font-size: 1.4rem;
      font-weight: 700;
      line-height: 2;
      background: #f4f4f4;
      border-right: 1px solid #ccc;
      border-bottom: 1px solid #ccc;
    }

    td {
      height: auto !important;
      font-size: 14px;
      font-size: 1.4rem;
      line-height: 2;
      border-right: 1px solid #ccc;
      border-bottom: 1px solid #ccc;
    }
  }

  @media print, screen and (min-width: 768px) {
    table {
      th,
      td {
        padding: 15px 20px;
        font-size: 1.6rem;
      }
    }
  }

  /* 複数カラム */
  .col2 {
    margin-top: clamp(16px, 2.9268292683vw, 30px);
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(471px, 100%), 1fr));
    gap: clamp(30px, 2.34375vw, 60px) clamp(15px, 2.4390243902vw, 25px);
  }

  .col3 {
    margin-top: clamp(16px, 2.9268292683vw, 30px);
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(302px, 100%), 1fr));
    gap: clamp(30px, 2.34375vw, 60px) clamp(15px, 2.4390243902vw, 25px);
  }

  .col4 {
    margin-top: clamp(16px, 2.9268292683vw, 30px);
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(217px, 100%), 1fr));
    gap: clamp(30px, 2.34375vw, 60px) clamp(15px, 2.4390243902vw, 25px);
  }

  figure {
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
    text-align: center;
  }

  div:has(> iframe) {
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
  }

  /* 画像＋テキストボックス */
  .imageTextBox {
    margin-top: 0;
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
    display: grid;
    gap: clamp(15px, 2.4390243902vw, 25px);
  }
  .imageTextBox__image {
    margin-inline: auto;
  }
  .imageTextBox__text {
    flex: 1;
  }

  @media print, screen and (min-width: 768px) {
    .imageTextBox {
      display: flex;
    }
    .imageTextBox.--reverse {
      flex-direction: row-reverse;
    }
    .imageTextBox__image {
      width: 25.5%;
      max-width: calc(50% - clamp(15px, 2.4390243902vw, 25px) / 2);
    }
  }

  .cms-article-sns ul {
    margin: 0;

    > li {
      list-style: none;
      line-height: 1;
    }
  }
}

.news-article .cms-include {
  table th,
  table td {
    p {
      line-height: 1.4;
    }
  }

  table th {
    vertical-align: top;
    font-size: 1.6em;
  }

  table td {
    font-size: 1.4em;
    text-align: left;
    vertical-align: top;
  }

  figure {
    margin-bottom: clamp(16px, 2.9268292683vw, 30px);
  }

  @media (max-width: 767px) {
    table th,
    table td {
      width: 100%;
      display: block;
    }
  }

  @media (min-width: 768px) {
    table th,
    table td {
      p {
        line-height: 2;
      }
    }
    table th {
      width: 26%;
    }
    table th *:last-child,
    table td *:last-child {
      margin-bottom: 0 !important;
    }
  }
}

.news-article--v2 .news-article-body .cms-include strong {
  font-size: 1em;
}

.imageTextBox__text {
  flex: 1;

  figure {
    text-align: center;
  }
}
