/*
 * Buttons
 *
 * Use custom button styles for actions in forms, dialogs, and more
 * with support for multiple sizes, states, and more.
 *
 * Index
 * - Button
 * - Plain buttons
 * - Outline buttons
 * - Disabled buttons
 * - Button sizes
 *
 */


/* BUTTON
 -------------------- */

.btn {
  display: -webkit-inline-flex;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3rem;
  padding: 0 1.5em;
  margin-bottom: 1rem;
  font-family: var(--road-font);
  font-size: var(--road-button-medium);
  font-weight: 700;
  line-height: 1.375;
  color: var(--road-grey-10);
  text-decoration: none;
  white-space: nowrap;
  vertical-align: middle;
  background: var(--road-grey-80);
  border: 1px solid transparent;
  border-radius: 0.25rem;
  transition: background 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}

.btn:not(:disabled) {
  cursor: pointer;
}

/**
 * Fix states
 */

.btn:hover {
  text-decoration: none;
}

/* PLAIN BUTTONS
 -------------------- */

/**
 * Button primary
 */

.btn-primary {
  color: var(--road-on-button-primary);
  background: var(--road-button-primary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus-visible {
  background: var(--road-button-primary-variant);
  outline: 0;
}

/**
 * Button secondary
 */

.btn-secondary {
  color: var(--road-on-button-secondary);
  background: var(--road-button-secondary);
}

.btn-secondary:hover {
  background: var(--road-button-secondary-variant);
}

/**
 * Button destructive
 */

.btn-destructive {
  color: var(--road-on-button-destructive-primary);
  background: var(--road-button-destructive-primary);
}

.btn-destructive:hover {
  background: var(--road-button-destructive-primary-variant);
}

/**
 * Button default
 */

.btn-default:hover {
  background: var(--road-grey-80);
}

/**
 * Button link
 */

.btn-link {
  font-weight: 400;
  color: var(--road-link-primary);
  text-decoration: underline;
  background: transparent;
}

.btn-link:hover{
  color: var(--road-primary-30);
}

/**
 * Button Ghost
 */

.btn-ghost {
  color: var(--road-on-button-ghost);
  background: transparent;
}

.btn-ghost:hover{
  background: var(--road-button-ghost-variant);
}


/* OUTLINE BUTTONS
 -------------------- */

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-default,
.btn-outline-destructive {
  background: transparent;
}

/**
 * Button outline default
 */

.btn-outline-default {
  color: var(--road-on-surface-weak);
  border-color: var(--road-input-outline);
}

.btn-outline-default:hover {
  background: var(--road-grey-80);
}

/**
 * Button outline primary
 */

.btn-outline-primary {
  color: var(--road-button-primary);
  border-color: var(--road-button-tertiary-outline);
}

.btn-outline-primary:hover{
  background: var(--road-button-tertiary-variant);
}

/**
 * Button outline secondary
 */

.btn-outline-secondary {
  color: var(--road-button-primary);
  border-color: var(--road-button-primary);
}

.btn-outline-secondary:hover {
  background: var(--road-button-tertiary-variant);
}

/**
 * Button outline destructive
 */

.btn-outline-destructive {
  color: var(--road-on-button-destructive-secondary);
  border-color: var(--road-button-destructive-outline);
}

.btn-outline-destructive:hover {
  background: var(--road-button-destructive-secondary-variant);
}

/* BUTTON
 -------------------- */

.btn-icon-only {
  width: 56px;
  padding: 0;
}

.btn-icon-only.btn-xl {
  width: 56px;
  padding: 0;
}

.btn-icon-only.btn-lg {
  width: 48px;
  padding: 0;
}

.btn-icon-only.btn-md {
  width: 40px;
  padding: 0;
}

.btn-icon-only.btn-sm {
  width: 32px;
  padding: 0;
}

.btn-icon-only svg{
  width: 32px;
  fill: currentColor;
}

.btn-icon-only.btn-md svg{
  width: 24px;
  fill: currentColor;
}

.btn-icon-only.btn-sm svg{
  width: 20px;
  fill: currentColor;
}


/* DISABLED BUTTONS
 -------------------- */

.btn:disabled {
  color: var(--road-on-surface-disabled);
  cursor: not-allowed;
  background: var(--road-surface-disabled);
  border-color: var(--road-surface-disabled);

}

[class*="btn-outline"]:disabled:hover{
  background: var(--road-surface-disabled);
}

[class*="btn-primary"]:disabled,
[class*="btn-secondary"]:disabled,
[class*="btn-ghost"]:disabled,
[class*="btn-primary"][disabled],
[class*="btn-secondary"][disabled],
[class*="btn-ghost"][disabled]
{
  color: var(--road-on-surface-disabled);
  cursor: not-allowed;
  background: var(--road-surface-disabled);
  border-color: var(--road-surface-disabled);
}

[class*="btn-outline-primary"]:disabled,
[class*="btn-outline-secondary"]:disabled,
[class*="btn-outline-primary"][disabled],
[class*="btn-outline-secondary"][disabled]
{
  color: var(--road-on-surface-disabled);
  cursor: not-allowed;
  background: none;
  border-color: var(--road-surface-disabled);
}


/* BUTTON SIZES
 -------------------- */

.btn-icon {
  width: 2rem;
  margin-right: 0.5rem;
  fill: currentColor;
}

.btn-link .btn-icon {
  transition: fill 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
  fill: currentColor;
}

/**
 * Extra Large button
 */

.btn-xl,
.btn-group-xl > .btn {
  height: 3.5rem;
}

/**
 * Medium button
 */

.btn-md,
.btn-group-md > .btn {
  height: 2.5rem;
  font-size: var(--road-font-size-14);
}

.btn-md .btn-icon {
  width: 1.5rem;
  height: 1.5rem;
}

/**
 * Small button
 */

.btn-sm,
.btn-group-sm > .btn {
  height: 2rem;
  font-size: var(--road-font-size-14);
}

.btn-sm .btn-icon {
  width: 1.25rem;
  height: 1.25rem;
}

/**
 * Button block
 */

.btn-block {
  width: 100%;
}
