    /* コンポーネント内だけに適用（安全） */
    .js-accordion, .js-accordion * {
      box-sizing: border-box;
    }

    .js-accordion {
      width: 100%;
      max-width: 1500px;
      margin: 0 auto;
      background: #ececec;
    }

    .js-accordion-header {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 30px 36px;
      border: 0;
      background: #ececec;
      cursor: pointer;
      text-align: left;
      font-size: 16px;
      color: #222;
      max-width: 1250px;
      margin: 0 auto;
    }

    .js-accordion-header:hover {
      background: #ececec;
    }

    .js-accordion-title {
      line-height: 1.5;
    }

    .js-accordion-icon {
      flex: 0 0 auto;
      font-size: 28px;
      line-height: 1;
      color: #d1003f;
      font-weight: 500;
      width: 28px;
      text-align: center;
    }

    .js-accordion-content {
      max-height: 0;
      overflow: hidden;
      background: #ffffff;
      transition: max-height 0.45s ease;
    }

    .js-accordion-inner {
      padding: 26px 36px 34px;
      line-height: 1.9;
      font-size: 16px;
      max-width: 1250px;
      margin: 0 auto;
      text-align: left;
    }

    .js-accordion-inner p {
      margin: 0 0 18px;
    }

    .js-accordion-inner p:last-child {
      margin-bottom: 0;
    }

    .js-accordion-inner .caption-head {
      margin-top: 8px;
      font-weight: 400;
    }