/* Página pública do Programa de Afiliados — complementa landing.css com o mesmo vocabulário. */
.aff-hero { padding: 148px 0 72px; }
.aff-hero-inner { max-width: 820px; }
.aff-hero h1 { max-width: 800px; margin-top: var(--space-5); font-size: clamp(38px, 5vw, 62px); font-weight: 800; letter-spacing: -.05em; line-height: 1.02; text-wrap: balance; }
.aff-hero h1 span { color: var(--brand-text); }
.aff-hero .section-label svg { width: 15px; height: 15px; }

.aff-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.aff-steps .capability-card { min-height: 0; }
.aff-steps .capability-card p { margin-top: var(--space-3); color: var(--text-secondary); font-size: 14px; line-height: 1.6; }
.aff-steps b { color: var(--text-primary); }

.aff-extras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-8); }
.aff-extras > div { display: flex; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--border-default); border-radius: var(--radius-lg); background: var(--bg-card); }
.aff-extras svg { flex: none; color: var(--brand-text); }
.aff-extras strong { display: block; font-size: 14px; }
.aff-extras p { margin-top: 4px; color: var(--text-secondary); font-size: 13px; line-height: 1.55; }

.aff-form-section { padding-top: 0; }
.aff-form-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.aff-form-intro h2 { margin-top: var(--space-4); font-size: clamp(30px, 3.6vw, 44px); font-weight: 800; letter-spacing: -.04em; line-height: 1.08; }
.aff-form-intro p { margin-top: var(--space-4); color: var(--text-secondary); font-size: 16px; line-height: 1.65; }
.aff-form-intro .aff-muted { font-size: 14px; color: var(--text-tertiary); }

.aff-card { padding: clamp(20px, 3vw, 32px); border: 1px solid var(--border-default); border-radius: var(--radius-xl); background: var(--bg-card); box-shadow: var(--shadow-sm); }
.aff-card form { display: grid; gap: var(--space-4); }
.aff-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.aff-span { grid-column: 1 / -1; }
.aff-page .field select,
.aff-page .field textarea { width: 100%; min-height: 44px; padding: 9px var(--space-3); border: 1px solid var(--control-border); border-radius: var(--radius-md); outline: none; background: var(--control-bg); color: var(--text-primary); font: inherit; font-size: 14px; }
.aff-page .field textarea { resize: vertical; line-height: 1.5; }
.aff-page .field select:focus,
.aff-page .field textarea:focus { border-color: var(--control-border-focus); box-shadow: var(--focus-ring); }
.aff-page .field input[aria-invalid="true"],
.aff-page .field select[aria-invalid="true"],
.aff-page .field textarea[aria-invalid="true"] { border-color: var(--color-error-border); }

.aff-terms { display: flex; align-items: flex-start; gap: var(--space-3); color: var(--text-secondary); font-size: 13px; line-height: 1.5; cursor: pointer; }
.aff-terms input { width: 18px; height: 18px; margin-top: 1px; flex: none; accent-color: var(--brand-500); }
.aff-terms a { color: var(--brand-text); text-decoration: underline; text-underline-offset: 2px; }
.aff-terms-text { font-size: 13px; color: var(--text-secondary); }
.aff-terms-text summary { cursor: pointer; color: var(--brand-text); font-weight: 600; }
.aff-terms-text div { max-height: 220px; margin-top: var(--space-2); padding: var(--space-3); overflow: auto; border: 1px solid var(--border-default); border-radius: var(--radius-md); white-space: pre-wrap; line-height: 1.55; }
.aff-submit { width: 100%; }
.aff-submit[disabled] { opacity: .6; cursor: progress; }

.aff-success, .aff-closed { display: grid; justify-items: center; gap: var(--space-3); padding: var(--space-8) var(--space-4); text-align: center; }
.aff-success[hidden], .aff-closed[hidden] { display: none; }
.aff-success h3 { font-size: 22px; letter-spacing: -.02em; }
.aff-success p, .aff-closed p { max-width: 420px; color: var(--text-secondary); line-height: 1.6; }
.aff-success-icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: var(--color-success-bg); color: var(--color-success-text); }
.aff-closed svg { width: 32px; height: 32px; color: var(--text-tertiary); }
.aff-footer a { color: var(--text-secondary); }
.aff-footer a:hover { color: var(--brand-text); }

@media (max-width: 1024px) {
  .aff-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aff-extras { grid-template-columns: 1fr; }
  .aff-form-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .aff-hero { padding: 120px 0 48px; }
  .aff-steps { grid-template-columns: 1fr; }
  .aff-grid { grid-template-columns: 1fr; }
  .aff-page .header-login { display: none; }
  .aff-footer { flex-direction: column; }
}
