  /* FAQ アコーディオン */
  .faq-item {
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      margin-bottom: 12px;
      overflow: hidden;
      background: #fff;
      transition: box-shadow 0.3s ease;
  }

  .faq-item:hover {
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }

  .faq-question {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 16px 20px;
      cursor: pointer;
      font-weight: 600;
      color: #333;
      background: #fafafa;
      transition: background 0.2s ease;
      user-select: none;
  }

  .faq-question:hover {
      background: #f0f0f0;
  }

  .faq-question span {
      flex: 1;
      padding-right: 12px;
  }

  /* 開閉アイコン（＋/−） */
  .faq-icon {
      width: 20px;
      height: 20px;
      position: relative;
      flex-shrink: 0;
  }

  .faq-icon::before,
  .faq-icon::after {
      content: '';
      position: absolute;
      background: #666;
      transition: transform 0.3s ease;
  }

  .faq-icon::before {
      width: 14px;
      height: 2px;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
  }

  .faq-icon::after {
      width: 2px;
      height: 14px;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
  }

  /* 開いた状態：＋ → − */
  .faq-item.open .faq-icon::after {
      transform: translate(-50%, -50%) rotate(90deg);
  }

  /* 回答部分 */
  .faq-answer {
      max-height: 0;
      overflow: hidden;
      padding: 0 20px;
      color: #555;
      line-height: 1.8;
      transition: max-height 0.3s ease, padding 0.3s ease;
  }

  /* 開いた状態 */
  .faq-item.open .faq-answer {
      max-height: 500px;
      padding: 16px 20px;
      border-top: 1px solid #e8e8e8;
  }

  /* レスポンシブ */
  @media (max-width: 600px) {
      .faq-question {
          padding: 14px 16px;
          font-size: 0.95rem;
      }
      .faq-answer {
          font-size: 0.9rem;
      }
      .faq-item.open .faq-answer {
          padding: 14px 16px;
      }
  }