@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800&family=Roboto:ital,wght@0,400;0,500;0,700&display=swap');

/*
 * Todas as regras abaixo são ancoradas em #cpmWrapper (seletor de ID) em vez
 * de .cpm-wrapper (classe). Isso é proposital: temas e outros plugins de
 * formulário (Formidable, User Registration, etc.) costumam aplicar estilos
 * globais a input/select/button/[hidden] usando seletores de classe ou
 * elemento — que têm especificidade menor que um ID. Usar #cpmWrapper como
 * âncora garante que o visual do formulário não seja sobrescrito por CSS
 * de terceiros no mesmo site.
 */

#cpmWrapper{
  --cpm-green:#72AE96;
  --cpm-green-dark:#4f8672;
  --cpm-teal:#1C4D5B;
  --cpm-teal-dark:#123640;
  --cpm-ink:#2b2b2b;
  --cpm-muted:#6b6f75;
  --cpm-bg:#F2F2F2;
  --cpm-card:#ffffff;
  --cpm-border:#dde1e0;
  --cpm-error:#c0392b;
  --cpm-error-bg:#fdecea;
  --cpm-ok:#2e7d4f;
  --cpm-radius:0.6rem;
  font-family:"Roboto","Poppins",sans-serif;
  color:var(--cpm-ink);
  box-sizing:border-box;
  max-width:56rem;
  margin:0 auto;
  padding:1rem;
  text-align:left;
}
#cpmWrapper *, #cpmWrapper *::before, #cpmWrapper *::after{ box-sizing:border-box !important; }

/* Trava estrutural: garante que qualquer elemento marcado hidden pelo JS
   realmente desapareça. O seletor [hidden][hidden] (atributo repetido) é
   proposital: cada ocorrência soma na especificidade, então essa regra
   (ID + 2) fica mais específica que qualquer "#cpmWrapper .algumaClasse"
   (ID + 1) definida em outro lugar deste arquivo — inclusive .cpm-btn,
   que também usa display:inline-block !important. Sem isso, duas regras
   com especificidade empatada disputam por ordem no arquivo, e o botão
   "Enviar Cadastro"/"Próximo" pode aparecer mesmo estando hidden. */
#cpmWrapper [hidden][hidden]{ display:none !important; }

#cpmWrapper .cpm-card{
  background:var(--cpm-card);
  border-radius:1rem;
  box-shadow:0 8px 30px rgba(20,30,30,0.08);
  padding:2rem clamp(1rem,4vw,2.75rem) 2.5rem;
}

#cpmWrapper .cpm-headline{ display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; flex-wrap:wrap;}
#cpmWrapper .cpm-headline img{ max-height:3rem; width:auto; }
#cpmWrapper .cpm-headline h1{
  font-family:"Poppins",sans-serif !important; font-weight:600 !important; font-size:1.35rem !important;
  color:var(--cpm-teal) !important; margin:0 !important; letter-spacing:0.01em; line-height:1.3;
}
#cpmWrapper .cpm-headline p{ margin:0.15rem 0 0; font-size:0.85rem; color:var(--cpm-muted); }

/* ---------- progresso ---------- */
#cpmWrapper .cpm-progress{ display:flex; align-items:flex-start; margin-bottom:2rem; overflow-x:auto; padding-bottom:0.25rem;}
#cpmWrapper .cpm-progress-item{ flex:1 1 0; display:flex; flex-direction:column; align-items:center; position:relative; min-width:3.2rem; }
#cpmWrapper .cpm-progress-item:not(:last-child)::after{
  content:""; position:absolute; top:1rem; left:56%; right:-44%; height:2px; background:var(--cpm-border); z-index:0;
}
#cpmWrapper .cpm-progress-item.is-done:not(:last-child)::after{ background:var(--cpm-green); }
#cpmWrapper .cpm-progress-dot{
  width:2rem !important; height:2rem !important; border-radius:50% !important; background:var(--cpm-card); border:2px solid var(--cpm-border);
  display:flex !important; align-items:center; justify-content:center; font-size:0.8rem; font-weight:700; color:var(--cpm-muted);
  position:relative; z-index:1; cursor:pointer; transition:all .2s ease; flex-shrink:0; margin:0; padding:0; line-height:1;
}
#cpmWrapper .cpm-progress-item.is-current .cpm-progress-dot{ border-color:var(--cpm-teal); color:var(--cpm-teal); background:#eaf2f1; }
#cpmWrapper .cpm-progress-item.is-done .cpm-progress-dot{ border-color:var(--cpm-green); background:var(--cpm-green); color:#fff; }
#cpmWrapper .cpm-progress-item.is-future .cpm-progress-dot{ cursor:default; }
#cpmWrapper .cpm-progress-label{ font-size:0.62rem; color:var(--cpm-muted); text-align:center; margin-top:0.4rem; line-height:1.15; max-width:5.2rem; }
#cpmWrapper .cpm-progress-item.is-current .cpm-progress-label{ color:var(--cpm-teal); font-weight:600; }

