{"id":10,"date":"2026-03-27T14:39:02","date_gmt":"2026-03-27T14:39:02","guid":{"rendered":"https:\/\/spiritual-activity.org\/?page_id=10"},"modified":"2026-07-21T12:49:14","modified_gmt":"2026-07-21T12:49:14","slug":"anmeldung-basic-exercises","status":"publish","type":"page","link":"https:\/\/spiritual-activity.org\/it\/anmeldung-basic-exercises\/","title":{"rendered":"Anmeldung Basic Exercises"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"10\" class=\"elementor elementor-10\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a3fafe4 e-flex e-con-boxed e-con e-parent\" data-id=\"a3fafe4\" 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-1a38bc9 elementor-widget elementor-widget-shortcode\" data-id=\"1a38bc9\" 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\">\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"536\" class=\"elementor elementor-536\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cbf2c00 e-flex e-con-boxed e-con e-parent\" data-id=\"cbf2c00\" 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-97ba22c elementor-widget elementor-widget-html\" data-id=\"97ba22c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* ============================================================\n   ISA \u2013 HEADER WIDGET\n   ============================================================ *\/\n\n#be-nav {\n  position: fixed;\n  top: 0; left: 0; right: 0;\n  z-index: 9999;\n  padding: 12px 2.5rem;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  background: rgba(255,255,255,0.95);\n  backdrop-filter: blur(12px);\n  -webkit-backdrop-filter: blur(12px);\n  border-bottom: 1px solid rgba(33,117,155,0.15);\n  font-family: 'DM Sans', system-ui, sans-serif;\n  box-sizing: border-box;\n}\n\n#be-nav * { box-sizing: border-box; }\n\n\/* Logo *\/\n#be-nav-logo {\n  display: flex;\n  align-items: center;\n  flex-shrink: 0;\n}\n\n#be-nav-logo img {\n  height: 38px;\n  width: auto;\n  display: block;\n}\n\n\/* Rechte Seite: Nav *\/\n#be-nav-right {\n  display: flex;\n  align-items: center;\n  gap: 1.5rem;\n}\n\n\/* Link-Liste *\/\n#be-nav ul {\n  display: flex;\n  gap: 2rem;\n  list-style: none;\n  align-items: center;\n  margin: 0; padding: 0;\n}\n\n#be-nav ul li a {\n  font-size: 15px;\n  font-weight: 400;\n  letter-spacing: 0.10em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: #1a4a5e;\n  transition: color 0.2s;\n}\n\n#be-nav ul li a:hover { color: #21759b; }\n\n\/* CTA-Button *\/\n#be-nav ul li a.be-cta {\n  background: #21759b;\n  color: #ffffff !important;\n  padding: 0.65rem 1.5rem;\n  border-radius: 3px;\n  font-size: 15px;\n  letter-spacing: 0.09em;\n  transition: background 0.2s;\n}\n\n#be-nav ul li a.be-cta:hover {\n  background: #1a5d7a;\n  color: #ffffff !important;\n}\n\n\/* Sprachumschalter *\/\n#be-nav .be-lang {\n  display: flex;\n  align-items: center;\n  font-size: 14px;\n}\n\n\/* Hamburger *\/\n#be-hamburger {\n  display: none;\n  flex-direction: column;\n  gap: 5px;\n  cursor: pointer;\n  padding: 4px;\n  background: none;\n  border: none;\n  position: relative;\n  z-index: 99999;\n}\n\n#be-hamburger span {\n  display: block;\n  width: 22px;\n  height: 1.5px;\n  background: #21759b;\n  transition: transform 0.25s, opacity 0.2s;\n}\n\n\/* Mobile Menu *\/\n#be-mobile-menu {\n  display: none;\n  position: fixed;\n  top: 0; left: 0; right: 0; bottom: 0;\n  z-index: 9998;\n  background: rgba(255,255,255,0.98);\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 2rem;\n  font-family: 'DM Sans', system-ui, sans-serif;\n}\n\n#be-mobile-menu.be-open { display: flex; }\n\n#be-mobile-menu a {\n  font-size: 1.1rem;\n  font-weight: 400;\n  letter-spacing: 0.12em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: #1a4a5e;\n}\n\n#be-mobile-menu a.be-cta-mobile {\n  background: #21759b;\n  color: #ffffff !important;\n  padding: 0.8rem 2.2rem;\n  border-radius: 3px;\n  margin-top: 0.5rem;\n}\n\n\/* Sprachumschalter im Mobile-Men\u00fc *\/\n#be-mobile-menu .be-lang-mobile {\n  margin-top: 0.5rem;\n}\n\n\/* Hamburger bleibt sichtbar wenn Men\u00fc offen \u2013 fungiert als X *\/\n#be-nav.be-menu-open {\n  z-index: 99999;\n  background: transparent;\n  border-bottom: none;\n  backdrop-filter: none;\n  -webkit-backdrop-filter: none;\n}\n\n#be-nav.be-menu-open #be-hamburger {\n  position: fixed;\n  top: 1rem;\n  right: 1.5rem;\n}\n#be-nav.be-menu-open #be-hamburger span:nth-child(1) {\n  transform: translateY(6.5px) rotate(45deg);\n}\n#be-nav.be-menu-open #be-hamburger span:nth-child(2) {\n  opacity: 0;\n}\n#be-nav.be-menu-open #be-hamburger span:nth-child(3) {\n  transform: translateY(-6.5px) rotate(-45deg);\n}\n\n\/* Responsive *\/\n@media (max-width: 768px) {\n  #be-nav { padding: 1rem 1.5rem; }\n  #be-nav ul { display: none; }\n  #be-nav .be-lang { display: none; }\n  #be-hamburger { display: flex; }\n  #be-mobile-menu > a { font-size: 2.2rem !important; }\n  #be-mobile-menu a.be-cta-mobile { font-size: 2.2rem !important; padding: 1rem 3rem; }\n}\n\n@media (min-width: 769px) {\n  #be-nav { padding: 20px 2.5rem; }\n  #be-nav-logo img { height: 42px; }\n}\n<\/style>\n\n<nav id=\"be-nav\">\n\n  <!-- Logo links -->\n  <a id=\"be-nav-logo\" href=\"https:\/\/spiritual-activity.org\" aria-label=\"ISA \u2013 Startseite\">\n    <img decoding=\"async\" src=\"https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/ISA_Logo-scaled.png\"\n         alt=\"ISA Logo\"\n         loading=\"eager\">\n  <\/a>\n\n  <!-- Rechte Seite: Links + Hamburger -->\n  <div id=\"be-nav-right\">\n    <ul>\n      <li><a href=\"https:\/\/spiritual-activity.org\/\">Start<\/a><\/li>\n      <!-- Entwicklung: noch nicht anzeigen -->\n      <!-- <li><a href=\"https:\/\/spiritual-activity.org\/entwicklung\/\">Entwicklung<\/a><\/li> -->\n      <li><a href=\"https:\/\/spiritual-activity.org\/verein\/\">Leben im Denken e.V.<\/a><\/li>\n      <li><a href=\"https:\/\/spiritual-activity.org\/ueber-uns\/\">\u00dcber uns<\/a><\/li>\n      <li><a href=\"https:\/\/spiritual-activity.org\/kontakt\/\">Kontakt<\/a><\/li>\n      <!-- Shop: noch nicht anzeigen -->\n      <!-- <li><a href=\"https:\/\/spiritual-activity.org\/store\/\">Shop<\/a><\/li> -->\n      <li class=\"be-lang\"><\/li>\n    <\/ul>\n\n    <button id=\"be-hamburger\" aria-label=\"Men\u00fc \u00f6ffnen\">\n      <span><\/span><span><\/span><span><\/span>\n    <\/button>\n  <\/div>\n\n<\/nav>\n\n<!-- Mobile Vollbild-Men\u00fc -->\n<div id=\"be-mobile-menu\">\n  <a href=\"https:\/\/spiritual-activity.org\/\">Start<\/a>\n  <!-- Entwicklung: noch nicht anzeigen -->\n  <!-- <a href=\"https:\/\/spiritual-activity.org\/entwicklung\/\" onclick=\"beCloseMenu()\">Entwicklung<\/a> -->\n  <a href=\"https:\/\/spiritual-activity.org\/verein\/\" onclick=\"beCloseMenu()\">Leben im Denken e.V.<\/a>\n  <a href=\"https:\/\/spiritual-activity.org\/ueber-uns\/\" onclick=\"beCloseMenu()\">\u00dcber uns<\/a>\n  <a href=\"https:\/\/spiritual-activity.org\/kontakt\/\" onclick=\"beCloseMenu()\">Kontakt<\/a>\n  <!-- Shop: noch nicht anzeigen -->\n  <!-- <a href=\"https:\/\/spiritual-activity.org\/store\/\" onclick=\"beCloseMenu()\">Shop<\/a> -->\n  <div class=\"be-lang-mobile\"><\/div>\n<\/div>\n\n\n<script>\nfunction beOpenMenu() {\n  document.getElementById('be-mobile-menu').classList.add('be-open');\n  document.getElementById('be-nav').classList.add('be-menu-open');\n  document.body.style.overflow = 'hidden';\n}\n\nfunction beCloseMenu() {\n  document.getElementById('be-mobile-menu').classList.remove('be-open');\n  document.getElementById('be-nav').classList.remove('be-menu-open');\n  document.body.style.overflow = '';\n}\n\n\/* ============================================================\n   NEU: Automatische Sprach-Weiterleitung f\u00fcr Nav-Links\n   ============================================================ *\/\nfunction beLocalizeNavLinks() {\n  \/\/ Sprachcodes, die TranslatePress als Subdirectory-Prefix nutzt\n  \/\/ (Deutsch = Default, daher kein Prefix)\n  var LANGS = ['en', 'es', 'it', 'ru'];\n\n  var pathMatch = window.location.pathname.match(\/^\\\/([a-z]{2})(\\\/|$)\/);\n  var currentLang = (pathMatch && LANGS.indexOf(pathMatch[1]) !== -1) ? pathMatch[1] : null;\n\n  \/\/ Wenn wir auf Deutsch (Default) sind, nichts tun \u2013 Links sind bereits korrekt\n  if (!currentLang) return;\n\n  var navLinks = document.querySelectorAll(\n    '#be-nav a[href^=\"https:\/\/spiritual-activity.org\"], #be-mobile-menu a[href^=\"https:\/\/spiritual-activity.org\"]'\n  );\n\n  navLinks.forEach(function (link) {\n    try {\n      var url = new URL(link.getAttribute('href'));\n      var alreadyPrefixed = new RegExp('^\/(' + LANGS.join('|') + ')(\/|$)').test(url.pathname);\n      if (!alreadyPrefixed) {\n        \/\/ z.B. \"\/verein\/\" -> \"\/en\/verein\/\"\n        url.pathname = '\/' + currentLang + url.pathname;\n        link.setAttribute('href', url.toString());\n      }\n    } catch (e) {\n      \/\/ ung\u00fcltige URL \u00fcberspringen\n    }\n  });\n}\n\ndocument.addEventListener('DOMContentLoaded', function() {\n  var burger = document.getElementById('be-hamburger');\n  var menu   = document.getElementById('be-mobile-menu');\n\n  if (burger) burger.addEventListener('click', function() {\n    if (menu.classList.contains('be-open')) {\n      beCloseMenu();\n    } else {\n      beOpenMenu();\n    }\n  });\n\n  if (menu) menu.addEventListener('click', function(e) {\n    if (e.target === menu) beCloseMenu();\n  });\n\n  beLocalizeNavLinks();\n});\n<\/script>\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<\/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-00a4775 e-flex e-con-boxed e-con e-parent\" data-id=\"00a4775\" 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<div class=\"elementor-element elementor-element-8990b7b e-con-full e-flex e-con e-child\" data-id=\"8990b7b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b77d79f elementor-widget elementor-widget-html\" data-id=\"b77d79f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"font-size:14px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:#27703F; display:flex; align-items:center; gap:0.8rem;\">\n  <div style=\"width:24px; height:1px; background:#27703F; flex-shrink:0;\"><\/div>\n  Preise & Anmeldung\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdd5931 elementor-widget elementor-widget-html\" data-id=\"cdd5931\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(32px,4vw,52px); font-weight:300; line-height:1.15; color:#0C1E14;\">\n  Wir freuen uns \u00fcber Deine <em style=\"font-style:italic; color:#27703F;\">Anmeldung<\/em>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bd5448 elementor-widget elementor-widget-text-editor\" data-id=\"1bd5448\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span>Geh mit uns und vielen Menschen weltweit den Weg durch die sechs Seelen\u00fcbungen.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d5a3b43 elementor-widget elementor-widget-html\" data-id=\"d5a3b43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"display:flex; gap:2.5rem; flex-wrap:wrap;\">\n  <div>\n    <div style=\"font-size:13px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:#27703F; margin-bottom:4px;\">Start<\/div>\n    <div style=\"font-family:'Cormorant Garamond', Georgia, serif; font-size:18px; font-weight:400; color:#0C1E14;\">27. September 2026<\/div>\n  <\/div>\n  <div>\n    <div style=\"font-size:13px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:#27703F; margin-bottom:4px;\">Ende<\/div>\n    <div style=\"font-family:'Cormorant Garamond', Georgia, serif; font-size:18px; font-weight:400; color:#0C1E14;\">18. April 2027<\/div>\n  <\/div>\n  <div>\n    <div style=\"font-size:13px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:#27703F; margin-bottom:4px;\">Dauer<\/div>\n    <div style=\"font-family:'Cormorant Garamond', Georgia, serif; font-size:18px; font-weight:400; color:#0C1E14;\">29 Wochen<\/div>\n  <\/div>\n  <div>\n    <div style=\"font-size:13px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:#27703F; margin-bottom:4px;\">Format<\/div>\n    <div style=\"font-family:'Cormorant Garamond', Georgia, serif; font-size:18px; font-weight:400; color:#0C1E14;\">Meditativer Schulungsweg<\/div>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ca8198 e-con-full e-flex e-con e-child\" data-id=\"7ca8198\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15dbd51 elementor-widget elementor-widget-spacer\" data-id=\"15dbd51\" 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>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9f9cdf0 e-flex e-con-boxed e-con e-parent\" data-id=\"9f9cdf0\" 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<div class=\"elementor-element elementor-element-34150e9 e-flex e-con-boxed e-con e-child\" data-id=\"34150e9\" 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-2dfbe22 elementor-widget elementor-widget-html\" data-id=\"2dfbe22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n.pk-wrap {\n  font-family: 'DM Sans', system-ui, sans-serif;\n  color: #0C1E14;\n  max-width: 1100px;\n  margin: 0 auto;\n}\n.pk-label {\n  font-size: 13px;\n  font-weight: 500;\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  color: #27703F;\n  display: flex;\n  align-items: center;\n  gap: 0.8rem;\n  margin-bottom: 1rem;\n}\n.pk-label::before {\n  content: '';\n  display: block;\n  width: 24px;\n  height: 1px;\n  background: #27703F;\n  flex-shrink: 0;\n}\n.pk-title {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(32px, 4vw, 52px);\n  font-weight: 300;\n  line-height: 1.15;\n  color: #0C1E14;\n  margin: 0 0 2rem;\n}\n.pk-title em {\n  font-style: italic;\n  color: #27703F;\n}\n.pk-intro {\n  font-size: 16px;\n  font-weight: 300;\n  color: #0C1E14;\n  line-height: 1.8;\n  max-width: 680px;\n}\n<\/style>\n<div class=\"pk-wrap\">\n  <div class=\"pk-label\">Teilnahmebeitrag<\/div>\n  <div class=\"pk-title\">Preis<em>transparenz<\/em><\/div>\n  <div class=\"pk-intro\">\n    Der Kurs wird getragen von dem Institute for Spiritual Activity sowie unserem Verein: Leben im Denken e.V. und unterst\u00fctzt von einem gro\u00dfen ehrenamtlichen Team. <br><br>\nUm den Kurs allen Menschen zu erm\u00f6glichen und gleichzeitig dieses und weitere Projekte gestalten zu k\u00f6nnen, haben wir ein solidarisches Preismodell entwickelt. Je nachdem, in welchem Land Du lebst und wie Deine wirtschaftliche Situation ist, kannst Du Deinen Teilnahmebeitrag f\u00fcr den Kurs innerhalb einer gewissen Bandbreite w\u00e4hlen. Hierf\u00fcr arbeiten wir mit einem transparenten Preismodell, das vier Kategorien umfasst \u2013 orientiert an Lebenshaltungskosten und Einkommensverh\u00e4ltnissen in verschiedenen Teilen der Welt. Mit einem h\u00f6heren Beitrag unterst\u00fctzt Du nicht nur unsere Initiative, sondern erm\u00f6glichst uns auch, das Projekt solidarisch in die Welt zu tragen.<br><br>\nIn Deinem Beitrag sind alle Angebote enthalten, inklusive Kartenset, Konferenzen, Briefe, Organisation und Versand innerhalb der EU. F\u00fcr L\u00e4nder au\u00dferhalb der EU m\u00fcssen wir leider eine Versandkostenpauschale von 15\u20ac aufschlagen. Schreib uns gerne an, wenn der Preis zu hoch f\u00fcr Dich ist, dann finden wir eine individuelle L\u00f6sung. \n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52882e6 elementor-hidden-desktop elementor-widget elementor-widget-image\" data-id=\"52882e6\" 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 fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-1024x683.jpeg\" class=\"attachment-large size-large wp-image-361\" alt=\"\" srcset=\"https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-1024x683.jpeg 1024w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-300x200.jpeg 300w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-768x512.jpeg 768w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-1536x1024.jpeg 1536w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-18x12.jpeg 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\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<div class=\"elementor-element elementor-element-160969c elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-child\" data-id=\"160969c\" 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-0c8d7b8 elementor-widget elementor-widget-image\" data-id=\"0c8d7b8\" 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 fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-1024x683.jpeg\" class=\"attachment-large size-large wp-image-361\" alt=\"\" srcset=\"https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-1024x683.jpeg 1024w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-300x200.jpeg 300w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-768x512.jpeg 768w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-1536x1024.jpeg 1536w, https:\/\/spiritual-activity.org\/wp-content\/uploads\/2026\/06\/Kartenset_BE-18x12.jpeg 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0059a77 e-con-full e-flex e-con e-parent\" data-id=\"0059a77\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" data-no-translation=\"\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80f3ab5 elementor-widget elementor-widget-html\" data-id=\"80f3ab5\" data-element_type=\"widget\" data-e-type=\"widget\" data-no-translation=\"\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  .ecwid-ProductBrowser,\n  .ecwid-productbrowser,\n  div[id^=\"my-store\"],\n  .ecwid:not(#sw-host-it) {\n    visibility: hidden !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    position: absolute !important;\n    pointer-events: none !important;\n  }\n<\/style>\n\n<div id=\"sw-overlay-it\" style=\"display:none; position:fixed; inset:0; background:rgba(245,250,246,0.92); z-index:99999; flex-direction:column; align-items:center; justify-content:center; gap:20px;\">\n  <div style=\"width:52px; height:52px; border:4px solid #B8DEC4; border-top-color:#0C1E14; border-radius:50%; animation:sw-spin-it 0.8s linear infinite;\"><\/div>\n  <div style=\"font-family:'Tinos',Georgia,serif; font-size:22px; color:#27703F;\">Caricamento checkout\u2026<\/div>\n<\/div>\n<style>\n  @keyframes sw-spin-it { to { transform: rotate(360deg); } }\n<\/style>\n\n<div id=\"sw-host-it\"><\/div>\n\n<script>\n(function () {\n\n  const OVERLAY_ID    = \"sw-overlay-it\";\n  const SHOP_CART_URL = \"https:\/\/spiritual-activity.org\/it\/store\/cart\";\n  const N8N_WEBHOOK_URL = \"https:\/\/n8n.spiritual-activity.org\/webhook\/registration-be\";\n\n  function getGroupRedirectUrl() {\n    const path = window.location.pathname;\n    \/\/ Erkennt Sprachpraefixe wie \/en\/, \/es\/, \/it\/, \/ru\/ am Anfang des Pfads.\n    \/\/ Deutsch ist die Standardsprache ohne Praefix.\n    const match = path.match(\/^\\\/([a-z]{2})(\\\/|$)\/);\n    const langPrefix = (match && match[1] !== \"de\") ? \"\/\" + match[1] : \"\";\n    return \"https:\/\/basic-exercises.com\" + langPrefix + \"\/gruppen\/\";\n  }\n\n  const PRODUCTS = {\n    cat1: 842750049,\n    cat2: 844860366,\n    cat3: 844907264,\n    cat4: 844907265\n  };\n\n  const RANGES = {\n    cat1: { min: 180, max: 800 },\n    cat2: { min: 120, max: 700 },\n    cat3: { min:  80, max: 600 },\n    cat4: { min:  50, max: 500 }\n  };\n\n  const ORIENTIERUNG = {\n    cat1: { reduced: 180, base: 360, support: 580 },\n    cat2: { reduced: 120, base: 240, support: 460 },\n    cat3: { reduced:  80, base: 160, support: 340 },\n    cat4: { reduced:  50, base: 105, support: 220 }\n  };\n\n  const DISCOUNT_WIEDERHOLER = 0.30;\n  const DISCOUNT_SCHUELER    = 0.50;\n  const DISCOUNT_STUDENT     = 0.25;\n  const DISCOUNT_PAAR_P2     = 0.50;\n  const DISCOUNT_APP_FIXED   = 35;\n\n  const APP_ONLY_LANGS = new Set([\"Portugiesisch\",\"Arabisch\",\"Hebr\u00e4isch\",\"Farsi\",\"Georgisch\"]);\n\n  const EU_PLUS_CH = new Set([\n    \"AT\",\"BE\",\"BG\",\"CY\",\"CZ\",\"DE\",\"DK\",\"EE\",\"ES\",\"FI\",\"FR\",\"GR\",\"HR\",\n    \"HU\",\"IE\",\"IT\",\"LT\",\"LU\",\"LV\",\"MT\",\"NL\",\"PL\",\"PT\",\"RO\",\"SE\",\"SI\",\"SK\",\"CH\"\n  ]);\n  function needsShipping(countryCode) {\n    return countryCode && !EU_PLUS_CH.has(countryCode);\n  }\n\n  const COUNTRY_NAME_OVERRIDES = {\n    \"HK\":\"Hong Kong\",\"MO\":\"Macao\",\"TW\":\"Taiwan\",\"AE\":\"Emirati Arabi Uniti\",\n    \"US\":\"USA\",\"GB\":\"Regno Unito\",\"GB-SCT\":\"Scozia\",\n    \"KR\":\"Corea del Sud\",\"SA\":\"Arabia Saudita\",\n    \"MD\":\"Moldavia\",\"PS\":\"Palestina\",\"CD\":\"Congo (Kinshasa)\",\"CG\":\"Congo (Brazzaville)\",\n    \"ST\":\"S\u00e3o Tom\u00e9 e Pr\u00edncipe\",\"CI\":\"Costa d'Avorio\",\"TL\":\"Timor Est\",\n    \"CV\":\"Capo Verde\",\"SZ\":\"Eswatini\",\"FM\":\"Micronesia\",\"MH\":\"Isole Marshall\",\n    \"VC\":\"Saint Vincent e Grenadine\",\"LC\":\"Santa Lucia\",\"KN\":\"Saint Kitts e Nevis\",\n    \"AG\":\"Antigua e Barbuda\",\"TT\":\"Trinidad e Tobago\",\"BA\":\"Bosnia ed Erzegovina\",\n    \"MK\":\"Macedonia del Nord\",\"GQ\":\"Guinea Equatoriale\",\"GW\":\"Guinea-Bissau\",\n    \"CF\":\"Repubblica Centrafricana\",\"SB\":\"Isole Salomone\",\"PG\":\"Papua Nuova Guinea\",\n    \"DO\":\"Repubblica Dominicana\",\"XK\":\"Kosovo\"\n  };\n\n  const COUNTRIES = {\n    cat1: [\"CY\",\"CA\",\"FR\",\"FI\",\"BH\",\"AU\",\"AD\",\"SE\",\"DE\",\"SA\",\"AT\",\"BE\",\"HK\",\"MT\",\"IS\",\"SM\",\"NL\",\"DK\",\"TW\",\"AE\",\"US\",\"BN\",\"CH\",\"NO\",\"GY\",\"QA\",\"MO\",\"IE\",\"LU\",\"SG\",\"LI\",\"GB\",\"GB-SCT\"],\n    cat2: [\"KR\",\"ME\",\"CL\",\"TT\",\"MV\",\"UY\",\"BS\",\"OM\",\"SC\",\"BG\",\"MY\",\"PA\",\"TR\",\"LV\",\"GR\",\"KZ\",\"SK\",\"HU\",\"RU\",\"RO\",\"EE\",\"AW\",\"PT\",\"PR\",\"HR\",\"KW\",\"JP\",\"NZ\",\"PL\",\"IL\",\"ES\",\"LT\",\"SI\",\"CZ\",\"IT\"],\n    cat3: [\"BZ\",\"TN\",\"GT\",\"IQ\",\"ZA\",\"FJ\",\"EC\",\"LY\",\"ID\",\"VN\",\"BT\",\"DZ\",\"PE\",\"PW\",\"BW\",\"DM\",\"PY\",\"MD\",\"GQ\",\"MN\",\"VC\",\"IR\",\"GD\",\"EG\",\"CO\",\"SR\",\"TM\",\"BA\",\"BB\",\"BR\",\"AL\",\"AM\",\"GA\",\"MX\",\"AZ\",\"TH\",\"LC\",\"CN\",\"MK\",\"DO\",\"AG\",\"AR\",\"GE\",\"CR\",\"MU\",\"RS\",\"BY\",\"KN\",\"XK\"],\n    cat4: [\"UA\",\"BI\",\"SS\",\"CF\",\"YE\",\"MZ\",\"MW\",\"SO\",\"CD\",\"LR\",\"MG\",\"NE\",\"AF\",\"SD\",\"SB\",\"ML\",\"HT\",\"VU\",\"BF\",\"LS\",\"TD\",\"GW\",\"TG\",\"GM\",\"KI\",\"SL\",\"PG\",\"UG\",\"KM\",\"PS\",\"RW\",\"TZ\",\"ET\",\"ZM\",\"FM\",\"BJ\",\"GN\",\"TL\",\"MM\",\"SN\",\"CM\",\"TJ\",\"TV\",\"NP\",\"CG\",\"ST\",\"PK\",\"KE\",\"ZW\",\"MH\",\"HN\",\"TO\",\"CI\",\"WS\",\"GH\",\"VE\",\"KH\",\"MR\",\"KG\",\"NI\",\"NG\",\"DJ\",\"AO\",\"LA\",\"BD\",\"BO\",\"MA\",\"JO\",\"LB\",\"NR\",\"IN\",\"NA\",\"CV\",\"UZ\",\"PH\",\"SZ\",\"JM\",\"SV\",\"LK\"]\n  };\n\n  const OPT_COMM_LANG = \"In welcher Sprache nimmst Du teil?\";\n  const OPT_STATUS    = \"Trifft etwas davon auf Dich zu?\";\n\n  const STATUS_LABEL = {\n    paar:        \"Zu zweit (gleicher Haushalt)\",\n    schueler:    \"Sch\u00fcler:innen\",\n    student:     \"Student\",\n    wiederholer: \"Wiederholer\",\n    apponly:     \"Digitale Teilnahme (App)\"\n  };\n\n  \/\/ \u2500\u2500 Shadow DOM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const host = document.getElementById(\"sw-host-it\");\n  const shadow = host.attachShadow({ mode: \"open\" });\n\n  const styleEl = document.createElement(\"style\");\n  styleEl.textContent = `\n    :host {\n      display: block;\n      --bg:           #F5FAF6;\n      --card:         #FFFFFF;\n      --ink:          #0C1E14;\n      --ink-muted:    #27703F;\n      --accent:       #0C1E14;\n      --accent-light: #E6F2E8;\n      --border:       #C8E0CE;\n      --radius:       16px;\n      --radius-sm:    10px;\n    }\n    @keyframes wiz-spin { to { transform: rotate(360deg); } }\n\n    .sw-root {\n      font-family: 'Tinos', Georgia, serif;\n      font-size: 20px; font-weight: 400; color: var(--ink);\n      background: var(--bg); padding: 32px 20px;\n      display: flex; align-items: flex-start; justify-content: center;\n    }\n    .sw-card {\n      background: var(--card); border: 1px solid var(--border);\n      border-radius: 24px; padding: 36px 32px;\n      width: 100%; max-width: 780px;\n      box-shadow: 0 4px 24px rgba(12,30,20,0.08); box-sizing: border-box;\n    }\n    @media (max-width: 480px) {\n      .sw-root { padding: 16px 10px; }\n      .sw-card { padding: 24px 16px; border-radius: 16px; }\n    }\n\n    .sw-progress { display: flex; gap: 8px; margin-bottom: 32px; }\n    .sw-progress-step { flex: 1; height: 4px; background: var(--border); border-radius: 999px; transition: background 0.35s; }\n    .sw-progress-step.active { background: var(--accent); }\n    .sw-progress-step.done   { background: var(--accent); opacity: 0.4; }\n\n    .sw-step-label { font-size: 12px; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 10px; }\n    .sw-heading { font-size: 26px; font-weight: 500; line-height: 1.2; margin: 0 0 6px; color: var(--accent); letter-spacing: 0.01em; }\n    .sw-subtext { font-size: 18px; font-weight: 400; color: var(--ink-muted); margin: 0 0 28px; line-height: 1.6; }\n    .sw-label { display: block; font-size: 18px; font-weight: 700; margin-bottom: 6px; color: var(--ink); }\n\n    .sw-select, .sw-text-input {\n      width: 100%; padding: 13px 15px;\n      border: 1px solid var(--border); border-radius: var(--radius-sm);\n      background: var(--bg);\n      font-family: 'Tinos', Georgia, serif; font-size: 18px; font-weight: 400; color: var(--ink);\n      transition: border-color 0.2s; box-sizing: border-box;\n    }\n    .sw-select {\n      appearance: none;\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2327703F' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'\/%3E%3C\/svg%3E\");\n      background-repeat: no-repeat; background-position: right 15px center;\n      cursor: pointer;\n    }\n    .sw-select:focus, .sw-text-input:focus {\n      outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(12,30,20,0.1);\n    }\n    .sw-text-input { margin-bottom: 14px; }\n\n    .sw-infobox {\n      margin-top: 12px; padding: 15px 17px; border-radius: var(--radius-sm);\n      background: var(--accent-light); border: 1px solid rgba(12,30,20,0.15);\n      font-size: 18px; font-weight: 400; line-height: 1.5;\n    }\n    .sw-infobox-title {\n      font-weight: 700; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;\n      color: var(--accent); margin-bottom: 3px;\n    }\n\n    .sw-divider { border: 0; border-top: 1px solid var(--border); margin: 30px 0 24px; }\n\n    .sw-choice-row { display: flex; gap: 10px; flex-wrap: wrap; }\n    .sw-choice-card {\n      flex: 1; min-width: 150px; padding: 16px 14px;\n      border: 1px solid var(--border); border-radius: var(--radius-sm);\n      text-align: center; cursor: pointer; font-size: 17px; line-height: 1.3;\n      transition: all 0.15s; background: var(--bg); box-sizing: border-box;\n    }\n    .sw-choice-card:hover { border-color: var(--accent); }\n    .sw-choice-card.active { background: var(--accent-light); border-color: var(--accent); font-weight: 700; color: var(--accent); }\n    @media (max-width: 480px) { .sw-choice-card { min-width: 100%; } }\n\n    .sw-person-block { margin-bottom: 8px; }\n    .sw-person-title { font-weight: 700; font-size: 21px; color: var(--accent); margin-bottom: 16px; }\n    .sw-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 0; }\n    @media (max-width: 480px) { .sw-field-grid { grid-template-columns: 1fr; } }\n\n    .sw-range-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; }\n    .sw-range-header-label { font-weight: 700; font-size: 18px; }\n    .sw-amount-display { display: flex; align-items: baseline; gap: 3px; }\n    .sw-amount-display span { font-size: 18px; font-weight: 400; }\n    .sw-amount-input {\n      font-family: 'Tinos', Georgia, serif;\n      font-size: 36px; font-weight: 700; color: var(--ink);\n      border: 2px solid var(--border); background: var(--bg);\n      text-align: right; width: 132px; padding: 4px 12px;\n      outline: none; border-radius: var(--radius-sm);\n      transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;\n    }\n    .sw-amount-input:hover { border-color: var(--accent); background: var(--accent-light); }\n    .sw-amount-input:focus { border-color: var(--accent); background: var(--accent-light); color: var(--accent); box-shadow: 0 0 0 3px rgba(12,30,20,0.1); }\n\n    input[type=range].sw-range {\n      -webkit-appearance: none; width: 100%; height: 6px;\n      border-radius: 999px; background: var(--border); outline: none; cursor: pointer;\n    }\n    input[type=range].sw-range::-webkit-slider-thumb {\n      -webkit-appearance: none; width: 40px; height: 40px; border-radius: 50%;\n      background-color: var(--accent);\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7l-5 5 5 5M16 7l5 5-5 5'\/%3E%3C\/svg%3E\");\n      background-repeat: no-repeat; background-position: center; background-size: 20px 20px;\n      box-shadow: 0 0 0 6px rgba(12,30,20,0.12), 0 3px 10px rgba(12,30,20,0.35);\n      cursor: pointer; transition: transform 0.15s, box-shadow 0.15s;\n    }\n    input[type=range].sw-range::-webkit-slider-thumb:hover { transform: scale(1.08); box-shadow: 0 0 0 9px rgba(12,30,20,0.18), 0 3px 12px rgba(12,30,20,0.4); }\n    input[type=range].sw-range::-webkit-slider-thumb:active { transform: scale(1.12); }\n    input[type=range].sw-range::-moz-range-thumb {\n      width: 40px; height: 40px; border-radius: 50%;\n      background-color: var(--accent);\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7l-5 5 5 5M16 7l5 5-5 5'\/%3E%3C\/svg%3E\");\n      background-repeat: no-repeat; background-position: center; background-size: 20px 20px;\n      border: none; box-shadow: 0 0 0 6px rgba(12,30,20,0.12), 0 3px 10px rgba(12,30,20,0.35); cursor: pointer;\n    }\n    input[type=range].sw-range.sw-pulse::-webkit-slider-thumb { animation: sw-thumb-pulse 1s ease-in-out 3; }\n    input[type=range].sw-range.sw-pulse::-moz-range-thumb    { animation: sw-thumb-pulse 1s ease-in-out 3; }\n    @keyframes sw-thumb-pulse {\n      0%, 100% { box-shadow: 0 0 0 6px rgba(12,30,20,0.12), 0 3px 10px rgba(12,30,20,0.35); }\n      50%      { box-shadow: 0 0 0 15px rgba(12,30,20,0.05), 0 3px 10px rgba(12,30,20,0.35); }\n    }\n\n    .sw-range-wrap { position: relative; }\n    .sw-markers { position: relative; height: 56px; margin-bottom: 8px; margin-left: 18px; margin-right: 18px; }\n    .sw-marker {\n      position: absolute; transform: translateX(-50%);\n      display: flex; flex-direction: column; align-items: center; gap: 2px;\n      justify-content: flex-end; height: 100%; pointer-events: auto; cursor: pointer;\n    }\n    .sw-marker-tick { width: 1px; height: 10px; background: var(--border); flex-shrink: 0; }\n    .sw-marker.active .sw-marker-tick { background: var(--accent); opacity: 0.5; }\n    .sw-marker-label { font-size: 11px; font-weight: 400; color: var(--ink-muted); white-space: nowrap; line-height: 1.2; text-align: center; order: -2; }\n    .sw-marker-amount { font-size: 13px; font-weight: 700; color: var(--ink-muted); order: -1; }\n    .sw-marker.active .sw-marker-label, .sw-marker.active .sw-marker-amount { color: var(--accent); }\n\n    @media (max-width: 540px) {\n      .sw-markers { display: none; }\n      .sw-markers-mobile { display: flex !important; }\n    }\n    .sw-markers-mobile {\n      display: none; flex-direction: column; gap: 0;\n      margin: 12px 0 4px; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden;\n    }\n    .sw-marker-mobile {\n      display: flex; align-items: center; justify-content: space-between;\n      padding: 10px 14px; cursor: pointer; border-bottom: 1px solid var(--border);\n      transition: background 0.15s; font-family: 'Tinos', Georgia, serif;\n    }\n    .sw-marker-mobile:last-child { border-bottom: 0; }\n    .sw-marker-mobile:hover { background: var(--accent-light); }\n    .sw-marker-mobile.active { background: var(--accent-light); }\n    .sw-marker-mobile-label { font-size: 15px; font-weight: 400; color: var(--ink-muted); }\n    .sw-marker-mobile.active .sw-marker-mobile-label { color: var(--accent); font-weight: 700; }\n    .sw-marker-mobile-amount { font-size: 16px; font-weight: 700; color: var(--ink-muted); }\n    .sw-marker-mobile.active .sw-marker-mobile-amount { color: var(--accent); }\n\n    .sw-summary-box { padding: 18px 20px; background: var(--accent-light); border: 1px solid rgba(12,30,20,0.2); border-radius: var(--radius-sm); margin-top: 20px; }\n    .sw-summary-row { display: flex; justify-content: space-between; align-items: center; padding: 5px 0; font-size: 16px; color: var(--ink); }\n    .sw-summary-row.sw-summary-discount { color: #8A1F1F; }\n    .sw-summary-row.sw-summary-total { border-top: 1px solid rgba(12,30,20,0.25); margin-top: 8px; padding-top: 12px; font-weight: 700; font-size: 22px; color: var(--accent); }\n    .sw-summary-person-label { font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-muted); margin: 14px 0 2px; }\n    .sw-summary-person-label:first-child { margin-top: 0; }\n\n    .sw-btn-row { display: flex; gap: 10px; margin-top: 24px; flex-wrap: wrap; }\n    .sw-btn { flex: 1; min-width: 140px; padding: 15px 17px; border-radius: var(--radius-sm); font-family: 'Tinos', Georgia, serif; font-size: 18px; font-weight: 700; cursor: pointer; transition: all 0.2s; border: 0; }\n    .sw-btn-primary { background: var(--accent); color: #fff; }\n    .sw-btn-primary:hover { background: #27703F; transform: translateY(-1px); }\n    .sw-btn-primary:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }\n    .sw-btn-secondary { background: transparent; color: var(--ink); border: 1px solid var(--border); }\n    .sw-btn-secondary:hover { background: var(--bg); }\n\n    .sw-error { display: none; margin-top: 15px; padding: 13px 15px; border-radius: var(--radius-sm); background: #FFF3F3; border: 1px solid rgba(220,30,30,0.2); color: #8A1F1F; font-size: 18px; font-weight: 400; line-height: 1.5; white-space: pre-wrap; }\n    .wiz-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,0.4); border-top-color: #fff; border-radius: 50%; animation: wiz-spin 0.7s linear infinite; vertical-align: middle; margin-right: 8px; }\n\n    .sw-country-search-wrap { position: relative; margin-bottom: 10px; }\n    .sw-country-search-icon { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--ink-muted); pointer-events: none; opacity: 0.5; }\n    .sw-country-search {\n      width: 100%; padding: 13px 15px 13px 54px;\n      border: 1px solid var(--border); border-radius: var(--radius-sm);\n      background: var(--bg); font-family: 'Tinos', Georgia, serif;\n      font-size: 18px; font-weight: 400; color: var(--ink);\n      transition: border-color 0.2s; box-sizing: border-box;\n    }\n    .sw-country-search:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(12,30,20,0.1); }\n    .sw-country-list { max-height: 240px; overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg); }\n    .sw-country-item { padding: 11px 15px; cursor: pointer; font-family: 'Tinos', Georgia, serif; font-size: 18px; font-weight: 400; display: flex; justify-content: space-between; align-items: center; transition: background 0.15s; border-bottom: 1px solid var(--border); }\n    .sw-country-item:last-child { border-bottom: 0; }\n    .sw-country-item:hover { background: var(--accent-light); }\n    .sw-country-item.selected { background: var(--accent-light); font-weight: 700; }\n    .sw-country-item-cat { font-size: 12px; color: var(--ink-muted); background: var(--border); padding: 2px 8px; border-radius: 999px; }\n    .sw-country-empty { padding: 15px; font-size: 18px; color: var(--ink-muted); text-align: center; }\n\n    .sw-step { display: none; }\n    .sw-step.active { display: block; }\n  `;\n  shadow.appendChild(styleEl);\n\n  const wrapper = document.createElement(\"div\");\n  wrapper.innerHTML = `\n    <div class=\"sw-root\">\n      <div class=\"sw-card\">\n\n        <div class=\"sw-progress\">\n          <div class=\"sw-progress-step\" id=\"sw-prog-1\"><\/div>\n          <div class=\"sw-progress-step\" id=\"sw-prog-2\"><\/div>\n          <div class=\"sw-progress-step\" id=\"sw-prog-3\"><\/div>\n          <div class=\"sw-progress-step\" id=\"sw-prog-4\"><\/div>\n          <div class=\"sw-progress-step\" id=\"sw-prog-5\"><\/div>\n        <\/div>\n\n        <!-- PASSO 1: BENVENUTO -->\n        <div class=\"sw-step active\" id=\"sw-step-welcome\">\n          <div class=\"sw-step-label\">Passo 1 di 5<\/div>\n          <h2 class=\"sw-heading\">Benvenuto\/a<\/h2>\n          <p class=\"sw-subtext\">In pochi passi selezionerai il tuo paese, la lingua, il tipo di iscrizione e il contributo \u2013 poi passerai direttamente al checkout.<\/p>\n          <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-welcome-next\" style=\"width:100%;\">Prezzi e iscrizione<\/button>\n        <\/div>\n\n        <!-- PASSO 2: PAESE -->\n        <div class=\"sw-step\" id=\"sw-step-country\">\n          <div class=\"sw-step-label\">Passo 2 di 5<\/div>\n          <h2 class=\"sw-heading\">Dove vivi?<\/h2>\n          <label class=\"sw-label\">Paese<\/label>\n          <div class=\"sw-country-search-wrap\">\n            <svg class=\"sw-country-search-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"m21 21-4.35-4.35\"\/><\/svg>\n            <input type=\"text\" class=\"sw-country-search\" id=\"sw-country-search\" placeholder=\"Cerca il tuo paese\u2026\" autocomplete=\"off\">\n          <\/div>\n          <div class=\"sw-country-list\" id=\"sw-country-list\"><\/div>\n          <input type=\"hidden\" id=\"sw-country\">\n          <div class=\"sw-infobox\" id=\"sw-catInfo\">\n            <div class=\"sw-infobox-title\">Categoria di prezzo<\/div>\n            <div id=\"sw-catText\">Seleziona prima un paese.<\/div>\n          <\/div>\n          <div class=\"sw-btn-row\">\n            <button class=\"sw-btn sw-btn-secondary\" id=\"sw-btn-country-back\">Indietro<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-country-next\" disabled>Avanti<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- PASSO 3: LINGUA + TIPO DI ISCRIZIONE -->\n        <div class=\"sw-step\" id=\"sw-step-langform\">\n          <div class=\"sw-step-label\">Passo 3 di 5<\/div>\n          <h2 class=\"sw-heading\">Lingua e tipo di iscrizione<\/h2>\n\n          <label class=\"sw-label\" for=\"sw-commLang\">In quale lingua partecipi?<\/label>\n          <select class=\"sw-select\" id=\"sw-commLang\">\n            <option value=\"\" selected disabled>Seleziona\u2026<\/option>\n            <option value=\"Deutsch\">Tedesco<\/option>\n            <option value=\"Englisch\">Inglese<\/option>\n            <option value=\"Spanisch\">Spagnolo<\/option>\n            <option value=\"Franz\u00f6sisch\">Francese<\/option>\n            <option value=\"Italienisch\">Italiano<\/option>\n            <option value=\"Portugiesisch\">Portoghese<\/option>\n            <option value=\"Arabisch\">Arabo<\/option>\n            <option value=\"Hebr\u00e4isch\">Ebraico<\/option>\n            <option value=\"Farsi\">Persiano (Farsi)<\/option>\n            <option value=\"Georgisch\">Georgiano<\/option>\n            <option value=\"Russisch\">Russo<\/option>\n            <option value=\"Chinesisch\">Cinese<\/option>\n            <option value=\"Japanisch\">Giapponese<\/option>\n            <option value=\"Koreanisch\">Coreano<\/option>\n          <\/select>\n\n          <div class=\"sw-infobox\" id=\"sw-apponly-note\" style=\"display:none; margin-top:14px;\">\n            <div class=\"sw-infobox-title\">PARTECIPAZIONE DIGITALE \u00b7 \u221235\u20ac<\/div>\n            <div id=\"sw-apponly-note-text\">Partecipi in modalit\u00e0 digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.<\/div>\n          <\/div>\n\n          <label class=\"sw-label\" style=\"margin-top:26px;\">Come desideri iscriverti?<\/label>\n          <div class=\"sw-choice-row\" id=\"sw-form-choices\">\n            <div class=\"sw-choice-card\" data-form=\"einzeln\">Individuale<\/div>\n            <div class=\"sw-choice-card\" data-form=\"paar\">In coppia<br><span style=\"font-size:13px; font-weight:400;\">(stesso nucleo familiare)<\/span><\/div>\n            <div class=\"sw-choice-card\" data-form=\"gruppe\">Gruppo<br><span style=\"font-size:13px; font-weight:400;\">(da 4 persone in su)<\/span><\/div>\n          <\/div>\n\n          <div class=\"sw-infobox\" id=\"sw-gruppe-note\" style=\"display:none; margin-top:18px;\">\n            <div class=\"sw-infobox-title\">Iscrizione di gruppo<\/div>\n            <div>Per i gruppi siamo lieti di discutere le condizioni personalmente con te. Verrai reindirizzato\/a alla nostra pagina di iscrizione per gruppi.<\/div>\n          <\/div>\n\n          <div class=\"sw-error\" id=\"sw-error-langform\"><\/div>\n\n          <div class=\"sw-btn-row\">\n            <button class=\"sw-btn sw-btn-secondary\" id=\"sw-btn-langform-back\">Indietro<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-langform-next\" disabled>Avanti<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-gruppe-redirect\" style=\"display:none;\">Vai all'iscrizione di gruppo<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- PASSO 4A: DATI \u2013 INDIVIDUALE -->\n        <div class=\"sw-step\" id=\"sw-step-details-solo\">\n          <div class=\"sw-step-label\">Passo 4 di 5<\/div>\n          <h2 class=\"sw-heading\">Qualche informazione su di te<\/h2>\n          <p class=\"sw-subtext\">Qualcuna di queste opzioni si applica a te? Questo ci aiuta a suggerirti il contributo pi\u00f9 adatto.<\/p>\n\n          <div class=\"sw-infobox\" id=\"sw-apponly-note-step4\" style=\"display:none; margin-bottom:20px;\">\n            <div class=\"sw-infobox-title\">PARTECIPAZIONE DIGITALE \u00b7 \u221235\u20ac<\/div>\n            <div>Partecipi in modalit\u00e0 digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.<\/div>\n          <\/div>\n\n          <label class=\"sw-label\">Seleziona<\/label>\n          <select class=\"sw-select\" id=\"sw-solo-status\">\n            <option value=\"\" disabled selected>Seleziona\u2026<\/option>\n            <option value=\"normal\">Iscrizione standard<\/option>\n            <option value=\"schueler\">Studente di scuola superiore (\u221250%)<\/option>\n            <option value=\"student\">In formazione \/ studente universitario\/a (\u221225%)<\/option>\n            <option value=\"wiederholer\">Ripeto il corso con gli esercizi dell'anima (senza nuovo set di carte \u2212 30%)<\/option>\n          <\/select>\n\n          <div class=\"sw-error\" id=\"sw-error-details-solo\"><\/div>\n\n          <div class=\"sw-btn-row\">\n            <button class=\"sw-btn sw-btn-secondary\" id=\"sw-btn-details-solo-back\">Indietro<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-details-solo-next\" disabled>Avanti<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- PASSO 4B: DATI \u2013 COPPIA -->\n        <div class=\"sw-step\" id=\"sw-step-details-paar\">\n          <div class=\"sw-step-label\">Passo 4 di 5<\/div>\n          <h2 class=\"sw-heading\">Dati di entrambi<\/h2>\n          <p class=\"sw-subtext\">Inserisci i dati di entrambe le persone. La seconda persona riceve automaticamente uno sconto del 50%.<\/p>\n\n          <div class=\"sw-infobox\" id=\"sw-apponly-note-paar-step4\" style=\"display:none; margin-bottom:20px;\">\n            <div class=\"sw-infobox-title\">PARTECIPAZIONE DIGITALE \u00b7 \u221235\u20ac<\/div>\n            <div>Partecipate in modalit\u00e0 digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.<\/div>\n          <\/div>\n\n          <div class=\"sw-person-block\">\n            <div class=\"sw-person-title\">Persona 1<\/div>\n            <div class=\"sw-field-grid\">\n              <div><label class=\"sw-label\">Nome<\/label><input class=\"sw-text-input\" type=\"text\" id=\"sw-p1-vorname\"><\/div>\n              <div><label class=\"sw-label\">Cognome<\/label><input class=\"sw-text-input\" type=\"text\" id=\"sw-p1-nachname\"><\/div>\n            <\/div>\n            <label class=\"sw-label\">E-mail<\/label>\n            <input class=\"sw-text-input\" type=\"email\" id=\"sw-p1-email\">\n          <\/div>\n\n          <hr class=\"sw-divider\">\n\n          <div class=\"sw-person-block\">\n            <div class=\"sw-person-title\">Persona 2 <span style=\"font-size:21px; font-weight:700; color:var(--ink-muted);\">(\u221250%)<\/span><\/div>\n            <div class=\"sw-field-grid\">\n              <div><label class=\"sw-label\">Nome<\/label><input class=\"sw-text-input\" type=\"text\" id=\"sw-p2-vorname\"><\/div>\n              <div><label class=\"sw-label\">Cognome<\/label><input class=\"sw-text-input\" type=\"text\" id=\"sw-p2-nachname\"><\/div>\n            <\/div>\n            <label class=\"sw-label\">E-mail<\/label>\n            <input class=\"sw-text-input\" type=\"email\" id=\"sw-p2-email\">\n          <\/div>\n\n          <div class=\"sw-error\" id=\"sw-error-details-paar\"><\/div>\n\n          <div class=\"sw-btn-row\">\n            <button class=\"sw-btn sw-btn-secondary\" id=\"sw-btn-details-paar-back\">Indietro<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-details-paar-next\" disabled>Avanti<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- PASSO 5A: CONTRIBUTO \u2013 INDIVIDUALE -->\n        <div class=\"sw-step\" id=\"sw-step-amount-solo\">\n          <div class=\"sw-step-label\">Passo 5 di 5<\/div>\n          <h2 class=\"sw-heading\">Scegli il contributo<\/h2>\n          <p class=\"sw-subtext\" id=\"sw-rangeHint-solo\">Qui puoi scegliere il contributo che senti giusto per te.<\/p>\n\n          <div class=\"sw-infobox\" id=\"sw-apponly-note-step5-solo\" style=\"display:none; margin-bottom:20px;\">\n            <div class=\"sw-infobox-title\">PARTECIPAZIONE DIGITALE \u00b7 \u221235\u20ac<\/div>\n            <div>Partecipi in modalit\u00e0 digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.<\/div>\n          <\/div>\n\n          <div class=\"sw-range-header\">\n            <div class=\"sw-range-header-label\">Il tuo importo<\/div>\n            <div class=\"sw-amount-display\">\n              <input type=\"number\" class=\"sw-amount-input\" id=\"sw-amountInput-solo\" value=\"360\">\n              <span>\u20ac<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"sw-range-wrap\">\n            <div class=\"sw-markers\" id=\"sw-markers-solo\"><\/div>\n            <input type=\"range\" class=\"sw-range\" id=\"sw-amount-solo\" min=\"0\" max=\"100\" step=\"0.5\" value=\"50\">\n            <div class=\"sw-markers-mobile\" id=\"sw-markers-mobile-solo\"><\/div>\n          <\/div>\n\n          <p style=\"margin-top:18px; font-size:16px; color:#27703F; line-height:1.5; font-family:'Tinos',Georgia,serif;\">\n            Se hai bisogno di un ulteriore sconto, scrivici a:\n            <a href=\"mailto:info@basic-exercises.com\" style=\"color:#27703F; text-decoration:underline;\">info@basic-exercises.com<\/a>\n          <\/p>\n\n          <div class=\"sw-summary-box\" id=\"sw-summary-solo\">\n            <div class=\"sw-summary-row\"><span>Contributo scelto<\/span><span id=\"sw-solo-chosen\">360\u20ac<\/span><\/div>\n            <div id=\"sw-solo-discounts\"><\/div>\n            <div class=\"sw-summary-row\" id=\"sw-shipping-line-solo\" style=\"display:none;\"><span>Spedizione<\/span><span>pi\u00f9 \u20ac15<\/span><\/div>\n            <div class=\"sw-summary-row sw-summary-total\"><span>Totale<\/span><span><span id=\"sw-solo-total\">360<\/span>\u20ac<\/span><\/div>\n          <\/div>\n\n          <div class=\"sw-error\" id=\"sw-error-amount-solo\"><\/div>\n          <div class=\"sw-btn-row\">\n            <button class=\"sw-btn sw-btn-secondary\" id=\"sw-btn-amount-solo-back\">Indietro<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-checkout-solo\">Iscriviti<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- PASSO 5B: CONTRIBUTO \u2013 COPPIA -->\n        <div class=\"sw-step\" id=\"sw-step-amount-paar\">\n          <div class=\"sw-step-label\">Passo 5 di 5<\/div>\n          <h2 class=\"sw-heading\">Scegli i contributi<\/h2>\n          <p class=\"sw-subtext\" id=\"sw-rangeHint-paar\">Ogni persona sceglie il proprio contributo. La persona 2 riceve automaticamente uno sconto del 50%.<\/p>\n\n          <div class=\"sw-infobox\" id=\"sw-apponly-note-step5-paar\" style=\"display:none; margin-bottom:20px;\">\n            <div class=\"sw-infobox-title\">PARTECIPAZIONE DIGITALE \u00b7 \u221235\u20ac<\/div>\n            <div>Partecipate in modalit\u00e0 digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.<\/div>\n          <\/div>\n\n          <div class=\"sw-person-block\">\n            <div class=\"sw-person-title\" id=\"sw-amount-p1-title\">Persona 1<\/div>\n            <div class=\"sw-range-header\">\n              <div class=\"sw-range-header-label\">Contributo<\/div>\n              <div class=\"sw-amount-display\">\n                <input type=\"number\" class=\"sw-amount-input\" id=\"sw-amountInput-p1\" value=\"360\">\n                <span>\u20ac<\/span>\n              <\/div>\n            <\/div>\n            <div class=\"sw-range-wrap\">\n              <div class=\"sw-markers\" id=\"sw-markers-p1\"><\/div>\n              <input type=\"range\" class=\"sw-range\" id=\"sw-amount-p1\" min=\"0\" max=\"100\" step=\"0.5\" value=\"50\">\n              <div class=\"sw-markers-mobile\" id=\"sw-markers-mobile-p1\"><\/div>\n            <\/div>\n          <\/div>\n\n          <hr class=\"sw-divider\">\n\n          <div class=\"sw-person-block\">\n            <div class=\"sw-person-title\" id=\"sw-amount-p2-title\">Persona 2 <span style=\"font-size:21px; font-weight:700; color:var(--ink-muted);\">(\u221250%)<\/span><\/div>\n            <div class=\"sw-range-header\">\n              <div class=\"sw-range-header-label\">Contributo<\/div>\n              <div class=\"sw-amount-display\">\n                <input type=\"number\" class=\"sw-amount-input\" id=\"sw-amountInput-p2\" value=\"360\">\n                <span>\u20ac<\/span>\n              <\/div>\n            <\/div>\n            <div class=\"sw-range-wrap\">\n              <div class=\"sw-markers\" id=\"sw-markers-p2\"><\/div>\n              <input type=\"range\" class=\"sw-range\" id=\"sw-amount-p2\" min=\"0\" max=\"100\" step=\"0.5\" value=\"50\">\n              <div class=\"sw-markers-mobile\" id=\"sw-markers-mobile-p2\"><\/div>\n            <\/div>\n          <\/div>\n\n          <p style=\"margin-top:8px; font-size:16px; color:#27703F; line-height:1.5; font-family:'Tinos',Georgia,serif;\">\n            Se avete bisogno di un ulteriore sconto, scriveteci a:\n            <a href=\"mailto:info@basic-exercises.com\" style=\"color:#27703F; text-decoration:underline;\">info@basic-exercises.com<\/a>\n          <\/p>\n\n          <div class=\"sw-summary-box\" id=\"sw-summary-paar\">\n            <div class=\"sw-summary-person-label\" id=\"sw-summary-p1-label\">Persona 1<\/div>\n            <div class=\"sw-summary-row\"><span>Contributo scelto<\/span><span id=\"sw-p1-chosen\">0\u20ac<\/span><\/div>\n            <div id=\"sw-p1-discounts\"><\/div>\n            <div class=\"sw-summary-row\"><span>Subtotale<\/span><span id=\"sw-p1-subtotal\">0\u20ac<\/span><\/div>\n\n            <div class=\"sw-summary-person-label\" id=\"sw-summary-p2-label\">Persona 2<\/div>\n            <div class=\"sw-summary-row\"><span>Contributo scelto<\/span><span id=\"sw-p2-chosen\">0\u20ac<\/span><\/div>\n            <div id=\"sw-p2-discounts\"><\/div>\n            <div class=\"sw-summary-row\"><span>Subtotale<\/span><span id=\"sw-p2-subtotal\">0\u20ac<\/span><\/div>\n\n            <div class=\"sw-summary-row\" id=\"sw-shipping-line-paar\" style=\"display:none;\"><span>Spedizione<\/span><span>pi\u00f9 \u20ac15<\/span><\/div>\n            <div class=\"sw-summary-row sw-summary-total\"><span>Totale<\/span><span><span id=\"sw-paar-total\">0<\/span>\u20ac<\/span><\/div>\n          <\/div>\n\n          <div class=\"sw-error\" id=\"sw-error-amount-paar\"><\/div>\n          <div class=\"sw-btn-row\">\n            <button class=\"sw-btn sw-btn-secondary\" id=\"sw-btn-amount-paar-back\">Indietro<\/button>\n            <button class=\"sw-btn sw-btn-primary\" id=\"sw-btn-checkout-paar\">Vai al checkout<\/button>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  `;\n  shadow.appendChild(wrapper);\n\n  const $ = (id) => shadow.getElementById(id);\n\n  const COUNTRY_TO_CAT = {};\n  Object.keys(COUNTRIES).forEach(cat => COUNTRIES[cat].forEach(code => COUNTRY_TO_CAT[code] = cat));\n\n  function getCountryName(code) {\n    if (COUNTRY_NAME_OVERRIDES[code]) return COUNTRY_NAME_OVERRIDES[code];\n    try { return new Intl.DisplayNames([\"it\"], { type: \"region\" }).of(code) || code; }\n    catch { return code; }\n  }\n\n  function getAllCountriesSorted() {\n    const all = [];\n    [\"cat1\",\"cat2\",\"cat3\",\"cat4\"].forEach(cat => {\n      COUNTRIES[cat]\n        .map(code => ({ code, name: getCountryName(code), cat }))\n        .sort((a, b) => a.name.localeCompare(b.name, \"it\"))\n        .forEach(c => all.push(c));\n    });\n    return all;\n  }\n\n  function emptyPerson() {\n    return { vorname: \"\", nachname: \"\", email: \"\", wiederholer: false, statusType: \"\", amount: 0 };\n  }\n  const state = {\n    country: \"\", category: \"cat1\",\n    commLang: \"\", form: \"\",\n    persons: { solo: emptyPerson(), p1: emptyPerson(), p2: emptyPerson() }\n  };\n  function getPerson(key) { return state.persons[key] || state.persons.solo; }\n\n  function isAppOnly() {\n    const { category: cat, commLang: lang, country } = state;\n    if (cat === \"cat3\" || cat === \"cat4\") return true;\n    if (APP_ONLY_LANGS.has(lang)) return true;\n    if (lang === \"Russisch\" && country && country !== \"RU\") return true;\n    return false;\n  }\n\n  function updateAppOnlyUI() {\n    const appOnly = state.commLang ? isAppOnly() : false;\n    let reason = \"\";\n    if (appOnly) {\n      if (state.category === \"cat3\" || state.category === \"cat4\") {\n        reason = \"La spedizione non \u00e8 disponibile nella tua regione. Partecipi in modalit\u00e0 digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.\";\n      } else if (state.commLang === \"Russisch\") {\n        reason = \"Per i parlanti russo al di fuori della Russia \u00e8 disponibile solo una versione digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.\";\n      } else {\n        reason = \"In questa lingua \u00e8 disponibile solo una versione digitale. Lo sconto verr\u00e0 applicato automaticamente nel riepilogo.\";\n      }\n    }\n    const noteIds = [\"sw-apponly-note\",\"sw-apponly-note-step4\",\"sw-apponly-note-paar-step4\",\"sw-apponly-note-step5-solo\",\"sw-apponly-note-step5-paar\"];\n    noteIds.forEach(id => {\n      const el = $(id);\n      if (!el) return;\n      el.style.display = appOnly ? \"block\" : \"none\";\n      const textDiv = el.querySelector(\"div:not(.sw-infobox-title)\");\n      if (textDiv && reason) textDiv.textContent = reason;\n    });\n  }\n\n  const STEP_CONTAINER = {\n    1: () => \"sw-step-welcome\",\n    2: () => \"sw-step-country\",\n    3: () => \"sw-step-langform\",\n    4: () => state.form === \"paar\" ? \"sw-step-details-paar\" : \"sw-step-details-solo\",\n    5: () => state.form === \"paar\" ? \"sw-step-amount-paar\" : \"sw-step-amount-solo\"\n  };\n\n  function showStep(n) {\n    shadow.querySelectorAll(\".sw-step\").forEach(el => el.classList.remove(\"active\"));\n    $(STEP_CONTAINER[n]()).classList.add(\"active\");\n    for (let i = 1; i <= 5; i++) {\n      const prog = $(\"sw-prog-\" + i);\n      if (!prog) continue;\n      if (i < n) prog.className = \"sw-progress-step done\";\n      else if (i === n) prog.className = \"sw-progress-step active\";\n      else prog.className = \"sw-progress-step\";\n    }\n    if (n === 5) {\n      const sliderIds = state.form === \"paar\" ? [\"sw-amount-p1\",\"sw-amount-p2\"] : [\"sw-amount-solo\"];\n      sliderIds.forEach(sid => { const el = $(sid); if (el) el.classList.add(\"sw-pulse\"); });\n      refreshSummary();\n    }\n  }\n\n  function setNextEnabled(id, enabled) {\n    const b = $(id);\n    if (!b) return;\n    b.disabled = !enabled;\n    b.style.opacity = enabled ? \"1\" : \".4\";\n    b.style.cursor  = enabled ? \"pointer\" : \"not-allowed\";\n  }\n\n  function showErrorIn(id, msg) { const el=$(id); el.style.display=\"block\"; el.textContent=msg; }\n  function clearErrorIn(id)     { const el=$(id); el.style.display=\"none\";  el.textContent=\"\"; }\n\n  function setCheckoutLoading(btnId, loading) {\n    const btn = $(btnId);\n    const overlay = document.getElementById(OVERLAY_ID);\n    if (!btn.dataset.defaultLabel) btn.dataset.defaultLabel = btn.textContent;\n    if (loading) {\n      btn.disabled = true;\n      btn.innerHTML = '<span class=\"wiz-spinner\"><\/span> In preparazione\u2026';\n      btn.style.opacity = \".8\";\n      if (overlay) overlay.style.display = \"flex\";\n    } else {\n      btn.disabled = false;\n      btn.textContent = btn.dataset.defaultLabel;\n      btn.style.opacity = \"1\";\n      if (overlay) overlay.style.display = \"none\";\n    }\n  }\n\n  function showThankYou() {\n    const card = shadow.querySelector(\".sw-card\");\n    if (!card) return;\n    card.innerHTML = `\n      <div style=\"text-align:center; padding:20px 0;\">\n        <div style=\"font-size:56px; margin-bottom:16px; color:#27703F;\">\u2713<\/div>\n        <h2 style=\"font-family:'Tinos',Georgia,serif; font-size:26px; font-weight:500; margin:0 0 12px; color:#0C1E14;\">Grazie!<\/h2>\n        <p style=\"font-family:'Tinos',Georgia,serif; font-size:18px; color:#27703F; line-height:1.6; margin:0 0 24px;\">Il checkout \u00e8 in caricamento\u2026<br>Verrai reindirizzato\/a a breve\u2026<\/p>\n        <div style=\"display:flex; justify-content:center;\">\n          <div style=\"width:36px; height:36px; border:4px solid #B8DEC4; border-top-color:#0C1E14; border-radius:50%; animation:wiz-spin 0.8s linear infinite;\"><\/div>\n        <\/div>\n      <\/div>`;\n  }\n\n  function getAnchors(cat) {\n    const r = RANGES[cat], o = ORIENTIERUNG[cat];\n    return [[0,r.min],[25,o.reduced],[50,o.base],[75,o.support],[100,r.max]];\n  }\n  function normToEuro(norm, cat) {\n    const a = getAnchors(cat);\n    for (let i = 0; i < a.length - 1; i++) {\n      if (norm <= a[i+1][0]) {\n        const t = (norm - a[i][0]) \/ (a[i+1][0] - a[i][0]);\n        return Math.round(a[i][1] + t * (a[i+1][1] - a[i][1]));\n      }\n    }\n    return a[a.length-1][1];\n  }\n  function euroToNorm(euro, cat) {\n    const a = getAnchors(cat);\n    for (let i = 0; i < a.length - 1; i++) {\n      const lo = a[i][1], hi = a[i+1][1];\n      if (euro <= hi) {\n        if (hi === lo) return a[i+1][0];\n        return a[i][0] + (euro - lo) \/ (hi - lo) * (a[i+1][0] - a[i][0]);\n      }\n    }\n    return 100;\n  }\n  function getMarkerDefs(cat) {\n    const o = ORIENTIERUNG[cat];\n    return [\n      { value: o.reduced, label: \"Contributo ridotto\",     normPct: 25 },\n      { value: o.base,    label: \"Contributo standard\",    normPct: 50 },\n      { value: o.support, label: \"Contributo di sostegno\", normPct: 75 }\n    ];\n  }\n\n  function renderMarkers(personKey) {\n    const cat = state.category;\n    const person = getPerson(personKey);\n    const markers = getMarkerDefs(cat);\n    const container = $(`sw-markers-${personKey}`);\n    container.innerHTML = \"\";\n    markers.forEach(m => {\n      const div = document.createElement(\"div\");\n      div.className = \"sw-marker\" + (person.amount === m.value ? \" active\" : \"\");\n      div.style.left = m.normPct + \"%\";\n      div.innerHTML = `<div class=\"sw-marker-tick\"><\/div><div class=\"sw-marker-amount\">${m.value}\u20ac<\/div><div class=\"sw-marker-label\">${m.label}<\/div>`;\n      div.addEventListener(\"click\", () => selectMarkerValue(personKey, m.value));\n      container.appendChild(div);\n    });\n    const mobileContainer = $(`sw-markers-mobile-${personKey}`);\n    mobileContainer.innerHTML = \"\";\n    markers.forEach(m => {\n      const div = document.createElement(\"div\");\n      div.className = \"sw-marker-mobile\" + (person.amount === m.value ? \" active\" : \"\");\n      div.innerHTML = `<span class=\"sw-marker-mobile-label\">${m.label}<\/span><span class=\"sw-marker-mobile-amount\">${m.value}\u20ac<\/span>`;\n      div.addEventListener(\"click\", () => selectMarkerValue(personKey, m.value));\n      mobileContainer.appendChild(div);\n    });\n  }\n\n  function selectMarkerValue(personKey, value) {\n    const person = getPerson(personKey);\n    $(`sw-amount-${personKey}`).value = euroToNorm(value, state.category);\n    person.amount = value;\n    $(`sw-amountInput-${personKey}`).value = value;\n    renderMarkers(personKey);\n    refreshSummary();\n  }\n\n  function updateAmountFromSlider(personKey) {\n    const person = getPerson(personKey);\n    const norm = Number($(`sw-amount-${personKey}`).value);\n    person.amount = normToEuro(norm, state.category);\n    $(`sw-amountInput-${personKey}`).value = person.amount;\n    renderMarkers(personKey);\n    refreshSummary();\n  }\n\n  function updateAmountFromInput(personKey) {\n    const person = getPerson(personKey);\n    const r = RANGES[state.category];\n    let val = Number($(`sw-amountInput-${personKey}`).value);\n    if (isNaN(val)) val = r.min;\n    val = Math.min(r.max, Math.max(r.min, val));\n    person.amount = val;\n    $(`sw-amountInput-${personKey}`).value = val;\n    $(`sw-amount-${personKey}`).value = euroToNorm(val, state.category);\n    renderMarkers(personKey);\n    refreshSummary();\n  }\n\n  function wireAmountControl(personKey) {\n    $(`sw-amount-${personKey}`).addEventListener(\"input\", () => updateAmountFromSlider(personKey));\n    $(`sw-amountInput-${personKey}`).addEventListener(\"input\", () => {\n      const v = Number($(`sw-amountInput-${personKey}`).value);\n      if (!isNaN(v)) { getPerson(personKey).amount = v; refreshSummary(); }\n    });\n    $(`sw-amountInput-${personKey}`).addEventListener(\"change\", () => updateAmountFromInput(personKey));\n  }\n\n  function applyRangeForForm() {\n    const cat = state.category;\n    const ori = ORIENTIERUNG[cat];\n    const hint = \"Qui puoi scegliere il contributo che senti giusto per te. Con un contributo di sostegno permetti a persone con minori mezzi finanziari di partecipare e ci aiuti a portare questo progetto nel mondo.\";\n    if (state.form === \"paar\") {\n      [\"p1\",\"p2\"].forEach(key => {\n        const person = getPerson(key);\n        person.amount = ori.base;\n        $(`sw-amount-${key}`).value = 50;\n        $(`sw-amountInput-${key}`).value = ori.base;\n      });\n      const p1name = state.persons.p1.vorname;\n      const p2name = state.persons.p2.vorname;\n      $(\"sw-amount-p1-title\").innerHTML = p1name ? `Persona 1 \u2013 ${p1name}` : \"Persona 1\";\n      $(\"sw-amount-p2-title\").innerHTML = (p2name ? `Persona 2 \u2013 ${p2name}` : \"Persona 2\") +\n        ' <span style=\"font-size:21px; font-weight:700; color:var(--ink-muted);\">(\u221250%)<\/span>';\n      $(\"sw-summary-p1-label\").textContent = p1name ? `Persona 1 \u2013 ${p1name}` : \"Persona 1\";\n      $(\"sw-summary-p2-label\").textContent = (p2name ? `Persona 2 \u2013 ${p2name}` : \"Persona 2\") + \" (\u221250%)\";\n      $(\"sw-rangeHint-paar\").textContent = hint;\n      renderMarkers(\"p1\"); renderMarkers(\"p2\");\n    } else {\n      const person = state.persons.solo;\n      person.amount = ori.base;\n      $(\"sw-amount-solo\").value = 50;\n      $(\"sw-amountInput-solo\").value = ori.base;\n      $(\"sw-rangeHint-solo\").textContent = hint;\n      renderMarkers(\"solo\");\n    }\n    refreshSummary();\n  }\n\n  \/\/ \u2500\u2500 Logica degli sconti \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \/\/ Regola: quando si applicano pi\u00f9 sconti, si sottrae prima lo sconto fisso per\n  \/\/ la partecipazione digitale dall'importo scelto. Lo sconto percentuale\n  \/\/ (scuola\/studente\/ripetente, o il 50% per la Persona 2) viene poi applicato\n  \/\/ sull'importo restante. Entrambi gli sconti vengono mostrati separatamente.\n  function getPercentDiscountCandidate(person, isPaarP2) {\n    if (isPaarP2) return { value: DISCOUNT_PAAR_P2, label: \"Sconto coppia \u2013 Persona 2\" };\n    const candidates = [];\n    if (person.wiederholer || person.statusType === \"wiederholer\") candidates.push({ value: DISCOUNT_WIEDERHOLER, label: \"Ripetente\" });\n    if (person.statusType === \"schueler\") candidates.push({ value: DISCOUNT_SCHUELER, label: \"Studente scuola superiore\" });\n    if (person.statusType === \"student\")  candidates.push({ value: DISCOUNT_STUDENT,  label: \"In formazione \/ universit\u00e0\" });\n    if (!candidates.length) return null;\n    return candidates.reduce((best, c) => c.value > best.value ? c : best, candidates[0]);\n  }\n\n  function getDiscounts(person, isPaarP2) {\n    const discounts = [];\n    let remaining = Math.round(person.amount);\n\n    if (isAppOnly()) {\n      const appDisc = Math.min(DISCOUNT_APP_FIXED, remaining);\n      discounts.push({ type: \"fixed\", value: DISCOUNT_APP_FIXED, label: \"Partecipazione digitale\", amountEuro: appDisc });\n      remaining -= appDisc;\n    }\n\n    const pct = getPercentDiscountCandidate(person, isPaarP2);\n    if (pct) {\n      const pctDisc = Math.round(remaining * pct.value);\n      discounts.push({ type: \"pct\", value: pct.value, label: pct.label, amountEuro: pctDisc });\n      remaining -= pctDisc;\n    }\n\n    return { discounts, finalAmount: Math.max(0, remaining) };\n  }\n\n  function buildStatusOptionValue(person, isPaar) {\n    const vals = [];\n    if (isPaar) vals.push(STATUS_LABEL.paar);\n    if (isAppOnly()) vals.push(STATUS_LABEL.apponly);\n    if (person.wiederholer || person.statusType === \"wiederholer\") vals.push(STATUS_LABEL.wiederholer);\n    if (person.statusType === \"schueler\") vals.push(STATUS_LABEL.schueler);\n    if (person.statusType === \"student\")  vals.push(STATUS_LABEL.student);\n    return vals;\n  }\n\n  function refreshSummary() {\n    if (state.form === \"paar\") refreshSummaryPaar();\n    else refreshSummarySolo();\n  }\n\n  function renderDiscountRows(containerId, discounts) {\n    const container = $(containerId);\n    container.innerHTML = \"\";\n    discounts.forEach(d => {\n      const row = document.createElement(\"div\");\n      row.className = \"sw-summary-row sw-summary-discount\";\n      const pctStr = d.type === \"fixed\" ? `\u2212${d.amountEuro}\u20ac` : `\u2212${Math.round(d.value * 100)}%`;\n      row.innerHTML = `<span>${d.label} (${pctStr})<\/span><span>\u2212${d.amountEuro}\u20ac<\/span>`;\n      container.appendChild(row);\n    });\n  }\n\n  function refreshSummarySolo() {\n    const p = state.persons.solo;\n    const { discounts, finalAmount } = getDiscounts(p, false);\n\n    $(\"sw-solo-chosen\").textContent = Math.round(p.amount) + \"\u20ac\";\n    renderDiscountRows(\"sw-solo-discounts\", discounts);\n    $(\"sw-solo-total\").textContent = finalAmount;\n\n    const shipLine = $(\"sw-shipping-line-solo\");\n    shipLine.style.display = (!isAppOnly() && needsShipping(state.country)) ? \"flex\" : \"none\";\n  }\n\n  function refreshSummaryPaar() {\n    const p1 = state.persons.p1, p2 = state.persons.p2;\n\n    function fill(prefix, person, isPaarP2) {\n      const { discounts, finalAmount } = getDiscounts(person, isPaarP2);\n      $(`sw-${prefix}-chosen`).textContent = Math.round(person.amount) + \"\u20ac\";\n      renderDiscountRows(`sw-${prefix}-discounts`, discounts);\n      $(`sw-${prefix}-subtotal`).textContent = finalAmount + \"\u20ac\";\n      return finalAmount;\n    }\n\n    const f1 = fill(\"p1\", p1, false);\n    const f2 = fill(\"p2\", p2, true);\n    $(\"sw-paar-total\").textContent = f1 + f2;\n\n    const shipLine = $(\"sw-shipping-line-paar\");\n    shipLine.style.display = (!isAppOnly() && needsShipping(state.country)) ? \"flex\" : \"none\";\n  }\n\n  function renderCountryList(filter) {\n    const list = $(\"sw-country-list\");\n    const q = (filter || \"\").toLowerCase().trim();\n    const filtered = q\n      ? getAllCountriesSorted().filter(c => c.name.toLowerCase().includes(q))\n      : getAllCountriesSorted();\n    list.innerHTML = \"\";\n    if (!filtered.length) { list.innerHTML = '<div class=\"sw-country-empty\">Nessun paese trovato<\/div>'; return; }\n    filtered.forEach(c => {\n      const div = document.createElement(\"div\");\n      div.className = \"sw-country-item\" + (state.country === c.code ? \" selected\" : \"\");\n      div.dataset.code = c.code;\n      div.innerHTML = `<span>${c.name}<\/span><span class=\"sw-country-item-cat\">Cat. ${c.cat.replace(\"cat\",\"\")}<\/span>`;\n      div.addEventListener(\"click\", () => selectCountry(c.code, c.cat, c.name));\n      list.appendChild(div);\n    });\n  }\n\n  function selectCountry(code, cat, name) {\n    state.country  = code;\n    state.category = cat;\n    $(\"sw-country\").value = code;\n    $(\"sw-country-search\").value = name;\n    $(\"sw-country-list\").innerHTML = \"\";\n    const catLabels = {\n      cat1:\"Categoria di prezzo 1\", cat2:\"Categoria di prezzo 2\",\n      cat3:\"Categoria di prezzo 3 \u2013 Solo partecipazione digitale\",\n      cat4:\"Categoria di prezzo 4 \u2013 Solo partecipazione digitale\"\n    };\n    $(\"sw-catText\").textContent = catLabels[cat] || cat;\n    setNextEnabled(\"sw-btn-country-next\", true);\n    updateAppOnlyUI();\n  }\n\n  function ensureEcwidReady(timeoutMs = 12000) {\n    return new Promise((resolve, reject) => {\n      function isReady() {\n        return window.Ecwid && window.Ecwid.Cart &&\n               typeof window.Ecwid.Cart.addProduct === \"function\" &&\n               typeof window.Ecwid.Cart.clear === \"function\";\n      }\n      if (isReady()) return resolve(true);\n      let resolved = false;\n      function done() { if (!resolved) { resolved = true; setTimeout(() => resolve(true), 200); } }\n      if (window.Ecwid) { try { window.Ecwid.OnAPILoaded.add(done); } catch(e) {} }\n      const start = Date.now();\n      const t = setInterval(() => {\n        if (isReady()) { clearInterval(t); done(); }\n        else if (Date.now() - start > timeoutMs) {\n          clearInterval(t);\n          if (!resolved) { resolved = true; reject(new Error(\"Ecwid Cart API non disponibile dopo \" + (timeoutMs\/1000) + \"s.\")); }\n        }\n      }, 200);\n    });\n  }\n\n  function clearCartAsync() { return new Promise(r => Ecwid.Cart.clear(() => r(true))); }\n\n  function addProductAsync(payload, timeoutMs = 4000) {\n    return new Promise((resolve, reject) => {\n      let done = false;\n      const t = setTimeout(() => { if (!done) { done = true; resolve({ product:null, cart:null, timedOut:true }); } }, timeoutMs);\n      Ecwid.Cart.addProduct(payload, function(success, product, cart, error) {\n        if (done) return;\n        done = true; clearTimeout(t);\n        if (success) resolve({ product, cart, timedOut:false });\n        else reject(new Error((error || \"Prodotto non aggiunto\") + \" | Payload: \" + JSON.stringify(payload)));\n      });\n    });\n  }\n\n  function goToCart() { window.location.href = SHOP_CART_URL; }\n\n  function buildN8nPayload() {\n    const p1 = state.persons.p1, p2 = state.persons.p2;\n    const d1 = getDiscounts(p1, false);\n    const d2 = getDiscounts(p2, true);\n    return {\n      sprache: state.commLang, land: state.country, kategorie: state.category, appOnly: isAppOnly(),\n      person1: { vorname: p1.vorname, nachname: p1.nachname, email: p1.email },\n      person2: { vorname: p2.vorname, nachname: p2.nachname, email: p2.email },\n      betraege: {\n        person1: { gewaehlt: Math.round(p1.amount), rabatte: d1.discounts, endbetrag: d1.finalAmount },\n        person2: { gewaehlt: Math.round(p2.amount), rabatte: d2.discounts, endbetrag: d2.finalAmount },\n        gesamt: d1.finalAmount + d2.finalAmount\n      },\n      timestamp: new Date().toISOString()\n    };\n  }\n\n  async function sendToN8n(payload) {\n    if (!N8N_WEBHOOK_URL || N8N_WEBHOOK_URL.indexOf(\"HIER_\") === 0) {\n      throw new Error(\"L'URL del webhook n8n non \u00e8 configurata nel codice.\");\n    }\n    let res;\n    try {\n      res = await fetch(N8N_WEBHOOK_URL, { method:\"POST\", headers:{\"Content-Type\":\"application\/json\"}, body:JSON.stringify(payload) });\n    } catch (e) {\n      throw new Error(\"I dati non hanno potuto essere inviati. Verifica la tua connessione internet.\");\n    }\n    if (!res.ok) throw new Error(\"Invio fallito (errore \" + res.status + \"). Riprova.\");\n    return true;\n  }\n\n  async function goCheckoutSolo() {\n    clearErrorIn(\"sw-error-amount-solo\");\n    if (!state.country)  return showErrorIn(\"sw-error-amount-solo\", \"Seleziona prima un paese.\");\n    if (!state.commLang) return showErrorIn(\"sw-error-amount-solo\", \"Seleziona la lingua di partecipazione.\");\n    const p = state.persons.solo;\n    const finalAmount = getDiscounts(p, false).finalAmount;\n    const participationProductId = PRODUCTS[state.category];\n    setCheckoutLoading(\"sw-btn-checkout-solo\", true);\n    try {\n      await ensureEcwidReady();\n      await clearCartAsync();\n      await new Promise(r => setTimeout(r, 1500));\n      const statusValue = buildStatusOptionValue(p, false);\n      const options = { [OPT_COMM_LANG]: state.commLang };\n      if (statusValue.length > 0) options[OPT_STATUS] = statusValue;\n      const result = await addProductAsync({ id: participationProductId, quantity: 1, selectedPrice: finalAmount, options });\n      if (result.timedOut) console.warn(\"[Wizard] addProduct timed out \u2013 proceeding to cart anyway\");\n      showThankYou();\n      setTimeout(goToCart, 2500);\n    } catch (e) {\n      showErrorIn(\"sw-error-amount-solo\", e.message || String(e));\n    } finally {\n      setCheckoutLoading(\"sw-btn-checkout-solo\", false);\n    }\n  }\n\n  async function goCheckoutPaar() {\n    clearErrorIn(\"sw-error-amount-paar\");\n    if (!state.country)  return showErrorIn(\"sw-error-amount-paar\", \"Seleziona prima un paese.\");\n    if (!state.commLang) return showErrorIn(\"sw-error-amount-paar\", \"Seleziona la lingua di partecipazione.\");\n    if (!validateDetailsPaar()) return showErrorIn(\"sw-error-amount-paar\", \"Torna indietro e compila tutti i campi per entrambe le persone.\");\n    const p1 = state.persons.p1, p2 = state.persons.p2;\n    const participationProductId = PRODUCTS[state.category];\n    setCheckoutLoading(\"sw-btn-checkout-paar\", true);\n    try {\n      const payload = buildN8nPayload();\n      await sendToN8n(payload);\n      await ensureEcwidReady();\n      await clearCartAsync();\n      await new Promise(r => setTimeout(r, 1500));\n      const total = getDiscounts(p1, false).finalAmount + getDiscounts(p2, true).finalAmount;\n      const statusValue = buildStatusOptionValue(p1, true);\n      const options = { [OPT_COMM_LANG]: state.commLang };\n      if (statusValue.length > 0) options[OPT_STATUS] = statusValue;\n      const result = await addProductAsync({ id: participationProductId, quantity: 1, selectedPrice: total, options });\n      if (result.timedOut) console.warn(\"[Wizard] addProduct timed out \u2013 proceeding to cart anyway\");\n      showThankYou();\n      setTimeout(goToCart, 2500);\n    } catch (e) {\n      showErrorIn(\"sw-error-amount-paar\", e.message || String(e));\n    } finally {\n      setCheckoutLoading(\"sw-btn-checkout-paar\", false);\n    }\n  }\n\n  function validateLangform() {\n    const ok = !!state.commLang && !!state.form && state.form !== \"gruppe\";\n    setNextEnabled(\"sw-btn-langform-next\", ok);\n  }\n\n  function validateDetailsSolo() {\n    const ok = !!$(\"sw-solo-status\").value;\n    setNextEnabled(\"sw-btn-details-solo-next\", ok);\n    return ok;\n  }\n\n  function validateDetailsPaar() {\n    const p1 = state.persons.p1, p2 = state.persons.p2;\n    const emailOk = s => \/\\S+@\\S+\\.\\S+\/.test(s || \"\");\n    const ok = !!(p1.vorname && p1.vorname.trim()) && !!(p1.nachname && p1.nachname.trim()) && emailOk(p1.email) &&\n               !!(p2.vorname && p2.vorname.trim()) && !!(p2.nachname && p2.nachname.trim()) && emailOk(p2.email);\n    setNextEnabled(\"sw-btn-details-paar-next\", ok);\n    return ok;\n  }\n\n  function bindNameFields(key) {\n    [\"vorname\",\"nachname\",\"email\"].forEach(f => {\n      $(`sw-${key}-${f}`).addEventListener(\"input\", e => {\n        getPerson(key)[f] = e.target.value;\n        validateDetailsPaar();\n      });\n    });\n  }\n\n  $(\"sw-btn-welcome-next\").addEventListener(\"click\", () => showStep(2));\n  $(\"sw-btn-country-back\").addEventListener(\"click\", () => showStep(1));\n  $(\"sw-btn-country-next\").addEventListener(\"click\", () => showStep(3));\n\n  $(\"sw-country-search\").addEventListener(\"input\",  e => renderCountryList(e.target.value));\n  $(\"sw-country-search\").addEventListener(\"focus\",  () => renderCountryList($(\"sw-country-search\").value));\n  shadow.addEventListener(\"click\", e => {\n    if (!e.target.closest(\"#sw-country-list\") && !e.target.closest(\"#sw-country-search\")) {\n      $(\"sw-country-list\").innerHTML = \"\";\n    }\n  });\n\n  $(\"sw-commLang\").addEventListener(\"change\", e => {\n    state.commLang = e.target.value;\n    validateLangform();\n    updateAppOnlyUI();\n    refreshSummary();\n  });\n\n  shadow.querySelectorAll(\".sw-choice-card\").forEach(card => {\n    card.addEventListener(\"click\", () => {\n      state.form = card.dataset.form;\n      shadow.querySelectorAll(\".sw-choice-card\").forEach(c => c.classList.toggle(\"active\", c === card));\n      const isGruppe = state.form === \"gruppe\";\n      $(\"sw-gruppe-note\").style.display = isGruppe ? \"block\" : \"none\";\n      $(\"sw-btn-langform-next\").style.display   = isGruppe ? \"none\" : \"inline-block\";\n      $(\"sw-btn-gruppe-redirect\").style.display = isGruppe ? \"inline-block\" : \"none\";\n      clearErrorIn(\"sw-error-langform\");\n      validateLangform();\n    });\n  });\n\n  $(\"sw-btn-gruppe-redirect\").addEventListener(\"click\", () => { window.location.href = getGroupRedirectUrl(); });\n  $(\"sw-btn-langform-back\").addEventListener(\"click\", () => showStep(2));\n  $(\"sw-btn-langform-next\").addEventListener(\"click\", () => showStep(4));\n\n  $(\"sw-btn-details-solo-back\").addEventListener(\"click\", () => showStep(3));\n  $(\"sw-solo-status\").addEventListener(\"change\", e => {\n    const val = e.target.value;\n    const person = state.persons.solo;\n    person.statusType  = val;\n    person.wiederholer = val === \"wiederholer\";\n    clearErrorIn(\"sw-error-details-solo\");\n    validateDetailsSolo();\n  });\n  $(\"sw-btn-details-solo-next\").addEventListener(\"click\", () => {\n    if (validateDetailsSolo()) { applyRangeForForm(); showStep(5); }\n    else showErrorIn(\"sw-error-details-solo\", \"Effettua prima una selezione.\");\n  });\n\n  $(\"sw-btn-details-paar-back\").addEventListener(\"click\", () => showStep(3));\n  $(\"sw-btn-details-paar-next\").addEventListener(\"click\", () => {\n    if (validateDetailsPaar()) { applyRangeForForm(); showStep(5); }\n  });\n\n  $(\"sw-btn-amount-solo-back\").addEventListener(\"click\", () => showStep(4));\n  $(\"sw-btn-amount-paar-back\").addEventListener(\"click\", () => showStep(4));\n  $(\"sw-btn-checkout-solo\").addEventListener(\"click\", goCheckoutSolo);\n  $(\"sw-btn-checkout-paar\").addEventListener(\"click\", goCheckoutPaar);\n\n  bindNameFields(\"p1\");\n  bindNameFields(\"p2\");\n  wireAmountControl(\"solo\");\n  wireAmountControl(\"p1\");\n  wireAmountControl(\"p2\");\n\n  showStep(1);\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0683b0f e-flex e-con-boxed e-con e-parent\" data-id=\"0683b0f\" 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-5cbb6ed elementor-widget elementor-widget-text-editor\" data-id=\"5cbb6ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div id=\"dynamic-ec-store-container\" class=\"\"><!-- Ecwid shopping cart plugin v 7.0.8 --><!--noptimize--><script data-cfasync=\"false\" data-no-optimize=\"1\" src=\"https:\/\/app.ecwid.com\/script.js?89632828&data_platform=wporg&lang=it\"><\/script><script data-cfasync=\"false\" data-no-optimize=\"1\">if (typeof jQuery !== undefined && jQuery.mobile) { jQuery.mobile.hashListeningEnabled = false; jQuery.mobile.pushStateEnabled=false; }<\/script><!--\/noptimize--><div id=\"ecwid-store-89632828\" class=\"ecwid-shopping-cart-product-browser\" data-ecwid-default-category-id=\"0\"><\/div><script data-cfasync=\"false\" data-no-optimize=\"1\" type=\"text\/javascript\">xProductBrowser(\"id=ecwid-store-89632828\",\"views=grid(20,3) list(60) table(60)\",\"default_page=\");<\/script><!-- END Ecwid Shopping Cart v 7.0.8 --><\/div>\n\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<div class=\"elementor-element elementor-element-e62689f e-con-full e-flex e-con e-parent\" data-id=\"e62689f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-f4c7d13 e-con-full e-flex e-con e-child\" data-id=\"f4c7d13\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fa33190 elementor-widget elementor-widget-text-editor\" data-id=\"fa33190\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Institute for Spiritual Activity<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7c9e47a e-con-full e-flex e-con e-child\" data-id=\"7c9e47a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b61cb9a e-con-full e-flex e-con e-child\" data-id=\"b61cb9a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bb4c2a5 elementor-widget elementor-widget-text-editor\" data-id=\"bb4c2a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Datenschutz <span>\u00b7 Impressum \u00b7 AGB<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Preise &#038; Anmeldung Wir freuen uns \u00fcber Deine Anmeldung Geh mit uns und vielen Menschen weltweit den Weg durch die sechs Seelen\u00fcbungen. Start 27. September 2026 Ende 18. April 2027 Dauer 29 Wochen Format Meditativer Schulungsweg Teilnahmebeitrag Preistransparenz Der Kurs wird getragen von dem Institute for Spiritual Activity sowie unserem Verein: Leben im Denken e.V. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":280,"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":852,"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/pages\/10\/revisions\/852"}],"wp:attachment":[{"href":"https:\/\/spiritual-activity.org\/it\/wp-json\/wp\/v2\/media?parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}