/* ============================================================
   RL_FM — FORMULÁRIO DE CONTATO
   Todos os seletores, variáveis CSS e animações desta seção
   usam o prefixo RL_FM para reduzir conflitos com a página maior.
   ============================================================ */

#RL_FM_contact {
  --RL_FM_bg: #090b09;
  --RL_FM_surface: #10120f;
  --RL_FM_surface-2: #151812;
  --RL_FM_line: #34362f;
  --RL_FM_line-strong: #5a5031;
  --RL_FM_text: #f2f0e8;
  --RL_FM_muted: #aaa99f;
  --RL_FM_accent: #c69a2f;
  --RL_FM_accent-soft: #9f8240;
  --RL_FM_danger: #d99a8f;
  --RL_FM_success: #a8c6a2;
  --RL_FM_focus: #f0c65d;
  --RL_FM_radius: 0px;
  --RL_FM_max-width: 1180px;
  --RL_FM_gap: clamp(14px, 1.7vw, 24px);
  --RL_FM_transition: 260ms cubic-bezier(.2,.7,.2,1);
  --RL_FM_shadow: 0 22px 70px rgba(0,0,0,.38);
}

/* Variáveis da seção: NÃO poluem :root da página que recebe o formulário. */
#RL_FM_contact,
#RL_FM_contact * {
  box-sizing: border-box;
}

#RL_FM_contact {
  position: relative;
  width: 100%;
  height: 100dvh;
  min-height: 100svh;
  overflow: hidden;
  color: var(--RL_FM_text);
  background:
    radial-gradient(circle at 78% 12%, rgba(198,154,47,.07), transparent 26%),
    linear-gradient(180deg, #080a08 0%, var(--RL_FM_bg) 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

#RL_FM_contact::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(115deg, transparent 0 82%, rgba(198,154,47,.08) 82.05% 82.18%, transparent 82.22%),
    linear-gradient(180deg, rgba(255,255,255,.015), transparent 12%, transparent 88%, rgba(0,0,0,.12));
}

.RL_FM_shell {
  position: relative;
  z-index: 1;
  width: min(var(--RL_FM_max-width), calc(100% - 28px));
  height: calc(100dvh - 28px);
  min-height: calc(100svh - 28px);
  margin: 14px auto;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 16px;
}

.RL_FM_intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: end;
  animation: RL_FM_introIn 650ms cubic-bezier(.2,.8,.2,1) both;
}

.RL_FM_kicker {
  margin: 0 0 6px;
  color: var(--RL_FM_accent);
  font-size: 11px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.RL_FM_title {
  margin: 0;
  max-width: 850px;
  font-size: clamp(32px, 5vw, 70px);
  line-height: .93;
  letter-spacing: -.055em;
  font-weight: 760;
}

.RL_FM_title strong {
  color: var(--RL_FM_accent);
  font-weight: inherit;
}

.RL_FM_subtitle {
  margin: 10px 0 0;
  max-width: 760px;
  color: var(--RL_FM_muted);
  font-size: clamp(12px, 1.2vw, 15px);
  line-height: 1.55;
}

.RL_FM_card {
  min-height: 0;
  border: 1px solid var(--RL_FM_line);
  background: rgba(15,18,14,.94);
  box-shadow: var(--RL_FM_shadow);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  position: relative;
}

.RL_FM_card::after {
  content: "";
  position: absolute;
  width: 72px;
  height: 1px;
  top: 24px;
  right: -14px;
  background: var(--RL_FM_line-strong);
  transform: rotate(45deg);
  transform-origin: right center;
  pointer-events: none;
}

.RL_FM_progress-wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 15px 18px 12px;
  border-bottom: 1px solid var(--RL_FM_line);
}

.RL_FM_progress-track {
  height: 2px;
  background: #252820;
  overflow: hidden;
}

.RL_FM_progress-bar {
  display: block;
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, var(--RL_FM_accent-soft), var(--RL_FM_accent));
  transition: width var(--RL_FM_transition);
}

.RL_FM_progress-label {
  color: var(--RL_FM_muted);
  font-size: 11px;
  white-space: nowrap;
}

