/* ============================================================
   FAQ
   ============================================================ */
.faq { max-width: 860px; margin-inline:auto; }
.faq__item { border-bottom:1px solid var(--line); }
.faq__q {
  width:100%; text-align:left; display:flex; align-items:center; gap:1rem;
  padding: 1.4rem 0; font-family: var(--font-body); font-weight:700;
  font-size: var(--step-1); color: var(--ink);
}
.faq__q .num { font-family: var(--font-mono); font-size:.85rem; color: var(--blue-600); font-weight:500; flex:none; }
.faq__q .ico { margin-left:auto; width:26px;height:26px; flex:none; position:relative; }
.faq__q .ico::before, .faq__q .ico::after { content:""; position:absolute; inset:50% 0 auto; height:2px; background: var(--blue-600); border-radius:2px; transition: transform .35s var(--ease); }
.faq__q .ico::before { transform: translateY(-50%); }
.faq__q .ico::after { transform: translateY(-50%) rotate(90deg); }
.faq__item.is-open .ico::after { transform: translateY(-50%) rotate(0); }
.faq__a { display:grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease); }
.faq__item.is-open .faq__a { grid-template-rows: 1fr; }
.faq__a > div { overflow:hidden; }
.faq__a p { padding: 0 0 1.5rem; color: var(--muted); max-width: 68ch; }

