/* Shared CTA components. Change appearance and interaction here for every page.
   Use .btn.btn--primary or .btn.btn--secondary on an <a> or <button>.
   .btn--inverse supports dark surfaces outside the standard .band container. */
.btn.btn--primary,
.btn.btn--secondary {
  --button-fill: var(--green, #00655B);
  --button-ink: var(--paper, #FBFAF8);
  --button-hover: var(--green-deep, #043D37);
  --button-outline: var(--line-strong, #647873);
  --button-text: var(--green-deep, #043D37);
  --button-focus: var(--green-deep, #043D37);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  box-sizing: border-box;
  min-height: 44px;
  max-width: 100%;
  padding: .875rem 1.5rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--label, "Montserrat", sans-serif);
  font-size: .8125rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  vertical-align: middle;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 180ms ease, color 180ms ease,
    border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.btn.btn--primary {
  background: var(--button-fill);
  color: var(--button-ink);
  border-color: var(--button-fill);
}
.btn.btn--secondary {
  background: transparent;
  color: var(--button-text);
  border-color: var(--button-outline);
}
.band .btn,
.btn.btn--inverse {
  --button-fill: var(--paper, #FBFAF8);
  --button-ink: var(--green-deep, #043D37);
  --button-hover: var(--mist, #E4EDEA);
  --button-outline: var(--paper, #FBFAF8);
  --button-text: var(--paper, #FBFAF8);
  --button-focus: var(--paper, #FBFAF8);
}
.band-rose .btn.btn--primary {
  --button-fill: var(--green-deep, #043D37);
  --button-hover: var(--ink, #1C2A27);
}
@media (hover: hover) {
  .btn.btn--primary:hover:not(:disabled):not([aria-disabled="true"]) {
    background: var(--button-hover);
    color: var(--button-ink);
    border-color: var(--button-hover);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px -6px rgba(4, 61, 55, .4);
  }
  .btn.btn--secondary:hover:not(:disabled):not([aria-disabled="true"]) {
    background: var(--button-fill);
    color: var(--button-ink);
    border-color: var(--button-fill);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px -6px rgba(4, 61, 55, .4);
  }
}
.btn.btn--primary:focus-visible,
.btn.btn--secondary:focus-visible {
  outline: 2px solid var(--button-focus);
  outline-offset: 4px;
}
.btn.btn--primary:active:not(:disabled):not([aria-disabled="true"]),
.btn.btn--secondary:active:not(:disabled):not([aria-disabled="true"]) {
  background: var(--button-hover);
  color: var(--button-ink);
  border-color: var(--button-hover);
  transform: translateY(1px) scale(.97);
  box-shadow: inset 0 2px 4px rgba(4, 61, 55, .18);
  transition-duration: 70ms;
}
.btn.btn--primary:disabled,
.btn.btn--secondary:disabled,
.btn.btn--primary[aria-disabled="true"],
.btn.btn--secondary[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
}
/* aria-disabled communicates state only; the owner must also prevent activation. */
@media (prefers-reduced-motion: reduce) {
  .btn.btn--primary, .btn.btn--secondary { transition: none; }
  .btn.btn--primary:hover:not(:disabled):not([aria-disabled="true"]),
  .btn.btn--secondary:hover:not(:disabled):not([aria-disabled="true"]),
  .btn.btn--primary:active:not(:disabled):not([aria-disabled="true"]),
  .btn.btn--secondary:active:not(:disabled):not([aria-disabled="true"]) {
    transform: none;
    transition: none;
  }
}
