html.nav-lock { overflow: hidden; }
  body.nav-transitioning { overflow: hidden; }
  /* Same enter as Next TransitionProvider (only when cb_tx flag set) */
  html.cb-tx-enter .page-shell {
    transform-origin: top center;
    animation: cbTxIn 1.05s cubic-bezier(0.79, 0.01, 0.16, 1) both;
  }
  @keyframes cbTxIn {
    from { transform: translate3d(0, 100vh, 0); }
    to { transform: translate3d(0, 0, 0); }
  }
  @media (prefers-reduced-motion: reduce) {
    html.cb-tx-enter .page-shell { animation: none; }
    .faq-panel { transition: none !important; }
    .faq-icon { transition: none !important; }
  }
  .faq-item { border-top: 1px solid var(--color-line, rgba(255,255,255,0.12)); }
  .faq-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 0;
    text-align: left;
    cursor: pointer;
    background: transparent;
    border: 0;
    color: inherit;
  }
  .faq-panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .faq-item.is-open .faq-panel {
    grid-template-rows: 1fr;
  }
  .faq-panel-inner {
    overflow: hidden;
    min-height: 0;
  }
  .faq-answer {
    max-width: 48rem;
    padding: 0 0 1.25rem;
    opacity: 0;
    transform: translateY(-0.35rem);
    transition: opacity 0.35s ease 0.05s, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .faq-item.is-open .faq-answer {
    opacity: 1;
    transform: translateY(0);
  }
  .faq-icon {
    display: inline-block;
    color: var(--color-ignition, #e10600);
    font-size: 0.875rem;
    line-height: 1;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .faq-item.is-open .faq-icon { transform: rotate(45deg); }
