/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');

/* ── Tokens Raptor ── */
.rpt-personal-wrap {
  --rpt-gold:        #c9973a;
  --rpt-gold-light:  #e8be6d;
  --rpt-gold-dark:   #8a6120;
  --rpt-black:       #080808;
  --rpt-dark:        #111111;
  --rpt-card:        #161616;
  --rpt-border:      #2c2c2c;
  --rpt-surface:     #1c1c1c;
  --rpt-text:        #f0f0f0;
  --rpt-muted:       #777;
  --rpt-red:         #d32f2f;

  --rpt-font-display: 'Bebas Neue', sans-serif;
  --rpt-font-ui:      'Oswald', sans-serif;
  --rpt-font-body:    'Inter', sans-serif;

  font-family: var(--rpt-font-body);
  margin: 22px 0 28px;
  position: relative;
}

/* ── Reset escopo ── */
.rpt-personal-wrap *,
.rpt-personal-wrap *::before,
.rpt-personal-wrap *::after { box-sizing: border-box; }

/* ── Card principal ── */
.rpt-card {
  background: var(--rpt-card);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--rpt-border);
  position: relative;
  animation: rpt-in .4s cubic-bezier(.16,1,.3,1) both;
}
@keyframes rpt-in {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── Faixa dourada topo ── */
.rpt-card::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--rpt-gold-dark) 15%,
    var(--rpt-gold-light) 50%,
    var(--rpt-gold-dark) 85%,
    transparent 100%
  );
}

/* ── Header ── */
.rpt-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px 14px;
  background: linear-gradient(135deg, #1a1a1a 0%, #0e0e0e 100%);
  border-bottom: 1px solid #222;
  position: relative;
  overflow: hidden;
}
/* Losango decorativo de fundo */
.rpt-header::after {
  content: '◆';
  position: absolute;
  right: -10px; top: -14px;
  font-size: 80px;
  color: rgba(201,151,58,.06);
  pointer-events: none;
  line-height: 1;
}

.rpt-header-left { flex: 1; min-width: 0; }

.rpt-eyebrow {
  font-family: var(--rpt-font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--rpt-gold);
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.rpt-eyebrow::before {
  content: '';
  display: inline-block;
  width: 20px; height: 1px;
  background: var(--rpt-gold);
  opacity: .7;
}

.rpt-title {
  font-family: var(--rpt-font-display);
  font-size: 26px;
  letter-spacing: .04em;
  color: var(--rpt-text);
  margin: 0;
  line-height: .95;
}

/* ── Badge de preço ── */
.rpt-badge {
  flex-shrink: 0;
  text-align: center;
  padding: 8px 14px;
  border-radius: 8px;
  position: relative;
}
.rpt-badge.free {
  background: linear-gradient(135deg, rgba(201,151,58,.18) 0%, rgba(201,151,58,.08) 100%);
  border: 1px solid rgba(201,151,58,.35);
}
.rpt-badge.paid {
  background: linear-gradient(135deg, rgba(211,47,47,.2) 0%, rgba(211,47,47,.08) 100%);
  border: 1px solid rgba(211,47,47,.35);
}
.rpt-badge-label {
  font-family: var(--rpt-font-ui);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 2px;
}
.rpt-badge.free .rpt-badge-label { color: var(--rpt-gold); }
.rpt-badge.paid .rpt-badge-label { color: #ef9a9a; }
.rpt-badge-value {
  font-family: var(--rpt-font-display);
  font-size: 20px;
  letter-spacing: .04em;
  display: block;
  line-height: 1;
}
.rpt-badge.free .rpt-badge-value { color: var(--rpt-gold-light); }
.rpt-badge.paid .rpt-badge-value { color: #ff6b6b; }

/* ── Body ── */
.rpt-body { padding: 20px; }

/* ── Subtítulo dos campos ── */
.rpt-section-label {
  font-family: var(--rpt-font-ui);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--rpt-muted);
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rpt-section-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--rpt-border);
}

/* ── Grid de inputs ── */
.rpt-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 480px) {
  .rpt-fields { grid-template-columns: 1fr; }
}

