/* =========================================================
   カギのとみなが：SWELL FAQブロック 自動アコーディオン
   CSS Grid方式：高さ再計算なしで滑らかに開閉
========================================================= */

.post_content .swell-block-faq {
  margin: 2em 0;
}

.post_content .swell-block-faq .swell-block-faq__item {
  margin: 0 0 14px;
  border: 1px solid #e7e0d5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(31, 58, 95, 0.07);
  overflow: hidden;
}

.post_content .swell-block-faq .swell-block-faq__item:last-child {
  margin-bottom: 0;
}

/* 質問部分 */
.post_content .swell-block-faq .faq_q {
  position: relative;
  margin: 0;
  padding-right: 52px;
  cursor: pointer;
  background: linear-gradient(90deg, #f8f5ef 0%, #fff 100%);
  color: #1f3a5f;
  font-weight: 700;
  line-height: 1.7;
  user-select: none;
}

/* 開閉矢印 */
.post_content .swell-block-faq .faq_q::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-65%) rotate(45deg);
  transition: transform 0.24s ease;
}

.post_content .swell-block-faq .swell-block-faq__item.is-open .faq_q::after {
  transform: translateY(-35%) rotate(225deg);
}

/* 回答部分：CSS Gridで開閉 */
.post_content .swell-block-faq .faq_a {
  display: grid;
  grid-template-rows: 0fr;
  margin: 0;
  padding: 0 !important;
  overflow: hidden;
  opacity: 0;
  transition:
    grid-template-rows 0.28s ease,
    opacity 0.18s ease;
}

.post_content .swell-block-faq .swell-block-faq__item.is-open .faq_a {
  grid-template-rows: 1fr;
  opacity: 1;
}

/* JSで回答内を包む要素 */
.post_content .swell-block-faq .kt-faq-answer-clip {
  min-height: 0;
  overflow: hidden;
}

.post_content .swell-block-faq .kt-faq-answer-body {
  padding: 16px 20px 18px;
  line-height: 1.8;
}

.post_content .swell-block-faq .kt-faq-answer-body p:last-child {
  margin-bottom: 0;
}

/* キーボード操作時 */
.post_content .swell-block-faq .faq_q:focus-visible {
  outline: 3px solid rgba(31, 58, 95, 0.25);
  outline-offset: -3px;
}

/* 空のFAQ項目は非表示 */
.post_content .swell-block-faq .swell-block-faq__item.is-empty {
  display: none;
}

/* スマホ調整 */
@media (max-width: 599px) {
  .post_content .swell-block-faq {
    margin: 1.6em 0;
  }

  .post_content .swell-block-faq .swell-block-faq__item {
    margin-bottom: 12px;
    border-radius: 14px;
  }

  .post_content .swell-block-faq .faq_q {
    padding-right: 44px;
    line-height: 1.65;
  }

  .post_content .swell-block-faq .faq_q::after {
    right: 18px;
    width: 9px;
    height: 9px;
  }

  .post_content .swell-block-faq .kt-faq-answer-body {
    padding: 15px 16px 17px;
  }
}
/* =========================================================
   SWELL FAQアコーディオン：Q/Aアイコン被り調整
========================================================= */

/* 質問文：SWELL標準のQアイコン分の左余白を確保 */
.post_content .swell-block-faq .faq_q {
  padding: 18px 52px 18px 68px;
}

/* 回答文：SWELL標準のAアイコン分の左余白を確保 */
.post_content .swell-block-faq .kt-faq-answer-body {
  padding: 16px 20px 18px 68px;
}

/* SWELL側のQ/Aアイコン位置を少し左に寄せすぎず、余白を持たせる */
.post_content .swell-block-faq .faq_q::before,
.post_content .swell-block-faq .faq_a::before {
  left: 22px;
}

/* スマホでは少しだけ詰める */
@media (max-width: 599px) {
  .post_content .swell-block-faq .faq_q {
    padding: 16px 44px 16px 58px;
  }

  .post_content .swell-block-faq .kt-faq-answer-body {
    padding: 15px 16px 17px 58px;
  }

  .post_content .swell-block-faq .faq_q::before,
  .post_content .swell-block-faq .faq_a::before {
    left: 18px;
  }
}