/* Buttons, matched to the website .btn set (DESIGN.md): primary in brand-dark with a white label, outline on white, light on charcoal.
   Scoped to the estimator content and staff area, because the website header uses .btn too. */
:where(.page, .estimator-admin) .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
  font: inherit; font-size: 14px; line-height: 20px; font-weight: 600; cursor: pointer; touch-action: manipulation;
  padding: 12px 20px; border-radius: var(--r-control); border: 1px solid var(--line);
  transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.btn--primary { background: var(--brand-dark); color: var(--white); border-color: var(--brand-dark); }
.btn--light { background: var(--white); color: var(--charcoal); border-color: var(--white); }
:where(.page, .estimator-admin) .btn:focus-visible { outline: 2px solid var(--brand-dark); outline-offset: 2px; }
.btn--primary:focus-visible { outline-color: var(--brand); }
.btn--secondary:focus-visible { outline-color: var(--charcoal); }
.btn--light:focus-visible { outline-color: var(--white); }
.btn--secondary { background: var(--white); color: var(--charcoal); border-color: var(--line); }
.btn--link { text-decoration: none; }

/* Hover keeps full contrast: the label underlines on primary (as on the website), the border darkens on outline. */
.public .btn--primary:hover { text-decoration: underline; text-underline-offset: 4px; }
.public .btn--secondary:hover { border-color: var(--charcoal); }
.public .btn--light:hover { box-shadow: var(--shadow-2); }
:where(.page, .estimator-admin) .btn[disabled] { opacity: 0.65; cursor: progress; }
.btn--lg { padding: 14px var(--s5); font-size: 16px; line-height: 24px; min-height: 52px; }
.btn--arrow::after { content: "\2192"; margin-left: var(--s1); transition: transform var(--t-fast) var(--ease); }
.btn--arrow:hover::after { transform: translateX(3px); }
.btn--arrow:hover { text-decoration: none; }
