@keyframes contratar-entrada {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes contratar-entrada-suave {
  from { opacity: 0; transform: translateY(7px) scale(.995); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes contratar-estado {
  0% { opacity: 0; transform: translateY(6px); }
  55% { opacity: 1; }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes contratar-desvanecer {
  from { opacity: 0; }
  to { opacity: 1; }
}

.checkout-header,
.intro,
.status,
.checkout-grid:not([hidden]),
.account-panel:not([hidden]),
.acceptance-panel:not([hidden]),
.plan-picker:not([hidden]) {
  animation: contratar-entrada 480ms cubic-bezier(.22, .8, .3, 1) both;
}

.intro { animation-delay: 55ms; }
.status,
.checkout-grid:not([hidden]),
.plan-picker:not([hidden]) { animation-delay: 105ms; }
.account-panel:not([hidden]),
.acceptance-panel:not([hidden]) { animation-delay: 70ms; }

.checkout-grid:not([hidden]) > *,
.plan-options > *,
.form-grid > *,
.contract-layout > *,
.acceptance-groups > * {
  animation: contratar-entrada-suave 440ms cubic-bezier(.22, .8, .3, 1) both;
}

.checkout-grid:not([hidden]) > *:nth-child(2),
.plan-options > *:nth-child(2),
.form-grid > *:nth-child(2),
.contract-layout > *:nth-child(2),
.acceptance-groups > *:nth-child(2) { animation-delay: 55ms; }

.plan-options > *:nth-child(3),
.form-grid > *:nth-child(3),
.acceptance-groups > *:nth-child(3) { animation-delay: 100ms; }

.plan-options > *:nth-child(4),
.form-grid > *:nth-child(4) { animation-delay: 145ms; }
.form-grid > *:nth-child(5) { animation-delay: 190ms; }
.form-grid > *:nth-child(6) { animation-delay: 235ms; }

.contract-document {
  animation: contratar-entrada-suave 400ms cubic-bezier(.22, .8, .3, 1) both;
}
.contract-document:nth-child(2) { animation-delay: 45ms; }
.contract-document:nth-child(3) { animation-delay: 90ms; }
.contract-document:nth-child(4) { animation-delay: 135ms; }

.motion-refresh {
  animation: contratar-estado 380ms cubic-bezier(.22, .8, .3, 1) both !important;
}

@media (prefers-reduced-motion: reduce) {
  .checkout-header,
  .intro,
  .status,
  .checkout-grid:not([hidden]),
  .account-panel:not([hidden]),
  .acceptance-panel:not([hidden]),
  .plan-picker:not([hidden]),
  .checkout-grid:not([hidden]) > *,
  .plan-options > *,
  .form-grid > *,
  .contract-layout > *,
  .acceptance-groups > *,
  .contract-document,
  .motion-refresh {
    animation-name: contratar-desvanecer !important;
    animation-duration: 260ms !important;
    animation-delay: 0ms !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
  }

  html:focus-within { scroll-behavior: auto; }
}
