.faq-list details {
  padding: 0.95rem 0;
  border-top: 1px solid var(--line);
}

.faq-list details:last-child {
  border-bottom: 1px solid var(--line);
}

.faq-list summary {
  cursor: pointer;
  color: var(--text);
  font-weight: 600;
}

.faq-list p {
  margin-top: 0.8rem;
}

.choice-row {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(113, 171, 214, 0.16);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.02);
  transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.choice-row:hover {
  transform: translateY(-1px);
  border-color: rgba(89, 225, 255, 0.3);
  background: rgba(89, 225, 255, 0.07);
}

.choice-row:has(input:checked) {
  border-color: rgba(89, 225, 255, 0.5);
  background:
    linear-gradient(180deg, rgba(89, 225, 255, 0.16) 0%, rgba(89, 225, 255, 0.08) 100%);
  box-shadow: inset 0 0 0 1px rgba(89, 225, 255, 0.12);
}

.choice-row input {
  width: auto;
  margin-top: 0.15rem;
  accent-color: var(--accent-strong);
}

.choice-row span {
  color: var(--text);
  line-height: 1.45;
}

.site-footer {
  display: grid;
  gap: 0.8rem;
  width: min(calc(100% - 2rem), var(--max-width));
  margin: 3rem auto 0;
  padding: 1.2rem 0 0;
  border-top: 1px solid var(--line);
}

.footer-brand {
  color: var(--text);
  font-weight: 700;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.footer-links a {
  color: var(--text-soft);
}

.footer-links a:hover {
  color: var(--accent);
}

.footer-meta {
  color: var(--text-dim);
  font-size: 0.95rem;
}

.reveal {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
