/* ======================================================================
   NOBLE FACTORY GLOBAL BUTTON SYSTEM
   Colour is global; individual components may keep source-specific size,
   spacing and radius. Do not redefine button colours inside page CSS.
   ====================================================================== */

/* Primary action: Antique Gold -> Ink -> Oat across rest/hover/press. */
.nf-button,
.nf-primary-button,
.nf-collection-card__button,
.nf-large-card__cta,
.nf-cart-checkout,
.wp-element-button,
.wp-block-button__link{
  --nf-button-bg:var(--nf-btn-primary-bg);
  --nf-button-text:var(--nf-btn-primary-text);
  --nf-button-border:var(--nf-btn-primary-border);
  --nf-button-hover-bg:var(--nf-btn-primary-hover-bg);
  --nf-button-hover-text:var(--nf-btn-primary-hover-text);
  --nf-button-hover-border:var(--nf-btn-primary-hover-border);
  --nf-button-active-bg:var(--nf-btn-primary-active-bg);
  --nf-button-active-text:var(--nf-btn-primary-active-text);
  --nf-button-active-border:var(--nf-btn-primary-active-border);
  background-color:var(--nf-button-bg);
  border-color:var(--nf-button-border);
  color:var(--nf-button-text);
  box-shadow:none;
  text-decoration:none;
  transition:
    background-color .28s var(--nf-ease-source),
    border-color .28s var(--nf-ease-source),
    color .28s var(--nf-ease-source),
    transform .18s var(--nf-ease-source),
    box-shadow .18s ease;
}

.nf-button:hover,
.nf-primary-button:hover,
.nf-collection-card:hover .nf-collection-card__button,
.nf-collection-card:focus-visible .nf-collection-card__button,
.nf-large-card:hover .nf-large-card__cta,
.nf-large-card:focus-visible .nf-large-card__cta,
.nf-cart-checkout:hover,
.wp-element-button:hover,
.wp-block-button__link:hover{
  background-color:var(--nf-button-hover-bg);
  border-color:var(--nf-button-hover-border);
  color:var(--nf-button-hover-text);
}

.nf-button:active,
.nf-primary-button:active,
.nf-collection-card:active .nf-collection-card__button,
.nf-large-card:active .nf-large-card__cta,
.nf-cart-checkout:active,
.wp-element-button:active,
.wp-block-button__link:active{
  background-color:var(--nf-button-active-bg);
  border-color:var(--nf-button-active-border);
  color:var(--nf-button-active-text);
  transform:translateY(1px);
}

/* Keyboard focus is deliberately two-colour so it survives white and imagery. */
.nf-button:focus-visible,
.nf-primary-button:focus-visible,
.nf-cart-checkout:focus-visible,
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible{
  outline:0;
  box-shadow:
    0 0 0 2px var(--nf-btn-focus-inner),
    0 0 0 4px var(--nf-btn-focus-outer);
}

/* Secondary action for future pages. */
.nf-button--secondary{
  --nf-button-bg:var(--nf-btn-secondary-bg);
  --nf-button-text:var(--nf-btn-secondary-text);
  --nf-button-border:var(--nf-btn-secondary-border);
  --nf-button-hover-bg:var(--nf-btn-secondary-hover-bg);
  --nf-button-hover-text:var(--nf-btn-secondary-hover-text);
  --nf-button-hover-border:var(--nf-btn-secondary-hover-border);
  --nf-button-active-bg:var(--nf-btn-secondary-active-bg);
  --nf-button-active-text:var(--nf-btn-secondary-active-text);
  --nf-button-active-border:var(--nf-btn-secondary-active-border);
}

/* Disabled state is shared by HTML, ARIA and Woo disabled controls. */
.nf-button:disabled,
.nf-button[aria-disabled="true"],
.nf-primary-button:disabled,
.nf-primary-button[aria-disabled="true"],
.nf-cart-checkout[aria-disabled="true"],
.wp-element-button:disabled,
.wp-block-button__link[aria-disabled="true"]{
  background-color:var(--nf-btn-disabled-bg)!important;
  border-color:var(--nf-btn-disabled-border)!important;
  color:var(--nf-btn-disabled-text)!important;
  cursor:not-allowed!important;
  pointer-events:none;
  transform:none!important;
  box-shadow:none!important;
}

/* Compact utility buttons use the secondary palette, not page-local colours. */
.nf-button--icon{
  --nf-button-bg:var(--nf-btn-secondary-bg);
  --nf-button-text:var(--nf-btn-secondary-text);
  --nf-button-border:var(--nf-btn-secondary-border);
  --nf-button-hover-bg:var(--nf-btn-secondary-hover-bg);
  --nf-button-hover-text:var(--nf-btn-secondary-hover-text);
  --nf-button-hover-border:var(--nf-btn-secondary-hover-border);
  --nf-button-active-bg:var(--nf-btn-secondary-active-bg);
  --nf-button-active-text:var(--nf-btn-secondary-active-text);
  --nf-button-active-border:var(--nf-btn-secondary-active-border);
}
