/* Global open/close motion — CSS keyframes only (no animation library). */

@keyframes hz-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes hz-pop-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes hz-cal-pop {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes hz-modal-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes hz-cal-next {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes hz-cal-prev {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.hz-overlay-in {
  animation: hz-overlay-in 200ms ease-out both;
}

.hz-pop-in,
.hz-cal-pop {
  animation: hz-pop-in 180ms ease-out both;
  transform-origin: top center;
}

.hz-cal-pop {
  animation-name: hz-cal-pop;
}

.hz-modal-in {
  animation: hz-modal-in 220ms ease-out both;
  transform-origin: center center;
}

.hz-cal-next {
  animation: hz-cal-next 200ms ease-out both;
}

.hz-cal-prev {
  animation: hz-cal-prev 200ms ease-out both;
}

/* Drawers: transition (not keyframes) — mount closed, then .is-open */
.hz-drawer-panel {
  transform: translateX(100%);
  transition: transform 300ms ease-out;
  will-change: transform;
}

.hz-drawer-panel.is-open,
.hz-drawer-panel[data-open="true"] {
  transform: translateX(0);
}

.hz-drawer-panel.hz-drawer-panel--left {
  transform: translateX(-100%);
}

.hz-drawer-panel.hz-drawer-panel--left.is-open,
.hz-drawer-panel.hz-drawer-panel--left[data-open="true"] {
  transform: translateX(0);
}

.hz-drawer-backdrop {
  opacity: 0;
  transition: opacity 300ms ease-out;
  will-change: opacity;
}

.hz-drawer-backdrop.is-open,
.hz-drawer-backdrop[data-open="true"] {
  opacity: 1;
}

/* Theme / WooCommerce / Gutenberg hooks */
.nav-drawer-backdrop.is-open,
.mds-drawer-backdrop.is-open {
  animation: hz-overlay-in 200ms ease-out both;
}

.wc-block-components-modal__screen-overlay,
.components-modal__screen-overlay,
.wc-block-components-drawer__screen-overlay,
.wc-block-components-drawer .components-modal__screen-overlay {
  animation: hz-overlay-in 200ms ease-out both;
}

.wc-block-components-modal__frame,
.components-modal__frame,
.wc-block-components-drawer__content,
.components-modal__content {
  animation: hz-modal-in 220ms ease-out both;
}

.wc-block-components-combobox-control__suggestions,
.components-popover,
.components-dropdown-menu__menu,
.components-menu-group,
[data-wp-component="Popover"],
.woocommerce-select2-results,
.select2-dropdown,
.flatpickr-calendar.open {
  animation: hz-pop-in 180ms ease-out both;
  transform-origin: top center;
}

/* Step cards: soft enter when becoming active */
.c-step-card.is-active .c-step-body {
  animation: hz-pop-in 220ms ease-out both;
}

@media (prefers-reduced-motion: reduce) {
  .hz-overlay-in,
  .hz-pop-in,
  .hz-cal-pop,
  .hz-modal-in,
  .hz-cal-next,
  .hz-cal-prev,
  .nav-drawer-backdrop.is-open,
  .mds-drawer-backdrop.is-open,
  .wc-block-components-modal__screen-overlay,
  .components-modal__screen-overlay,
  .wc-block-components-drawer__screen-overlay,
  .wc-block-components-modal__frame,
  .components-modal__frame,
  .wc-block-components-drawer__content,
  .components-modal__content,
  .wc-block-components-combobox-control__suggestions,
  .components-popover,
  .components-dropdown-menu__menu,
  .components-menu-group,
  [data-wp-component="Popover"],
  .select2-dropdown,
  .flatpickr-calendar.open,
  .c-step-card.is-active .c-step-body {
    animation: none !important;
  }

  .hz-drawer-panel,
  .hz-drawer-backdrop,
  .nav-drawer,
  .nav-drawer-backdrop {
    transition: none !important;
  }
}