/* ---------- steps ---------- */
#cpmWrapper .cpm-step{ display:none !important; animation:cpmFade .25s ease; }
#cpmWrapper .cpm-step.is-active{ display:block !important; }
@keyframes cpmFade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }

#cpmWrapper .cpm-step h2{
  font-family:"Poppins",sans-serif !important; font-size:1.05rem !important; font-weight:600 !important; color:var(--cpm-teal) !important;
  text-transform:uppercase; letter-spacing:0.04em; padding-bottom:0.6rem; margin:0 0 1.25rem !important;
  border-bottom:2px solid var(--cpm-green);
}
#cpmWrapper .cpm-step h3.cpm-subhead{
  font-size:0.85rem !important; font-weight:700 !important; color:var(--cpm-teal-dark) !important; margin:1.75rem 0 0.75rem !important; text-transform:uppercase; letter-spacing:.03em;
}
#cpmWrapper .cpm-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem 1.25rem; }
#cpmWrapper .cpm-grid.cpm-grid-1{ grid-template-columns:1fr; }
#cpmWrapper .cpm-grid.cpm-grid-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:640px){ #cpmWrapper .cpm-grid, #cpmWrapper .cpm-grid.cpm-grid-3{ grid-template-columns:1fr; } }

#cpmWrapper .cpm-field{ display:flex; flex-direction:column; gap:0.35rem; margin:0; }
#cpmWrapper .cpm-field.cpm-span-2{ grid-column:span 2; }
#cpmWrapper .cpm-field.cpm-span-3{ grid-column:span 3; }
@media (max-width:640px){ #cpmWrapper .cpm-field.cpm-span-2, #cpmWrapper .cpm-field.cpm-span-3{ grid-column:span 1; } }

#cpmWrapper .cpm-label{ font-size:0.82rem !important; font-weight:600 !important; color:var(--cpm-ink) !important; line-height:1.35; display:block; margin:0; }
#cpmWrapper .cpm-label .req{ color:var(--cpm-error); }
#cpmWrapper .cpm-hint{ font-size:0.72rem; color:var(--cpm-muted); margin-top:-0.15rem; }

#cpmWrapper input[type=text],
#cpmWrapper input[type=email],
#cpmWrapper input[type=tel],
#cpmWrapper input[type=date],
#cpmWrapper input[type=number],
#cpmWrapper select,
#cpmWrapper textarea{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 !important;
  padding:0.65rem 0.85rem !important;
  font-size:0.9rem !important;
  line-height:1.4 !important;
  font-family:inherit !important;
  color:var(--cpm-ink) !important;
  background-color:var(--cpm-bg) !important;
  border:1.5px solid var(--cpm-border) !important;
  border-radius:0.5rem !important;
  box-shadow:none !important;
  outline:none !important;
  transition:border-color .15s ease, box-shadow .15s ease;
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
}
#cpmWrapper select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%231C4D5B' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 0.85rem center !important; padding-right:2rem !important; cursor:pointer;
}
#cpmWrapper textarea{ resize:vertical; min-height:4.5rem !important; }
#cpmWrapper input:focus, #cpmWrapper select:focus, #cpmWrapper textarea:focus{
  border-color:var(--cpm-teal) !important; box-shadow:0 0 0 3px rgba(28,77,91,0.14) !important; background-color:#fff !important;
}
#cpmWrapper .cpm-field.cpm-invalid input,
#cpmWrapper .cpm-field.cpm-invalid select,
#cpmWrapper .cpm-field.cpm-invalid .cpm-file-drop{
  border-color:var(--cpm-error) !important; background-color:var(--cpm-error-bg) !important;
}
#cpmWrapper .cpm-error-msg{ font-size:0.72rem; color:var(--cpm-error); display:none; }
#cpmWrapper .cpm-field.cpm-invalid .cpm-error-msg{ display:block; }

