{"id":17132,"date":"2021-03-08T11:35:50","date_gmt":"2021-03-08T10:35:50","guid":{"rendered":"https:\/\/www.bestfinance.ch\/?page_id=17132"},"modified":"2026-09-24T17:43:57","modified_gmt":"2026-09-24T15:43:57","slug":"credit-application-switzerland","status":"publish","type":"page","link":"https:\/\/www.bestfinance.ch\/en\/kreditanfrage-schweiz\/","title":{"rendered":"Credit request Switzerland"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17132\" class=\"elementor elementor-17132\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-373d62e e-flex e-con-boxed e-con e-parent\" data-id=\"373d62e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9a45207 elementor-widget elementor-widget-spacer\" data-id=\"9a45207\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-68c5a058 e-flex e-con-boxed e-con e-parent\" data-id=\"68c5a058\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c08ac7 elementor-widget elementor-widget-shortcode\" data-id=\"5c08ac7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"> <script>window.BF_KREDIT_CFG = {\"ENDPOINT\":\"\/wp-json\/bestfinance\/v1\/submit\",\"PLZ_ENDPOINT\":\"\/wp-json\/bestfinance\/v1\/gemeinden\",\"THANKYOU_URLS\":{\"de\":\"https:\/\/www.bestfinance.ch\/danke\/\",\"fr\":\"https:\/\/www.bestfinance.ch\/fr\/merci-bcp\/\",\"it\":\"https:\/\/www.bestfinance.ch\/it\/grazie-mille\/\",\"pt\":\"https:\/\/www.bestfinance.ch\/pt\/muito-obrigado\/\",\"es\":\"https:\/\/www.bestfinance.ch\/es\/muchas-gracias\/\",\"en\":\"https:\/\/www.bestfinance.ch\/en\/thankyou\/\"},\"THANKYOU_URL\":\"https:\/\/www.bestfinance.ch\/danke\/\",\"LEGAL_URLS\":{\"de\":\"https:\/\/www.bestfinance.ch\/legal-information-bf\/\",\"fr\":\"\",\"it\":\"\",\"pt\":\"\",\"es\":\"\",\"en\":\"\"},\"LEGAL_URL\":\"https:\/\/www.bestfinance.ch\/legal-information-bf\/\",\"PRIVACY_URLS\":{\"de\":\"https:\/\/www.bestfinance.ch\/privacy-policy-bf\/\",\"fr\":\"\",\"it\":\"\",\"pt\":\"\",\"es\":\"\",\"en\":\"\"},\"PRIVACY_URL\":\"https:\/\/www.bestfinance.ch\/privacy-policy-bf\/\",\"MIN_AGE\":18,\"MAX_AGE\":68,\"MAX_AGE_END\":65,\"CH_STOP_MONTHS\":12,\"CH_HINT_MONTHS\":24,\"PROBEZEIT_MONTHS\":3,\"SCORING_MONTHS\":12,\"MIN_INCOME\":3000,\"MIN_INCOME_HINT\":4000,\"LANG\":\"en\"};<\/script><div class=\"cc-root notranslate\" translate=\"no\" data-no-translation style=\"--cc-accent:#1A3B8C;--cc-accent-d:#122A66;--cc-accent-s:#E9EDF7;--cc-accent-b:#CBD6EE;--cc-ink:#0E1A24;--cc-muted:#5C6B76;--cc-line:#E3E8EC;--cc-field:#FFFFFF;--cc-bg:#F6F8F9;--cc-error:#C0392B;--cc-error-s:#FBECEA;--cc-ok:#1B7F5B\" data-bf-form=\"mittel\">\n  <style>\n    .cc-root, .cc-root *, .cc-root *::before, .cc-root *::after { box-sizing: border-box; }\n    .cc-root {\n      --cc-ink:      #0E1A24;\n      --cc-muted:    #5C6B76;\n      --cc-line:     #E3E8EC;\n      --cc-field:    #FFFFFF;\n      --cc-bg:       #F6F8F9;\n      --cc-accent:   #1A3B8C;\n      --cc-accent-d: #122A66;\n      --cc-accent-s: #E9EDF7;\n      --cc-accent-b: #CBD6EE;\n      --cc-error:    #C0392B;\n      --cc-error-s:  #FBECEA;\n      --cc-radius:   16px;\n      --cc-radius-s: 12px;\n      --cc-font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n      font-family: var(--cc-font);\n      color: var(--cc-ink);\n      line-height: 1.5;\n      -webkit-font-smoothing: antialiased;\n      max-width: 560px;\n      margin: 0 auto;\n      padding: 4px;\n    }\n    .cc-root h2 { font-size: 26px; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 4px; }\n    .cc-root .cc-lead { color: var(--cc-muted); margin: 0 0 16px; font-size: 16px; }\n\n    \/* ---- Fortschritt ---- *\/\n    .cc-root .cc-progress { margin: 0 0 16px; }\n    .cc-root .cc-progress-top { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; font-weight: 700; color: var(--cc-muted); margin-bottom: 8px; gap: 10px; }\n    .cc-root .cc-progress-top #ccStepTitle { color: var(--cc-accent-d); text-align: right; }\n    .cc-root .cc-progress-bar { height: 8px; background: var(--cc-line); border-radius: 8px; overflow: hidden; }\n    .cc-root .cc-progress-fill { height: 100%; width: 14%; border-radius: 8px; background: linear-gradient(90deg, var(--cc-accent), #3457B5); transition: width .3s ease; }\n\n    \/* ---- Steps ---- *\/\n    .cc-root .cc-step { display: none; }\n    .cc-root .cc-step.cc-active { display: block; animation: cc-fade .25s ease; }\n    @keyframes cc-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }\n\n    .cc-root .cc-card {\n      background: var(--cc-bg); border: 1px solid var(--cc-line);\n      border-radius: var(--cc-radius); padding: 18px 16px; margin-bottom: 14px;\n    }\n    .cc-root .cc-sec-title {\n      font-size: 14px; font-weight: 700; text-transform: uppercase;\n      letter-spacing: .08em; color: var(--cc-accent-d);\n      margin: 0 0 14px; display: flex; align-items: center; gap: 8px;\n    }\n    .cc-root .cc-sec-title span.num {\n      display: inline-flex; align-items: center; justify-content: center;\n      width: 22px; height: 22px; border-radius: 50%;\n      background: var(--cc-accent); color: #fff; font-size: 13px;\n    }\n    .cc-root .cc-field { margin-bottom: 14px; }\n    .cc-root .cc-field:last-child { margin-bottom: 0; }\n    .cc-root .cc-row { display: flex; gap: 10px; }\n    .cc-root .cc-row > * { flex: 1 1 0; min-width: 0; }\n    .cc-root label.cc-lbl { display: block; font-size: 16px; font-weight: 600; margin-bottom: 6px; color: var(--cc-ink); }\n    .cc-root .cc-req { color: var(--cc-accent); }\n\n    .cc-root input[type=text], .cc-root input[type=tel], .cc-root input[type=email],\n    .cc-root input[type=number], .cc-root select, .cc-root textarea {\n      width: 100%; font-family: inherit; font-size: 16px; color: var(--cc-ink);\n      background: var(--cc-field); border: 1.5px solid var(--cc-line);\n      border-radius: var(--cc-radius-s); padding: 14px 14px; min-height: 52px;\n      appearance: none; -webkit-appearance: none; transition: border-color .15s, box-shadow .15s;\n    }\n    .cc-root textarea { min-height: 96px; resize: vertical; line-height: 1.5; }\n    .cc-root input:focus, .cc-root select:focus, .cc-root textarea:focus {\n      outline: none; border-color: var(--cc-accent); box-shadow: 0 0 0 3px var(--cc-accent-s);\n    }\n    .cc-root input::placeholder, .cc-root textarea::placeholder { color: #A5B0B8; }\n    .cc-root input[readonly] { background: var(--cc-bg); color: var(--cc-muted); cursor: default; }\n    .cc-root select {\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235C6B76' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'\/%3E%3C\/svg%3E\");\n      background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px;\n    }\n    .cc-root .cc-invalid input, .cc-root .cc-invalid select, .cc-root .cc-invalid textarea { border-color: var(--cc-error); background: var(--cc-error-s); }\n    .cc-root .cc-err-msg { display: none; color: var(--cc-error); font-size: 14px; margin-top: 5px; font-weight: 600; }\n    .cc-root .cc-invalid .cc-err-msg { display: block; }\n\n    .cc-root .cc-slider-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }\n    .cc-root .cc-slider-val { font-size: 26px; font-weight: 700; letter-spacing: -0.02em; color: var(--cc-accent-d); }\n    .cc-root .cc-slider-val small { font-size: 16px; font-weight: 600; color: var(--cc-muted); }\n    .cc-root input[type=range] {\n      -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 8px;\n      padding: 0; min-height: 0; background: var(--cc-line); outline: none; margin: 6px 0 4px;\n    }\n    .cc-root input[type=range]::-webkit-slider-thumb {\n      -webkit-appearance: none; appearance: none; width: 30px; height: 30px; border-radius: 50%;\n      background: var(--cc-accent); border: 4px solid #fff; box-shadow: 0 2px 8px rgba(26,59,140,.4); cursor: pointer;\n    }\n    .cc-root input[type=range]::-moz-range-thumb {\n      width: 30px; height: 30px; border-radius: 50%; background: var(--cc-accent);\n      border: 4px solid #fff; box-shadow: 0 2px 8px rgba(26,59,140,.4); cursor: pointer;\n    }\n    .cc-root .cc-slider-scale { display: flex; justify-content: space-between; font-size: 13px; color: var(--cc-muted); margin-top: 2px; }\n\n    .cc-root .cc-rate {\n      margin-top: 16px; padding: 16px; border-radius: var(--cc-radius-s);\n      background: var(--cc-accent-s); border: 1px solid var(--cc-accent-b);\n      display: flex; align-items: center; justify-content: space-between; gap: 12px;\n    }\n    .cc-root .cc-rate-main { line-height: 1.2; }\n    .cc-root .cc-rate-label { font-size: 14px; color: var(--cc-accent-d); font-weight: 600; }\n    .cc-root .cc-rate-big { font-size: 18px; font-weight: 800; color: var(--cc-accent-d); letter-spacing: -.02em; }\n    .cc-root .cc-rate-big small { font-size: 16px; font-weight: 700; }\n    .cc-root .cc-rate-side { text-align: right; font-size: 14px; color: var(--cc-muted); line-height: 1.35; }\n    .cc-root .cc-rate-side b { color: var(--cc-ink); font-weight: 700; }\n    .cc-root .cc-rate-note { font-size: 13px; color: var(--cc-muted); margin-top: 6px; }\n\n    \/* ---- Auswahl-Zusammenfassung statt Rechner (v2.2.0) ---- *\/\n    .cc-root .cc-pick-grid { display: flex; gap: 12px; flex-wrap: wrap; }\n    .cc-root .cc-pick-item {\n      flex: 1 1 140px; padding: 12px 14px; border-radius: var(--cc-radius-s);\n      background: #fff; border: 1px solid var(--cc-accent-b);\n    }\n    .cc-root .cc-pick-lbl { display: block; font-size: 13px; color: var(--cc-muted); font-weight: 600; }\n    .cc-root .cc-pick-val { display: block; font-size: 20px; font-weight: 800; color: var(--cc-ink); letter-spacing: -.02em; margin-top: 2px; }\n    .cc-root .cc-pick-val small { font-size: 15px; font-weight: 700; color: var(--cc-muted); }\n    .cc-root .cc-pick-btn {\n      font-family: inherit; font-size: 15px; font-weight: 700; border-radius: var(--cc-radius);\n      min-height: 52px; width: 100%; margin-top: 14px; cursor: pointer; padding: 14px;\n      background: #fff; color: var(--cc-accent-d); border: 1.5px solid var(--cc-accent-b);\n      transition: background .15s, transform .05s;\n    }\n    .cc-root .cc-pick-btn:hover { background: var(--cc-accent-s); }\n    .cc-root .cc-pick-btn:active { transform: translateY(1px); }\n    @media (max-width: 480px) { .cc-root .cc-pick-item { flex: 1 1 100%; } }\n\n    \/* ---- Verwendungszweck visuell abgesetzt (v2.2.2) ---- *\/\n    .cc-root .cc-purpose {\n      margin-top: 18px; padding: 16px; border-radius: var(--cc-radius-s);\n      background: #fff; border: 1px solid var(--cc-accent-b);\n      box-shadow: 0 2px 8px rgba(26,59,140,.06);\n    }\n    .cc-root .cc-purpose .cc-field { margin-bottom: 0; }\n    .cc-root .cc-purpose .cc-hint { margin-top: 8px; }\n    .cc-root .cc-sub { font-size: 16px; font-weight: 700; color: var(--cc-ink); margin: 2px 0 12px; padding-bottom: 6px; border-bottom: 1px solid var(--cc-line); }\n    .cc-root .cc-sub2 { margin-top: 18px; }\n    .cc-root .cc-panel2 { background: #EEF2FB; border: 1px solid #CBD6EE; border-left: 4px solid var(--cc-accent); border-radius: 12px; padding: 14px 16px 4px; margin-top: 10px; }\n    .cc-root .cc-panel2 .cc-sub2 { margin-top: 2px; color: var(--cc-accent-d); }\n    .cc-root .cc-card-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #EEF3FC 0%, #E2E9F7 100%); border: 1px solid var(--cc-accent-b); box-shadow: 0 10px 30px rgba(26,59,140,.16); padding-top: 22px; }\n    .cc-root .cc-card-hero::before { content: \"\"; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: linear-gradient(90deg, var(--cc-accent), #3457B5); }\n    .cc-root .cc-warn { margin-top: 12px; padding: 14px 16px; border-radius: 12px; background: #FBECEA; border: 1px solid #E9C4BF; color: #9B2C22; font-size: 14px; font-weight: 600; line-height: 1.45; }\n\n    \/* ---- Hinweisboxen (v2.5.0) \u2013 bewusst aus den bestehenden Tokens abgeleitet ---- *\/\n    .cc-root .cc-note { margin-top: 10px; padding: 13px 15px; border-radius: 12px; font-size: 14px; line-height: 1.5; }\n    .cc-root .cc-note strong { font-weight: 800; }\n    .cc-root .cc-note-info { background: #EEF3FC; border: 1px solid var(--cc-accent-b); border-left: 4px solid var(--cc-accent); color: var(--cc-accent-d); }\n    .cc-root .cc-note-warn { background: #FFF8E8; border: 1px solid #EFD9A6; border-left: 4px solid #C08A12; color: #7A5406; font-weight: 600; }\n    .cc-root .cc-note-stop { background: var(--cc-error-s); border: 1px solid #E9C4BF; border-left: 4px solid var(--cc-error); color: #9B2C22; font-weight: 600; }\n\n    .cc-root .cc-addbtn {\n      font-family: inherit; font-size: 14px; font-weight: 600; color: var(--cc-accent-d);\n      background: var(--cc-accent-s); border: 1px dashed var(--cc-accent-b);\n      border-radius: var(--cc-radius-s); padding: 12px; width: 100%; cursor: pointer; margin-top: 2px;\n    }\n    .cc-root .cc-addbtn:hover { background: #DCE4F4; }\n    .cc-root .cc-addbtn.cc-hidden { display: none; }\n\n    .cc-root .cc-seg { display: flex; gap: 8px; }\n    .cc-root .cc-seg.cc-seg-stack { flex-direction: column; }\n    .cc-root .cc-seg.cc-seg-stack button { text-align: left; padding: 0 16px; }\n    .cc-root .cc-vers-opts { margin-top: 14px; }\n    .cc-root .cc-vers-opts.cc-invalid .cc-err-msg { display: block; }\n    .cc-root .cc-vers-card { position: relative; border: 2px solid var(--cc-line); border-radius: var(--cc-radius); overflow: hidden; margin-bottom: 12px; cursor: pointer; background: #fff; transition: border-color .15s, box-shadow .15s; }\n    .cc-root .cc-vers-card[aria-selected=\"true\"] { border-color: var(--cc-accent); box-shadow: 0 0 0 3px var(--cc-accent-s); }\n    .cc-root .cc-vers-head { padding: 14px 16px 12px; color: #fff; position: relative; }\n    .cc-root .cc-vers-basic { background: linear-gradient(135deg,#c0392b,#e74c3c); }\n    .cc-root .cc-vers-premium { background: linear-gradient(135deg,#8e44ad,#9b59b6); }\n    .cc-root .cc-vers-badge { position: absolute; top: 0; right: 0; background: rgba(255,255,255,.22); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 4px 10px; border-radius: 0 12px 0 10px; }\n    .cc-root .cc-vers-name { font-size: 17px; font-weight: 800; }\n    .cc-root .cc-vers-sub { font-size: 13px; opacity: .9; }\n    .cc-root .cc-vers-body { display: flex; gap: 14px; align-items: center; padding: 14px 16px; }\n    .cc-root .cc-vers-price { flex: 0 0 auto; font-weight: 800; color: var(--cc-ink); line-height: 1; }\n    .cc-root .cc-vers-price b { font-size: 30px; } .cc-root .cc-vers-price small { font-size: 13px; color: var(--cc-muted); }\n    .cc-root .cc-vers-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--cc-ink); }\n    .cc-root .cc-vers-list li { padding-left: 20px; position: relative; }\n    .cc-root .cc-vers-list li::before { content: \"\u2713\"; position: absolute; left: 0; color: var(--cc-accent); font-weight: 800; }\n    .cc-root .cc-vers-foot { font-size: 12px; color: var(--cc-muted); padding: 0 16px 12px; line-height: 1.5; }\n    .cc-root .cc-vers-check { display: none; position: absolute; top: 10px; left: 10px; z-index: 2; background: var(--cc-accent); color: #fff; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 99px; }\n    .cc-root .cc-vers-card[aria-selected=\"true\"] .cc-vers-check { display: inline-block; }\n    .cc-root .cc-info-btn {\n      display: inline-flex; align-items: center; justify-content: center;\n      width: 18px; height: 18px; margin-left: 6px; padding: 0;\n      border: 1.5px solid var(--cc-accent); border-radius: 50%;\n      background: transparent; color: var(--cc-accent); font-size: 12px; font-weight: 700;\n      line-height: 1; cursor: pointer; vertical-align: middle; font-family: inherit;\n    }\n    .cc-root .cc-info-btn:hover { background: var(--cc-accent); color: #fff; }\n    .cc-root .cc-info-box { margin: 8px 0 10px; padding: 10px 12px; border: 1px solid var(--cc-line); border-radius: var(--cc-radius-s); background: var(--cc-bg); color: var(--cc-muted); font-size: 13.5px; line-height: 1.5; }\n    .cc-root .cc-seg button {\n      flex: 1; font-family: inherit; font-size: 16px; font-weight: 600; min-height: 52px;\n      border: 1.5px solid var(--cc-line); background: var(--cc-field); color: var(--cc-ink);\n      border-radius: var(--cc-radius-s); cursor: pointer; transition: all .15s;\n    }\n    .cc-root .cc-seg button[aria-pressed=\"true\"] { background: var(--cc-accent); border-color: var(--cc-accent); color: #fff; }\n\n    .cc-root .cc-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }\n    .cc-root .cc-check input { position: absolute; opacity: 0; width: 0; height: 0; }\n    .cc-root .cc-box {\n      flex: 0 0 auto; width: 26px; height: 26px; margin-top: 1px; border: 2px solid var(--cc-line);\n      border-radius: 8px; background: #fff; display: inline-flex; align-items: center; justify-content: center; transition: all .15s;\n    }\n    .cc-root .cc-box svg { width: 16px; height: 16px; opacity: 0; transition: opacity .1s; }\n    .cc-root .cc-check input:checked + .cc-box { background: var(--cc-accent); border-color: var(--cc-accent); }\n    .cc-root .cc-check input:checked + .cc-box svg { opacity: 1; }\n    .cc-root .cc-check input:focus-visible + .cc-box { box-shadow: 0 0 0 3px var(--cc-accent-s); }\n    .cc-root .cc-check-txt { font-size: 15px; color: var(--cc-ink); }\n    .cc-root .cc-check-txt a { color: var(--cc-accent-d); font-weight: 600; }\n    .cc-root .cc-comm-row { display: flex; gap: 10px; }\n    .cc-root .cc-comm-row > .cc-check { flex: 1 1 0; min-width: 0; align-items: center; }\n    .cc-root .cc-comm-box { background: var(--cc-bg); border: 1px solid var(--cc-line); border-radius: var(--cc-radius-s); padding: 14px; }\n    .cc-root .cc-legal-sep { margin: 20px 0 12px; padding-top: 16px; border-top: 1px solid var(--cc-line); font-size: 15px; font-weight: 700; color: var(--cc-accent-d); }\n    .cc-root .cc-modal { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,.55); padding: 16px; box-sizing: border-box; }\n    .cc-root .cc-modal.open { display: flex; }\n    .cc-root .cc-modal-box { position: relative; width: 100%; max-width: 900px; height: 85vh; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.35); }\n    .cc-root .cc-modal-iframe { width: 100%; height: 100%; border: 0; display: block; }\n    .cc-root .cc-modal-close { position: absolute; top: 10px; right: 10px; width: 42px; height: 42px; padding: 0; border: none; border-radius: 50%; background: #e11d48; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2; box-shadow: 0 2px 8px rgba(0,0,0,.3); }\n    .cc-root .cc-modal-close:hover { background: #be123c; }\n    @media (max-width: 480px) {\n      .cc-root .cc-modal-box { height: 92vh; }\n      .cc-root .cc-modal-close { top: auto; bottom: 16px; right: 16px; width: 46px; height: 46px; font-size: 28px; }\n    }\n    .cc-root .cc-inline { display: flex; gap: 12px; align-items: center; }\n    .cc-root .cc-inline .cc-num { flex: 1 1 auto; }\n    .cc-root .cc-inline .cc-check { flex: 0 0 auto; margin: 0; white-space: nowrap; }\n    .cc-root .cc-info { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: var(--cc-accent); color: #fff; font-size: 12px; font-weight: 700; font-style: normal; cursor: help; margin-left: 6px; user-select: none; }\n    .cc-root .cc-info:hover::after, .cc-root .cc-info:focus::after {\n      content: attr(data-tip); position: absolute; left: 50%; bottom: 140%; transform: translateX(-50%);\n      width: 230px; background: var(--cc-accent-d); color: #fff; font-size: 13px; font-weight: 400; line-height: 1.4;\n      padding: 8px 10px; border-radius: 8px; box-shadow: 0 4px 14px rgba(0,0,0,.18); z-index: 5; white-space: normal;\n    }\n    .cc-root .cc-highlight { background: #EEF3FC; border: 1px solid var(--cc-accent-b); border-left: 4px solid var(--cc-accent); border-radius: 10px; padding: 12px 14px; margin-top: 4px; }\n    .cc-root .cc-highlight .cc-lbl { color: var(--cc-accent-d); font-weight: 700; }\n    .cc-root .cc-consent.cc-invalid .cc-box { border-color: var(--cc-error); }\n\n    \/* ---- Navigation ---- *\/\n    .cc-root .cc-nav { display: flex; gap: 10px; margin-top: 4px; }\n    .cc-root .cc-btn {\n      font-family: inherit; font-size: 16px; font-weight: 700; border-radius: var(--cc-radius);\n      min-height: 56px; cursor: pointer; padding: 16px; transition: background .15s, transform .05s;\n    }\n    .cc-root .cc-btn:active { transform: translateY(1px); }\n    .cc-root .cc-btn-back { flex: 0 0 34%; background: #fff; color: var(--cc-accent-d); border: 1.5px solid var(--cc-line); }\n    .cc-root .cc-btn-back:hover { background: var(--cc-bg); }\n    .cc-root .cc-btn-next { flex: 1 1 auto; background: var(--cc-accent); color: #fff; border: none; box-shadow: 0 4px 14px rgba(26,59,140,.28); }\n    .cc-root .cc-btn-next:hover { background: var(--cc-accent-d); }\n\n    .cc-root .cc-submit {\n      flex: 1 1 auto; width: auto; font-family: inherit; font-size: 18px; font-weight: 700;\n      color: #fff; background: var(--cc-accent); border: none; border-radius: var(--cc-radius);\n      padding: 16px; min-height: 56px; cursor: pointer; transition: background .15s, transform .05s;\n      box-shadow: 0 4px 14px rgba(26,59,140,.28);\n    }\n    .cc-root .cc-submit:hover { background: var(--cc-accent-d); }\n    .cc-root .cc-submit:active { transform: translateY(1px); }\n    .cc-root .cc-submit:disabled { opacity: .65; cursor: default; }\n    .cc-root .cc-submit .cc-spin {\n      display: none; width: 18px; height: 18px; border: 2.5px solid rgba(255,255,255,.5);\n      border-top-color: #fff; border-radius: 50%; vertical-align: -3px; margin-right: 8px; animation: cc-spin .7s linear infinite;\n    }\n    .cc-root .cc-submit.is-loading .cc-spin { display: inline-block; }\n    @keyframes cc-spin { to { transform: rotate(360deg); } }\n\n    .cc-root .cc-form-msg { display: none; margin-top: 14px; padding: 14px 16px; border-radius: var(--cc-radius-s); font-size: 16px; font-weight: 600; background: var(--cc-error-s); color: var(--cc-error); }\n    .cc-root .cc-form-msg.show { display: block; }\n    .cc-root .cc-hint { font-size: 14px; color: var(--cc-muted); margin-top: 6px; }\n    .cc-root .cc-hidden { display: none !important; }\n    .cc-root .cc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }\n\n    @media (prefers-reduced-motion: reduce) {\n      .cc-root .cc-submit .cc-spin { animation: none; }\n      .cc-root * { transition: none !important; animation: none !important; }\n    }\n    \/* v3.1.1: Auf sehr schmalen Geraeten werden Zeilen gestapelt - AUSSER den\n       Zeilen, die inhaltlich zusammengehoeren und nebeneinander bleiben\n       muessen (.cc-row-keep): Strasse\/Nr., PLZ\/Ort\/Kanton, Datumsfelder,\n       Telefonvorwahl\/Nummer. Vorher galt die Stapelung fuer alle Zeilen. *\/\n    @media (max-width: 400px) {\n      .cc-root .cc-row:not(.cc-row-keep) { flex-direction: column; gap: 0; }\n      .cc-root .cc-row:not(.cc-row-keep) > * { margin-bottom: 14px; }\n    }\n    @media (max-width: 600px) {\n      .cc-root label.cc-lbl, .cc-root input[type=text], .cc-root input[type=tel], .cc-root input[type=email],\n      .cc-root input[type=number], .cc-root select, .cc-root textarea, .cc-root .cc-sub, .cc-root .cc-lead { font-size: 17px; }\n      .cc-root .cc-check-txt { font-size: 16px; line-height: 1.45; }\n      .cc-root .cc-hint, .cc-root .cc-err-msg, .cc-root .cc-sec-title, .cc-root .cc-info-box, .cc-root .cc-addbtn { font-size: 15px; }\n      .cc-root .cc-note { font-size: 15px; }\n      .cc-root .cc-rate-note, .cc-root .cc-slider-scale { font-size: 14px; }\n      .cc-root .cc-rate-label { font-size: 13px; white-space: nowrap; }\n      .cc-root .cc-rate-big { font-size: 22px; }\n      .cc-root .cc-vers-name { font-size: 18px; }\n      .cc-root .cc-vers-list { font-size: 15px; }\n      .cc-root .cc-legal-sep { font-size: 16px; }\n    }\n    \/* v3.1.1: In den zusammenhaengenden Zeilen etwas Platz sparen, damit\n       PLZ\/Ort\/Kanton, Tag\/Monat\/Jahr und Telefon auch auf 360 px nebeneinander\n       passen. Schriftgroesse bleibt bei 16px - darunter zoomt iOS beim Fokus. *\/\n    @media (max-width: 480px) {\n      .cc-root .cc-row-keep { gap: 8px; }\n      .cc-root .cc-row-keep input, .cc-root .cc-row-keep select { font-size: 16px; padding-left: 10px; padding-right: 10px; }\n      .cc-root .cc-row-keep select { padding-right: 26px; background-position: right 8px center; }\n      .cc-root .cc-row-keep .cc-lbl { font-size: 15px; }\n    }\n  <\/style>\n\n  <form id=\"ccForm\" novalidate autocomplete=\"on\">\n\n    <h2>Credit application<\/h2>\n    <p class=\"cc-lead\">Non-binding and free of charge. All information is treated confidentially.<\/p>\n\n    <!-- Fortschritt -->\n    <div class=\"cc-progress\">\n      <div class=\"cc-progress-top\">\n        <span id=\"ccStepLabel\">Step 1 of 7<\/span>\n        <span id=\"ccStepTitle\">Credit request<\/span>\n      <\/div>\n      <div class=\"cc-progress-bar\"><div class=\"cc-progress-fill\" id=\"ccProgressFill\"><\/div><\/div>\n    <\/div>\n\n    <!-- v3.2.0: Schritt-Titel & Schrittw\u00f6rter als versteckt gerendertes HTML, damit\n         TranslatePress sie schon beim ersten Laden \u00fcbersetzt. Das JS unten liest die\n         Texte aus diesen Elementen statt aus fest verdrahteten JS-Strings. -->\n    <div id=\"ccStepTitleSrc\" style=\"display:none\" aria-hidden=\"true\">\n      <div>Credit request<\/div>\n      <div>Personal details<\/div>\n      <div>Contact & consent<\/div>\n      <div>Housing & family<\/div>\n      <div>Income & employment<\/div>\n      <div>Overview & submit<\/div>\n    <\/div>\n    <div id=\"ccStepWordSrc\" style=\"display:none\" aria-hidden=\"true\">\n      <div>Step<\/div>\n      <div>of<\/div>\n    <\/div>\n\n    <!-- ============ STEP 1: KREDITWUNSCH ============ -->\n    <div class=\"cc-step\" data-step=\"0\">\n      <div class=\"cc-card cc-card-hero\">\n        <p class=\"cc-sec-title\"><span class=\"num\">1<\/span> Your credit request<\/p>\n\n        <!-- Auswahl-Zusammenfassung (nur sichtbar bei ?r=0, v2.2.1) -->\n        <div id=\"ccPickBox\" hidden>\n          <div class=\"cc-pick-grid\">\n            <div class=\"cc-pick-item\">\n              <span class=\"cc-pick-lbl\" id=\"ccPickBetragLbl\">Your credit amount<\/span>\n              <span class=\"cc-pick-val\"><span id=\"ccPickBetrag\">\u2013<\/span> <small>CHF<\/small><\/span>\n            <\/div>\n            <div class=\"cc-pick-item\">\n              <span class=\"cc-pick-lbl\" id=\"ccPickLaufzeitLbl\">Your term<\/span>\n              <span class=\"cc-pick-val\"><span id=\"ccPickLaufzeit\">\u2013<\/span> <small id=\"ccPickMonate\">Months<\/small><\/span>\n            <\/div>\n          <\/div>\n          <div class=\"cc-rate\">\n            <div class=\"cc-rate-main\">\n              <div class=\"cc-rate-label\" id=\"ccPickRateLbl\">Monthly instalment from<\/div>\n              <div class=\"cc-rate-big\"><span id=\"ccPickRateMin\">\u2013<\/span> <small>CHF<\/small><\/div>\n            <\/div>\n            <div class=\"cc-rate-side\">\n              <span id=\"ccPickSide1\">at the best rate<\/span> <b><span id=\"ccPickZinsMin\">4.9<\/span>%<\/b><br>\n              <span id=\"ccPickSide2\">to<\/span> <span id=\"ccPickRateMax\">\u2013<\/span> CHF <span id=\"ccPickSide3\">at<\/span> <span id=\"ccPickZinsMax\">9.95<\/span>%\n            <\/div>\n          <\/div>\n          <p class=\"cc-rate-note\"><span id=\"ccPickNoteTxt\">Non-binding guide value. The effective annual interest rate depends on your creditworthiness<\/span> (<span id=\"ccPickZinsMinN\">4.9<\/span>%\u2013<span id=\"ccPickZinsMaxN\">9.95<\/span>% p.a.).<\/p>\n          <button type=\"button\" class=\"cc-pick-btn\" id=\"ccPickChange\" aria-expanded=\"false\" aria-controls=\"ccCalcWrap\">Change amount or term<\/button>\n        <\/div>\n\n        <!-- Kreditrechner -->\n        <div id=\"ccCalcWrap\">\n        <div class=\"cc-field\">\n          <div class=\"cc-slider-head\">\n            <label class=\"cc-lbl\" for=\"ccBetrag\" style=\"margin:0\">Credit amount<\/label>\n            <span class=\"cc-slider-val\"><span id=\"ccBetragTxt\">20\u2019000<\/span> <small>CHF<\/small><\/span>\n          <\/div>\n          <input type=\"range\" id=\"ccBetrag\" min=\"0\" max=\"119\" step=\"1\" value=\"15\">\n          <div class=\"cc-slider-scale\"><span id=\"ccScaleMin\">5\u2019000<\/span><span id=\"ccScaleMax\">300\u2019000<\/span><\/div>\n          <input type=\"hidden\" name=\"Kreditbetrag\" id=\"ccBetragHidden\" value=\"20000\">\n        <\/div>\n        <div class=\"cc-field\">\n          <div class=\"cc-slider-head\">\n            <label class=\"cc-lbl\" for=\"ccLaufzeit\" style=\"margin:0\">Term<\/label>\n            <span class=\"cc-slider-val\"><span id=\"ccLaufzeitTxt\">36<\/span> <small>Months<\/small><\/span>\n          <\/div>\n          <input type=\"range\" id=\"ccLaufzeit\" min=\"0\" max=\"7\" step=\"1\" value=\"2\">\n          <div class=\"cc-slider-scale\"><span id=\"ccDurScaleMin\">12<\/span><span id=\"ccDurScaleMax\">120<\/span><\/div>\n          <input type=\"hidden\" name=\"Laufzeit\" id=\"ccLaufzeitHidden\" value=\"36\">\n        <\/div>\n        <div class=\"cc-rate\">\n          <div class=\"cc-rate-main\">\n            <div class=\"cc-rate-label\">Monthly instalment from<\/div>\n            <div class=\"cc-rate-big\"><span id=\"ccRateMin\">\u2013<\/span> <small>CHF<\/small><\/div>\n          <\/div>\n          <div class=\"cc-rate-side\">\n            at the best rate <b><span id=\"ccZinsMin\">4.9<\/span>%<\/b><br>\n            to <span id=\"ccRateMax\">\u2013<\/span> CHF at <span id=\"ccZinsMax\">9.95<\/span>%\n          <\/div>\n        <\/div>\n        <p class=\"cc-rate-note\">Non-binding guide value. The effective annual interest rate depends on your creditworthiness (<span id=\"ccZinsMinN\">4.9<\/span>%\u2013<span id=\"ccZinsMaxN\">9.95<\/span>% p.a.).<\/p>\n        <\/div><!-- \/#ccCalcWrap -->\n        <div class=\"cc-purpose\">\n          <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccZweck\">Purpose <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccZweck\" name=\"Verwendungszweck\" required>\n            <option value=\"\">- Please select -<\/option>\n            <option value=\"Ausbildung\">Education<\/option>\n            <option value=\"Auto \/ Motorrad\">Car \/ motorcycle<\/option>\n            <option value=\"Einrichtung \/ M\u00f6bel\">Furnishings \/ furniture<\/option>\n            <option value=\"Elektronische Ger\u00e4te\">Electronic devices<\/option>\n            <option value=\"Ferien\">Holidays<\/option>\n            <option value=\"Kredit abl\u00f6sen\">Refinance a loan<\/option>\n            <option value=\"Kreditkarte abl\u00f6sen\">Pay off a credit card<\/option>\n            <option value=\"Immobilie in der Schweiz\">Property in Switzerland<\/option>\n            <option value=\"Immobilie im Ausland\">Property abroad<\/option>\n            <option value=\"Rechnung bezahlen\">Pay a bill<\/option>\n            <option value=\"Schulden\">Debts<\/option>\n            <option value=\"Steuern\">Taxes<\/option>\n            <option value=\"Andere\">Other<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select a purpose.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ============ STEP 2: PERS\u00d6NLICHE ANGABEN ============ -->\n    <div class=\"cc-step\" data-step=\"1\">\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">2<\/span> Personal details<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\">Title <span class=\"cc-req\">*<\/span><\/label>\n          <div class=\"cc-seg\" id=\"ccAnredeSeg\">\n            <button type=\"button\" data-val=\"Herr\" aria-pressed=\"false\">Mr<\/button>\n            <button type=\"button\" data-val=\"Frau\" aria-pressed=\"false\">Mrs<\/button>\n          <\/div>\n          <input type=\"hidden\" name=\"Anrede\" id=\"ccAnrede\" required>\n          <div class=\"cc-err-msg\">Please select a title.<\/div>\n        <\/div>\n        <div class=\"cc-row\">\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccVorname\">First name <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccVorname\" name=\"vorname\" autocomplete=\"given-name\" required>\n            <div class=\"cc-err-msg\">Please enter your first name.<\/div>\n          <\/div>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccNachname\">Surname <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccNachname\" name=\"nachname\" autocomplete=\"family-name\" required>\n            <div class=\"cc-err-msg\">Please enter your surname.<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccGeb\">Date of birth <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"ccGeb\" name=\"Geburtsdatum\" inputmode=\"numeric\" placeholder=\"DD.MM.YYYY\" maxlength=\"10\" autocomplete=\"bday\" required>\n          <!-- v2.5.0: eine Meldung je Fall statt einer Sammelmeldung -->\n          <div class=\"cc-err-msg\">\n            <span data-e=\"format\">Please enter a valid date (DD.MM.YYYY).<\/span>\n            <span data-e=\"min\" class=\"cc-hidden\">No credit possible: the minimum age is 18 years.<\/span>\n            <span data-e=\"max\" class=\"cc-hidden\">No credit possible: the maximum age is 68 years.<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"cc-row cc-row-keep\">\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccStrasse\">Street <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccStrasse\" name=\"Strasse\" autocomplete=\"address-line1\" required>\n            <div class=\"cc-err-msg\">Please enter a street.<\/div>\n          <\/div>\n          <div class=\"cc-field\" style=\"flex:0 0 30%\">\n            <label class=\"cc-lbl\" for=\"ccStrasseNr\">No. <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccStrasseNr\" name=\"Strassennr\" maxlength=\"6\" autocomplete=\"address-line2\" placeholder=\"e.g. 15B\" required>\n            <div class=\"cc-err-msg\">No.<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"cc-row cc-row-keep\">\n          <div class=\"cc-field\" style=\"flex:0 0 96px\">\n            <label class=\"cc-lbl\" for=\"ccPLZ\">Postcode <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccPLZ\" name=\"PLZ\" inputmode=\"numeric\" maxlength=\"5\" autocomplete=\"postal-code\" style=\"max-width:130px\" required>\n            <div class=\"cc-err-msg\">Invalid postcode.<\/div>\n          <\/div>\n          <div class=\"cc-field\" style=\"flex:1 1 auto\">\n            <label class=\"cc-lbl\" for=\"ccOrt\">Town <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccOrt\" name=\"Ort\" autocomplete=\"address-level2\" required>\n            <select id=\"ccOrtSelect\" class=\"cc-hidden\" aria-label=\"Select town\"><\/select>\n            <div class=\"cc-err-msg\">Please enter a town.<\/div>\n          <\/div>\n          <div class=\"cc-field\" style=\"flex:0 0 64px\">\n            <label class=\"cc-lbl\" for=\"ccKanton\">Canton<\/label>\n            <input type=\"text\" id=\"ccKanton\" name=\"Kanton\" maxlength=\"2\" autocomplete=\"off\" readonly tabindex=\"-1\" aria-readonly=\"true\" title=\"Filled in automatically from the postcode\" style=\"text-transform:uppercase;max-width:90px\" placeholder=\"auto.\">\n          <\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\">Resident at this address since <span class=\"cc-req\">*<\/span><\/label>\n          <div class=\"cc-row cc-row-keep\">\n            <select name=\"SeitwannadresseMonat\" id=\"ccAdrMonat\" aria-label=\"Month\"><\/select>\n            <select name=\"SeitwannadresseJahr\" id=\"ccAdrJahr\" aria-label=\"Year\"><\/select>\n          <\/div>\n          <div class=\"cc-err-msg\">Please select month and year.<\/div>\n        <\/div>\n        <div class=\"cc-hidden\" id=\"ccOldAddrBlock\">\n          <p class=\"cc-sub cc-sub2\">Previous address (less than 2 years at current address)<\/p>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccAlteStrasse\">Previous street & no.<\/label>\n            <input type=\"text\" id=\"ccAlteStrasse\" name=\"alte_strasse\" autocomplete=\"off\">\n          <\/div>\n          <div class=\"cc-row\">\n            <div class=\"cc-field\" style=\"flex:0 0 34%\">\n              <label class=\"cc-lbl\" for=\"ccAltePLZ\">Previous postcode<\/label>\n              <input type=\"text\" id=\"ccAltePLZ\" name=\"alte_plz\" inputmode=\"numeric\" maxlength=\"5\" autocomplete=\"off\">\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccAlterOrt\">Previous town<\/label>\n              <input type=\"text\" id=\"ccAlterOrt\" name=\"alter_ort\" autocomplete=\"off\">\n              <select id=\"ccAlterOrtSelect\" class=\"cc-hidden\" aria-label=\"Select town\"><\/select>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccNation\">Nationality <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccNation\" name=\"Nation\" required><\/select>\n          <div class=\"cc-err-msg\">Please select a nationality.<\/div>\n        <\/div>\n        <div class=\"cc-hidden\" id=\"ccAuslBlock\">\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccAusweis\">Residence permit<\/label>\n            <select id=\"ccAusweis\" name=\"AuslaenderAusweis\">\n              <option value=\"\">Select residence permit<\/option>\n              <option value=\"C\">Residence permit C (settlement)<\/option>\n              <option value=\"B\">Residence permit B (residence)<\/option>\n              <option value=\"G\">Residence permit G (cross-border commuter)<\/option>\n              <option value=\"L\">Residence permit L (short-term residence)<\/option>\n              <option value=\"F\">Residence permit F (diplomat \/ consulate)<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"cc-field\" id=\"ccInCHBlock\">\n            <label class=\"cc-lbl\">In Switzerland since <span class=\"cc-req\">*<\/span><\/label>\n            <div class=\"cc-row cc-row-keep\">\n              <select name=\"SeitWannInCHTag\"   id=\"ccInCHTag\"   aria-label=\"Day\"><\/select>\n              <select name=\"SeitWannInCHMonat\" id=\"ccInCHMonat\" aria-label=\"Month\"><\/select>\n              <select name=\"SeitWannInCH\"      id=\"ccInCHJahr\"  aria-label=\"Year\"><\/select>\n            <\/div>\n            <div class=\"cc-err-msg\">Please select day, month and year.<\/div>\n            <!-- v2.5.0: Aufenthaltsdauer -->\n            <div class=\"cc-note cc-note-stop cc-hidden\" id=\"ccChStop\">\n              <strong>No credit possible.<\/strong> You have not yet been in Switzerland for a full year. In this case, unfortunately no credit can be arranged. Please get in touch again once you have been resident in Switzerland for a year.\n            <\/div>\n            <div class=\"cc-note cc-note-info cc-hidden\" id=\"ccChHint\">\n              <strong>Please note:<\/strong> If you entered Switzerland less than 2 years ago, a loan is only possible in rare cases. Please complete the form in full and then call us so that we can analyse your case in detail.\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ============ STEP 3: KONTAKT + ZUSTIMMUNG ============ -->\n    <div class=\"cc-step\" data-step=\"2\">\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">3<\/span> Contact<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccTelNum\">Telephone <span class=\"cc-req\">*<\/span><\/label>\n          <div class=\"cc-row cc-row-keep\" style=\"gap:8px\">\n            <select id=\"ccTelCountry\" style=\"flex:0 0 128px\" aria-label=\"Country code\">\n              <option value=\"41\" data-ph=\"079 123 45 67\" selected>\ud83c\udde8\ud83c\udded +41<\/option>\n              <option value=\"423\" data-ph=\"660 12 34\">\ud83c\uddf1\ud83c\uddee +423<\/option>\n              <option value=\"49\" data-ph=\"0151 23456789\">\ud83c\udde9\ud83c\uddea +49<\/option>\n              <option value=\"33\" data-ph=\"06 12 34 56 78\">\ud83c\uddeb\ud83c\uddf7 +33<\/option>\n              <option value=\"39\" data-ph=\"312 345 6789\">\ud83c\uddee\ud83c\uddf9 +39<\/option>\n            <\/select>\n            <input type=\"tel\" id=\"ccTelNum\" inputmode=\"tel\" placeholder=\"079 123 45 67\" autocomplete=\"tel-national\" style=\"flex:1 1 auto\">\n          <\/div>\n          <input type=\"hidden\" name=\"phonenumber\" id=\"ccTel\">\n          <div class=\"cc-err-msg\">Please check the telephone number (the number of digits does not match).<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccEmail\">Email <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"email\" id=\"ccEmail\" name=\"email\" inputmode=\"email\" placeholder=\"name@example.ch\" autocomplete=\"email\" required>\n          <div class=\"cc-err-msg\">Please enter a valid email address.<\/div>\n        <\/div>\n        <div class=\"cc-field cc-comm-box\">\n          <label class=\"cc-lbl\">How may we contact you?<\/label>\n          <div class=\"cc-comm-row\">\n            <label class=\"cc-check\">\n              <input type=\"checkbox\" id=\"ccKontaktEmail\" name=\"kontakt_email\" checked>\n              <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              <span class=\"cc-check-txt\">Email<\/span>\n            <\/label>\n            <label class=\"cc-check\">\n              <input type=\"checkbox\" id=\"ccKontaktWhatsapp\" name=\"kontakt_whatsapp\" checked>\n              <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              <span class=\"cc-check-txt\">WhatsApp<\/span>\n            <\/label>\n          <\/div>\n          <div class=\"cc-comm-row\" style=\"margin-top:12px\">\n            <label class=\"cc-check\">\n              <input type=\"checkbox\" id=\"ccKontaktSms\" name=\"kontakt_sms\" checked>\n              <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              <span class=\"cc-check-txt\">SMS<\/span>\n            <\/label>\n            <label class=\"cc-check\">\n              <input type=\"checkbox\" id=\"ccKontaktTelefon\" name=\"kontakt_telefon\" checked>\n              <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              <span class=\"cc-check-txt\">Telephone<\/span>\n            <\/label>\n          <\/div>\n        <\/div>\n\n        <div class=\"cc-legal-sep\">Legal notices & consent<\/div>\n        <!-- Zustimmung (hier, damit ab jetzt gespeichert werden darf) -->\n        <div class=\"cc-field cc-consent\" id=\"ccConsentField\">\n          <label class=\"cc-check\">\n            <input type=\"checkbox\" id=\"ccRecht\" name=\"rechtliche_hinweise\" required>\n            <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n            <span class=\"cc-check-txt\">\n              I have <a href=\"https:\/\/www.bestfinance.ch\/legal-information-bf\/\" class=\"cc-legal-link\" data-l=\"legal\" rel=\"noopener\">legal notices<\/a>\n              read and accept the <a href=\"https:\/\/www.bestfinance.ch\/privacy-policy-bf\/\" class=\"cc-legal-link\" data-l=\"privacy\" rel=\"noopener\">use of electronic means of communication<\/a>. From this consent onwards, my details may be stored and used to process my enquiry and to make contact. <span class=\"cc-req\">*<\/span>\n            <\/span>\n          <\/label>\n          <div class=\"cc-err-msg\" style=\"margin-left:38px\">This consent is required in order to continue.<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-check\">\n            <input type=\"checkbox\" id=\"ccWerbung\" name=\"Werbung\">\n            <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n            <span class=\"cc-check-txt\">I would like to be informed about suitable offers (revocable at any time).<\/span>\n          <\/label>\n        <\/div>\n        <p class=\"cc-hint\">\ud83d\udd12 Your details are transmitted encrypted and treated confidentially.<\/p>\n      <\/div>\n    <\/div>\n\n    <!-- ============ STEP 4: WOHNEN & FAMILIE ============ -->\n    <div class=\"cc-step\" data-step=\"3\">\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">4<\/span> Housing & family<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccMietStatus\">Housing situation <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccMietStatus\" name=\"MietStatus\" required>\n            <option value=\"Miete\" selected>Rented<\/option>\n            <option value=\"Eigentum\">Home ownership<\/option>\n            <option value=\"bei Eltern\">With parents<\/option>\n            <option value=\"Untermiete\">Sublet<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select.<\/div>\n        <\/div>\n        <div class=\"cc-field\" id=\"ccMieteField\">\n          <label class=\"cc-lbl\" for=\"ccMiete\">Rent \/ month (CHF) <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"ccMiete\" name=\"Miete\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 1500\">\n          <div class=\"cc-err-msg\">Please enter the rent.<\/div>\n        <\/div>\n        <div class=\"cc-hidden\" id=\"ccHypoBlock\">\n          <div class=\"cc-row\">\n            <div class=\"cc-field\" style=\"flex:1 1 auto\">\n              <label class=\"cc-lbl\" for=\"ccHypothek\">Total mortgage (CHF)<span class=\"cc-info\" tabindex=\"0\" data-tip=\"Gemeint ist die Gesamth\u00f6he der aktuellen Hypothek.\">i<\/span><\/label>\n              <input type=\"text\" id=\"ccHypothek\" name=\"Hypothek\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 500\u2019000\">\n            <\/div>\n            <div class=\"cc-field\" style=\"flex:0 0 44%\">\n              <label class=\"cc-lbl\" for=\"ccHypoSeit\">Owner since<\/label>\n              <select id=\"ccHypoSeit\" name=\"Hypothek_seit\" aria-label=\"Year\"><\/select>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccZivil\">Marital status <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccZivil\" name=\"Zivilstand\" required>\n            <option value=\"1\" selected>Single<\/option>\n            <option value=\"2\">Married<\/option>\n            <option value=\"4\">Divorced<\/option>\n            <option value=\"3\">legally separated<\/option>\n            <option value=\"5\">Widow(er)<\/option>\n            <option value=\"6\">Registered partnership<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select.<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccKinder\">Number of dependent children<\/label>\n          <select id=\"ccKinder\" name=\"Kinder\">\n            <option value=\"0\">0<\/option><option value=\"1\">1<\/option><option value=\"2\">2<\/option>\n            <option value=\"3\">3<\/option><option value=\"4\">4<\/option>\n          <\/select>\n        <\/div>\n        <div id=\"ccKinderBlock\" class=\"cc-hidden\">\n          <div class=\"cc-field cc-kind cc-hidden\"><label class=\"cc-lbl\">Year of birth, child 1<\/label><select name=\"kind_1\"><\/select><\/div>\n          <div class=\"cc-field cc-kind cc-hidden\"><label class=\"cc-lbl\">Year of birth, child 2<\/label><select name=\"kind_2\"><\/select><\/div>\n          <div class=\"cc-field cc-kind cc-hidden\"><label class=\"cc-lbl\">Year of birth, child 3<\/label><select name=\"kind_3\"><\/select><\/div>\n          <div class=\"cc-field cc-kind cc-hidden\"><label class=\"cc-lbl\">Year of birth, child 4<\/label><select name=\"kind_4\"><\/select><\/div>\n        <\/div>\n        <!-- v2.5.0: nur bei Ledig UND mindestens einem Kind -->\n        <div class=\"cc-field cc-hidden cc-highlight\" id=\"ccWohnsitField\">\n          <label class=\"cc-lbl\" for=\"ccWohnsituation\">Do you live alone with your child \/ children, or with a partner? <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccWohnsituation\" name=\"Wohnsituation\">\n            <option value=\"\">- Please select -<\/option>\n            <option value=\"Alleinerziehend\">Single parent (single with child)<\/option>\n            <option value=\"Mit Partner\/in im Haushalt\">Living with a partner in the same household<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select.<\/div>\n        <\/div>\n        <div class=\"cc-field\" id=\"ccAlimenteField\">\n          <label class=\"cc-lbl\" for=\"ccAlimente\">Alimony you pay \/ month (CHF)<\/label>\n          <input type=\"text\" id=\"ccAlimente\" name=\"Alimente\" class=\"cc-num\" inputmode=\"numeric\" value=\"0\" placeholder=\"0\">\n          <p class=\"cc-hint\">Only payments that you make. Please enter any alimony you receive in the next step under \u00abDo you have other income?\u00bb.<\/p>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccKK\">\n            <span id=\"ccKKLbl1\">Health insurance premium \/ month (CHF) <span class=\"cc-req\">*<\/span><\/span>\n            <span id=\"ccKKLbl2\" class=\"cc-hidden\">Total health insurance premium, household \/ month (CHF) <span class=\"cc-req\">*<\/span><\/span>\n          <\/label>\n          <input type=\"text\" id=\"ccKK\" name=\"Krankenkasse\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 350\">\n          <div class=\"cc-err-msg\">Please enter the health insurance premium.<\/div>\n          <p class=\"cc-hint\" id=\"ccKKHint\">Your monthly premium.<\/p>\n          <!-- v2.5.0: bei Verheiratet \/ Kindern hervorgehoben statt kleiner Fliesstext -->\n          <div class=\"cc-note cc-note-info cc-hidden\" id=\"ccKKTotalNote\">\n            <strong>Important \u2013 state the total amount:<\/strong> Please enter the premium per month for <strong>all family members living in the same household<\/strong> (you, your partner and children). A value that is too low distorts the budget calculation.\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ============ STEP 5: EINKOMMEN & BESCH\u00c4FTIGUNG ============ -->\n    <div class=\"cc-step\" data-step=\"4\">\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">5<\/span> Income and employment<\/p>\n        <p class=\"cc-sub\">Applicant 1<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccAnstVerh\">Employment status <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccAnstVerh\" name=\"AnstellungsVerhaeltniss\" required>\n            <option value=\"Angestellt unbefristet\" selected>Employed, permanent<\/option>\n            <option value=\"Angestellt in Probezeit\">Employed, on probation<\/option>\n            <option value=\"Tempor\u00e4r angestellt\">Temporary employment<\/option>\n            <option value=\"Selbst\u00e4ndig (Einzelfirma)\">Self-employed (sole proprietorship)<\/option>\n            <option value=\"Selbst\u00e4ndig (AG oder GmbH)\">Self-employed (Ltd or LLC)<\/option>\n            <option value=\"Rentner (IV \/ AHV)\">Pensioner (IV \/ AHV)<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select.<\/div>\n          <!-- v2.5.0: Voraussetzungen je Anstellungsart -->\n          <div class=\"cc-note cc-note-info cc-hidden\" id=\"ccAnstTemp\">\n            <strong>Info:<\/strong> The requirement is at least 6 months with the same temporary employment agency as well as a permanent employment contract.\n          <\/div>\n          <div class=\"cc-note cc-note-info cc-hidden\" id=\"ccAnstEinzel\">\n            <strong>Info:<\/strong> The requirement is at least 2 years of self-employment with a definitive tax assessment.\n          <\/div>\n          <div class=\"cc-note cc-note-info cc-hidden\" id=\"ccAnstGmbh\">\n            <strong>Info:<\/strong> Please have ready the last 3 payslips with credit advice that document your income.\n          <\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\">Employed since <span class=\"cc-req\">*<\/span><\/label>\n          <div class=\"cc-row cc-row-keep\">\n            <select name=\"SeitwannAGMonat\" id=\"ccAGMonat\" aria-label=\"Month\"><\/select>\n            <select name=\"SeitwannAGJahr\" id=\"ccAGJahr\" aria-label=\"Year\"><\/select>\n          <\/div>\n          <div class=\"cc-err-msg\">Please provide this.<\/div>\n          <!-- v2.5.0: weniger als 3 Monate beim aktuellen Arbeitgeber -->\n          <div class=\"cc-note cc-note-warn cc-hidden\" id=\"ccAGProbe\">\n            <strong>Note:<\/strong> With less than 3 months with your current employer, credit is only possible if the probationary period has already ended.\n          <\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccTransport\">Means of transport to workplace <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccTransport\" name=\"Transport\" required>\n            <option value=\"\">- Select means of transport to workplace -<\/option>\n            <option value=\"Zu Fuss\">On foot<\/option>\n            <option value=\"Velo\">Bicycle<\/option>\n            <option value=\"Motorrad\">Motorcycle<\/option>\n            <option value=\"\u00d6ffentlicher Verkehr\">Public transport<\/option>\n            <option value=\"Auto\">Car<\/option>\n            <option value=\"Gesch\u00e4ftsauto\">Company car<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select a means of transport.<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccEinkommen\">Net income \/ month (CHF) <span class=\"cc-req\">*<\/span><\/label>\n          <div class=\"cc-inline\">\n            <input type=\"text\" id=\"ccEinkommen\" name=\"Einkommen\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"min. 3&#039;000\">\n            <label class=\"cc-check\">\n              <input type=\"checkbox\" id=\"ccM13\" name=\"Monatslohn13\">\n              <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              <span class=\"cc-check-txt\">13th month salary<\/span>\n            <\/label>\n          <\/div>\n          <div class=\"cc-err-msg\">Please enter your net income (min. CHF 3'000).<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccWeitEink1\">Do you have other income?<\/label>\n          <select id=\"ccWeitEink1\" class=\"cc-weitEink\" data-target=\"ccWeitEink1Block\">\n            <option value=\"Nein\">No<\/option><option value=\"Ja\">Yes<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"cc-hidden\" id=\"ccWeitEink1Block\">\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccEinkArt2As1\">Description of other income<\/label>\n            <select id=\"ccEinkArt2As1\" name=\"einkommen_art2_as1\">\n              <option value=\"\">Please select<\/option>\n              <option value=\"Nebenerwerb\">Secondary employment<\/option>\n              <option value=\"Bonuszahlungen\">Bonus payments<\/option>\n              <option value=\"Alimente\">Alimony<\/option>\n              <option value=\"Mietzahlungen\">Rental payments<\/option>\n              <option value=\"Trinkgeld\">Tips<\/option>\n              <option value=\"sonstige Zahlungen\">other payments<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccEink2As1\">Net income \/ month (CHF)<\/label>\n            <input type=\"text\" id=\"ccEink2As1\" name=\"einkommen2_as1\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 800\">\n          <\/div>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccWeitEink1b\">Other income?<\/label>\n            <select id=\"ccWeitEink1b\" class=\"cc-weitEink\" data-target=\"ccWeitEink1bBlock\">\n              <option value=\"Nein\">No<\/option><option value=\"Ja\">Yes<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"cc-hidden\" id=\"ccWeitEink1bBlock\">\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccEinkArt3As1\">Description of other income<\/label>\n              <select id=\"ccEinkArt3As1\" name=\"einkommen_art3_as1\">\n                <option value=\"\">Please select<\/option>\n                <option value=\"Nebenerwerb\">Secondary employment<\/option>\n                <option value=\"Bonuszahlungen\">Bonus payments<\/option>\n                <option value=\"Alimente\">Alimony<\/option>\n                <option value=\"Mietzahlungen\">Rental payments<\/option>\n                <option value=\"Trinkgeld\">Tips<\/option>\n                <option value=\"sonstige Zahlungen\">other payments<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccEink3As1\">Net income \/ month (CHF)<\/label>\n              <input type=\"text\" id=\"ccEink3As1\" name=\"einkommen3_as1\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 500\">\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"cc-field cc-hidden cc-highlight\" id=\"ccPartnerIncomeQ\">\n          <label class=\"cc-lbl\" for=\"ccPartnerHatEink\">Does your spouse\/partner have an income?<\/label>\n          <select id=\"ccPartnerHatEink\" name=\"partner_hat_einkommen\">\n            <option value=\"Nein\">No<\/option><option value=\"Ja\">Yes<\/option>\n          <\/select>\n          <p class=\"cc-hint\">If your spouse or partner also has an income, the likelihood of credit approval and favourable terms may increase.<\/p>\n        <\/div>\n        <!-- v2.5.0: Partner\/in ohne Einkommen -> Situation erfassen -->\n        <div class=\"cc-field cc-hidden cc-highlight\" id=\"ccPartnerSitField\">\n          <label class=\"cc-lbl\" for=\"ccPartnerSituation\">What applies to your partner? <span class=\"cc-req\">*<\/span><\/label>\n          <select id=\"ccPartnerSituation\" name=\"PartnerSituation\">\n            <option value=\"\">- Please select -<\/option>\n            <option value=\"Hausfrau\/Hausmann\">Homemaker<\/option>\n            <option value=\"Arbeitslos\">Unemployed<\/option>\n            <option value=\"nicht arbeitst\u00e4tig\">not working<\/option>\n            <option value=\"Wohnhaft im Ausland\">Resident abroad<\/option>\n          <\/select>\n          <div class=\"cc-err-msg\">Please select.<\/div>\n          <div class=\"cc-field cc-hidden\" id=\"ccPartnerAuslandField\" style=\"margin-top:14px\">\n            <label class=\"cc-lbl\" for=\"ccAlimenteInCHF\">Support payment abroad \/ month (CHF) <span class=\"cc-req\">*<\/span><\/label>\n            <input type=\"text\" id=\"ccAlimenteInCHF\" name=\"AlimenteInCHF\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 500\">\n            <p class=\"cc-hint\">Amount you send monthly to your partner or your family abroad. If no payment is made: enter 0.<\/p>\n            <div class=\"cc-err-msg\">Please enter an amount (0 if no payment).<\/div>\n          <\/div>\n        <\/div>\n        <div id=\"ccPartnerBlock\" class=\"cc-hidden cc-panel2\">\n          <p class=\"cc-sub cc-sub2\">Applicant 2<\/p>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccPartnerVerh\">Employment status<\/label>\n            <select id=\"ccPartnerVerh\" name=\"PartnerAnstellungsVerhaeltniss\">\n              <option value=\"Angestellt unbefristet\" selected>Employed, permanent<\/option>\n              <option value=\"Angestellt in Probezeit\">Employed, on probation<\/option>\n              <option value=\"Tempor\u00e4r angestellt\">Temporary employment<\/option>\n              <option value=\"Selbst\u00e4ndig (Einzelfirma)\">Self-employed (sole proprietorship)<\/option>\n              <option value=\"Selbst\u00e4ndig (AG oder GmbH)\">Self-employed (Ltd or LLC)<\/option>\n              <option value=\"Rentner (IV \/ AHV)\">Pensioner (IV \/ AHV)<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\">Employed since<\/label>\n            <div class=\"cc-row cc-row-keep\">\n              <select name=\"PartnerSeitwannAngestelltMonat\" id=\"ccPartnerMonat\" aria-label=\"Month\"><\/select>\n              <select name=\"PartnerSeitwannAngestelltCHJahr\" id=\"ccPartnerJahr\" aria-label=\"Year\"><\/select>\n            <\/div>\n          <\/div>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccPartnerEinkommen\">Net income \/ month (CHF)<\/label>\n            <div class=\"cc-inline\">\n              <input type=\"text\" id=\"ccPartnerEinkommen\" name=\"PartnerEinkommen\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 5000\">\n              <label class=\"cc-check\">\n                <input type=\"checkbox\" id=\"ccPM13\" name=\"PartnerMonatslohn13\">\n                <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n                <span class=\"cc-check-txt\">13th month salary<\/span>\n              <\/label>\n            <\/div>\n          <\/div>\n          <div class=\"cc-field\">\n            <label class=\"cc-lbl\" for=\"ccWeitEink2\">Do you have other income?<\/label>\n            <select id=\"ccWeitEink2\" class=\"cc-weitEink\" data-target=\"ccWeitEink2Block\">\n              <option value=\"Nein\">No<\/option><option value=\"Ja\">Yes<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"cc-hidden\" id=\"ccWeitEink2Block\">\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccEinkArt2As2\">Description of other income<\/label>\n              <select id=\"ccEinkArt2As2\" name=\"einkommen_art2_as2\">\n                <option value=\"\">Please select<\/option>\n                <option value=\"Nebenerwerb\">Secondary employment<\/option>\n                <option value=\"Bonuszahlungen\">Bonus payments<\/option>\n                <option value=\"Alimente\">Alimony<\/option>\n                <option value=\"Mietzahlungen\">Rental payments<\/option>\n                <option value=\"Trinkgeld\">Tips<\/option>\n                <option value=\"sonstige Zahlungen\">other payments<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccEink2As2\">Net income \/ month (CHF)<\/label>\n              <input type=\"text\" id=\"ccEink2As2\" name=\"einkommen2_as2\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 800\">\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccWeitEink2b\">Other income?<\/label>\n              <select id=\"ccWeitEink2b\" class=\"cc-weitEink\" data-target=\"ccWeitEink2bBlock\">\n                <option value=\"Nein\">No<\/option><option value=\"Ja\">Yes<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"cc-hidden\" id=\"ccWeitEink2bBlock\">\n              <div class=\"cc-field\">\n                <label class=\"cc-lbl\" for=\"ccEinkArt3As2\">Description of other income<\/label>\n                <select id=\"ccEinkArt3As2\" name=\"einkommen_art3_as2\">\n                  <option value=\"\">Please select<\/option>\n                  <option value=\"Nebenerwerb\">Secondary employment<\/option>\n                  <option value=\"Bonuszahlungen\">Bonus payments<\/option>\n                  <option value=\"Alimente\">Alimony<\/option>\n                  <option value=\"Mietzahlungen\">Rental payments<\/option>\n                  <option value=\"Trinkgeld\">Tips<\/option>\n                  <option value=\"sonstige Zahlungen\">other payments<\/option>\n                <\/select>\n              <\/div>\n              <div class=\"cc-field\">\n                <label class=\"cc-lbl\" for=\"ccEink3As2\">Net income \/ month (CHF)<\/label>\n                <input type=\"text\" id=\"ccEink3As2\" name=\"einkommen3_as2\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 500\">\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">6<\/span> Other obligations<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccKredite\">Do you have other current loans or obligations (leasing, credit card, personal loan)?<\/label>\n          <select id=\"ccKredite\" name=\"Kredite\">\n            <option value=\"Nein\" selected>No<\/option>\n            <option value=\"Ja\">Yes<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"cc-hidden\" id=\"ccBankBlock\">\n          <p class=\"cc-hint\" style=\"margin:2px 0 10px\">Please enter your current obligations with the bank \/ institution and the outstanding balance. An approximate figure is sufficient.<\/p>\n          <div class=\"cc-bankrow\">\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccBank1\">Bank \/ institution 1<\/label>\n              <input type=\"text\" id=\"ccBank1\" name=\"Bank1\" placeholder=\"e.g. Bank XY \/ leasing company\">\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccSaldo1\">Outstanding balance approx. (CHF)<\/label>\n              <input type=\"text\" id=\"ccSaldo1\" name=\"Saldo1\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 8000\">\n            <\/div>\n          <\/div>\n          <div class=\"cc-bankrow cc-hidden\">\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccBank2\">Bank \/ institution 2<\/label>\n              <input type=\"text\" id=\"ccBank2\" name=\"Bank2\" placeholder=\"e.g. Bank XY \/ leasing company\">\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccSaldo2\">Outstanding balance approx. (CHF)<\/label>\n              <input type=\"text\" id=\"ccSaldo2\" name=\"Saldo2\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 5000\">\n            <\/div>\n          <\/div>\n          <div class=\"cc-bankrow cc-hidden\">\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccBank3\">Bank \/ institution 3<\/label>\n              <input type=\"text\" id=\"ccBank3\" name=\"Bank3\" placeholder=\"e.g. Bank XY \/ leasing company\">\n            <\/div>\n            <div class=\"cc-field\">\n              <label class=\"cc-lbl\" for=\"ccSaldo3\">Outstanding balance approx. (CHF)<\/label>\n              <input type=\"text\" id=\"ccSaldo3\" name=\"Saldo3\" class=\"cc-num\" inputmode=\"numeric\" placeholder=\"e.g. 3000\">\n            <\/div>\n          <\/div>\n          <button type=\"button\" class=\"cc-addbtn\" id=\"ccAddBank\">+ Add another obligation<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">7<\/span> Debt-collection proceedings<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-check\">\n            <input type=\"checkbox\" id=\"ccBetr\" name=\"Betreibungen\">\n            <span class=\"cc-box\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n            <span class=\"cc-check-txt\">Have you had debt-collection proceedings or certificates of loss in the past?<\/span>\n          <\/label>\n        <\/div>\n        <div class=\"cc-warn cc-hidden\" id=\"ccBetrMsg\">\n          <strong>Important:<\/strong> Before submitting your application, please ensure that any open debt-collection proceedings are paid and preferably deleted. With open debt-collection proceedings, your request will be rejected.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ============ STEP 6: KURZ\u00dcBERSICHT, MITTEILUNG & ABSENDEN ============ -->\n    <div class=\"cc-step\" data-step=\"5\">\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">8<\/span> Instalment insurance<\/p>\n        <div class=\"cc-field\" style=\"margin-top:6px\">\n          <label class=\"cc-lbl\">\n            Instalment insurance in the event of illness \/ accident \/ unemployment?\n            <button type=\"button\" class=\"cc-info-btn\" id=\"ccVersInfoBtn\" aria-expanded=\"false\" aria-controls=\"ccVersInfo\" aria-label=\"More information on instalment insurance\">i<\/button>\n          <\/label>\n          <div class=\"cc-info-box\" id=\"ccVersInfo\" hidden>\n            This provides additional protection for your instalment payments in the event of incapacity to work as well as unemployment through no fault of your own. Credit protection is optional.\n          <\/div>\n          <div class=\"cc-seg cc-seg-stack\" id=\"ccVersSeg\">\n            <button type=\"button\" data-val=\"1\" aria-pressed=\"false\">Yes, I would like to be protected<\/button>\n            <button type=\"button\" data-val=\"0\" aria-pressed=\"true\">No, I will bear this risk myself<\/button>\n          <\/div>\n          <input type=\"hidden\" name=\"Ratenversicherung\" id=\"ccVers\" value=\"0\">\n          <div class=\"cc-vers-opts cc-hidden\" id=\"ccVersOptions\">\n            <p class=\"cc-hint\" style=\"margin:2px 0 10px;font-weight:600;color:var(--cc-ink)\">Choose your protection:<\/p>\n            <div class=\"cc-vers-card\" data-prod=\"IncomeProtect Basic \u2013 CHF 66\/Mt.\" aria-selected=\"false\" tabindex=\"0\">\n              <span class=\"cc-vers-check\">\u2713 Selected<\/span>\n              <div class=\"cc-vers-head cc-vers-basic\">\n                <span class=\"cc-vers-badge\">Popular<\/span>\n                <div class=\"cc-vers-name\">IncomeProtect Basic<\/div>\n                <div class=\"cc-vers-sub\">CHF 2.20 \/ day \u00b7 CHF 66.\u2013 \/ month<\/div>\n              <\/div>\n              <div class=\"cc-vers-body\">\n                <div class=\"cc-vers-price\"><b>66<\/b><small>.\u2013\/month<\/small><\/div>\n                <ul class=\"cc-vers-list\">\n                  <li>Unemployment: CHF 1'000.\u2013 \/ month<\/li>\n                  <li>Incapacity to work: CHF 1'000.\u2013 \/ month<\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"cc-vers-foot\">No health check \u00b7 regardless of age &amp; occupation \u00b7 cancellable at any time<\/div>\n            <\/div>\n            <div class=\"cc-vers-card\" data-prod=\"IncomeProtect Premium \u2013 CHF 99\/Mt.\" aria-selected=\"false\" tabindex=\"0\">\n              <span class=\"cc-vers-check\">\u2713 Selected<\/span>\n              <div class=\"cc-vers-head cc-vers-premium\">\n                <span class=\"cc-vers-badge\">Premium<\/span>\n                <div class=\"cc-vers-name\">IncomeProtect Premium<\/div>\n                <div class=\"cc-vers-sub\">CHF 3.30 \/ day \u00b7 CHF 99.\u2013 \/ month<\/div>\n              <\/div>\n              <div class=\"cc-vers-body\">\n                <div class=\"cc-vers-price\"><b>99<\/b><small>.\u2013\/month<\/small><\/div>\n                <ul class=\"cc-vers-list\">\n                  <li>Unemployment: CHF 1'800.\u2013 \/ month<\/li>\n                  <li>Incapacity to work: CHF 1'800.\u2013 \/ month<\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"cc-vers-foot\">No health check \u00b7 regardless of age &amp; occupation \u00b7 cancellable at any time<\/div>\n            <\/div>\n            <input type=\"hidden\" name=\"Ratenversicherung_Produkt\" id=\"ccVersProd\" value=\"\">\n            <div class=\"cc-err-msg\" id=\"ccVersErr\">Please choose a protection option.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- v2.5.1: Die Kurz\u00fcbersicht ist bewusst NICHT sichtbar. Die Hinweise\n           sind interne Bewertungsvermerke f\u00fcr die Kreditberatung und werden\n           still im versteckten Feld cc_hinweise \u00fcbermittelt (siehe\n           ccBuildSummary weiter unten). -->\n\n      <div class=\"cc-card\">\n        <p class=\"cc-sec-title\"><span class=\"num\">9<\/span> Message & submit<\/p>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccMsg\">Your message (optional)<\/label>\n          <textarea id=\"ccMsg\" name=\"question\" placeholder=\"Your message to us \u2026\"><\/textarea>\n        <\/div>\n        <p class=\"cc-hint\">By submitting, you complete your credit application. We will review your details and get back to you promptly.<\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Honeypot -->\n    <div class=\"cc-hp\" aria-hidden=\"true\">\n      <label>Please leave this field empty\n        <input type=\"text\" name=\"cc_website\" tabindex=\"-1\" autocomplete=\"off\">\n      <\/label>\n    <\/div>\n    <input type=\"hidden\" name=\"cc_ts\"   id=\"ccTs\" value=\"\">\n    <input type=\"hidden\" name=\"cc_lang\" id=\"ccLang\" value=\"\">\n    <input type=\"hidden\" name=\"lead_uid\" id=\"ccLeadUid\" value=\"\">\n    <input type=\"hidden\" name=\"cc_form\" value=\"mittel\">\n    <input type=\"hidden\" name=\"cc_hinweise\" id=\"ccHinweise\" value=\"\">\n    <input type=\"hidden\" name=\"w1\" id=\"ccW1\" value=\"\">\n    <input type=\"hidden\" name=\"fo\" id=\"ccFo\" value=\"\">\n    <input type=\"hidden\" name=\"Filiale\" id=\"ccFiliale\" value=\"AA\">\n\n    <!-- Navigation -->\n    <div class=\"cc-nav\">\n      <button type=\"button\" class=\"cc-btn cc-btn-back\" id=\"ccBack\" style=\"visibility:hidden\">Back<\/button>\n      <button type=\"button\" class=\"cc-btn cc-btn-next\" id=\"ccNext\">Next<\/button>\n      <button type=\"submit\" class=\"cc-submit cc-hidden\" id=\"ccSubmit\">\n        <span class=\"cc-spin\" aria-hidden=\"true\"><\/span>\n        <span class=\"cc-submit-label\">Submit credit application<\/span>\n      <\/button>\n    <\/div>\n\n    <div class=\"cc-form-msg\" id=\"ccFormMsg\" role=\"alert\"><\/div>\n    <p class=\"cc-hint\" style=\"text-align:center;margin-top:14px\">\ud83d\udd12 SSL-encrypted transmission \u00b7 Your data is treated confidentially.<\/p>\n  <\/form>\n\n  <div class=\"cc-modal\" id=\"ccModal\" aria-hidden=\"true\">\n    <div class=\"cc-modal-box\">\n      <button type=\"button\" class=\"cc-modal-close\" id=\"ccModalClose\" aria-label=\"Close\">&times;<\/button>\n      <iframe class=\"cc-modal-iframe\" id=\"ccModalFrame\" src=\"about:blank\" title=\"Legal information\"><\/iframe>\n    <\/div>\n  <\/div>\n\n  <script>\n  (function () {\n    \"use strict\";\n\n    \/\/ CONFIG kommt aus dem PHP-Kopf dieses Snippets (window.BF_KREDIT_CFG).\n    \/\/ Die Werte unten sind nur der Notfall-Fallback, falls das Snippet den\n    \/\/ Konfigurationsblock nicht ausgeliefert hat. Zum Aendern IMMER den\n    \/\/ PHP-Block oben im Snippet verwenden, nicht diese Zeilen.\n    var CONFIG = (function () {\n      var fallback = {\n        ENDPOINT: \"\/wp-json\/bestfinance\/v1\/submit\",\n        PLZ_ENDPOINT: \"\/wp-json\/bestfinance\/v1\/gemeinden\",\n        THANKYOU_URLS: {\n          de: \"https:\/\/www.bestfinance.ch\/danke\/\",\n          fr: \"https:\/\/www.bestfinance.ch\/fr\/merci-bcp\/\",\n          it: \"https:\/\/www.bestfinance.ch\/it\/grazie-mille\/\",\n          pt: \"https:\/\/www.bestfinance.ch\/pt\/muito-obrigado\/\",\n          es: \"https:\/\/www.bestfinance.ch\/es\/muchas-gracias\/\",\n          en: \"https:\/\/www.bestfinance.ch\/en\/thankyou\/\"\n        },\n        THANKYOU_URL: \"https:\/\/www.bestfinance.ch\/danke\/\",\n        LEGAL_URL: \"https:\/\/www.bestfinance.ch\/legal-information-bf\/\",\n        PRIVACY_URL: \"https:\/\/www.bestfinance.ch\/privacy-policy-bf\/\",\n        MIN_AGE: 18,\n        MAX_AGE: 68,\n        MAX_AGE_END: 65,\n        CH_STOP_MONTHS: 12,\n        CH_HINT_MONTHS: 24,\n        PROBEZEIT_MONTHS: 3,\n        SCORING_MONTHS: 12,\n        MIN_INCOME: 3000,\n        MIN_INCOME_HINT: 4000\n      };\n      var aus_php = window.BF_KREDIT_CFG || {};\n      for (var k in fallback) {\n        if (Object.prototype.hasOwnProperty.call(fallback, k) && !(k in aus_php)) { aus_php[k] = fallback[k]; }\n      }\n      return aus_php;\n    })();\n\n    \/\/ ---- v3.1.0: eigenes Formular bestimmen ----\n    \/\/ Auf einer Seite kann ein zweites Formular mit demselben cc-Praefix stehen.\n    \/\/ Deshalb wird ab hier NUR noch innerhalb des eigenen .cc-root gesucht.\n    \/\/ document.currentScript zeigt waehrend der Ausfuehrung auf genau dieses\n    \/\/ <script>; darueber finden wir zuverlaessig den zugehoerigen Container.\n    var ROOT = (function () {\n      var sc = document.currentScript;\n      if (sc && sc.closest) { var r = sc.closest(\".cc-root\"); if (r) { return r; } }\n      var alle = document.querySelectorAll(\".cc-root\");\n      return alle.length ? alle[alle.length - 1] : null;\n    })();\n    if (!ROOT) return;\n\n    var form = ROOT.querySelector(\"#ccForm\") || ROOT.querySelector(\"form\");\n    if (!form) return;\n\n    \/\/ Suche per ID, aber ausschliesslich im eigenen Container. Damit greift das\n    \/\/ Skript auch dann richtig zu, wenn dieselbe ID auf der Seite doppelt\n    \/\/ vorkommt (getElementById wuerde immer das erste Element liefern).\n    function $(id) { return ROOT.querySelector('[id=\"' + id + '\"]'); }\n    function nf(n) { return n.toLocaleString(\"de-CH\").replace(\/,\/g, \"\u2019\"); }\n    function toggle(el, show) { if (el) el.classList.toggle(\"cc-hidden\", !show); }\n\n    \/\/ ---- Hilfsfunktionen v2.5.0 ----\n    function isHidden(el) { return !el || el.classList.contains(\"cc-hidden\"); }\n    function ccInt(v) { return parseInt(String(v == null ? \"\" : v).replace(\/\\D\/g, \"\"), 10) || 0; }\n    \/\/ Vergangene Monate seit Jahr\/Monat (Tag optional). null = unvollst\u00e4ndig.\n    function ccMonthsSince(y, m, d) {\n      y = parseInt(y, 10); m = parseInt(m, 10);\n      if (!y || !m) return null;\n      var now = new Date();\n      var mo = (now.getFullYear() - y) * 12 + (now.getMonth() + 1 - m);\n      d = parseInt(d, 10);\n      if (d && now.getDate() < d) mo--;\n      return mo;\n    }\n    \/\/ Fehlermeldung mit mehreren Varianten (<span data-e=\"...\">)\n    function setErrorVariant(field, key) {\n      if (!field) return;\n      var box = field.querySelector(\".cc-err-msg\");\n      if (box) {\n        box.querySelectorAll(\"[data-e]\").forEach(function (s) {\n          s.classList.toggle(\"cc-hidden\", s.getAttribute(\"data-e\") !== key);\n        });\n      }\n      field.classList.add(\"cc-invalid\");\n    }\n\n    $(\"ccTs\").value = String(Date.now());\n\n    \/\/ ---- Sprache (Pfad \/fr\/ \u2026 hat Vorrang, sonst <html lang>) ----\n    var CC_LANG = (function () {\n      var known = [\"de\", \"fr\", \"it\", \"pt\", \"es\", \"en\"];\n      \/\/ v3.6.0: serverseitig aufgel\u00f6ste Sprache hat Vorrang (synchron zur Text\u00fcbersetzung).\n      var srv = (CONFIG && CONFIG.LANG) ? String(CONFIG.LANG).slice(0, 2).toLowerCase() : \"\";\n      if (known.indexOf(srv) >= 0) return srv;\n      var seg = (window.location.pathname || \"\").split(\"\/\").filter(Boolean)[0] || \"\";\n      seg = seg.slice(0, 2).toLowerCase();\n      if (known.indexOf(seg) >= 0) return seg;\n      var hl = (document.documentElement.getAttribute(\"lang\") || navigator.language || \"de\").slice(0, 2).toLowerCase();\n      return known.indexOf(hl) >= 0 ? hl : \"de\";\n    })();\n    $(\"ccLang\").value = (document.documentElement.getAttribute(\"lang\") || navigator.language || CC_LANG).trim();\n\n    \/\/ ---- \u00dcbersetzungen f\u00fcr dynamische JS-Texte (Sende-Status, Fehlermeldung) ----\n    var CC_I18N = {\n      sending: { de: \"Wird gesendet \u2026\", fr: \"Envoi en cours \u2026\", it: \"Invio in corso \u2026\", pt: \"A enviar \u2026\", es: \"Enviando \u2026\", en: \"Sending \u2026\" },\n      error:   { de: \"Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut oder rufen Sie uns an.\",\n                 fr: \"Une erreur s'est produite. Veuillez r\u00e9essayer ou nous appeler.\",\n                 it: \"Si \u00e8 verificato un errore. La preghiamo di riprovare o di chiamarci.\",\n                 pt: \"Ocorreu um erro. Tente novamente ou ligue para n\u00f3s.\",\n                 es: \"Se ha producido un error. Int\u00e9ntelo de nuevo o ll\u00e1menos.\",\n                 en: \"An error occurred. Please try again or call us.\" },\n      submitFailed: { de: \"\u00dcbermittlung fehlgeschlagen.\", fr: \"\u00c9chec de la transmission.\", it: \"Trasmissione non riuscita.\", pt: \"Falha na transmiss\u00e3o.\", es: \"Error en el env\u00edo.\", en: \"Submission failed.\" },\n      choose:  { de: \"Bitte w\u00e4hlen\", fr: \"Veuillez choisir\", it: \"Selezionare\", pt: \"Selecione\", es: \"Seleccione\", en: \"Please select\" },\n      month:   { de: \"Monat\", fr: \"Mois\", it: \"Mese\", pt: \"M\u00eas\", es: \"Mes\", en: \"Month\" },\n      year:    { de: \"Jahr\", fr: \"Ann\u00e9e\", it: \"Anno\", pt: \"Ano\", es: \"A\u00f1o\", en: \"Year\" },\n      day:     { de: \"Tag\", fr: \"Jour\", it: \"Giorno\", pt: \"Dia\", es: \"D\u00eda\", en: \"Day\" },\n\n      \/\/ ---- Auswahl-Zusammenfassung (v2.2.0) ----\n      pickAmount:   { de: \"Ihr Kreditbetrag\", fr: \"Votre montant\", it: \"Il suo importo\", pt: \"O seu montante\", es: \"Su importe\", en: \"Your loan amount\" },\n      pickDuration: { de: \"Ihre Laufzeit\", fr: \"Votre dur\u00e9e\", it: \"La sua durata\", pt: \"O seu prazo\", es: \"Su plazo\", en: \"Your term\" },\n      pickMonths:   { de: \"Monate\", fr: \"mois\", it: \"mesi\", pt: \"meses\", es: \"meses\", en: \"months\" },\n      pickRateLbl:  { de: \"Monatliche Rate ab\", fr: \"Mensualit\u00e9 d\u00e8s\", it: \"Rata mensile da\", pt: \"Presta\u00e7\u00e3o mensal a partir de\", es: \"Cuota mensual desde\", en: \"Monthly instalment from\" },\n      pickSide1:    { de: \"zum Bestzins\", fr: \"au meilleur taux\", it: \"al tasso migliore\", pt: \"\u00e0 melhor taxa\", es: \"al mejor tipo\", en: \"at the best rate\" },\n      pickSide2:    { de: \"bis\", fr: \"jusqu'\u00e0\", it: \"fino a\", pt: \"at\u00e9\", es: \"hasta\", en: \"up to\" },\n      pickSide3:    { de: \"bei\", fr: \"\u00e0\", it: \"al\", pt: \"a\", es: \"al\", en: \"at\" },\n      pickNote:     { de: \"Unverbindlicher Richtwert. Der effektive Jahreszins richtet sich nach Ihrer Bonit\u00e4t\",\n                      fr: \"Valeur indicative sans engagement. Le taux annuel effectif d\u00e9pend de votre solvabilit\u00e9\",\n                      it: \"Valore indicativo non vincolante. Il tasso annuo effettivo dipende dalla sua solvibilit\u00e0\",\n                      pt: \"Valor indicativo sem compromisso. A taxa anual efetiva depende da sua solv\u00eancia\",\n                      es: \"Valor orientativo sin compromiso. El tipo anual efectivo depende de su solvencia\",\n                      en: \"Non-binding guide value. The effective annual rate depends on your creditworthiness\" },\n      pickChange:   { de: \"Betrag oder Laufzeit \u00e4ndern\", fr: \"Modifier le montant ou la dur\u00e9e\", it: \"Modificare importo o durata\", pt: \"Alterar montante ou prazo\", es: \"Modificar importe o plazo\", en: \"Change amount or term\" }\n    };\n    function ccT(key) { var m = CC_I18N[key] || {}; return m[CC_LANG] || m.de; }\n    function ccSendingLabel(labelEl) { if (!labelEl) return; if (!labelEl.getAttribute(\"data-orig\")) labelEl.setAttribute(\"data-orig\", labelEl.textContent); labelEl.textContent = ccT(\"sending\"); }\n    function ccResetLabel(labelEl) { if (!labelEl) return; labelEl.textContent = labelEl.getAttribute(\"data-orig\") || labelEl.textContent; }\n\n    \/\/ ---- lead_uid ----\n    function uuid() {\n      try { if (window.crypto && crypto.randomUUID) return crypto.randomUUID(); } catch (e) {}\n      return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\/[xy]\/g, function (c) {\n        var r;\n        if (window.crypto && crypto.getRandomValues) { r = crypto.getRandomValues(new Uint8Array(1))[0] % 16; }\n        else { r = Math.floor(Math.random() * 16); }\n        var v = c === \"x\" ? r : (r & 0x3 | 0x8);\n        return v.toString(16);\n      });\n    }\n    \/\/ v3.3.0: Wiederaufnahme aus der Erinnerungsmail \u2013 eine g\u00fcltige lead_uid aus\n    \/\/ der URL \u00fcbernehmen (setzt den bestehenden Datensatz fort statt einen neuen\n    \/\/ anzulegen). Sonst wie bisher eine neue UUID erzeugen.\n    var LEAD_UID = (function () {\n      try {\n        var u = new URLSearchParams(window.location.search).get(\"lead_uid\");\n        if (u && \/^[A-Za-z0-9_\\-]{8,64}$\/.test(u)) { return u; }\n      } catch (e) {}\n      return uuid();\n    })();\n    $(\"ccLeadUid\").value = LEAD_UID;\n\n    \/\/ ---- Kampagnen-Tracking w1 ----\n    function ccGetCookie(n) { var m = document.cookie.match(\"(?:^|; )\" + n + \"=([^;]*)\"); return m ? decodeURIComponent(m[1]) : \"\"; }\n    function ccSetCookie(n, v, days) { var d = new Date(); d.setTime(d.getTime() + days * 864e5); document.cookie = n + \"=\" + encodeURIComponent(v) + \";expires=\" + d.toUTCString() + \";path=\/;SameSite=Lax\"; }\n    (function () {\n      var urlW1 = new URLSearchParams(location.search).get(\"w1\");\n      if (urlW1) ccSetCookie(\"cc_w1\", urlW1, 30);\n      var w1 = urlW1 || ccGetCookie(\"cc_w1\");\n      \/\/ Regel: kein w1 \u00fcbermittelt -> \"direct\"\n      if ($(\"ccW1\")) $(\"ccW1\").value = w1 || \"direct\";\n    })();\n\n    \/\/ ---- FilialeOrt (fo) + Filiale \u2013 versteckte Felder ----\n    \/\/ Regel fo:      kommt aus ?fo=\u2026 im Link oder aus dem Cookie cc_fo.\n    \/\/                Fehlt beides, wird fo aus der Sprache abgeleitet:\n    \/\/                PT und FR -> \"LS\", alle anderen (de\/it\/es\/en) -> \"AA\".\n    \/\/ Regel Filiale: \u00fcbernimmt seit v2.1.1 den ermittelten fo-Wert.\n    \/\/                Ist kein Wert ermittelbar -> \"AA\". (Vorher fest \"BF\".)\n    (function () {\n      var FILIALE_FALLBACK = \"AA\";\n\n      \/\/ Nur A-Z, 0-9, Bindestrich\/Unterstrich zulassen, max. 10 Zeichen.\n      function ccCleanFo(v) {\n        return String(v || \"\").trim().toUpperCase().replace(\/[^A-Z0-9_-]\/g, \"\").slice(0, 10);\n      }\n\n      var urlFo = ccCleanFo(new URLSearchParams(location.search).get(\"fo\"));\n      if (urlFo) ccSetCookie(\"cc_fo\", urlFo, 30);\n\n      var fo = urlFo || ccCleanFo(ccGetCookie(\"cc_fo\"));\n\n      \/\/ Sprachabh\u00e4ngiger Fallback (unver\u00e4nderte Bestandslogik)\n      if (!fo) { fo = (CC_LANG === \"pt\" || CC_LANG === \"fr\") ? \"LS\" : FILIALE_FALLBACK; }\n\n      if ($(\"ccFo\"))      $(\"ccFo\").value      = fo;\n      if ($(\"ccFiliale\")) $(\"ccFiliale\").value = fo || FILIALE_FALLBACK;\n    })();\n\n    \/\/ ---- Select-Optionen f\u00fcllen ----\n    function fillMonths(sel) { if (!sel) return; sel.innerHTML = '<option value=\"\">' + ccT('month') + '<\/option>'; for (var i = 1; i <= 12; i++) sel.innerHTML += '<option value=\"' + i + '\">' + i + \"<\/option>\"; }\n    function fillDays(sel) { if (!sel) return; sel.innerHTML = '<option value=\"\">' + ccT('day') + '<\/option>'; for (var d = 1; d <= 31; d++) sel.innerHTML += '<option value=\"' + d + '\">' + d + \"<\/option>\"; }\n    function fillYears(sel, back) { if (!sel) return; var now = new Date().getFullYear(); sel.innerHTML = '<option value=\"\">' + ccT('year') + '<\/option>'; for (var y = now; y >= now - back; y--) sel.innerHTML += '<option value=\"' + y + '\">' + y + \"<\/option>\"; }\n    [\"ccAdrMonat\",\"ccAGMonat\",\"ccPartnerMonat\",\"ccInCHMonat\"].forEach(function (id) { fillMonths($(id)); });\n    [\"ccAdrJahr\",\"ccAGJahr\",\"ccPartnerJahr\"].forEach(function (id) { fillYears($(id), 60); });\n    fillDays($(\"ccInCHTag\"));\n    fillYears($(\"ccInCHJahr\"), 80);\n    fillYears($(\"ccHypoSeit\"), 70);\n\n    \/\/ Nationalit\u00e4ten: VALUE bleibt immer Deutsch (f\u00fcr Mailer\/DB), Label wird \u00fcbersetzt.\n    var NATIONEN = [\n      [\"Schweiz\",                 {fr:\"Suisse\",it:\"Svizzera\",pt:\"Su\u00ed\u00e7a\",es:\"Suiza\",en:\"Switzerland\"}],\n      [\"Deutschland\",             {fr:\"Allemagne\",it:\"Germania\",pt:\"Alemanha\",es:\"Alemania\",en:\"Germany\"}],\n      [\"Italien\",                 {fr:\"Italie\",it:\"Italia\",pt:\"It\u00e1lia\",es:\"Italia\",en:\"Italy\"}],\n      [\"Frankreich\",              {fr:\"France\",it:\"Francia\",pt:\"Fran\u00e7a\",es:\"Francia\",en:\"France\"}],\n      [\"Portugal\",                {fr:\"Portugal\",it:\"Portogallo\",pt:\"Portugal\",es:\"Portugal\",en:\"Portugal\"}],\n      [\"Spanien\",                 {fr:\"Espagne\",it:\"Spagna\",pt:\"Espanha\",es:\"Espa\u00f1a\",en:\"Spain\"}],\n      [\"\u00d6sterreich\",              {fr:\"Autriche\",it:\"Austria\",pt:\"\u00c1ustria\",es:\"Austria\",en:\"Austria\"}],\n      [\"Vereinigtes K\u00f6nigreich\",  {fr:\"Royaume-Uni\",it:\"Regno Unito\",pt:\"Reino Unido\",es:\"Reino Unido\",en:\"United Kingdom\"}],\n      [\"Niederlande\",             {fr:\"Pays-Bas\",it:\"Paesi Bassi\",pt:\"Pa\u00edses Baixos\",es:\"Pa\u00edses Bajos\",en:\"Netherlands\"}],\n      [\"Belgien\",                 {fr:\"Belgique\",it:\"Belgio\",pt:\"B\u00e9lgica\",es:\"B\u00e9lgica\",en:\"Belgium\"}],\n      [\"Polen\",                   {fr:\"Pologne\",it:\"Polonia\",pt:\"Pol\u00f3nia\",es:\"Polonia\",en:\"Poland\"}],\n      [\"Rum\u00e4nien\",                {fr:\"Roumanie\",it:\"Romania\",pt:\"Rom\u00e9nia\",es:\"Ruman\u00eda\",en:\"Romania\"}],\n      [\"Griechenland\",            {fr:\"Gr\u00e8ce\",it:\"Grecia\",pt:\"Gr\u00e9cia\",es:\"Grecia\",en:\"Greece\"}],\n      [\"Kosovo\",                  {fr:\"Kosovo\",it:\"Kosovo\",pt:\"Kosovo\",es:\"Kosovo\",en:\"Kosovo\"}],\n      [\"Serbien\",                 {fr:\"Serbie\",it:\"Serbia\",pt:\"S\u00e9rvia\",es:\"Serbia\",en:\"Serbia\"}],\n      [\"Nordmazedonien\",          {fr:\"Mac\u00e9doine du Nord\",it:\"Macedonia del Nord\",pt:\"Maced\u00f3nia do Norte\",es:\"Macedonia del Norte\",en:\"North Macedonia\"}],\n      [\"Bosnien und Herzegowina\", {fr:\"Bosnie-Herz\u00e9govine\",it:\"Bosnia ed Erzegovina\",pt:\"B\u00f3snia e Herzegovina\",es:\"Bosnia y Herzegovina\",en:\"Bosnia and Herzegovina\"}],\n      [\"Kroatien\",                {fr:\"Croatie\",it:\"Croazia\",pt:\"Cro\u00e1cia\",es:\"Croacia\",en:\"Croatia\"}],\n      [\"Albanien\",                {fr:\"Albanie\",it:\"Albania\",pt:\"Alb\u00e2nia\",es:\"Albania\",en:\"Albania\"}],\n      [\"Montenegro\",              {fr:\"Mont\u00e9n\u00e9gro\",it:\"Montenegro\",pt:\"Montenegro\",es:\"Montenegro\",en:\"Montenegro\"}],\n      [\"T\u00fcrkei\",                  {fr:\"Turquie\",it:\"Turchia\",pt:\"Turquia\",es:\"Turqu\u00eda\",en:\"Turkey\"}],\n      [\"Sri Lanka\",               {fr:\"Sri Lanka\",it:\"Sri Lanka\",pt:\"Sri Lanka\",es:\"Sri Lanka\",en:\"Sri Lanka\"}],\n      [\"Eritrea\",                 {fr:\"\u00c9rythr\u00e9e\",it:\"Eritrea\",pt:\"Eritreia\",es:\"Eritrea\",en:\"Eritrea\"}],\n      [\"Brasilien\",               {fr:\"Br\u00e9sil\",it:\"Brasile\",pt:\"Brasil\",es:\"Brasil\",en:\"Brazil\"}],\n      [\"Indien\",                  {fr:\"Inde\",it:\"India\",pt:\"\u00cdndia\",es:\"India\",en:\"India\"}],\n      [\"China\",                   {fr:\"Chine\",it:\"Cina\",pt:\"China\",es:\"China\",en:\"China\"}],\n      [\"Russland\",                {fr:\"Russie\",it:\"Russia\",pt:\"R\u00fassia\",es:\"Rusia\",en:\"Russia\"}],\n      [\"Ukraine\",                 {fr:\"Ukraine\",it:\"Ucraina\",pt:\"Ucr\u00e2nia\",es:\"Ucrania\",en:\"Ukraine\"}],\n      [\"Vereinigte Staaten\",      {fr:\"\u00c9tats-Unis\",it:\"Stati Uniti\",pt:\"Estados Unidos\",es:\"Estados Unidos\",en:\"United States\"}],\n      [\"Andere\",                  {fr:\"Autre\",it:\"Altro\",pt:\"Outro\",es:\"Otro\",en:\"Other\"}]\n    ];\n    var natSel = $(\"ccNation\");\n    natSel.innerHTML = '<option value=\"\">' + ccT('choose') + '<\/option>';\n    NATIONEN.forEach(function (n) {\n      var deName = n[0], tr = n[1] || {};\n      var label = (CC_LANG === \"de\") ? deName : (tr[CC_LANG] || deName);\n      natSel.innerHTML += '<option value=\"' + deName + '\">' + label + '<\/option>';\n    });\n\n    \/\/ Kinder-Jahrgang: Dropdown, aktuelles Jahr absteigend bis aktuelles Jahr - 25.\n    function fillVintage(sel) {\n      if (!sel) return;\n      var now = new Date().getFullYear();\n      sel.innerHTML = '<option value=\"\">' + ccT('year') + '<\/option>';\n      for (var y = now; y >= now - 25; y--) sel.innerHTML += '<option value=\"' + y + '\">' + y + '<\/option>';\n    }\n    [\"kind_1\",\"kind_2\",\"kind_3\",\"kind_4\"].forEach(function (nm) { fillVintage(form.querySelector('[name=\"' + nm + '\"]')); });\n\n    \/\/ Statische \"Bitte w\u00e4hlen\"-Platzhalter in die aktuelle Sprache bringen (TranslatePress erreicht <option>-Texte nicht).\n    (function () {\n      form.querySelectorAll('option[value=\"\"]').forEach(function (o) {\n        var t = (o.textContent || \"\").trim();\n        if (t === \"Bitte w\u00e4hlen\" || t === \"- Bitte w\u00e4hlen -\") o.textContent = ccT(\"choose\");\n      });\n    })();\n\n    \/\/ ---- Rechner-Konfiguration ----\n    var _root = ROOT;   \/\/ v3.1.0: eigener Container statt erstem .cc-root der Seite\n    var _G = window.CC_CALC || {};\n    function _num(dataAttr, key, def) {\n      var dv = _root.getAttribute ? _root.getAttribute(dataAttr) : null;\n      var raw = (dv !== null && dv !== \"\") ? dv : _G[key];\n      var num = parseFloat(String(raw).replace(\",\", \".\"));\n      return isFinite(num) && num > 0 ? num : def;\n    }\n    var MIN_AMOUNT = Math.round(_num(\"data-min-amount\", \"tiefstbetrag\", 5000));\n    var MAX_AMOUNT = Math.round(_num(\"data-max-amount\", \"hoechstbetrag\", 300000));\n    var RATE_MIN = _num(\"data-rate-min\", \"tiefstzinssatz\", 4.9);\n    var RATE_MAX = _num(\"data-rate-max\", \"hoechstzinssatz\", 9.95);\n    if (MAX_AMOUNT <= MIN_AMOUNT) MAX_AMOUNT = MIN_AMOUNT + 1000;\n    if (RATE_MAX < RATE_MIN) { var _t = RATE_MIN; RATE_MIN = RATE_MAX; RATE_MAX = _t; }\n\n    var AMOUNTS = [];\n    (function () { var bp = 80000, s1 = 1000, s2 = 5000, v = MIN_AMOUNT; while (v < MAX_AMOUNT) { AMOUNTS.push(v); v += (v < bp ? s1 : s2); } AMOUNTS.push(MAX_AMOUNT); })();\n    var DUR_MIN = Math.round(_num(\"data-dur-min\", \"tiefstrate\", 12));\n    var DUR_MAX = Math.round(_num(\"data-dur-max\", \"hoechstrate\", 120));\n    if (DUR_MAX <= DUR_MIN) DUR_MAX = DUR_MIN + 6;\n    \/\/ Feste Laufzeit-Stufen laut Gesch\u00e4ftsvorgabe, identisch zu Kreditformel.js:\n    \/\/ 6er-Schritte bis 84 Monate, danach direkt 120. Die Zwischenwerte\n    \/\/ 90\/96\/102\/108\/114 sind NICHT vermittelbar und werden nicht angeboten.\n    \/\/ Die Liste ist bewusst fest, weil sich der Sprung 84 -> 120 nicht aus\n    \/\/ Minimum und Maximum ableiten l\u00e4sst. DUR_MIN\/DUR_MAX aus CC_CALC grenzen\n    \/\/ sie weiterhin ein.\n    var DUR_STEPS = [12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 120];\n    var DURATIONS = DUR_STEPS.filter(function (d) { return d >= DUR_MIN && d <= DUR_MAX; });\n    if (!DURATIONS.length) DURATIONS = [DUR_STEPS[0]];\n    var DEF_AMOUNT = Math.min(Math.max(20000, MIN_AMOUNT), MAX_AMOUNT);\n\n    function closestIdx(arr, val) { var best = 0, bd = Infinity; for (var i = 0; i < arr.length; i++) { var d = Math.abs(arr[i] - val); if (d < bd) { bd = d; best = i; } } return best; }\n    function bindIdxSlider(rangeId, txtId, hiddenId, arr, fmt, defVal) {\n      var r = $(rangeId), t = $(txtId), h = $(hiddenId);\n      r.min = 0; r.max = arr.length - 1; r.step = 1; r.value = closestIdx(arr, defVal);\n      function upd() { var val = arr[parseInt(r.value, 10)] || arr[0]; t.textContent = fmt ? nf(val) : val; h.value = val; }\n      r.addEventListener(\"input\", upd); upd();\n      return { r: r, arr: arr };\n    }\n    var betragSl = bindIdxSlider(\"ccBetrag\", \"ccBetragTxt\", \"ccBetragHidden\", AMOUNTS, true, DEF_AMOUNT);\n    var laufzeitSl = bindIdxSlider(\"ccLaufzeit\", \"ccLaufzeitTxt\", \"ccLaufzeitHidden\", DURATIONS, false, 36);\n    \/\/ Laufzeit je Betrag (bf-calc-shared 2.4.0): ab CHF 80'000 h\u00f6chstens 84 Monate\n    \/\/ (Werte unter \"BF Kreditrechner\"). Der Laufzeit-Schieber wird bei jeder\n    \/\/ Betrags\u00e4nderung auf die erlaubten Stufen gesetzt. Die zuletzt gew\u00e4hlte\n    \/\/ Laufzeit wird gemerkt und kommt zur\u00fcck, wenn der Betrag wieder sinkt.\n    var DUR_ALL = DURATIONS.slice(), durWunsch = parseInt($(\"ccLaufzeitHidden\").value, 10) || 36, durSync = false;\n    function durCap(P) {\n      var B = window.BFCalc;\n      if (B && typeof B.getMaxDurationFor === \"function\") return B.getMaxDurationFor(P);\n      return P >= 80000 ? 84 : Infinity;\n    }\n    function syncLaufzeit() {\n      var P = parseInt($(\"ccBetragHidden\").value, 10) || 0, cap = durCap(P);\n      var list = DUR_ALL.filter(function (d) { return d <= cap; });\n      if (!list.length) list = [DUR_ALL[0]];\n      DURATIONS.length = 0; Array.prototype.push.apply(DURATIONS, list);\n      var r = laufzeitSl.r;\n      r.max = list.length - 1;\n      r.value = closestIdx(list, Math.min(durWunsch, list[list.length - 1]));\n      durSync = true; r.dispatchEvent(new Event(\"input\")); durSync = false;\n      var m = $(\"ccDurScaleMax\"); if (m) m.textContent = String(list[list.length - 1]);\n    }\n    $(\"ccLaufzeit\").addEventListener(\"input\", function () {\n      if (!durSync) durWunsch = parseInt($(\"ccLaufzeitHidden\").value, 10) || durWunsch;\n    });\n    $(\"ccBetrag\").addEventListener(\"input\", syncLaufzeit);\n    syncLaufzeit();\n\n    \/\/ Zinsformel \u2013 zentrale Quelle ist window.BFCalc (bf-calc-shared, wp_head).\n    \/\/ Der Prozentwert ist ein EFFEKTIVER Jahreszins. Die Umrechnung auf den\n    \/\/ Monatszins erfolgt geometrisch ((1+apr)^(1\/12)-1), NICHT linear (apr\/12).\n    \/\/ Das Ergebnis wird auf 5 Rappen gerundet (r5c).\n    \/\/ Der lokale Zweig ist nur ein Fallback, falls BFCalc nicht geladen ist,\n    \/\/ und ist zeichengenau identisch zu BFCalc.mRate.\n    function r5c(v) { return Math.round(v * 20) \/ 20; }\n    function monthlyRate(P, annualPct, n) {\n      var B = window.BFCalc;\n      if (B && typeof B.mRate === \"function\") { return B.mRate(P, n, annualPct); }\n      var r = Math.pow(1 + annualPct \/ 100, 1 \/ 12) - 1;\n      return r === 0 ? r5c(P \/ n) : r5c(P * r \/ (1 - Math.pow(1 + r, -n)));\n    }\n    \/\/ Rundung identisch zu Zinsrechner_1.html \/ BFCalc.fmt2: exakte zwei\n    \/\/ Nachkommastellen, KEINE 5-Rappen-Rundung. Vorher: Math.round(x*20)\/20,\n    \/\/ was Abweichungen bis 2.5 Rappen gegen\u00fcber dem Wunschkredit-Rechner ergab.\n    \/\/ Formatierung identisch zu BFCalc.fmt2 \/ fmtI (gerades Hochkomma als\n    \/\/ Tausendertrennzeichen, zwei Nachkommastellen). Die Rundung auf 5 Rappen\n    \/\/ ist bereits in monthlyRate() erfolgt.\n    function fmtChf(x) { var p = Number(x).toFixed(2).split(\".\"); return nf(parseInt(p[0], 10)) + \".\" + p[1]; }\n    function updateRate() {\n      var P = parseInt($(\"ccBetragHidden\").value, 10) || 0, n = parseInt($(\"ccLaufzeitHidden\").value, 10) || 1;\n      $(\"ccRateMin\").textContent = fmtChf(monthlyRate(P, RATE_MIN, n));\n      $(\"ccRateMax\").textContent = fmtChf(monthlyRate(P, RATE_MAX, n));\n    }\n    $(\"ccBetrag\").addEventListener(\"input\", updateRate);\n    $(\"ccLaufzeit\").addEventListener(\"input\", updateRate);\n    updateRate();\n    (function () {\n      function pct(x) { return String(Math.round(x * 100) \/ 100); }\n      var m;\n      if ((m = $(\"ccScaleMin\"))) m.textContent = nf(MIN_AMOUNT);\n      if ((m = $(\"ccScaleMax\"))) m.textContent = nf(MAX_AMOUNT);\n      if ((m = $(\"ccDurScaleMin\"))) m.textContent = String(DURATIONS[0]);\n      if ((m = $(\"ccDurScaleMax\"))) m.textContent = String(DURATIONS[DURATIONS.length - 1]);\n      [\"ccZinsMin\", \"ccZinsMinN\"].forEach(function (id) { var e = $(id); if (e) e.textContent = pct(RATE_MIN); });\n      [\"ccZinsMax\", \"ccZinsMaxN\"].forEach(function (id) { var e = $(id); if (e) e.textContent = pct(RATE_MAX); });\n    })();\n    \/\/ Vorbelegung aus dem Link. Akzeptiert mehrere Schreibweisen, damit\n    \/\/ bestehende Kampagnenlinks (?amount=\u2026&duration=\u2026) weiterlaufen.\n    var CC_HAS_AMOUNT = false, CC_HAS_DURATION = false;\n    (function () {\n      var p = new URLSearchParams(window.location.search);\n      function setFromParam(names, sl) {\n        for (var i = 0; i < names.length; i++) {\n          var raw = p.get(names[i]);\n          if (raw === null || raw === \"\") continue;\n          var v = parseInt(String(raw).replace(\/\\D\/g, \"\"), 10);\n          if (isNaN(v)) continue;\n          sl.r.value = closestIdx(sl.arr, v);\n          sl.r.dispatchEvent(new Event(\"input\"));\n          return true;\n        }\n        return false;\n      }\n      CC_HAS_AMOUNT   = setFromParam([\"Kreditbetrag\", \"amount\", \"betrag\"], betragSl);\n      CC_HAS_DURATION = setFromParam([\"Laufzeit\", \"duration\", \"laufzeit\", \"dauer\"], laufzeitSl);\n    })();\n\n    \/\/ ---- Rechner per Link ausblenden (?r=0) \u2013 v2.2.1 ----\n    \/\/ Zeigt statt der Slider eine Zusammenfassung der auf der Landingpage\n    \/\/ getroffenen Auswahl. Klick auf \"\u00c4ndern\" blendet den Rechner wieder ein.\n    \/\/ Sicherung: Ausgeblendet wird NUR, wenn Kreditbetrag UND Laufzeit im Link\n    \/\/ stehen. Sonst w\u00fcrde der Besucher unbemerkt die Standardwerte absenden.\n    (function () {\n      var wrap = $(\"ccCalcWrap\"), box = $(\"ccPickBox\"), btn = $(\"ccPickChange\");\n      if (!wrap || !box || !btn) return;\n\n      var p = new URLSearchParams(window.location.search);\n      var raw = String(p.get(\"r\") || \"\").trim().toLowerCase();\n      var OFF = [\"0\", \"aus\", \"off\", \"nein\", \"no\", \"false\"];\n      if (OFF.indexOf(raw) < 0) return;\n      if (!CC_HAS_AMOUNT || !CC_HAS_DURATION) return;\n\n      function pct(x) { return String(Math.round(x * 100) \/ 100); }\n      function txt(id, v) { var e = $(id); if (e) e.textContent = v; }\n\n      function fillPick() {\n        var P = parseInt($(\"ccBetragHidden\").value, 10) || 0;\n        var n = parseInt($(\"ccLaufzeitHidden\").value, 10) || 1;\n        txt(\"ccPickBetrag\", nf(P));\n        txt(\"ccPickLaufzeit\", String(n));\n        txt(\"ccPickRateMin\", fmtChf(monthlyRate(P, RATE_MIN, n)));\n        txt(\"ccPickRateMax\", fmtChf(monthlyRate(P, RATE_MAX, n)));\n        txt(\"ccPickZinsMin\", pct(RATE_MIN));\n        txt(\"ccPickZinsMax\", pct(RATE_MAX));\n        txt(\"ccPickZinsMinN\", pct(RATE_MIN));\n        txt(\"ccPickZinsMaxN\", pct(RATE_MAX));\n        txt(\"ccPickBetragLbl\", ccT(\"pickAmount\"));\n        txt(\"ccPickLaufzeitLbl\", ccT(\"pickDuration\"));\n        txt(\"ccPickMonate\", ccT(\"pickMonths\"));\n        txt(\"ccPickRateLbl\", ccT(\"pickRateLbl\"));\n        txt(\"ccPickSide1\", ccT(\"pickSide1\"));\n        txt(\"ccPickSide2\", ccT(\"pickSide2\"));\n        txt(\"ccPickSide3\", ccT(\"pickSide3\"));\n        txt(\"ccPickNoteTxt\", ccT(\"pickNote\"));\n        txt(\"ccPickChange\", ccT(\"pickChange\"));\n      }\n\n      fillPick();\n      wrap.hidden = true;\n      box.hidden = false;\n\n      btn.addEventListener(\"click\", function () {\n        wrap.hidden = false;\n        box.hidden = true;\n        btn.setAttribute(\"aria-expanded\", \"true\");\n        var sl = $(\"ccBetrag\");\n        if (sl) { try { sl.focus({ preventScroll: true }); } catch (e) { sl.focus(); } }\n      });\n    })();\n\n    \/\/ ---- Telefon ----\n    var telCountry = $(\"ccTelCountry\"), telNum = $(\"ccTelNum\");\n    var TEL = {\n      \"41\":  { trunk0: true,  min: 9,  max: 9,  ph: \"079 123 45 67\",  groups: [2,3,2,2] },\n      \"423\": { trunk0: false, min: 7,  max: 7,  ph: \"660 12 34\",      groups: [3,2,2] },\n      \"49\":  { trunk0: true,  min: 6,  max: 11, ph: \"0151 23456789\",  groups: [3] },\n      \"33\":  { trunk0: true,  min: 9,  max: 9,  ph: \"06 12 34 56 78\", groups: [1,2,2,2,2] },\n      \"39\":  { trunk0: false, min: 8,  max: 11, ph: \"312 345 6789\",   groups: [3,3,4] }\n    };\n    function telPh() { var cfg = TEL[telCountry.value]; telNum.placeholder = cfg ? cfg.ph : \"\"; }\n    telCountry.addEventListener(\"change\", function () { telPh(); telFormat(); clearError(telNum.closest(\".cc-field\")); });\n    telPh();\n    \/\/ v3.13.0: Live-Formatierung fuer ALLE Laender (nicht nur CH). Gruppierung\n    \/\/ je Land aus TEL[...].groups; bei trunk0-Laendern wird die fuehrende 0 ergaenzt.\n    function telFmt(dial, raw) {\n      var cfg = TEL[dial];\n      var d = String(raw).replace(\/\\D\/g, \"\");\n      if (!cfg || !cfg.groups) { return d; }\n      if (cfg.trunk0) { d = d.replace(\/^0+\/, \"\"); }\n      d = d.slice(0, cfg.max || 15);\n      if (d === \"\") { return (cfg.trunk0 && String(raw).replace(\/\\D\/g, \"\") !== \"\") ? \"0\" : \"\"; }\n      var parts = [], i = 0, g;\n      for (g = 0; g < cfg.groups.length && i < d.length; g++) { parts.push(d.substr(i, cfg.groups[g])); i += cfg.groups[g]; }\n      if (i < d.length) { parts.push(d.substr(i)); }\n      var out = parts.join(\" \");\n      return cfg.trunk0 ? \"0\" + out : out;\n    }\n    \/\/ v3.11.0: Beim Formatieren die Cursor-Position erhalten. Wir merken uns die\n    \/\/ Anzahl Ziffern RECHTS vom Cursor und setzen ihn danach an dieselbe Stelle\n    \/\/ zurueck (robust gegen die automatisch vorangestellte 0 bei CH-Nummern).\n    function telFormat() {\n      var el = telNum;\n      var oldVal = el.value;\n      var focused = (document.activeElement === el);\n      var selEnd = (focused && typeof el.selectionStart === \"number\") ? el.selectionStart : null;\n      var digitsAfter = (selEnd === null) ? -1 : oldVal.slice(selEnd).replace(\/\\D\/g, \"\").length;\n      var digits = oldVal.replace(\/\\D\/g, \"\");\n      var newVal = telFmt(telCountry.value, digits);\n      if (newVal === oldVal) { return; }        \/\/ nichts geaendert -> Cursor nicht anfassen\n      el.value = newVal;\n      if (digitsAfter >= 0) {\n        var pos = newVal.length, seen = 0;\n        if (digitsAfter > 0) {\n          for (var i = newVal.length; i > 0; i--) {\n            if (\/\\d\/.test(newVal.charAt(i - 1))) { seen++; if (seen === digitsAfter) { pos = i - 1; break; } }\n          }\n        }\n        try { el.setSelectionRange(pos, pos); } catch (e) {}\n      }\n    }\n    telNum.addEventListener(\"input\", telFormat);\n    function nationalDigits() {\n      var dial = telCountry.value, cfg = TEL[dial] || {};\n      var raw = telNum.value.replace(\/\\D\/g, \"\");\n      if (raw.indexOf(\"00\" + dial) === 0) raw = raw.slice(2 + dial.length);\n      else if (dial && raw.indexOf(dial) === 0 && raw.length > (cfg.max || 15)) raw = raw.slice(dial.length);\n      if (cfg.trunk0) raw = raw.replace(\/^0\/, \"\");\n      return raw;\n    }\n    function fmtPhone(dial, d) {\n      if (dial === \"41\"  && d.length === 9) return d.replace(\/(\\d{2})(\\d{3})(\\d{2})(\\d{2})\/, \"$1 $2 $3 $4\");\n      if (dial === \"33\"  && d.length === 9) return d.replace(\/(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})\/, \"$1 $2 $3 $4 $5\");\n      if (dial === \"39\"  && d.length >= 9)  return d.replace(\/(\\d{3})(\\d{3})(\\d+)\/, \"$1 $2 $3\");\n      if (dial === \"49\"  && d.length >= 6)  return d.replace(\/(\\d{3})(\\d+)\/, \"$1 $2\");\n      if (dial === \"423\" && d.length === 7) return d.replace(\/(\\d{3})(\\d{2})(\\d{2})\/, \"$1 $2 $3\");\n      return d;\n    }\n    function composePhone() { var dial = telCountry.value, d = nationalDigits(); return d ? \"+\" + dial + \" \" + d : \"\"; }\n    function phoneValid() { var cfg = TEL[telCountry.value] || { min: 6, max: 15 }; var n = nationalDigits().length; return n >= cfg.min && n <= cfg.max; }\n\n    \/\/ ---- Anrede ----\n    var seg = $(\"ccAnredeSeg\");\n    seg.querySelectorAll(\"button\").forEach(function (b) {\n      b.addEventListener(\"click\", function () {\n        seg.querySelectorAll(\"button\").forEach(function (x) { x.setAttribute(\"aria-pressed\", \"false\"); });\n        b.setAttribute(\"aria-pressed\", \"true\");\n        $(\"ccAnrede\").value = b.getAttribute(\"data-val\");\n        clearError($(\"ccAnrede\").closest(\".cc-field\"));\n        schedulePartial();\n      });\n    });\n\n    \/\/ ---- Raten-Versicherung (Ja\/Nein + Produktauswahl Basic\/Premium) ----\n    var vInfoBtn = $(\"ccVersInfoBtn\"), vInfo = $(\"ccVersInfo\");\n    if (vInfoBtn && vInfo) { vInfoBtn.addEventListener(\"click\", function () { var willOpen = vInfo.hidden; vInfo.hidden = !willOpen; vInfoBtn.setAttribute(\"aria-expanded\", willOpen ? \"true\" : \"false\"); }); }\n    var vSeg = $(\"ccVersSeg\");\n    var versCards = Array.prototype.slice.call(ROOT.querySelectorAll(\".cc-vers-card\"));\n    function versClear() { versCards.forEach(function (c) { c.setAttribute(\"aria-selected\", \"false\"); }); if ($(\"ccVersProd\")) $(\"ccVersProd\").value = \"\"; }\n    if (vSeg) vSeg.querySelectorAll(\"button\").forEach(function (b) {\n      b.addEventListener(\"click\", function () {\n        vSeg.querySelectorAll(\"button\").forEach(function (x) { x.setAttribute(\"aria-pressed\", \"false\"); });\n        b.setAttribute(\"aria-pressed\", \"true\");\n        var val = b.getAttribute(\"data-val\"); $(\"ccVers\").value = val;\n        var want = (val === \"1\");\n        toggle($(\"ccVersOptions\"), want);\n        if (!want) { versClear(); if ($(\"ccVersOptions\")) $(\"ccVersOptions\").classList.remove(\"cc-invalid\"); }\n        schedulePartial();\n      });\n    });\n    versCards.forEach(function (c) {\n      function pick() {\n        versClear();\n        c.setAttribute(\"aria-selected\", \"true\");\n        $(\"ccVersProd\").value = c.getAttribute(\"data-prod\");\n        $(\"ccVers\").value = \"1\";\n        if ($(\"ccVersOptions\")) $(\"ccVersOptions\").classList.remove(\"cc-invalid\");\n        schedulePartial();\n      }\n      c.addEventListener(\"click\", pick);\n      c.addEventListener(\"keydown\", function (e) { if (e.key === \"Enter\" || e.key === \" \") { e.preventDefault(); pick(); } });\n    });\n\n    \/\/ ---- Geburtsdatum-Maske (v3.10.0) ----\n    \/\/ Reine Ziffern werden automatisch zu TT.MM.JJJJ gruppiert. Tippt der Kunde\n    \/\/ mit Trennzeichen (z. B. 1.5.1967), bleiben seine Gruppen erhalten; beim\n    \/\/ Verlassen des Feldes \/ Absenden wird auf 01.05.1967 aufgefuellt (padDate).\n    var geb = $(\"ccGeb\");\n    function padDate(v) {\n      v = String(v == null ? \"\" : v).trim();\n      if (!v) return v;\n      var p = v.split(\/[^0-9]+\/).filter(Boolean);\n      if (p.length === 3) {\n        var dd = p[0].length < 2 ? (\"0\" + p[0]).slice(-2) : p[0].slice(0, 2);\n        var mm = p[1].length < 2 ? (\"0\" + p[1]).slice(-2) : p[1].slice(0, 2);\n        var yy = p[2].slice(0, 4);\n        return dd + \".\" + mm + \".\" + yy;\n      }\n      var d = v.replace(\/\\D\/g, \"\").slice(0, 8);\n      if (d.length === 8) return d.slice(0, 2) + \".\" + d.slice(2, 4) + \".\" + d.slice(4, 8);\n      return v;\n    }\n    \/\/ v3.14.0: Datums-Formatierung als eigene Funktion + Cursor-Erhalt. Wichtig:\n    \/\/ Wenn sich nichts aendert, wird das Feld NICHT neu gesetzt (sonst springt der\n    \/\/ Cursor auf manchen Browsern\/Handys an den Anfang und das Jahr laesst sich\n    \/\/ nicht mehr tippen).\n    function fmtDate(raw) {\n      raw = String(raw == null ? \"\" : raw);\n      \/\/ Normalisieren, dann Ziffern in Tag(2)\/Monat(2)\/Jahr(4) einfuellen. Ueberlauf\n      \/\/ flieszt in die naechste Gruppe; ein vom Nutzer gesetztes Trennzeichen beendet\n      \/\/ die aktuelle Gruppe (so bleibt 1.5.1967 = 1 \/ 5 \/ 1967 erhalten).\n      var norm = raw.replace(\/[\\\/\\-\\s]+\/g, \".\").replace(\/[^0-9.]\/g, \"\").replace(\/^\\.+\/, \"\").replace(\/\\.{2,}\/g, \".\");\n      var groups = norm.split(\".\");\n      var caps = [2, 2, 4], slots = [\"\", \"\", \"\"], reached = [false, false, false], slot = 0;\n      function adv() { if (slot < 3) { slot++; if (slot <= 2) { reached[slot] = true; } } }\n      for (var k = 0; k < groups.length; k++) {\n        var g = groups[k];\n        for (var c = 0; c < g.length; c++) {\n          while (slot < 3 && slots[slot].length >= caps[slot]) { adv(); }\n          if (slot >= 3) { break; }\n          slots[slot] += g.charAt(c);\n        }\n        if (slot >= 3) { break; }\n        if (k < groups.length - 1) { if (slot < 2) { adv(); } else { slot = 3; } }\n      }\n      var res = slots[0];\n      if (reached[1] || slots[1] !== \"\") { res += \".\" + slots[1]; }\n      if (reached[2] || slots[2] !== \"\") { res += \".\" + slots[2]; }\n      return res;\n    }\n    geb.addEventListener(\"input\", function () {\n      var el = geb;\n      var oldVal = el.value;\n      var focused = (document.activeElement === el);\n      var selEnd = (focused && typeof el.selectionStart === \"number\") ? el.selectionStart : null;\n      var digitsBefore = (selEnd === null) ? -1 : oldVal.slice(0, selEnd).replace(\/\\D\/g, \"\").length;\n      var newVal = fmtDate(oldVal);\n      if (newVal === oldVal) { return; }          \/\/ nichts geaendert -> Cursor NICHT anfassen\n      el.value = newVal;\n      if (digitsBefore >= 0) {\n        var pos = newVal.length, seen = 0;\n        if (digitsBefore <= 0) { pos = 0; }\n        else {\n          for (var i = 0; i < newVal.length; i++) {\n            if (\/\\d\/.test(newVal.charAt(i))) { seen++; if (seen === digitsBefore) { pos = i + 1; break; } }\n          }\n        }\n        try { el.setSelectionRange(pos, pos); } catch (e) {}\n      }\n    });\n    $(\"ccPLZ\").addEventListener(\"input\", function () { this.value = this.value.replace(\/\\D\/g, \"\"); });\n    ROOT.querySelectorAll('input[name^=\"kind_\"], .cc-num').forEach(function (inp) {\n      \/\/ v2.5.4: Hypothek hat eine eigene Behandlung mit Tausendertrennzeichen\n      if (inp.id === \"ccHypothek\") { return; }\n      inp.addEventListener(\"input\", function () { this.value = this.value.replace(\/\\D\/g, \"\"); });\n    });\n    $(\"ccKanton\").addEventListener(\"input\", function () { this.value = this.value.toUpperCase().replace(\/[^A-Z]\/g, \"\"); });\n\n    \/\/ ---- Name \/ Vorname \/ Strasse: jeweils ersten Buchstaben gross ----\n    function capitalizeWords(s) {\n      return String(s).replace(\/(^|[\\s\\-'.])([\\p{L}])\/gu, function (m, sep, ch) { return sep + ch.toUpperCase(); });\n    }\n    [\"ccVorname\", \"ccNachname\", \"ccStrasse\"].forEach(function (id) {\n      var el = $(id);\n      if (!el) return;\n      el.addEventListener(\"blur\", function () {\n        var v = capitalizeWords(this.value);\n        if (v !== this.value) { this.value = v; }\n      });\n    });\n\n    \/\/ ---- PLZ \u2192 Ort\/Kanton ----\n    function plzLookup(plzInput, ortInput, ortSelect, kantonInput) {\n      var plz = plzInput.value.replace(\/\\D\/g, \"\");\n      ortSelect.classList.add(\"cc-hidden\"); ortInput.classList.remove(\"cc-hidden\");\n      if (plz.length !== 4) return;\n      fetch(CONFIG.PLZ_ENDPOINT + \"?plz=\" + plz, { headers: { \"Accept\": \"application\/json\" } })\n        .then(function (r) { return r.json(); })\n        .then(function (list) {\n          if (!Array.isArray(list) || list.length === 0) return;\n          ortInput.value = list[0].ort || \"\";\n          if (kantonInput) kantonInput.value = (list[0].kanton || \"\").toUpperCase();\n          if (list.length > 1) {\n            ortSelect.innerHTML = list.map(function (g) {\n              return '<option value=\"' + g.ort + '\" data-kanton=\"' + (g.kanton || \"\") + '\">' + g.ort + (g.kanton ? \" (\" + g.kanton + \")\" : \"\") + \"<\/option>\";\n            }).join(\"\");\n            ortSelect._ort = ortInput; ortSelect._kanton = kantonInput;\n            ortInput.classList.add(\"cc-hidden\"); ortSelect.classList.remove(\"cc-hidden\");\n          }\n          clearError(ortInput.closest(\".cc-field\"));\n          schedulePartial();\n        })\n        .catch(function () {});\n    }\n    function bindOrtSelect(sel) {\n      sel.addEventListener(\"change\", function () {\n        this._ort.value = this.value;\n        var opt = this.options[this.selectedIndex];\n        if (this._kanton) this._kanton.value = (opt.getAttribute(\"data-kanton\") || \"\").toUpperCase();\n        schedulePartial();\n      });\n    }\n    $(\"ccPLZ\").addEventListener(\"input\", function () { plzLookup($(\"ccPLZ\"), $(\"ccOrt\"), $(\"ccOrtSelect\"), $(\"ccKanton\")); });\n    bindOrtSelect($(\"ccOrtSelect\"));\n    $(\"ccAltePLZ\").addEventListener(\"input\", function () { this.value = this.value.replace(\/\\D\/g, \"\"); plzLookup($(\"ccAltePLZ\"), $(\"ccAlterOrt\"), $(\"ccAlterOrtSelect\"), null); });\n    bindOrtSelect($(\"ccAlterOrtSelect\"));\n\n    \/\/ ---- Fr\u00fchere Adresse < 2 Jahre ----\n    function updateOldAddr() {\n      var m = parseInt($(\"ccAdrMonat\").value, 10), y = parseInt($(\"ccAdrJahr\").value, 10);\n      if (!m || !y) { toggle($(\"ccOldAddrBlock\"), false); return; }\n      var now = new Date();\n      var months = (now.getFullYear() - y) * 12 + (now.getMonth() + 1 - m);\n      toggle($(\"ccOldAddrBlock\"), months >= 0 && months < 24);\n    }\n    $(\"ccAdrMonat\").addEventListener(\"change\", updateOldAddr);\n    $(\"ccAdrJahr\").addEventListener(\"change\", updateOldAddr);\n\n    if ($(\"ccBetr\")) $(\"ccBetr\").addEventListener(\"change\", function () { toggle($(\"ccBetrMsg\"), this.checked); });\n    ROOT.querySelectorAll(\".cc-weitEink\").forEach(function (sel) {\n      sel.addEventListener(\"change\", function () { toggle($(this.getAttribute(\"data-target\")), this.value === \"Ja\"); });\n    });\n\n    function updateAusweis() {\n      var notCH = natSel.value && natSel.value !== \"Schweiz\";\n      toggle($(\"ccAuslBlock\"), notCH);\n      var isC = $(\"ccAusweis\").value === \"C\";\n      toggle($(\"ccInCHBlock\"), notCH && !isC);\n      updateChNotes();\n    }\n    natSel.addEventListener(\"change\", updateAusweis);\n    $(\"ccAusweis\").addEventListener(\"change\", updateAusweis);\n\n    \/\/ ---- v2.5.0: Aufenthaltsdauer Schweiz ----\n    function ccChMonths() {\n      if (isHidden($(\"ccAuslBlock\")) || isHidden($(\"ccInCHBlock\"))) return null;\n      return ccMonthsSince($(\"ccInCHJahr\").value, $(\"ccInCHMonat\").value, $(\"ccInCHTag\").value);\n    }\n    function updateChNotes() {\n      var mo = ccChMonths();\n      toggle($(\"ccChStop\"), mo !== null && mo >= 0 && mo < CONFIG.CH_STOP_MONTHS);\n      toggle($(\"ccChHint\"), mo !== null && mo >= CONFIG.CH_STOP_MONTHS && mo < CONFIG.CH_HINT_MONTHS);\n    }\n    [\"ccInCHTag\", \"ccInCHMonat\", \"ccInCHJahr\"].forEach(function (id) {\n      var e = $(id); if (e) e.addEventListener(\"change\", updateChNotes);\n    });\n\n    \/\/ ---- v2.5.0: Probezeit-Hinweis (< 3 Monate beim Arbeitgeber) ----\n    function updateAGNotes() {\n      var mo = ccMonthsSince($(\"ccAGJahr\").value, $(\"ccAGMonat\").value);\n      toggle($(\"ccAGProbe\"), mo !== null && mo >= 0 && mo < CONFIG.PROBEZEIT_MONTHS);\n    }\n    $(\"ccAGMonat\").addEventListener(\"change\", updateAGNotes);\n    $(\"ccAGJahr\").addEventListener(\"change\", updateAGNotes);\n\n    \/\/ ---- v2.5.0: Hinweise je Anstellungsverh\u00e4ltnis ----\n    var SPECIAL_EMPLOY = [\"Tempor\u00e4r angestellt\", \"Selbst\u00e4ndig (Einzelfirma)\", \"Selbst\u00e4ndig (AG oder GmbH)\"];\n    function updateAnstNotes() {\n      var v = $(\"ccAnstVerh\").value;\n      toggle($(\"ccAnstTemp\"),   v === \"Tempor\u00e4r angestellt\");\n      toggle($(\"ccAnstEinzel\"), v === \"Selbst\u00e4ndig (Einzelfirma)\");\n      toggle($(\"ccAnstGmbh\"),   v === \"Selbst\u00e4ndig (AG oder GmbH)\");\n    }\n    $(\"ccAnstVerh\").addEventListener(\"change\", updateAnstNotes);\n\n    \/\/ ---- v2.5.0: Wohnsituation nur bei Ledig + Kind ----\n    \/\/ Liste bewusst als Konstante: soll die Frage sp\u00e4ter auch bei\n    \/\/ \"geschieden\" (4) oder \"verwitwet\" (5) erscheinen, hier erg\u00e4nzen.\n    var SINGLE_STATES = [\"1\"];\n    function updateWohnsit() {\n      var show = SINGLE_STATES.indexOf($(\"ccZivil\").value) > -1 && (parseInt($(\"ccKinder\").value, 10) || 0) > 0;\n      toggle($(\"ccWohnsitField\"), show);\n      if (!show) { $(\"ccWohnsituation\").value = \"\"; clearError($(\"ccWohnsitField\")); }\n    }\n    $(\"ccWohnsituation\").addEventListener(\"change\", function () { clearError($(\"ccWohnsitField\")); });\n\n    function updateMieteFromHypo() {\n      if ($(\"ccMietStatus\").value !== \"Eigentum\") return;\n      var h = parseInt(($(\"ccHypothek\").value || \"\").replace(\/\\D\/g, \"\"), 10) || 0;\n      $(\"ccMiete\").value = h ? String(Math.round(h * 0.03 \/ 12)) : \"\";\n    }\n    $(\"ccMietStatus\").addEventListener(\"change\", function () {\n      var eigentum = this.value === \"Eigentum\";\n      toggle($(\"ccMieteField\"), !eigentum);\n      toggle($(\"ccHypoBlock\"), eigentum);\n      if (eigentum) { updateMieteFromHypo(); } else { $(\"ccMiete\").value = \"\"; }\n    });\n    $(\"ccHypothek\").addEventListener(\"input\", updateMieteFromHypo);\n\n    \/\/ ---- v2.5.4: Gesamt Hypothek mit Tausendertrennzeichen ----\n    \/\/ L\u00e4uft NACH updateMieteFromHypo (dort werden Trennzeichen ohnehin entfernt).\n    \/\/ Die Cursorposition wird \u00fcber die Anzahl Ziffern links davon wiederhergestellt,\n    \/\/ damit auch Korrekturen in der Mitte der Zahl m\u00f6glich bleiben.\n    (function () {\n      var hy = $(\"ccHypothek\");\n      if (!hy) return;\n      hy.addEventListener(\"input\", function () {\n        var pos    = this.selectionStart;\n        var davor  = String(this.value).slice(0, pos).replace(\/\\D\/g, \"\").length;\n        var ziffern = String(this.value).replace(\/\\D\/g, \"\").slice(0, 9);\n        var out    = ziffern.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \"\u2019\");\n        if (out === this.value) return;\n        this.value = out;\n        var i = 0, gezaehlt = 0;\n        while (i < out.length && gezaehlt < davor) { if (out.charCodeAt(i) >= 48 && out.charCodeAt(i) <= 57) { gezaehlt++; } i++; }\n        try { this.setSelectionRange(i, i); } catch (e) {}\n      });\n    })();\n\n    \/\/ ---- Krankenkasse: Titel + Hinweis je nach Haushalt (v2.5.0) ----\n    function updateKKHint() {\n      var married = [\"2\", \"6\"].indexOf($(\"ccZivil\").value) > -1;\n      var kids = (parseInt($(\"ccKinder\").value, 10) || 0) > 0;\n      var total = married || kids;\n      toggle($(\"ccKKLbl1\"), !total);\n      toggle($(\"ccKKLbl2\"), total);\n      toggle($(\"ccKKHint\"), !total);\n      toggle($(\"ccKKTotalNote\"), total);\n    }\n\n    \/\/ ---- Partner-Logik inkl. Partner ohne Einkommen (v2.5.0) ----\n    function updatePartner() {\n      var married = [\"2\", \"6\"].indexOf($(\"ccZivil\").value) > -1;\n      toggle($(\"ccPartnerIncomeQ\"), married);\n      var hatEink = $(\"ccPartnerHatEink\").value === \"Ja\";\n      toggle($(\"ccPartnerBlock\"), married && hatEink);\n      var showSit = married && !hatEink;\n      toggle($(\"ccPartnerSitField\"), showSit);\n      var ausland = showSit && $(\"ccPartnerSituation\").value === \"Wohnhaft im Ausland\";\n      toggle($(\"ccPartnerAuslandField\"), ausland);\n      if (!showSit) { $(\"ccPartnerSituation\").value = \"\"; }\n      if (!ausland) { $(\"ccAlimenteInCHF\").value = \"\"; }\n    }\n    $(\"ccPartnerHatEink\").addEventListener(\"change\", updatePartner);\n    $(\"ccPartnerSituation\").addEventListener(\"change\", updatePartner);\n    $(\"ccZivil\").addEventListener(\"change\", function () {\n      var married = [\"2\", \"6\"].indexOf(this.value) > -1;\n      toggle($(\"ccAlimenteField\"), !married);\n      updatePartner(); updateKKHint(); updateWohnsit();\n    });\n    $(\"ccKinder\").addEventListener(\"change\", function () {\n      var n = parseInt(this.value, 10) || 0;\n      toggle($(\"ccKinderBlock\"), n > 0);\n      ROOT.querySelectorAll(\"#ccKinderBlock .cc-kind\").forEach(function (el, i) { toggle(el, i < n); });\n      updateKKHint(); updateWohnsit();\n    });\n    if ($(\"ccKredite\")) $(\"ccKredite\").addEventListener(\"change\", function () { toggle($(\"ccBankBlock\"), this.value === \"Ja\"); });\n    if ($(\"ccAddBank\")) $(\"ccAddBank\").addEventListener(\"click\", function () {\n      var next = ROOT.querySelector(\".cc-bankrow.cc-hidden\");\n      if (next) next.classList.remove(\"cc-hidden\");\n      if (!ROOT.querySelector(\".cc-bankrow.cc-hidden\")) this.classList.add(\"cc-hidden\");\n    });\n\n    \/\/ ---- Validierung ----\n    function setError(field, msg) { field.classList.add(\"cc-invalid\"); if (msg) { var m = field.querySelector(\".cc-err-msg\"); if (m) m.textContent = msg; } }\n    function clearError(field) { if (field) field.classList.remove(\"cc-invalid\"); }\n    function isEmail(v) { return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(v); }\n    function isSwissDate(v) {\n      var m = \/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$\/.exec(v);\n      if (!m) return null;\n      var dd = +m[1], mm = +m[2], yy = +m[3];\n      var d = new Date(yy, mm - 1, dd);\n      if (d.getFullYear() !== yy || d.getMonth() !== mm - 1 || d.getDate() !== dd) return null;\n      return d;\n    }\n    \/\/ v2.5.0: liefert das Alter, damit Mindest- und H\u00f6chstalter getrennt\n    \/\/ gepr\u00fcft und getrennt gemeldet werden k\u00f6nnen.\n    function ageFrom(d) {\n      var t = new Date(), a = t.getFullYear() - d.getFullYear();\n      if (t.getMonth() < d.getMonth() || (t.getMonth() === d.getMonth() && t.getDate() < d.getDate())) a--;\n      return a;\n    }\n    function currentAge() { var d = isSwissDate(geb.value); return d ? ageFrom(d) : null; }\n    function reqField(id, ok) {\n      var el = $(id), field = el.closest(\".cc-field\");\n      if (!el.value.trim()) { setError(field); return false; }\n      return ok;\n    }\n\n    \/\/ ==========================================================\n    \/\/  INTERNE HINWEISE (v2.5.1)\n    \/\/  Nicht sichtbar f\u00fcr den Antragsteller. Der Text geht ausschliesslich\n    \/\/  im versteckten Feld cc_hinweise an die Kreditberatung; deshalb fix\n    \/\/  Deutsch, unabh\u00e4ngig von der Sprache der Oberfl\u00e4che.\n    \/\/  Der Mailer ab v2.4.0 berechnet dieselben Regeln zus\u00e4tzlich\n    \/\/  serverseitig \u2013 dieses Feld ist dort nur noch die Reserve.\n    \/\/ ==========================================================\n    var CC_WARN_TXT = {\n      alter_laufzeit:  \"Achtung Alter: Die Laufzeit reicht ueber Alter 65 hinaus - Rueckzahlung sollte bis 65 abgeschlossen sein.\",\n      einkommen_tief:  \"Einkommen tief (unter CHF 4'000) - Optimierung wichtig.\",\n      ag_kurz:         \"Weniger als 1 Jahr beim gleichen Arbeitgeber - kann das Scoring beeinflussen.\",\n      adresse_kurz:    \"Weniger als 1 Jahr an der gleichen Adresse - kann das Scoring beeinflussen.\",\n      anstellung:      \"Achtung: Anstellungsverhaeltnis pruefen (temporaer \/ selbstaendig).\",\n      ch_kurz:         \"Aufenthalt Schweiz weniger als 2 Jahre - Fall telefonisch im Detail analysieren.\",\n      partner_ausland: \"Partner\/in wohnhaft im Ausland - monatliche Unterstuetzungszahlung beruecksichtigen.\",\n      wohn_allein:     \"Wohnsituation: alleinerziehend mit Kind(ern).\",\n      wohn_partner:    \"Wohnsituation: mit Partner\/in im gleichen Haushalt lebend, mit Kind(ern).\"\n    };\n\n    function ccBuildSummary() {\n      var flags = {};\n\n      \/\/ Laufzeit \u00fcber Alter 65\n      var age = currentAge();\n      var n = parseInt($(\"ccLaufzeitHidden\").value, 10) || 0;\n      if (age !== null && n > 0 && (age + n \/ 12) > CONFIG.MAX_AGE_END) flags.alter_laufzeit = true;\n\n      \/\/ Einkommen tief\n      var ek = ccInt($(\"ccEinkommen\").value);\n      if (ek > 0 && ek < CONFIG.MIN_INCOME_HINT) flags.einkommen_tief = true;\n\n      \/\/ Arbeitgeber \/ Adresse\n      var mAG = ccMonthsSince($(\"ccAGJahr\").value, $(\"ccAGMonat\").value);\n      if (mAG !== null && mAG >= 0 && mAG < CONFIG.SCORING_MONTHS) flags.ag_kurz = true;\n      var mAd = ccMonthsSince($(\"ccAdrJahr\").value, $(\"ccAdrMonat\").value);\n      if (mAd !== null && mAd >= 0 && mAd < CONFIG.SCORING_MONTHS) flags.adresse_kurz = true;\n\n      \/\/ Anstellungsverh\u00e4ltnis\n      if (SPECIAL_EMPLOY.indexOf($(\"ccAnstVerh\").value) > -1) flags.anstellung = true;\n\n      \/\/ Aufenthalt Schweiz\n      var mCH = ccChMonths();\n      if (mCH !== null && mCH >= 0 && mCH < CONFIG.CH_HINT_MONTHS) flags.ch_kurz = true;\n\n      \/\/ Partner im Ausland\n      if (!isHidden($(\"ccPartnerSitField\")) && $(\"ccPartnerSituation\").value === \"Wohnhaft im Ausland\") flags.partner_ausland = true;\n\n      \/\/ Wohnsituation (Ledig + Kind)\n      if (!isHidden($(\"ccWohnsitField\"))) {\n        var w = $(\"ccWohnsituation\").value;\n        if (w === \"Alleinerziehend\") flags.wohn_allein = true;\n        else if (w) flags.wohn_partner = true;\n      }\n\n      \/\/ v2.5.1: keine Anzeige mehr \u2013 der Text wird nur noch f\u00fcr die\n      \/\/ \u00dcbermittlung zusammengesetzt (Reihenfolge = Reihenfolge in CC_WARN_TXT).\n      var txt = [];\n      for (var k in CC_WARN_TXT) {\n        if (Object.prototype.hasOwnProperty.call(CC_WARN_TXT, k) && flags[k]) { txt.push(CC_WARN_TXT[k]); }\n      }\n      if ($(\"ccHinweise\")) $(\"ccHinweise\").value = txt.join(\"\\n\");\n      return txt;\n    }\n\n    \/\/ Validierung je Schritt (Index 0\u20135)\n    function validateStep(i) {\n      var ok = true;\n      var stepEl = STEPS[i];\n      stepEl.querySelectorAll(\".cc-invalid\").forEach(function (f) { clearError(f); });\n\n      if (i === 0) { \/\/ Kreditwunsch\n        if (!$(\"ccZweck\").value) { setError($(\"ccZweck\").closest(\".cc-field\")); ok = false; }\n      }\n      else if (i === 1) { \/\/ Pers\u00f6nliche Angaben\n        if (!$(\"ccAnrede\").value.trim()) { setError($(\"ccAnrede\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccVorname\").value.trim()) { setError($(\"ccVorname\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccNachname\").value.trim()) { setError($(\"ccNachname\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccStrasse\").value.trim()) { setError($(\"ccStrasse\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccStrasseNr\").value.trim()) { setError($(\"ccStrasseNr\").closest(\".cc-field\")); ok = false; }\n        if (!\/^\\d{4,5}$\/.test($(\"ccPLZ\").value)) { setError($(\"ccPLZ\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccOrt\").value.trim()) { setError($(\"ccOrt\").closest(\".cc-field\")); ok = false; }\n        \/\/ v2.5.3: Alter 18\u201368, gleiche Funktion wie die Sofortpr\u00fcfung\n        if ( !ccCheckGeb( true ) ) { ok = false; }\n        if (!$(\"ccAdrMonat\").value || !$(\"ccAdrJahr\").value) { setError($(\"ccAdrMonat\").closest(\".cc-field\")); ok = false; }\n        if (!natSel.value) { setError(natSel.closest(\".cc-field\")); ok = false; }\n        var auslShown = !$(\"ccAuslBlock\").classList.contains(\"cc-hidden\");\n        var inCHShown = auslShown && !$(\"ccInCHBlock\").classList.contains(\"cc-hidden\");\n        if (inCHShown) {\n          if (!$(\"ccInCHTag\").value || !$(\"ccInCHMonat\").value || !$(\"ccInCHJahr\").value) { setError($(\"ccInCHBlock\")); ok = false; }\n          else {\n            \/\/ v2.5.0: weniger als 1 Jahr in der Schweiz -> kein Kredit m\u00f6glich\n            updateChNotes();\n            var mo = ccChMonths();\n            if (mo !== null && mo >= 0 && mo < CONFIG.CH_STOP_MONTHS) {\n              ok = false;\n              $(\"ccChStop\").scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n            }\n          }\n        }\n      }\n      else if (i === 2) { \/\/ Kontakt + Zustimmung\n        if (!phoneValid()) { setError(telNum.closest(\".cc-field\")); ok = false; }\n        if (!isEmail($(\"ccEmail\").value.trim())) { setError($(\"ccEmail\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccRecht\").checked) { setError($(\"ccConsentField\")); ok = false; }\n      }\n      else if (i === 3) { \/\/ Wohnen & Familie\n        if (!$(\"ccMietStatus\").value) { setError($(\"ccMietStatus\").closest(\".cc-field\")); ok = false; }\n        if ($(\"ccMietStatus\").value !== \"Eigentum\" && !$(\"ccMiete\").value.trim()) { setError($(\"ccMiete\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccKK\").value.trim()) { setError($(\"ccKK\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccZivil\").value) { setError($(\"ccZivil\").closest(\".cc-field\")); ok = false; }\n        \/\/ v2.5.0: Wohnsituation bei Ledig + Kind\n        if (!isHidden($(\"ccWohnsitField\")) && !$(\"ccWohnsituation\").value) { setError($(\"ccWohnsitField\")); ok = false; }\n      }\n      else if (i === 4) { \/\/ Einkommen\n        if (!$(\"ccAnstVerh\").value) { setError($(\"ccAnstVerh\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccAGMonat\").value || !$(\"ccAGJahr\").value) { setError($(\"ccAGMonat\").closest(\".cc-field\")); ok = false; }\n        if (!$(\"ccTransport\").value) { setError($(\"ccTransport\").closest(\".cc-field\")); ok = false; }\n        var _ek = parseInt(($(\"ccEinkommen\").value || \"\").replace(\/\\D\/g, \"\"), 10) || 0;\n        if (_ek < CONFIG.MIN_INCOME) { setError($(\"ccEinkommen\").closest(\".cc-field\")); ok = false; }\n        \/\/ v2.5.0: Partner ohne Einkommen -> Situation (und ggf. Unterst\u00fctzung)\n        if (!isHidden($(\"ccPartnerSitField\"))) {\n          if (!$(\"ccPartnerSituation\").value) { setError($(\"ccPartnerSitField\")); ok = false; }\n          if (!isHidden($(\"ccPartnerAuslandField\")) && $(\"ccAlimenteInCHF\").value.trim() === \"\") {\n            setError($(\"ccPartnerAuslandField\")); ok = false;\n          }\n        }\n        if (!$(\"ccPartnerBlock\").classList.contains(\"cc-hidden\")) {\n          if (!$(\"ccPartnerVerh\").value) { setError($(\"ccPartnerVerh\").closest(\".cc-field\")); ok = false; }\n          if (!$(\"ccPartnerMonat\").value || !$(\"ccPartnerJahr\").value) { setError($(\"ccPartnerMonat\").closest(\".cc-field\")); ok = false; }\n          if ((parseInt(($(\"ccPartnerEinkommen\").value || \"\").replace(\/\\D\/g, \"\"), 10) || 0) <= 0) { setError($(\"ccPartnerEinkommen\").closest(\".cc-field\")); ok = false; }\n        }\n        if ($(\"ccKredite\") && $(\"ccKredite\").value === \"Ja\") {\n          if (!$(\"ccBank1\").value.trim())  { setError($(\"ccBank1\").closest(\".cc-field\"));  ok = false; }\n          if (!$(\"ccSaldo1\").value.trim()) { setError($(\"ccSaldo1\").closest(\".cc-field\")); ok = false; }\n        }\n      }\n      else if (i === 5) { \/\/ Versicherung & Mitteilung: bei \"Ja\" muss ein Produkt gew\u00e4hlt sein\n        if ($(\"ccVers\") && $(\"ccVers\").value === \"1\" && !$(\"ccVersProd\").value) { $(\"ccVersOptions\").classList.add(\"cc-invalid\"); ok = false; }\n      }\n      if (!ok) { var first = stepEl.querySelector(\".cc-invalid\"); if (first) first.scrollIntoView({ behavior: \"smooth\", block: \"center\" }); }\n      return ok;\n    }\n\n    form.addEventListener(\"input\", function (e) { var f = e.target.closest(\".cc-field, .cc-consent\"); if (f) clearError(f); });\n    $(\"ccRecht\").addEventListener(\"change\", function () { if (this.checked) clearError($(\"ccConsentField\")); schedulePartial(); });\n\n    \/\/ ---- v2.5.3: Geburtsdatum sofort pr\u00fcfen (Alter 18\u201368) ----\n    \/\/ strict = true  -> beim Klick auf \"Weiter\": unvollst\u00e4ndige Eingabe ist ein Fehler\n    \/\/ strict = false -> w\u00e4hrend der Eingabe: erst ab 10 Zeichen (TT.MM.JJJJ) pr\u00fcfen\n    function ccCheckGeb( strict ) {\n      var field = geb.closest(\".cc-field\");\n      \/\/ v3.10.0: beim strengen Pruefen (Weiter\/Absenden) auf TT.MM.JJJJ auffuellen,\n      \/\/ damit z. B. 1.5.1967 als 01.05.1967 akzeptiert wird.\n      if ( strict ) { geb.value = padDate( geb.value ); }\n      var raw   = geb.value.trim();\n      if ( raw.length < 10 ) {\n        if ( strict ) { setErrorVariant( field, \"format\" ); return false; }\n        clearError( field ); return true;\n      }\n      var d = isSwissDate( raw );\n      if ( !d ) { setErrorVariant( field, \"format\" ); return false; }\n      var a = ageFrom( d );\n      if ( a < CONFIG.MIN_AGE ) { setErrorVariant( field, \"min\" ); return false; }\n      if ( a > CONFIG.MAX_AGE ) { setErrorVariant( field, \"max\" ); return false; }\n      clearError( field );\n      return true;\n    }\n    \/\/ WICHTIG: erst hier registriert, damit die Meldung nicht vom\n    \/\/ clearError-Listener oberhalb wieder entfernt wird (Formular-Listener\n    \/\/ laufen nach den Listenern am Feld selbst).\n    form.addEventListener(\"input\", function (e) { if (e.target === geb) { ccCheckGeb(false); } });\n    geb.addEventListener(\"blur\", function () { geb.value = padDate(geb.value); ccCheckGeb(false); });\n\n    \/\/ ---- Payload ----\n    function buildPayload(stage) {\n      ccBuildSummary(); \/\/ v2.5.0: cc_hinweise immer aktuell halten\n      var fd = new FormData(form), payload = {};\n      fd.forEach(function (v, k) { payload[k] = v; });\n      if ( payload.Geburtsdatum ) { payload.Geburtsdatum = padDate( payload.Geburtsdatum ); }\n      payload.rechtliche_hinweise = $(\"ccRecht\").checked ? \"ja\" : \"nein\";\n      payload.Werbung = $(\"ccWerbung\").checked ? \"ja\" : \"nein\";\n      payload.Monatslohn13 = $(\"ccM13\").checked ? \"ja\" : \"nein\";\n      payload.PartnerMonatslohn13 = $(\"ccPM13\").checked ? \"ja\" : \"nein\";\n      payload.Betreibungen = ($(\"ccBetr\") && $(\"ccBetr\").checked) ? \"ja\" : \"nein\";\n      payload.kontakt_email = $(\"ccKontaktEmail\").checked ? \"ja\" : \"nein\";\n      payload.kontakt_whatsapp = $(\"ccKontaktWhatsapp\").checked ? \"ja\" : \"nein\";\n      payload.kontakt_sms = $(\"ccKontaktSms\").checked ? \"ja\" : \"nein\";\n      payload.kontakt_telefon = $(\"ccKontaktTelefon\").checked ? \"ja\" : \"nein\";\n      payload.phonenumber = composePhone();\n      payload.lead_uid = LEAD_UID;\n      payload.cc_stage = stage;\n      \/\/ v2.6.0: l\u00f6st im Mailer die Info-Mail zum Teil-Save aus. Mehrfachversand\n      \/\/ verhindert der Mailer serverseitig per Transient (1 Std. pro lead_uid).\n      if (stage === \"partial\") { payload.cc_notify = \"1\"; }\n      \/\/ v2.5.0: nicht sichtbare Zusatzfelder nicht mitsenden\n      if (isHidden($(\"ccWohnsitField\"))) delete payload.Wohnsituation;\n      if (isHidden($(\"ccPartnerSitField\"))) { delete payload.PartnerSituation; delete payload.AlimenteInCHF; }\n      else if (isHidden($(\"ccPartnerAuslandField\"))) { delete payload.AlimenteInCHF; }\n      return payload;\n    }\n\n    \/\/ ---- Teil-Save (partial) ----\n    \/\/ Ausl\u00f6ser: rechtliche Hinweise akzeptiert UND alle Pflichtdaten g\u00fcltig.\n    function partialReady() {\n      if (!$(\"ccRecht\").checked) return false;\n      var must = [\"ccAnrede\", \"ccVorname\", \"ccNachname\", \"ccStrasse\", \"ccStrasseNr\", \"ccOrt\"];\n      for (var i = 0; i < must.length; i++) { if (!$(must[i]).value.trim()) return false; }\n      if (!\/^\\d{4,5}$\/.test($(\"ccPLZ\").value)) return false;\n      if (!phoneValid()) return false;\n      if (!isEmail($(\"ccEmail\").value.trim())) return false;\n      return true;\n    }\n    var lastPartialHash = \"\", partialTimer = null, finalizing = false;\n    function sendPartial() {\n      if (finalizing || !partialReady()) return;\n      var payload = buildPayload(\"partial\");\n      var hash = JSON.stringify(payload);\n      if (hash === lastPartialHash) return;\n      lastPartialHash = hash;\n      try {\n        fetch(CONFIG.ENDPOINT, {\n          method: \"POST\",\n          headers: { \"Content-Type\": \"application\/json\", \"Accept\": \"application\/json\" },\n          body: JSON.stringify(payload), keepalive: true\n        }).catch(function () {});\n      } catch (e) {}\n    }\n    function schedulePartial() {\n      if (finalizing || !partialReady()) return;\n      clearTimeout(partialTimer); partialTimer = setTimeout(sendPartial, 800);\n    }\n    form.addEventListener(\"input\", schedulePartial);\n    form.addEventListener(\"change\", schedulePartial);\n    window.addEventListener(\"pagehide\", function () { if (!finalizing && partialReady()) sendPartial(); });\n\n    \/\/ ==========================================================\n    \/\/  WIZARD-STEUERUNG\n    \/\/ ==========================================================\n    var STEPS = Array.prototype.slice.call(form.querySelectorAll(\".cc-step\"));\n    \/\/ v3.2.0: Titel & Schrittw\u00f6rter aus dem (von TranslatePress \u00fcbersetzten) HTML lesen,\n    \/\/ statt aus fest verdrahteten JS-Strings. So sind sie ab dem ersten Rendern \u00fcbersetzt.\n    var TITLE_FALLBACK = [\"Kreditwunsch\",\"Pers\u00f6nliche Angaben\",\"Kontakt & Zustimmung\",\"Wohnen & Familie\",\"Einkommen & Besch\u00e4ftigung\",\"\u00dcbersicht & Absenden\"];\n    var TITLES = Array.prototype.map.call(\n      document.querySelectorAll(\"#ccStepTitleSrc > div\"),\n      function (el) { return (el.textContent || \"\").trim(); }\n    ).filter(function (t) { return t !== \"\"; });\n    if (TITLES.length < STEPS.length) { TITLES = TITLE_FALLBACK; }\n    var STEP_WORDS = Array.prototype.map.call(\n      document.querySelectorAll(\"#ccStepWordSrc > div\"),\n      function (el) { return (el.textContent || \"\").trim(); }\n    );\n    var WORD_STEP = (STEP_WORDS[0] && STEP_WORDS[0] !== \"\") ? STEP_WORDS[0] : \"Schritt\";\n    var WORD_VON  = (STEP_WORDS[1] && STEP_WORDS[1] !== \"\") ? STEP_WORDS[1] : \"von\";\n    var cur = 0;\n    var back = $(\"ccBack\"), next = $(\"ccNext\"), submit = $(\"ccSubmit\"), progressFill = $(\"ccProgressFill\");\n\n    function renderStep() {\n      STEPS.forEach(function (s, idx) { s.classList.toggle(\"cc-active\", idx === cur); });\n      $(\"ccStepLabel\").textContent = WORD_STEP + \" \" + (cur + 1) + \" \" + WORD_VON + \" \" + STEPS.length;\n      $(\"ccStepTitle\").textContent = TITLES[cur] || \"\";\n      progressFill.style.width = Math.round(((cur + 1) \/ STEPS.length) * 100) + \"%\";\n      back.style.visibility = cur === 0 ? \"hidden\" : \"visible\";\n      var last = cur === STEPS.length - 1;\n      toggle(next, !last);\n      toggle(submit, last);\n      $(\"ccFormMsg\").classList.remove(\"show\");\n    }\n    function goTo(i) { cur = Math.max(0, Math.min(i, STEPS.length - 1)); renderStep(); form.scrollIntoView({ behavior: \"smooth\", block: \"start\" }); }\n\n    next.addEventListener(\"click\", function () {\n      if (!validateStep(cur)) return;\n      sendPartial();           \/\/ Upsert nach jedem Schritt (sofern bereit)\n      goTo(cur + 1);\n    });\n    back.addEventListener(\"click\", function () { goTo(cur - 1); });\n\n    \/\/ ==========================================================\n    \/\/  TRACKING-UEBERGABE  (v3.18.0)\n    \/\/ ----------------------------------------------------------\n    \/\/  Legt die fuer Google Ads noetigen Daten im sessionStorage ab.\n    \/\/  Gelesen wird sie auf der Danke-Seite vom GTM-Tag\n    \/\/  \"Lead - dataLayer-Push\", das daraus das Event bf_lead baut.\n    \/\/\n    \/\/  Bewusste Entscheidungen:\n    \/\/  - NUR beim finalen Absenden. Teil-Speicherungen (cc_stage\n    \/\/    \"partial\") duerfen keine Conversion ausloesen.\n    \/\/  - country ist fest \"CH\". Google erwartet dort das Land der\n    \/\/    WOHNADRESSE, nicht die Staatsangehoerigkeit. Alle Kunden\n    \/\/    wohnen in der Schweiz; das Feld Nation gehoert nicht hierher.\n    \/\/  - lead_uid dient im Conversion-Tag als transaction_id und\n    \/\/    verhindert Doppelzaehlung bei einem Reload.\n    \/\/  - Ein Fehler hier darf den Redirect nie verhindern, deshalb\n    \/\/    alles in try\/catch.\n    \/\/ ==========================================================\n    function ccStoreLead(payload) {\n      try {\n        if (!payload || payload.cc_stage !== \"final\") { return; }\n\n        var fo = String(payload.fo || \"\").toUpperCase();\n\n        var ec = {};\n        if (payload.email)       { ec.email        = String(payload.email).trim().toLowerCase(); }\n        if (payload.phonenumber) { ec.phone_number = String(payload.phonenumber).replace(\/\\s+\/g, \"\"); }\n        if (payload.vorname)     { ec.first_name   = payload.vorname; }\n        if (payload.nachname)    { ec.last_name    = payload.nachname; }\n        if (payload.PLZ)         { ec.postal_code  = String(payload.PLZ).trim(); }\n        ec.country = \"CH\";\n\n        sessionStorage.setItem(\"bf_lead\", JSON.stringify({\n          lead_uid:   payload.lead_uid || \"\",\n          language:   String(payload.cc_lang || CC_LANG || \"de\").split(\/[-_]\/)[0].toLowerCase(),\n          office:     (fo === \"LS\") ? \"LS\" : \"AA\",\n          lead_stage: \"final\",\n          ec:         ec\n        }));\n      } catch (e) {\n        \/* sessionStorage kann in Safari Private Mode werfen.\n           Der Lead ist bereits in der Datenbank - der Redirect\n           laeuft weiter, nur die Anreicherung fehlt dann. *\/\n      }\n    }\n\n    \/\/ ---- Finaler Submit ----\n    var submitting = false;\n    form.addEventListener(\"submit\", function (e) {\n      e.preventDefault();\n      if (submitting) return;\n      \/\/ Alle Schritte pr\u00fcfen; beim ersten Fehler dorthin springen.\n      for (var i = 0; i < STEPS.length; i++) {\n        if (!validateStep(i)) { goTo(i); return; }\n      }\n      finalizing = true;\n      submitting = true; submit.disabled = true; submit.classList.add(\"is-loading\");\n      ccSendingLabel(submit.querySelector(\".cc-submit-label\"));\n      var payload = buildPayload(\"final\");\n      fetch(CONFIG.ENDPOINT, {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application\/json\", \"Accept\": \"application\/json\" },\n        body: JSON.stringify(payload)\n      })\n      .then(function (r) { return r.json().catch(function () { return { success: r.ok }; }); })\n      .then(function (data) {\n        if (data && data.success) {\n          ccStoreLead(payload);   \/\/ v3.18.0: Tracking-Uebergabe an den GTM\n          window.location.href = (CONFIG.THANKYOU_URLS && CONFIG.THANKYOU_URLS[CC_LANG]) || CONFIG.THANKYOU_URL;\n        }\n        else { throw new Error((data && data.message) || ccT(\"submitFailed\")); }\n      })\n      .catch(function (err) {\n        finalizing = false; submitting = false; submit.disabled = false; submit.classList.remove(\"is-loading\");\n        ccResetLabel(submit.querySelector(\".cc-submit-label\"));\n        var msgBox = $(\"ccFormMsg\");\n        msgBox.textContent = ccT(\"error\") + \" (\" + err.message + \")\";\n        msgBox.classList.add(\"show\");\n        msgBox.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n      });\n    });\n\n    \/\/ ---- Prefill aus URL (u. a. \u00dcbergabe vom Budget-Rechner) ----\n    (function () {\n      var p = new URLSearchParams(window.location.search);\n      function has(n){ var v=p.get(n); return v!==null && v.trim()!==\"\"; }\n      function val(n){ var v=p.get(n); return v===null?\"\":v.trim(); }\n      function fire(el,ev){ el.dispatchEvent(new Event(ev,{bubbles:true})); }\n      function setField(name){ if(!has(name))return; var el=form.querySelector('[name=\"'+name+'\"]'); if(!el)return; el.value=val(name); fire(el,\"input\"); fire(el,\"change\"); }\n\n      [\"Verwendungszweck\",\"vorname\",\"nachname\",\"Geburtsdatum\",\"Strasse\",\"Strassennr\",\n       \"email\",\"Krankenkasse\",\"Einkommen\",\n       \/\/ v3.3.1: MM\/JJJJ-Dropdowns (Werte sind einfache Zahlen -> setField gen\u00fcgt)\n       \"SeitwannadresseMonat\",\"SeitwannadresseJahr\",\n       \"SeitWannInCHTag\",\"SeitWannInCHMonat\",\"SeitWannInCH\",\n       \"SeitwannAGMonat\",\"SeitwannAGJahr\",\n       \"PartnerSeitwannAngestelltMonat\",\"PartnerSeitwannAngestelltCHJahr\"].forEach(setField);\n\n      if(has(\"PLZ\")){ $(\"ccPLZ\").value=val(\"PLZ\").replace(\/\\D\/g,\"\"); fire($(\"ccPLZ\"),\"input\"); }\n      if(has(\"Ort\")){ $(\"ccOrt\").value=val(\"Ort\"); }\n      if(has(\"Kanton\")){ $(\"ccKanton\").value=val(\"Kanton\").toUpperCase().replace(\/[^A-Z]\/g,\"\"); }\n\n      if(has(\"Nation\")){ natSel.value=val(\"Nation\"); fire(natSel,\"change\"); }\n      if(has(\"AuslaenderAusweis\")){ var aw=$(\"ccAusweis\"); if(aw){ aw.value=val(\"AuslaenderAusweis\"); fire(aw,\"change\"); } }\n\n      if(has(\"Zivilstand\")){ $(\"ccZivil\").value=val(\"Zivilstand\"); fire($(\"ccZivil\"),\"change\"); }\n      if(has(\"MietStatus\")){ $(\"ccMietStatus\").value=val(\"MietStatus\"); fire($(\"ccMietStatus\"),\"change\"); }\n      if(has(\"Miete\")){ $(\"ccMiete\").value=val(\"Miete\").replace(\/\\D\/g,\"\"); }\n      if(has(\"Alimente\")){ $(\"ccAlimente\").value=val(\"Alimente\").replace(\/\\D\/g,\"\"); }\n\n      if(has(\"Kinder\")){ $(\"ccKinder\").value=String(parseInt(val(\"Kinder\"),10)||0); fire($(\"ccKinder\"),\"change\");\n        [1,2,3,4].forEach(function(i){ if(has(\"kind_\"+i)){ var k=form.querySelector('[name=\"kind_'+i+'\"]'); if(k) k.value=val(\"kind_\"+i); } });\n      }\n\n      if(val(\"Monatslohn13\")===\"ja\"){ $(\"ccM13\").checked=true; }\n      if(has(\"PartnerEinkommen\")){ $(\"ccPartnerHatEink\").value=\"Ja\"; fire($(\"ccPartnerHatEink\"),\"change\"); $(\"ccPartnerEinkommen\").value=val(\"PartnerEinkommen\").replace(\/\\D\/g,\"\"); }\n      if(val(\"PartnerMonatslohn13\")===\"ja\"){ $(\"ccPM13\").checked=true; }\n      if(has(\"Transport\")){ $(\"ccTransport\").value=val(\"Transport\"); }\n\n      if(has(\"Anrede\")){ var wanted=\/^f\/i.test(val(\"Anrede\"))?\"Frau\":\"Herr\"; var b=seg.querySelector('button[data-val=\"'+wanted+'\"]'); if(b) b.click(); }\n\n      if(has(\"phonenumber\")||has(\"mob\")){\n        var tel=(val(\"phonenumber\")||val(\"mob\")).replace(\/\\s+\/g,\"\"); var dial=\"41\";\n        if(tel.charAt(0)===\"+\"){ [\"41\",\"423\",\"49\",\"33\",\"39\"].some(function(cc){ if(tel.indexOf(\"+\"+cc)===0){dial=cc;tel=tel.slice(1+cc.length);return true;} return false; }); }\n        else { tel=tel.replace(\/^00\/,\"\"); }\n        var natn=tel.replace(\/\\D\/g,\"\").replace(\/^0+\/,\"\");\n        telCountry.value=dial; fire(telCountry,\"change\");\n        if(natn){ telNum.value=natn; fire(telNum,\"input\"); }\n      }\n    })();\n\n    \/\/ ---- v3.0.0: Rechtliche Links aus der PHP-Konfiguration setzen ----\n    (function () {\n      var a1 = form.querySelector('.cc-legal-link[data-l=\"legal\"]');\n      var a2 = form.querySelector('.cc-legal-link[data-l=\"privacy\"]');\n      var _legal   = (CONFIG.LEGAL_URLS   && CONFIG.LEGAL_URLS[CC_LANG])   || CONFIG.LEGAL_URL;\n      var _privacy = (CONFIG.PRIVACY_URLS && CONFIG.PRIVACY_URLS[CC_LANG]) || CONFIG.PRIVACY_URL;\n      if (a1 && _legal)   { a1.setAttribute(\"href\", _legal); }\n      if (a2 && _privacy) { a2.setAttribute(\"href\", _privacy); }\n    })();\n\n    \/\/ ---- Rechtliche Links als Popup (iframe-Modal) ----\n    (function () {\n      var modal = $(\"ccModal\"), frame = $(\"ccModalFrame\"), cbtn = $(\"ccModalClose\");\n      if (!modal || !frame) return;\n      function openM(url) { frame.src = url; modal.classList.add(\"open\"); modal.setAttribute(\"aria-hidden\", \"false\"); document.body.style.overflow = \"hidden\"; }\n      function closeM() { modal.classList.remove(\"open\"); modal.setAttribute(\"aria-hidden\", \"true\"); frame.src = \"about:blank\"; document.body.style.overflow = \"\"; }\n      function legalUrl(url) { if (CC_LANG !== \"fr\" && CC_LANG !== \"it\") return url; return url.replace(\/^(https?:\\\/\\\/[^\\\/]+)\\\/\/, \"$1\/\" + CC_LANG + \"\/\"); }\n      ROOT.querySelectorAll(\".cc-legal-link\").forEach(function (a) {\n        a.addEventListener(\"click\", function (e) { e.preventDefault(); openM(legalUrl(a.getAttribute(\"href\"))); });\n      });\n      if (cbtn) cbtn.addEventListener(\"click\", closeM);\n      modal.addEventListener(\"click\", function (e) { if (e.target === modal) closeM(); });\n      document.addEventListener(\"keydown\", function (e) { if (e.key === \"Escape\") closeM(); });\n    })();\n\n    \/\/ ---- Start: abh\u00e4ngige Anzeigen einmalig setzen (v2.5.0) ----\n    updateKKHint();\n    updateWohnsit();\n    updatePartner();\n    updateAnstNotes();\n    updateAGNotes();\n    updateChNotes();\n    ccBuildSummary();\n\n    renderStep();\n  })();\n  <\/script>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-df83d2a elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"df83d2a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5afc01a elementor-widget elementor-widget-spacer\" data-id=\"5afc01a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3802021 elementor-widget elementor-widget-image\" data-id=\"3802021\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"143\" src=\"https:\/\/www.bestfinance.ch\/wp-content\/uploads\/2026\/09\/team-bestfinance-ok-1-300x143.png\" class=\"attachment-medium size-medium wp-image-206159\" alt=\"team bestfinance ok\" srcset=\"https:\/\/www.bestfinance.ch\/wp-content\/uploads\/2026\/09\/team-bestfinance-ok-1-300x143.png 300w, https:\/\/www.bestfinance.ch\/wp-content\/uploads\/2026\/09\/team-bestfinance-ok-1-18x9.png 18w, https:\/\/www.bestfinance.ch\/wp-content\/uploads\/2026\/09\/team-bestfinance-ok-1.png 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a0def7 elementor-widget elementor-widget-html\" data-id=\"3a0def7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  ===================================================================\r\n  Best Finance \u2013 Hilfe-Block \"Sie kommen nicht weiter?\"\r\n  Version 1.3.0\r\n  Stand   2026-07-27\r\n  ===================================================================\r\n  ZWECK\r\n    Blockt unter der Kreditanfrage: Kunde kann anrufen oder per\r\n    WhatsApp schreiben. Die zustaendige Filiale richtet sich nach\r\n    der Sprache bzw. dem Kampagnenparameter fo.\r\n\r\n  EINBAU\r\n    Elementor -> Widget \"HTML\" (Custom HTML), unterhalb des\r\n    Kreditanfrage-Formulars. Alles (CSS\/HTML\/JS) in einem Block.\r\n\r\n  DATENQUELLE\r\n    Alle Stammdaten kommen aus window.CC_CALC\r\n    (cc-calc-werte.php ab 2.1.0, wp_head Prioritaet 1).\r\n    Es wird NICHTS hart eingetragen; die Werte in BFH_FALLBACK\r\n    greifen nur, falls CC_CALC fehlt oder ein Feld leer ist.\r\n\r\n      Aarau (AA)              Lausanne (LS)\r\n      ----------------------  ----------------------\r\n      firma_name              fil_firmenname\r\n      firma_plzort            fil_plzort\r\n      firma_telefon           fil_festnetz\r\n      firma_telefon_link      fil_festnetz_link\r\n      firma_whatsapp          fil_whatsapp\r\n      firma_whatsapp_link     fil_whatsapplink\r\n\r\n    Optional, sobald in cc-calc-werte.php vorhanden \u2013 sonst greifen\r\n    die Standardzeiten weiter unten:\r\n      firma_zeit_von \/ firma_zeit_bis\r\n      fil_zeit_von   \/ fil_zeit_bis\r\n\r\n  ZUORDNUNG\r\n    Filiale:  ?fo=AA|LS  ->  sessionStorage 'bf_fo'  ->  aus Sprache\r\n    Sprache:  ?sp=D|F|I|P|E|U  ->  sessionStorage 'bf_sp'\r\n              ->  URL-Pfad \/fr\/ \/pt\/ ...  ->  <html lang>\r\n    Sprache F oder P  =>  Lausanne, sonst Aarau.\r\n\r\n  TRANSLATEPRESS\r\n    notranslate + data-no-translation + translate=\"no\" am Container.\r\n\r\n  GTM\r\n    event:'bf_kontakt_klick', kanal, filiale, sprache, quelle\r\n\r\n  PRUEFEN\r\n    Konsole:  window.CC_CALC.firma_telefon\r\n              window.BFHilfe        -> Filiale, Sprache, Quelle\r\n  ===================================================================\r\n-->\r\n\r\n<div id=\"bfh-root\" class=\"bfh notranslate\" data-no-translation translate=\"no\">\r\n  <div class=\"bfh-card\">\r\n\r\n    <div class=\"bfh-glow\" aria-hidden=\"true\"><\/div>\r\n\r\n    <div class=\"bfh-head\">\r\n      <span class=\"bfh-eyebrow\" data-bfh=\"eyebrow\"><\/span>\r\n      <h3 class=\"bfh-title\" data-bfh=\"title\"><\/h3>\r\n      <p class=\"bfh-lead\" data-bfh=\"lead\"><\/p>\r\n    <\/div>\r\n\r\n    <div class=\"bfh-actions\">\r\n      <a class=\"bfh-btn bfh-btn--call\" id=\"bfh-call\" href=\"#\">\r\n        <span class=\"bfh-ico\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\"\r\n               stroke=\"currentColor\" stroke-width=\"1.9\"\r\n               stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n            <path d=\"M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z\"\/>\r\n          <\/svg>\r\n        <\/span>\r\n        <span class=\"bfh-btn-txt\">\r\n          <span class=\"bfh-btn-label\" data-bfh=\"callLabel\"><\/span>\r\n          <span class=\"bfh-btn-sub\" id=\"bfh-tel-display\"><\/span>\r\n        <\/span>\r\n        <span class=\"bfh-arrow\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\"\r\n               stroke=\"currentColor\" stroke-width=\"2.2\"\r\n               stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n            <path d=\"M5 12h14M13 6l6 6-6 6\"\/>\r\n          <\/svg>\r\n        <\/span>\r\n      <\/a>\r\n\r\n      <a class=\"bfh-btn bfh-btn--wa\" id=\"bfh-wa\" href=\"#\" target=\"_blank\" rel=\"noopener nofollow\">\r\n        <span class=\"bfh-ico\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"currentColor\">\r\n            <path d=\"M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.46 1.32 4.96L2 22l5.25-1.38a9.9 9.9 0 0 0 4.79 1.22h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.82 9.82 0 0 0 12.04 2zm0 18.15h-.01a8.2 8.2 0 0 1-4.19-1.15l-.3-.18-3.12.82.83-3.04-.2-.31a8.2 8.2 0 0 1-1.26-4.38c0-4.54 3.7-8.24 8.25-8.24 2.2 0 4.27.86 5.83 2.42a8.2 8.2 0 0 1 2.41 5.83c0 4.54-3.7 8.23-8.24 8.23zm4.52-6.17c-.25-.12-1.47-.72-1.69-.81-.23-.08-.39-.12-.56.13-.16.24-.64.8-.79.97-.14.16-.29.18-.54.06-.25-.12-1.05-.39-1.99-1.23-.74-.66-1.23-1.47-1.38-1.72-.14-.25-.01-.38.11-.5.11-.11.25-.29.37-.43.13-.15.17-.25.25-.41.08-.17.04-.31-.02-.43-.06-.12-.56-1.34-.76-1.84-.2-.48-.41-.42-.56-.43h-.48c-.16 0-.43.06-.65.31-.22.25-.85.84-.85 2.04s.87 2.37.99 2.53c.12.17 1.71 2.61 4.14 3.66.58.25 1.03.4 1.38.51.58.19 1.11.16 1.53.1.47-.07 1.47-.6 1.68-1.18.21-.58.21-1.08.14-1.18-.06-.11-.22-.17-.47-.29z\"\/>\r\n          <\/svg>\r\n        <\/span>\r\n        <span class=\"bfh-btn-txt\">\r\n          <span class=\"bfh-btn-label\" data-bfh=\"waLabel\"><\/span>\r\n          <span class=\"bfh-btn-sub\" data-bfh=\"waSub\"><\/span>\r\n        <\/span>\r\n        <span class=\"bfh-arrow\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\"\r\n               stroke=\"currentColor\" stroke-width=\"2.2\"\r\n               stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n            <path d=\"M5 12h14M13 6l6 6-6 6\"\/>\r\n          <\/svg>\r\n        <\/span>\r\n      <\/a>\r\n    <\/div>\r\n\r\n    <div class=\"bfh-foot\">\r\n      <span class=\"bfh-status\">\r\n        <span class=\"bfh-dot\" id=\"bfh-dot\"><\/span>\r\n        <span id=\"bfh-status-txt\"><\/span>\r\n      <\/span>\r\n      <span class=\"bfh-sep\" aria-hidden=\"true\">\u00b7<\/span>\r\n      <span class=\"bfh-branch\" id=\"bfh-branch\"><\/span>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n\/* ---------- Best Finance Hilfe-Block ---------- *\/\r\n#bfh-root{\r\n  --bfh-navy:#1e3a5c;\r\n  --bfh-navy-2:#2b5183;\r\n  --bfh-blue:#3b82f6;\r\n  --bfh-wa:#1fae54;\r\n  --bfh-wa-2:#25d366;\r\n  --bfh-ink:#1b2b3d;\r\n  --bfh-muted:#64748b;\r\n  --bfh-line:#e3eaf3;\r\n  --bfh-bg:#ffffff;\r\n  font-family:inherit;\r\n  color:var(--bfh-ink);\r\n  max-width:760px;\r\n  margin:0 auto;\r\n}\r\n#bfh-root *,#bfh-root *::before,#bfh-root *::after{box-sizing:border-box;}\r\n\r\n#bfh-root .bfh-card{\r\n  position:relative;\r\n  overflow:hidden;\r\n  background:var(--bfh-bg);\r\n  border:1px solid var(--bfh-line);\r\n  border-radius:18px;\r\n  padding:32px 30px 24px;\r\n  box-shadow:0 10px 30px -18px rgba(30,58,92,.35);\r\n}\r\n#bfh-root .bfh-card::before{\r\n  content:\"\";\r\n  position:absolute;left:0;top:0;bottom:0;width:5px;\r\n  background:linear-gradient(180deg,var(--bfh-navy) 0%,var(--bfh-blue) 100%);\r\n}\r\n#bfh-root .bfh-glow{\r\n  position:absolute;right:-90px;top:-110px;\r\n  width:280px;height:280px;border-radius:50%;\r\n  background:radial-gradient(circle,rgba(59,130,246,.13) 0%,rgba(59,130,246,0) 70%);\r\n  pointer-events:none;\r\n}\r\n\r\n#bfh-root .bfh-head{position:relative;margin-bottom:22px;}\r\n#bfh-root .bfh-eyebrow{\r\n  display:inline-block;\r\n  font-size:12px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;\r\n  color:var(--bfh-blue);margin-bottom:8px;\r\n}\r\n#bfh-root .bfh-title{\r\n  margin:0 0 8px;\r\n  font-size:24px;line-height:1.25;font-weight:700;color:var(--bfh-navy);\r\n}\r\n#bfh-root .bfh-lead{\r\n  margin:0;font-size:15.5px;line-height:1.6;color:var(--bfh-muted);max-width:52ch;\r\n}\r\n\r\n#bfh-root .bfh-actions{\r\n  position:relative;\r\n  display:grid;grid-template-columns:1fr 1fr;gap:14px;\r\n}\r\n#bfh-root .bfh-btn{\r\n  display:flex;align-items:center;gap:13px;\r\n  padding:15px 16px;border-radius:12px;\r\n  text-decoration:none!important;color:#fff!important;\r\n  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;\r\n}\r\n#bfh-root .bfh-btn:hover{transform:translateY(-2px);filter:saturate(1.05);}\r\n#bfh-root .bfh-btn:focus-visible{outline:3px solid var(--bfh-blue);outline-offset:3px;}\r\n#bfh-root .bfh-btn--call{\r\n  background:linear-gradient(135deg,var(--bfh-navy) 0%,var(--bfh-navy-2) 100%);\r\n  box-shadow:0 8px 20px -12px rgba(30,58,92,.9);\r\n}\r\n#bfh-root .bfh-btn--call:hover{box-shadow:0 14px 26px -12px rgba(30,58,92,.95);}\r\n#bfh-root .bfh-btn--wa{\r\n  background:linear-gradient(135deg,var(--bfh-wa) 0%,var(--bfh-wa-2) 100%);\r\n  box-shadow:0 8px 20px -12px rgba(31,174,84,.9);\r\n}\r\n#bfh-root .bfh-btn--wa:hover{box-shadow:0 14px 26px -12px rgba(31,174,84,.95);}\r\n\r\n#bfh-root .bfh-ico{\r\n  flex:0 0 auto;display:flex;align-items:center;justify-content:center;\r\n  width:42px;height:42px;border-radius:11px;\r\n  background:rgba(255,255,255,.16);\r\n}\r\n#bfh-root .bfh-btn-txt{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;}\r\n#bfh-root .bfh-btn-label{font-size:15.5px;font-weight:700;line-height:1.25;}\r\n#bfh-root .bfh-btn-sub{\r\n  font-size:13px;line-height:1.35;opacity:.82;margin-top:2px;\r\n  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\r\n}\r\n#bfh-root .bfh-arrow{flex:0 0 auto;opacity:.6;transition:transform .18s ease;}\r\n#bfh-root .bfh-btn:hover .bfh-arrow{transform:translateX(3px);opacity:1;}\r\n\r\n#bfh-root .bfh-foot{\r\n  display:flex;align-items:center;flex-wrap:wrap;gap:8px;\r\n  margin-top:20px;padding-top:16px;border-top:1px solid var(--bfh-line);\r\n  font-size:13.5px;color:var(--bfh-muted);\r\n}\r\n#bfh-root .bfh-status{display:inline-flex;align-items:center;gap:7px;}\r\n#bfh-root .bfh-dot{width:9px;height:9px;border-radius:50%;background:#cbd5e1;flex:0 0 auto;}\r\n#bfh-root .bfh-dot.is-open{\r\n  background:#22c55e;\r\n  box-shadow:0 0 0 0 rgba(34,197,94,.55);\r\n  animation:bfh-pulse 2.2s infinite;\r\n}\r\n@keyframes bfh-pulse{\r\n  70%{box-shadow:0 0 0 9px rgba(34,197,94,0);}\r\n  100%{box-shadow:0 0 0 0 rgba(34,197,94,0);}\r\n}\r\n#bfh-root .bfh-sep{opacity:.45;}\r\n#bfh-root .bfh-branch{font-weight:600;color:var(--bfh-navy);}\r\n\r\n@media (max-width:700px){\r\n  #bfh-root .bfh-card{padding:26px 20px 20px;border-radius:16px;}\r\n  #bfh-root .bfh-title{font-size:21px;}\r\n  #bfh-root .bfh-actions{grid-template-columns:1fr;}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  #bfh-root .bfh-btn,#bfh-root .bfh-arrow{transition:none;}\r\n  #bfh-root .bfh-dot.is-open{animation:none;}\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  \"use strict\";\r\n\r\n  \/* ================================================================\r\n     1) Werte aus window.CC_CALC\r\n     ================================================================ *\/\r\n  var CC = (window.CC_CALC && typeof window.CC_CALC === \"object\") ? window.CC_CALC : {};\r\n\r\n  \/* Nur Notnagel, falls CC_CALC nicht geladen ist oder ein Feld leer.\r\n     Diese Werte sollen NICHT gepflegt werden \u2013 die Pflege laeuft ueber\r\n     Einstellungen -> Kreditrechner.                                   *\/\r\n  var BFH_FALLBACK = {\r\n    firma_name:\"bestfinance.ch\", firma_plzort:\"5001 Aarau\",\r\n    firma_telefon:\"+41 (62) 823 08 03\", firma_telefon_link:\"tel:+41628230803\",\r\n    firma_whatsapp:\"41794505545\", firma_whatsapp_link:\"https:\/\/wa.me\/41794505545\",\r\n    fil_firmenname:\"Best-Finance Sarl\", fil_plzort:\"1004 Lausanne\",\r\n    fil_festnetz:\"021 624 55 45\", fil_festnetz_link:\"tel:0216245545\",\r\n    fil_whatsapp:\"41798167180\", fil_whatsapplink:\"https:\/\/wa.me\/41798167180\"\r\n  };\r\n\r\n  \/* Oeffnungszeiten: erst CC_CALC, sonst diese Standardwerte.\r\n     Sobald firma_zeit_von usw. in cc-calc-werte.php existieren,\r\n     greifen sie automatisch.                                          *\/\r\n  var BFH_ZEIT_STANDARD = { von:\"08:00\", bis:\"17:30\" };\r\n  var BFH_ARBEITSTAGE   = [1,2,3,4,5];   \/* Mo=1 ... Fr=5 *\/\r\n\r\n  \/* V('firma_telefon') -> Wert aus CC_CALC, sonst Fallback *\/\r\n  function V(name, standard){\r\n    var w = CC[name];\r\n    if (w === undefined || w === null || String(w).trim() === \"\"){\r\n      w = (standard !== undefined) ? standard : BFH_FALLBACK[name];\r\n    }\r\n    return (w === undefined || w === null) ? \"\" : String(w).trim();\r\n  }\r\n\r\n  \/* ================================================================\r\n     2) Werte aufbereiten\r\n     ================================================================ *\/\r\n\r\n  \/* CC_CALC liefert bereits \"tel:+41628230803\". Falls leer, aus der\r\n     Anzeigenummer bauen.                                              *\/\r\n  function telZiel(link, anzeige){\r\n    var q = link || anzeige;\r\n    q = q.replace(\/^tel:\/i,\"\");\r\n    var plus = (q.charAt(0) === \"+\") ? \"+\" : \"\";\r\n    q = q.replace(\/\\D\/g,\"\");\r\n    return q ? \"tel:\" + plus + q : \"#\";\r\n  }\r\n\r\n  \/* CC_CALC liefert bereits \"https:\/\/wa.me\/41794505545\". Falls leer,\r\n     aus der Nummer bauen. Der Nachrichtentext wird angehaengt.        *\/\r\n  function waZiel(link, nummer, text){\r\n    var url = link;\r\n    if (!url){\r\n      var n = String(nummer).replace(\/\\D\/g,\"\");\r\n      if (!n){ return \"#\"; }\r\n      url = \"https:\/\/wa.me\/\" + n;\r\n    }\r\n    if (url.indexOf(\"text=\") === -1){\r\n      url += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + \"text=\" + encodeURIComponent(text);\r\n    }\r\n    return url;\r\n  }\r\n\r\n  \/* \"5001 Aarau\" -> \"Aarau\" *\/\r\n  function ortAusPlzOrt(s){\r\n    var t = s.replace(\/^\\s*(CH-)?\\d{4}\\s*\/i,\"\").trim();\r\n    return t || s;\r\n  }\r\n\r\n  \/* Stammdaten der gewaehlten Filiale *\/\r\n  function filialDaten(code){\r\n    if (code === \"LS\"){\r\n      return {\r\n        code:\"LS\",\r\n        firma:      V(\"fil_firmenname\"),\r\n        ort:        ortAusPlzOrt(V(\"fil_plzort\")),\r\n        telAnzeige: V(\"fil_festnetz\"),\r\n        telLink:    V(\"fil_festnetz_link\"),\r\n        waNummer:   V(\"fil_whatsapp\"),\r\n        waLink:     V(\"fil_whatsapplink\"),\r\n        zeitVon:    V(\"fil_zeit_von\", BFH_ZEIT_STANDARD.von),\r\n        zeitBis:    V(\"fil_zeit_bis\", BFH_ZEIT_STANDARD.bis)\r\n      };\r\n    }\r\n    return {\r\n      code:\"AA\",\r\n      firma:      V(\"firma_name\"),\r\n      ort:        ortAusPlzOrt(V(\"firma_plzort\")),\r\n      telAnzeige: V(\"firma_telefon\"),\r\n      telLink:    V(\"firma_telefon_link\"),\r\n      waNummer:   V(\"firma_whatsapp\"),\r\n      waLink:     V(\"firma_whatsapp_link\"),\r\n      zeitVon:    V(\"firma_zeit_von\", BFH_ZEIT_STANDARD.von),\r\n      zeitBis:    V(\"firma_zeit_bis\", BFH_ZEIT_STANDARD.bis)\r\n    };\r\n  }\r\n\r\n  \/* ================================================================\r\n     3) Sprache und Filiale\r\n     ================================================================ *\/\r\n  var BFH_SPRACHCODES = {\r\n    \"D\":\"D\",\"DE\":\"D\",\"DE-CH\":\"D\",\r\n    \"F\":\"F\",\"FR\":\"F\",\"FR-CH\":\"F\",\r\n    \"I\":\"I\",\"IT\":\"I\",\"IT-CH\":\"I\",\r\n    \"P\":\"P\",\"PT\":\"P\",\"PT-PT\":\"P\",\r\n    \"E\":\"E\",\"ES\":\"E\",\"ES-ES\":\"E\",\r\n    \"U\":\"U\",\"EN\":\"U\",\"EN-GB\":\"U\",\"EN-US\":\"U\"\r\n  };\r\n  var BFH_SPRACHE_ZU_FILIALE = { D:\"AA\", I:\"AA\", E:\"AA\", U:\"AA\", F:\"LS\", P:\"LS\" };\r\n  var BFH_FILIALEN_BEKANNT   = { AA:1, LS:1 };\r\n  var BFH_FILIALE_FALLBACK   = \"AA\";\r\n\r\n  function urlVar(name){\r\n    var tr = (window.location.search || \"\").match(new RegExp(\"[?&]\"+name+\"=([^&#]*)\",\"i\"));\r\n    return tr ? decodeURIComponent(tr[1].replace(\/\\+\/g,\" \")).trim() : \"\";\r\n  }\r\n  function merken(k,w){ try{ if(w){ window.sessionStorage.setItem(k,w); } }catch(e){} }\r\n  function gemerkt(k){ try{ return window.sessionStorage.getItem(k) || \"\"; }catch(e){ return \"\"; } }\r\n\r\n  function ermittleSprache(){\r\n    var roh = urlVar(\"sp\").toUpperCase();\r\n    if (BFH_SPRACHCODES[roh]){ merken(\"bf_sp\", BFH_SPRACHCODES[roh]); return BFH_SPRACHCODES[roh]; }\r\n\r\n    var ges = gemerkt(\"bf_sp\").toUpperCase();\r\n    if (BFH_SPRACHCODES[ges]){ return BFH_SPRACHCODES[ges]; }\r\n\r\n    var p = (window.location.pathname || \"\").toLowerCase().match(\/^\\\/(fr|pt|it|es|en)(\\\/|$)\/);\r\n    if (p){ return BFH_SPRACHCODES[p[1].toUpperCase()]; }\r\n\r\n    var lang = (document.documentElement.getAttribute(\"lang\") || \"de\").toUpperCase();\r\n    if (BFH_SPRACHCODES[lang]){ return BFH_SPRACHCODES[lang]; }\r\n    if (BFH_SPRACHCODES[lang.split(\"-\")[0]]){ return BFH_SPRACHCODES[lang.split(\"-\")[0]]; }\r\n\r\n    return \"D\";\r\n  }\r\n\r\n  function ermittleFiliale(sprache){\r\n    var roh = urlVar(\"fo\").toUpperCase();\r\n    if (roh){\r\n      merken(\"bf_fo\", roh);\r\n      return { code: BFH_FILIALEN_BEKANNT[roh] ? roh : BFH_FILIALE_FALLBACK, quelle:\"url\" };\r\n    }\r\n    var ges = gemerkt(\"bf_fo\").toUpperCase();\r\n    if (ges){\r\n      return { code: BFH_FILIALEN_BEKANNT[ges] ? ges : BFH_FILIALE_FALLBACK, quelle:\"session\" };\r\n    }\r\n    return { code: BFH_SPRACHE_ZU_FILIALE[sprache] || BFH_FILIALE_FALLBACK, quelle:\"sprache\" };\r\n  }\r\n\/* ================================================================\r\n     4) Texte\r\n     ================================================================ *\/\r\n  var BFH_TEXTE = {\r\n    D:{ eyebrow:\"Pers\u00f6nliche Hilfe\",\r\n        title:\"Kommst du nicht weiter?\",\r\n        lead:\"Kein Problem \u2013 unsere Kreditberater helfen dir beim Ausf\u00fcllen. Ruf uns an oder schreib uns kurz per WhatsApp.\",\r\n        callLabel:\"Jetzt anrufen\", waLabel:\"Per WhatsApp schreiben\",\r\n        waSub:\"Antwort meist in wenigen Minuten\",\r\n        open:\"Jetzt erreichbar\", closed:\"Aktuell geschlossen \u2013 wir melden uns\",\r\n        branch:\"Filiale\",\r\n        waText:\"Hallo, ich habe eine Frage zu meiner Kreditanfrage auf bestfinance.ch.\" },\r\n\r\n    F:{ eyebrow:\"Aide personnelle\",\r\n        title:\"Tu n'arrives pas \u00e0 avancer ?\",\r\n        lead:\"Pas de souci \u2013 nos conseillers en cr\u00e9dit t'aident \u00e0 remplir ta demande. Appelle-nous ou \u00e9cris-nous un petit message sur WhatsApp.\",\r\n        callLabel:\"Appeler maintenant\", waLabel:\"\u00c9crire sur WhatsApp\",\r\n        waSub:\"R\u00e9ponse en quelques minutes\",\r\n        open:\"Joignable en ce moment\", closed:\"Actuellement ferm\u00e9 \u2013 nous te rappelons\",\r\n        branch:\"Succursale\",\r\n        waText:\"Bonjour, j'ai une question concernant ma demande de cr\u00e9dit sur bestfinance.ch.\" },\r\n\r\n    I:{ eyebrow:\"Assistenza personale\",\r\n        title:\"Non riesci ad andare avanti?\",\r\n        lead:\"Nessun problema \u2013 i nostri consulenti ti aiutano a compilare la richiesta. Chiamaci o scrivici un breve messaggio su WhatsApp.\",\r\n        callLabel:\"Chiama ora\", waLabel:\"Scrivi su WhatsApp\",\r\n        waSub:\"Risposta in pochi minuti\",\r\n        open:\"Disponibile ora\", closed:\"Attualmente chiuso \u2013 ti ricontattiamo\",\r\n        branch:\"Filiale\",\r\n        waText:\"Buongiorno, ho una domanda sulla mia richiesta di credito su bestfinance.ch.\" },\r\n\r\n    P:{ eyebrow:\"Apoio pessoal\",\r\n        title:\"N\u00e3o consegues avan\u00e7ar?\",\r\n        lead:\"Sem problema \u2013 os nossos consultores de cr\u00e9dito ajudam-te a preencher o pedido. Liga-nos ou envia-nos uma mensagem pelo WhatsApp.\",\r\n        callLabel:\"Ligar agora\", waLabel:\"Escrever no WhatsApp\",\r\n        waSub:\"Resposta em poucos minutos\",\r\n        open:\"Dispon\u00edvel agora\", closed:\"Encerrado de momento \u2013 n\u00f3s contactamos-te\",\r\n        branch:\"Ag\u00eancia\",\r\n        waText:\"Ol\u00e1, tenho uma d\u00favida sobre o meu pedido de cr\u00e9dito em bestfinance.ch.\" },\r\n\r\n    E:{ eyebrow:\"Ayuda personal\",\r\n        title:\"\u00bfNo puedes avanzar?\",\r\n        lead:\"No hay problema \u2013 nuestros asesores de cr\u00e9dito te ayudar\u00e1n a completarla. Ll\u00e1manos o escr\u00edbenos por WhatsApp.\",\r\n        callLabel:\"Llamar ahora\", waLabel:\"Escribir por WhatsApp\",\r\n        waSub:\"Respuesta en unos minutos\",\r\n        open:\"Disponible ahora\", closed:\"Cerrado ahora \u2013 te contactamos\",\r\n        branch:\"Sucursal\",\r\n        waText:\"Hola, tengo una consulta sobre mi solicitud de cr\u00e9dito en bestfinance.ch.\" },\r\n\r\n    U:{ eyebrow:\"Personal support\",\r\n        title:\"Stuck with your application?\",\r\n        lead:\"No worries \u2013 our credit advisors will help you complete it. Give us a call or drop us a quick message on WhatsApp.\",\r\n        callLabel:\"Call now\", waLabel:\"Message on WhatsApp\",\r\n        waSub:\"Reply within a few minutes\",\r\n        open:\"Available now\", closed:\"Currently closed \u2013 we'll get back to you\",\r\n        branch:\"Branch\",\r\n        waText:\"Hi, I have a question about my credit application on bestfinance.ch.\" }\r\n  };\r\n\r\n  \/* ================================================================\r\n     5) Oeffnungszeiten, Zeitzone Europe\/Zurich\r\n     ================================================================ *\/\r\n  function istOffen(von, bis){\r\n    try{\r\n      var f = new Intl.DateTimeFormat(\"de-CH\",{\r\n        timeZone:\"Europe\/Zurich\", hour:\"2-digit\", minute:\"2-digit\",\r\n        weekday:\"short\", hour12:false\r\n      });\r\n      var teile = {}, alle = f.formatToParts(new Date()), i;\r\n      for (i=0;i<alle.length;i++){ teile[alle[i].type] = alle[i].value; }\r\n      var wt = {\"So\":0,\"Mo\":1,\"Di\":2,\"Mi\":3,\"Do\":4,\"Fr\":5,\"Sa\":6};\r\n      var tag = wt[(teile.weekday||\"\").replace(\".\",\"\").substring(0,2)];\r\n      if (typeof tag === \"undefined\" || BFH_ARBEITSTAGE.indexOf(tag) === -1){ return false; }\r\n      function inMin(s){ var t = String(s).split(\":\"); return parseInt(t[0],10)*60 + parseInt(t[1]||\"0\",10); }\r\n      var jetzt = parseInt(teile.hour,10)*60 + parseInt(teile.minute,10);\r\n      return jetzt >= inMin(von) && jetzt < inMin(bis);\r\n    }catch(e){ return true; }\r\n  }\r\n\r\n  \/* ================================================================\r\n     6) Aufbau\r\n     ================================================================ *\/\r\n  function init(){\r\n    var wurzel = document.getElementById(\"bfh-root\");\r\n    if (!wurzel){ return; }\r\n\r\n    var sprache = ermittleSprache();\r\n    var t = BFH_TEXTE[sprache] || BFH_TEXTE.D;\r\n\r\n    var wahl = ermittleFiliale(sprache);\r\n    var f = filialDaten(wahl.code);\r\n\r\n    \/* Texte *\/\r\n    var felder = wurzel.querySelectorAll(\"[data-bfh]\"), i, k;\r\n    for (i=0;i<felder.length;i++){\r\n      k = felder[i].getAttribute(\"data-bfh\");\r\n      if (t[k]){ felder[i].textContent = t[k]; }\r\n    }\r\n\r\n    \/* Telefon *\/\r\n    var call = document.getElementById(\"bfh-call\");\r\n    call.setAttribute(\"href\", telZiel(f.telLink, f.telAnzeige));\r\n    document.getElementById(\"bfh-tel-display\").textContent = f.telAnzeige;\r\n\r\n    \/* WhatsApp *\/\r\n    var wa = document.getElementById(\"bfh-wa\");\r\n    wa.setAttribute(\"href\", waZiel(f.waLink, f.waNummer, t.waText));\r\n\r\n    \/* Status + Filiale *\/\r\n    var offen = istOffen(f.zeitVon, f.zeitBis);\r\n    if (offen){ document.getElementById(\"bfh-dot\").className = \"bfh-dot is-open\"; }\r\n    document.getElementById(\"bfh-status-txt\").textContent = offen ? t.open : t.closed;\r\n    document.getElementById(\"bfh-branch\").textContent = t.branch + \" \" + f.ort;\r\n\r\n    \/* Fuer andere Skripte \/ Debugging *\/\r\n    wurzel.setAttribute(\"data-fo\", f.code);\r\n    wurzel.setAttribute(\"data-sp\", sprache);\r\n    window.BFHilfe = {\r\n      filiale:f.code,\r\n      sprache:sprache,\r\n      zuordnung:wahl.quelle,\r\n      ccCalc: (window.CC_CALC ? (CC.cc_calc_version || \"geladen\") : \"FEHLT \u2013 Fallback aktiv\")\r\n    };\r\n\r\n    \/* GTM *\/\r\n    function track(kanal){\r\n      window.dataLayer = window.dataLayer || [];\r\n      window.dataLayer.push({\r\n        event:\"bf_kontakt_klick\",\r\n        kanal:kanal, filiale:f.code, sprache:sprache, quelle:wahl.quelle\r\n      });\r\n    }\r\n    call.addEventListener(\"click\", function(){ track(\"telefon\"); });\r\n    wa.addEventListener(\"click\", function(){ track(\"whatsapp\"); });\r\n  }\r\n\r\n  if (document.readyState === \"loading\"){\r\n    document.addEventListener(\"DOMContentLoaded\", init);\r\n  } else {\r\n    init();\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4653619 elementor-widget elementor-widget-spacer\" data-id=\"4653619\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5d182fa e-flex e-con-boxed e-con e-parent\" data-id=\"5d182fa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00b7<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_seopress_titles_title":"Kredit Schweiz: Schnell und Unverbindlich Anfragen!","_seopress_titles_desc":"Beantragen Sie Ihren Kredit unverbindlich und kostenlos in der Schweiz. Transparenter Prozess, schnelle Entscheidung!","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"bestfinance.ch - Ihr Schweizer Kredit Experte","_seopress_social_fb_desc":"Manchmal fehlt wenig um Ideen schnell und und einfach zu realisieren. Deshalb gibt es den passenden und g\u00fcnstigen Kredit von bestfinance.ch.","_seopress_social_fb_img":"https:\/\/www.bestfinance.ch\/wp-content\/uploads\/2024\/04\/depositphotos_207376390_s.jpg","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"bestfinance.ch - Ihr Schweizer Kredit Experte","_seopress_social_twitter_desc":"Manchmal fehlt wenig um Ideen schnell und und einfach zu realisieren. Deshalb gibt es den passenden und g\u00fcnstigen Kredit von bestfinance.ch.","_seopress_social_twitter_img":"https:\/\/www.bestfinance.ch\/wp-content\/uploads\/2024\/04\/depositphotos_207376390_s.jpg","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"Kredit,kredit beantragen,kredit schweiz,kreditrechner,kredit aufnehmen schweiz, kredit beantragen","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[{"url":"","title":"","desc":"","thumbnail":"","duration":"","rating":"","view_count":"","tag":"","cat":""}],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-17132","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/pages\/17132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/comments?post=17132"}],"version-history":[{"count":206,"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/pages\/17132\/revisions"}],"predecessor-version":[{"id":206336,"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/pages\/17132\/revisions\/206336"}],"wp:attachment":[{"href":"https:\/\/www.bestfinance.ch\/en\/wp-json\/wp\/v2\/media?parent=17132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}