/* 08 FAQ */
.faq__grid { align-items: start; row-gap: 40px; }
.faq__intro { grid-column: 1 / span 4; position: sticky; top: calc(var(--header-h) + 32px); display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.faq__intro .h2 { font-size: var(--fs-xl); }
.faq__ask { margin-top: 12px; }
.faq__hours { font-size: var(--fs-xs); color: var(--muted); margin-top: -8px; }
.faq__list { grid-column: 6 / span 7; border-top: 1px solid var(--ink); }
.faq__item { border-bottom: 1px solid var(--line-strong); }
.faq__item summary { display: grid; grid-template-columns: 1fr 20px; gap: 16px; align-items: baseline; padding: 22px 0; cursor: pointer; list-style: none; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover .faq__q { color: var(--accent); }
.faq__item summary:focus-visible { outline-offset: -2px; }
.faq__q { font: 600 var(--fs-lg)/1.3 var(--f-head); letter-spacing: -0.01em; color: var(--ink); transition: color .2s var(--ease); }
.faq__ico { position: relative; width: 14px; height: 14px; justify-self: end; align-self: center; }
.faq__ico::before, .faq__ico::after { content: ""; position: absolute; left: 0; right: 0; top: 6.5px; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease); }
.faq__ico::after { transform: rotate(90deg); }
.faq__item[open] .faq__ico::after { transform: rotate(0); }
.faq__a { overflow: hidden; }
.faq__a-in { padding: 0 32px 26px 0; max-width: 64ch; color: var(--text); }
.faq__a-in p { line-height: 1.65; }
@media (max-width: 960px) {
  .faq__intro { grid-column: 1 / -1; position: static; }
  .faq__list { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .faq__item summary { grid-template-columns: 1fr 16px; padding: 18px 0; }
  .faq__q { font-size: var(--fs-base); }
  .faq__a-in { padding: 0 0 22px 0; }
}
.faq__item.is-closing .faq__ico::after { transform: rotate(90deg); }
