/* Public actions borrow the printed label's outline and solid offset shadow. */
.public-site .btn {
  --button-fill: #fff;
  --button-hover-fill: var(--mist);
  --button-ink: var(--ink);
  --button-edge: var(--ink);
  --button-depth: 3px;
  --button-hover-transform: translate(-1px, -1px);
  --button-press-transform: translate(var(--button-depth), var(--button-depth));
  --bs-btn-disabled-opacity: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 44px;
  padding: .8rem 1.25rem;
  border: 1.5px solid var(--button-edge);
  border-radius: 2rem;
  background: var(--button-fill);
  color: var(--button-ink);
  box-shadow: var(--button-depth) var(--button-depth) 0 var(--button-edge);
  font-family: var(--display-font), "DM Sans", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.public-site .btn-brand {
  --button-fill: var(--accent);
  --button-hover-fill: var(--color-primary-hover);
  --button-ink: #fff;
  --button-depth: 4px;
  padding: 1rem 1.65rem;
}

.public-site .btn-sm {
  --button-depth: 2px;
  padding: .65rem 1rem;
  font-size: .875rem;
}

@media (hover: hover) and (pointer: fine) {
  .public-site .btn:hover:not(:disabled, .disabled, [aria-disabled="true"]) {
    color: var(--button-ink);
    background: var(--button-hover-fill);
    border-color: var(--button-edge);
    box-shadow: calc(var(--button-depth) + 1px) calc(var(--button-depth) + 1px) 0 var(--button-edge);
    transform: var(--button-hover-transform);
  }
}

.public-site .btn:focus-visible {
  color: var(--button-ink);
  background: var(--button-fill);
  border-color: var(--button-edge);
  outline: 3px solid var(--accent);
  outline-offset: 5px;
  box-shadow: var(--button-depth) var(--button-depth) 0 var(--button-edge);
}

.public-site .btn:active:not(:disabled, .disabled, [aria-disabled="true"]) {
  color: var(--button-ink);
  background: var(--button-hover-fill);
  border-color: var(--button-edge);
  transform: var(--button-press-transform);
  box-shadow: 0 0 0 var(--button-edge);
}

.public-site .btn:is(:disabled, .disabled, [aria-disabled="true"]) {
  color: var(--muted);
  background: #e9eef5;
  border-color: #aab6c6;
  box-shadow: none;
  transform: none;
  opacity: 1;
}

/* QR/NFC choices and public studio types use a quieter version of the same edge. */
.public-site .cafe-method,
.public-site .studio-types button {
  --button-hover-transform: translate(-1px, -1px);
  --button-press-transform: translate(2px, 2px);
  border: 1.5px solid var(--ink);
  background: #fff;
  color: var(--ink);
  box-shadow: 2px 2px 0 var(--ink);
  transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.public-site .cafe-method strong {
  font-family: var(--display-font), "DM Sans", sans-serif;
  font-size: 1.1rem;
}

.public-site .studio-types button[aria-pressed="true"] {
  background: var(--accent);
  color: #fff;
  transform: var(--button-press-transform);
  box-shadow: none;
}

@media (hover: hover) and (pointer: fine) {

  .public-site .cafe-method:hover,
  .public-site .studio-types button:hover:not([aria-pressed="true"]) {
    color: var(--ink);
    background: var(--mist);
    border-color: var(--ink);
    transform: var(--button-hover-transform);
    box-shadow: 3px 3px 0 var(--ink);
  }
}

.public-site .cafe-method:active,
.public-site .studio-types button:active {
  transform: var(--button-press-transform);
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {

  .public-site .btn,
  .public-site .cafe-method,
  .public-site .studio-types button {
    --button-hover-transform: none;
    --button-press-transform: none;
    transition: none;
  }
}