.RL_FM_viewport {
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.RL_FM_step {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  padding: clamp(18px, 2.5vw, 34px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  pointer-events: none;
  scrollbar-width: thin;
  scrollbar-color: #4c4938 transparent;
}

.RL_FM_step::-webkit-scrollbar { width: 8px; }
.RL_FM_step::-webkit-scrollbar-thumb { background: #4c4938; }
.RL_FM_step::-webkit-scrollbar-track { background: transparent; }

.RL_FM_step.RL_FM_active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.RL_FM_step.RL_FM_entering {
  animation: RL_FM_stepIn 420ms cubic-bezier(.2,.8,.2,1) both;
}

.RL_FM_step.RL_FM_leaving {
  animation: RL_FM_stepOut 220ms ease both;
}

.RL_FM_step-head {
  max-width: 860px;
  margin-bottom: 22px;
}

.RL_FM_section-label {
  margin: 0 0 8px;
  color: var(--RL_FM_accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.RL_FM_step-title {
  margin: 0;
  font-size: clamp(22px, 3vw, 38px);
  line-height: 1.02;
  letter-spacing: -.035em;
  font-weight: 720;
}

.RL_FM_step-copy {
  margin: 9px 0 0;
  color: var(--RL_FM_muted);
  font-size: 13px;
  line-height: 1.55;
}

.RL_FM_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--RL_FM_gap);
}

.RL_FM_field {
  min-width: 0;
}

.RL_FM_field.RL_FM_span-2 {
  grid-column: 1 / -1;
}

.RL_FM_label {
  display: block;
  margin: 0 0 7px;
  color: #e9e7df;
  font-size: 10px;
  font-weight: 780;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.RL_FM_required-mark {
  color: var(--RL_FM_accent);
}

.RL_FM_input,
.RL_FM_select,
.RL_FM_textarea {
  display: block;
  width: 100%;
  min-height: 47px;
  border: 1px solid var(--RL_FM_line);
  border-radius: var(--RL_FM_radius);
  outline: none;
  background: #171a16;
  color: var(--RL_FM_text);
  font: inherit;
  font-size: 13px;
  padding: 12px 13px;
  transition:
    border-color var(--RL_FM_transition),
    background var(--RL_FM_transition),
    box-shadow var(--RL_FM_transition),
    transform var(--RL_FM_transition);
}

.RL_FM_input::placeholder,
.RL_FM_textarea::placeholder {
  color: #777970;
}

.RL_FM_input:hover,
.RL_FM_select:hover,
.RL_FM_textarea:hover {
  border-color: #4a4c43;
}

.RL_FM_input:focus,
.RL_FM_select:focus,
.RL_FM_textarea:focus {
  border-color: var(--RL_FM_focus);
  box-shadow: 0 0 0 1px rgba(240,198,93,.18);
  background: #1a1d18;
}

.RL_FM_input[aria-invalid="true"],
.RL_FM_select[aria-invalid="true"],
.RL_FM_textarea[aria-invalid="true"] {
  border-color: var(--RL_FM_danger);
}

.RL_FM_textarea {
  min-height: 150px;
  resize: vertical;
}

.RL_FM_hint,
.RL_FM_error {
  margin: 6px 0 0;
  font-size: 10px;
  line-height: 1.45;
}

.RL_FM_hint { color: #7f8178; }
.RL_FM_error { color: var(--RL_FM_danger); min-height: 14px; }

.RL_FM_choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.RL_FM_choice {
  position: relative;
}

.RL_FM_choice-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.RL_FM_choice-label {
  position: relative;
  min-height: 58px;
  display: flex;
  align-items: center;
  padding: 14px 46px 14px 15px;
  border: 1px solid var(--RL_FM_line);
  background: #141712;
  color: #e8e6dd;
  cursor: pointer;
  font-size: 12px;
  font-weight: 650;
  transition:
    border-color var(--RL_FM_transition),
    background var(--RL_FM_transition),
    color var(--RL_FM_transition),
    text-shadow var(--RL_FM_transition),
    transform var(--RL_FM_transition);
}

/* Marca REAL no lugar do losango; sem branco, sem degradê e sem chamadas externas.
   O brilho acontece APENAS na seleção. As faixas trocam de cor com o preenchimento. */
.RL_FM_choice-logo {
  --RL_FM_logo-primary: #25282d; /* preenchimento preto do logo antes de marcar */
  --RL_FM_logo-secondary: #c69a45; /* faixas douradas antes de marcar */
  position: absolute;
  width: 38px;
  height: 38px;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  overflow: visible;
  filter: none;
  transition: filter var(--RL_FM_transition);
}
/* A base e as três faixas da marca invertem quando selecionadas.
   Os vazios entre faixas e a linha vertical são pixels TRANSPARENTES
   graças às masks do SVG, não têm fundo branco nem pintado. */
.RL_FM_logo-primary { fill: var(--RL_FM_logo-primary); transition: fill var(--RL_FM_transition); }
.RL_FM_logo-secondary { fill: none; stroke: var(--RL_FM_logo-secondary); stroke-width: 24; stroke-linecap: butt; stroke-linejoin: miter; transition: stroke var(--RL_FM_transition); }
.RL_FM_choice-input:checked + .RL_FM_choice-label .RL_FM_choice-logo {
  --RL_FM_logo-primary: #c69a45;
  --RL_FM_logo-secondary: #25282d;
}

.RL_FM_choice-label:hover {
  border-color: #535548;
  transform: translateY(-1px);
}

.RL_FM_choice-input:focus-visible + .RL_FM_choice-label {
  outline: 2px solid var(--RL_FM_focus);
  outline-offset: 2px;
}

.RL_FM_choice-input:checked + .RL_FM_choice-label {
  border-color: var(--RL_FM_accent);
  color: #f1c85e;
  background: #141712; /* selecionado: fundo sólido, sem degradê */
  text-shadow: 0 0 4px rgba(198,154,47,.26);
}

/* Resplendor do símbolo, sem alterar o fundo da etiqueta nem a borda dourada. */
.RL_FM_choice-input:checked + .RL_FM_choice-label .RL_FM_choice-logo {
  filter: drop-shadow(0 0 2px rgba(198,154,47,.25));
}


.RL_FM_consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 11px;
  align-items: start;
  padding: 14px 0 0;
  margin-top: 18px;
  border-top: 1px solid var(--RL_FM_line);
}

.RL_FM_consent-input {
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  accent-color: var(--RL_FM_accent);
}

.RL_FM_consent-label {
  color: var(--RL_FM_muted);
  font-size: 11px;
  line-height: 1.55;
}

.RL_FM_consent-label a {
  color: var(--RL_FM_accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.RL_FM_footer {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 70px;
  padding: 12px 18px;
  border-top: 1px solid var(--RL_FM_line);
  background: rgba(12,14,11,.98);
}

.RL_FM_footer-spacer { flex: 1; }

.RL_FM_button {
  appearance: none;
  border: 1px solid transparent;
  border-radius: var(--RL_FM_radius);
  min-height: 43px;
  padding: 10px 16px;
  font: inherit;
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .01em;
  cursor: pointer;
  transition:
    transform var(--RL_FM_transition),
    background var(--RL_FM_transition),
    border-color var(--RL_FM_transition),
    color var(--RL_FM_transition),
    opacity var(--RL_FM_transition);
}

.RL_FM_button:hover { transform: translateY(-1px); }
.RL_FM_button:active { transform: translateY(0); }
.RL_FM_button:focus-visible { outline: 2px solid var(--RL_FM_focus); outline-offset: 2px; }
.RL_FM_button:disabled { cursor: not-allowed; opacity: .45; transform: none; }

.RL_FM_button-secondary {
  background: transparent;
  border-color: var(--RL_FM_line);
  color: #c8c7bf;
}

.RL_FM_button-secondary:hover { border-color: #5b5e53; color: #fff; }

.RL_FM_button-ghost {
  background: transparent;
  color: #8f9188;
}

.RL_FM_button-ghost:hover { color: var(--RL_FM_accent); }

.RL_FM_button-primary {
  min-width: 170px;
  background: transparent;
  color: #c69a2f;
  border-color: #c69a2f;
}

.RL_FM_button-primary:hover {
  background: transparent;
  border-color: #c69a2f;
}

.RL_FM_button-primary.RL_FM_loading {
  position: relative;
  color: transparent;
}

.RL_FM_button-primary.RL_FM_loading::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  top: 50%;
  left: 50%;
  margin: -8px 0 0 -8px;
  border: 2px solid rgba(0,0,0,.24);
  border-top-color: #0b0d0a;
  border-radius: 50%;
  animation: RL_FM_spin 700ms linear infinite;
}

.RL_FM_status {
  min-height: 18px;
  color: var(--RL_FM_muted);
  font-size: 10px;
  line-height: 1.4;
}

.RL_FM_status[data-RL_FM_state="error"] { color: var(--RL_FM_danger); }
.RL_FM_status[data-RL_FM_state="success"] { color: var(--RL_FM_success); }

.RL_FM_summary {
  display: grid;
  gap: 10px;
  max-width: 850px;
}

.RL_FM_summary-row {
  display: grid;
  grid-template-columns: minmax(130px, .42fr) 1fr;
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid #292c25;
}

.RL_FM_summary-key {
  color: #808278;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.RL_FM_summary-value {
  color: #e7e5dc;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.RL_FM_finish {
  display: grid;
  place-items: start;
  align-content: center;
  height: 100%;
  min-height: 260px;
  max-width: 720px;
}

.RL_FM_finish-mark {
  width: 44px;
  height: 44px;
  border: 1px solid var(--RL_FM_accent);
  transform: rotate(45deg);
  margin: 0 0 28px 8px;
  position: relative;
}

.RL_FM_finish-mark::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 8px;
  border-left: 2px solid var(--RL_FM_accent);
  border-bottom: 2px solid var(--RL_FM_accent);
  left: 12px;
  top: 14px;
  transform: rotate(-90deg);
}

/* Honeypot: fora da tela, não usa display:none para continuar atraente a bots. */
.RL_FM_honeypot-wrap {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: .01 !important;
  pointer-events: none !important;
}

.RL_FM_noscript {
  padding: 14px;
  background: #231b16;
  color: #f0d0b8;
  border: 1px solid #684b39;
  font-size: 12px;
}

@keyframes RL_FM_introIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes RL_FM_stepIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes RL_FM_stepOut {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-8px); }
}

@keyframes RL_FM_spin { to { transform: rotate(360deg); } }

@media (max-width: 820px) {
  .RL_FM_shell {
    width: min(100% - 18px, var(--RL_FM_max-width));
    height: calc(100dvh - 18px);
    min-height: calc(100svh - 18px);
    margin: 9px auto;
    gap: 10px;
  }

  .RL_FM_intro {
    grid-template-columns: 1fr;
  }


  .RL_FM_title {
    font-size: clamp(30px, 10vw, 48px);
  }

  .RL_FM_card {
    box-shadow: none;
  }

  .RL_FM_step {
    padding: 18px 14px;
  }

  .RL_FM_grid,
  .RL_FM_choice-grid {
    grid-template-columns: 1fr;
  }

  .RL_FM_field.RL_FM_span-2 { grid-column: auto; }

  .RL_FM_footer {
    min-height: 64px;
    padding: 10px 12px;
    flex-wrap: wrap;
  }

  .RL_FM_footer-spacer {
    display: none;
  }

  .RL_FM_status {
    width: 100%;
    order: -1;
  }

  .RL_FM_button-primary {
    min-width: 0;
    margin-left: auto;
  }
}

@media (max-height: 720px) and (min-width: 821px) {
  .RL_FM_title { font-size: clamp(28px, 4vw, 48px); }
  .RL_FM_subtitle { margin-top: 6px; }
  .RL_FM_shell { gap: 10px; }
  .RL_FM_step { padding-top: 20px; padding-bottom: 20px; }
}


/* ============================================================
   RL_FM — VISIBILIDADE INTEGRAL POR ETAPA EM PC E TABLET
   Mantém a seção em 100dvh. Em telas largas: resumo em duas colunas;
   em altura mais curta: títulos/campos/espaços compactados.
   O texto longo que o usuário digitar ainda poderá rolar na etapa.
   ============================================================ */
@media (min-width: 600px) {
  .RL_FM_summary {
    max-width: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(14px, 2vw, 32px);
    row-gap: 3px;
  }
  .RL_FM_summary-row {
    grid-template-columns: minmax(90px, .48fr) 1fr;
    gap: 10px;
    padding: 8px 0;
    align-items: center;
  }
}

/* Tablet em retrato também mantém os campos em duas colunas, em vez de
   empilhar seis campos verticalmente dentro de um formulário de 100dvh. */
@media (min-width: 600px) and (max-width: 820px) {
  .RL_FM_grid, .RL_FM_choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .RL_FM_field.RL_FM_span-2 { grid-column: 1 / -1; }
  .RL_FM_title { font-size: clamp(30px, 5.2vw, 48px); }
  .RL_FM_intro { text-align: left; }
  .RL_FM_footer { flex-wrap: nowrap; }
  .RL_FM_footer-spacer { display: block; }
  .RL_FM_status { order: 0; width: auto; }
}

@media (min-width: 600px) and (max-height: 900px) {
  .RL_FM_shell { gap: 9px; }
  .RL_FM_intro { gap: 7px; }
  .RL_FM_title {
    font-size: clamp(29px, 3.8vw, 48px);
    line-height: .99;
  }
  .RL_FM_kicker { margin-bottom: 3px; font-size: 10px; }
  .RL_FM_subtitle { margin-top: 5px; font-size: 12px; line-height: 1.35; }
  .RL_FM_progress-wrap { padding: 10px 15px 8px; }
  .RL_FM_step { padding: 14px 18px; }
  .RL_FM_step-head { margin-bottom: 12px; }
  .RL_FM_section-label { margin-bottom: 4px; font-size: 10px; }
  .RL_FM_step-title { font-size: clamp(21px, 2.55vw, 30px); line-height: 1.08; }
  .RL_FM_step-copy { margin-top: 5px; font-size: 12px; line-height: 1.35; }
  .RL_FM_grid { gap: 10px 14px; }
  .RL_FM_label { margin-bottom: 4px; }
  .RL_FM_input, .RL_FM_select { min-height: 39px; padding: 9px 11px; }
  .RL_FM_textarea { min-height: 115px; }
  .RL_FM_hint, .RL_FM_error { margin-top: 3px; font-size: 10px; line-height: 1.25; }
  .RL_FM_error { min-height: 10px; }
  .RL_FM_choice-grid { gap: 8px; }
  .RL_FM_choice-label { min-height: 48px; padding-top: 8px; padding-bottom: 8px; }
  .RL_FM_footer { min-height: 56px; padding: 7px 14px; }
  .RL_FM_button { min-height: 39px; padding: 8px 13px; }
  .RL_FM_summary { gap: 2px 16px; }
  .RL_FM_summary-row { padding: 5px 0; }
  .RL_FM_consent { margin-top: 10px; padding-top: 10px; }
}

/* Em monitores/tablets em paisagem com pouca altura, compactar sem
   esconder campos, consentimento, mensagens de erro ou ações. */
@media (min-width: 600px) and (max-height: 660px) {
  .RL_FM_shell { margin: 6px auto; height: calc(100dvh - 12px); min-height: calc(100svh - 12px); gap: 5px; }
  .RL_FM_title { font-size: clamp(26px, 3vw, 38px); }
  .RL_FM_subtitle { margin-top: 2px; font-size: 11px; }
  .RL_FM_progress-wrap { padding: 7px 12px 6px; }
  .RL_FM_step { padding: 9px 15px; }
  .RL_FM_step-head { margin-bottom: 7px; }
  .RL_FM_step-title { font-size: 20px; }
  .RL_FM_step-copy { margin-top: 3px; font-size: 11px; }
  .RL_FM_grid { gap: 5px 12px; }
  .RL_FM_input, .RL_FM_select { min-height: 34px; padding: 6px 10px; }
  .RL_FM_choice-label { min-height: 41px; }
  .RL_FM_choice-logo { width: 30px; height: 30px; }
  .RL_FM_summary-row { padding: 2px 0; }
  .RL_FM_consent { margin-top: 6px; padding-top: 6px; }
  .RL_FM_footer { min-height: 47px; padding: 4px 12px; }
  .RL_FM_button { min-height: 34px; padding: 6px 11px; }
}

/* Celular: centralização visual da seção e dos títulos. Campos e mensagens
   continuam alinhados à esquerda para digitação/leitura confortável.
   O conteúdo da etapa pode rolar em telas menores ou teclado aberto. */
@media (max-width: 599px) {
  .RL_FM_shell { width: min(calc(100% - 20px), 460px); margin-inline: auto; }
  .RL_FM_intro { text-align: center; justify-items: center; }
  .RL_FM_intro > div { width: 100%; }
  .RL_FM_title { margin-inline: auto; font-size: clamp(29px, 8vw, 44px); }
  .RL_FM_subtitle { margin-inline: auto; }
  .RL_FM_card { width: 100%; margin-inline: auto; }
  .RL_FM_step { padding: 18px 15px; }
  .RL_FM_step-head { text-align: center; margin-inline: auto; }
  .RL_FM_grid, .RL_FM_choice-grid { grid-template-columns: minmax(0, 1fr); }
  .RL_FM_summary { grid-template-columns: minmax(0, 1fr); }
  .RL_FM_summary-row { grid-template-columns: minmax(95px, .42fr) 1fr; }
  .RL_FM_footer { justify-content: center; min-height: 64px; gap: 8px; }
  .RL_FM_status { text-align: center; margin: 0; }
  .RL_FM_status:empty { display: none; }
  .RL_FM_button-primary { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #RL_FM_contact *,
  #RL_FM_contact *::before,
  #RL_FM_contact *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}


/* Em cada etapa o botão mantém borda dourada enquanto o avanço está bloqueado.
   Quando a etapa permite continuar/enviar, fundo #c69a2f + letras brancas. */
.RL_FM_button-primary.RL_FM_send-empty,
.RL_FM_button-primary.RL_FM_send-empty:hover {
  background: transparent;
  border-color: var(--RL_FM_accent);
  color: var(--RL_FM_accent);
}
.RL_FM_button-primary.RL_FM_send-ready,
.RL_FM_button-primary.RL_FM_send-ready:hover {
  background: #c69a2f;
  border-color: #c69a2f;
  color: rgba(12,14,11,.98);
}
.RL_FM_button-primary.RL_FM_loading { color: transparent !important; }

/* Política em top-layer, desfocando TODA a página ao fundo. */
#RL_FM_contact .RL_FM_privacy-dialog {
  width: min(740px, calc(100vw - 28px));
  max-width: 740px;
  max-height: min(82dvh, 900px);
  margin: auto;
  padding: 0;
  border: 1px solid #6b592f;
  border-radius: 0;
  background: #11130f;
  color: var(--RL_FM_text);
  box-shadow: 0 30px 110px rgba(0,0,0,.75);
  overflow: hidden;
  grid-template-rows: auto minmax(0, 1fr) auto;
  font-family: inherit;
}
#RL_FM_contact .RL_FM_privacy-dialog[open] { display: grid; animation: RL_FM_privacyIn 230ms ease-out both; }
#RL_FM_contact .RL_FM_privacy-dialog::backdrop { background: rgba(4,5,4,.72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.RL_FM_privacy-top { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 22px 25px 18px; border-bottom: 1px solid var(--RL_FM_line); }
.RL_FM_privacy-title { margin: 0; font-size: clamp(23px,3vw,31px); line-height: 1.1; letter-spacing: -.03em; }
.RL_FM_privacy-description { margin: 9px 0 0; font-size: 12px; color: var(--RL_FM_muted); }
.RL_FM_privacy-close { flex: none; border: 1px solid var(--RL_FM_line-strong); background: transparent; color: var(--RL_FM_accent); font: inherit; font-size: 12px; cursor: pointer; padding: 11px 13px; }
.RL_FM_privacy-close:hover { border-color: var(--RL_FM_accent); }
.RL_FM_privacy-close:focus-visible,.RL_FM_privacy-source:focus-visible { outline: 2px solid var(--RL_FM_focus); outline-offset: 3px; }
.RL_FM_privacy-body { overflow-y: auto; padding: 20px 25px 26px; overscroll-behavior: contain; scrollbar-color: #655a38 transparent; }
.RL_FM_privacy-body p { font-size: 13px; line-height: 1.75; color: #d2d2c9; margin: 0 0 14px; overflow-wrap: anywhere; white-space: pre-wrap; }
.RL_FM_privacy-body .RL_FM_privacy-heading { margin: 20px 0 11px; color: #d9b568; font-size: 14px; font-weight: 750; }
.RL_FM_privacy-body .RL_FM_privacy-note { color: var(--RL_FM_muted); }
.RL_FM_privacy-footer { padding: 13px 25px; border-top: 1px solid var(--RL_FM_line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.RL_FM_privacy-source { color: var(--RL_FM_accent); font-size: 11px; text-underline-offset: 3px; }
@keyframes RL_FM_privacyIn { from { opacity:0; transform:translateY(10px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width: 550px) {
  #RL_FM_contact .RL_FM_privacy-dialog { width: calc(100vw - 14px); max-height: 91dvh; }
  .RL_FM_privacy-top { padding: 17px 16px 13px; }
  .RL_FM_privacy-body { padding: 16px; }
  .RL_FM_privacy-footer { padding: 11px 16px; flex-wrap: wrap; }
  .RL_FM_privacy-close { padding: 9px; }
}
@media (prefers-reduced-motion: reduce) { #RL_FM_contact .RL_FM_privacy-dialog[open] { animation:none; } }

/* A autorização no rodapé do modal pode ter várias linhas no celular. */
#RL_FM_privacy-done { max-width: 430px; white-space: normal; line-height: 1.45; text-align: center; }
@media(max-width:550px){ #RL_FM_privacy-done { width:100%; } }

/* RL_FM V4 — CTA principal maior e em maiúsculas sem alterar demais botões. */
#RL_FM_contact .RL_FM_button-primary {
  font-size: clamp(13px, 1.08vw, 15px);
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: .065em;
  text-transform: uppercase;
  min-height: 46px;
}

/* ============================================================
   RL_FM V5 — CAMPO DE CONTEXTO + CATÁLOGO DE 20 FRASES
   Em desktop/tablet: textarea fixo; lista tem scroll próprio para
   manter a etapa dentro da altura útil sem comprimir 20 opções.
   Em celular: textarea pode expandir, conteúdo rola na etapa.
   ============================================================ */
#RL_FM_contact .RL_FM_context-options {
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid var(--RL_FM_line);
  min-width: 0;
}
#RL_FM_contact .RL_FM_context-options-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}
#RL_FM_contact .RL_FM_context-options-title {
  margin: 0;
  color: #e9e7df;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .065em;
  text-transform: uppercase;
}
#RL_FM_contact .RL_FM_context-counter {
  color: var(--RL_FM_muted);
  white-space: nowrap;
  font-size: 10px;
}
#RL_FM_contact .RL_FM_context-over-limit { color: var(--RL_FM_danger); }
#RL_FM_contact .RL_FM_context-options-help {
  margin: 7px 0 11px;
  color: var(--RL_FM_muted);
  font-size: 11px;
  line-height: 1.45;
}
#RL_FM_contact .RL_FM_context-options-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 7px;
  max-height: clamp(132px, 24dvh, 228px);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #5b5030 transparent;
  padding: 1px 4px 2px 1px;
  overscroll-behavior: contain;
}
#RL_FM_contact .RL_FM_context-option {
  display: block;
  min-height: 36px;
  width: 100%;
  text-align: left;
  padding: 9px 12px;
  border: 1px solid var(--RL_FM_line);
  border-radius: 0;
  background: #141712;
  color: #d9d8cf;
  font: inherit;
  font-size: 11px;
  font-weight: 530;
  line-height: 1.42;
  cursor: pointer;
  transition: border-color var(--RL_FM_transition), color var(--RL_FM_transition), background var(--RL_FM_transition);
}
#RL_FM_contact .RL_FM_context-option:hover,
#RL_FM_contact .RL_FM_context-option:focus-visible {
  border-color: #aa8a45;
  color: #f1cc78;
}
#RL_FM_contact .RL_FM_context-option:focus-visible { outline: 2px solid var(--RL_FM_focus); outline-offset: 1px; }
#RL_FM_contact .RL_FM_context-option[aria-pressed="true"] {
  border-color: var(--RL_FM_accent);
  background: #1d1c13;
  color: #f1ca72;
}
@media (min-width: 600px) {
  #RL_FM_contact .RL_FM_textarea {
    height: 112px;
    min-height: 112px;
    max-height: 112px;
    resize: none;
  }
}
@media (min-width: 600px) and (max-height: 690px) {
  #RL_FM_contact .RL_FM_textarea { height: 86px; min-height: 86px; max-height: 86px; }
  #RL_FM_contact .RL_FM_context-options-list { max-height: clamp(98px, 17dvh, 150px); }
  #RL_FM_contact .RL_FM_context-options { margin-top: 8px; padding-top: 8px; }
  #RL_FM_contact .RL_FM_context-options-help { margin: 4px 0 7px; }
}
@media (max-width: 599px) {
  #RL_FM_contact .RL_FM_context-options-list { grid-template-columns: 1fr; max-height: 260px; }
  #RL_FM_contact .RL_FM_context-options-head { flex-wrap: wrap; }
  #RL_FM_contact .RL_FM_textarea { min-height: 135px; resize: vertical; }
}

/* ============================================================
   RL_FM V7 — PREFERÊNCIA DE CONTATO E SUGESTÕES DE CARGO
   Controles visuais angulares da REAL; radios são elementos HTML
   nativos para preservar acesso por teclado e tecnologias assistivas.
   ============================================================ */
#RL_FM_contact .RL_FM_preference-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 8px;
}
#RL_FM_contact .RL_FM_preference-choice { min-width: 0; position: relative; }
#RL_FM_contact .RL_FM_preference-input {
  position: absolute; width: 1px; height: 1px; opacity: 0;
  inset: 50% auto auto 50%; margin: 0;
}
#RL_FM_contact .RL_FM_preference-label {
  display: flex; align-items: center; justify-content: space-between;
  gap: 9px; min-height: 43px; padding: 9px 12px;
  border: 1px solid var(--RL_FM_line);
  background: #141712; color: #e2e0d7;
  font-size: 12px; font-weight: 630; cursor: pointer;
  transition: border-color var(--RL_FM_transition), color var(--RL_FM_transition), background var(--RL_FM_transition);
}
#RL_FM_contact .RL_FM_preference-diamond {
  display: block; flex: 0 0 auto; width: 9px; height: 9px;
  border: 1px solid #756d50; transform: rotate(45deg);
  background: transparent; transition: background var(--RL_FM_transition), border-color var(--RL_FM_transition);
}
#RL_FM_contact .RL_FM_preference-input:checked + .RL_FM_preference-label {
  background: #171811; color: #eac46f; border-color: var(--RL_FM_accent);
}
#RL_FM_contact .RL_FM_preference-input:checked + .RL_FM_preference-label .RL_FM_preference-diamond {
  border-color: var(--RL_FM_accent); background: var(--RL_FM_accent);
}
#RL_FM_contact .RL_FM_preference-input:focus-visible + .RL_FM_preference-label {
  outline: 2px solid var(--RL_FM_focus); outline-offset: 2px;
}
#RL_FM_contact .RL_FM_preference-input[aria-invalid="true"] + .RL_FM_preference-label {
  border-color: var(--RL_FM_danger);
}
#RL_FM_contact .RL_FM_role-wrap { position: relative; isolation: isolate; }
#RL_FM_contact .RL_FM_role-options[hidden] { display: none !important; }
#RL_FM_contact .RL_FM_role-options {
  display: grid; grid-template-columns: minmax(0,1fr);
  position: absolute; z-index: 15; top: calc(100% + 4px);
  left: 0; right: 0; max-height: min(238px, 36dvh);
  overflow-y: auto; padding: 4px;
  background: #151812; border: 1px solid #776139;
  box-shadow: 0 12px 34px rgba(0,0,0,.5);
  scrollbar-width: thin; scrollbar-color: #705b33 transparent;
}
#RL_FM_contact .RL_FM_role-option {
  width: 100%; display: block; text-align: left;
  padding: 9px 11px; min-height: 36px; border: 1px solid transparent;
  color: #e7e1d1; background: #151812;
  font: inherit; font-size: 12px; cursor: pointer;
  transition: border-color var(--RL_FM_transition), color var(--RL_FM_transition), background var(--RL_FM_transition);
}
#RL_FM_contact .RL_FM_role-option:hover,
#RL_FM_contact .RL_FM_role-option:focus-visible {
  border-color: #a78842; background: #222016; color: #f0cb79;
  outline: none;
}
#RL_FM_contact .RL_FM_role-option:last-child {
  border-top: 1px solid var(--RL_FM_line-strong);
  color: #dfb95d;
}
/* No celular: cartões grandes o suficiente para toque, sem selects do SO.
   Lista de cargo fica dentro da etapa rolável, sem sair da tela. */
