.faq-list { border-top: var(--hairline) solid var(--fg); max-width: 60rem; margin-left: auto; }
.faq-item { border-bottom: var(--hairline) solid var(--border); }
.faq-q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-5);
  min-height: var(--tap);
  padding: var(--space-5) 0;
  background: none;
  border: 0;
  text-align: left;
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  line-height: var(--lh-snug);
  cursor: pointer;
}
.faq-q i { flex: none; position: relative; width: 14px; height: 14px; }
.faq-q i::before, .faq-q i::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: var(--hairline); background: var(--fg); transition: transform var(--dur-med) var(--ease-out); }
.faq-q i::after { transform: rotate(90deg); }
.faq-item.is-open .faq-q i::after { transform: rotate(0); }
.faq-q:hover { color: var(--fg-hover); }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--dur-med) var(--ease-out); }
.faq-item.is-open .faq-a { grid-template-rows: 1fr; }
.faq-a > div { overflow: hidden; }
.faq-a p { padding-bottom: var(--space-5); max-width: 40rem; color: var(--muted); }

.closing { border-top: var(--hairline) solid var(--border); }
.closing-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(var(--space-6), 7vw, var(--space-9)); align-items: center; }
.closing-img { max-height: 80vh; aspect-ratio: 2 / 3; }
.closing-img img { width: 100%; height: 100%; object-fit: cover; }
.closing-copy { display: grid; gap: var(--space-5); justify-items: start; }
.closing-copy h2 { font-size: var(--fs-h1); }
.closing-copy h2 em { color: var(--accent); }
.closing-copy p { font-size: var(--fs-lead); color: var(--muted); max-width: 26rem; }

.footer { padding-block: var(--space-7); border-top: var(--hairline) solid var(--border); }
.footer-grid { display: grid; grid-template-columns: auto 1fr; gap: var(--space-5) var(--space-6); align-items: center; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 var(--space-5); }
.footer-note { grid-column: 1 / -1; font-family: var(--font-mono); font-size: var(--fs-caption); letter-spacing: 0.04em; color: var(--muted); }

@media (max-width: 860px) {
  .closing-grid { grid-template-columns: 1fr; }
  .closing-img { max-height: 60vh; aspect-ratio: auto; }
  .closing-img img { height: auto; max-height: 60vh; width: auto; margin-inline: auto; object-fit: contain; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
  .faq-q { font-size: 1.4rem; }
}
