/*
 * CTA component -- production styles.
 *
 * Per Product Design System §9: "Unlock, Premium and Settly must each
 * use a distinct card treatment (background tone and iconography)."
 * No icon exists yet (see cta.js docstring), so differentiation here
 * uses colour/surface tone per kind (data-cta-kind attribute), matching
 * the legacy site's own patterns:
 *   - unlock: strong red gradient (legacy `.cta-final`, the homepage's
 *     final-conversion section) -- this is the ONLY CTA on the public
 *     page, so it carries the strongest visual weight.
 *   - premium: cream surface with a red accent (legacy `.settly-card`
 *     pattern) -- an upsell card, not the primary conversion moment.
 *   - settly: white surface, bordered (legacy `.roadmap-card` pattern)
 *     -- the final, calmer hand-off card.
 */

@import url("../../config/tokens/tokens.generated.css");

.sr-cta {
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-l);
  border-radius: var(--radius-large);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  font-family: var(--font-family-body);
}

.sr-cta__title {
  margin: 0;
  word-break: break-word;
  font-family: var(--font-family-display);
  font-size: var(--font-h3-size);
  line-height: var(--font-h3-line-height);
  font-weight: var(--font-h3-weight);
}

.sr-cta__supporting-text {
  margin: 0;
  word-break: break-word;
  font-size: var(--font-body-size);
}

.sr-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-m);
  margin-top: var(--space-xs);
}

.sr-cta__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px; /* approved touch-target minimum */
  padding: var(--space-s) var(--space-m);
  border-radius: var(--radius-medium);
  text-decoration: none;
  font: inherit;
  font-size: var(--font-button-size);
  font-weight: var(--font-button-weight);
  cursor: pointer;
  word-break: break-word;
  box-sizing: border-box;
  transition: opacity var(--motion-functional-duration) var(--motion-functional-easing),
    transform var(--motion-functional-duration) var(--motion-functional-easing);
}

/* Primary: solid red, per the platform-wide "one primary button per
   screen" rule (Design System §21) -- legacy .btn-red exactly. */
.sr-cta__action--primary {
  border: none;
  background: var(--color-primary);
  color: var(--color-surface);
}

.sr-cta__action--primary:hover {
  opacity: 0.87;
  transform: translateY(-1px);
}

/* Secondary (settly only): ghost/minimal treatment, per §5.18
   ("secondary ghost link"). No fill -- text + border only. */
.sr-cta__action--secondary {
  border: 1.5px solid var(--color-border);
  background: transparent;
  color: var(--color-text-primary);
  text-decoration: none;
}

.sr-cta__action--secondary:hover {
  border-color: var(--color-muted);
}

/* --- Per-kind distinct treatment (Design System §9) --------------------- */

.sr-cta--unlock {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-hover) 100%);
  border: none;
  color: var(--color-surface);
  text-align: center;
  align-items: center;
}

.sr-cta--unlock .sr-cta__title,
.sr-cta--unlock .sr-cta__supporting-text {
  color: var(--color-surface);
}

.sr-cta--unlock .sr-cta__actions {
  justify-content: center;
}

.sr-cta--unlock .sr-cta__action--primary {
  background: var(--color-surface);
  color: var(--color-primary);
}

.sr-cta--unlock .sr-cta__action--primary:hover {
  opacity: 0.92;
}

.sr-cta--premium {
  background: var(--color-background);
  border: 1px solid var(--color-border);
}

.sr-cta--settly {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}

@media (max-width: 767px) {
  .sr-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sr-cta__action {
    transition: none;
  }
  .sr-cta__action--primary:hover {
    transform: none;
  }
}
