/**
 * Primary filled CTAs — soft gradient, inset highlight, colored shadow.
 * Import from shared/page CSS (tokens must be available). Local rules should
 * only set layout (padding, font), not flat accent fills.
 */

.cr-btn-primary,
.site-header-cta,
.hero-form-combo button,
.scan-form-combo button,
.features-cta,
.landing-teaser-btn,
.ressources-cta-btn,
#pdf-btn,
.share-page-toolbar a.pdf-link,
.app-upgrade-dialog-cta,
button.primary,
button.mfa-primary-btn,
button:not([class]),
a.auth-btn-primary,
.limit-actions button:not(.secondary),
.pricing-page a.bg-accent,
.pricing-cta-panel a.bg-accent {
  border: 1px solid var(--btn-primary-border);
  border-radius: var(--btn-primary-radius);
  background-color: var(--accent);
  background-image: var(--btn-primary-bg);
  color: var(--btn-primary-fg);
  box-shadow: var(--btn-primary-shadow);
  letter-spacing: -0.01em;
  transition: var(--btn-primary-transition);
}

.cr-btn-primary:hover,
.site-header-cta:hover,
.hero-form-combo button:hover:not(:disabled),
.scan-form-combo button:hover:not(:disabled),
.features-cta:hover,
.landing-teaser-btn:hover,
.ressources-cta-btn:hover,
#pdf-btn:hover:not(:disabled),
.share-page-toolbar a.pdf-link:hover,
.app-upgrade-dialog-cta:hover,
button.primary:hover:not(:disabled),
button.mfa-primary-btn:hover:not(:disabled),
button:not([class]):hover:not(:disabled),
a.auth-btn-primary:hover,
.limit-actions button:not(.secondary):hover:not(:disabled),
.pricing-page a.bg-accent:hover,
.pricing-cta-panel a.bg-accent:hover {
  background-color: var(--accent-hover);
  background-image: var(--btn-primary-bg-hover);
  border-color: color-mix(in srgb, var(--accent-deep) 55%, transparent);
  box-shadow: var(--btn-primary-shadow-hover);
  transform: translateY(-1px);
  filter: none;
  text-decoration: none;
  color: var(--btn-primary-fg);
}

.cr-btn-primary:active,
.site-header-cta:active,
.hero-form-combo button:active:not(:disabled),
.scan-form-combo button:active:not(:disabled),
.features-cta:active,
.landing-teaser-btn:active,
.ressources-cta-btn:active,
#pdf-btn:active:not(:disabled),
.share-page-toolbar a.pdf-link:active,
.app-upgrade-dialog-cta:active,
button.primary:active:not(:disabled),
button.mfa-primary-btn:active:not(:disabled),
button:not([class]):active:not(:disabled),
a.auth-btn-primary:active,
.limit-actions button:not(.secondary):active:not(:disabled),
.pricing-page a.bg-accent:active,
.pricing-cta-panel a.bg-accent:active {
  transform: translateY(0);
  box-shadow: var(--btn-primary-shadow-active);
  filter: brightness(0.97);
}

.cr-btn-primary:focus-visible,
.site-header-cta:focus-visible,
.hero-form-combo button:focus-visible,
.scan-form-combo button:focus-visible,
.features-cta:focus-visible,
.landing-teaser-btn:focus-visible,
.ressources-cta-btn:focus-visible,
#pdf-btn:focus-visible,
.share-page-toolbar a.pdf-link:focus-visible,
.app-upgrade-dialog-cta:focus-visible,
button.primary:focus-visible,
button.mfa-primary-btn:focus-visible,
button:not([class]):focus-visible,
a.auth-btn-primary:focus-visible,
.limit-actions button:not(.secondary):focus-visible,
.pricing-page a.bg-accent:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  outline-offset: 2px;
}

/* Classed non-primary buttons must not keep the gradient/shadow. */
button.secondary,
button.danger {
  background-image: none;
  box-shadow: none;
  transform: none;
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  .cr-btn-primary,
  .site-header-cta,
  .hero-form-combo button,
  .scan-form-combo button,
  .features-cta,
  .landing-teaser-btn,
  .ressources-cta-btn,
  #pdf-btn,
  .share-page-toolbar a.pdf-link,
  .app-upgrade-dialog-cta,
  button.primary,
  button.mfa-primary-btn,
  button:not([class]),
  a.auth-btn-primary,
  .limit-actions button:not(.secondary),
  .pricing-page a.bg-accent,
  .pricing-cta-panel a.bg-accent {
    transition: none;
  }

  .cr-btn-primary:hover,
  .site-header-cta:hover,
  .hero-form-combo button:hover:not(:disabled),
  .scan-form-combo button:hover:not(:disabled),
  .features-cta:hover,
  .landing-teaser-btn:hover,
  .ressources-cta-btn:hover,
  #pdf-btn:hover:not(:disabled),
  .share-page-toolbar a.pdf-link:hover,
  .app-upgrade-dialog-cta:hover,
  button.primary:hover:not(:disabled),
  button.mfa-primary-btn:hover:not(:disabled),
  button:not([class]):hover:not(:disabled),
  a.auth-btn-primary:hover,
  .limit-actions button:not(.secondary):hover:not(:disabled),
  .pricing-page a.bg-accent:hover,
  .pricing-cta-panel a.bg-accent:hover,
  .cr-btn-primary:active,
  .site-header-cta:active,
  .hero-form-combo button:active:not(:disabled),
  .scan-form-combo button:active:not(:disabled),
  .features-cta:active,
  .landing-teaser-btn:active,
  .ressources-cta-btn:active,
  #pdf-btn:active:not(:disabled),
  .share-page-toolbar a.pdf-link:active,
  .app-upgrade-dialog-cta:active,
  button.primary:active:not(:disabled),
  button.mfa-primary-btn:active:not(:disabled),
  button:not([class]):active:not(:disabled),
  a.auth-btn-primary:active,
  .limit-actions button:not(.secondary):active:not(:disabled),
  .pricing-page a.bg-accent:active,
  .pricing-cta-panel a.bg-accent:active {
    transform: none;
  }
}