@media (max-width: 599px) {
  #RL_FM_contact .RL_FM_preference-grid { grid-template-columns: minmax(0,1fr); }
  #RL_FM_contact .RL_FM_preference-label { min-height: 47px; font-size: 13px; padding: 11px 14px; }
  #RL_FM_contact .RL_FM_role-options { max-height: min(215px, 35dvh); }
  #RL_FM_contact .RL_FM_role-option { min-height: 44px; font-size: 13px; }
}

/* Quando há pouco espaço abaixo, sugestões de cargo aparecem para cima. */
#RL_FM_contact .RL_FM_role-wrap.RL_FM_role-above .RL_FM_role-options {
  top: auto;
  bottom: calc(100% + 4px);
}

/* ============================================================
   RL_FM V8 — CAMPOS / PREFERÊNCIA / CAMADA DO CARGO
   O cargo tem contexto de empilhamento maior que os campos seguintes,
   portanto o menu fica NA FRENTE da preferência, e não atrás.
   ============================================================ */
#RL_FM_contact .RL_FM_role-field { position: relative; z-index: 45; }
#RL_FM_contact .RL_FM_role-wrap { z-index: 46; }
#RL_FM_contact .RL_FM_role-options { z-index: 47; }
#RL_FM_contact .RL_FM_contact-preference { position: relative; z-index: 20; }
#RL_FM_contact .RL_FM_contact-preference.RL_FM_preference-open { z-index: 55; }
#RL_FM_contact .RL_FM_preference-wrap { position: relative; }
#RL_FM_contact .RL_FM_preference-trigger {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; width: 100%; min-height: 47px;
  padding: 11px 14px; border: 1px solid var(--RL_FM_line);
  border-radius: 0; background: #171a16; color: var(--RL_FM_muted);
  font: inherit; font-size: 13px; text-align: left; cursor: pointer;
  transition: border-color var(--RL_FM_transition), color var(--RL_FM_transition);
}
#RL_FM_contact .RL_FM_preference-trigger.RL_FM_preference-has-value {
  border-color: #8c7336; color: #e7d9b4;
}
#RL_FM_contact .RL_FM_preference-trigger:hover,
#RL_FM_contact .RL_FM_preference-trigger[aria-expanded="true"] { border-color: var(--RL_FM_accent); }
#RL_FM_contact .RL_FM_preference-trigger:focus-visible { outline: 2px solid var(--RL_FM_focus); outline-offset: 2px; }
#RL_FM_contact .RL_FM_preference-chevron {
  width: 8px; height: 8px; flex-shrink: 0;
  border-right: 1px solid var(--RL_FM_accent); border-bottom: 1px solid var(--RL_FM_accent);
  transform: rotate(45deg); margin-top: -4px;
  transition: transform var(--RL_FM_transition);
}
#RL_FM_contact .RL_FM_preference-trigger[aria-expanded="true"] .RL_FM_preference-chevron {
  transform: rotate(225deg); margin-top: 4px;
}
#RL_FM_contact .RL_FM_preference-options[hidden] { display: none !important; }
#RL_FM_contact .RL_FM_preference-options {
  position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 4px);
  padding: 7px; border: 1px solid #776139; background: #151812;
  box-shadow: 0 14px 35px rgba(0,0,0,.56);
  overflow-y: auto; max-height: min(264px, 38dvh);
  scrollbar-width: thin; scrollbar-color: #705b33 transparent;
}
#RL_FM_contact .RL_FM_preference-grid {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px;
}
#RL_FM_contact .RL_FM_preference-label {
  display: flex; position: relative; align-items: center;
  min-height: 49px; padding: 11px 48px 11px 13px;
  background: #141712; border: 1px solid var(--RL_FM_line);
  color: #e8e6dd; font-size: 12px; font-weight: 650;
}
#RL_FM_contact .RL_FM_preference-logo { width: 31px; height: 31px; right: 8px; }
#RL_FM_contact .RL_FM_preference-input:checked + .RL_FM_preference-label {
  background: #141712; border-color: var(--RL_FM_accent); color: #f1c85e;
  text-shadow: 0 0 4px rgba(198,154,47,.22);
}
#RL_FM_contact .RL_FM_preference-input:checked + .RL_FM_preference-label .RL_FM_preference-logo {
  --RL_FM_logo-primary: #c69a45;
  --RL_FM_logo-secondary: #25282d;
  filter: drop-shadow(0 0 2px rgba(198,154,47,.22));
}
#RL_FM_contact .RL_FM_phone-feedback {
  margin: 0; min-height: 0;
  font-size: 10px; line-height: 1.35;
  letter-spacing: .01em;
}
#RL_FM_contact .RL_FM_phone-feedback:empty { display: none; }
#RL_FM_contact .RL_FM_phone-feedback[data-RL_FM_state="error"] { color: var(--RL_FM_danger); }
#RL_FM_contact .RL_FM_phone-feedback[data-RL_FM_state="success"] { color: var(--RL_FM_success); }
/* Legenda na extremidade esquerda, acima da linha de Voltar / Continuar. */
#RL_FM_contact .RL_FM_footer { flex-wrap: wrap; row-gap: 5px; }
#RL_FM_contact .RL_FM_required-legend {
  flex-basis: 100%; width: 100%; margin: 0; color: var(--RL_FM_accent);
  font-size: 9px; font-weight: 750; letter-spacing: .07em;
  text-align: left; line-height: 1.2;
}
#RL_FM_contact .RL_FM_required-mark[hidden] { display: none !important; }
@media (max-width: 599px) {
  #RL_FM_contact .RL_FM_preference-grid { grid-template-columns: minmax(0,1fr); }
  #RL_FM_contact .RL_FM_preference-options { max-height: min(320px,45dvh); }
  #RL_FM_contact .RL_FM_preference-label { min-height: 46px; padding: 9px 48px 9px 13px; font-size: 13px; }
  #RL_FM_contact .RL_FM_footer { row-gap: 5px; }
}
@media (min-width: 600px) and (max-height: 690px) {
  #RL_FM_contact .RL_FM_footer { padding-top: 5px; padding-bottom: 5px; }
}

