/* faq · owner P5
   Six native <details>. With motion, faq.js animates the height, slides the answer in line by line and turns + into x.
   Without motion they open instantly; the icon still turns. */
#faq { position: relative; background: #000; color: var(--g1); padding: clamp(64px, 8vw, 120px) 0 var(--sec); }
#faq .faq__title { font-size: clamp(40px, 5vw, 80px); }
#faq .faq__more { margin-top: clamp(18px, 2vw, 28px); display: flex; flex-wrap: wrap; align-items: center; gap: 2px 14px; font-size: 15px; color: var(--muted-dk); }
#faq .faq__more .link-arrow { color: var(--g1); font-size: 15px; }
#faq .faq__list { margin-top: clamp(36px, 4.4vw, 56px); border-bottom: 1px solid rgba(255, 255, 255, 0.18); }

/* a row: hairline on top (draws in, violet sweep on hover and when open) */
#faq .qa { position: relative; }
#faq .qa::before, #faq .qa::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255, 255, 255, 0.18); transform-origin: 0 50%; }
#faq .qa::after { background: var(--v-dk); transform: scaleX(0); transition: transform .7s var(--ease-out); }
#faq .qa[open]::after, #faq .qa.is-open::after { transform: scaleX(1); }
html.motion #faq .qa::before { transform: scaleX(var(--draw, 1)); }
#faq .qa__s { --nw: 56px; display: grid; grid-template-columns: var(--nw) minmax(0, 1fr) 40px; align-items: center; column-gap: 12px; min-height: 76px; padding: 16px 0; cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent; }
#faq .qa__s::-webkit-details-marker { display: none; }
#faq .qa__s::marker { content: ""; }
#faq .qa__n { font-family: var(--mono); font-size: 13px; color: var(--muted-dk); font-variant-numeric: tabular-nums; transition: color .35s var(--ease); }
#faq .qa__q { font-stretch: 112%; font-weight: 600; font-size: clamp(18px, 1.6vw, 24px); letter-spacing: -0.012em; line-height: 1.25; transition: transform .5s var(--ease-out), color .3s var(--ease); }
#faq .qa__i { position: relative; justify-self: end; width: 40px; height: 40px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24); transition: background-color .35s var(--ease), box-shadow .35s var(--ease), transform .6s cubic-bezier(.34, 1.56, .64, 1); }
#faq .qa__i::before, #faq .qa__i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px; background: currentColor; }
#faq .qa__i::after { transform: rotate(90deg); }
#faq .qa[open] .qa__i, #faq .qa.is-open .qa__i { transform: rotate(135deg); background: var(--v); box-shadow: inset 0 0 0 1px var(--v); color: #fff; }
#faq .qa.is-closing .qa__i { transform: none; background: transparent; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24); color: inherit; }
#faq .qa[open] .qa__n, #faq .qa.is-open .qa__n { color: var(--v-dk); }
#faq .qa.is-closing .qa__n { color: var(--muted-dk); }
#faq .qa__s:focus-visible { outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  #faq .qa__s:hover .qa__q { transform: translateX(6px); color: #fff; }
  #faq .qa__s:hover .qa__n { color: var(--v-dk); }
  #faq .qa__s:hover .qa__i { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6); }
  #faq .qa:not([open]):hover::after { transform: scaleX(0.18); }
}

/* the answer */
#faq .qa__a { overflow: hidden; }
#faq .qa__a p { padding: 0 52px 30px 68px; max-width: calc(38em + 120px); font-size: clamp(16px, 1.15vw, 18px); line-height: 1.6; color: #c2c2c2; }

@media (min-width: 900px) {
  #faq .faq__head { grid-column: 1 / span 4; position: sticky; top: calc(var(--nav) + 32px); align-self: start; }
  #faq .faq__list { grid-column: 6 / span 7; margin-top: 0; }
}
@media (max-width: 520px) {
  #faq .qa__s { --nw: 34px; column-gap: 10px; grid-template-columns: var(--nw) minmax(0, 1fr) 36px; min-height: 68px; }
  #faq .qa__i { width: 36px; height: 36px; }
  #faq .qa__a p { padding: 0 0 26px 44px; }
}
