.faq-category { padding:72px 56px 0; }
.faq-category-in { max-width:1160px; margin:0 auto; }
.faq-category-label { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.faq-cat-line { width:22px; height:1px; background:var(--accent); }
.faq-cat-text { font-family:var(--en); font-style:italic; font-size:.72rem; letter-spacing:.24em; color:var(--accent); text-transform:uppercase; }
.faq-cat-h2 { font-family:var(--jp); font-size:1.05rem; font-weight:700; color:var(--text); margin-bottom:16px; }
@media(max-width:768px) { .faq-category { padding:52px 20px 0; } }

.faq-block { padding:0 56px; }
.faq-block-in { max-width:1160px; margin:0 auto; }
.faq-list { display:flex; flex-direction:column; gap:1px; background:var(--border); border:1px solid var(--border); }
.faq-item { background:var(--bg); }
.faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 24px; background:none; border:none; color:var(--text); cursor:pointer; text-align:left; }
.faq-q-text { font-family:var(--jp); font-size:.88rem; font-weight:600; line-height:1.5; }
.faq-icon { width:20px; height:20px; border:1px solid var(--border2); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .3s, background .3s; position:relative; }
.faq-icon::before, .faq-icon::after { content:''; position:absolute; background:var(--text3); transition:opacity .3s; }
.faq-icon::before { width:8px; height:1px; }
.faq-icon::after  { width:1px; height:8px; transition:transform .3s, opacity .3s; }
.faq-item.open .faq-icon::after { transform:rotate(90deg); opacity:0; }
.faq-item.open .faq-icon { background:rgba(77,158,247,.1); border-color:var(--accent); }
.faq-a { display:none; padding:0 24px 22px; font-size:.8rem; color:var(--text2); line-height:2; }
.faq-item.open .faq-a { display:block; }
.faq-a a { color:var(--accent); text-decoration:none; }
.faq-a a:hover { text-decoration:underline; }
.faq-a a.link-water { color:#67e8f9; }
.faq-a a.link-water:hover { text-decoration:underline; }
@media(max-width:768px) { .faq-block { padding:0 20px; } }

.faq-spacer { height:56px; }
