/* ============================================================
   BlockFaq 公開側スタイル（自己完結・外部CDN不使用）
   ============================================================ */
.bk-faq{ max-width:100%; }
.bk-faq .bkfaq-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.bk-faq .bkfaq-item{ border:2px solid #e8e4e9; border-radius:12px; background:#fff; overflow:hidden; transition:border-color .2s; }
.bk-faq .bkfaq-item.is-open{ border-color:#cbb8d8; }
.bk-faq .bkfaq-qwrap{ margin:0; padding:0; }
.bk-faq .bkfaq-q{ display:flex; align-items:center; gap:12px; width:100%; min-height:52px; padding:12px 14px; border:0; background:transparent; cursor:pointer; text-align:left; font:inherit; color:#222; box-sizing:border-box; }
.bk-faq .bkfaq-q:hover{ background:#faf7fb; }
.bk-faq .bkfaq-q:focus-visible{ outline:3px solid #9b7fb8; outline-offset:-3px; border-radius:10px; }
.bk-faq .bkfaq-q-mark{ flex:0 0 30px; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#6d4f8c; color:#fff; font-size:15px; font-weight:900; line-height:1; }
.bk-faq .bkfaq-q-text{ flex:1 1 auto; min-width:0; font-size:15.5px; font-weight:800; line-height:1.6; overflow-wrap:break-word; }
.bk-faq .bkfaq-q-arrow{ flex:0 0 auto; color:#9b8aa8; display:inline-flex; transition:transform .25s ease; }
.bk-faq .bkfaq-item.is-open .bkfaq-q-arrow{ transform:rotate(180deg); }
.bk-faq .bkfaq-a{ margin:0; height:0; overflow:hidden; visibility:hidden; transition:height .28s ease, visibility 0s linear .28s; }
.bk-faq .bkfaq-item.is-open .bkfaq-a{ visibility:visible; transition:height .28s ease; }
.bk-faq .bkfaq-a-inner{ display:flex; align-items:flex-start; gap:12px; padding:4px 14px 16px; border-top:1px dashed #eee4f0; margin:0 0 0; }
.bk-faq .bkfaq-a-mark{ flex:0 0 30px; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#f0e8f5; color:#6d4f8c; font-size:15px; font-weight:900; line-height:1; margin-top:10px; }
.bk-faq .bkfaq-a-text{ flex:1 1 auto; min-width:0; font-size:14px; color:#444; line-height:1.9; padding-top:12px; overflow-wrap:break-word; }
.bk-faq .bkfaq-hint{ border:2px dashed #cbb8d8; border-radius:12px; background:#faf6fc; padding:18px 16px; text-align:center; color:#84708f; font-size:13px; font-weight:700; }
@media (max-width:600px){
  .bk-faq .bkfaq-q{ padding:12px 12px; gap:10px; }
  .bk-faq .bkfaq-q-text{ font-size:14.5px; }
  .bk-faq .bkfaq-a-inner{ padding:4px 12px 14px; gap:10px; }
}
@media (prefers-reduced-motion: reduce){
  .bk-faq .bkfaq-a{ transition:none; }
  .bk-faq .bkfaq-q-arrow{ transition:none; }
}