/* ---------- checkboxes ---------- */
#cpmWrapper .cpm-check-group{ display:flex; flex-direction:column; gap:0.55rem; }
#cpmWrapper .cpm-check{ display:flex; align-items:flex-start; gap:0.6rem; font-size:0.85rem; cursor:pointer; font-weight:400; margin:0; }
#cpmWrapper input[type=checkbox]{
  appearance:auto !important; -webkit-appearance:auto !important;
  margin:0.2rem 0.6rem 0 0 !important; width:1.05rem !important; height:1.05rem !important; min-width:1.05rem !important;
  accent-color:var(--cpm-teal) !important; flex-shrink:0; cursor:pointer;
}
#cpmWrapper .cpm-check-row{ display:flex; flex-wrap:wrap; gap:0.75rem 1.5rem; padding:1rem 1.1rem; background:var(--cpm-bg); border:1px solid var(--cpm-border); border-radius:0.6rem; margin:0; }

#cpmWrapper .cpm-legal-box{
  max-height:12rem; overflow-y:auto; font-size:0.76rem !important; line-height:1.55 !important; color:var(--cpm-muted) !important;
  background:var(--cpm-bg); border:1px solid var(--cpm-border); border-radius:0.6rem; padding:1rem 1.1rem; margin:0 0 0.75rem;
}
#cpmWrapper .cpm-legal-agree{
  display:flex; align-items:flex-start; gap:0.65rem; background:#eaf2f1; border:1px solid var(--cpm-green);
  border-radius:0.6rem; padding:0.9rem 1.1rem; font-size:0.85rem !important; font-weight:600 !important; color:var(--cpm-teal-dark) !important; margin:0;
}
#cpmWrapper .cpm-legal-agree input[type=checkbox]{ margin:0.2rem 0.65rem 0 0 !important; width:1.1rem !important; height:1.1rem !important; accent-color:var(--cpm-teal) !important; flex-shrink:0; }

/* ---------- arquivos ---------- */
#cpmWrapper .cpm-file-drop{
  display:flex !important; align-items:center; gap:0.75rem; border:1.5px dashed var(--cpm-border); border-radius:0.5rem;
  padding:0.6rem 0.85rem; background:var(--cpm-bg); transition:border-color .15s ease;
}
#cpmWrapper .cpm-file-drop.is-drag{ border-color:var(--cpm-teal); background:#eaf2f1; }
#cpmWrapper .cpm-file-btn{
  display:inline-block !important; flex-shrink:0; border:none !important; border-radius:0.45rem !important; background:var(--cpm-teal) !important; color:#fff !important; font-size:0.78rem !important;
  font-weight:600 !important; padding:0.5rem 0.9rem !important; margin:0 !important; cursor:pointer; transition:background .2s ease; text-transform:none !important; letter-spacing:normal !important;
}
#cpmWrapper .cpm-file-btn:hover{ background:var(--cpm-teal-dark) !important; color:#fff !important; }
#cpmWrapper .cpm-file-name{ font-size:0.78rem; color:var(--cpm-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#cpmWrapper .cpm-file-name.has-file{ color:var(--cpm-ok); font-weight:600; }

