/* DUNEUS · Buttons & form fields
 * Part of the modular DUNEUS presentation layer. Load order:
 * tokens -> base -> forms -> header -> footer -> product-card ->
 * product -> collection -> cart -> sections -> responsive
 * ------------------------------------------------------------------------ */

/* ---------------------------------------------------------------------------
 * 05 · BUTTONS
 * ------------------------------------------------------------------------ */
body .btn {
  font-family: var(--duneus-font-en-heading, 'Montserrat'), sans-serif;
  font-size: var(--d-fs-sm);
  font-weight: 700;
  letter-spacing: var(--d-track-btn);
  text-transform: uppercase;
  padding: 0.95rem 1.75rem;
  min-height: 52px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: background-color var(--d-base) var(--d-ease),
              color var(--d-base) var(--d-ease),
              border-color var(--d-base) var(--d-ease),
              transform var(--d-fast) var(--d-ease);
}

[dir='rtl'] body .btn { letter-spacing: 0; text-transform: none; }

body .btn:hover { transform: translateY(-1px); }
body .btn:active { transform: translateY(0); }

body .btn-primary,
body .btn-add-to-cart {
  background-color: var(--d-orange);
  border-color: var(--d-orange);
  color: var(--d-ink);
}
body .btn-primary:hover,
body .btn-add-to-cart:hover {
  background-color: var(--d-orange-dk);
  border-color: var(--d-orange-dk);
  color: var(--d-ink);
}

/* Buy Now is the secondary path — outline, so it never competes with add. */
body .btn-buy-now {
  /* Was a white outline, which is invisible on a light page. Filled dark so it
     reads as the secondary action next to the accent-filled primary. */
  background-color: var(--d-ink);
  border-color: var(--d-ink);
  color: #FFFFFF;
}
body .btn-buy-now:hover {
  background-color: transparent;
  border-color: var(--d-ink);
  color: var(--d-ink);
}

body .btn-secondary,
body .btn-outline-primary,
body .btn-outline-secondary {
  background-color: transparent;
  border-color: var(--d-line);
  color: var(--d-ink);
}
body .btn-secondary:hover,
body .btn-outline-primary:hover,
body .btn-outline-secondary:hover {
  border-color: var(--d-ink);
  background-color: transparent;
  color: var(--d-ink);
}

body .btn:disabled,
body .btn.disabled {
  opacity: 0.35;
  cursor: not-allowed;
  transform: none;
}

/* Out-of-stock CTA on cards reads as informational, not purchasable. */
body .btn-product-card-out-of-stock {
  background-color: transparent !important;
  border-color: var(--d-line) !important;
  color: var(--d-mute) !important;
}

/* ---------------------------------------------------------------------------
 * 06 · FORMS
 * ------------------------------------------------------------------------ */
body .form-control,
body select,
body .select-quantity,
body textarea {
  background-color: var(--d-surface-2);
  border: 1px solid var(--d-line);
  color: var(--duneus-fg, #111111);
  font-family: var(--duneus-font-en-body, 'Montserrat'), sans-serif;
  font-size: var(--d-fs-body);
  min-height: 52px;
  padding: 0.75rem 1rem;
  transition: border-color var(--d-fast) var(--d-ease),
              background-color var(--d-fast) var(--d-ease);
}

body .form-control::placeholder,
body textarea::placeholder { color: var(--d-faint); }

body .form-control:focus,
body select:focus,
body textarea:focus {
  background-color: var(--d-surface-2);
  border-color: var(--d-orange);
  color: var(--duneus-fg, #111111);
  box-shadow: none !important;
  outline: none;
}

body label,
body .form-label {
  font-family: var(--duneus-font-en-heading, 'Montserrat'), sans-serif;
  font-size: var(--d-fs-micro);
  font-weight: 700;
  letter-spacing: var(--d-track-micro);
  text-transform: uppercase;
  color: var(--d-faint);
  margin-block-end: 0.5rem;
}

[dir='rtl'] body label,
[dir='rtl'] body .form-label { letter-spacing: 0; text-transform: none; }

/* Quantity select — compact, hardware-like. */
body .select-quantity { max-width: 120px; }

