/*
 * File: css/conf/02-components/07.buttons.css
 * Logic: Global Button Styles & Variants.
 * Refactored from: 05.schema.css, 01.colors.css, 04.animation.css
 */

/* ==========================================================================
   1. PRIMARY BUTTON (Gradient & Borders)
   ========================================================================== */
.wsdt-btn,
.websdt-btn,
.btn-primary,
.button--primary,
.wsdt-slide-link,
.wsdt-button-link,
.websdt-btn-primary,
.link-cta,
.form-actions .button.form-submit,
#user-login-form .form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--btn-padding);
  font-family: var(--h-font-family);
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-sm);
  font-size: var(--font-size-base);
  border-radius: var(--radius-sm);
  cursor: pointer;
  color: var(--btn-text);

  /* Borders: White left/right 4px based on Tokens */
  border-left: var(--btn-border-w) solid var(--btn-border-color);
  border-right: var(--btn-border-w) solid var(--btn-border-color);
  border-top: var(--btn-border-w) solid transparent;
  border-bottom: var(--btn-border-w) solid transparent;

  /* Background Logic (Red default, White hover) */
  background-color: var(--btn-bg); /* Fallback */
  background-image: linear-gradient(
    to right,
    var(--btn-text) 50%,
    var(--btn-bg) 50%
  );

  /* Animation handled in 03.animations.css via class or here if specific */
  background-size: var(--bg-slide-size);
  background-position: var(--bg-slide-pos-start); /* Start: Right (Red) */
  transition: background-position var(--transition-fast),
    color var(--transition-fast), border-color var(--transition-fast);
}

.wsdt-btn:hover,
.websdt-btn:hover,
.btn-primary:hover,
.button--primary:hover,
.wsdt-slide-link:hover,
.wsdt-button-link:hover,
.websdt-btn-primary:hover,
.link-cta:hover,
.form-actions .button.form-submit:hover,
#user-login-form .form-submit:hover {
  background-position: var(--bg-slide-pos-end); /* End: Left (White) */
  color: var(--color-secondary) !important;
  border-left-color: var(--color-secondary);
  border-right-color: var(--color-secondary);
  box-shadow: var(--shadow-card-hover);
}

/* ==========================================================================
   2. SECONDARY / OUTLINE BUTTON
   ========================================================================== */
.websdt-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--btn-padding);
  font-family: var(--h-font-family);
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-sm);
  font-size: var(--font-size-base);
  border-radius: var(--radius-sm);
  cursor: pointer;
  background-color: transparent;
  border: var(--border-width-sm) solid var(--text-body);
  color: var(--text-body);
  transition: var(--interaction-transition);
}

.websdt-btn-secondary:hover {
  background-color: var(--text-body);
  color: var(--text-on-dark);
}

/* ==========================================================================
   3. LINK STYLE BUTTON
   ========================================================================== */
.websdt-btn-link {
  background: transparent;
  text-decoration: underline;
  color: var(--text-body);
  font-size: var(--p-font-size);
  padding: var(--btn-padding);
  transition: var(--interaction-transition);
  border: var(--border-width-sm) solid transparent;
}

.websdt-btn-link:hover {
  color: var(--color-secondary);
}