/* ---------- adicionar bloco opcional ---------- */
#cpmWrapper .cpm-add-more{
  display:inline-flex !important; align-items:center; gap:0.4rem; margin-top:0.5rem; background:none !important; border:1.5px dashed var(--cpm-teal) !important;
  color:var(--cpm-teal) !important; font-size:0.8rem !important; font-weight:600 !important; padding:0.5rem 0.9rem !important; border-radius:0.5rem !important; cursor:pointer; text-transform:none !important;
}
#cpmWrapper .cpm-add-more:hover{ background:#eaf2f1 !important; }
#cpmWrapper .cpm-extra-block{ border-top:1px dashed var(--cpm-border); margin-top:1.25rem; padding-top:1.25rem; }
#cpmWrapper .cpm-extra-block .cpm-remove{ font-size:0.72rem; color:var(--cpm-error); background:none; border:none; cursor:pointer; text-decoration:underline; padding:0; }

/* ---------- navegação ---------- */
#cpmWrapper .cpm-nav{ display:flex; justify-content:space-between; align-items:center; margin-top:2.25rem; gap:1rem; }
#cpmWrapper .cpm-btn{
  display:inline-block !important;
  border:none !important; border-radius:0.5rem !important; padding:0.8rem 1.6rem !important; font-size:0.9rem !important; font-weight:700 !important; letter-spacing:0.02em;
  cursor:pointer; transition:background .2s ease, transform .15s ease; text-transform:none !important; margin:0 !important; line-height:1.3 !important;
}
#cpmWrapper .cpm-btn-primary{ background:var(--cpm-teal) !important; color:#fff !important; }
#cpmWrapper .cpm-btn-primary:hover{ background:var(--cpm-teal-dark) !important; color:#fff !important; }
#cpmWrapper .cpm-btn-primary:disabled{ background:var(--cpm-border) !important; cursor:not-allowed; }
#cpmWrapper .cpm-btn-ghost{ background:transparent !important; color:var(--cpm-teal) !important; border:1.5px solid var(--cpm-border) !important; }
#cpmWrapper .cpm-btn-ghost:hover{ border-color:var(--cpm-teal) !important; color:var(--cpm-teal) !important; }
#cpmWrapper .cpm-btn-ghost:disabled{ opacity:0 !important; visibility:hidden !important; }

#cpmWrapper .cpm-pix-box{ background:var(--cpm-bg); border:1px solid var(--cpm-border); border-radius:0.6rem; padding:1.25rem; display:flex; gap:1.5rem; flex-wrap:wrap; align-items:center; }
#cpmWrapper .cpm-pix-box img{ width:9rem; max-width:100%; height:auto; border-radius:0.4rem; }
#cpmWrapper .cpm-pix-code{ flex:1 1 14rem; }
#cpmWrapper .cpm-pix-code code{ display:block; font-size:0.68rem; word-break:break-all; background:#fff; border:1px solid var(--cpm-border); border-radius:0.4rem; padding:0.6rem; margin:0.5rem 0; }
#cpmWrapper .cpm-copy-btn{ display:inline-block !important; background:var(--cpm-green) !important; color:#fff !important; border:none !important; border-radius:0.4rem !important; padding:0.4rem 0.8rem !important; font-size:0.75rem !important; font-weight:700 !important; cursor:pointer; text-transform:none !important; margin:0 !important; }

#cpmWrapper .cpm-result{ margin-top:1.5rem; padding:1rem 1.25rem; border-radius:0.6rem; font-size:0.88rem; display:none; }
#cpmWrapper .cpm-result.is-ok{ display:block; background:#e9f6ee; border:1px solid var(--cpm-ok); color:var(--cpm-ok); }
#cpmWrapper .cpm-result.is-error{ display:block; background:var(--cpm-error-bg); border:1px solid var(--cpm-error); color:var(--cpm-error); }

#cpmWrapper .cpm-spinner{ display:inline-block; width:1rem; height:1rem; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:cpmSpin .7s linear infinite; margin-right:0.5rem; vertical-align:-2px; }
@keyframes cpmSpin{ to{ transform:rotate(360deg); } }

@media (max-width:480px){
  #cpmWrapper .cpm-card{ padding:1.5rem 1.1rem 2rem; border-radius:0.6rem; }
  #cpmWrapper .cpm-progress-label{ display:none; }
  #cpmWrapper .cpm-headline h1{ font-size:1.1rem !important; }
}
