/*
 * Migration companion stylesheet — loaded LAST.
 * Owns the collapsed rest-state and expand animation for FAQ accordions,
 * which Duda drove entirely from its runtime JS (no CSS collapse rule exists
 * in the exported stylesheets). Without this, every FAQ answer would render
 * expanded, breaking parity with production (which shows them collapsed).
 * Nothing here changes typography, color, spacing, or layout of any section.
 */

/* Collapsed by default (matches production data-first-expanded="false") */
.accordion-wrapper .accordion-item .accordion-description {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease;
}
.accordion-wrapper .accordion-item.mig-open .accordion-description {
  max-height: 2500px;
}

/* plus/minus indicator: collapse the vertical stroke into a minus when open */
.accordion-wrapper.plusMinus .accordion-item .arrow .vertical {
  transition: transform 0.3s ease;
}
.accordion-wrapper.plusMinus .accordion-item.mig-open .arrow .vertical {
  transform: scaleY(0);
}

.accordion-wrapper .accordion-title {
  cursor: pointer;
}

/*
 * Reveal-on-scroll entrance animations.
 * Production (Duda) hides every [data-anim-*] element with `visibility:hidden`
 * and its runtime sets inline `visibility:visible !important` + plays an
 * entrance animation when the element scrolls into view. We reproduce that in
 * assets/js/site.js: it sets the inline visibility (matching Duda exactly) and
 * adds one of the classes below for the motion. The "Combo" keyframes Duda
 * generates at runtime are mapped to the closest clean entrance here.
 */
@keyframes mig-fade      { from { opacity: 0 } to { opacity: 1 } }
@keyframes mig-fade-up   { from { opacity: 0; transform: translateY(28px) } to { opacity: 1; transform: none } }
@keyframes mig-fade-down { from { opacity: 0; transform: translateY(-28px) } to { opacity: 1; transform: none } }
@keyframes mig-fade-left { from { opacity: 0; transform: translateX(-28px) } to { opacity: 1; transform: none } }
@keyframes mig-fade-right{ from { opacity: 0; transform: translateX(28px) } to { opacity: 1; transform: none } }
@keyframes mig-zoom      { from { opacity: 0; transform: scale(.92) } to { opacity: 1; transform: none } }

.mig-reveal            { animation: mig-fade .8s ease both; }
.mig-reveal-up         { animation: mig-fade-up .8s ease both; }
.mig-reveal-down       { animation: mig-fade-down .8s ease both; }
.mig-reveal-left       { animation: mig-fade-left .8s ease both; }
.mig-reveal-right      { animation: mig-fade-right .8s ease both; }
.mig-reveal-zoom       { animation: mig-zoom .8s ease both; }

@media (prefers-reduced-motion: reduce) {
  .mig-reveal, .mig-reveal-up, .mig-reveal-down, .mig-reveal-left,
  .mig-reveal-right, .mig-reveal-zoom { animation: none; }
}
