/* ═══════════════════════════════════════════════════════════
   Company Contact System – Contact Form  v2.1
   All rules scoped to .cfpe-wrap and use !important where
   needed to override Woodmart / WooCommerce defaults.
   ═══════════════════════════════════════════════════════════ */

/* ── Reset inside wrapper ──────────────────────────────────── */
.cfpe-wrap *,
.cfpe-wrap *::before,
.cfpe-wrap *::after {
    box-sizing: border-box !important;
}
.cfpe-wrap {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif !important;
    max-width: 680px !important;
    margin: 32px auto !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,.1), 0 4px 10px -6px rgba(0,0,0,.08) !important;
    overflow: hidden !important;
    position: relative !important;
}
/* Force all SVGs inside our wrapper to obey their explicit dims */
.cfpe-wrap svg {
    display: inline-block !important;
    vertical-align: middle !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
}

/* ── Header ────────────────────────────────────────────────── */
.cfpe-wrap .cfpe-header {
    background: linear-gradient(140deg, #1e40af 0%, #2563eb 50%, #3b82f6 100%) !important;
    padding: 36px 40px 0 !important;
    position: relative !important;
    overflow: hidden !important;
}
.cfpe-wrap .cfpe-header::before {
    content: '' !important;
    position: absolute !important;
    width: 300px !important; height: 300px !important;
    background: radial-gradient(circle, rgba(59,130,246,.12) 0%, transparent 70%) !important;
    top: -80px !important; right: -80px !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.cfpe-wrap .cfpe-header::after {
    content: '' !important;
    position: absolute !important;
    width: 160px !important; height: 160px !important;
    background: radial-gradient(circle, rgba(99,102,241,.1) 0%, transparent 70%) !important;
    bottom: 10px !important; left: -40px !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.cfpe-wrap .cfpe-header-content {
    position: relative !important;
    z-index: 1 !important;
    margin-bottom: 28px !important;
}
.cfpe-wrap .cfpe-eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    color: rgba(219,234,254,.9) !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.cfpe-wrap .cfpe-eyebrow svg { width: 12px !important; height: 12px !important; opacity: .6 !important; }
.cfpe-wrap .cfpe-title {
    font-size: clamp(22px, 4vw, 30px) !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    letter-spacing: -.5px !important;
    line-height: 1.2 !important;
    border: none !important;
    background: none !important;
    text-transform: none !important;
}
.cfpe-wrap .cfpe-subtitle {
    font-size: 14px !important;
    color: rgba(219,234,254,.85) !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* ── Steps Bar ─────────────────────────────────────────────── */
.cfpe-wrap .cfpe-steps-bar {
    position: relative !important;
    padding: 0 40px 28px !important;
    z-index: 1 !important;
}
.cfpe-wrap .cfpe-steps-line {
    position: absolute !important;
    top: 17px !important;
    left: 72px !important; right: 72px !important;
    height: 2px !important;
    background: rgba(255,255,255,.12) !important;
    border-radius: 2px !important;
}
.cfpe-wrap .cfpe-steps-progress {
    height: 100% !important;
    background: #3b82f6 !important;
    border-radius: 2px !important;
    width: 0% !important;
    transition: width .5s cubic-bezier(.4,0,.2,1) !important;
}
.cfpe-wrap .cfpe-steps {
    display: flex !important;
    justify-content: space-between !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.cfpe-wrap .cfpe-step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 7px !important;
    cursor: default !important;
}
.cfpe-wrap .cfpe-step-bubble {
    width: 34px !important; height: 34px !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.08) !important;
    border: 2px solid rgba(255,255,255,.15) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    transition: all .3s !important;
    position: relative !important;
}
.cfpe-wrap .s-num {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,.4) !important;
    transition: all .3s !important;
    display: block !important;
}
.cfpe-wrap .s-check {
    position: absolute !important;
    width: 14px !important; height: 14px !important;
    color: #fff !important;
    opacity: 0 !important;
    transition: opacity .3s !important;
    display: block !important;
}
.cfpe-wrap .cfpe-step-label {
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .8px !important;
    color: rgba(255,255,255,.35) !important;
    transition: color .3s !important;
    white-space: nowrap !important;
}
.cfpe-wrap .cfpe-step.is-active .cfpe-step-bubble {
    background: #3b82f6 !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 4px rgba(59,130,246,.25) !important;
}
.cfpe-wrap .cfpe-step.is-active .s-num { color: #fff !important; }
.cfpe-wrap .cfpe-step.is-active .cfpe-step-label { color: rgba(255,255,255,.9) !important; }
.cfpe-wrap .cfpe-step.is-done .cfpe-step-bubble { background: #22c55e !important; border-color: #22c55e !important; }
.cfpe-wrap .cfpe-step.is-done .s-num { opacity: 0 !important; }
.cfpe-wrap .cfpe-step.is-done .s-check { opacity: 1 !important; }
.cfpe-wrap .cfpe-step.is-done .cfpe-step-label { color: rgba(255,255,255,.6) !important; }

/* ── Panels ────────────────────────────────────────────────── */
.cfpe-wrap .cfpe-panels { padding: 32px 40px 36px !important; }
.cfpe-wrap .cfpe-panel { display: none !important; animation: cfpe-panelIn .3s ease both !important; }
.cfpe-wrap .cfpe-panel.is-active { display: block !important; }
@keyframes cfpe-panelIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Panel top ─────────────────────────────────────────────── */
.cfpe-wrap .cfpe-panel-top {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    margin-bottom: 24px !important;
}
.cfpe-wrap .cfpe-panel-ico {
    width: 42px !important; height: 42px !important;
    min-width: 42px !important;
    border-radius: 10px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
}
.cfpe-wrap .cfpe-panel-ico svg { width: 20px !important; height: 20px !important; display: block !important; }
.cfpe-wrap .cfpe-ico-blue   { background: #dbeafe !important; color: #2563eb !important; }
.cfpe-wrap .cfpe-ico-indigo { background: #e0e7ff !important; color: #4f46e5 !important; }
.cfpe-wrap .cfpe-ico-violet { background: #ede9fe !important; color: #7c3aed !important; }
.cfpe-wrap .cfpe-ico-orange { background: #ffedd5 !important; color: #ea580c !important; }
.cfpe-wrap .cfpe-ico-green  { background: #dcfce7 !important; color: #16a34a !important; }
.cfpe-wrap .cfpe-panel-top h3 {
    font-size: 18px !important; font-weight: 700 !important; color: #0f172a !important;
    margin: 0 0 4px !important; padding: 0 !important; border: none !important;
    background: none !important; text-transform: none !important; line-height: 1.3 !important;
}
.cfpe-wrap .cfpe-panel-top p { font-size: 13px !important; color: #64748b !important; margin: 0 !important; }

/* ── Fields ────────────────────────────────────────────────── */
.cfpe-wrap .cfpe-row2 { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 14px !important; }
.cfpe-wrap .cfpe-field { margin-bottom: 16px !important; }
.cfpe-wrap .cfpe-field:last-child { margin-bottom: 0 !important; }
.cfpe-wrap .cfpe-lbl {
    display: block !important; font-size: 13px !important; font-weight: 600 !important;
    color: #0f172a !important; margin-bottom: 6px !important;
}
.cfpe-wrap .cfpe-lbl em { color: #3b82f6 !important; font-style: normal !important; }
.cfpe-wrap .cfpe-inp {
    display: block !important;
    width: 100% !important;
    padding: 10px 14px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    color: #0f172a !important;
    background: #f1f5f9 !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 9px !important;
    outline: none !important;
    transition: border-color .2s, box-shadow .2s, background .2s !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
}
.cfpe-wrap .cfpe-inp:focus {
    border-color: #3b82f6 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.1) !important;
}
.cfpe-wrap .cfpe-inp-readonly { background: #f8fafc !important; color: #64748b !important; cursor: not-allowed !important; }
.cfpe-wrap .cfpe-inp.is-error { border-color: #ef4444 !important; }
.cfpe-wrap .cfpe-textarea { resize: vertical !important; min-height: 110px !important; line-height: 1.6 !important; }
.cfpe-wrap .cfpe-err { font-size: 12px !important; color: #ef4444 !important; margin-top: 4px !important; display: none !important; }
.cfpe-wrap .cfpe-err.is-visible { display: block !important; }
.cfpe-wrap .cfpe-char-row { display: flex !important; justify-content: flex-end !important; margin-top: 5px !important; }
.cfpe-wrap .cfpe-chars { font-size: 11px !important; color: #64748b !important; }

/* ── VAT row ───────────────────────────────────────────────── */
.cfpe-wrap .cfpe-vat-row { display: flex !important; gap: 10px !important; }
.cfpe-wrap .cfpe-vat-row .cfpe-inp { flex: 1 !important; }
.cfpe-wrap .cfpe-vat-btn {
    flex-shrink: 0 !important;
    padding: 10px 18px !important;
    background: #3b82f6 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 9px !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all .2s !important;
    display: flex !important; align-items: center !important; gap: 6px !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}
.cfpe-wrap .cfpe-vat-btn:hover:not(:disabled) { background: #2563eb !important; }
.cfpe-wrap .cfpe-vat-btn:disabled { opacity: .55 !important; cursor: not-allowed !important; }
.cfpe-wrap .cfpe-vat-msg { font-size: 13px !important; font-weight: 600 !important; margin-top: 7px !important; min-height: 18px !important; display: block !important; }
.cfpe-wrap .cfpe-vat-msg.is-ok  { color: #16a34a !important; }
.cfpe-wrap .cfpe-vat-msg.is-err { color: #ef4444 !important; }

/* ── Autofill ──────────────────────────────────────────────── */
.cfpe-wrap .cfpe-autofill { margin-top: 16px !important; animation: cfpe-panelIn .35s ease both !important; }
.cfpe-wrap .cfpe-autofill-tag {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .6px !important;
    color: #15803d !important;
    background: #dcfce7 !important;
    border: 1px solid #bbf7d0 !important;
    padding: 4px 10px !important;
    border-radius: 50px !important;
    margin-bottom: 12px !important;
}
.cfpe-wrap .cfpe-autofill-tag svg { width: 12px !important; height: 12px !important; }

/* ── Phone ─────────────────────────────────────────────────── */
.cfpe-wrap .cfpe-phone-grp { display: flex !important; align-items: stretch !important; }
.cfpe-wrap .cfpe-phone-pre {
    padding: 10px 12px !important;
    background: #f1f5f9 !important;
    border: 1.5px solid #e2e8f0 !important;
    border-right: none !important;
    border-radius: 9px 0 0 9px !important;
    font-size: 13px !important;
    color: #64748b !important;
    white-space: nowrap !important;
    display: flex !important; align-items: center !important;
}
.cfpe-wrap .cfpe-phone-grp .cfpe-inp { border-radius: 0 9px 9px 0 !important; }

/* ── Pre-filled card ───────────────────────────────────────── */
.cfpe-wrap .cfpe-prefill-card {
    background: #f8fafc !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-bottom: 4px !important;
}
.cfpe-wrap .cfpe-prefill-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
    margin-bottom: 16px !important;
}
.cfpe-wrap .cfpe-pf-item { display: flex !important; align-items: flex-start !important; gap: 10px !important; }
.cfpe-wrap .cfpe-pf-icon {
    width: 32px !important; height: 32px !important; min-width: 32px !important;
    border-radius: 8px !important;
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    color: #3b82f6 !important;
}
.cfpe-wrap .cfpe-pf-icon svg { width: 15px !important; height: 15px !important; display: block !important; }
.cfpe-wrap .cfpe-pf-label { display: block !important; font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: .5px !important; color: #64748b !important; margin-bottom: 2px !important; }
.cfpe-wrap .cfpe-pf-value { display: block !important; font-size: 14px !important; font-weight: 600 !important; color: #0f172a !important; word-break: break-word !important; }
.cfpe-wrap .cfpe-edit-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #3b82f6 !important;
    text-decoration: none !important;
    transition: opacity .2s !important;
}
.cfpe-wrap .cfpe-edit-link:hover { opacity: .75 !important; text-decoration: none !important; }
.cfpe-wrap .cfpe-edit-link svg { width: 12px !important; height: 12px !important; }

/* ── Radio cards ───────────────────────────────────────────── */
.cfpe-wrap .cfpe-radio-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; margin-bottom: 20px !important; }
.cfpe-wrap .cfpe-rc input[type="radio"] { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
.cfpe-wrap .cfpe-rc-body {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 14px 16px !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    background: #f8fafc !important;
    transition: all .2s !important;
}
.cfpe-wrap .cfpe-rc input:checked + .cfpe-rc-body {
    border-color: #3b82f6 !important;
    background: #eff6ff !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.08) !important;
}
.cfpe-wrap .cfpe-rc-ico {
    width: 36px !important; height: 36px !important; min-width: 36px !important;
    border-radius: 8px !important;
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    color: #3b82f6 !important;
}
.cfpe-wrap .cfpe-rc-ico svg { width: 16px !important; height: 16px !important; display: block !important; }
.cfpe-wrap .cfpe-rc-text { flex: 1 !important; }
.cfpe-wrap .cfpe-rc-text strong { display: block !important; font-size: 14px !important; font-weight: 700 !important; color: #0f172a !important; margin: 0 !important; }
.cfpe-wrap .cfpe-rc-text span   { display: block !important; font-size: 12px !important; color: #64748b !important; margin-top: 2px !important; }
.cfpe-wrap .cfpe-rc-dot {
    width: 18px !important; height: 18px !important; min-width: 18px !important;
    border-radius: 50% !important;
    border: 2px solid #e2e8f0 !important;
    transition: all .2s !important;
    position: relative !important;
    background: transparent !important;
}
.cfpe-wrap .cfpe-rc input:checked + .cfpe-rc-body .cfpe-rc-dot { border-color: #3b82f6 !important; background: #3b82f6 !important; }
.cfpe-wrap .cfpe-rc input:checked + .cfpe-rc-body .cfpe-rc-dot::after {
    content: '' !important;
    position: absolute !important;
    inset: 3px !important;
    background: #fff !important;
    border-radius: 50% !important;
}

/* ── Summary card ──────────────────────────────────────────── */
.cfpe-wrap .cfpe-summary-card {
    background: #f8fafc !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 10px !important;
    padding: 16px 18px !important;
    margin-bottom: 4px !important;
}
.cfpe-wrap .cfpe-sum-header { font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .8px !important; color: #64748b !important; margin-bottom: 12px !important; }
.cfpe-wrap .cfpe-sum-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
.cfpe-wrap .cfpe-sum-wide { grid-column: 1 / -1 !important; }
.cfpe-wrap .cfpe-sum-item { display: flex !important; flex-direction: column !important; gap: 2px !important; }
.cfpe-wrap .cfpe-sum-k { font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: .4px !important; color: #64748b !important; }
.cfpe-wrap .cfpe-sum-v { font-size: 13px !important; font-weight: 600 !important; color: #0f172a !important; }

/* ── Buttons ───────────────────────────────────────────────── */
.cfpe-wrap .cfpe-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    padding: 11px 22px !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    border: none !important;
    border-radius: 50px !important;
    cursor: pointer !important;
    transition: all .2s !important;
    text-decoration: none !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
}
.cfpe-wrap .cfpe-btn svg { width: 15px !important; height: 15px !important; flex-shrink: 0 !important; display: block !important; }
.cfpe-wrap .cfpe-btn-primary {
    background: #3b82f6 !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(59,130,246,.3) !important;
}
.cfpe-wrap .cfpe-btn-primary:hover {
    background: #2563eb !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(59,130,246,.4) !important;
    color: #fff !important;
    text-decoration: none !important;
}
.cfpe-wrap .cfpe-btn-success {
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%) !important;
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(22,163,74,.35) !important;
    padding: 14px 32px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: 0.3px !important;
    border-radius: 12px !important;
    min-width: 180px !important;
    justify-content: center !important;
}
.cfpe-wrap .cfpe-btn-success:hover:not(:disabled) {
    background: linear-gradient(135deg, #16a34a 0%, #15803d 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(22,163,74,.45) !important;
    color: #fff !important;
}
.cfpe-wrap .cfpe-submit-btn:disabled {
    opacity: 1 !important;
    cursor: wait !important;
    transform: none !important;
    box-shadow: 0 4px 16px rgba(22,163,74,.2) !important;
}
.cfpe-wrap .cfpe-btn-ghost {
    background: transparent !important;
    color: #64748b !important;
    border: 1.5px solid #e2e8f0 !important;
    box-shadow: none !important;
}
.cfpe-wrap .cfpe-btn-ghost:hover { background: #f8fafc !important; color: #0f172a !important; }
.cfpe-wrap .cfpe-btn:disabled { opacity: .45 !important; cursor: not-allowed !important; transform: none !important; box-shadow: none !important; }
.cfpe-wrap .cfpe-submit-btn:disabled { opacity: 1 !important; cursor: wait !important; }
.cfpe-wrap .cfpe-foot { display: flex !important; margin-top: 24px !important; }
.cfpe-wrap .cfpe-foot-end   { justify-content: flex-end !important; }
.cfpe-wrap .cfpe-foot-split { justify-content: space-between !important; align-items: center !important; }

/* ── Submit button states ─────────────────────────────────── */
/* ── Button two-state: class-toggled (NOT jQuery show/hide) ── */
.cfpe-wrap .cfpe-sbtn-idle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
}
.cfpe-wrap .cfpe-sbtn-loading {
    display: none !important;   /* hidden by default */
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
}
/* When button has .is-sending class, flip the states */
.cfpe-wrap .cfpe-submit-btn.is-sending .cfpe-sbtn-idle    { display: none !important; }
.cfpe-wrap .cfpe-submit-btn.is-sending .cfpe-sbtn-loading { display: inline-flex !important; }
.cfpe-wrap .cfpe-sbtn-idle svg {
    width: 15px !important;
    height: 15px !important;
    flex-shrink: 0 !important;
    display: block !important;
}
/* Loading shimmer on button */
.cfpe-wrap .cfpe-submit-btn:disabled.is-loading {
    opacity: 1 !important;
    background: #16a34a !important;
    cursor: wait !important;
    background-image: linear-gradient(
        90deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,.15) 50%,
        rgba(255,255,255,0) 100%
    ) !important;
    background-size: 200% 100% !important;
    animation: cfpe-btn-shimmer 1.2s linear infinite !important;
}
@keyframes cfpe-btn-shimmer {
    from { background-position: 200% 0; }
    to   { background-position: -200% 0; }
}
/* Spinner inside button */
.cfpe-wrap .cfpe-sbtn-spin {
    width: 14px !important;
    height: 14px !important;
    flex-shrink: 0 !important;
    border: 2px solid rgba(255,255,255,.35) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    animation: cfpe-spin .55s linear infinite !important;
    display: inline-block !important;
}
@keyframes cfpe-spin { to { transform: rotate(360deg); } }
/* Legacy cfpe-spin class kept for compatibility */
.cfpe-wrap .cfpe-spin {
    width: 14px !important; height: 14px !important;
    border: 2px solid rgba(255,255,255,.3) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    animation: cfpe-spin .55s linear infinite !important;
    display: inline-block !important;
}

/* ══════════════════════════════════════════════════════════════
   Success panel — complete redesign
   ══════════════════════════════════════════════════════════════ */

/* ── Panel container ───────────────────────────────────────── */
.cfpe-wrap .cfpe-success-panel {
    text-align: center !important;
    padding: 8px 0 16px !important;
    position: relative !important;
    overflow: hidden !important;
}

/* ── Confetti dots ─────────────────────────────────────────── */
.cfpe-wrap .cfpe-confetti { position: absolute !important; inset: 0 !important; pointer-events: none !important; overflow: hidden !important; }
.cfpe-wrap .cfpe-confetti .cc {
    position: absolute !important;
    border-radius: 2px !important;
    opacity: 0 !important;
    animation: cfpe-confetti-fall 1.6s ease forwards !important;
}
.cfpe-wrap .cc1  { width:8px !important; height:8px !important;  background:#3b82f6 !important; left:12% !important; top:-10px !important; animation-delay:.05s !important; transform:rotate(20deg) !important; }
.cfpe-wrap .cc2  { width:6px !important; height:10px !important; background:#22c55e !important; left:28% !important; top:-10px !important; animation-delay:.15s !important; transform:rotate(-15deg) !important; }
.cfpe-wrap .cc3  { width:10px !important;height:6px !important;  background:#f59e0b !important; left:44% !important; top:-10px !important; animation-delay:.08s !important; transform:rotate(40deg) !important; }
.cfpe-wrap .cc4  { width:7px !important; height:7px !important;  background:#a855f7 !important; left:60% !important; top:-10px !important; animation-delay:.20s !important; border-radius:50% !important; }
.cfpe-wrap .cc5  { width:9px !important; height:5px !important;  background:#ef4444 !important; left:76% !important; top:-10px !important; animation-delay:.10s !important; transform:rotate(-30deg) !important; }
.cfpe-wrap .cc6  { width:6px !important; height:9px !important;  background:#06b6d4 !important; left:88% !important; top:-10px !important; animation-delay:.25s !important; }
.cfpe-wrap .cc7  { width:8px !important; height:8px !important;  background:#f97316 !important; left:20% !important; top:-10px !important; animation-delay:.30s !important; transform:rotate(60deg) !important; }
.cfpe-wrap .cc8  { width:5px !important; height:5px !important;  background:#3b82f6 !important; left:70% !important; top:-10px !important; animation-delay:.18s !important; border-radius:50% !important; }
@keyframes cfpe-confetti-fall {
    0%   { opacity:0;  transform: translateY(0)   rotate(0deg); }
    15%  { opacity:1; }
    100% { opacity:0;  transform: translateY(200px) rotate(360deg); }
}

/* ── Animated check badge ──────────────────────────────────── */
.cfpe-wrap .cfpe-sc-badge {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 16px auto 22px !important;
}
.cfpe-wrap .cfpe-sc-badge::before {
    content: '' !important;
    position: absolute !important;
    inset: -10px !important;
    background: radial-gradient(circle, rgba(34,197,94,.15) 0%, transparent 70%) !important;
    border-radius: 50% !important;
    animation: cfpe-pulse-ring 2s ease-in-out 0.8s infinite !important;
}
@keyframes cfpe-pulse-ring {
    0%, 100% { transform: scale(.9);  opacity: .6; }
    50%       { transform: scale(1.1); opacity: .2; }
}
.cfpe-wrap .cfpe-sc-ring {
    width: 84px !important; height: 84px !important;
    color: #22c55e !important;
    filter: drop-shadow(0 4px 16px rgba(34,197,94,.35)) !important;
}
.cfpe-wrap .cfpe-sc-ring svg { width: 84px !important; height: 84px !important; display: block !important; }
.cfpe-wrap .cfpe-ring-circle {
    stroke: #22c55e !important;
    animation: cfpe-draw-circle .65s cubic-bezier(.4,0,.2,1) forwards !important;
}
.cfpe-wrap .cfpe-ring-check  {
    stroke: #22c55e !important;
    animation: cfpe-draw-check .4s cubic-bezier(.4,0,.2,1) .55s forwards !important;
}
@keyframes cfpe-draw-circle { to { stroke-dashoffset: 0; } }
@keyframes cfpe-draw-check  { to { stroke-dashoffset: 0; } }

/* ── Headline ──────────────────────────────────────────────── */
.cfpe-wrap .cfpe-sc-title {
    font-size: 26px !important;
    font-weight: 900 !important;
    color: #0f172a !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    text-transform: none !important;
    letter-spacing: -.5px !important;
    line-height: 1.2 !important;
    animation: cfpe-fadeUp .5s ease .3s both !important;
}
.cfpe-wrap .cfpe-sc-sub {
    font-size: 15px !important;
    color: #64748b !important;
    line-height: 1.65 !important;
    margin: 0 auto 24px !important;
    max-width: 380px !important;
    animation: cfpe-fadeUp .5s ease .4s both !important;
}
@keyframes cfpe-fadeUp {
    from { opacity:0; transform: translateY(10px); }
    to   { opacity:1; transform: translateY(0); }
}

/* ── Ticket card ───────────────────────────────────────────── */
.cfpe-wrap .cfpe-sc-ticket {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 5px !important;
    background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%) !important;
    border: 1.5px solid #bfdbfe !important;
    border-radius: 14px !important;
    padding: 16px 32px !important;
    margin: 0 auto 28px !important;
    animation: cfpe-fadeUp .5s ease .5s both !important;
    position: relative !important;
    overflow: hidden !important;
}
.cfpe-wrap .cfpe-sc-ticket::before {
    content: '' !important;
    position: absolute !important;
    top: -1px !important; left: -1px !important; right: -1px !important;
    height: 3px !important;
    background: linear-gradient(90deg, #3b82f6, #22c55e) !important;
    border-radius: 14px 14px 0 0 !important;
}
.cfpe-wrap .cfpe-sc-ticket-label {
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .9px !important;
    color: #64748b !important;
}
.cfpe-wrap .cfpe-sc-ticket-id {
    font-size: 22px !important;
    font-weight: 900 !important;
    color: #1e40af !important;
    letter-spacing: 1.5px !important;
    font-variant-numeric: tabular-nums !important;
}

/* ── Next-steps row ────────────────────────────────────────── */
.cfpe-wrap .cfpe-sc-steps {
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    animation: cfpe-fadeUp .5s ease .6s both !important;
}
.cfpe-wrap .cfpe-sc-step {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    text-align: left !important;
    flex: 1 1 180px !important;
    max-width: 230px !important;
}
.cfpe-wrap .cfpe-sc-step-ico {
    width: 36px !important; height: 36px !important; min-width: 36px !important;
    border-radius: 9px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    flex-shrink: 0 !important;
}
.cfpe-wrap .cfpe-sc-ico-blue   { background: #dbeafe !important; color: #1d4ed8 !important; }
.cfpe-wrap .cfpe-sc-ico-violet { background: #ede9fe !important; color: #7c3aed !important; }
.cfpe-wrap .cfpe-sc-step-text  { display: flex !important; flex-direction: column !important; gap: 2px !important; }
.cfpe-wrap .cfpe-sc-step-text strong { font-size: 13px !important; font-weight: 700 !important; color: #0f172a !important; display: block !important; }
.cfpe-wrap .cfpe-sc-step-text span   { font-size: 12px !important; color: #64748b !important; display: block !important; }

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 600px) {
    .cfpe-wrap          { margin: 0 !important; border-radius: 0 !important; border-left: none !important; border-right: none !important; }
    .cfpe-wrap .cfpe-header        { padding: 24px 20px 0 !important; }
    .cfpe-wrap .cfpe-steps-bar     { padding: 0 20px 20px !important; }
    .cfpe-wrap .cfpe-steps-line    { left: 36px !important; right: 36px !important; }
    .cfpe-wrap .cfpe-panels        { padding: 24px 20px 28px !important; }
    .cfpe-wrap .cfpe-row2          { grid-template-columns: 1fr !important; }
    .cfpe-wrap .cfpe-prefill-grid  { grid-template-columns: 1fr !important; }
    .cfpe-wrap .cfpe-radio-grid    { grid-template-columns: 1fr !important; }
    .cfpe-wrap .cfpe-sum-grid      { grid-template-columns: 1fr !important; }
    .cfpe-wrap .cfpe-step-label    { display: none !important; }
    .cfpe-wrap .cfpe-vat-row       { flex-direction: column !important; }
    .cfpe-wrap .cfpe-vat-btn       { width: 100% !important; justify-content: center !important; }
}
