sc-button {
  /**
    @prop --sc-button-bg-color:
      Background of the button.
      - default: var(--sc-bg-color, #f6f6f8)
    @prop --sc-button-text-color:
      Button text color.
      - default: var(--sc-text-color, #333333)
    @prop --sc-button-border-radius:
      Button border radius.
      - default: var(--sc-border-radius, 1em)
    @prop --sc-button-padding-y:
      Vertical paddings.
      - default: calc(var(--sc-root-spacing, 8px) * 2)
    @prop --sc-button-padding-x:
      Horizontal paddings.
      - default: calc(var(--sc-root-spacing, 8px) * 4)
    @prop --sc-button-icon-size:
      Icon button size.
      - default: calc(var(--sc-root-spacing, 8px) * 6)
    @prop --sc-button-circle-size:
      Circle button size.
      - default: calc(var(--sc-root-spacing, 8px) * 6)
    @prop --sc-button-bordered-border-radius:
      Bordered-style border radius
      - default: var(--sc-button-border-radius)
    @prop --sc-button-bordered-border-width:
      Bordered-style border width
      - default: 2px
    @prop --sc-button-text-hover-color:
      Text color on hover
      - default: var(--sc-secondary-color, #646695)
    @prop --sc-button-text-active-color:
      Text color with active prop
      - default: var(--sc-active-color, #c586c0)
    @prop --sc-button-width:
      Set fixed width for button
      - default: auto
    @prop --sc-button-edge-width:
      Width of the edge
      - default: 4px
    @prop --sc-button-vertical-align:
      vertical align of the button
      - default: top
    */
  --sc-button-bg-color: var(--sc-bg-color, #f6f6f8);
  --sc-button-text-color: var(--sc-text-color, #333333);
  --sc-button-border-radius: var(--sc-border-radius, 1em);
  --sc-button-padding-y: calc(var(--sc-root-spacing, 8px) * 2);
  --sc-button-padding-y: calc(var(--sc-root-spacing, 0.5rem) * 2);
  --sc-button-padding-x: calc(var(--sc-root-spacing, 8px) * 4);
  --sc-button-padding-x: calc(var(--sc-root-spacing, 0.5rem) * 4);
  --sc-button-icon-size: calc(var(--sc-root-spacing, 8px) * 6);
  --sc-button-icon-size: calc(var(--sc-root-spacing, 0.5rem) * 6);
  --sc-button-circle-size: calc(var(--sc-root-spacing, 8px) * 6);
  --sc-button-circle-size: calc(var(--sc-root-spacing, 0.5rem) * 6);
  --sc-button-bordered-border-radius: var(--sc-button-border-radius);
  --sc-button-bordered-border-width: 2px;
  --sc-button-bordered-border-width: 0.125rem;
  --sc-button-text-hover-color: var(--sc-secondary-color, #646695);
  --sc-button-text-active-color: var(--sc-active-color, #c586c0);
  --sc-button-width: auto;
  --sc-button-edge-width: 4px;
  --sc-button-edge-width: 0.25rem;
  --sc-button-vertical-align: top;
  display: inline-block;
  vertical-align: var(--sc-button-vertical-align);
}
sc-button[type] {
  -webkit-appearance: none;
}
sc-button * {
  box-sizing: border-box;
}
sc-button:not(.flat) a,
sc-button:not(.flat) button {
  box-shadow: calc(var(--sc-highlight-dist-x) * 1) calc(var(--sc-highlight-dist-y) * 1) calc(30px * 1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), calc(var(--sc-shadow-dist-x) * 1) calc(var(--sc-shadow-dist-y) * 1) calc(30px * 1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
  box-shadow: calc(var(--sc-highlight-dist-x) * 1) calc(var(--sc-highlight-dist-y) * 1) calc(1.875rem * 1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), calc(var(--sc-shadow-dist-x) * 1) calc(var(--sc-shadow-dist-y) * 1) calc(1.875rem * 1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
}
sc-button a,
sc-button button {
  cursor: pointer;
  border: none;
  text-decoration: none;
  display: block;
  background-color: var(--sc-button-bg-color);
  color: var(--sc-button-text-color);
  border-radius: var(--sc-button-border-radius);
  position: relative;
  padding: var(--sc-button-edge-width);
  font-size: 1em;
  font-family: inherit;
  width: var(--sc-button-width);
}
sc-button a .button-inner,
sc-button button .button-inner {
  overflow: hidden;
  transition: all 0.4s ease;
  display: block;
  padding: var(--sc-button-padding-y) var(--sc-button-padding-x);
  border-radius: calc(var(--sc-button-border-radius) - 4px);
  border-radius: calc(var(--sc-button-border-radius) - 0.25rem);
  width: var(--sc-button-width);
}
sc-button a:hover, sc-button a:focus,
sc-button button:hover,
sc-button button:focus {
  color: var(--sc-button-text-hover-color);
}
sc-button a:hover .button-inner, sc-button a:focus .button-inner,
sc-button button:hover .button-inner,
sc-button button:focus .button-inner {
  box-shadow: inset calc(var(--sc-highlight-dist-x) * 0.5) calc(var(--sc-highlight-dist-y) * 0.5) calc(30px * 0.5) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 0.5) calc(var(--sc-shadow-dist-y) * 0.5) calc(30px * 0.5) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
  box-shadow: inset calc(var(--sc-highlight-dist-x) * 0.5) calc(var(--sc-highlight-dist-y) * 0.5) calc(1.875rem * 0.5) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 0.5) calc(var(--sc-shadow-dist-y) * 0.5) calc(1.875rem * 0.5) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
}
sc-button a:active .button-inner,
sc-button button:active .button-inner {
  box-shadow: inset calc(var(--sc-highlight-dist-x) * 1) calc(var(--sc-highlight-dist-y) * 1) calc(30px * 1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 1) calc(var(--sc-shadow-dist-y) * 1) calc(30px * 1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
  box-shadow: inset calc(var(--sc-highlight-dist-x) * 1) calc(var(--sc-highlight-dist-y) * 1) calc(1.875rem * 1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 1) calc(var(--sc-shadow-dist-y) * 1) calc(1.875rem * 1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
}
sc-button.block {
  display: block;
}
sc-button.block a,
sc-button.block button {
  width: 100%;
}
sc-button.block a .button-inner,
sc-button.block button .button-inner {
  width: 100%;
  text-align: center;
  justify-content: center;
}
sc-button.icon a,
sc-button.icon button {
  width: var(--sc-button-icon-size);
  height: var(--sc-button-icon-size);
  padding: var(--sc-button-edge-width);
  font-size: calc(var(--sc-button-icon-size) * 0.4);
}
sc-button.icon a .button-inner,
sc-button.icon button .button-inner {
  padding: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
sc-button.icon-text .button-inner {
  display: flex;
  align-items: center;
}
sc-button.bordered a,
sc-button.bordered button {
  position: relative;
  padding: calc( var(--sc-button-edge-width) + var(--sc-button-bordered-border-width) );
}
sc-button.bordered a::before,
sc-button.bordered button::before {
  content: "";
  position: absolute;
  top: calc(var(--sc-button-edge-width) - 1px);
  top: calc(var(--sc-button-edge-width) - 0.0625rem);
  left: calc(var(--sc-button-edge-width) - 1px);
  left: calc(var(--sc-button-edge-width) - 0.0625rem);
  bottom: calc(var(--sc-button-edge-width) - 1px);
  bottom: calc(var(--sc-button-edge-width) - 0.0625rem);
  right: calc(var(--sc-button-edge-width) - 1px);
  right: calc(var(--sc-button-edge-width) - 0.0625rem);
  border-radius: var(--sc-button-bordered-border-radius);
  background-image: linear-gradient(to bottom right, var(--sc-border-color, var(--sc-shadow-color, rgba(0, 0, 0, 0.2))) -10%, var(--sc-highlight-color, rgba(255, 255, 255, 0.2)) 55%), linear-gradient(to bottom right, var(--sc-highlight-color, rgba(255, 255, 255, 0.2)) 55%, var(--sc-border-color, var(--sc-shadow-color, rgba(0, 0, 0, 0.2))) 70%);
}
sc-button.bordered a .button-inner,
sc-button.bordered button .button-inner {
  position: relative;
  background-color: var(--sc-button-bg-color);
  border-radius: calc(var(--sc-button-bordered-border-radius) - 1px);
  border-radius: calc(var(--sc-button-bordered-border-radius) - 0.0625rem);
}
sc-button.bordered.icon a,
sc-button.bordered.icon button {
  --sc-button-bordered-border-radius: 50%;
  line-height: calc( var(--sc-button-icon-size) - (var(--sc-button-edge-width) * 2) - var(--sc-button-bordered-border-width) - var(--sc-button-bordered-border-width) );
}
sc-button.circle a,
sc-button.circle button {
  width: var(--sc-button-circle-size);
  height: var(--sc-button-circle-size);
  border-radius: 50%;
  padding: var(--sc-button-edge-width);
}
sc-button.circle a::before,
sc-button.circle button::before {
  border-radius: 50%;
}
sc-button.circle a .button-inner,
sc-button.circle button .button-inner {
  padding: 0;
  width: 100%;
  height: 100%;
  display: flex;
  border-radius: 50%;
}
sc-button.circle.bordered a,
sc-button.circle.bordered button {
  padding: calc( var(--sc-button-edge-width) + var(--sc-button-bordered-border-width) );
}
sc-button.active a,
sc-button.active button {
  color: var(--sc-button-text-active-color);
}
sc-button.active a .button-inner,
sc-button.active button .button-inner {
  box-shadow: inset calc(var(--sc-highlight-dist-x) * 1) calc(var(--sc-highlight-dist-y) * 1) calc(30px * 1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 1) calc(var(--sc-shadow-dist-y) * 1) calc(30px * 1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
  box-shadow: inset calc(var(--sc-highlight-dist-x) * 1) calc(var(--sc-highlight-dist-y) * 1) calc(1.875rem * 1) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 1) calc(var(--sc-shadow-dist-y) * 1) calc(1.875rem * 1) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
}
sc-button.disabled a,
sc-button.disabled button {
  box-shadow: none;
  color: #999;
}
sc-button.disabled a:hover .button-inner, sc-button.disabled a:focus .button-inner,
sc-button.disabled button:hover .button-inner,
sc-button.disabled button:focus .button-inner {
  box-shadow: none;
}