/* faq.css - FAQコンポーネント分離 */
/* コンテナサイズ調整 */
.faq-container { padding:0 1rem; }
@media (min-width:640px){ .faq-container{ padding:0 2rem; } }
@media (min-width:1024px){ .faq-container{ max-width:1200px; margin:0 auto; padding:0 2rem; } }
@media (min-width:1440px){ .faq-container{ max-width:1400px; padding:0 3rem; } }
/* カテゴリ選択（デスクトップ） */
.faq-categories-desktop { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.75rem; justify-content:center; margin-bottom:3rem; max-width:100%; margin-left:auto; margin-right:auto; padding:0; }
/* モバイルプルダウン */
.faq-categories-mobile { display:none; margin-bottom:3rem; max-width:100%; margin-left:auto; margin-right:auto; padding:0; }
.category-select { width:100%; padding:.7rem .75rem; border-radius:8px; background:#FFF3D4; color:#1A1A1A; font-weight:500; border:1px solid #D9D9D9; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .75rem center; background-size:1rem; }
.category-tag { background:#FFF3D4; padding:.7rem .75rem; border-radius:8px; color:#1A1A1A; font-weight:600; transition:.3s; cursor:pointer; text-align:center; width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border:none; }
.category-tag:hover { background:#FFE5A3; }
/* セクション */
.faq-section { margin-bottom:3rem; width:100%; max-width:100%; }
.faq-section-title { font-size:1.5rem; font-weight:700; margin-bottom:1.5rem; padding-bottom:.5rem; border-bottom:1.5px solid #D9D9D9 !important; text-align:center; }
/* アイテム全体 */
.faq-item { background:#fff; border-radius:8px; margin-bottom:1rem; overflow:hidden; border:1px solid #D9D9D9; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.faq-question { padding:1.25rem; cursor:pointer; display:flex; align-items:center; justify-content:space-between; font-weight:500; transition:background-color .3s ease; background:#FFF8E1; position:relative; gap:1rem; }
.faq-question:hover { background:#FFF3D4; }
.faq-question-content { display:flex; align-items:center; flex:1; padding-left:2.5rem; position:relative; }
.faq-question-content::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:24px; height:24px; background-image:url('../icon/Q-mark.svg'); background-size:contain; background-repeat:no-repeat; background-position:center; flex-shrink:0; }
.faq-icon { transition:transform .3s ease; color:#6B7280; z-index:10; position:relative; display:flex; align-items:center; justify-content:center; width:24px; height:24px; flex-shrink:0; }
.faq-icon.active { transform:rotate(180deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .3s cubic-bezier(.4,0,.2,1); background:#fff; border-top:1px solid #D9D9D9; }
.faq-item .faq-answer { box-sizing:border-box; will-change:max-height; }
.faq-item .faq-answer.open { overflow:visible; }
.faq-item .faq-answer-content { box-sizing:border-box; }
.faq-item .faq-question { user-select:none; }
.faq-item .faq-question:focus { outline:2px solid #FFC107; outline-offset:2px; }
.faq-item .faq-question[aria-expanded="true"] { background:#FFF3D4; }
/* 回答 */
.faq-answer-content { text-align:left; position:relative; padding:1.25rem; padding-left:2.5rem; margin-left:1.25rem; }
.faq-answer-content::before { content:""; position:absolute; left:0; top:1.25rem; width:24px; height:24px; background-image:url('../icon/A-mark.svg'); background-size:contain; background-repeat:no-repeat; background-position:center; flex-shrink:0; }
/* Gutenberg互換 */
.faq-answer-content.entry-content p { margin:.5em 0; line-height:1.6; }
.faq-answer-content.entry-content strong, .faq-answer-content.entry-content b { font-weight:700; }
.faq-answer-content.entry-content em, .faq-answer-content.entry-content i { font-style:italic; }
.faq-answer-content.entry-content a { color:#FF6D00; text-decoration:underline; transition:color .2s; }
.faq-answer-content.entry-content a:hover { color:#e55e00; }
.faq-answer-content.entry-content ul, .faq-answer-content.entry-content ol { margin:1em 0; padding-left:2em; }
.faq-answer-content.entry-content li { margin:.5em 0; }
/* WP標準カラー */
.faq-answer-content.entry-content .has-vivid-red-color { color:#cf2e2e !important; }
.faq-answer-content.entry-content .has-luminous-vivid-orange-color { color:#ff6900 !important; }
.faq-answer-content.entry-content .has-luminous-vivid-amber-color { color:#fcb900 !important; }
.faq-answer-content.entry-content .has-light-green-cyan-color { color:#7bdcb5 !important; }
.faq-answer-content.entry-content .has-vivid-green-cyan-color { color:#00d084 !important; }
.faq-answer-content.entry-content .has-pale-cyan-blue-color { color:#8ed1fc !important; }
.faq-answer-content.entry-content .has-vivid-cyan-blue-color { color:#0693e3 !important; }
.faq-answer-content.entry-content .has-vivid-purple-color { color:#9b51e0 !important; }
/* Blank-box干渉回避 */
.faq-answer-content.entry-content .blank-box { margin:.75em 0; }
.faq-answer-content.entry-content .blank-box::before { top:.6em; }
/* レスポンシブ */
@media (max-width:768px){ .faq-categories-desktop{ grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); } .category-tag{ padding:.625rem .625rem; font-size:.875rem; } }
@media (max-width:640px){ .faq-categories-desktop{ display:none; } .faq-categories-mobile{ display:block; } }