/* O menu escolhe automaticamente a direção para não ficar sob o rodapé
   no celular. Mantém o mesmo estilo quando abre por cima do gatilho. */
#RL_FM_contact .RL_FM_preference-wrap.RL_FM_preference-above .RL_FM_preference-options {
  top: auto; bottom: calc(100% + 4px);
}

/* RL_FM | O status do telefone fica imediatamente abaixo do input.
   A mensagem de erro (em separado) continua disponível para o PHP. */
#RL_FM_contact .RL_FM_field:has(> .RL_FM_phone-composite) > #RL_FM_b6r1-error:empty {
  min-height: 0; margin: 0; line-height: 0;
}
#RL_FM_contact .RL_FM_field:has(> .RL_FM_phone-composite) > .RL_FM_phone-feedback:not(:empty) {
  margin-top: 1px;
}

/* ============================================================
   RL_FM V10 — TELEFONE INTERNACIONAL
   Seletor com busca dentro do próprio formulário, sem bibliotecas/CDN.
   O botão não é enviado como dado; a API continua lendo RL_FM_b6r1.
   ============================================================ */
#RL_FM_contact .RL_FM_phone-composite {
  display: grid; grid-template-columns: minmax(102px, 132px) minmax(0, 1fr);
  gap: 7px; align-items: stretch; min-width: 0;
}
#RL_FM_contact .RL_FM_country-wrap { position: relative; min-width: 0; z-index: 65; }
#RL_FM_contact .RL_FM_country-wrap.RL_FM_country-open { z-index: 90; }
#RL_FM_contact .RL_FM_country-trigger {
  display: flex; align-items: center; justify-content: space-between; gap: 6px;
  width: 100%; height: 100%; min-height: 43px; padding: 7px 10px;
  color: #e7e0ca; background: #171a16; border: 1px solid var(--RL_FM_line);
  border-radius: 0; font: inherit; font-size: 12px; font-weight: 680;
  cursor: pointer; white-space: nowrap;
}
#RL_FM_contact .RL_FM_country-trigger:hover,
#RL_FM_contact .RL_FM_country-trigger[aria-expanded="true"] { border-color: var(--RL_FM_accent); }
#RL_FM_contact .RL_FM_country-trigger:focus-visible,
#RL_FM_contact .RL_FM_country-option:focus-visible,
#RL_FM_contact .RL_FM_country-search:focus-visible { outline: 2px solid var(--RL_FM_focus); outline-offset: 1px; }
#RL_FM_contact .RL_FM_country-selected { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
#RL_FM_contact .RL_FM_country-chevron {
  display: inline-block; flex-shrink: 0; width: 7px; height: 7px;
  border-right: 1px solid var(--RL_FM_accent); border-bottom: 1px solid var(--RL_FM_accent);
  transform: rotate(45deg); margin-top: -3px;
}
#RL_FM_contact .RL_FM_country-panel[hidden] { display: none !important; }
#RL_FM_contact .RL_FM_country-panel {
  position: absolute; top: calc(100% + 5px); left: 0;
  width: clamp(236px, 26vw, 330px); max-width: calc(100vw - 55px);
  padding: 9px; border: 1px solid #776139; background: #151812;
  box-shadow: 0 14px 38px rgba(0,0,0,.62); z-index: 95;
}
#RL_FM_contact .RL_FM_country-wrap.RL_FM_country-above .RL_FM_country-panel {
  top: auto; bottom: calc(100% + 5px);
}
#RL_FM_contact .RL_FM_country-search-label {
  display: block; margin: 0 0 5px; color: var(--RL_FM_accent);
  font-size: 9px; letter-spacing: .09em; text-transform: uppercase;
}
#RL_FM_contact .RL_FM_country-search {
  width: 100%; min-height: 39px; padding: 8px 11px;
  color: var(--RL_FM_text); background: #1c201a; border: 1px solid #5b5134;
  border-radius: 0; font: inherit; font-size: 12px;
}
#RL_FM_contact .RL_FM_country-list {
  display: grid; gap: 2px; max-height: min(235px, 32dvh); overflow-y: auto;
  padding-top: 6px; scrollbar-width: thin; scrollbar-color: #725c32 transparent;
}
#RL_FM_contact .RL_FM_country-option {
  display: flex; width: 100%; min-height: 36px; align-items: center;
  justify-content: space-between; gap: 7px; padding: 7px 8px;
  color: #e7e1d1; background: transparent; border: 1px solid transparent;
  text-align: left; font: inherit; font-size: 11px; cursor: pointer;
}
#RL_FM_contact .RL_FM_country-option:hover,
#RL_FM_contact .RL_FM_country-option[aria-current="true"] {
  color: #f2d184; border-color: #967a3c; background: #252418;
}
#RL_FM_contact .RL_FM_country-option-code { color: #d3b46c; white-space: nowrap; }
#RL_FM_contact .RL_FM_country-none { font-size: 11px; color: var(--RL_FM_muted); padding: 12px 8px; }
#RL_FM_contact .RL_FM_phone-number { width: 100%; min-width: 0; }
@media (max-width: 599px) {
  #RL_FM_contact .RL_FM_phone-composite { grid-template-columns: 106px minmax(0,1fr); gap: 5px; }
  #RL_FM_contact .RL_FM_country-trigger { padding: 8px; font-size: 12px; }
  #RL_FM_contact .RL_FM_country-panel { width: min(300px, calc(100vw - 55px)); }
  #RL_FM_contact .RL_FM_country-option { min-height: 42px; font-size: 12px; }
}

/* RL_FM V10 — correção real: um z-index no painel filho NÃO ultrapassa
   o contexto de empilhamento do próprio campo (grid item).
   Elevar o CAMPO inteiro somente quando o DDI estiver aberto. */
#RL_FM_contact .RL_FM_field.RL_FM_country-field-open { position:relative; z-index:120; isolation:isolate; }
#RL_FM_contact .RL_FM_country-wrap.RL_FM_country-open { z-index:121; }
#RL_FM_contact .RL_FM_country-panel:not([hidden]) { z-index:122; }