/* ── Grupo de campo ── */
.rpt-field { position: relative; }

.rpt-field-label {
  font-family: var(--rpt-font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--rpt-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
}
.rpt-field-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
}
.rpt-field-dot.left  { background: var(--rpt-gold); box-shadow: 0 0 5px rgba(201,151,58,.6); }
.rpt-field-dot.right { background: var(--rpt-gold-light); box-shadow: 0 0 5px rgba(232,190,109,.4); }

/* ── Input ── */
.rpt-input {
  width: 100%;
  padding: 13px 46px 13px 14px;
  background: var(--rpt-surface);
  border: 1.5px solid #2a2a2a;
  border-radius: 9px;
  color: var(--rpt-text);
  font-family: var(--rpt-font-display);
  font-size: 20px;
  letter-spacing: .1em;
  text-transform: uppercase;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
  -webkit-appearance: none;
}
.rpt-input::placeholder {
  color: #333;
  font-size: 16px;
  letter-spacing: .04em;
}
.rpt-input:focus {
  border-color: var(--rpt-gold);
  background: #1f1f1f;
  box-shadow: 0 0 0 3px rgba(201,151,58,.12), inset 0 1px 0 rgba(201,151,58,.06);
}

/* ── Contador ── */
.rpt-counter {
  position: absolute;
  right: 12px; bottom: 14px;
  font-family: var(--rpt-font-ui);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  color: #3a3a3a;
  pointer-events: none;
  transition: color .2s;
}
.rpt-counter.warn  { color: var(--rpt-gold-dark); }
.rpt-counter.limit { color: var(--rpt-red); }

/* ── Separador ── */
.rpt-sep {
  height: 1px;
  margin: 18px 0;
  background: linear-gradient(90deg,
    transparent,
    rgba(201,151,58,.2) 20%,
    rgba(201,151,58,.2) 80%,
    transparent
  );
}

/* ── Linha de política ── */
.rpt-policy-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

/* Checkbox custom */
.rpt-chk-wrap {
  position: relative;
  flex-shrink: 0;
  width: 20px; height: 20px;
  margin-top: 1px;
}
.rpt-chk-wrap input[type="checkbox"] {
  position: absolute; inset: 0;
  opacity: 0; cursor: pointer;
  width: 100%; height: 100%; margin: 0;
}
.rpt-chk-box {
  width: 20px; height: 20px;
  border-radius: 5px;
  border: 1.5px solid #333;
  background: var(--rpt-surface);
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
  pointer-events: none;
}
.rpt-chk-wrap input:checked ~ .rpt-chk-box {
  background: linear-gradient(135deg, var(--rpt-gold) 0%, var(--rpt-gold-dark) 100%);
  border-color: var(--rpt-gold);
  box-shadow: 0 0 10px rgba(201,151,58,.35);
}
.rpt-chk-box svg {
  width: 11px; height: 11px;
  opacity: 0;
  transform: scale(.5) rotate(-10deg);
  transition: all .22s cubic-bezier(.34,1.56,.64,1);
}
.rpt-chk-wrap input:checked ~ .rpt-chk-box svg {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.rpt-policy-text {
  font-size: 12.5px;
  color: #666;
  line-height: 1.55;
  font-family: var(--rpt-font-body);
}
.rpt-policy-text a {
  color: var(--rpt-gold);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(201,151,58,.3);
  transition: color .2s, border-color .2s;
}
.rpt-policy-text a:hover {
  color: var(--rpt-gold-light);
  border-color: rgba(232,190,109,.5);
}
.rpt-policy-note {
  display: block;
  font-size: 11px;
  color: #444;
  margin-top: 3px;
}

/* ── Estado obrigatório ── */
.rpt-policy-row.rpt-required .rpt-chk-box {
  border-color: var(--rpt-red);
  animation: rpt-pulse 1.3s ease infinite;
}
@keyframes rpt-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(211,47,47,0); }
  50%      { box-shadow: 0 0 0 5px rgba(211,47,47,.2); }
}