/* CFB Form — v2.1 — Theme-Conflict-Safe */
:root{
  --cfb-primary:#6C63FF;
  --cfb-h1:#6C63FF; --cfb-h2:#4F46E5;
  --cfb-btn:#6C63FF; --cfb-text:#1f2937;
  --cfb-next-btn:#6C63FF; --cfb-prev-btn:#6b7280;
  --cfb-next-txt:#fff;    --cfb-prev-txt:#fff;
  --cfb-step-text:#6b7280;
}

/* ── FIX 1: box-sizing reset scoped to form — prevents theme interference ── */
.cfb-fw *,
.cfb-fw *::before,
.cfb-fw *::after {
  box-sizing: border-box !important;
}

.cfb-fw{
  max-width:780px; margin:0 auto;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif !important;
  color:var(--cfb-text);
}

/* ── Messages ── */
.cfb-msg{padding:13px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;font-weight:500;display:none;}
.cfb-msg-error{background:#fef2f2;border-left:4px solid #ef4444;color:#991b1b;}
.cfb-msg-success{background:#f0fdf4;border-left:4px solid #22c55e;color:#15803d;}
.cfb-msg-info{background:#eff6ff;border-left:4px solid #3b82f6;color:#1d4ed8;}
.cfb-closed{text-align:center;padding:30px;color:#6b7280;font-size:15px;}

/* ── FIX 2: Steps bar — display:flex with !important so theme can't override ── */
.cfb-steps-bar{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  flex-wrap:nowrap !important;
  margin-bottom:32px !important;
  padding:16px 12px !important;
  background:#f9fafb !important;
  border-radius:12px !important;
  border:1px solid #f3f4f6 !important;
  list-style:none !important;
  width:100% !important;
}
.cfb-step-indicator{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:6px !important;
  position:relative !important;
  z-index:1 !important;
  min-width:60px !important;
  float:none !important;
}
.cfb-si-circle{
  width:34px !important; height:34px !important; border-radius:50% !important;
  background:#e5e7eb !important; color:#9ca3af !important;
  font-size:13px !important; font-weight:700 !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  border:2px solid #e5e7eb !important;
  transition:all .3s ease !important;
  flex-shrink:0 !important;
  line-height:1 !important;
  text-decoration:none !important;
  margin:0 !important; padding:0 !important;
}
.cfb-si-label{
  font-size:11px !important; font-weight:600 !important;
  color:var(--cfb-step-text) !important;
  white-space:nowrap !important; text-align:center !important;
  transition:color .3s !important;
  max-width:72px !important; line-height:1.3 !important;
  display:block !important;
  margin:0 !important; padding:0 !important;
  background:none !important; border:none !important;
}
/* Active step */
.cfb-si-active .cfb-si-circle{
  background:var(--cfb-primary) !important; color:#fff !important;
  border-color:var(--cfb-primary) !important;
  box-shadow:0 0 0 3px rgba(108,99,255,0.2) !important; /* fallback for color-mix */
}
.cfb-si-active .cfb-si-label{ color:var(--cfb-primary) !important; font-weight:700 !important; }
/* Done step */
.cfb-si-done .cfb-si-circle{
  background:var(--cfb-primary) !important; color:#fff !important;
  border-color:var(--cfb-primary) !important;
}
.cfb-si-done .cfb-si-label{ color:var(--cfb-primary) !important; }

/* Connector line */
.cfb-step-connector{
  flex:1 !important; height:2px !important; background:#e5e7eb !important;
  margin:16px 4px 0 !important; transition:background .3s !important;
  min-width:20px !important; display:block !important;
  border:none !important; padding:0 !important;
  border-radius:0 !important; font-size:0 !important;
}
.cfb-conn-done{ background:var(--cfb-primary) !important; }

/* ── Form Panels ── */
.cfb-fw .cfb-form-panel{ display:none !important; }
.cfb-fw .cfb-panel-active{ display:block !important; }

/* ── FIX 3: Fields Grid — display:grid with !important ── */
.cfb-fields-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:20px 24px !important;
  margin-bottom:28px !important;
  float:none !important;
  width:100% !important;
}
.cfb-fw-field{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  float:none !important;
  width:auto !important;
}
.cfb-fw-field.cfb-required .cfb-flabel::after{content:' *';color:#ef4444;}
.cfb-flabel{
  font-size:14px !important;
  font-weight:600 !important;
  color:var(--cfb-text) !important;
  display:block !important;
  margin:0 !important; padding:0 !important;
  background:none !important;
  border:none !important;
  float:none !important;
}
.cfb-ast{color:#ef4444;margin-left:3px;}

/* ── FIX 4: Input styles — reset theme overrides ── */
.cfb-fw input.cfb-finput,
.cfb-fw select.cfb-finput,
.cfb-fw textarea.cfb-finput,
.cfb-finput{
  width:100% !important;
  padding:11px 14px !important;
  border:1.5px solid #d1d5db !important;
  border-radius:8px !important;
  font-size:14px !important;
  color:var(--cfb-text) !important;
  background:#fff !important;
  transition:border-color .2s,box-shadow .2s !important;
  box-sizing:border-box !important;
  outline:none !important;
  font-family:inherit !important;
  line-height:normal !important;
  height:auto !important;
  max-width:100% !important;
  display:block !important;
  margin:0 !important;
  box-shadow:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}
.cfb-fw input.cfb-finput:focus,
.cfb-fw select.cfb-finput:focus,
.cfb-fw textarea.cfb-finput:focus,
.cfb-finput:focus{
  border-color:var(--cfb-primary) !important;
  box-shadow:0 0 0 3px rgba(108,99,255,0.14) !important; /* rgba fallback instead of color-mix */
}
.cfb-finput::placeholder{color:#b0b7c3 !important;}
.cfb-field-error{border-color:#ef4444 !important;}
textarea.cfb-finput{resize:vertical !important; min-height:90px !important;}

/* Select arrow */
.cfb-fw select.cfb-finput{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 14px center !important;
  padding-right:36px !important;
  cursor:pointer !important;
}

.cfb-opts{display:flex !important;flex-direction:column !important;gap:8px !important;}
.cfb-opt-label{display:flex !important;align-items:center !important;gap:8px !important;font-size:14px !important;cursor:pointer !important; font-weight:400 !important;}
.cfb-opt-label input{accent-color:var(--cfb-primary);width:16px !important;height:16px !important; margin:0 !important;}
.cfb-file-inp{padding:9px !important;cursor:pointer !important;background:#fafafa !important;}

/* ── FIX 5: Nav Buttons — prevent theme from making them display:block or full-width ── */
.cfb-nav-row{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:12px !important;
  padding-top:8px !important;
  margin-top:4px !important;
  border-top:1px solid #f3f4f6 !important;
  float:none !important;
  width:100% !important;
}
.cfb-fw .cfb-nav-next,
.cfb-nav-next{
  padding:12px 28px !important;
  background:var(--cfb-next-btn) !important; color:var(--cfb-next-txt) !important;
  border:none !important; border-radius:8px !important;
  font-size:14px !important; font-weight:700 !important; cursor:pointer !important;
  transition:opacity .2s !important;
  display:inline-block !important;
  width:auto !important;
  line-height:normal !important;
  text-decoration:none !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  box-shadow:none !important;
  outline:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}
.cfb-fw .cfb-nav-prev,
.cfb-nav-prev{
  padding:11px 22px !important;
  background:var(--cfb-prev-btn) !important; color:var(--cfb-prev-txt) !important;
  border:none !important; border-radius:8px !important;
  font-size:14px !important; font-weight:600 !important; cursor:pointer !important;
  transition:opacity .2s !important; opacity:.85 !important;
  display:inline-block !important;
  width:auto !important;
  line-height:normal !important;
  text-decoration:none !important;
  text-transform:none !important;
  box-shadow:none !important;
  outline:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}
.cfb-nav-next:hover,.cfb-nav-prev:hover{opacity:.88 !important;}
.cfb-fw .cfb-nav-submit,
.cfb-nav-submit{
  padding:13px 32px !important;
  background:var(--cfb-btn) !important; color:#fff !important;
  border:none !important; border-radius:8px !important;
  font-size:15px !important; font-weight:700 !important; cursor:pointer !important;
  transition:opacity .2s !important; letter-spacing:.3px !important;
  display:inline-block !important;
  width:auto !important;
  line-height:normal !important;
  text-decoration:none !important;
  text-transform:none !important;
  box-shadow:none !important;
  outline:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}
.cfb-nav-submit:hover{opacity:.9 !important;}
.cfb-nav-submit:disabled{opacity:.6 !important;cursor:not-allowed !important;}

/* ── Payment Step ── */
.cfb-pay-step-header{text-align:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f3f4f6;}
.cfb-pay-amount-badge{
  display:inline-block !important;
  background:rgba(108,99,255,0.1) !important; /* rgba fallback */
  color:var(--cfb-primary) !important;
  border:2px solid rgba(108,99,255,0.3) !important; /* rgba fallback */
  padding:6px 20px !important; border-radius:99px !important;
  font-size:20px !important; font-weight:800 !important; margin-bottom:6px !important;
  line-height:normal !important;
}
.cfb-pay-step-header p{color:#374151;font-size:14px;margin:0;font-weight:500;}
.cfb-pay-methods{display:flex !important;flex-direction:column !important;gap:10px !important;margin-bottom:20px !important;}
.cfb-pay-opt{display:block;cursor:pointer !important;}
.cfb-pay-opt.cfb-pm-hidden{display:none !important;}
.cfb-pay-opt input[type=radio]{display:none !important;}
.cfb-pay-card{
  display:flex !important; align-items:center !important; gap:12px !important;
  padding:14px 16px !important;
  border:2px solid #d1d5db !important; border-radius:10px !important;
  cursor:pointer !important; transition:all .2s !important;
  background:#ffffff !important;
  width:100% !important;
}
.cfb-pay-card:hover{border-color:var(--cfb-primary) !important;background:#fafafe !important;}
.cfb-pay-opt input[type=radio]:checked + .cfb-pay-card{
  border-color:var(--cfb-primary) !important;
  background:rgba(108,99,255,0.06) !important; /* rgba fallback */
}
.cfb-pay-radio-dot{
  width:20px !important;height:20px !important;border-radius:50% !important;
  border:2px solid #9ca3af !important;background:#fff !important;
  flex-shrink:0 !important;display:flex !important;align-items:center !important;justify-content:center !important;
  transition:all .2s !important;
}
.cfb-pay-opt input[type=radio]:checked + .cfb-pay-card .cfb-pay-radio-dot{
  border-color:var(--cfb-primary) !important;border-width:6px !important;
}
.cfb-pay-radio-inner{display:none !important;}
.cfb-pay-ico{font-size:22px !important;line-height:1 !important;flex-shrink:0 !important;}
.cfb-pay-info{flex:1 !important;}
.cfb-pay-name{display:block !important;font-size:15px !important;font-weight:700 !important;color:#111827 !important;margin-bottom:2px !important;}
.cfb-pay-desc{display:block !important;font-size:13px !important;color:#4b5563 !important;font-weight:400 !important;}

/* ── Consent ── */
.cfb-fw-full{grid-column:1/-1 !important;}
.cfb-consent-wrap{background:#f0fdf4 !important;border:1.5px solid #bbf7d0 !important;border-radius:8px !important;padding:14px 16px !important;}
.cfb-consent-label{display:flex !important;align-items:flex-start !important;gap:12px !important;cursor:pointer !important;}
.cfb-consent-chk{width:18px !important;height:18px !important;flex-shrink:0 !important;margin-top:2px !important;accent-color:var(--cfb-primary) !important;cursor:pointer !important;}
.cfb-consent-text{font-size:13px !important;color:#1f2937 !important;line-height:1.6 !important;}
.cfb-consent-text a{color:var(--cfb-primary) !important;text-decoration:underline !important;}

/* ── UPI Box ── */
.cfb-upi-box{max-width:520px;margin:0 auto;text-align:center;}
.cfb-upi-icon{font-size:48px;margin-bottom:12px;}
.cfb-upi-box h3{font-size:22px;font-weight:700;margin-bottom:6px;}
.cfb-upi-box > p{color:#6b7280;font-size:15px;margin-bottom:20px;}
.cfb-upi-card{background:#f5f3ff;border:1.5px solid #c4b5fd;border-radius:10px;padding:16px 20px;text-align:left;margin-bottom:16px;}
.cfb-upi-row{display:flex !important;justify-content:space-between !important;align-items:center !important;padding:6px 0;font-size:14px;}
.cfb-upi-row span{color:#6b7280;}
.cfb-upi-row strong{font-size:16px;}
.cfb-upi-steps-list{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:14px 16px;font-size:13px;margin:16px 0;text-align:left;}
.cfb-upi-steps-list ol{margin:8px 0 0 16px;line-height:2.2;}
.cfb-upload-wrap{text-align:left;margin-bottom:4px;}
.cfb-upload-wrap label{display:block !important;font-size:14px !important;font-weight:600 !important;margin-bottom:8px !important;}
.cfb-hint{font-size:12px;color:#9ca3af;}
.cfb-file-input{width:100% !important;padding:10px !important;border:2px dashed #d1d5db !important;border-radius:8px !important;background:#fafafa !important;cursor:pointer !important;box-sizing:border-box !important;}
.cfb-upi-back{display:block !important;width:100% !important;margin-top:10px !important;padding:11px !important;background:transparent !important;border:1.5px solid #d1d5db !important;border-radius:8px !important;font-size:14px !important;cursor:pointer !important;color:#6b7280 !important;}
.cfb-upi-back:hover{border-color:var(--cfb-primary) !important;color:var(--cfb-primary) !important;}

/* ── Success ── */
.cfb-success-wrap{text-align:center;padding:40px 20px;}
.cfb-success-tick{
  width:72px !important;height:72px !important;border-radius:50% !important;
  background:rgba(34,197,94,0.12) !important; /* rgba fallback */
  border:3px solid #22c55e !important;
  color:#22c55e !important; font-size:32px !important; font-weight:700 !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  margin:0 auto 20px !important;
}
.cfb-success-wrap h2{font-size:24px;color:#15803d;margin-bottom:10px;}
.cfb-success-wrap p{color:#374151;font-size:15px;}

/* ── Responsive ── */
@media(max-width:620px){
  .cfb-fields-grid{grid-template-columns:1fr !important;}
  .cfb-si-label{font-size:10px !important;max-width:60px !important;}
}
@media(max-width:768px){
  .cfb-nav-row{
    flex-direction:column-reverse !important;
    align-items:stretch !important;
    gap:10px !important;
  }
  .cfb-fw .cfb-nav-next,
  .cfb-fw .cfb-nav-prev,
  .cfb-fw .cfb-nav-submit,
  .cfb-nav-next,
  .cfb-nav-prev,
  .cfb-nav-submit{
    width:100% !important;
    display:block !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }
}

/* ── intl-tel-input phone field ── */
.cfb-phone-wrap{ position:relative; }
.cfb-phone-wrap .iti{ width:100% !important; display:block !important; }
.cfb-phone-wrap .iti input.cfb-phone-visual{
  width:100% !important;
  box-sizing:border-box !important;
  padding-left:52px !important;
}
.cfb-phone-wrap .iti--separate-dial-code input.cfb-phone-visual{
  padding-left:95px !important;
}
.cfb-phone-wrap .iti__selected-flag{
  background:#f9fafb !important;
  border-right:1.5px solid #d1d5db !important;
  border-radius:8px 0 0 8px !important;
}
.cfb-phone-wrap .iti__flag-container{ height:100% !important; }

/* ── Country field ── */
.cfb-country-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 14px center !important;
  padding-right:36px !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}

/* ── USD badge ── */
.cfb-currency-badge{display:inline-block !important;padding:2px 8px !important;border-radius:4px !important;font-size:11px !important;font-weight:700 !important;margin-left:6px !important;vertical-align:middle !important;}
.cfb-currency-inr{background:#fef3c7 !important;color:#92400e !important;}
.cfb-currency-usd{background:#dbeafe !important;color:#1e40af !important;}
