/* PääAsia Design Engine 1.0: public surface and overlap prevention. */
.pa-public-ui {
  background: var(--pa-color-background);
  color: var(--pa-color-text-primary);
}

.pa-public-ui :where(*, *::before, *::after) {
  box-sizing: border-box;
}

.pa-public-ui :where(.pa-container, .pa-site-main, main > .elementor) {
  margin-inline: auto;
  max-width: var(--pa-container-wide);
  width: 100%;
}

.pa-public-ui :where(.pa-section, .elementor-top-section) {
  scroll-margin-top: 96px;
}

.pa-public-ui :where(.pa-card, .pa-service-item, .pa-pricing-row) {
  overflow-wrap: anywhere;
}

.pa-public-ui :where(.pa-card, .pa-selection-card) {
  transition:
    border-color var(--pa-transition-base),
    box-shadow var(--pa-transition-base),
    transform var(--pa-transition-base);
}

@media (hover: hover) {
  .pa-public-ui :where(a.pa-card, button.pa-card, .pa-selection-card:hover) {
    transform: translateY(var(--pa-lift-small));
  }
}

.pa-public-ui :where(.pa-modal, [role="dialog"]) {
  border-radius: var(--pa-radius-large);
  box-shadow: var(--pa-shadow-large);
  display: flex;
  flex-direction: column;
  max-height: min(88dvh, 900px);
  max-width: min(calc(100vw - 32px), 900px);
  overflow: hidden;
}

.pa-public-ui :where(.pa-modal__body, [role="dialog"] .pa-dialog__body) {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

.pa-public-ui :where(.pa-modal__header, .pa-modal__footer) {
  background: var(--pa-color-surface);
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
}

.pa-public-ui :where(.pa-icon-button, [data-pa-icon]) {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}

.pa-public-ui .pa-icon {
  display: block;
  height: var(--pa-icon-medium);
  pointer-events: none;
  width: var(--pa-icon-medium);
}

.pa-public-ui :where(.pa-empty, .pa-empty-state) {
  align-items: center;
  color: var(--pa-color-text-secondary);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 220px;
  padding: var(--pa-spacing-2xl) var(--pa-spacing-l);
  text-align: center;
}

/* Empty Elementor columns must not create the multi-screen gaps seen in menu views. */
.pa-public-ui .elementor-element:empty,
.pa-public-ui .elementor-widget-container:empty {
  min-height: 0 !important;
}

@media (max-width: 767px) {
  .pa-public-ui :where(.pa-modal, [role="dialog"]) {
    border-radius: var(--pa-radius-medium);
    max-height: calc(100dvh - 16px);
    max-width: calc(100vw - 16px);
  }

  .pa-public-ui :where(.pa-button, .pa-icon-button) {
    min-height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pa-public-ui *, .pa-public-ui *::before, .pa-public-ui *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
