/**
 * Signé Terre — CTA system v1.1.10.
 * Standalone CSS loaded AFTER compiled Vite assets. This permits a safe,
 * no-npm patch on the already compiled v1.1.9 theme.
 *
 * Primary: lead generation. Secondary: compact discovery links.
 * The visual treatment is intentional on both <a> and <button>.
 */
.btn.st-cta,
.st-cta.st-cta--secondary {
  --st-cta-bg: #183a31;
  --st-cta-border: #183a31;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: auto;
  max-width: 100%;
  color: #fff;
  background: var(--st-cta-bg);
  border: 1px solid var(--st-cta-border);
  border-radius: 2px;
  box-shadow: none;
  font-family: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.045em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: normal;
  overflow-wrap: anywhere;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease, transform 220ms ease;
}

.btn.st-cta--primary {
  min-height: 3.15rem;
  padding: 0.85rem 1.5rem;
}

.btn.st-cta--secondary,
.st-cta.st-cta--secondary {
  min-height: 2.45rem;
  padding: 0.58rem 1rem;
  font-size: 0.75rem;
}

/* Use a consistent arrow even for older templates with inline arrow spans. */
.st-cta > span[aria-hidden="true"] {
  display: none !important;
}

.st-cta::after {
  content: "\2192";
  flex: 0 0 auto;
  margin-left: 0.1rem;
  font-size: 1.25em;
  font-weight: 500;
  line-height: 1;
  transition: transform 220ms ease;
}

.btn.st-cta:hover,
.btn.st-cta:focus-visible,
.st-cta.st-cta--secondary:hover,
.st-cta.st-cta--secondary:focus-visible,
.st-service-child-nav__card-link:is(:hover, :focus-visible) .st-service-child-nav__more.st-cta {
  color: #fff;
  /* Darker argile variant: white text meets WCAG AA for small typography. */
  background-color: #b54320;
  border-color: #b54320;
  text-decoration: none;
}

.st-cta:is(:hover, :focus-visible)::after,
.st-service-child-nav__card-link:is(:hover, :focus-visible) .st-cta::after {
  transform: translateX(0.2rem);
}

.st-cta:focus-visible,
.st-service-child-nav__card-link:focus-visible {
  outline: 2px solid #ec663c;
  outline-offset: 3px;
}

/* Green buttons remain discernible on image/dark-green backgrounds. */
:is(.bg-primary, .st-home-hero, .st-page-hero, .st-home-featured-project, .st-site-footer__cta) .st-cta {
  border-color: rgba(255, 255, 255, 0.9);
}
:is(.bg-primary, .st-home-hero, .st-page-hero, .st-home-featured-project, .st-site-footer__cta) .st-cta:is(:hover, :focus-visible) {
  border-color: #fff;
}

/* WPForms keeps its existing native submit button, but its size matches the
 * primary variant. This does not touch the plugin's loading/disabled behavior. */
.wpforms-container .wpforms-submit-container .wpforms-submit {
  border-radius: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
  .st-cta, .st-cta::after {
    transition: none;
  }
}
