/*
 * Nashrieh button system.
 *
 * Theme markup: class="na-button na-button--primary"
 * Elementor: add na-button--primary to the Button widget's CSS Classes field.
 * WordPress blocks: add na-button--primary as an additional CSS class.
 */
:root {
  --na-button-duration: 180ms;
}

/* Elementor and block buttons share the same restrained archive geometry. */
.elementor-widget-button .elementor-button,
.wp-block-button .wp-block-button__link {
  min-height: 42px;
  border-radius: var(--na-radius, 4px);
  font-family: var(--na-font-ui, inherit);
  font-weight: 700;
  line-height: 1.35;
}

/* Shared colour transition only. Buttons remain physically still. */
.elementor-widget-button .elementor-button,
.wp-block-button .wp-block-button__link,
:is(a, button, input[type="button"], input[type="submit"]).na-button {
  transition:
    background-color var(--na-button-duration) ease,
    border-color var(--na-button-duration) ease,
    color var(--na-button-duration) ease;
}

/* Shared shape for theme buttons and classified Elementor/block buttons. */
:is(a, button, input[type="button"], input[type="submit"]).na-button,
body .elementor-element.elementor-widget-button[class*="na-button--"] .elementor-button,
.wp-block-button[class*="na-button--"] .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 18px;
  border: 1px solid transparent;
  border-radius: var(--na-radius, 4px);
  font-family: var(--na-font-ui, inherit);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

/* Primary archive-blue button; hover stays blue. */
:is(a, button, input).na-button--primary,
body .elementor-element.elementor-widget-button.na-button--primary .elementor-button,
.wp-block-button.na-button--primary .wp-block-button__link {
  border-color: var(--na-theme);
  background: var(--na-theme);
  color: var(--na-white);
}

:is(a, button, input).na-button--primary:hover,
body .elementor-element.elementor-widget-button.na-button--primary .elementor-button:hover,
.wp-block-button.na-button--primary .wp-block-button__link:hover {
  border-color: var(--na-theme-hover);
  background: var(--na-theme-hover);
  color: var(--na-white);
}

/* Gold call-to-action; hover stays within the gold family. */
:is(a, button, input).na-button--gold,
body .elementor-element.elementor-widget-button.na-button--gold .elementor-button,
.wp-block-button.na-button--gold .wp-block-button__link {
  border-color: var(--na-gold);
  background: var(--na-gold);
  color: var(--na-theme-deep);
}

:is(a, button, input).na-button--gold:hover,
body .elementor-element.elementor-widget-button.na-button--gold .elementor-button:hover,
.wp-block-button.na-button--gold .wp-block-button__link:hover {
  border-color: var(--na-gold-hover);
  background: var(--na-gold-hover);
  color: var(--na-theme-deep);
}

/* Blue outline; hover uses only a pale blue fill. */
:is(a, button, input).na-button--outline,
body .elementor-element.elementor-widget-button.na-button--outline .elementor-button,
.wp-block-button.na-button--outline .wp-block-button__link {
  border-color: var(--na-theme);
  background: transparent;
  color: var(--na-theme);
}

:is(a, button, input).na-button--outline:hover,
body .elementor-element.elementor-widget-button.na-button--outline .elementor-button:hover,
.wp-block-button.na-button--outline .wp-block-button__link:hover {
  border-color: var(--na-theme-dark);
  background: var(--na-theme-light);
  color: var(--na-theme-dark);
}

/* Gold outline; hover uses a pale parchment-gold fill. */
:is(a, button, input).na-button--gold-outline,
body .elementor-element.elementor-widget-button.na-button--gold-outline .elementor-button,
.wp-block-button.na-button--gold-outline .wp-block-button__link {
  border-color: var(--na-gold-dark);
  background: transparent;
  color: var(--na-gold-dark);
}

:is(a, button, input).na-button--gold-outline:hover,
body .elementor-element.elementor-widget-button.na-button--gold-outline .elementor-button:hover,
.wp-block-button.na-button--gold-outline .wp-block-button__link:hover {
  border-color: var(--na-gold);
  background: var(--na-gold-soft);
  color: var(--na-theme-deep);
}

/* Quiet utility action for lower-priority controls. */
:is(a, button, input).na-button--quiet,
body .elementor-element.elementor-widget-button.na-button--quiet .elementor-button,
.wp-block-button.na-button--quiet .wp-block-button__link {
  border-color: var(--na-border);
  background: var(--na-bg-light);
  color: var(--na-theme-dark);
}

:is(a, button, input).na-button--quiet:hover,
body .elementor-element.elementor-widget-button.na-button--quiet .elementor-button:hover,
.wp-block-button.na-button--quiet .wp-block-button__link:hover {
  border-color: var(--na-border-strong);
  background: var(--na-bg-heavy);
  color: var(--na-theme-deep);
}

:is(a, button, input).na-button:focus-visible,
body .elementor-element.elementor-widget-button[class*="na-button--"] .elementor-button:focus-visible,
.wp-block-button[class*="na-button--"] .wp-block-button__link:focus-visible {
  outline: 3px solid var(--na-gold-light);
  outline-offset: 3px;
}

:is(a, button, input).na-button:is([disabled], [aria-disabled="true"]),
body .elementor-element.elementor-widget-button[class*="na-button--"] .elementor-button[aria-disabled="true"],
.wp-block-button[class*="na-button--"] .wp-block-button__link[aria-disabled="true"] {
  opacity: .55;
  pointer-events: none;
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  .elementor-widget-button .elementor-button,
  .wp-block-button .wp-block-button__link,
  :is(a, button, input[type="button"], input[type="submit"]).na-button {
    transition-duration: 0.01ms;
  }
}
