/* BE public-site buttons. Brand tokens live on the consuming site, not here.
 * Markup: .be-button > .be-button__label + .be-button__icon > svg
 * Variants: --accent (default), --dark, --glass, --glass-inverse; size: --small.
 * Load after legacy site styles. Utility controls keep their native semantics. */
.be-button {
  --_be-fill: var(--be-action-accent, #bcebe0);
  --_be-ink: var(--be-action-ink, #172f2a);
  --_be-border: var(--be-action-accent-border, #8bcbbc);
  --_be-icon-fill: var(--be-action-dark, #203b35);
  --_be-icon-ink: var(--be-action-accent, #bcebe0);
  --_be-height: 60px;
  --_be-icon-size: 42px;
  --_be-font-size: 15px;
}
.be-button--dark {
  --_be-fill: var(--be-action-dark, #203b35);
  --_be-ink: var(--be-action-light, #fffef9);
  --_be-border: var(--be-action-dark-border, #52675f);
  --_be-icon-fill: var(--be-action-accent, #bcebe0);
  --_be-icon-ink: var(--be-action-ink, #172f2a);
}
.be-button--glass {
  --_be-fill: var(--be-action-glass, rgb(255 255 255 / 24%));
  --_be-ink: var(--be-action-ink, #172f2a);
  --_be-border: var(--be-action-glass-border, rgb(23 47 42 / 34%));
  --_be-icon-fill: var(--be-action-glass-disc, rgb(23 47 42 / 9%));
  --_be-icon-ink: var(--be-action-ink, #172f2a);
}
.be-button--glass-inverse {
  --_be-fill: rgb(255 255 255 / 8%);
  --_be-ink: var(--be-action-light, #fffef9);
  --_be-border: rgb(255 255 255 / 42%);
  --_be-icon-fill: rgb(255 255 255 / 14%);
  --_be-icon-ink: var(--be-action-light, #fffef9);
}
.be-button--small {
  --_be-height: 46px;
  --_be-icon-size: 32px;
  --_be-font-size: 12px;
}
/* Specificity deliberately beats old per-section .button declarations. */
.be-button.be-button.be-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  max-width: 100%;
  min-height: var(--_be-height);
  height: auto;
  padding: 7px 8px 7px 25px;
  border: 1px solid var(--_be-border);
  border-radius: 999px;
  background: linear-gradient(175deg, rgb(255 255 255 / 12%), transparent 55%), var(--_be-fill);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 32%), 0 3px 10px rgb(17 47 39 / 5%);
  color: var(--_be-ink);
  font-family: var(--be-action-font, 'Montserrat', 'Avenir Next', 'Segoe UI', sans-serif);
  font-size: var(--_be-font-size);
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: -.015em;
  text-align: left;
  text-transform: none;
  text-decoration: none;
  vertical-align: middle;
  backdrop-filter: blur(16px) saturate(125%);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  cursor: pointer;
  transform: none;
  transition: transform .18s ease, box-shadow .18s ease;
  -webkit-tap-highlight-color: transparent;
}
.be-button > .be-button__label { min-width: 0; overflow-wrap: anywhere; }
.be-button > .be-button__icon {
  display: grid;
  place-items: center;
  flex: 0 0 var(--_be-icon-size);
  width: var(--_be-icon-size);
  height: var(--_be-icon-size);
  border-radius: 50%;
  background: var(--_be-icon-fill);
  color: var(--_be-icon-ink);
}
.be-button__icon svg { display: block; width: 21px; height: 21px; }
.be-button--small .be-button__icon svg { width: 17px; height: 17px; }
.be-button.be-button.be-button[hidden] { display: none; }
@media (hover: hover) {
  .be-button.be-button.be-button:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) {
    transform: translateY(-2px);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 50%), 0 6px 16px rgb(17 47 39 / 12%);
  }
}
.be-button.be-button.be-button:active:not(:disabled):not([aria-disabled="true"]) { transform: translateY(0); }
.be-button.be-button.be-button:focus-visible {
  outline: 3px solid var(--be-action-focus, #08736d);
  outline-offset: 4px;
  box-shadow: 0 0 0 3px var(--be-action-light, #fffef9);
}
.be-button.be-button.be-button:is(:disabled, [aria-disabled="true"]) { opacity: .5; cursor: not-allowed; transform: none; }
.be-button.be-button.be-button[aria-busy="true"] { opacity: .8; cursor: progress; }
.be-button[aria-busy="true"] .be-button__icon svg { visibility: hidden; }
.be-button[aria-busy="true"] .be-button__icon::after {
  content: '';
  position: absolute;
  width: 17px;
  height: 17px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: be-button-spin .8s linear infinite;
}
@keyframes be-button-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .be-button.be-button.be-button { transition: none; }
  .be-button.be-button.be-button:hover { transform: none; }
  .be-button[aria-busy="true"] .be-button__icon::after { animation: none; }
}
@media (forced-colors: active) {
  .be-button.be-button.be-button { border-color: ButtonText; }
  .be-button > .be-button__icon { border: 1px solid ButtonText; }
}
