.button {
  display: inline-flex;
  align-items: center;
  gap: var(--space-icon-label);
  color: inherit;
  background: transparent;
  border: 0;
  font-family: inherit;
  font-size: var(--font-size-supporting);
  font-weight: var(--font-weight-site);
  line-height: var(--leading-supporting);
  text-decoration: none;
  cursor: pointer;
  transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease;
}

.button--block {
  width: 100%;
  padding: var(--space-row) var(--space-page);
}

.button--ghost {
  color: var(--color-accent);
  background: transparent;
}

.button__icon {
  width: 1em;
  height: 1em;
  flex: none;
  font-size: 1em;
  line-height: 1;
  letter-spacing: normal;
  fill: currentColor;
}

.icon-button {
  --icon-button-size: 1lh;
  --icon-button-icon-scale: 0.5;

  display: inline-flex;
  width: var(--icon-button-size);
  height: var(--icon-button-size);
  flex: none;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: inherit;
  border: 0;
  border-radius: 50%;
  font: inherit;
  cursor: pointer;
  transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease;
}

.icon-button--ghost {
  background: transparent;
}

.icon-button__icon {
  flex: none;
  font-size: calc(1em * var(--icon-button-icon-scale));
}

.icon-button:focus-visible {
  outline: var(--focus-ring) solid var(--color-focus);
  outline-offset: calc(-1 * var(--focus-ring));
}

.material-symbols-sharp {
  --symbol-optical-size: 20;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Material Symbols Sharp";
  font-style: normal;
  font-weight: var(--font-weight-site);
  font-feature-settings: "liga";
  font-variation-settings: "opsz" var(--symbol-optical-size), "wght" 500, "FILL" 0, "GRAD" 0;
  text-transform: none;
  white-space: nowrap;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
}

.button:focus-visible {
  outline-offset: calc(-1 * var(--focus-ring));
}

@media (hover: hover) {
  .button:hover {
    color: var(--color-on-accent);
    background: var(--color-accent);
  }

  .icon-button--ghost:hover {
    color: var(--color-on-accent);
    background: var(--color-accent);
  }
}

@media (max-width: 700px) {
  .button--block {
    padding: var(--space-row-compact) var(--space-page-compact);
  }
}

@media (prefers-reduced-motion: reduce) {
  .button,
  .icon-button {
    transition: none;
  }
}
