@layer ln-grid {
  /* BUTTON ELEMENTS */
  [data-ln-button] {
    box-sizing: border-box;
    font-weight: 500;

    &:focus-visible {
      outline: 1px solid var(--ln-primary-50);
    }

    &[data-ln-size="xs"] {
      height: 24px;
      font-size: 0.75rem;
      line-height: 20px;
      padding: 0px var(--ln-padding-field-sm);
      border-radius: var(--ln-radius-field-sm);
    }
    &[data-ln-size="sm"] {
      height: 30px;
      font-size: 0.75rem;
      line-height: 20px;
      padding: 0px var(--ln-padding-field-md);
      border-radius: var(--ln-radius-field-md);
    }
    &[data-ln-size="md"] {
      height: 32px;
      font-size: 0.875rem;
      line-height: 20px;
      padding: 0px var(--ln-padding-field-md);
      border-radius: var(--ln-radius-field-md);
    }
    &[data-ln-size="lg"] {
      height: 36px;
      font-size: 0.875rem;
      line-height: 22px;
      padding: 0px var(--ln-padding-field-lg);
      border-radius: var(--ln-radius-field-lg);
    }
    &[data-ln-size="mx"] {
      height: 38px;
      font-size: 0.875rem;
      line-height: 22px;
      padding: 0px var(--ln-padding-field-xl);
      border-radius: var(--ln-radius-field-lg);
    }

    transition-property: background-color, color;
    transition-duration: var(--ln-transition-duration);
    transition-timing-function: var(--ln-transition-fn);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    box-sizing: border-box;
    border: 1px solid transparent;

    &:hover {
      cursor: pointer;
    }

    &:active:not(:disabled) {
      transform: scale(0.99);
    }

    &:disabled {
      background-color: var(--ln-bg-strong);
      border: 1px solid transparent;
      color: var(--ln-text-xlight);
      cursor: not-allowed;
    }
  }

  [data-ln-button="primary"] {
    --mix-color: black;
    background-color: var(--ln-primary-50);
    color: var(--ln-text-primary-button);
    border: 1px solid var(--ln-primary-70);

    &:hover:not(:disabled) {
      background-color: color-mix(in srgb, var(--ln-primary-50) 90%, var(--mix-color) 10%);
    }
  }

  [data-ln-button="secondary"] {
    background-color: transparent;
    color: var(--ln-text);

    &:hover:not(:disabled) {
      background-color: var(--ln-bg);
    }
  }

  [data-ln-button="tertiary"] {
    background-color: var(--ln-bg-button-light);
    border: 1px solid var(--ln-border-button-light);

    &:hover:not(:disabled) {
      background-color: var(--ln-bg);
    }
  }

  [data-ln-button="website"] {
    border: 1px solid var(--ln-gray-30);
    color: var(--ln-gray-80);
    box-shadow:
      inset 0 0 11px 0 hsla(176, 55%, 89%, 0.16),
      0 4px 6px -4px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px); /* Safari support */

    &:hover {
      background-color: var(--ln-gray-20);
    }
  }

  .ln-light,
  .light {
    [data-ln-button="website"] {
      border: 1px solid var(--ln-gray-60);
    }

    [data-ln-button="primary"] {
      border: 1px solid #005ffa;
      &:disabled {
        border: 1px solid transparent;
      }
    }
  }

  [data-ln-button][data-ln-icon="true"] {
    padding: 0px;

    &[data-ln-size="xs"] {
      height: 24px;
      width: 24px;
      max-height: 24px;
      max-width: 24px;
      min-height: 24px;
      min-width: 24px;
    }

    &[data-ln-size="sm"] {
      height: 30px;
      width: 30px;
      max-height: 30px;
      max-width: 30px;
      min-height: 30px;
      min-width: 30px;
    }
    &[data-ln-size="md"] {
      height: 32px;
      width: 32px;
      max-height: 32px;
      max-width: 32px;
      min-height: 32px;
      min-width: 32px;
    }
    &[data-ln-size="lg"] {
      height: 36px;
      width: 36px;
      max-height: 36px;
      max-width: 36px;
      min-height: 36px;
      min-width: 36px;
    }
    &[data-ln-size="mx"] {
      height: 40px;
      width: 40px;
      max-height: 40px;
      max-width: 40px;
      min-height: 40px;
      min-width: 40px;
    }
  }
}
