/* KOUBUN APP FAQ — responsive card accordion */
.app-faq-unified { width: 100%; max-width: 1100px; margin-inline: auto; box-sizing: border-box; }
.app-faq-unified *, .app-faq-unified *::before, .app-faq-unified *::after { box-sizing: border-box; }
.app-faq-unified > h2 { text-align: center; margin-bottom: 12px; }
.app-faq-unified > h2::after { content: ''; display: block; width: 60px; height: 3px; margin: 16px auto 28px; background: #f5c400; }
.app-faq-unified .app-faq-list { display: grid; gap: 10px; }
.app-faq-unified details.app-faq-item { display: block; width: 100%; margin: 0 0 10px !important; padding: 0 !important; border: 1px solid #c9d5e8 !important; border-radius: 12px; background: #fff; overflow: hidden; box-shadow: 0 1px 2px rgba(12,32,70,.04); }
.app-faq-unified details.app-faq-item[open] { border-color: #b4c6e5 !important; }
.app-faq-unified details.app-faq-item > summary.app-faq-question { display: flex !important; align-items: center; position: relative; gap: 16px; min-height: 68px; padding: 16px 56px 16px 20px !important; margin: 0 !important; background: #fff !important; color: #0e2550 !important; font-size: 17px !important; line-height: 1.65 !important; font-weight: 700 !important; text-align: left !important; text-indent: 0 !important; list-style: none !important; cursor: pointer; overflow-wrap: anywhere; transition: background-color .2s ease; }
.app-faq-unified details.app-faq-item > summary::-webkit-details-marker { display: none !important; }
.app-faq-unified details.app-faq-item > summary::marker { content: '' !important; }
.app-faq-unified details.app-faq-item > summary::before { content: 'Q' !important; display: grid !important; place-items: center; position: static !important; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: #1c3767; color: #fff !important; font-size: 17px; font-weight: 700; line-height: 1; }
.app-faq-unified details.app-faq-item > summary::after { content: '' !important; display: block !important; position: absolute !important; top: 50% !important; right: 25px !important; left: auto !important; width: 10px; height: 10px; border-right: 2px solid #193665; border-bottom: 2px solid #193665; transform: translateY(-65%) rotate(45deg); transition: transform .2s ease; }
.app-faq-unified details.app-faq-item[open] > summary { background: #edf2fc !important; }
.app-faq-unified details.app-faq-item[open] > summary::after { transform: translateY(-20%) rotate(225deg); }
@media (hover:hover) { .app-faq-unified details.app-faq-item > summary:hover { background: #f0f5fc !important; } }
.app-faq-unified details.app-faq-item > summary:focus-visible { outline: 3px solid #2877cc; outline-offset: -4px; }
.app-faq-unified details.app-faq-item > .app-faq-answer { display: flex !important; align-items: flex-start; gap: 16px; margin: 0 !important; padding: 18px 26px 24px 20px !important; color: #24385d !important; background: #fff; font-size: 15px !important; line-height: 1.9 !important; font-weight: 400 !important; text-align: left !important; text-indent: 0 !important; overflow-wrap: anywhere; }
.app-faq-unified details.app-faq-item > .app-faq-answer::before { content: 'A' !important; display: grid !important; place-items: center; position: static !important; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: #dce4f1; color: #1c3767 !important; font-size: 17px; font-weight: 700; line-height: 1; }
.app-faq-unified .app-faq-answer p { margin: 0 !important; font-size: inherit !important; font-weight: 400 !important; line-height: inherit !important; }
@media (max-width: 700px) {
  .app-faq-unified details.app-faq-item { border-radius: 9px; margin-bottom: 9px !important; }
  .app-faq-unified details.app-faq-item > summary.app-faq-question { min-height: 62px; gap: 11px; padding: 13px 42px 13px 12px !important; font-size: 15px !important; line-height: 1.65 !important; }
  .app-faq-unified details.app-faq-item > summary::before { flex-basis: 30px; width: 30px; height: 30px; font-size: 15px; }
  .app-faq-unified details.app-faq-item > summary::after { right: 17px !important; }
  .app-faq-unified details.app-faq-item > .app-faq-answer { gap: 11px; padding: 14px 14px 18px 12px !important; font-size: 14px !important; line-height: 1.85 !important; }
  .app-faq-unified details.app-faq-item > .app-faq-answer::before { flex-basis: 30px; width: 30px; height: 30px; font-size: 15px; }
}
