{"id":205073,"date":"2026-08-04T22:56:55","date_gmt":"2026-08-04T20:56:55","guid":{"rendered":"https:\/\/www.bestfinance.ch\/?page_id=205073"},"modified":"2026-09-19T11:25:53","modified_gmt":"2026-09-19T09:25:53","slug":"remboursez-le-pret","status":"publish","type":"page","link":"https:\/\/www.bestfinance.ch\/fr\/kredit-abloesen\/","title":{"rendered":"Rachat de cr\u00e9dit"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"205073\" class=\"elementor elementor-205073\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5cfa3dd e-flex e-con-boxed e-con e-parent\" data-id=\"5cfa3dd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-917f511 elementor-widget elementor-widget-spacer\" data-id=\"917f511\" 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-0bb857c e-flex e-con-boxed e-con e-parent\" data-id=\"0bb857c\" 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-76597fa elementor-widget elementor-widget-shortcode\" data-id=\"76597fa\" 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\"><div class=\"bf-lp bf-lp--hell notranslate\" translate=\"no\" data-no-translation id=\"bfLp978c8612\"><style>\n\/* ======================================================================\n   BF Landingpage \u00b7 Design v3 (2026-10) \u00b7 \u201eModern Fintech\u201c\n   Dunkler Hero mit Glas-Kacheln, flache helle Formularkarten,\n   Raten-Panel in Navy. Alle Farben aus den 14 --cc-* Werten, damit\n   Paletten und Einstellungen weiter greifen.\n   ====================================================================== *\/\n.bf-lp, .bf-lp *, .bf-lp *::before, .bf-lp *::after { box-sizing: border-box; }\n\n.bf-lp {\n  --cc-royal: #1633F6;\n  --cc-blue: #2348D4;\n  --cc-blue-strong: #1738BC;\n  --cc-navy: #061158;\n  --cc-navy-deep: #030827;\n  --cc-sky: #F1F5FF;\n  --cc-sky-2: #FAFBFF;\n  --cc-sky-3: #EBF0FF;\n  --cc-line: #D2DBEE;\n  --cc-line-strong: #B8C6E6;\n  --cc-ink: #14213D;\n  --cc-muted: #64728B;\n  --cc-gold: #C9A24E;\n  --cc-gold-soft: #E7C976;\n  --cc-white: #FFFFFF;\n  --cc-error: #B42318;\n  --cc-error-s: #FFF1F0;\n  --cc-r-xl: 28px;\n  --cc-r-l: 20px;\n  --cc-r-m: 14px;\n  --cc-r-s: 12px;\n  --cc-font: \"Inter\", \"Inter Variable\", -apple-system, BlinkMacSystemFont, \"Segoe UI Variable Text\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n\n  position: relative;\n  width: 100%;\n  max-width: 1160px;\n  margin: 0 auto;\n  padding: 8px;\n  font-family: var(--cc-font);\n  color: var(--cc-ink);\n  line-height: 1.5;\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n  font-feature-settings: \"cv11\", \"ss01\";\n}\n\n\/* ----------------------------------------------------------------------\n   HERO (dunkel) \u2014 Kopf + Kacheln\n   ---------------------------------------------------------------------- *\/\n.bf-lp .cc-hero {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  margin-bottom: 20px;\n  padding: 44px 44px 28px;\n  border-radius: var(--cc-r-xl);\n  background-color: var(--cc-navy-deep);\n  background-image:\n    radial-gradient(60% 80% at 100% 0%, color-mix(in srgb, var(--cc-blue) 55%, transparent) 0%, transparent 70%),\n    radial-gradient(50% 60% at 0% 100%, color-mix(in srgb, var(--cc-navy) 90%, transparent) 0%, transparent 70%);\n  color: #fff;\n}\n\/* feines Raster, nur oben rechts sichtbar *\/\n.bf-lp .cc-hero::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  z-index: -1;\n  background-image:\n    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);\n  background-size: 44px 44px;\n  -webkit-mask-image: radial-gradient(70% 70% at 85% 10%, #000 0%, transparent 70%);\n          mask-image: radial-gradient(70% 70% at 85% 10%, #000 0%, transparent 70%);\n  pointer-events: none;\n}\n\n.bf-lp .cc-intro {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) auto;\n  align-items: start;\n  gap: 32px;\n}\n.bf-lp .cc-intro-main { min-width: 0; max-width: 760px; }\n\n.bf-lp .cc-badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 9px;\n  margin-bottom: 20px;\n  padding: 7px 14px 7px 11px;\n  border: 1px solid rgba(255,255,255,.14);\n  border-radius: 999px;\n  background: rgba(255,255,255,.06);\n  color: rgba(255,255,255,.88);\n  font-size: 12px;\n  font-weight: 650;\n  letter-spacing: .08em;\n  line-height: 1;\n  text-transform: uppercase;\n}\n.bf-lp .cc-badge::before {\n  content: \"\";\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  background: var(--cc-gold-soft);\n  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-gold-soft) 22%, transparent);\n}\n\n.bf-lp .cc-greet {\n  margin: 0 0 16px;\n  color: #fff;\n  font-size: clamp(30px, 4.2vw, 50px);\n  font-weight: 700;\n  letter-spacing: -.035em;\n  line-height: 1.06;\n  text-wrap: balance;\n}\n.bf-lp .cc-intro-text {\n  max-width: 660px;\n  margin: 0;\n  color: rgba(255,255,255,.72);\n  font-size: 17px;\n  line-height: 1.65;\n  text-wrap: pretty;\n}\n\n.bf-lp .cc-intro-service {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 24px;\n}\n.bf-lp .cc-intro-service span {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  padding: 8px 14px 8px 10px;\n  border: 1px solid rgba(255,255,255,.12);\n  border-radius: 999px;\n  background: rgba(255,255,255,.05);\n  color: #fff;\n  font-size: 14px;\n  font-weight: 550;\n  line-height: 1.2;\n}\n.bf-lp .cc-intro-service span::before {\n  content: \"\";\n  flex: 0 0 auto;\n  width: 18px;\n  height: 18px;\n  border-radius: 50%;\n  background: var(--cc-gold-soft) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23030827' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'\/%3E%3C\/svg%3E\") center \/ 11px no-repeat;\n}\n\n.bf-lp .cc-intro-mark {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 84px;\n  height: 84px;\n  border: 1px solid rgba(255,255,255,.14);\n  border-radius: 24px;\n  background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.03));\n  -webkit-backdrop-filter: blur(6px);\n          backdrop-filter: blur(6px);\n}\n.bf-lp .cc-intro-mark svg { width: 38px; height: 38px; fill: none; stroke: #fff; }\n.bf-lp .cc-intro-mark svg path:last-child,\n.bf-lp .cc-intro-mark svg polyline:last-child { stroke: var(--cc-gold-soft); }\n\n\/* Glas-Kacheln im Hero *\/\n.bf-lp .cc-benefits {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: 10px;\n  margin-top: 36px;\n}\n.bf-lp .cc-benefit {\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n  min-width: 0;\n  padding: 18px;\n  border: 1px solid rgba(255,255,255,.10);\n  border-radius: var(--cc-r-l);\n  background: rgba(255,255,255,.045);\n  transition: background .2s ease, border-color .2s ease;\n}\n.bf-lp .cc-benefit:hover { background: rgba(255,255,255,.075); border-color: rgba(255,255,255,.18); }\n.bf-lp .cc-benefit-ic {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 38px;\n  height: 38px;\n  border-radius: 11px;\n  background: color-mix(in srgb, var(--cc-blue) 38%, transparent);\n  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);\n}\n.bf-lp .cc-benefit-ic svg { width: 19px; height: 19px; fill: none; stroke: #fff; }\n.bf-lp .cc-benefit > div { min-width: 0; }\n.bf-lp .cc-benefit-title {\n  margin: 0 0 4px;\n  color: #fff;\n  font-size: 15px;\n  font-weight: 650;\n  letter-spacing: -.01em;\n  line-height: 1.3;\n}\n.bf-lp .cc-benefit-sub {\n  color: rgba(255,255,255,.62);\n  font-size: 13.5px;\n  line-height: 1.5;\n}\n\n\/* ----------------------------------------------------------------------\n   FORMULAR \u2014 flache, helle Karten\n   ---------------------------------------------------------------------- *\/\n.bf-lp .cc-root form { position: relative; margin: 0; }\n.bf-lp .cc-root > form > h2,\n.bf-lp .cc-root > form > p.cc-lead { display: none; }\n\n.bf-lp .cc-main-grid {\n  display: grid;\n  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);\n  align-items: start;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.bf-lp .cc-main-grid > .cc-card { height: auto; margin-bottom: 0; }\n@media (min-width: 1001px) { .bf-lp .cc-main-grid > .cc-card:first-child { position: sticky; top: 24px; } }\n\n.bf-lp .cc-root .cc-card {\n  position: relative;\n  margin-bottom: 20px;\n  padding: 30px;\n  border: 1px solid var(--cc-line);\n  border-radius: var(--cc-r-l);\n  background: var(--cc-white);\n  box-shadow: 0 1px 2px rgba(3, 8, 39, .04);\n}\n\n.bf-lp .cc-root .cc-sec-title {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  margin: 0 0 24px;\n  color: var(--cc-navy-deep);\n  font-size: 18px;\n  font-weight: 700;\n  letter-spacing: -.02em;\n  line-height: 1.3;\n  text-transform: none;\n}\n.bf-lp .cc-root .cc-sec-title span.num {\n  flex: 0 0 auto;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 28px;\n  height: 28px;\n  border-radius: 9px;\n  background: var(--cc-navy-deep);\n  color: #fff;\n  font-size: 13px;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n}\n\n\/* Felder *\/\n.bf-lp .cc-root .cc-field { position: relative; margin-bottom: 18px; }\n.bf-lp .cc-root .cc-field:last-child { margin-bottom: 0; }\n.bf-lp .cc-root .cc-row { display: flex; gap: 12px; }\n.bf-lp .cc-root .cc-row > * { flex: 1 1 0; min-width: 0; }\n\n.bf-lp .cc-root label.cc-lbl {\n  display: block;\n  margin-bottom: 7px;\n  color: var(--cc-ink);\n  font-size: 14px;\n  font-weight: 600;\n}\n.bf-lp .cc-root .cc-req { color: var(--cc-blue); font-weight: 700; }\n\n.bf-lp .cc-root input[type=\"text\"],\n.bf-lp .cc-root input[type=\"tel\"],\n.bf-lp .cc-root input[type=\"email\"],\n.bf-lp .cc-root input[type=\"number\"],\n.bf-lp .cc-root select,\n.bf-lp .cc-root textarea {\n  width: 100%;\n  min-height: 52px;\n  padding: 14px 16px;\n  border: 1px solid transparent;\n  border-radius: var(--cc-r-s);\n  outline: none;\n  background: var(--cc-sky);\n  color: var(--cc-ink);\n  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cc-line) 70%, transparent);\n  font-family: inherit;\n  font-size: 16px;\n  line-height: 1.35;\n  appearance: none;\n  -webkit-appearance: none;\n  transition: background-color .15s ease, box-shadow .15s ease, border-color .15s ease;\n}\n.bf-lp .cc-root textarea { min-height: 120px; resize: vertical; line-height: 1.55; }\n.bf-lp .cc-root input:hover,\n.bf-lp .cc-root select:hover,\n.bf-lp .cc-root textarea:hover { box-shadow: inset 0 0 0 1px var(--cc-line-strong); }\n.bf-lp .cc-root input:focus,\n.bf-lp .cc-root select:focus,\n.bf-lp .cc-root textarea:focus {\n  background: #fff;\n  border-color: var(--cc-blue);\n  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-blue) 14%, transparent);\n}\n.bf-lp .cc-root input::placeholder,\n.bf-lp .cc-root textarea::placeholder { color: color-mix(in srgb, var(--cc-muted) 70%, #fff); opacity: 1; }\n.bf-lp .cc-root select {\n  padding-right: 42px;\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='%2364728B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'\/%3E%3C\/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 15px center;\n}\n\n\/* Telefon: Vorwahl + Nummer als ein Feld *\/\n.bf-lp .cc-root .cc-phone-row {\n  gap: 0 !important;\n  overflow: hidden;\n  border: 1px solid transparent;\n  border-radius: var(--cc-r-s);\n  background: var(--cc-sky);\n  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cc-line) 70%, transparent);\n  transition: box-shadow .15s ease, background-color .15s ease, border-color .15s ease;\n}\n.bf-lp .cc-root .cc-phone-row:focus-within {\n  background: #fff;\n  border-color: var(--cc-blue);\n  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-blue) 14%, transparent);\n}\n.bf-lp .cc-root .cc-phone-row select,\n.bf-lp .cc-root .cc-phone-row input {\n  border: 0 !important;\n  border-radius: 0 !important;\n  background-color: transparent !important;\n  box-shadow: none !important;\n}\n.bf-lp .cc-root .cc-phone-row select {\n  border-right: 1px solid var(--cc-line) !important;\n  font-weight: 600;\n}\n\n\/* Fehler *\/\n.bf-lp .cc-root .cc-invalid input,\n.bf-lp .cc-root .cc-invalid select,\n.bf-lp .cc-root .cc-invalid textarea,\n.bf-lp .cc-root .cc-invalid .cc-phone-row {\n  border-color: var(--cc-error) !important;\n  background-color: var(--cc-error-s) !important;\n  box-shadow: none !important;\n}\n.bf-lp .cc-root .cc-err-msg {\n  display: none;\n  margin-top: 6px;\n  color: var(--cc-error);\n  font-size: 13.5px;\n  font-weight: 600;\n  line-height: 1.4;\n}\n.bf-lp .cc-root .cc-invalid .cc-err-msg { display: block; }\n.bf-lp .cc-root .cc-invalid .cc-seg { background: var(--cc-error-s); box-shadow: inset 0 0 0 1px var(--cc-error); }\n\n\/* Anrede als Segmented Control *\/\n.bf-lp .cc-root .cc-seg {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 4px;\n  padding: 4px;\n  border-radius: var(--cc-r-s);\n  background: var(--cc-sky);\n  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cc-line) 70%, transparent);\n}\n.bf-lp .cc-root .cc-seg button {\n  min-height: 44px;\n  padding: 10px 14px;\n  border: 0;\n  border-radius: 9px;\n  background: transparent;\n  color: var(--cc-muted);\n  font-family: inherit;\n  font-size: 15px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: background .15s ease, color .15s ease, box-shadow .15s ease;\n}\n.bf-lp .cc-root .cc-seg button:hover { color: var(--cc-ink); }\n.bf-lp .cc-root .cc-seg button[aria-pressed=\"true\"] {\n  background: #fff;\n  color: var(--cc-navy-deep);\n  box-shadow: 0 1px 2px rgba(3, 8, 39, .08), 0 0 0 1px var(--cc-line);\n}\n.bf-lp .cc-root .cc-seg button:focus-visible { outline: 3px solid color-mix(in srgb, var(--cc-blue) 30%, transparent); outline-offset: 1px; }\n\n\/* Betrag + Laufzeit *\/\n.bf-lp .cc-root .cc-slider-head {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: 16px;\n  margin-bottom: 6px;\n}\n.bf-lp .cc-root .cc-slider-head label.cc-lbl { color: var(--cc-muted); font-weight: 600; }\n.bf-lp .cc-root .cc-slider-val {\n  display: inline-flex;\n  align-items: baseline;\n  gap: 6px;\n  padding: 0;\n  border: 0;\n  background: none;\n  box-shadow: none;\n  color: var(--cc-navy-deep);\n  font-size: 30px;\n  font-weight: 700;\n  letter-spacing: -.035em;\n  line-height: 1;\n  font-variant-numeric: tabular-nums;\n  white-space: nowrap;\n}\n.bf-lp .cc-root .cc-slider-val small {\n  color: var(--cc-muted);\n  font-size: 14px;\n  font-weight: 600;\n  letter-spacing: 0;\n}\n.bf-lp .cc-root input[type=\"range\"] {\n  --cc-range-progress: 25%;\n  width: 100%;\n  height: 6px;\n  min-height: 0;\n  margin: 16px 0 10px;\n  padding: 0;\n  border: 0;\n  border-radius: 999px;\n  outline: none;\n  background: linear-gradient(90deg, var(--cc-blue) 0 var(--cc-range-progress), var(--cc-sky-3) var(--cc-range-progress) 100%);\n  box-shadow: none;\n  appearance: none;\n  -webkit-appearance: none;\n  cursor: pointer;\n}\n.bf-lp .cc-root input[type=\"range\"]::-webkit-slider-thumb {\n  width: 26px;\n  height: 26px;\n  border: 0;\n  border-radius: 50%;\n  background: #fff;\n  box-shadow: 0 0 0 6px var(--cc-blue) inset, 0 2px 8px rgba(3, 8, 39, .25);\n  appearance: none;\n  -webkit-appearance: none;\n  cursor: grab;\n  transition: transform .12s ease;\n}\n.bf-lp .cc-root input[type=\"range\"]:active::-webkit-slider-thumb { transform: scale(1.08); cursor: grabbing; }\n.bf-lp .cc-root input[type=\"range\"]::-moz-range-thumb {\n  width: 26px;\n  height: 26px;\n  border: 6px solid var(--cc-blue);\n  border-radius: 50%;\n  background: #fff;\n  box-shadow: 0 2px 8px rgba(3, 8, 39, .25);\n  cursor: grab;\n}\n.bf-lp .cc-root input[type=\"range\"]:focus-visible { box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-blue) 16%, transparent); }\n.bf-lp .cc-root .cc-slider-scale {\n  display: flex;\n  justify-content: space-between;\n  color: var(--cc-muted);\n  font-size: 12.5px;\n  font-weight: 500;\n  font-variant-numeric: tabular-nums;\n}\n\n\/* Rate \u2014 dunkles Zahlen-Panel *\/\n.bf-lp .cc-root .cc-rate {\n  position: relative;\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: 16px;\n  margin-top: 26px;\n  padding: 22px 22px 20px;\n  overflow: hidden;\n  border: 0;\n  border-radius: var(--cc-r-m);\n  background-color: var(--cc-navy-deep);\n  background-image: radial-gradient(80% 120% at 100% 0%, color-mix(in srgb, var(--cc-blue) 45%, transparent), transparent 70%);\n  color: #fff;\n  box-shadow: none;\n}\n.bf-lp .cc-root .cc-rate-main { line-height: 1.2; }\n.bf-lp .cc-root .cc-rate-label {\n  margin-bottom: 8px;\n  color: rgba(255,255,255,.66);\n  font-size: 13px;\n  font-weight: 600;\n}\n.bf-lp .cc-root .cc-rate-big {\n  color: #fff;\n  font-size: 36px;\n  font-weight: 700;\n  letter-spacing: -.04em;\n  line-height: 1;\n  font-variant-numeric: tabular-nums;\n}\n.bf-lp .cc-root .cc-rate-big small { color: rgba(255,255,255,.66); font-size: 15px; font-weight: 600; letter-spacing: 0; }\n.bf-lp .cc-root .cc-rate-side {\n  text-align: right;\n  color: rgba(255,255,255,.66);\n  font-size: 13px;\n  line-height: 1.6;\n  font-variant-numeric: tabular-nums;\n}\n.bf-lp .cc-root .cc-rate-side b,\n.bf-lp .cc-root .cc-rate-side span { color: #fff; font-weight: 650; }\n.bf-lp .cc-root .cc-rate-side b { color: var(--cc-gold-soft); }\n.bf-lp .cc-root .cc-rate-note {\n  margin: 12px 2px 0;\n  color: var(--cc-muted);\n  font-size: 12.5px;\n  line-height: 1.55;\n}\n\n\/* Einwilligung *\/\n.bf-lp .cc-root .cc-consent {\n  padding: 16px 18px;\n  border: 1px solid var(--cc-line);\n  border-radius: var(--cc-r-m);\n  background: var(--cc-sky-2);\n}\n.bf-lp .cc-root .cc-consent .cc-err-msg { margin-left: 38px !important; }\n.bf-lp .cc-root .cc-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }\n.bf-lp .cc-root .cc-check input { position: absolute; width: 0; height: 0; opacity: 0; }\n.bf-lp .cc-root .cc-box {\n  flex: 0 0 auto;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 24px;\n  height: 24px;\n  margin-top: 1px;\n  border: 1.5px solid var(--cc-line-strong);\n  border-radius: 7px;\n  background: #fff;\n  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;\n}\n.bf-lp .cc-root .cc-box svg { width: 14px; height: 14px; opacity: 0; transition: opacity .1s ease; }\n.bf-lp .cc-root .cc-check input:checked + .cc-box { border-color: var(--cc-blue); background: var(--cc-blue); }\n.bf-lp .cc-root .cc-check input:checked + .cc-box svg { opacity: 1; }\n.bf-lp .cc-root .cc-check input:focus-visible + .cc-box { box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-blue) 16%, transparent); }\n.bf-lp .cc-root .cc-check-txt { color: var(--cc-ink); font-size: 14.5px; line-height: 1.6; text-wrap: pretty; }\n.bf-lp .cc-root .cc-check-txt a {\n  color: var(--cc-blue-strong);\n  font-weight: 600;\n  text-decoration: underline;\n  text-decoration-thickness: 1px;\n  text-underline-offset: 3px;\n}\n.bf-lp .cc-root .cc-check-txt a:hover { color: var(--cc-blue); }\n.bf-lp .cc-root .cc-consent.cc-invalid { border-color: var(--cc-error); background: var(--cc-error-s); }\n.bf-lp .cc-root .cc-consent.cc-invalid .cc-box { border-color: var(--cc-error); }\n\n\/* Absenden *\/\n.bf-lp .cc-root .cc-submit {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 12px;\n  width: 100%;\n  min-height: 60px;\n  margin-top: 0;\n  padding: 16px 24px;\n  border: 0;\n  border-radius: 16px;\n  background: var(--cc-navy-deep);\n  color: #fff;\n  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--cc-navy-deep) 70%, transparent);\n  font-family: inherit;\n  font-size: 17px;\n  font-weight: 650;\n  letter-spacing: -.005em;\n  cursor: pointer;\n  transition: background .18s ease, transform .12s ease, box-shadow .18s ease;\n}\n.bf-lp .cc-root .cc-submit::after {\n  content: \"\";\n  flex: 0 0 auto;\n  width: 30px;\n  height: 30px;\n  border-radius: 50%;\n  background: var(--cc-gold-soft) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23030827' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'\/%3E%3Cpolyline points='13 6 19 12 13 18'\/%3E%3C\/svg%3E\") center \/ 16px no-repeat;\n  transition: transform .18s ease;\n}\n.bf-lp .cc-root .cc-submit:hover { background: var(--cc-blue); }\n.bf-lp .cc-root .cc-submit:hover::after { transform: translateX(3px); }\n.bf-lp .cc-root .cc-submit:active { transform: translateY(1px); }\n.bf-lp .cc-root .cc-submit:focus-visible { outline: 3px solid color-mix(in srgb, var(--cc-blue) 40%, transparent); outline-offset: 3px; }\n.bf-lp .cc-root .cc-submit:disabled { opacity: .7; cursor: default; transform: none; }\n.bf-lp .cc-root .cc-submit.is-loading::after { display: none; }\n.bf-lp .cc-root .cc-submit .cc-spin {\n  display: none;\n  width: 18px;\n  height: 18px;\n  border: 2.5px solid rgba(255,255,255,.4);\n  border-top-color: #fff;\n  border-radius: 50%;\n  animation: cc-spin .7s linear infinite;\n}\n.bf-lp .cc-root .cc-submit.is-loading .cc-spin { display: inline-block; }\n@keyframes cc-spin { to { transform: rotate(360deg); } }\n\n.bf-lp .cc-root .cc-form-msg {\n  display: none;\n  margin-top: 14px;\n  padding: 14px 16px;\n  border: 1px solid color-mix(in srgb, var(--cc-error) 30%, #fff);\n  border-radius: var(--cc-r-s);\n  background: var(--cc-error-s);\n  color: var(--cc-error);\n  font-size: 15px;\n  font-weight: 600;\n  line-height: 1.5;\n}\n.bf-lp .cc-root .cc-form-msg.show { display: block; }\n.bf-lp .cc-root .cc-hint { margin-top: 14px; color: var(--cc-muted); font-size: 13px; text-align: center; }\n.bf-lp .cc-root .cc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }\n\n\/* ----------------------------------------------------------------------\n   Responsiv\n   ---------------------------------------------------------------------- *\/\n@media (max-width: 1000px) {\n  .bf-lp .cc-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n  .bf-lp .cc-main-grid { grid-template-columns: 1fr; gap: 0; margin-bottom: 0; }\n  .bf-lp .cc-main-grid > .cc-card { margin-bottom: 20px; }\n}\n@media (max-width: 680px) {\n  .bf-lp { padding: 4px; }\n  .bf-lp .cc-hero { padding: 30px 22px 22px; border-radius: 22px; margin-bottom: 14px; }\n  .bf-lp .cc-intro { grid-template-columns: 1fr; gap: 0; }\n  .bf-lp .cc-intro-mark { display: none; }\n  .bf-lp .cc-badge { margin-bottom: 16px; font-size: 11px; }\n  .bf-lp .cc-intro-text { font-size: 16px; }\n  .bf-lp .cc-intro-service { margin-top: 20px; }\n  .bf-lp .cc-intro-service span { font-size: 13.5px; }\n  .bf-lp .cc-benefits { grid-template-columns: 1fr; gap: 8px; margin-top: 26px; }\n  .bf-lp .cc-benefit { flex-direction: row; align-items: flex-start; gap: 14px; padding: 14px 16px; border-radius: 16px; }\n  .bf-lp .cc-root .cc-card { padding: 24px 18px; border-radius: 18px; margin-bottom: 14px; }\n  .bf-lp .cc-main-grid > .cc-card { margin-bottom: 14px; }\n  .bf-lp .cc-root .cc-sec-title { margin-bottom: 20px; font-size: 17px; }\n  .bf-lp .cc-root .cc-row:not(.cc-phone-row) { flex-direction: column; gap: 0; }\n  .bf-lp .cc-root .cc-row:not(.cc-phone-row) > .cc-field { margin-bottom: 18px; }\n  .bf-lp .cc-root .cc-row:not(.cc-phone-row) > .cc-field[style] { flex: 1 1 auto !important; }\n  .bf-lp .cc-root .cc-slider-val { font-size: 26px; }\n  .bf-lp .cc-root .cc-rate { flex-direction: column; align-items: flex-start; gap: 14px; padding: 20px 18px; }\n  .bf-lp .cc-root .cc-rate-big { font-size: 32px; }\n  .bf-lp .cc-root .cc-rate-side { width: 100%; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.14); text-align: left; }\n  .bf-lp .cc-root label.cc-lbl,\n  .bf-lp .cc-root input,\n  .bf-lp .cc-root select,\n  .bf-lp .cc-root textarea,\n  .bf-lp .cc-root .cc-seg button,\n  .bf-lp .cc-root .cc-check-txt { font-size: 16px; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .bf-lp *, .bf-lp *::before, .bf-lp *::after { transition: none !important; scroll-behavior: auto !important; }\n  .bf-lp .cc-root .cc-submit .cc-spin { animation: none; }\n}\n\n\/* ---------------------------------------------------------------------------\n   Bruecke zum Formular\n   Das Formular-CSS setzt eigene --cc-* direkt auf .cc-root; die Landing-Werte\n   werden darum dort erneut gesetzt. --cc-accent* verbindet beide Welten.\n   --------------------------------------------------------------------------- *\/\n.bf-lp .cc-root {\n  --cc-royal: #1633F6;\n  --cc-blue: #2348D4;\n  --cc-blue-strong: #1738BC;\n  --cc-navy: #061158;\n  --cc-navy-deep: #030827;\n  --cc-sky: #F1F5FF;\n  --cc-sky-2: #FAFBFF;\n  --cc-sky-3: #EBF0FF;\n  --cc-line: #D2DBEE;\n  --cc-line-strong: #B8C6E6;\n  --cc-ink: #14213D;\n  --cc-muted: #64728B;\n  --cc-gold: #C9A24E;\n  --cc-gold-soft: #E7C976;\n  --cc-white: #FFFFFF;\n  --cc-error: #B42318;\n  --cc-error-s: #FFF1F0;\n  --cc-accent:   var(--cc-blue);\n  --cc-accent-d: var(--cc-navy);\n  --cc-accent-s: var(--cc-sky-3);\n  --cc-accent-b: var(--cc-line);\n  --cc-field:    #FFFFFF;\n  --cc-bg:       #FFFFFF;\n  --cc-ok:       #1B7F5B;\n  --cc-font: \"Inter\", \"Inter Variable\", -apple-system, BlinkMacSystemFont, \"Segoe UI Variable Text\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  font-family: var(--cc-font);\n  width: 100%;\n  max-width: none;\n  margin: 0;\n  padding: 0;\n}\n\n\n\/* ===========================================================================\n   Popup \u201eRechtliche Hinweise\" \/ \u201eNutzung elektronischer Kommunikationsmittel\"\n\n   Warum hier und nicht unter .bf-lp:\n   Der Wrapper .bf-lp traegt `isolation: isolate` (noetig fuer die dekorative\n   Flaeche mit z-index:-1). Damit wird er zu einem eigenen Stacking-Context \u2014\n   das Popup mit z-index 99999 gilt dann nur INNERHALB der Landingpage und\n   landet trotzdem unter einem klebenden Seiten-Header. Die Instanz-JS haengt\n   das Popup deshalb an <body> und setzt die Klasse .bf-lp-modal; ab da greifen\n   diese Regeln, unabhaengig von jedem Stacking-Context.\n\n   Feste Farbwerte statt Variablen: das Popup liegt ausserhalb von .bf-lp und\n   erbt die --cc-* nicht mehr.\n   ======================================================================== *\/\n.cc-modal.bf-lp-modal {\n  position: fixed;\n  inset: 0;\n  z-index: 2147483000;\n  display: none;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  padding: 14px;\n  padding-top: calc(14px + env(safe-area-inset-top, 0px));\n  padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));\n  background: rgba(3, 8, 39, .62);\n  -webkit-backdrop-filter: blur(2px);\n  backdrop-filter: blur(2px);\n}\n\n.cc-modal.bf-lp-modal.open { display: flex; }\n\n.cc-modal.bf-lp-modal * { box-sizing: border-box; }\n\n.cc-modal.bf-lp-modal .cc-modal-box {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  max-width: 900px;\n  height: 88vh;\n  height: 88dvh;          \/* dvh: mobile Adressleiste wird beruecksichtigt *\/\n  max-height: 100%;\n  overflow: hidden;\n  border-radius: 14px;\n  background: #fff;\n  box-shadow: 0 24px 70px rgba(3, 8, 39, .45);\n}\n\n\/* Kopfleiste, damit der Schliessen-Knopf nicht auf dem Text liegt *\/\n.cc-modal.bf-lp-modal .cc-modal-box::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 54px;\n  background: #fff;\n  border-bottom: 1px solid #E3E8EC;\n  z-index: 1;\n}\n\n.cc-modal.bf-lp-modal .cc-modal-iframe {\n  flex: 1 1 auto;\n  width: 100%;\n  height: auto;\n  min-height: 0;\n  margin-top: 54px;\n  border: 0;\n  display: block;\n  background: #fff;\n  -webkit-overflow-scrolling: touch;\n}\n\n.cc-modal.bf-lp-modal .cc-modal-close {\n  position: absolute;\n  top: 7px;\n  right: 10px;\n  z-index: 3;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 40px;\n  height: 40px;\n  padding: 0;\n  border: none;\n  border-radius: 50%;\n  background: #e11d48;\n  color: #fff;\n  font: 700 26px\/1 -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif;\n  cursor: pointer;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, .28);\n}\n\n.cc-modal.bf-lp-modal .cc-modal-close:hover { background: #be123c; }\n.cc-modal.bf-lp-modal .cc-modal-close:focus-visible { outline: 3px solid #2348D4; outline-offset: 2px; }\n\n\/* Seite hinter dem Popup nicht mitscrollen lassen *\/\nbody.bf-lp-modal-offen { overflow: hidden !important; }\n\n@media (max-width: 600px) {\n  .cc-modal.bf-lp-modal { padding: 8px; }\n  .cc-modal.bf-lp-modal .cc-modal-box {\n    height: 94vh;\n    height: 94dvh;\n    border-radius: 12px;\n  }\n  .cc-modal.bf-lp-modal .cc-modal-box::before { height: 50px; }\n  .cc-modal.bf-lp-modal .cc-modal-iframe { margin-top: 50px; }\n  .cc-modal.bf-lp-modal .cc-modal-close { top: 5px; right: 8px; width: 40px; height: 40px; }\n}\n\n\n\/* -----------------------------------------------------------------------\n   v2.6.0 \u2014 zwei Zeilen bleiben mobil nebeneinander\n\n   Die Regel weiter oben bricht unter 680 px jede .cc-row in eine Spalte um.\n   Fuer PLZ\/Ort und Vorwahl\/Telefon ist das falsch. Die Klassen setzt die\n   Instanz-JS; die Selektoren ueber :has() und das <select> greifen auch\n   ohne JS, wo der Browser sie kennt.\n   ----------------------------------------------------------------------- *\/\n@media (max-width: 680px) {\n  .bf-lp .cc-root .cc-row.cc-plz-row,\n  .bf-lp .cc-root .cc-row.cc-phone-row,\n  .bf-lp .cc-root .cc-row:has(> select#ccTelCountry),\n  .bf-lp .cc-root .cc-row:has(> .cc-field > input#ccPLZ),\n  .bf-lp .cc-root .cc-row:has(> #ccPLZ) {\n    flex-direction: row;\n    flex-wrap: nowrap;\n    gap: 10px;\n    align-items: flex-start;\n  }\n\n  \/* PLZ: vier bis fuenf Ziffern, mehr braucht das Feld nicht. Ort bekommt\n     den Rest. min-width:0 verhindert, dass der Ort die Zeile sprengt. *\/\n  .bf-lp .cc-root .cc-row.cc-plz-row > .cc-field,\n  .bf-lp .cc-root .cc-row:has(> .cc-field > input#ccPLZ) > .cc-field {\n    flex: 1 1 auto !important;\n    min-width: 0;\n  }\n  .bf-lp .cc-root .cc-row.cc-plz-row > .cc-field:first-child,\n  .bf-lp .cc-root .cc-row:has(> .cc-field > input#ccPLZ) > .cc-field:first-child {\n    flex: 0 0 96px !important;\n    width: 96px;\n  }\n\n  \/* Vorwahl schmal halten; das Flaggen-Emoji plus \"+41\" passt in 96 px. *\/\n  .bf-lp .cc-root .cc-row.cc-phone-row > select,\n  .bf-lp .cc-root .cc-row > select#ccTelCountry {\n    flex: 0 0 96px !important;\n    width: 96px;\n    min-width: 0;\n    padding-left: 9px;\n    padding-right: 26px;\n    background-position: right 8px center;\n  }\n  .bf-lp .cc-root .cc-row.cc-phone-row > input[type=\"tel\"],\n  .bf-lp .cc-root .cc-row > input#ccTelNum {\n    flex: 1 1 auto !important;\n    min-width: 0;\n  }\n}\n\n@media (max-width: 380px) {\n  \/* Sehr schmale Geraete: Vorwahl noch etwas kleiner, damit die Nummer\n     nicht auf zwei Zeilen umbricht. *\/\n  .bf-lp .cc-root .cc-row.cc-phone-row > select,\n  .bf-lp .cc-root .cc-row > select#ccTelCountry {\n    flex: 0 0 86px !important;\n    width: 86px;\n    font-size: 15px;\n  }\n  .bf-lp .cc-root .cc-row.cc-plz-row > .cc-field:first-child,\n  .bf-lp .cc-root .cc-row:has(> .cc-field > input#ccPLZ) > .cc-field:first-child {\n    flex: 0 0 84px !important;\n    width: 84px;\n  }\n}\n\n\n\/* ======================================================================\n   VARIANTE \u201eHELL\u201c (v2.11.0) \u2014 Stil von bestfinance.ch\n   Helle blaugraue Flaechen, Ueberschriften Plus Jakarta Sans (light),\n   Fliesstext Source Sans Pro, Primaerblau, gruener Verlaufs-Knopf,\n   blaues Raten-Panel wie im Rechner der Startseite.\n   Aktiv ueber die Klasse .bf-lp--hell am Wrapper.\n   Eigene Standardfarben; Werte aus den Einstellungen (per ID gesetzt)\n   gewinnen weiterhin.\n   ====================================================================== *\/\n.bf-lp.bf-lp--hell,\n.bf-lp.bf-lp--hell .cc-root {\n  --cc-navy: #1E2F45;\n  --cc-navy-deep: #1E2F45;\n  --cc-blue: #2F6DB5;\n  --cc-blue-strong: #215490;\n  --cc-royal: #0F82D1;\n  --cc-gold: #0FA88F;\n  --cc-gold-soft: #22C3A6;\n  --cc-ink: #1E2F45;\n  --cc-muted: #4B6483;\n  --cc-line: #DBE3EE;\n  --cc-line-strong: #C3D1E4;\n  --cc-sky: #EDF2F9;\n  --cc-sky-2: #F7F9FC;\n  --cc-sky-3: #E9EFF8;\n  --cc-font: \"Source Sans Pro\", \"Source Sans 3\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif;\n  --cc-font-head: \"Plus Jakarta Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n  --cc-ok-1: #22C3A6;\n  --cc-ok-2: #0FA88F;\n  --cc-ok-3: #0B8C77;\n}\n.bf-lp.bf-lp--hell { font-family: var(--cc-font); font-size: 17px; }\n\n\/* Hero hell *\/\n.bf-lp.bf-lp--hell .cc-hero {\n  padding: 48px 48px 32px;\n  border: 1px solid var(--cc-line);\n  border-radius: 24px;\n  background-color: var(--cc-sky);\n  background-image:\n    radial-gradient(70% 90% at 100% 0%, rgba(255,255,255,.9) 0%, transparent 60%),\n    linear-gradient(180deg, var(--cc-sky) 0%, var(--cc-sky-2) 100%);\n  color: var(--cc-ink);\n}\n.bf-lp.bf-lp--hell .cc-hero::before { display: none; }\n\n.bf-lp.bf-lp--hell .cc-badge {\n  gap: 12px;\n  margin-bottom: 18px;\n  padding: 0;\n  border: 0;\n  border-radius: 0;\n  background: none;\n  color: var(--cc-blue);\n  font-size: 13px;\n  font-weight: 600;\n  letter-spacing: 0;\n  text-transform: none;\n}\n.bf-lp.bf-lp--hell .cc-badge::before {\n  width: 28px;\n  height: 1.5px;\n  border-radius: 0;\n  background: var(--cc-blue);\n  box-shadow: none;\n}\n.bf-lp.bf-lp--hell .cc-greet {\n  margin-bottom: 18px;\n  color: var(--cc-ink);\n  font-family: var(--cc-font-head);\n  font-size: clamp(32px, 4.2vw, 52px);\n  font-weight: 300;\n  letter-spacing: -.02em;\n  line-height: 1.12;\n}\n.bf-lp.bf-lp--hell .cc-intro-text {\n  max-width: 640px;\n  color: var(--cc-muted);\n  font-size: 18px;\n  line-height: 1.6;\n}\n.bf-lp.bf-lp--hell .cc-intro-service { gap: 10px 22px; margin-top: 22px; }\n.bf-lp.bf-lp--hell .cc-intro-service span {\n  padding: 0;\n  border: 0;\n  border-radius: 0;\n  background: none;\n  color: var(--cc-ink);\n  font-size: 15px;\n  font-weight: 600;\n}\n.bf-lp.bf-lp--hell .cc-intro-service span::before {\n  background-color: var(--cc-gold);\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'\/%3E%3C\/svg%3E\");\n}\n.bf-lp.bf-lp--hell .cc-intro-mark {\n  width: 80px;\n  height: 80px;\n  border: 1px solid var(--cc-line);\n  border-radius: 20px;\n  background: #fff;\n  box-shadow: 0 14px 28px -16px rgba(33, 84, 144, .45);\n  -webkit-backdrop-filter: none;\n          backdrop-filter: none;\n}\n.bf-lp.bf-lp--hell .cc-intro-mark svg { stroke: var(--cc-blue); }\n.bf-lp.bf-lp--hell .cc-intro-mark svg path:last-child,\n.bf-lp.bf-lp--hell .cc-intro-mark svg polyline:last-child { stroke: var(--cc-gold); }\n\n\/* Kacheln: weisse Karten *\/\n.bf-lp.bf-lp--hell .cc-benefits { gap: 12px; margin-top: 34px; }\n.bf-lp.bf-lp--hell .cc-benefit {\n  gap: 14px;\n  padding: 20px;\n  border: 1px solid var(--cc-line);\n  border-radius: 16px;\n  background: #fff;\n  box-shadow: 0 10px 24px -18px rgba(33, 84, 144, .35);\n}\n.bf-lp.bf-lp--hell .cc-benefit:hover { background: #fff; border-color: var(--cc-line-strong); }\n.bf-lp.bf-lp--hell .cc-benefit-ic {\n  width: 40px;\n  height: 40px;\n  border-radius: 12px;\n  background: color-mix(in srgb, var(--cc-blue) 9%, #fff);\n  box-shadow: none;\n}\n.bf-lp.bf-lp--hell .cc-benefit-ic svg { stroke: var(--cc-blue); }\n.bf-lp.bf-lp--hell .cc-benefit-title {\n  color: var(--cc-ink);\n  font-family: var(--cc-font-head);\n  font-size: 16px;\n  font-weight: 500;\n  letter-spacing: -.01em;\n}\n.bf-lp.bf-lp--hell .cc-benefit-sub { color: var(--cc-muted); font-size: 15px; line-height: 1.5; }\n\n\/* Formular-Karten *\/\n.bf-lp.bf-lp--hell .cc-root .cc-card {\n  border-color: var(--cc-line);\n  border-radius: 16px;\n  box-shadow: 0 14px 30px -22px rgba(33, 84, 144, .45);\n}\n.bf-lp.bf-lp--hell .cc-root .cc-sec-title {\n  color: var(--cc-ink);\n  font-family: var(--cc-font-head);\n  font-size: 22px;\n  font-weight: 300;\n  letter-spacing: -.015em;\n}\n.bf-lp.bf-lp--hell .cc-root .cc-sec-title span.num {\n  width: 30px;\n  height: 30px;\n  border-radius: 50%;\n  background: color-mix(in srgb, var(--cc-blue) 10%, #fff);\n  color: var(--cc-blue);\n  font-family: var(--cc-font);\n  font-size: 14px;\n  font-weight: 700;\n}\n.bf-lp.bf-lp--hell .cc-root label.cc-lbl { color: var(--cc-ink); font-size: 15px; font-weight: 600; }\n.bf-lp.bf-lp--hell .cc-root .cc-slider-head label.cc-lbl { color: var(--cc-ink); }\n\n\/* Felder: weiss mit Linie (wie die Zahlenfelder im Rechner) *\/\n.bf-lp.bf-lp--hell .cc-root input[type=\"text\"],\n.bf-lp.bf-lp--hell .cc-root input[type=\"tel\"],\n.bf-lp.bf-lp--hell .cc-root input[type=\"email\"],\n.bf-lp.bf-lp--hell .cc-root input[type=\"number\"],\n.bf-lp.bf-lp--hell .cc-root select,\n.bf-lp.bf-lp--hell .cc-root textarea {\n  border: 1px solid var(--cc-line);\n  background: #fff;\n  box-shadow: none;\n  font-size: 17px;\n}\n.bf-lp.bf-lp--hell .cc-root input:hover,\n.bf-lp.bf-lp--hell .cc-root select:hover,\n.bf-lp.bf-lp--hell .cc-root textarea:hover { border-color: var(--cc-line-strong); box-shadow: none; }\n.bf-lp.bf-lp--hell .cc-root input:focus,\n.bf-lp.bf-lp--hell .cc-root select:focus,\n.bf-lp.bf-lp--hell .cc-root textarea:focus {\n  border-color: var(--cc-blue);\n  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-blue) 14%, transparent);\n}\n.bf-lp.bf-lp--hell .cc-root .cc-phone-row {\n  border: 1px solid var(--cc-line);\n  background: #fff;\n  box-shadow: none;\n}\n.bf-lp.bf-lp--hell .cc-root .cc-phone-row select { background-color: var(--cc-sky-2) !important; }\n.bf-lp.bf-lp--hell .cc-root .cc-seg { background: var(--cc-sky); box-shadow: inset 0 0 0 1px var(--cc-line); }\n.bf-lp.bf-lp--hell .cc-root .cc-seg button { font-size: 16px; }\n.bf-lp.bf-lp--hell .cc-root .cc-seg button[aria-pressed=\"true\"] {\n  background: var(--cc-blue);\n  color: #fff;\n  box-shadow: 0 6px 14px -8px color-mix(in srgb, var(--cc-blue) 80%, transparent);\n}\n\n\/* Betrag + Laufzeit wie im Rechner *\/\n.bf-lp.bf-lp--hell .cc-root .cc-slider-val {\n  padding: 8px 14px;\n  border-radius: 12px;\n  background: var(--cc-sky);\n  color: var(--cc-ink);\n  font-family: var(--cc-font-head);\n  font-size: 24px;\n  font-weight: 500;\n  letter-spacing: -.02em;\n}\n.bf-lp.bf-lp--hell .cc-root .cc-slider-val small { font-family: var(--cc-font); font-size: 14px; }\n.bf-lp.bf-lp--hell .cc-root input[type=\"range\"] {\n  height: 8px;\n  background: linear-gradient(90deg, var(--cc-blue-strong) 0, var(--cc-blue) var(--cc-range-progress), var(--cc-line) var(--cc-range-progress), var(--cc-line) 100%);\n  box-shadow: inset 0 1px 2px rgba(30, 47, 69, .12);\n}\n.bf-lp.bf-lp--hell .cc-root input[type=\"range\"]::-webkit-slider-thumb {\n  width: 24px;\n  height: 24px;\n  background: #fff;\n  box-shadow: 0 0 0 5px var(--cc-blue-strong) inset, 0 3px 8px rgba(30, 47, 69, .3);\n}\n.bf-lp.bf-lp--hell .cc-root input[type=\"range\"]::-moz-range-thumb { border-color: var(--cc-blue-strong); }\n.bf-lp.bf-lp--hell .cc-root .cc-slider-scale { color: var(--cc-muted); font-size: 13px; }\n\n\/* Raten-Panel blau wie auf der Startseite *\/\n.bf-lp.bf-lp--hell .cc-root .cc-rate {\n  border-radius: 16px;\n  background-color: var(--cc-blue-strong);\n  background-image:\n    radial-gradient(90% 120% at 100% 0%, color-mix(in srgb, #fff 22%, transparent), transparent 60%),\n    linear-gradient(135deg, var(--cc-blue-strong) 0%, var(--cc-blue) 100%);\n}\n.bf-lp.bf-lp--hell .cc-root .cc-rate-label { color: rgba(255,255,255,.85); font-weight: 600; }\n.bf-lp.bf-lp--hell .cc-root .cc-rate-big { font-family: var(--cc-font-head); font-weight: 700; letter-spacing: -.03em; }\n.bf-lp.bf-lp--hell .cc-root .cc-rate-side { color: rgba(255,255,255,.82); }\n.bf-lp.bf-lp--hell .cc-root .cc-rate-side b { color: #fff; }\n.bf-lp.bf-lp--hell .cc-root .cc-rate-note { color: var(--cc-muted); font-size: 13px; }\n\n\/* Einwilligung *\/\n.bf-lp.bf-lp--hell .cc-root .cc-consent { background: var(--cc-sky-2); border-color: var(--cc-line); }\n.bf-lp.bf-lp--hell .cc-root .cc-check-txt { font-size: 15.5px; }\n.bf-lp.bf-lp--hell .cc-root .cc-check input:checked + .cc-box { border-color: var(--cc-blue); background: var(--cc-blue); }\n\n\/* Absenden: gruener Verlauf wie \u201eWeiter\u201c im Rechner *\/\n.bf-lp.bf-lp--hell .cc-root .cc-submit {\n  min-height: 58px;\n  border-radius: 14px;\n  background: linear-gradient(135deg, var(--cc-ok-1), var(--cc-ok-2) 55%, var(--cc-ok-3));\n  box-shadow: 0 14px 28px -12px rgba(0, 0, 0, .45);\n  font-family: var(--cc-font);\n  font-size: 18px;\n  font-weight: 700;\n}\n.bf-lp.bf-lp--hell .cc-root .cc-submit::after {\n  width: 26px;\n  height: 26px;\n  background-color: rgba(255,255,255,.22);\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'\/%3E%3Cpolyline points='13 6 19 12 13 18'\/%3E%3C\/svg%3E\");\n}\n.bf-lp.bf-lp--hell .cc-root .cc-submit:hover { background: linear-gradient(135deg, var(--cc-ok-2), var(--cc-ok-3)); }\n.bf-lp.bf-lp--hell .cc-root .cc-hint { color: var(--cc-muted); }\n\n@media (max-width: 680px) {\n  .bf-lp.bf-lp--hell .cc-hero { padding: 30px 20px 22px; border-radius: 20px; }\n  .bf-lp.bf-lp--hell .cc-intro-text { font-size: 17px; }\n  .bf-lp.bf-lp--hell .cc-intro-service { flex-direction: column; gap: 10px; }\n  .bf-lp.bf-lp--hell .cc-benefit { padding: 16px; }\n  .bf-lp.bf-lp--hell .cc-root .cc-sec-title { font-size: 21px; }\n  .bf-lp.bf-lp--hell .cc-root .cc-slider-val { font-size: 22px; }\n}\n\n<\/style><style>#bfLp978c8612,#bfLp978c8612 .cc-root{--cc-navy:#061158;--cc-navy-deep:#030827;--cc-blue:#2348D4;--cc-blue-strong:#1738BC;--cc-royal:#1633F6;--cc-gold:#C9A24E;--cc-gold-soft:#E7C976;--cc-ink:#14213D;--cc-muted:#64728B;--cc-line:#D2DBEE;--cc-line-strong:#B8C6E6;--cc-sky:#F1F5FF;--cc-sky-2:#FAFBFF;--cc-sky-3:#EBF0FF;}#bfLp978c8612 .cc-root{--cc-accent:var(--cc-blue)!important;--cc-accent-d:var(--cc-navy)!important;--cc-accent-s:var(--cc-sky-3)!important;--cc-accent-b:var(--cc-line-strong)!important;--cc-ink:#14213D!important;}<\/style><section class=\"cc-hero\"><div class=\"cc-intro\"><div class=\"cc-intro-main\"><span class=\"cc-badge\">Regroupement de cr\u00e9dits<\/span><div class=\"cc-greet\">Plusieurs cr\u00e9dits \u2013 une seule mensualit\u00e9<\/div><p class=\"cc-intro-text\">Les cr\u00e9dits en cours, le leasing et les dettes de cartes peuvent souvent \u00eatre regroup\u00e9s en un seul cr\u00e9dit. Cela apporte de la clart\u00e9 et peut r\u00e9duire sensiblement la charge mensuelle. Nous examinons sans engagement ce qui est possible dans votre situation.<\/p><div class=\"cc-intro-service\"><span>Une mensualit\u00e9 au lieu de plusieurs<\/span><span>Examen sans engagement<\/span><span>Confidentiel<\/span><\/div><\/div><div class=\"cc-intro-mark\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 5 6v5c0 4.8 2.8 8.2 7 10 4.2-1.8 7-5.2 7-10V6l-7-3Z\"\/><path d=\"m9 12 2 2 4-5\"\/><\/svg><\/div><\/div><div class=\"cc-benefits\"><div class=\"cc-benefit\"><span class=\"cc-benefit-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"8\" y1=\"13\" x2=\"16\" y2=\"13\"\/><line x1=\"8\" y1=\"17\" x2=\"13\" y2=\"17\"\/><\/svg><\/span><div><div class=\"cc-benefit-title\">Tout regroup\u00e9<\/div><div class=\"cc-benefit-sub\">Vos engagements actuels r\u00e9unis en un seul cr\u00e9dit<\/div><\/div><\/div><div class=\"cc-benefit\"><span class=\"cc-benefit-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><polyline points=\"12 7 12 12 15 14\"\/><\/svg><\/span><div><div class=\"cc-benefit-title\">Une dur\u00e9e claire<\/div><div class=\"cc-benefit-sub\">Une seule \u00e9ch\u00e9ance au lieu de plusieurs dates diff\u00e9rentes<\/div><\/div><\/div><div class=\"cc-benefit\"><span class=\"cc-benefit-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"19\" y1=\"5\" x2=\"5\" y2=\"19\"\/><circle cx=\"7.5\" cy=\"7.5\" r=\"2.5\"\/><circle cx=\"16.5\" cy=\"16.5\" r=\"2.5\"\/><\/svg><\/span><div><div class=\"cc-benefit-title\">De la marge dans le budget<\/div><div class=\"cc-benefit-sub\">Une mensualit\u00e9 plus basse peut all\u00e9ger le quotidien<\/div><\/div><\/div><div class=\"cc-benefit\"><span class=\"cc-benefit-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\/><circle cx=\"12\" cy=\"7\" r=\"4\"\/><\/svg><\/span><div><div class=\"cc-benefit-title\">Accompagnement personnel<\/div><div class=\"cc-benefit-sub\">Nous calculons votre situation avec vous<\/div><\/div><\/div><\/div><\/section><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\/\",\"FILIALE_FALLBACK\":\"AA\",\"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,\"WUNSCH_POS\":\"first\",\"LANG\":\"fr\",\"W1_DEFAULT\":\"Marketing-Umschuldung\",\"FO_DEFAULT\":\"\"};<\/script><!-- \u2550\u2550\u2550 BF-VERSION: v1.1 \u00b7 Formular \u00b7 Disclaimer (Bestandskunden-Best\u00e4tigung) \u00b7 Stand 2026-07-25 \u2550\u2550\u2550 -->\n<!-- \u00c4NDERUNGEN v1.1 (2026-07-25):\n     \u2022 Reine Disclaimer-Best\u00e4tigung f\u00fcr Bestandskunden: KEINE DB-Speicherung mehr\n       (verstecktes Feld cc_nodb=1 \u2192 der DB-Writer \u00fcberspringt solche Requests). Nur E-Mail.\n     \u2022 Werbe-Einwilligung: kein H\u00e4kchen, wird fest mit \"ja\" gesendet (Bestandskunden).\n     \u2022 Kein Teil-Save \u2013 nur der finale Submit sendet. -->\n<!-- ==========================================================================\n     bestfinance.CH  \u2013  DISCLAIMER - FORMULAR\n     --------------------------------------------------------------------------\n     \u2022 Einsatz: Elementor \"HTML\"-Widget (1:1 einf\u00fcgen)\n     \u2022 Postet an \/wp-json\/bestfinance\/v1\/submit (gleicher Mailer)\n     \u2022 NEU:\n         \u2013 lead_uid (UUID) je Formular-Session\n         \u2013 Strasse (ohne separate Nr.)\n         \u2013 PLZ\u2192Ort\/Kanton-Autofill via \/wp-json\/bestfinance\/v1\/gemeinden\n     \u2022 Reines HTML\/CSS\/JS, mobil optimiert, alles unter .cc-root gekapselt\n     ========================================================================== -->\n<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\">\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-ok:       #1B7F5B;\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      font-size: 16px;\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: 24px; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 4px; }\n    .cc-root .cc-lead { color: var(--cc-muted); margin: 0 0 20px; font-size: 16px; }\n    .cc-root .cc-card {\n      background: var(--cc-bg);\n      border: 1px solid var(--cc-line);\n      border-radius: var(--cc-radius);\n      padding: 18px 16px;\n      margin-bottom: 14px;\n    }\n    .cc-root .cc-sec-title {\n      font-size: 13px; 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: 12px;\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 {\n      display: block; font-size: 15px; font-weight: 600;\n      margin-bottom: 6px; color: var(--cc-ink);\n    }\n    .cc-root .cc-req { color: var(--cc-accent); }\n    .cc-root input[type=text],\n    .cc-root input[type=tel],\n    .cc-root input[type=email],\n    .cc-root input[type=number],\n    .cc-root select,\n    .cc-root textarea {\n      width: 100%;\n      font-family: inherit; font-size: 16px; color: var(--cc-ink);\n      background: var(--cc-field);\n      border: 1.5px solid var(--cc-line);\n      border-radius: var(--cc-radius-s);\n      padding: 14px 14px;\n      min-height: 52px;\n      appearance: none; -webkit-appearance: none;\n      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);\n      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 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;\n      padding-right: 40px;\n    }\n    .cc-root .cc-invalid input,\n    .cc-root .cc-invalid select,\n    .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    .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: 25px; font-weight: 700; letter-spacing: -0.02em; color: var(--cc-accent-d); }\n    .cc-root .cc-slider-val small { font-size: 14px; font-weight: 600; color: var(--cc-muted); }\n    .cc-root input[type=range] {\n      -webkit-appearance: none; appearance: none;\n      width: 100%; height: 8px; border-radius: 8px; padding: 0; min-height: 0;\n      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;\n      width: 30px; height: 30px; border-radius: 50%;\n      background: var(--cc-accent); border: 4px solid #fff;\n      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%;\n      background: var(--cc-accent); border: 4px solid #fff;\n      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    .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: 13px; color: var(--cc-accent-d); font-weight: 600; }\n    .cc-root .cc-rate-big { font-size: 27px; font-weight: 800; color: var(--cc-accent-d); letter-spacing: -.02em; }\n    .cc-root .cc-rate-big small { font-size: 15px; 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    .cc-root .cc-seg { display: flex; gap: 8px; }\n    .cc-root .cc-seg button {\n      flex: 1; font-family: inherit; font-size: 16px; font-weight: 600;\n      min-height: 52px; border: 1.5px solid var(--cc-line);\n      background: var(--cc-field); color: var(--cc-ink);\n      border-radius: var(--cc-radius-s); cursor: pointer;\n      transition: all .15s;\n    }\n    .cc-root .cc-seg button[aria-pressed=\"true\"] {\n      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;\n      border: 2px solid var(--cc-line); border-radius: 8px; background: #fff;\n      display: inline-flex; align-items: center; justify-content: center;\n      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-consent.cc-invalid .cc-box { border-color: var(--cc-error); }\n    .cc-root .cc-submit {\n      width: 100%; font-family: inherit; font-size: 17px; font-weight: 700;\n      color: #fff; background: var(--cc-accent); border: none;\n      border-radius: var(--cc-radius); padding: 18px; min-height: 58px;\n      cursor: pointer; margin-top: 4px;\n      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;\n      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    .cc-root .cc-form-msg {\n      display: none; margin-top: 14px; padding: 14px 16px; border-radius: var(--cc-radius-s);\n      font-size: 15px; font-weight: 600; background: var(--cc-error-s); color: var(--cc-error);\n    }\n    .cc-root .cc-form-msg.show { display: block; }\n    .cc-root .cc-hint { font-size: 13px; 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    @media (prefers-reduced-motion: reduce) {\n      .cc-root .cc-submit .cc-spin { animation: none; }\n      .cc-root * { transition: none !important; }\n    }\n    @media (max-width: 400px) { .cc-root .cc-row { flex-direction: column; gap: 0; } .cc-root .cc-row > * { margin-bottom: 14px; } }\n    .cc-root .cc-lead,\n    .cc-root .cc-check-txt,\n    .cc-root .cc-rate-note,\n    .cc-root .cc-rate-side,\n    .cc-root .cc-hint,\n    .cc-root p { text-wrap: pretty; }\n    @media (max-width: 600px) {\n      .cc-root label.cc-lbl,\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      .cc-root .cc-lead { font-size: 17px; }\n      .cc-root h2 { font-size: 22px; }\n      .cc-root .cc-check-txt { font-size: 16px; line-height: 1.5; }\n      .cc-root .cc-check-txt a { font-size: 16px; }\n      .cc-root .cc-submit { font-size: 17px; }\n      .cc-root .cc-hint, .cc-root .cc-err-msg, .cc-root .cc-sec-title,\n      .cc-root .cc-form-msg,\n      .cc-root .cc-rate-label, .cc-root .cc-rate-side { font-size: 15px; }\n      .cc-root .cc-rate-note, .cc-root .cc-slider-scale { font-size: 14px; }\n    }\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  <\/style>\n  <form id=\"ccForm\" novalidate autocomplete=\"on\">\n    <h2>Demande de cr\u00e9dit<\/h2>\n    <p class=\"cc-lead\">Sans engagement et gratuit. Toutes vos donn\u00e9es sont trait\u00e9es de mani\u00e8re confidentielle.<\/p>\n    <!-- ============ 1) IHR KREDITWUNSCH ============ -->\n    <div class=\"cc-card\">\n      <p class=\"cc-sec-title\"><span class=\"num\">1<\/span> Montant souhait\u00e9<\/p>\n      <div class=\"cc-field\">\n        <div class=\"cc-slider-head\">\n          <label class=\"cc-lbl\" for=\"ccBetrag\" style=\"margin:0\">Montant du cr\u00e9dit<\/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\">Dur\u00e9e<\/label>\n          <span class=\"cc-slider-val\"><span id=\"ccLaufzeitTxt\">36<\/span> <small>mois<\/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\">Mensualit\u00e9 d\u00e8s<\/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          au meilleur taux <b><span id=\"ccZinsMin\">4.9<\/span>%<\/b><br>\n          \u00e0 <span id=\"ccRateMax\">\u2013<\/span> CHF \u00e0 <span id=\"ccZinsMax\">9.95<\/span>%\n        <\/div>\n      <\/div>\n      <p class=\"cc-rate-note\">Valeur indicative sans engagement. Le taux annuel effectif d\u00e9pend de votre solvabilit\u00e9 (<span id=\"ccZinsMinN\">4.9<\/span>%\u2013<span id=\"ccZinsMaxN\">9.95<\/span>% p.a.).<\/p>\n    <\/div>\n    <!-- ============ 2) PERS\u00d6NLICHE ANGABEN ============ -->\n    <div class=\"cc-card\">\n      <p class=\"cc-sec-title\"><span class=\"num\">2<\/span> Donn\u00e9es personnelles<\/p>\n      <div class=\"cc-field\">\n        <label class=\"cc-lbl\">Civilit\u00e9 <span class=\"cc-req\">*<\/span><\/label>\n        <div class=\"cc-seg\" id=\"ccAnredeSeg\">\n          <button type=\"button\" data-val=\"Herr\" aria-pressed=\"false\">Monsieur<\/button>\n          <button type=\"button\" data-val=\"Frau\" aria-pressed=\"false\">Madame<\/button>\n        <\/div>\n        <input type=\"hidden\" name=\"Anrede\" id=\"ccAnrede\" required>\n        <div class=\"cc-err-msg\">Veuillez choisir la civilit\u00e9.<\/div>\n      <\/div>\n      <div class=\"cc-row\">\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccVorname\">Pr\u00e9nom <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"ccVorname\" name=\"vorname\" autocomplete=\"given-name\" required>\n          <div class=\"cc-err-msg\">Veuillez saisir le pr\u00e9nom.<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccNachname\">Nom <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"ccNachname\" name=\"nachname\" autocomplete=\"family-name\" required>\n          <div class=\"cc-err-msg\">Veuillez saisir le nom.<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"cc-field\">\n        <label class=\"cc-lbl\" for=\"ccGeb\">Date de naissance <span class=\"cc-req\">*<\/span><\/label>\n        <input type=\"text\" id=\"ccGeb\" name=\"Geburtsdatum\" inputmode=\"numeric\"\n               placeholder=\"JJ.MM.AAAA\" maxlength=\"10\" autocomplete=\"bday\" required>\n        <div class=\"cc-err-msg\">Veuillez saisir une date valide (JJ.MM.AAAA), min. 18 ans.<\/div>\n      <\/div>\n      <!-- Strasse (ohne separate Nr.) -->\n      <div class=\"cc-field\">\n        <label class=\"cc-lbl\" for=\"ccStrasse\">Rue <span class=\"cc-req\">*<\/span><\/label>\n        <input type=\"text\" id=\"ccStrasse\" name=\"Strasse\" autocomplete=\"address-line1\" required>\n        <div class=\"cc-err-msg\">Veuillez saisir la rue.<\/div>\n      <\/div>\n      <div class=\"cc-row\">\n        <div class=\"cc-field\" style=\"flex:0 0 38%\">\n          <label class=\"cc-lbl\" for=\"ccPLZ\">NPA <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"ccPLZ\" name=\"PLZ\" inputmode=\"numeric\" maxlength=\"5\"\n                 autocomplete=\"postal-code\" required>\n          <div class=\"cc-err-msg\">NPA invalide.<\/div>\n        <\/div>\n        <div class=\"cc-field\">\n          <label class=\"cc-lbl\" for=\"ccOrt\">Localit\u00e9 <span class=\"cc-req\">*<\/span><\/label>\n          <input type=\"text\" id=\"ccOrt\" name=\"Ort\" list=\"ccOrtList\" autocomplete=\"address-level2\" required>\n          <datalist id=\"ccOrtList\"><\/datalist>\n          <div class=\"cc-err-msg\">Veuillez saisir la localit\u00e9.<\/div>\n        <\/div>\n      <\/div>\n      <!-- Kanton wird automatisch aus der PLZ gesetzt -->\n      <input type=\"hidden\" name=\"Kanton\" id=\"ccKanton\">\n      <div class=\"cc-field\">\n        <label class=\"cc-lbl\" for=\"ccTelNum\">T\u00e9l\u00e9phone <span class=\"cc-req\">*<\/span><\/label>\n        <div class=\"cc-row\" style=\"gap:8px\">\n          <select id=\"ccTelCountry\" style=\"flex:0 0 120px\" aria-label=\"Indicatif du pays\">\n            <option value=\"41\" data-ph=\"079 123 45 67\" selected>\ud83c\udde8\ud83c\udded +41<\/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\"\n                 autocomplete=\"tel-national\" style=\"flex:1 1 auto\">\n        <\/div>\n        <input type=\"hidden\" name=\"phonenumber\" id=\"ccTel\">\n        <div class=\"cc-err-msg\">Veuillez saisir un num\u00e9ro de t\u00e9l\u00e9phone valide.<\/div>\n      <\/div>\n      <div class=\"cc-field\">\n        <label class=\"cc-lbl\" for=\"ccEmail\">E-mail <span class=\"cc-req\">*<\/span><\/label>\n        <input type=\"email\" id=\"ccEmail\" name=\"email\" inputmode=\"email\"\n               placeholder=\"nom@exemple.ch\" autocomplete=\"email\" required>\n        <div class=\"cc-err-msg\">Veuillez saisir une adresse e-mail valide.<\/div>\n      <\/div>\n    <\/div>\n    <!-- ============ 3) MITTEILUNG & EINWILLIGUNGEN ============ -->\n    <div class=\"cc-card\">\n      <p class=\"cc-sec-title\"><span class=\"num\">3<\/span> Message et consentements<\/p>\n      <div class=\"cc-field\">\n        <label class=\"cc-lbl\" for=\"ccMsg\">Votre message (facultatif)<\/label>\n        <textarea id=\"ccMsg\" name=\"question\" placeholder=\"Votre message pour nous \u2026\"><\/textarea>\n      <\/div>\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            J'ai pris connaissance des <a href=\"https:\/\/www.bestfinance.ch\/legal-information-bf\/\" class=\"cc-legal-link\" rel=\"noopener\">mentions l\u00e9gales<\/a>\n            et j'accepte l' <a href=\"https:\/\/www.bestfinance.ch\/privacy-policy-bf\/\" class=\"cc-legal-link\" rel=\"noopener\">utilisation de moyens de communication \u00e9lectroniques<\/a>. Mes donn\u00e9es peuvent, \u00e0 partir de ce consentement, \u00eatre enregistr\u00e9es et utilis\u00e9es pour le traitement de ma demande ainsi que pour la prise de contact. <span class=\"cc-req\">*<\/span>\n          <\/span>\n        <\/label>\n        <div class=\"cc-err-msg\" style=\"margin-left:38px\">Ce consentement est n\u00e9cessaire.<\/div>\n      <\/div>\n    <\/div>\n    <!-- Honeypot -->\n    <div class=\"cc-hp\" aria-hidden=\"true\">\n      <label>Veuillez laisser ce champ vide\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=\"kurz\">\n    <input type=\"hidden\" name=\"cc_nodb\" value=\"1\">\n    <input type=\"hidden\" name=\"Werbung\" value=\"ja\"><!-- Bestandskunden: Einwilligung liegt bereits vor -->\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=\"BF\">\n    <button type=\"submit\" class=\"cc-submit\" id=\"ccSubmit\">\n      <span class=\"cc-spin\" aria-hidden=\"true\"><\/span>\n      <span class=\"cc-submit-label\">Faire examiner mon regroupement<\/span>\n    <\/button>\n    <div class=\"cc-form-msg\" id=\"ccFormMsg\" role=\"alert\"><\/div>\n    <p class=\"cc-hint\" style=\"text-align:center;margin-top:14px\">\n      \ud83d\udd12 Transmission crypt\u00e9e SSL \u00b7 Vos donn\u00e9es sont trait\u00e9es de fa\u00e7on confidentielle.\n    <\/p>\n  <\/form>\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=\"Fermer\">&times;<\/button>\n      <iframe class=\"cc-modal-iframe\" id=\"ccModalFrame\" src=\"about:blank\" title=\"Informations l\u00e9gales\"><\/iframe>\n    <\/div>\n  <\/div>\n  <script>\n  (function () {\n    \"use strict\";\n    \/\/ v1.2 (Plugin): Endpunkte + Dankesseiten aus den Einstellungen (window.BF_KREDIT_CFG),\n    \/\/ R\u00fcckfall = bisherige bestfinance.ch-Werte.\n    var _CFG = (window.BF_KREDIT_CFG || {});\n    var CONFIG = {\n      ENDPOINT: _CFG.ENDPOINT || \"\/wp-json\/bestfinance\/v1\/submit\",\n      GEMEINDEN: _CFG.PLZ_ENDPOINT || \"\/wp-json\/bestfinance\/v1\/gemeinden\",\n      THANKYOU_URLS: _CFG.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: _CFG.THANKYOU_URL || \"https:\/\/www.bestfinance.ch\/danke\/\",\n      LEGAL_URLS: _CFG.LEGAL_URLS || null,\n      LEGAL_URL: _CFG.LEGAL_URL || \"https:\/\/www.bestfinance.ch\/legal-information-bf\/\",\n      PRIVACY_URLS: _CFG.PRIVACY_URLS || null,\n      PRIVACY_URL: _CFG.PRIVACY_URL || \"https:\/\/www.bestfinance.ch\/privacy-policy-bf\/\",\n      MIN_AGE: 18\n    };\n    var form = document.getElementById(\"ccForm\");\n    if (!form) return;\n    document.getElementById(\"ccTs\").value = String(Date.now());\n    \/\/ ---- lead_uid: einmalige UUID pro Formular-Session ----\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    var LEAD_UID = uuid();\n    document.getElementById(\"ccLeadUid\").value = LEAD_UID;\n    \/\/ ---- Sprache erkennen ----\n    var CC_LANG = (function () {\n      var known = [\"de\", \"fr\", \"it\", \"pt\", \"es\", \"en\"];\n      var srv = (_CFG && _CFG.LANG) ? String(_CFG.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\")\n                 .slice(0, 2).toLowerCase();\n      return known.indexOf(hl) >= 0 ? hl : \"de\";\n    })();\n    document.getElementById(\"ccLang\").value = CC_LANG;\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    };\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    function $(id) { return document.getElementById(id); }\n    function nf(n) { return n.toLocaleString(\"de-CH\").replace(\/,\/g, \"\u2019\"); }\n    \/\/ ---- Kampagnen-Tracking w1 + FilialeOrt fo (versteckte Felder) ----\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 qs = new URLSearchParams(location.search);\n      \/\/ w1: kein Wert im Link -> \"direct\"\n      var urlW1 = qs.get(\"w1\");\n      if (urlW1) ccSetCookie(\"cc_w1\", urlW1, 30);\n      \/\/ v1.8.0: Vorgabe der Landingpage steht VOR dem Cookie. Ein 30 Tage altes\n      \/\/ Cookie einer anderen Kampagne soll die aktuelle Seite nicht ueberschreiben.\n      var w1 = urlW1 || (_CFG.W1_DEFAULT || \"\") || ccGetCookie(\"cc_w1\");\n      if ($(\"ccW1\")) $(\"ccW1\").value = w1 || \"direct\";\n      \/\/ fo: Link-Wert; sonst aus Sprache (pt\/fr -> LS, sonst AA). Filiale bleibt BF.\n      var urlFo = qs.get(\"fo\");\n      if (urlFo) ccSetCookie(\"cc_fo\", urlFo, 30);\n      var fo = urlFo || (_CFG.FO_DEFAULT || \"\") || ccGetCookie(\"cc_fo\");\n      if (!fo) { fo = (CC_LANG === \"pt\" || CC_LANG === \"fr\") ? \"LS\" : \"AA\"; }\n      if ($(\"ccFo\")) $(\"ccFo\").value = fo.toUpperCase();\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    \/\/ ---- Rechner-Konfiguration (window.CC_CALC \/ data-Attribut \/ Standard) ----\n    var _root = document.querySelector(\".cc-root\") || document.documentElement;\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    \/\/ Betragsraster: zentrale Master-Liste aus BFCalc, auf den hier gueltigen\n    \/\/ Bereich gefiltert. Ohne BFCalc der bisherige Eigenbau (1000er bis 80'000,\n    \/\/ danach 5000er) \u2014 er erzeugt bei 5'000-300'000 dieselben Stufen.\n    var AMOUNTS = [];\n    (function () {\n      var B = window.BFCalc;\n      if (B && typeof B.getAmounts === \"function\") {\n        AMOUNTS = B.getAmounts().filter(function (v) { return v >= MIN_AMOUNT && v <= MAX_AMOUNT; });\n      }\n      if (!AMOUNTS.length) {\n        var bp = 80000, s1 = 1000, s2 = 5000, v = MIN_AMOUNT;\n        while (v < MAX_AMOUNT) { AMOUNTS.push(v); v += (v < bp ? s1 : s2); }\n        AMOUNTS.push(MAX_AMOUNT);\n      }\n    })();\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    \/\/ Laufzeitraster: ebenfalls aus BFCalc. Dessen Master-Liste springt bewusst\n    \/\/ von 84 auf 120 Monate \u2014 der frueher hier erzeugte 6er-Takt bot 90\/96\/102\/\n    \/\/ 108\/114 an, die es sonst nirgends auf der Website gibt.\n    var DURATIONS = [];\n    (function () {\n      var B = window.BFCalc;\n      if (B && typeof B.getDurations === \"function\") {\n        DURATIONS = B.getDurations().filter(function (v) { return v >= DUR_MIN && v <= DUR_MAX; });\n      }\n      if (!DURATIONS.length) {\n        for (var d = DUR_MIN; d < DUR_MAX; d += 6) DURATIONS.push(d);\n        DURATIONS.push(DUR_MAX);\n      }\n    })();\n    var DEF_AMOUNT = Math.min(Math.max(20000, MIN_AMOUNT), MAX_AMOUNT);\n    function closestIdx(arr, val) {\n      var best = 0, bd = Infinity;\n      for (var i = 0; i < arr.length; i++) { var d = Math.abs(arr[i] - val); if (d < bd) { bd = d; best = i; } }\n      return best;\n    }\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;\n      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    \/\/ v1.14.0 (aus Kreditformular 52 v1.8.0): Laufzeit je Betrag \u2014 ab CHF 80'000\n    \/\/ hoechstens 84 Monate (BFCalc.getMaxDurationFor). Die zuletzt gewaehlte\n    \/\/ Laufzeit wird gemerkt und kommt zurueck, 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    \/\/ 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    \/\/ 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      var 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      [\"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    \/\/ ---- Telefon ----\n    var telCountry = $(\"ccTelCountry\"), telNum = $(\"ccTelNum\");\n    function telPh() { var o = telCountry.options[telCountry.selectedIndex]; telNum.placeholder = o ? (o.getAttribute(\"data-ph\") || \"\") : \"\"; }\n    telCountry.addEventListener(\"change\", function () { telPh(); telFormat(); }); telPh();\n    \/\/ v1.6.0: Live-Formatierung fuer ALLE Laender (nicht nur CH). Gruppierung je\n    \/\/ Land; bei trunk0-Laendern (CH\/DE\/FR) wird die fuehrende 0 ergaenzt.\n    var TEL_FMT = {\n      \"41\": { trunk0: true,  max: 9,  groups: [2,3,2,2] },\n      \"49\": { trunk0: true,  max: 11, groups: [3] },\n      \"33\": { trunk0: true,  max: 9,  groups: [1,2,2,2,2] },\n      \"39\": { trunk0: false, max: 11, groups: [3,3,4] },\n      \"423\":{ trunk0: false, max: 7,  groups: [3,2,2] }\n    };\n    function telFmt(dial, raw) {\n      var cfg = TEL_FMT[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    \/\/ v1.4.0: Cursor-Position beim Formatieren erhalten (Anzahl Ziffern rechts\n    \/\/ vom Cursor merken und danach wieder setzen; robust gegen die vorangestellte 0).\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; }\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 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{3,4}).*\/, \"$1 $2 $3\");\n      if (dial === \"49\" && d.length >= 6) return d.replace(\/(\\d{3})(\\d+)\/, \"$1 $2\");\n      return d;\n    }\n    function composePhone() {\n      var dial = telCountry.value;\n      var digits = telNum.value.replace(\/\\D\/g, \"\").replace(\/^0+\/, \"\");\n      return digits ? \"+\" + dial + \" \" + digits : \"\";\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      });\n    });\n    \/\/ ---- Geburtsdatum-Maske (v1.3.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    \/\/ v1.7.0: Formatierung als Funktion + Cursor-Erhalt. Wenn sich nichts \u00e4ndert,\n    \/\/ wird das Feld NICHT neu gesetzt (sonst springt der Cursor auf manchen Browsern\/\n    \/\/ Handys an den Anfang und das Jahr l\u00e4sst sich nicht mehr tippen).\n    function fmtDate(raw) {\n      raw = String(raw == null ? \"\" : raw);\n      \/\/ Normalisieren, dann Ziffern in Tag(2)\/Monat(2)\/Jahr(4) einf\u00fcllen. \u00dcberlauf\n      \/\/ flie\u00dft in die n\u00e4chste 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; }\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    geb.addEventListener(\"blur\", function () { geb.value = padDate(geb.value); });\n    $(\"ccPLZ\").addEventListener(\"input\", function () { this.value = this.value.replace(\/\\D\/g, \"\"); });\n    \/\/ ---- PLZ \u2192 Ort\/Kanton Autofill ----\n    var plzGemeinden = [];\n    function applyKantonFromOrt() {\n      var ort = $(\"ccOrt\").value.trim().toLowerCase();\n      var hit = plzGemeinden.filter(function (g) { return (g.ort || \"\").toLowerCase() === ort; })[0];\n      if (hit && hit.kanton) { $(\"ccKanton\").value = hit.kanton; }\n    }\n    function loadGemeinden(plz) {\n      if (!\/^\\d{4}$\/.test(plz)) return;\n      fetch(CONFIG.GEMEINDEN + \"?plz=\" + encodeURIComponent(plz), { headers: { \"Accept\": \"application\/json\" } })\n        .then(function (r) { return r.ok ? r.json() : []; })\n        .then(function (list) {\n          plzGemeinden = Array.isArray(list) ? list : [];\n          var dl = $(\"ccOrtList\"); dl.innerHTML = \"\";\n          var kantons = {};\n          plzGemeinden.forEach(function (g) {\n            var o = document.createElement(\"option\"); o.value = g.ort; dl.appendChild(o);\n            if (g.kanton) kantons[g.kanton] = 1;\n          });\n          if (plzGemeinden.length === 1) {\n            if (!$(\"ccOrt\").value.trim()) $(\"ccOrt\").value = plzGemeinden[0].ort;\n            $(\"ccKanton\").value = plzGemeinden[0].kanton || \"\";\n            clearError($(\"ccOrt\").closest(\".cc-field\"));\n          }\n          var ks = Object.keys(kantons);\n          if (ks.length === 1) { $(\"ccKanton\").value = ks[0]; }\n          else { applyKantonFromOrt(); }\n        })\n        .catch(function () {});\n    }\n    $(\"ccPLZ\").addEventListener(\"blur\", function () { loadGemeinden(this.value); });\n    $(\"ccPLZ\").addEventListener(\"input\", function () { if (\/^\\d{4}$\/.test(this.value)) loadGemeinden(this.value); });\n    $(\"ccOrt\").addEventListener(\"input\", applyKantonFromOrt);\n    $(\"ccOrt\").addEventListener(\"change\", applyKantonFromOrt);\n    \/\/ ---- Vorbef\u00fcllung aus URL ----\n    (function () {\n      var p = new URLSearchParams(window.location.search);\n      function val(name) { var v = p.get(name); return v === null ? \"\" : v.trim(); }\n      function setSlider(name, sl) {\n        var raw = p.get(name); if (raw === null) return;\n        var v = parseInt(String(raw).replace(\/\\D\/g, \"\"), 10); if (isNaN(v)) return;\n        sl.r.value = closestIdx(sl.arr, v); sl.r.dispatchEvent(new Event(\"input\"));\n      }\n      setSlider(\"Kreditbetrag\", betragSl);\n      setSlider(\"Laufzeit\",     laufzeitSl);\n      [ [\"vorname\",\"ccVorname\"], [\"nachname\",\"ccNachname\"], [\"Geburtsdatum\",\"ccGeb\"],\n        [\"strasse\",\"ccStrasse\"], [\"Strasse\",\"ccStrasse\"],\n        [\"PLZ\",\"ccPLZ\"], [\"Ort\",\"ccOrt\"], [\"email\",\"ccEmail\"], [\"question\",\"ccMsg\"]\n      ].forEach(function (m) {\n        var v = val(m[0]); if (!v) return;\n        var el = $(m[1]); if (el && !el.value) { el.value = v; el.dispatchEvent(new Event(\"input\")); }\n      });\n      if (val(\"PLZ\")) loadGemeinden(val(\"PLZ\"));\n      var anrede = val(\"Anrede\");\n      if (anrede) {\n        var wanted = \/^f\/i.test(anrede) ? \"Frau\" : \"Herr\";\n        var b = seg.querySelector('button[data-val=\"' + wanted + '\"]'); if (b) b.click();\n      }\n      var tel = val(\"phonenumber\") || val(\"mob\");\n      if (tel) {\n        var raw = tel.replace(\/\\s+\/g, \"\"), dial = \"41\";\n        if (raw.charAt(0) === \"+\") {\n          [\"41\", \"49\", \"33\", \"39\"].some(function (cc) {\n            if (raw.indexOf(\"+\" + cc) === 0) { dial = cc; raw = raw.slice(1 + cc.length); return true; }\n            return false;\n          });\n        } else { raw = raw.replace(\/^00\/, \"\"); }\n        var nat = raw.replace(\/\\D\/g, \"\").replace(\/^0+\/, \"\");\n        if ([\"41\", \"49\", \"33\", \"39\"].indexOf(dial) >= 0) { telCountry.value = dial; telCountry.dispatchEvent(new Event(\"change\")); }\n        if (nat) { telNum.value = nat; telNum.dispatchEvent(new Event(\"input\")); }\n      }\n    })();\n    \/\/ ---- Validierung ----\n    function setError(field) { if (field) field.classList.add(\"cc-invalid\"); }\n    function clearError(field) { if (field) field.classList.remove(\"cc-invalid\"); }\n    function isEmail(v) { return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(v); }\n    function telDigits() { return telNum.value.replace(\/\\D\/g, \"\").replace(\/^0+\/, \"\"); }\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    function ageOK(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 >= CONFIG.MIN_AGE;\n    }\n    function validate() {\n      var ok = true;\n      form.querySelectorAll(\".cc-invalid\").forEach(function (f) { clearError(f); });\n      function req(id) { var el = $(id), field = el.closest(\".cc-field\"); if (!el.value.trim()) { setError(field); ok = false; return false; } return true; }\n      req(\"ccAnrede\"); req(\"ccVorname\"); req(\"ccNachname\"); req(\"ccStrasse\"); req(\"ccOrt\");\n      var plz = $(\"ccPLZ\"); if (!\/^\\d{4,5}$\/.test(plz.value)) { setError(plz.closest(\".cc-field\")); ok = false; }\n      geb.value = padDate(geb.value); \/\/ v1.3.0: 1.5.1967 -> 01.05.1967 vor der Pr\u00fcfung\n      var d = isSwissDate(geb.value); if (!d || !ageOK(d)) { setError(geb.closest(\".cc-field\")); ok = false; }\n      if (telDigits().length < 6) { setError(telNum.closest(\".cc-field\")); ok = false; }\n      var mail = $(\"ccEmail\"); if (!isEmail(mail.value.trim())) { setError(mail.closest(\".cc-field\")); ok = false; }\n      if (!$(\"ccRecht\").checked) { setError($(\"ccConsentField\")); ok = false; }\n      if (!ok) { var first = form.querySelector(\".cc-invalid\"); if (first) first.scrollIntoView({ behavior: \"smooth\", block: \"center\" }); }\n      return ok;\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\")); });\n    \/\/ ---- Payload bauen ----\n    function buildPayload(stage) {\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             = \"ja\";   \/\/ v1.12.0: Bestandskunden, Einwilligung liegt vor\n      payload.phonenumber         = composePhone();\n      payload.lead_uid            = LEAD_UID;\n      payload.cc_stage            = stage;\n      return payload;\n    }\n    \/\/ ---- Finaler Submit ----\n    var submitting = false;\n    form.addEventListener(\"submit\", function (e) {\n      e.preventDefault();\n      if (submitting) return;\n      var msgBox = $(\"ccFormMsg\"); msgBox.classList.remove(\"show\");\n      if (!validate()) return;\n      var btn = $(\"ccSubmit\");\n      submitting = true; btn.disabled = true; btn.classList.add(\"is-loading\");\n      ccSendingLabel(btn.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) { window.location.href = (CONFIG.THANKYOU_URLS && CONFIG.THANKYOU_URLS[CC_LANG]) || CONFIG.THANKYOU_URL; }\n        else { throw new Error((data && data.message) || ccT(\"submitFailed\")); }\n      })\n      .catch(function (err) {\n        submitting = false; btn.disabled = false; btn.classList.remove(\"is-loading\");\n        ccResetLabel(btn.querySelector(\".cc-submit-label\"));\n        msgBox.textContent = ccT(\"error\") + \" (\" + err.message + \")\";\n        msgBox.classList.add(\"show\");\n        msgBox.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n      });\n    });\n    \/\/ ---- Rechtliche Links als Popup ----\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) {\n        if (CC_LANG !== \"fr\" && CC_LANG !== \"it\") return url;\n        \/\/ v1.11.1: schon sprachspezifisch (z. B. aus LEGAL_URLS) -> unveraendert\n        if (new RegExp(\"^https?:\/\/[^\/]+\/\" + CC_LANG + \"(\/|$)\").test(url)) return url;\n        return url.replace(\/^(https?:\\\/\\\/[^\\\/]+)\\\/\/, \"$1\/\" + CC_LANG + \"\/\");\n      }\n      \/\/ v1.2.0: rechtliche Links aus der Konfiguration (window.BF_KREDIT_CFG) je Sprache setzen\n      \/\/ (wie beim Kreditantrag). Link 0 = Rechtliche Hinweise, Link 1 = elektr. Kommunikationsmittel.\n      (function () {\n        var links = document.querySelectorAll(\".cc-legal-link\");\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 (links[0] && _legal)   { links[0].setAttribute(\"href\", _legal); }\n        if (links[1] && _privacy) { links[1].setAttribute(\"href\", _privacy); }\n      })();\n      document.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  <\/script>\n<\/div><script>(function(){var ID=\"bfLp978c8612\";function gitter(w){var f=w.querySelector(\".cc-root form\");if(!f||f.querySelector(\".cc-main-grid\"))return;var c=f.querySelectorAll(\":scope > .cc-card\");if(c.length<2)return;var g=document.createElement(\"div\");g.className=\"cc-main-grid\";c[0].parentNode.insertBefore(g,c[0]);g.appendChild(c[0]);g.appendChild(c[1]);}function mal(r){var mi=parseFloat(r.min),ma=parseFloat(r.max),v=parseFloat(r.value);if(!isFinite(mi))mi=0;if(!isFinite(ma))ma=100;if(!isFinite(v))v=mi;var q=ma>mi?((v-mi)\/(ma-mi))*100:0;r.style.setProperty(\"--cc-range-progress\",q+\"%\");}function regler(w){w.querySelectorAll(\"input[type=range]\").forEach(function(r){mal(r);if(r.dataset.bfLp)return;r.dataset.bfLp=\"1\";r.addEventListener(\"input\",function(){mal(r);});r.addEventListener(\"change\",function(){mal(r);});});}function popup(w){var m=w.querySelector(\".cc-modal\");if(!m||m.dataset.bfLp)return;m.dataset.bfLp=\"1\";m.classList.add(\"bf-lp-modal\");document.body.appendChild(m);if(window.MutationObserver){new MutationObserver(function(){document.body.classList.toggle(\"bf-lp-modal-offen\",m.classList.contains(\"open\"));}).observe(m,{attributes:true,attributeFilter:[\"class\"]});}}function zeilen(w){var t=w.querySelector(\".cc-root #ccTelCountry\");if(t){var r=t.closest(\".cc-row\");if(r)r.classList.add(\"cc-phone-row\");}var p=w.querySelector(\".cc-root #ccPLZ\");if(p){var r2=p.closest(\".cc-row\");if(r2)r2.classList.add(\"cc-plz-row\");}}function go(){var w=document.getElementById(ID);if(!w)return;gitter(w);regler(w);popup(w);zeilen(w);}if(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",go);}else{go();}setTimeout(go,400);setTimeout(go,1500);})();<\/script><\/div><\/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-48c8d90 e-flex e-con-boxed e-con e-parent\" data-id=\"48c8d90\" 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-aa4bd2f elementor-widget elementor-widget-spacer\" data-id=\"aa4bd2f\" 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-b3ee67b elementor-widget elementor-widget-image\" data-id=\"b3ee67b\" 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\" src=\"https:\/\/www.bestfinance.ch\/wp-content\/uploads\/elementor\/thumbs\/team-bestfinance-ok-1-rtl8s0xymw2jdss2t4bx368v0mjzhj2dspxclkavg6.png\" title=\"team bestfinance ok\" alt=\"team bestfinance ok\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\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":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","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":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","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-205073","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/pages\/205073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/comments?post=205073"}],"version-history":[{"count":28,"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/pages\/205073\/revisions"}],"predecessor-version":[{"id":206190,"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/pages\/205073\/revisions\/206190"}],"wp:attachment":[{"href":"https:\/\/www.bestfinance.ch\/fr\/wp-json\/wp\/v2\/media?parent=205073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}