{"id":10225,"date":"2023-07-07T20:19:45","date_gmt":"2023-07-07T18:19:45","guid":{"rendered":"https:\/\/ath-technik.de\/?page_id=10225"},"modified":"2026-08-19T13:43:45","modified_gmt":"2026-08-19T11:43:45","slug":"slew-drive-configurator","status":"publish","type":"page","link":"https:\/\/ath-technik.de\/en\/schwenkantriebe\/schwenkantrieb-konfigurator\/","title":{"rendered":"Slewing drive configurator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"10225\" class=\"elementor elementor-10225\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7552563 elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"7552563\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fbe949a\" data-id=\"fbe949a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d36d986 elementor-widget elementor-widget-html\" data-id=\"d36d986\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n.ath-config-header{\r\n  max-width:1000px;\r\n  margin:0 0 48px;\r\n  padding:0 0 34px;\r\n  border-bottom:1px solid #d9e1e6;\r\n  font-family:'Nunito Sans',sans-serif;\r\n}\r\n\r\n.ath-config-eyebrow{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:12px;\r\n  margin:0 0 16px;\r\n  color:#00a0c0;\r\n  font-size:13px;\r\n  line-height:1;\r\n  font-weight:900;\r\n  letter-spacing:1.6px;\r\n  text-transform:uppercase;\r\n}\r\n\r\n.ath-config-eyebrow::before{\r\n  content:\"\";\r\n  width:38px;\r\n  height:3px;\r\n  flex:0 0 38px;\r\n  background:#00a0c0;\r\n  border-radius:999px;\r\n}\r\n\r\n.ath-config-header h1{\r\n  max-width:950px;\r\n  margin:0;\r\n  color:#0d2336;\r\n  font-size:clamp(36px,4vw,54px);\r\n  line-height:1.08;\r\n  font-weight:900;\r\n  letter-spacing:-0.035em;\r\n}\r\n\r\n.ath-config-tagline{\r\n  margin:18px 0 0;\r\n  color:#00a0c0;\r\n  font-size:clamp(20px,2vw,27px);\r\n  line-height:1.25;\r\n  font-weight:800;\r\n}\r\n\r\n.ath-config-description{\r\n  max-width:820px;\r\n  margin:18px 0 0;\r\n  color:#4d5d68;\r\n  font-size:18px;\r\n  line-height:1.7;\r\n  font-weight:500;\r\n}\r\n\r\n@media(max-width:760px){\r\n  .ath-config-header{\r\n    margin-bottom:34px;\r\n    padding:0 18px 28px;\r\n    text-align:center;\r\n  }\r\n\r\n  .ath-config-eyebrow{\r\n    justify-content:center;\r\n    font-size:12px;\r\n  }\r\n\r\n  .ath-config-header h1{\r\n    font-size:30px;\r\n    line-height:1.15;\r\n  }\r\n\r\n  .ath-config-tagline{\r\n    font-size:19px;\r\n  }\r\n\r\n  .ath-config-description{\r\n    margin:16px auto 0;\r\n    font-size:16px;\r\n    line-height:1.65;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<section class=\"ath-configurator\">\r\n\r\n  <header class=\"ath-config-header\">\r\n\r\n    <span class=\"ath-config-eyebrow\">\r\n      Online-Konfigurator\r\n    <\/span>\r\n\r\n    <h1>\r\n      Schwenkantrieb-Konfigurator f\u00fcr Elektro- und Hydraulikantriebe\r\n    <\/h1>\r\n\r\n    <p class=\"ath-config-tagline\">\r\n      Ihr Schwenkantrieb. Individuell ausgelegt.\r\n    <\/p>\r\n\r\n    <p class=\"ath-config-description\">\r\n      W\u00e4hlen Sie Antriebsart, Baureihe, Schwenkantrieb und die passende\r\n      Motorisierung. Das System berechnet automatisch die relevanten\r\n      technischen Kennwerte Ihrer Konfiguration.\r\n    <\/p>\r\n\r\n  <\/header>\r\n\r\n  <!-- Ab hier folgen die vorhandenen Konfigurator-Schritte -->\r\n\r\n<\/section>\r\n\r\n  <div class=\"ath-progress\" id=\"athProgress\">\r\n    <div class=\"ath-progress-item active\" data-progress=\"drive\">\r\n      <span>1<\/span>\r\n      Antrieb\r\n    <\/div>\r\n\r\n    <div class=\"ath-progress-item\" data-progress=\"series\">\r\n      <span>2<\/span>\r\n      Baureihe\r\n    <\/div>\r\n\r\n    <div class=\"ath-progress-item\" data-progress=\"slewing\">\r\n      <span>3<\/span>\r\n      Schwenkantrieb\r\n    <\/div>\r\n\r\n    <div class=\"ath-progress-item\" data-progress=\"motor\">\r\n      <span>4<\/span>\r\n      Motorisierung\r\n    <\/div>\r\n\r\n    <div class=\"ath-progress-item ath-progress-result\" data-progress=\"result\">\r\n  <span>5<\/span>\r\n  Motoroptionen\r\n<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ath-config-layout\">\r\n    <div class=\"ath-config-main\">\r\n      <div class=\"ath-step\" data-step=\"drive\">\r\n        <div class=\"ath-step-title\">1. Antriebsart w\u00e4hlen<\/div>\r\n\r\n        <div class=\"ath-choice-grid two\">\r\n          <button type=\"button\" class=\"ath-choice\" data-drive=\"electric\">\r\n            <strong>Elektromotor<\/strong>\r\n            <small>Stirnradgetriebemotor mit optionaler Haltebremse<\/small>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"ath-choice\" data-drive=\"hydraulic\">\r\n            <strong>Hydraulikmotor<\/strong>\r\n            <small>BMM \/ BMR Hydraulikmotor mit optionaler Drehdurchf\u00fchrung<\/small>\r\n          <\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ath-step\" data-step=\"series\">\r\n        <div class=\"ath-step-title\">2. Baureihe w\u00e4hlen<\/div>\r\n\r\n        <div class=\"ath-series-grid\">\r\n          <button type=\"button\" class=\"ath-series\" data-series=\"Schwer\">\r\n            <img decoding=\"async\" src=\"https:\/\/ath-technik.de\/wp-content\/uploads\/2026\/05\/SA276.85.png\" alt=\"Schwere Baureihe SA\">\r\n            <strong>Schwere Baureihe<\/strong>\r\n            <small>SA<\/small>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"ath-series\" data-series=\"Extrem\">\r\n            <img decoding=\"async\" src=\"https:\/\/ath-technik.de\/wp-content\/uploads\/2026\/05\/SAA360.108.png\" alt=\"Extreme Baureihe SAA\">\r\n            <strong>Extreme Baureihe<\/strong>\r\n            <small>SAA<\/small>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"ath-series\" data-series=\"Doppelschnecke\">\r\n            <img decoding=\"async\" src=\"https:\/\/ath-technik.de\/wp-content\/uploads\/2026\/05\/SA2.480.png\" alt=\"Doppelschnecken-Baureihe SA2\">\r\n            <strong>Doppelschnecke<\/strong>\r\n            <small>SA2<\/small>\r\n          <\/button>\r\n\r\n          <button type=\"button\" class=\"ath-series\" data-series=\"Schnell\">\r\n            <img decoding=\"async\" src=\"https:\/\/ath-technik.de\/wp-content\/uploads\/2026\/05\/SAH346.105.png\" alt=\"Schnelllaufende Baureihe SAH\">\r\n            <strong>Schnelllaufend<\/strong>\r\n            <small>SAH<\/small>\r\n          <\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ath-step\" data-step=\"slewing\">\r\n        <div class=\"ath-step-title\">3. Schwenkantrieb w\u00e4hlen<\/div>\r\n\r\n        <div class=\"ath-select-wrap\">\r\n          <select id=\"athSlewingDrive\">\r\n            <option value=\"\">Bitte zuerst Antriebsart und Baureihe w\u00e4hlen<\/option>\r\n          <\/select>\r\n        <\/div>\r\n\r\n        <div class=\"ath-tech-grid\" id=\"athSlewingFacts\">\r\n          <div class=\"ath-tech-card\">\r\n            <span>\u00dcbersetzung<\/span>\r\n            <strong id=\"factRatio\">\u2013<\/strong>\r\n          <\/div>\r\n\r\n          <div class=\"ath-tech-card\">\r\n            <span>Kippmoment<\/span>\r\n            <strong id=\"factTilting\">\u2013<\/strong>\r\n          <\/div>\r\n\r\n          <div class=\"ath-tech-card\">\r\n            <span>Haltedrehmoment<\/span>\r\n            <strong id=\"factHolding\">\u2013<\/strong>\r\n          <\/div>\r\n\r\n          <div class=\"ath-tech-card\">\r\n            <span>Au\u00dfendurchmesser<\/span>\r\n            <strong id=\"factOuter\">\u2013<\/strong>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ath-step\" data-step=\"motor\">\r\n        <div class=\"ath-step-title\">4. Zielwerte und Motorisierung w\u00e4hlen<\/div>\r\n\r\n        <div class=\"ath-motor-filter-grid\">\r\n          <label class=\"ath-field-label\">\r\n            Gew\u00fcnschte Ausgangsdrehzahl\r\n            <input type=\"number\" id=\"athTargetSpeed\" min=\"0\" step=\"0.01\" placeholder=\"z. B. 0,75\">\r\n            <small>U\/min am Ausgang des Schwenkantriebs<\/small>\r\n          <\/label>\r\n\r\n          <label class=\"ath-field-label\">\r\n            Motorleistung\r\n            <select id=\"athMotorPower\">\r\n              <option value=\"\">Alle Motorleistungen<\/option>\r\n            <\/select>\r\n            <small>Filtert die passenden Motoren nach Leistung<\/small>\r\n          <\/label>\r\n        <\/div>\r\n\r\n        <div class=\"ath-candidate-header\">\r\n          <strong>Passende Motoren<\/strong>\r\n          <span id=\"athCandidateHint\">Bitte zuerst Schwenkantrieb w\u00e4hlen.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"ath-motor-candidates\" id=\"athMotorCandidates\"><\/div>\r\n\r\n        <div class=\"ath-tech-grid\" id=\"athMotorFacts\">\r\n          <div class=\"ath-tech-card\">\r\n            <span>Motorleistung<\/span>\r\n            <strong id=\"factMotorPower\">\u2013<\/strong>\r\n          <\/div>\r\n\r\n          <div class=\"ath-tech-card\">\r\n            <span>Motordrehzahl<\/span>\r\n            <strong id=\"factMotorSpeed\">\u2013<\/strong>\r\n          <\/div>\r\n\r\n          <div class=\"ath-tech-card\">\r\n            <span>Motordrehmoment<\/span>\r\n            <strong id=\"factMotorTorque\">\u2013<\/strong>\r\n          <\/div>\r\n\r\n          <div class=\"ath-tech-card\">\r\n            <span>Abtriebswelle<\/span>\r\n            <strong id=\"factMotorShaft\">\u2013<\/strong>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ath-step ath-electric-options\" data-step=\"options\" style=\"display:none;\">\r\n  <div class=\"ath-step-title\">5. Motoroptionen w\u00e4hlen<\/div>\r\n\r\n  <div class=\"ath-option-choice-grid\">\r\n    <div class=\"ath-option-choice-group\">\r\n      <strong>Haltebremse<\/strong>\r\n      <div class=\"ath-option-toggle\">\r\n        <button type=\"button\" class=\"ath-option-btn active\" data-option=\"brake\" data-value=\"false\">Nein<\/button>\r\n        <button type=\"button\" class=\"ath-option-btn\" data-option=\"brake\" data-value=\"true\">Ja<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ath-option-choice-group\">\r\n      <strong>Externer Absolutwertgeber<\/strong>\r\n      <div class=\"ath-option-toggle\">\r\n        <button type=\"button\" class=\"ath-option-btn active\" data-option=\"encoder\" data-value=\"false\">Nein<\/button>\r\n        <button type=\"button\" class=\"ath-option-btn\" data-option=\"encoder\" data-value=\"true\">Ja<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n      <div class=\"ath-step ath-hydraulic-options\" data-step=\"rotaryunion\" style=\"display:none;\">\r\n        <div class=\"ath-step-title\">Drehdurchf\u00fchrung w\u00e4hlen<\/div>\r\n\r\n        <div class=\"ath-select-wrap\">\r\n          <select id=\"athRotaryUnion\">\r\n            <option value=\"\">Keine \/ optional ausw\u00e4hlen<\/option>\r\n          <\/select>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n<aside class=\"ath-summary\">\r\n  <h3>Ihre Konfiguration<\/h3>\r\n\r\n  <div class=\"ath-summary-compact\">\r\n    <div class=\"ath-summary-block\">\r\n      <span>Antriebsart<\/span>\r\n      <strong id=\"sumDrive\">\u2013<\/strong>\r\n    <\/div>\r\n\r\n    <div class=\"ath-summary-block\">\r\n      <span>Baureihe<\/span>\r\n      <strong id=\"sumSeries\">\u2013<\/strong>\r\n    <\/div>\r\n\r\n    <div class=\"ath-summary-block\">\r\n      <span>Schwenkantrieb<\/span>\r\n      <strong id=\"sumSlewing\">\u2013<\/strong>\r\n    <\/div>\r\n\r\n    <div class=\"ath-summary-block\">\r\n      <span>Motorisierung<\/span>\r\n      <strong id=\"sumMotor\">\u2013<\/strong>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ath-summary-options\" id=\"summaryOptions\" style=\"display:none;\">\r\n    <span>Optionen<\/span>\r\n    <div id=\"summaryOptionsList\"><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ath-summary-results\">\r\n    <div class=\"ath-result-box\">\r\n      <span>Ausgangsdrehmoment<\/span>\r\n      <strong id=\"sumTorque\">\u2013<\/strong>\r\n    <\/div>\r\n\r\n    <div class=\"ath-result-box\">\r\n      <span>Ausgangsdrehzahl<\/span>\r\n      <strong id=\"sumSpeed\">\u2013<\/strong>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<div class=\"ath-price-box\">\r\n  <span>Komplettpreis<\/span>\r\n\r\n  <strong id=\"sumTotalPrice\">auf Anfrage<\/strong>\r\n\r\n  <small id=\"sumTotalPriceVat\"><\/small>\r\n<\/div>\r\n\r\n  <button type=\"button\" class=\"ath-secondary-btn\" id=\"datasheetBtn\">\r\n    Konfigurationsblatt erstellen\r\n  <\/button>\r\n\r\n  <button type=\"button\" class=\"ath-secondary-btn\" id=\"cadDownloadBtn\">\r\n    Download CAD-Modell\r\n  <\/button>\r\n\r\n  <button type=\"button\" class=\"ath-request-btn\" id=\"requestBtn\">\r\n    Angebot anfragen\r\n  <\/button>\r\n<\/aside>\r\n  <\/div>\r\n<\/section>\r\n\r\n<div class=\"ath-modal\" id=\"athRequestModal\">\r\n  <div class=\"ath-modal-card\">\r\n    <button type=\"button\" class=\"ath-modal-close\" id=\"athModalClose\" aria-label=\"Fenster schlie\u00dfen\">\u00d7<\/button>\r\n\r\n    <span class=\"ath-modal-kicker\">ATH Technik<\/span>\r\n    <h3>Angebot f\u00fcr Ihre Konfiguration anfragen<\/h3>\r\n    <p>Die aktuelle Auswahl wird automatisch in die Anfrage \u00fcbernommen.<\/p>\r\n\r\n    <div class=\"ath-modal-layout\">\r\n      <div class=\"ath-modal-summary\" id=\"athModalSummary\"><\/div>\r\n\r\n      <div class=\"ath-request-form\" id=\"athRequestForm\">\r\n  \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f11338-o1\" lang=\"de-DE\" dir=\"ltr\" data-wpcf7-id=\"11338\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/pages\/10225#wpcf7-f11338-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Kontaktformular\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"11338\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.7\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"de_DE\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f11338-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<p><label> Ihr Name \/ Firma<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" autocomplete=\"name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span> <\/label>\n<\/p>\n<p><label> Ihre E-Mail-Adresse<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" autocomplete=\"email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span> <\/label>\n<\/p>\n<p><label> Telefonnummer<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-phone\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-text wpcf7-validates-as-tel\" aria-invalid=\"false\" value=\"\" type=\"tel\" name=\"your-phone\" \/><\/span> <\/label>\n<\/p>\n<p><label> Ihre Nachricht<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\" name=\"your-message\"><\/textarea><\/span> <\/label>\n<\/p>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Config\" value=\"\" type=\"hidden\" name=\"konfiguration\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Drive\" value=\"\" type=\"hidden\" name=\"antriebsart\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Series\" value=\"\" type=\"hidden\" name=\"baureihe\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Slewing\" value=\"\" type=\"hidden\" name=\"schwenkantrieb\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Motor\" value=\"\" type=\"hidden\" name=\"motorisierung\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Torque\" value=\"\" type=\"hidden\" name=\"ausgangsdrehmoment\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" id=\"athCf7Speed\" value=\"\" type=\"hidden\" name=\"ausgangsdrehzahl\" \/>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Anfrage senden\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\r\n<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n<style>\r\n\r\n\r\n\r\n.ath-configurator {\r\n  font-family: \"Nunito Sans\", Arial, sans-serif;\r\n  max-width: 1400px;\r\n  margin: 0 auto;\r\n  padding: 60px 30px;\r\n  color: #222;\r\n}\r\n\r\n.ath-config-header{\r\n  max-width:900px;\r\n  margin:0 auto 40px;\r\n  text-align:center;\r\n}\r\n\r\n.ath-config-eyebrow{\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n  gap:12px;\r\n  margin-bottom:16px;\r\n  color:#00a0c0;\r\n  font-size:12px;\r\n  font-weight:900;\r\n  letter-spacing:1.8px;\r\n  text-transform:uppercase;\r\n}\r\n\r\n.ath-config-eyebrow:before{\r\n  content:\"\";\r\n  width:42px;\r\n  height:3px;\r\n  background:#00a0c0;\r\n  border-radius:20px;\r\n}\r\n\r\n.ath-config-header h2{\r\n  margin:0 0 18px;\r\n  color:#0d2336;\r\n  font-size:32px;\r\n  line-height:1.05;\r\n  font-weight:700;\r\n  letter-spacing:-1.5px;\r\n}\r\n\r\n.ath-config-header p{\r\n  margin:0;\r\n  color:#5c6b76;\r\n  font-size:18px;\r\n  line-height:1.75;\r\n}\r\n\r\n.ath-config-header p {\r\n  margin: 0;\r\n  color: #666;\r\n  font-size: 17px;\r\n}\r\n\r\n.ath-progress {\r\n  position: sticky;\r\n  top: 135px;\r\n  z-index: 50;\r\n  display: grid;\r\n  grid-template-columns: repeat(5, minmax(0, 1fr));\r\n  gap: 6px;\r\n  margin-bottom: 30px;\r\n  padding: 8px;\r\n  background: #fff;\r\n  border: 1px solid #e5e8eb;\r\n  border-radius: 999px;\r\n  box-shadow: 0 8px 25px rgba(0, 0, 0, .07);\r\n}\r\n\r\n.ath-progress-item {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  gap: 7px;\r\n  padding: 9px 10px;\r\n  color: #334;\r\n  background: #f3f6f8;\r\n  border-radius: 999px;\r\n  font-size: 12px;\r\n  font-weight: 900;\r\n  text-align: center;\r\n  white-space: nowrap;\r\n}\r\n\r\n.ath-progress-item span {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  width: 22px;\r\n  height: 22px;\r\n  color: #0d2336;\r\n  background: #dce4e8;\r\n  border-radius: 50%;\r\n  font-size: 12px;\r\n}\r\n\r\n.ath-progress-item.active {\r\n  color: #fff;\r\n  background: #00a0c0;\r\n}\r\n\r\n.ath-progress-item.active span {\r\n  color: #00a0c0;\r\n  background: #fff;\r\n}\r\n\r\n.ath-progress-item.done {\r\n  color: #0d2336;\r\n  background: #eaf7fa;\r\n}\r\n\r\n.ath-progress-item.done span {\r\n  color: #fff;\r\n  background: #00a0c0;\r\n}\r\n\r\n.ath-config-layout {\r\n  display: grid;\r\n  grid-template-columns: minmax(0, 1fr) 520px;\r\n  gap: 35px;\r\n  align-items: start;\r\n}\r\n\r\n.ath-config-main {\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 22px;\r\n}\r\n\r\n.ath-step {\r\n  padding: 24px;\r\n  background: #fff;\r\n  border: 1px solid #e5e8eb;\r\n  border-radius: 12px;\r\n  box-shadow: 0 8px 25px rgba(0, 0, 0, .04);\r\n  scroll-margin-top: 220px;\r\n}\r\n\r\n.ath-step-title {\r\n  margin-bottom: 18px;\r\n  font-size: 16px;\r\n  font-weight: 800;\r\n}\r\n\r\n.ath-choice-grid,\r\n.ath-series-grid {\r\n  display: grid;\r\n  gap: 18px;\r\n}\r\n\r\n.ath-choice-grid.two {\r\n  grid-template-columns: repeat(2, 1fr);\r\n}\r\n\r\n.ath-series-grid {\r\n  grid-template-columns: repeat(4, minmax(0, 1fr));\r\n}\r\n\r\n.ath-series {\r\n  grid-column: auto;\r\n}\r\n\r\n.ath-choice,\r\n.ath-series {\r\n  padding: 18px;\r\n  color: #222;\r\n  background: #f7f9fa;\r\n  border: 2px solid transparent;\r\n  border-radius: 10px;\r\n  cursor: pointer;\r\n  overflow: hidden;\r\n  text-align: left;\r\n  transition: .25s;\r\n}\r\n\r\n.ath-choice:hover,\r\n.ath-series:hover,\r\n.ath-choice.active,\r\n.ath-series.active {\r\n  background: #fff;\r\n  border-color: #00a0c0;\r\n  box-shadow: 0 8px 22px rgba(0, 160, 192, .14);\r\n}\r\n\r\n.ath-choice strong,\r\n.ath-series strong {\r\n  display: block;\r\n  margin-bottom: 6px;\r\n  font-size: 17px;\r\n}\r\n\r\n.ath-choice small,\r\n.ath-series small {\r\n  color: #666;\r\n  font-size: 14px;\r\n  line-height: 1.55;\r\n}\r\n\r\n.ath-choice small {\r\n  font-size: 15px;\r\n}\r\n\r\n.ath-price-box small{\r\n  display:block;\r\n  margin-top:6px;\r\n  color:#66727c;\r\n  font-size:13px;\r\n  font-weight:700;\r\n}\r\n\r\n.ath-series img {\r\n  display: block;\r\n  width: 100%;\r\n  height: 105px;\r\n  margin: 0 auto 8px;\r\n  object-fit: contain;\r\n  transform: scale(1.02);\r\n  transform-origin: center center;\r\n}\r\n\r\n.ath-select-wrap {\r\n  position: relative;\r\n  width: 100%;\r\n}\r\n\r\n.ath-select-wrap::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  right: 18px;\r\n  top: 50%;\r\n  width: 9px;\r\n  height: 9px;\r\n  border-right: 2px solid #222;\r\n  border-bottom: 2px solid #222;\r\n  transform: translateY(-65%) rotate(45deg);\r\n  pointer-events: none;\r\n}\r\n\r\n.ath-configurator select,\r\n.ath-configurator input[type=\"number\"] {\r\n  display: block !important;\r\n  width: 100% !important;\r\n  height: 54px !important;\r\n  box-sizing: border-box;\r\n  padding: 0 48px 0 16px !important;\r\n  color: #222 !important;\r\n  background: #fff !important;\r\n  border: 1px solid #d8dde2 !important;\r\n  border-radius: 6px !important;\r\n  appearance: none !important;\r\n  cursor: pointer;\r\n  font-size: 15px !important;\r\n  font-weight: 700 !important;\r\n}\r\n\r\n.ath-configurator input[type=\"number\"] {\r\n  padding-right: 16px !important;\r\n  appearance: auto !important;\r\n}\r\n\r\n.ath-configurator select:focus,\r\n.ath-configurator input[type=\"number\"]:focus {\r\n  border-color: #00a0c0 !important;\r\n  outline: none !important;\r\n}\r\n\r\n.ath-tech-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(4, 1fr);\r\n  gap: 12px;\r\n  margin-top: 16px;\r\n}\r\n\r\n.ath-tech-card {\r\n  padding: 14px;\r\n  background: #f7f9fa;\r\n  border: 1px solid #e5e8eb;\r\n  border-radius: 9px;\r\n}\r\n\r\n.ath-tech-card span {\r\n  display: block;\r\n  margin-bottom: 5px;\r\n  color: #667;\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  letter-spacing: .4px;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.ath-tech-card strong {\r\n  display: block;\r\n  color: #0d2336;\r\n  font-size: 16px;\r\n}\r\n\r\n.ath-motor-filter-grid {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 16px;\r\n  margin-bottom: 18px;\r\n}\r\n\r\n.ath-field-label {\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 7px;\r\n  color: #0d2336;\r\n  font-weight: 900;\r\n}\r\n\r\n.ath-field-label small {\r\n  color: #667;\r\n  font-weight: 600;\r\n  line-height: 1.35;\r\n}\r\n\r\n.ath-candidate-header {\r\n  display: flex;\r\n  align-items: flex-end;\r\n  justify-content: space-between;\r\n  gap: 14px;\r\n  margin: 8px 0 12px;\r\n}\r\n\r\n.ath-candidate-header strong {\r\n  color: #0d2336;\r\n  font-size: 16px;\r\n}\r\n\r\n.ath-candidate-header span {\r\n  color: #667;\r\n  font-size: 13px;\r\n  text-align: right;\r\n}\r\n\r\n.ath-motor-candidates {\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 0;\r\n  background: #fff;\r\n  border: 1px solid #dfe5e9;\r\n  border-radius: 10px;\r\n  overflow: hidden;\r\n}\r\n\r\n.ath-motor-candidate {\r\n  display: grid;\r\n  grid-template-columns: 1.2fr .62fr .72fr .72fr .82fr .95fr .75fr;\r\n  gap: 12px;\r\n  align-items: center;\r\n  width: 100%;\r\n  padding: 13px 16px;\r\n  color: #222;\r\n  background: #fff;\r\n  border: 0;\r\n  border-bottom: 1px solid #edf1f3;\r\n  cursor: pointer;\r\n  text-align: left;\r\n  transition: .2s;\r\n}\r\n\r\n.ath-motor-candidate:last-child {\r\n  border-bottom: 0;\r\n}\r\n\r\n.ath-motor-candidate:hover,\r\n.ath-motor-candidate.active {\r\n  background: #eaf7fa;\r\n}\r\n\r\n.ath-motor-candidate strong {\r\n  color: #0d2336;\r\n  font-size: 14px;\r\n  line-height: 1.25;\r\n}\r\n\r\n.ath-motor-cell span {\r\n  display: block;\r\n  color: #667;\r\n  font-size: 10px;\r\n  font-weight: 900;\r\n  letter-spacing: .4px;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.ath-motor-cell b {\r\n  display: block;\r\n  margin-top: 3px;\r\n  color: #222;\r\n  font-size: 13px;\r\n}\r\n\r\n.ath-motor-select {\r\n  justify-self: end;\r\n  padding: 8px 12px;\r\n  color: #fff;\r\n  background: #00a0c0;\r\n  border-radius: 999px;\r\n  font-size: 12px;\r\n  font-weight: 900;\r\n  white-space: nowrap;\r\n}\r\n\r\n.ath-option-row {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 24px;\r\n}\r\n\r\n.ath-option-row label {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 10px;\r\n  cursor: pointer;\r\n  font-weight: 800;\r\n}\r\n\r\n.ath-option-row input {\r\n  width: 20px;\r\n  height: 20px;\r\n  accent-color: #00a0c0;\r\n}\r\n\r\n.ath-option-choice-grid{\r\n  display:grid;\r\n  grid-template-columns:repeat(2,minmax(0,1fr));\r\n  gap:18px;\r\n}\r\n\r\n.ath-option-choice-group{\r\n  background:#f7f9fa;\r\n  border:1px solid #e5e8eb;\r\n  border-radius:10px;\r\n  padding:18px;\r\n}\r\n\r\n.ath-option-choice-group strong{\r\n  display:block;\r\n  color:#0d2336;\r\n  font-size:16px;\r\n  margin-bottom:12px;\r\n}\r\n\r\n.ath-option-toggle{\r\n  display:grid;\r\n  grid-template-columns:1fr 1fr;\r\n  gap:8px;\r\n}\r\n\r\n.ath-option-btn{\r\n  padding:12px 14px;\r\n  border:2px solid #d8dde2;\r\n  border-radius:8px;\r\n  background:#fff;\r\n  color:#0d2336;\r\n  font-weight:900;\r\n  cursor:pointer;\r\n  transition:.2s;\r\n}\r\n\r\n.ath-option-btn:hover,\r\n.ath-option-btn.active{\r\n  border-color:#00a0c0;\r\n  background:#00a0c0;\r\n  color:#fff;\r\n}\r\n\r\n@media(max-width:760px){\r\n  .ath-option-choice-grid{\r\n    grid-template-columns:1fr;\r\n  }\r\n}\r\n\r\n.ath-summary {\r\n  position: sticky;\r\n  top: 135px;\r\n  padding: 28px;\r\n  color: #fff;\r\n  background: #0d2336;\r\n  border-radius: 14px;\r\n}\r\n\r\n.ath-summary h3 {\r\n  margin: 0 0 22px;\r\n  color: #fff;\r\n  font-size: 24px;\r\n}\r\n\r\n.ath-summary-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(2, minmax(0, 1fr));\r\n  gap: 10px;\r\n}\r\n\r\n.ath-summary-line {\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 5px;\r\n  min-height: 66px;\r\n  padding: 12px;\r\n  background: rgba(255, 255, 255, .06);\r\n  border: 1px solid rgba(255, 255, 255, .10);\r\n  border-radius: 8px;\r\n}\r\n\r\n.ath-summary-line span {\r\n  color: rgba(255, 255, 255, .68);\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.ath-summary-line strong {\r\n  color: #fff;\r\n  font-size: 14px;\r\n  line-height: 1.25;\r\n}\r\n\r\n.ath-summary hr {\r\n  margin: 22px 0;\r\n  border: 0;\r\n  border-top: 1px solid rgba(255, 255, 255, .18);\r\n}\r\n\r\n.ath-summary-compact{\r\n  display:grid;\r\n  grid-template-columns:1fr 1fr;\r\n  gap:12px;\r\n  margin-bottom:18px;\r\n}\r\n\r\n.ath-summary-block{\r\n  background:rgba(255,255,255,.08);\r\n  border-radius:8px;\r\n  padding:13px 14px;\r\n}\r\n\r\n.ath-summary-block span,\r\n.ath-summary-options span,\r\n.ath-price-box span{\r\n  display:block;\r\n  color:rgba(255,255,255,.65);\r\n  font-size:12px;\r\n  margin-bottom:5px;\r\n}\r\n\r\n.ath-summary-block strong{\r\n  display:block;\r\n  color:#fff;\r\n  font-size:15px;\r\n  line-height:1.25;\r\n}\r\n\r\n.ath-summary-options{\r\n  background:rgba(255,255,255,.08);\r\n  border-radius:8px;\r\n  padding:13px 14px;\r\n  margin-bottom:12px;\r\n}\r\n\r\n#summaryOptionsList{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  gap:8px;\r\n}\r\n\r\n.ath-option-pill{\r\n  background:#00a0c0;\r\n  color:#fff;\r\n  border-radius:999px;\r\n  padding:5px 10px;\r\n  font-size:12px;\r\n  font-weight:800;\r\n}\r\n\r\n.ath-summary-results{\r\n  display:grid;\r\n  grid-template-columns:1fr 1fr;\r\n  gap:12px;\r\n  margin-bottom:12px;\r\n}\r\n\r\n.ath-summary-results .ath-result-box{\r\n  margin-bottom:0;\r\n}\r\n\r\n.ath-price-box{\r\n  background:#fff;\r\n  color:#0d2336;\r\n  border-radius:10px;\r\n  padding:16px;\r\n  margin:14px 0;\r\n}\r\n\r\n.ath-price-box span{\r\n  color:#66727c;\r\n}\r\n\r\n.ath-price-box strong{\r\n  display:block;\r\n  color:#0d2336;\r\n  font-size:24px;\r\n  font-weight:900;\r\n}\r\n\r\n.ath-result-title {\r\n  margin: 0 0 14px;\r\n  color: #fff;\r\n  font-size: 16px;\r\n}\r\n\r\n.ath-result-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(2, minmax(0, 1fr));\r\n  gap: 12px;\r\n}\r\n\r\n.ath-result-box {\r\n  min-height: 82px;\r\n  padding: 16px;\r\n  background: rgba(255, 255, 255, .08);\r\n  border: 1px solid rgba(255, 255, 255, .10);\r\n  border-radius: 8px;\r\n}\r\n\r\n.ath-result-highlight {\r\n  background: rgba(0, 160, 192, .22);\r\n  border-color: rgba(0, 160, 192, .45);\r\n}\r\n\r\n.ath-result-box span {\r\n  display: block;\r\n  margin-bottom: 5px;\r\n  color: rgba(255, 255, 255, .72);\r\n  font-size: 13px;\r\n}\r\n\r\n.ath-result-box strong {\r\n  color: #fff;\r\n  font-size: 18px;\r\n  line-height: 1.25;\r\n}\r\n\r\n.ath-request-btn,\r\n.ath-secondary-btn {\r\n  width: 100%;\r\n  padding: 15px 18px;\r\n  border-radius: 5px;\r\n  cursor: pointer;\r\n  font-weight: 900;\r\n  letter-spacing: .8px;\r\n  text-transform: uppercase;\r\n  transition: .25s;\r\n}\r\n\r\n.ath-request-btn {\r\n  margin-top: 12px;\r\n  color: #fff;\r\n  background: #00a0c0;\r\n  border: 2px solid #00a0c0;\r\n}\r\n\r\n.ath-request-btn:hover {\r\n  background: #0088a3;\r\n  border-color: #0088a3;\r\n}\r\n\r\n.ath-secondary-btn {\r\n  margin-top: 12px;\r\n  color: #fff;\r\n  background: transparent;\r\n  border: 2px solid rgba(255, 255, 255, .35);\r\n}\r\n\r\n.ath-secondary-btn:hover {\r\n  color: #0d2336;\r\n  background: #fff;\r\n  border-color: #fff;\r\n}\r\n\r\n.ath-modal {\r\n  position: fixed;\r\n  inset: 0;\r\n  z-index: 9999;\r\n  display: none;\r\n  align-items: flex-start;\r\n  justify-content: center;\r\n  padding: 25px;\r\n  padding-top:140px;\r\n  background: rgba(13, 35, 54, .72);\r\n  overflow-y: auto;\r\n  -webkit-overflow-scrolling: touch;\r\n}\r\n\r\n.ath-modal.open {\r\n  display: flex;\r\n}\r\n\r\n.ath-modal-card {\r\n  position: relative;\r\n  width: 100%;\r\n  max-width: 980px;\r\n  margin: 30px 0;\r\n  padding: 28px;\r\n  color: #222;\r\n  background: #fff;\r\n  border-radius: 14px;\r\n  box-shadow: 0 20px 60px rgba(0, 0, 0, .25);\r\n}\r\n\r\n.ath-modal-close {\r\n  position: sticky;\r\n  top: 10px;\r\n  z-index: 3;\r\n  float: right;\r\n  width: 44px;\r\n  height: 44px;\r\n  margin: -14px -14px 0 10px;\r\n  color: #fff;\r\n  background: #0d2336;\r\n  border: 0;\r\n  border-radius: 50%;\r\n  cursor: pointer;\r\n  font-size: 30px;\r\n  line-height: 42px;\r\n}\r\n\r\n.ath-modal-kicker {\r\n  color: #00a0c0;\r\n  font-size: 12px;\r\n  font-weight: 900;\r\n  letter-spacing: 1.4px;\r\n  text-transform: uppercase;\r\n}\r\n\r\n.ath-modal-layout {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1.1fr;\r\n  gap: 22px;\r\n  margin-top: 18px;\r\n}\r\n\r\n.ath-modal-summary {\r\n  margin: 0;\r\n  padding: 16px;\r\n  background: #f5f7f8;\r\n  border-left: 5px solid #00a0c0;\r\n  line-height: 1.7;\r\n  word-break: break-word;\r\n}\r\n\r\n.ath-request-form {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 14px;\r\n}\r\n\r\n.ath-request-form label {\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 6px;\r\n  color: #333;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n}\r\n\r\n.ath-request-form input,\r\n.ath-request-form textarea {\r\n  width: 100%;\r\n  box-sizing: border-box;\r\n  padding: 12px;\r\n  border: 1px solid #d8dde2;\r\n  border-radius: 6px;\r\n  font-family: inherit;\r\n  font-size: 14px;\r\n}\r\n\r\n.ath-request-form label:nth-child(4) {\r\n  grid-column: 1 \/ -1;\r\n}\r\n\r\n.ath-modal-submit {\r\n  grid-column: 1 \/ -1;\r\n  margin-top: 0 !important;\r\n}\r\n\r\n.ath-modal-note {\r\n  color: #666;\r\n  font-size: 14px;\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n  .ath-config-layout {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .ath-summary {\r\n    position: relative;\r\n    top: auto;\r\n  }\r\n\r\n  .ath-series-grid {\r\n    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\r\n  }\r\n\r\n  .ath-tech-grid {\r\n    grid-template-columns: repeat(2, 1fr);\r\n  }\r\n\r\n  .ath-modal-layout {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n\r\n@media (max-width:760px){\r\n\r\n  .ath-configurator{\r\n    padding:20px 14px;\r\n  }\r\n\r\n  .ath-config-header{\r\n    text-align:left;\r\n    margin-bottom:30px;\r\n  }\r\n\r\n  .ath-config-eyebrow{\r\n    justify-content:flex-start;\r\n    font-size:11px;\r\n    letter-spacing:1.4px;\r\n  }\r\n\r\n  .ath-config-eyebrow:before{\r\n    width:30px;\r\n  }\r\n\r\n  .ath-config-header h2{\r\n    font-size:24px;\r\n    line-height:1.1;\r\n    letter-spacing:-0.8px;\r\n  }\r\n\r\n  .ath-config-header p{\r\n    font-size:16px;\r\n    line-height:1.65;\r\n  }\r\n\r\n  \/* Progress-Leiste komplett ausblenden *\/\r\n  .ath-progress,\r\n  .ath-progress.has-result{\r\n    display:none !important;\r\n  }\r\n\r\n  \/* Layout untereinander *\/\r\n  .ath-config-layout{\r\n    display:flex;\r\n    flex-direction:column;\r\n    gap:20px;\r\n  }\r\n\r\n  .ath-config-main{\r\n    order:1;\r\n  }\r\n\r\n  .ath-summary{\r\n    order:2;\r\n    position:relative;\r\n    top:auto;\r\n    padding:20px;\r\n    margin-top:0;\r\n  }\r\n\r\n  .ath-summary h3{\r\n    font-size:20px;\r\n    margin-bottom:16px;\r\n  }\r\n\r\n  .ath-summary-compact{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-summary-results{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-choice-grid.two{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-series-grid{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-series{\r\n    grid-column:auto !important;\r\n  }\r\n\r\n  .ath-series img{\r\n    height:90px;\r\n    transform:none;\r\n  }\r\n\r\n  .ath-motor-filter-grid{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-tech-grid{\r\n    grid-template-columns:1fr 1fr;\r\n  }\r\n\r\n  .ath-option-choice-grid{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-step{\r\n    padding:16px;\r\n    scroll-margin-top:0;\r\n  }\r\n\r\n  .ath-step-title{\r\n    font-size:15px;\r\n    margin-bottom:14px;\r\n  }\r\n\r\n  .ath-choice strong,\r\n  .ath-series strong{\r\n    font-size:16px;\r\n  }\r\n\r\n  .ath-choice small,\r\n  .ath-series small{\r\n    font-size:13px;\r\n  }\r\n\r\n  .ath-candidate-header{\r\n    display:block;\r\n  }\r\n\r\n  .ath-candidate-header span{\r\n    display:block;\r\n    margin-top:6px;\r\n    text-align:left;\r\n  }\r\n\r\n  \/* Motor-Karten mobil *\/\r\n  .ath-motor-candidate{\r\n    display:flex;\r\n    flex-direction:column;\r\n    align-items:flex-start;\r\n    gap:10px;\r\n    padding:16px;\r\n  }\r\n\r\n  .ath-motor-cell{\r\n    width:100%;\r\n  }\r\n\r\n  .ath-motor-cell span{\r\n    font-size:10px;\r\n  }\r\n\r\n  .ath-motor-cell b{\r\n    font-size:13px;\r\n  }\r\n\r\n  .ath-motor-select{\r\n    width:100%;\r\n    text-align:center;\r\n  }\r\n\r\n  .ath-price-box strong{\r\n    font-size:22px;\r\n  }\r\n\r\n  \/* Modal *\/\r\n  .ath-modal{\r\n    align-items:flex-start;\r\n    padding:10px;\r\n    padding-top:20px;\r\n  }\r\n\r\n  .ath-modal-card{\r\n    margin:0;\r\n    padding:18px;\r\n    border-radius:12px;\r\n  }\r\n\r\n  .ath-modal-layout{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-request-form{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  .ath-request-form label:nth-child(4){\r\n    grid-column:auto;\r\n  }\r\n\r\n  .ath-modal-submit{\r\n    grid-column:auto;\r\n  }\r\n\r\n  .ath-modal-close{\r\n    width:40px;\r\n    height:40px;\r\n    line-height:38px;\r\n    font-size:26px;\r\n  }\r\n\r\n}\r\n\r\n\/* =========================================================\r\n   ATH Technik \u2013 Mobile Responsive Optimierung\r\n   Am Ende des bestehenden <style>-Blocks eingef\u00fcgt\r\n   ========================================================= *\/\r\n\r\n\/* Verhindert horizontales Scrollen durch lange Inhalte *\/\r\n.ath-configurator,\r\n.ath-configurator * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.ath-configurator {\r\n  width: 100%;\r\n  overflow-x: clip;\r\n}\r\n\r\n.ath-choice,\r\n.ath-series,\r\n.ath-tech-card,\r\n.ath-summary,\r\n.ath-modal-card,\r\n.ath-motor-candidate {\r\n  min-width: 0;\r\n}\r\n\r\n.ath-summary-block strong,\r\n.ath-result-box strong,\r\n.ath-tech-card strong,\r\n.ath-motor-candidate strong,\r\n.ath-motor-cell b {\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n\/* Tablet: Summary unter den Konfigurator, Baureihen sauber umbrechen *\/\r\n@media (max-width: 1200px) {\r\n  .ath-config-layout {\r\n    grid-template-columns: 1fr;\r\n    gap: 24px;\r\n  }\r\n\r\n  .ath-summary {\r\n    position: relative;\r\n    top: auto;\r\n    width: 100%;\r\n  }\r\n\r\n  .ath-series-grid {\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n  }\r\n\r\n  .ath-series {\r\n    grid-column: auto;\r\n  }\r\n\r\n  .ath-motor-candidate {\r\n    grid-template-columns: 1.2fr .7fr .75fr .75fr .85fr .95fr .75fr;\r\n  }\r\n}\r\n\r\n\/* Zwischenbereich: Motorliste wird kompakter *\/\r\n@media (max-width: 980px) {\r\n  .ath-configurator {\r\n    padding: 42px 22px;\r\n  }\r\n\r\n  .ath-progress {\r\n    top: 90px;\r\n  }\r\n\r\n  .ath-series-grid {\r\n    grid-template-columns: repeat(2, minmax(0, 1fr));\r\n  }\r\n\r\n  .ath-motor-candidate {\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    row-gap: 10px;\r\n  }\r\n\r\n  .ath-motor-candidate strong {\r\n    grid-column: 1 \/ -1;\r\n  }\r\n\r\n  .ath-motor-select {\r\n    justify-self: start;\r\n  }\r\n\r\n  .ath-modal {\r\n    padding-top: 90px;\r\n  }\r\n}\r\n\r\n\/* Smartphone *\/\r\n@media (max-width: 760px) {\r\n  .ath-configurator {\r\n    max-width: 100%;\r\n    padding: 28px 14px;\r\n  }\r\n\r\n  .ath-config-header {\r\n    margin-bottom: 16px;\r\n  }\r\n\r\n  .ath-config-header p {\r\n    font-size: 15px;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  .ath-progress,\r\n  .ath-progress.has-result {\r\n    position: sticky;\r\n    top: 74px;\r\n    display: flex;\r\n    gap: 8px;\r\n    width: calc(100% + 28px);\r\n    max-width: none;\r\n    margin-left: -14px;\r\n    margin-right: -14px;\r\n    margin-bottom: 22px;\r\n    padding: 8px 14px;\r\n    overflow-x: auto;\r\n    border-left: 0;\r\n    border-right: 0;\r\n    border-radius: 0;\r\n    scroll-snap-type: x proximity;\r\n    -webkit-overflow-scrolling: touch;\r\n  }\r\n\r\n  .ath-progress-item {\r\n    flex: 0 0 auto;\r\n    min-width: 118px;\r\n    scroll-snap-align: start;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  .ath-config-main {\r\n    gap: 18px;\r\n  }\r\n\r\n  .ath-step {\r\n    padding: 18px 14px;\r\n    border-radius: 11px;\r\n    scroll-margin-top: 155px;\r\n  }\r\n\r\n  .ath-step-title {\r\n    margin-bottom: 14px;\r\n    font-size: 15px;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  .ath-choice-grid.two,\r\n  .ath-series-grid,\r\n  .ath-motor-filter-grid,\r\n  .ath-tech-grid,\r\n  .ath-option-choice-grid,\r\n  .ath-summary-compact,\r\n  .ath-summary-results,\r\n  .ath-request-form,\r\n  .ath-modal-layout {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .ath-choice,\r\n  .ath-series {\r\n    padding: 15px;\r\n  }\r\n\r\n  .ath-choice strong,\r\n  .ath-series strong {\r\n    font-size: 16px;\r\n  }\r\n\r\n  .ath-choice small,\r\n  .ath-series small {\r\n    font-size: 13px;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  .ath-series img {\r\n    height: 90px;\r\n    max-width: 220px;\r\n  }\r\n\r\n  .ath-configurator select,\r\n  .ath-configurator input[type=\"number\"] {\r\n    height: 50px !important;\r\n    min-height: 50px !important;\r\n    font-size: 14px !important;\r\n  }\r\n\r\n  .ath-tech-grid {\r\n    gap: 10px;\r\n  }\r\n\r\n  .ath-tech-card {\r\n    padding: 12px;\r\n  }\r\n\r\n  .ath-candidate-header {\r\n    display: block;\r\n  }\r\n\r\n  .ath-candidate-header span {\r\n    display: block;\r\n    margin-top: 4px;\r\n    text-align: left;\r\n  }\r\n\r\n  .ath-motor-candidates {\r\n    border-radius: 10px;\r\n  }\r\n\r\n  .ath-motor-candidate {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 9px 12px;\r\n    padding: 14px;\r\n  }\r\n\r\n  .ath-motor-candidate strong {\r\n    grid-column: 1 \/ -1;\r\n    font-size: 15px;\r\n  }\r\n\r\n  .ath-motor-cell span {\r\n    font-size: 10px;\r\n  }\r\n\r\n  .ath-motor-cell b {\r\n    font-size: 12px;\r\n  }\r\n\r\n  .ath-motor-select {\r\n    grid-column: 1 \/ -1;\r\n    justify-self: stretch;\r\n    text-align: center;\r\n  }\r\n\r\n  .ath-summary {\r\n    padding: 20px 15px;\r\n    border-radius: 12px;\r\n  }\r\n\r\n  .ath-summary h3 {\r\n    margin-bottom: 16px;\r\n    font-size: 21px;\r\n  }\r\n\r\n  .ath-price-box strong {\r\n    font-size: 22px;\r\n  }\r\n\r\n  .ath-request-btn,\r\n  .ath-secondary-btn {\r\n    padding: 14px 15px;\r\n    font-size: 13px;\r\n  }\r\n\r\n  .ath-modal {\r\n    align-items: flex-start;\r\n    padding: 10px;\r\n    padding-top: 76px;\r\n  }\r\n\r\n  .ath-modal-card {\r\n    max-width: 100%;\r\n    margin: 0 0 24px;\r\n    padding: 22px 15px;\r\n    border-radius: 12px;\r\n  }\r\n\r\n  .ath-modal-card h3 {\r\n    font-size: 21px;\r\n    line-height: 1.25;\r\n  }\r\n\r\n  .ath-modal-card p {\r\n    font-size: 14px;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  .ath-modal-close {\r\n    position: sticky;\r\n    top: 8px;\r\n    width: 40px;\r\n    height: 40px;\r\n    margin: -8px -4px 0 8px;\r\n    font-size: 27px;\r\n    line-height: 38px;\r\n  }\r\n\r\n  .ath-modal-summary {\r\n    padding: 14px;\r\n    font-size: 13px;\r\n  }\r\n\r\n  .ath-request-form input,\r\n  .ath-request-form textarea {\r\n    font-size: 16px; \/* verhindert iOS-Zoom *\/\r\n  }\r\n}\r\n\r\n\/* Kleine Smartphones *\/\r\n@media (max-width: 480px) {\r\n  .ath-configurator {\r\n    padding-left: 10px;\r\n    padding-right: 10px;\r\n  }\r\n\r\n  .ath-progress,\r\n  .ath-progress.has-result {\r\n    width: calc(100% + 20px);\r\n    margin-left: -10px;\r\n    margin-right: -10px;\r\n    padding-left: 10px;\r\n    padding-right: 10px;\r\n  }\r\n\r\n  .ath-progress-item {\r\n    min-width: 104px;\r\n    gap: 5px;\r\n    font-size: 10px;\r\n  }\r\n\r\n  .ath-progress-item span {\r\n    width: 20px;\r\n    height: 20px;\r\n    font-size: 11px;\r\n  }\r\n\r\n  .ath-step {\r\n    padding: 16px 12px;\r\n  }\r\n\r\n  .ath-series img {\r\n    height: 82px;\r\n  }\r\n\r\n  .ath-motor-candidate {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .ath-motor-cell,\r\n  .ath-motor-select {\r\n    grid-column: 1 \/ -1;\r\n  }\r\n\r\n  .ath-option-toggle {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .ath-summary {\r\n    padding: 18px 12px;\r\n  }\r\n}\r\n\r\n<\/style>\r\n<script>\r\nconst state = {\r\n  driveType: null,\r\n  series: null,\r\n  slewingDrive: null,\r\n  motor: null,\r\n  rotaryUnion: null,\r\n  brake: false,\r\n  encoder: false,\r\n  targetSpeed: null,\r\n  motorPower: \"\"\r\n};\r\n\r\nfunction cleanMotorNumber(motorName) {\r\n  return String(motorName || \"\")\r\n    .replace(\"-230V\", \"\")\r\n    .replace(\"230V-\", \"\");\r\n}\r\n\r\nfunction isDoubleMotorSeries() {\r\n  return String(state.slewingDrive || \"\").startsWith(\"SA2\") || state.series === \"Doppelschnecke\";\r\n}\r\n\r\nfunction getMotorQuantity() {\r\n  return isDoubleMotorSeries() ? 2 : 1;\r\n}\r\n\r\nfunction formatMotorName(motorName) {\r\n  if (!motorName) return \"\u2013\";\r\n\r\n  const clean = cleanMotorNumber(motorName);\r\n  return isDoubleMotorSeries() ? \"2 \u00d7 \" + clean : clean;\r\n}\r\n\r\nfunction formatMotorQtyLabel() {\r\n  return getMotorQuantity() + \" \" + (getMotorQuantity() === 1 ? \"Motor\" : \"Motoren\");\r\n}\r\n\r\nfunction getOptionCode() {\r\n  const codes = [];\r\n\r\n  if (state.driveType === \"electric\") {\r\n    if (state.encoder) codes.push(\"AW\");\r\n    if (state.brake) codes.push(\"HB\");\r\n  }\r\n\r\n  if (state.driveType === \"hydraulic\" && state.rotaryUnion) {\r\n    codes.push(state.rotaryUnion);\r\n  }\r\n\r\n  return codes.length ? \"-\" + codes.join(\"-\") : \"\";\r\n}\r\n\r\nfunction getArticleNumber() {\r\n  if (!state.slewingDrive || !state.motor) return \"\u2013\";\r\n  return state.slewingDrive + \"-\" + cleanMotorNumber(state.motor) + getOptionCode();\r\n}\r\n\r\nfunction getSlewingPriceSku() {\r\n  if (!state.slewingDrive) return \"\";\r\n\r\n  if (state.driveType === \"hydraulic\") {\r\n    const map = {\r\n      \"SAL183.79\": \"SAL183.79.16-F3\",\r\n      \"SAL266.81\": \"SAL266.81-F3\"\r\n    };\r\n\r\n    return map[state.slewingDrive] || state.slewingDrive;\r\n  }\r\n\r\n  if (state.driveType === \"electric\") {\r\n    const map = {\r\n      \"SAL183.79\": \"SAL183.79.16\",\r\n      \"SAL266.81\": \"SAL266.81\"\r\n    };\r\n\r\n    return map[state.slewingDrive] || state.slewingDrive;\r\n  }\r\n\r\n  return state.slewingDrive;\r\n}\r\n\r\nfunction getMotorPriceSku() {\r\n  return state.motor ? cleanMotorNumber(state.motor) : \"\";\r\n}\r\n\r\nfunction getEncoderPriceSku() {\r\n  return state.encoder ? \"AEA5913\/4096BS-15-L2\" : \"\";\r\n}\r\n\r\nconst BRAKE_FIXED_PRICE = null;\r\nconst athPriceCache = new Map();\r\nlet athPriceRequestId = 0;\r\n\r\nasync function getAthPriceBySku(sku) {\r\n  if (!sku) return null;\r\n\r\n  if (athPriceCache.has(sku)) {\r\n    return athPriceCache.get(sku);\r\n  }\r\n\r\n  try {\r\n    const response = await fetch(`\/wp-json\/ath\/v1\/price?sku=${encodeURIComponent(sku)}`);\r\n    const data = await response.json();\r\n\r\n    if (!response.ok || !data.success) {\r\n      console.warn(\"Preis nicht gefunden:\", sku, data);\r\n      athPriceCache.set(sku, null);\r\n      return null;\r\n    }\r\n\r\n    const price = Number(data.price);\r\n    const value = Number.isFinite(price) ? price : null;\r\n    athPriceCache.set(sku, value);\r\n    return value;\r\n  } catch (error) {\r\n    console.warn(\"Preis konnte nicht geladen werden:\", sku, error);\r\n    return null;\r\n  }\r\n}\r\n\r\nasync function calculateTotalPrice() {\r\n\r\n  const items = [];\r\n  const motorQuantity = getMotorQuantity();\r\n\r\n  const slewingSku = getSlewingPriceSku();\r\n  const motorSku = getMotorPriceSku();\r\n  const flangeSku = getFlangePriceSku();\r\n  const encoderSku = getEncoderPriceSku();\r\n\r\n  if (slewingSku) items.push({ sku: slewingSku, quantity: 1 });\r\n  if (motorSku) items.push({ sku: motorSku, quantity: motorQuantity });\r\n  if (flangeSku) items.push({ sku: flangeSku, quantity: motorQuantity });\r\n  if (encoderSku) items.push({ sku: encoderSku, quantity: motorQuantity });\r\n\r\n  if (state.driveType === \"hydraulic\" && state.rotaryUnion) {\r\n    items.push({ sku: state.rotaryUnion, quantity: 1 });\r\n  }\r\n\r\n  let total = 0;\r\n  let missingPrice = false;\r\n\r\n  for (const item of items) {\r\n\r\n    const price = await getAthPriceBySku(item.sku);\r\n\r\n    console.log(\"Preisabfrage:\", item.sku, price, \"Menge:\", item.quantity);\r\n\r\n    if (\r\n      price === null ||\r\n      price === undefined ||\r\n      price === 0 ||\r\n      isNaN(price)\r\n    ) {\r\n      missingPrice = true;\r\n      break;\r\n    }\r\n\r\n    total += Number(price) * item.quantity;\r\n  }\r\n\r\n  \/\/ Haltebremse: Bei SA2\/Doppelschnecke werden zwei Motoren eingesetzt,\r\n  \/\/ daher wird die Haltebremse ebenfalls je Motor berechnet.\r\n  if (!missingPrice && state.brake) {\r\n\r\n    const brakePrice = getBrakePrice();\r\n\r\n    if (\r\n      brakePrice === null ||\r\n      brakePrice === undefined ||\r\n      isNaN(brakePrice)\r\n    ) {\r\n      missingPrice = true;\r\n    } else {\r\n      total += Number(brakePrice) * motorQuantity;\r\n    }\r\n  }\r\n\r\n  return {\r\n    total,\r\n    missingPrice\r\n  };\r\n}\r\n\r\nfunction formatPrice(value) {\r\n  return value.toLocaleString(\"de-DE\", {\r\n    style: \"currency\",\r\n    currency: \"EUR\"\r\n  });\r\n}\r\n\r\nasync function updateTotalPrice() {\r\n\r\n  const priceEl = document.getElementById(\"sumTotalPrice\");\r\n\r\n  if (!priceEl) return;\r\n\r\n  if (!state.slewingDrive || !state.motor) {\r\n    priceEl.innerText = \"Auf Anfrage\";\r\n    return;\r\n  }\r\n\r\n  priceEl.innerText = \"wird berechnet \u2026\";\r\n\r\n  const result = await calculateTotalPrice();\r\n\r\n  if (\r\n    result.missingPrice ||\r\n    !result.total ||\r\n    result.total <= 0\r\n  ) {\r\n    priceEl.innerText = \"Auf Anfrage\";\r\n    return;\r\n  }\r\n\r\n  priceEl.innerText = formatPrice(result.total);\r\nconst vatEl = document.getElementById(\"sumTotalPriceVat\");\r\n\r\nif (vatEl) {\r\n  vatEl.innerText = \"inkl. MwSt.\";\r\n}\r\n\r\n}\r\n\r\nasync function imageToBase64(url) {\r\n  const response = await fetch(url);\r\n  const blob = await response.blob();\r\n\r\n  return new Promise(resolve => {\r\n    const reader = new FileReader();\r\n    reader.onloadend = () => resolve(reader.result);\r\n    reader.readAsDataURL(blob);\r\n  });\r\n}\r\n\r\nvar sdArray = [\r\n  [\r\n    \"Keine Auswahl\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\"\r\n  ],\r\n  [\r\n    \"SAL183.79\",\r\n    \"62:1\",\r\n    \"183,0 mm\",\r\n    \"50,0 mm\",\r\n    \"80,0 mm\",\r\n    \"93,7 mm\",\r\n    \"5,5 kNm\",\r\n    \"0,6 kNm\",\r\n    \"3,0 kNm\",\r\n    \"SAL183\"\r\n  ],\r\n  [\r\n    \"SAL266.81\",\r\n    \"73:1\",\r\n    \"266,0 mm\",\r\n    \"98,0 mm\",\r\n    \"81,0 mm\",\r\n    \"132,7 mm\",\r\n    \"10,0 kNm\",\r\n    \"1,5 kNm\",\r\n    \"13,5 kNm\",\r\n    \"SAL266\"\r\n  ],\r\n  [\r\n    \"SA276.85\",\r\n    \"47:1\",\r\n    \"276,0 mm\",\r\n    \"105,0 mm\",\r\n    \"85,0 mm\",\r\n    \"142,5 mm\",\r\n    \"20,0 kNm\",\r\n    \"3,5 kNm\",\r\n    \"14,0 kNm\",\r\n    \"SA276\"\r\n  ],\r\n  [\r\n    \"SA350.82\",\r\n    \"62:1\",\r\n    \"350,0 mm\",\r\n    \"145,0 mm\",\r\n    \"82,0 mm\",\r\n    \"180,0 mm\",\r\n    \"39,0 kNm\",\r\n    \"8,0 kNm\",\r\n    \"35,0 kNm\",\r\n    \"SA350\"\r\n  ],\r\n  [\r\n    \"SA436.82\",\r\n    \"79:1\",\r\n    \"436,0 mm\",\r\n    \"229,0 mm\",\r\n    \"82,0 mm\",\r\n    \"223,0 mm\",\r\n    \"43,0 kNm\",\r\n    \"9,0 kNm\",\r\n    \"57,0 kNm\",\r\n    \"SA436\"\r\n  ],\r\n  [\r\n    \"SA470.82\",\r\n    \"86:1\",\r\n    \"470,0 mm\",\r\n    \"265,0 mm\",\r\n    \"82,0 mm\",\r\n    \"237,5 mm\",\r\n    \"48,0 kNm\",\r\n    \"11,0 kNm\",\r\n    \"71,2 kNm\",\r\n    \"SA470\"\r\n  ],\r\n  [\r\n    \"SA559.82\",\r\n    \"104:1\",\r\n    \"559,0 mm\",\r\n    \"332,0 mm\",\r\n    \"82,0 mm\",\r\n    \"285,0 mm\",\r\n    \"72,0 kNm\",\r\n    \"13,0 kNm\",\r\n    \"142,0 kNm\",\r\n    \"SA559\"\r\n  ],\r\n  [\r\n    \"SA625.108\",\r\n    \"94:1\",\r\n    \"625,0 mm\",\r\n    \"380,0 mm\",\r\n    \"108,0 mm\",\r\n    \"312,5 mm\",\r\n    \"80,0 kNm\",\r\n    \"18,0 kNm\",\r\n    \"196,0 kNm\",\r\n    \"SA625\"\r\n  ],\r\n  [\r\n    \"SA678.130\",\r\n    \"90:1\",\r\n    \"678,0 mm\",\r\n    \"425,0 mm\",\r\n    \"130,0 mm\",\r\n    \"350,0 mm\",\r\n    \"106,0 kNm\",\r\n    \"29,0 kNm\",\r\n    \"203,0 kNm\",\r\n    \"SA678\"\r\n  ],\r\n  [\r\n    \"SA776.130\",\r\n    \"104:1\",\r\n    \"776,0 mm\",\r\n    \"525,0 mm\",\r\n    \"130,0 mm\",\r\n    \"399,0 mm\",\r\n    \"158,0 kNm\",\r\n    \"34,0 kNm\",\r\n    \"310,0 kNm\",\r\n    \"SA776\"\r\n  ],\r\n  [\r\n    \"SA832.148\",\r\n    \"108:1\",\r\n    \"832,0 mm\",\r\n    \"512,0 mm\",\r\n    \"148,0 mm\",\r\n    \"416,0 mm\",\r\n    \"270,0 kNm\",\r\n    \"65,0 kNm\",\r\n    \"310,0 kNm\",\r\n    \"SA832\"\r\n  ],\r\n  [\r\n    \"SAA276.85\",\r\n    \"47:1\",\r\n    \"276,0 mm\",\r\n    \"105,0 mm\",\r\n    \"85,0 mm\",\r\n    \"142,5 mm\",\r\n    \"20,0 kNm\",\r\n    \"3,5 kNm\",\r\n    \"14,0 kNm\",\r\n    \"SAA276\"\r\n  ],\r\n  [\r\n    \"SAA360.108\",\r\n    \"62:1\",\r\n    \"360,0 mm\",\r\n    \"145,0 mm\",\r\n    \"108,0 mm\",\r\n    \"180,0 mm\",\r\n    \"38,7 kNm\",\r\n    \"8,0 kNm\",\r\n    \"35,6 kNm\",\r\n    \"SAA360\"\r\n  ],\r\n  [\r\n    \"SAA445.108\",\r\n    \"79:1\",\r\n    \"445,0 mm\",\r\n    \"229,0 mm\",\r\n    \"108,0 mm\",\r\n    \"222,5 mm\",\r\n    \"43,0 kNm\",\r\n    \"9,5 kNm\",\r\n    \"57,0 kNm\",\r\n    \"SAA445\"\r\n  ],\r\n  [\r\n    \"SAA480.108\",\r\n    \"86:1\",\r\n    \"480,0 mm\",\r\n    \"265,0 mm\",\r\n    \"108,0 mm\",\r\n    \"237,5 mm\",\r\n    \"48,0 kNm\",\r\n    \"10,8 kNm\",\r\n    \"71,2 kNm\",\r\n    \"SAA480\"\r\n  ],\r\n  [\r\n    \"SAA570.108\",\r\n    \"104:1\",\r\n    \"570,0 mm\",\r\n    \"332,0 mm\",\r\n    \"108,0 mm\",\r\n    \"285,0 mm\",\r\n    \"72,0 kNm\",\r\n    \"13,0 kNm\",\r\n    \"142,0 kNm\",\r\n    \"SAA570\"\r\n  ],\r\n  [\r\n    \"SAA625.108\",\r\n    \"94:1\",\r\n    \"625,0 mm\",\r\n    \"380,0 mm\",\r\n    \"108,0 mm\",\r\n    \"312,0 mm\",\r\n    \"80,0 kNm\",\r\n    \"18,5 kNm\",\r\n    \"196,0 kNm\",\r\n    \"SAA625\"\r\n  ],\r\n  [\r\n    \"SAA693.130\",\r\n    \"90:1\",\r\n    \"693,0 mm\",\r\n    \"425,0 mm\",\r\n    \"130,0 mm\",\r\n    \"350,0 mm\",\r\n    \"106,0 kNm\",\r\n    \"29,0 kNm\",\r\n    \"203,0 kNm\",\r\n    \"SAA693\"\r\n  ],\r\n  [\r\n    \"SAA793.130\",\r\n    \"104:1\",\r\n    \"793,0 mm\",\r\n    \"525,0 mm\",\r\n    \"130,0 mm\",\r\n    \"464,0 mm\",\r\n    \"158 kNm\",\r\n    \"34,2 kNm\",\r\n    \"310,0 kNm\",\r\n    \"SAA793\"\r\n  ],\r\n  [\r\n    \"SA2.480.108\",\r\n    \"86:1\",\r\n    \"480,0 mm\",\r\n    \"265,0 mm\",\r\n    \"108,0 mm\",\r\n    \"237,5 mm\",\r\n    \"82,0 kNm\",\r\n    \"16,0 kNm\",\r\n    \"71,0 kNm\",\r\n    \"SA2480\"\r\n  ],\r\n  [\r\n    \"SA2.570.108\",\r\n    \"104:1\",\r\n    \"570,0 mm\",\r\n    \"332,0 mm\",\r\n    \"108,0 mm\",\r\n    \"285,0 mm\",\r\n    \"94,0 kNm\",\r\n    \"19,0 kNm\",\r\n    \"142,0 kNm\",\r\n    \"SA2570\"\r\n  ],\r\n  [\r\n    \"SA2.693.130\",\r\n    \"90:1\",\r\n    \"693,0 mm\",\r\n    \"431,0 mm\",\r\n    \"130,0 mm\",\r\n    \"339,0 mm\",\r\n    \"180,0 kNm\",\r\n    \"48,0 kNm\",\r\n    \"203,0 kNm\",\r\n    \"SA2693\"\r\n  ],\r\n  [\r\n    \"SA2.832.148\",\r\n    \"108:1\",\r\n    \"832,0 mm\",\r\n    \"512,0 mm\",\r\n    \"148,0 mm\",\r\n    \"416,0 mm\",\r\n    \"270,0 kNm\",\r\n    \"58,0 kNm\",\r\n    \"310,0 kNm\",\r\n    \"SA2832\"\r\n  ],\r\n  [\r\n    \"SAH346.105\",\r\n    \"77:15\",\r\n    \"346,0 mm\",\r\n    \"145,0 mm\",\r\n    \"105,0 mm\",\r\n    \"186,0 mm\",\r\n    \"- kNm\",\r\n    \"2,5 kNm\",\r\n    \"33,9 kNm\",\r\n    \"SAH346\"\r\n  ],\r\n  [\r\n    \"SAH471.108\",\r\n    \"108:15\",\r\n    \"471,0 mm\",\r\n    \"265,0 mm\",\r\n    \"108,0 mm\",\r\n    \"246,0 mm\",\r\n    \"- kNm\",\r\n    \"3,25 kNm\",\r\n    \"67,8 kNm\",\r\n    \"SAH471\"\r\n  ],\r\n  [\r\n    \"SAH532.84\",\r\n    \"8:1\",\r\n    \"532,0 mm\",\r\n    \"345,0 mm\",\r\n    \"84,0 mm\",\r\n    \"276,0 mm\",\r\n    \"- kNm\",\r\n    \"4,5 kNm\",\r\n    \"78 kNm\",\r\n    \"SAH532\"\r\n  ],\r\n  [\r\n    \"SAH610.113\",\r\n    \"95:15\",\r\n    \"610,0 mm\",\r\n    \"360,0 mm\",\r\n    \"113,0 mm\",\r\n    \"330,0 mm\",\r\n    \"- kNm\",\r\n    \"8,0 kNm\",\r\n    \"105 kNm\",\r\n    \"SAH610\"\r\n  ]\r\n];\r\nvar hmArray = [\r\n  [\r\n    \"Keine Auswahl\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\",\r\n    \"-\"\r\n  ],\r\n  [\r\n    \"STG009-230V-29NM-16\",\r\n    \"48,30\",\r\n    \"373,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,09 KW\",\r\n    \"29 U\/min\",\r\n    \"29 Nm\",\r\n    \"16x40 mm\",\r\n    \"D19\",\r\n    \"009kw\"\r\n  ],\r\n  [\r\n    \"STG009-230V-19NM-16\",\r\n    \"30,97\",\r\n    \"373,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,09 KW\",\r\n    \"46 U\/min\",\r\n    \"19 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"009kw\"\r\n  ],\r\n  [\r\n    \"STG009-230V-13NM-16\",\r\n    \"20,82\",\r\n    \"373,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,09 KW\",\r\n    \"68 U\/min\",\r\n    \"13 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"009kw\"\r\n  ],\r\n  [\r\n    \"STG012-230V-40NM-16\",\r\n    \"48,30\",\r\n    \"373,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,12 KW\",\r\n    \"29 U\/min\",\r\n    \"40 Nm\",\r\n    \"16x40 mm\",\r\n    \"D19\",\r\n    \"012kw\"\r\n  ],\r\n  [\r\n    \"STG012-230V-26NM-16\",\r\n    \"30,97\",\r\n    \"373,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,12 KW\",\r\n    \"45 U\/min\",\r\n    \"26 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"012kw\"\r\n  ],\r\n  [\r\n    \"STG012-230V-17NM-16\",\r\n    \"20,82\",\r\n    \"373,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,12 KW\",\r\n    \"67 U\/min\",\r\n    \"17 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"012kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-43NM-16\",\r\n    \"34,97\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"40 U\/min\",\r\n    \"43 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-38NM-16\",\r\n    \"30,97\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"45 U\/min\",\r\n    \"38 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-26NM-16\",\r\n    \"20,82\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"67 U\/min\",\r\n    \"26 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-20NM-16\",\r\n    \"16,00\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"87 U\/min\",\r\n    \"20 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-83NM-16\",\r\n    \"48,30\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"29 U\/min\",\r\n    \"83 Nm\",\r\n    \"16x40 mm\",\r\n    \"D19\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-53NM-16\",\r\n    \"30,97\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"45 U\/min\",\r\n    \"53 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-36NM-16\",\r\n    \"20,82\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"67 U\/min\",\r\n    \"36 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-28NM-16\",\r\n    \"16,00\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"87 U\/min\",\r\n    \"28 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-25NM-16\",\r\n    \"13,98\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"100 U\/min\",\r\n    \"25 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-124NM-16\",\r\n    \"48,30\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"29 U\/min\",\r\n    \"124 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-79NM-16\",\r\n    \"30,97\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"45 U\/min\",\r\n    \"79 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-53NM-16\",\r\n    \"20,82\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"67 U\/min\",\r\n    \"53 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-42NM-16\",\r\n    \"16,00\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"87 U\/min\",\r\n    \"42 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-38NM-16\",\r\n    \"13,98\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"100 U\/min\",\r\n    \"38 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-113NM-16\",\r\n    \"30,97\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"46 U\/min\",\r\n    \"113 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-98NM-16\",\r\n    \"25,00\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"55 U\/min\",\r\n    \"98 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-89NM-16\",\r\n    \"20,82\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"67 U\/min\",\r\n    \"89 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-69NM-16\",\r\n    \"16,00\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"87 U\/min\",\r\n    \"69 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-54NM-16\",\r\n    \"13,98\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"100 U\/min\",\r\n    \"54 Nm\",\r\n    \"16x40 mm\",\r\n    \"Z19\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-60NM\",\r\n    \"48,30\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"29 U\/min\",\r\n    \"60 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-36NM\",\r\n    \"30,97\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"48 U\/min\",\r\n    \"36 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-28NM\",\r\n    \"20,82\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"62 U\/min\",\r\n    \"28 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG018-230V-22NM\",\r\n    \"16,00\",\r\n    \"399,5 mm\",\r\n    \"117,8 mm\",\r\n    \"230\/400 V\",\r\n    \"0,18 KW\",\r\n    \"78 U\/min\",\r\n    \"22 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"018kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-83NM\",\r\n    \"48,30\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"29 U\/min\",\r\n    \"83 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-50NM\",\r\n    \"30,97\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"48 U\/min\",\r\n    \"50 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-39NM\",\r\n    \"20,82\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"62 U\/min\",\r\n    \"39 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-30NM\",\r\n    \"16,00\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"78 U\/min\",\r\n    \"30 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG025-230V-25NM\",\r\n    \"13,98\",\r\n    \"426,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,25 KW\",\r\n    \"100 U\/min\",\r\n    \"25 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"025kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-124NM\",\r\n    \"48,30\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"29 U\/min\",\r\n    \"124 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-74NM\",\r\n    \"30,97\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"48 U\/min\",\r\n    \"74 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-39NM\",\r\n    \"20,82\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"62 U\/min\",\r\n    \"39 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-45NM\",\r\n    \"16,00\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"78 U\/min\",\r\n    \"45 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG037-230V-37NM\",\r\n    \"13,98\",\r\n    \"449,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,37 KW\",\r\n    \"100 U\/min\",\r\n    \"37 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"037kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-134NM\",\r\n    \"34,97\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"39 U\/min\",\r\n    \"134 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-106NM\",\r\n    \"25,00\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"50 U\/min\",\r\n    \"106 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-82NM\",\r\n    \"20,82\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"62 U\/min\",\r\n    \"82 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-64NM\",\r\n    \"16,00\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"78 U\/min\",\r\n    \"64 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG055-230V-53NM\",\r\n    \"13,98\",\r\n    \"478,5 mm\",\r\n    \"137,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,55 KW\",\r\n    \"100 U\/min\",\r\n    \"53 Nm\",\r\n    \"25x40 mm\",\r\n    \"Z29\",\r\n    \"055kw\"\r\n  ],\r\n  [\r\n    \"STG075-230V-196NM\",\r\n    \"34,97\",\r\n    \"520,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,75 KW\",\r\n    \"29 U\/min\",\r\n    \"196 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"075kw\"\r\n  ],\r\n  [\r\n    \"STG075-230V-143NM\",\r\n    \"25,00\",\r\n    \"520,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,75 KW\",\r\n    \"39 U\/min\",\r\n    \"143 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"075kw\"\r\n  ],\r\n  [\r\n    \"STG075-230V-112NM\",\r\n    \"20,82\",\r\n    \"520,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,75 KW\",\r\n    \"50 U\/min\",\r\n    \"112 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"075kw\"\r\n  ],\r\n  [\r\n    \"STG075-230V-87NM\",\r\n    \"16,00\",\r\n    \"520,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,75 KW\",\r\n    \"62 U\/min\",\r\n    \"87 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"075kw\"\r\n  ],\r\n  [\r\n    \"STG075-230V-72NM\",\r\n    \"13,98\",\r\n    \"520,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,75 KW\",\r\n    \"78 U\/min\",\r\n    \"72 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"075kw\"\r\n  ],\r\n  [\r\n    \"STG075-230V-50NM\",\r\n    \"10,53\",\r\n    \"520,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"0,75 KW\",\r\n    \"100 U\/min\",\r\n    \"50 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"075kw\"\r\n  ],\r\n  [\r\n    \"STG110-230V-245NM\",\r\n    \"34,97\",\r\n    \"555,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,1 KW\",\r\n    \"29 U\/min\",\r\n    \"245 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"110kw\"\r\n  ],\r\n  [\r\n    \"STG110-230V-165NM\",\r\n    \"25,00\",\r\n    \"555,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,1 KW\",\r\n    \"39 U\/min\",\r\n    \"165 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"110kw\"\r\n  ],\r\n  [\r\n    \"STG110-230V-129NM\",\r\n    \"20,82\",\r\n    \"555,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,1 KW\",\r\n    \"50 U\/min\",\r\n    \"129 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"110kw\"\r\n  ],\r\n  [\r\n    \"STG110-230V-106NM\",\r\n    \"16,00\",\r\n    \"555,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,1 KW\",\r\n    \"62 U\/min\",\r\n    \"106 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"110kw\"\r\n  ],\r\n  [\r\n    \"STG110-230V-93NM\",\r\n    \"13,98\",\r\n    \"555,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,1 KW\",\r\n    \"78 U\/min\",\r\n    \"93 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"110kw\"\r\n  ],\r\n  [\r\n    \"STG110-230V-74NM\",\r\n    \"10,53\",\r\n    \"555,5 mm\",\r\n    \"158,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,1 KW\",\r\n    \"100 U\/min\",\r\n    \"74 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"110kw\"\r\n  ],\r\n  [\r\n    \"STG150-230V-245NM\",\r\n    \"25,00\",\r\n    \"585,5 mm\",\r\n    \"180,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,5 KW\",\r\n    \"39 U\/min\",\r\n    \"245 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"150kw\"\r\n  ],\r\n  [\r\n    \"STG150-230V-175NM\",\r\n    \"20,82\",\r\n    \"585,5 mm\",\r\n    \"180,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,5 KW\",\r\n    \"50 U\/min\",\r\n    \"175 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"150kw\"\r\n  ],\r\n  [\r\n    \"STG150-230V-144NM\",\r\n    \"16,00\",\r\n    \"585,5 mm\",\r\n    \"180,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,5 KW\",\r\n    \"62 U\/min\",\r\n    \"144 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"150kw\"\r\n  ],\r\n  [\r\n    \"STG150-230V-126NM\",\r\n    \"13,98\",\r\n    \"585,5 mm\",\r\n    \"180,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,5 KW\",\r\n    \"78 U\/min\",\r\n    \"126 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"150kw\"\r\n  ],\r\n  [\r\n    \"STG150-230V-100NM\",\r\n    \"10,53\",\r\n    \"585,5 mm\",\r\n    \"180,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,5 KW\",\r\n    \"100 U\/min\",\r\n    \"100 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"150kw\"\r\n  ],\r\n  [\r\n    \"STG150-230V-83NM\",\r\n    \"8,88\",\r\n    \"585,5 mm\",\r\n    \"180,0 mm\",\r\n    \"230\/400 V\",\r\n    \"1,5 KW\",\r\n    \"120 U\/min\",\r\n    \"83 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"150kw\"\r\n  ],\r\n  [\r\n    \"STG220-230V-210NM\",\r\n    \"20,82\",\r\n    \"635,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"2,2 KW\",\r\n    \"136 U\/min\",\r\n    \"210 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"220kw\"\r\n  ],\r\n  [\r\n    \"STG220-230V-179NM\",\r\n    \"16,00\",\r\n    \"635,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"2,2 KW\",\r\n    \"160 U\/min\",\r\n    \"179 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"220kw\"\r\n  ],\r\n  [\r\n    \"STG220-230V-152NM\",\r\n    \"13,98\",\r\n    \"635,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"2,2 KW\",\r\n    \"186 U\/min\",\r\n    \"152 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"220kw\"\r\n  ],\r\n  [\r\n    \"STG220-230V-131NM\",\r\n    \"10,53\",\r\n    \"635,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"2,2 KW\",\r\n    \"226 U\/min\",\r\n    \"131 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"220kw\"\r\n  ],\r\n  [\r\n    \"STG220-230V-112NM\",\r\n    \"8,88\",\r\n    \"635,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"2,2 KW\",\r\n    \"240 U\/min\",\r\n    \"112 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"220kw\"\r\n  ],\r\n  [\r\n    \"STG300-230V-205NM\",\r\n    \"17,39\",\r\n    \"675,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"3 KW\",\r\n    \"137 U\/min\",\r\n    \"205 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"300kw\"\r\n  ],\r\n  [\r\n    \"STG300-230V-179NM\",\r\n    \"13,98\",\r\n    \"675,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"3 KW\",\r\n    \"160 U\/min\",\r\n    \"179 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"300kw\"\r\n  ],\r\n  [\r\n    \"STG300-230V-154NM\",\r\n    \"11,97\",\r\n    \"675,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"3 KW\",\r\n    \"186 U\/min\",\r\n    \"154 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"300kw\"\r\n  ],\r\n  [\r\n    \"STG300-230V-127NM\",\r\n    \"10,53\",\r\n    \"675,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"3 KW\",\r\n    \"226 U\/min\",\r\n    \"127 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"300kw\"\r\n  ],\r\n  [\r\n    \"STG300-230V-119NM\",\r\n    \"8,88\",\r\n    \"675,5 mm\",\r\n    \"198,0 mm\",\r\n    \"230\/400 V\",\r\n    \"3 KW\",\r\n    \"240 U\/min\",\r\n    \"119 Nm\",\r\n    \"25x50 mm\",\r\n    \"Z29\",\r\n    \"300kw\"\r\n  ],\r\n  [\r\n    \"BMM8.16\",\r\n    \"8,2 cm\u00b3\/U\",\r\n    \"G 3\/8&quot;\",\r\n    \"100 bar\",\r\n    \"200 bar\",\r\n    \"500 U\/min\",\r\n    \"11 Nm\",\r\n    \"15 Nm\",\r\n    \"21 Nm\",\r\n    \"16 mm\",\r\n    \"bmm8\"\r\n  ],\r\n  [\r\n    \"BMM12.16\",\r\n    \"12,9 cm\u00b3\/U\",\r\n    \"G 3\/8&quot;\",\r\n    \"100 bar\",\r\n    \"200 bar\",\r\n    \"450 U\/min\",\r\n    \"16 Nm\",\r\n    \"23 Nm\",\r\n    \"23 Nm\",\r\n    \"16 mm\",\r\n    \"bmm12\"\r\n  ],\r\n  [\r\n    \"BMM20.16\",\r\n    \"19,9 cm\u00b3\/U\",\r\n    \"G 3\/8&quot;\",\r\n    \"100 bar\",\r\n    \"200 bar\",\r\n    \"400 U\/min\",\r\n    \"25 Nm\",\r\n    \"35 Nm\",\r\n    \"51 Nm\",\r\n    \"16 mm\",\r\n    \"bmm20\"\r\n  ],\r\n  [\r\n    \"BMM32.16\",\r\n    \"31,6 cm\u00b3\/U\",\r\n    \"G 3\/8&quot;\",\r\n    \"100 bar\",\r\n    \"200 bar\",\r\n    \"350 U\/min\",\r\n    \"40 Nm\",\r\n    \"57 Nm\",\r\n    \"64 Nm\",\r\n    \"16 mm\",\r\n    \"bmm32\"\r\n  ],\r\n  [\r\n    \"BMM40.16\",\r\n    \"39,8 cm\u00b3\/U\",\r\n    \"G 3\/8&quot;\",\r\n    \"90 bar\",\r\n    \"160 bar\",\r\n    \"300 U\/min\",\r\n    \"45 Nm\",\r\n    \"70 Nm\",\r\n    \"82 Nm\",\r\n    \"16 mm\",\r\n    \"bmm40\"\r\n  ],\r\n  [\r\n    \"BMM50.16\",\r\n    \"50,3 cm\u00b3\/U\",\r\n    \"G 3\/8&quot;\",\r\n    \"70 bar\",\r\n    \"160 bar\",\r\n    \"280 U\/min\",\r\n    \"46 Nm\",\r\n    \"88 Nm\",\r\n    \"100 Nm\",\r\n    \"16 mm\",\r\n    \"bmm50\"\r\n  ],\r\n  [\r\n    \"BMR50.25\",\r\n    \"51,7 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"400 U\/min\",\r\n    \"93 Nm\",\r\n    \"118 Nm\",\r\n    \"135 Nm\",\r\n    \"25 mm\",\r\n    \"bmr50\"\r\n  ],\r\n  [\r\n    \"BMR80.25\",\r\n    \"80,5 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"350 U\/min\",\r\n    \"152 Nm\",\r\n    \"189 Nm\",\r\n    \"215 Nm\",\r\n    \"25 mm\",\r\n    \"bmr80\"\r\n  ],\r\n  [\r\n    \"BMR100.25\",\r\n    \"100,5 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"300 U\/min\",\r\n    \"194 Nm\",\r\n    \"236 Nm\",\r\n    \"270 Nm\",\r\n    \"25 mm\",\r\n    \"bmr100\"\r\n  ],\r\n  [\r\n    \"BMR125.25\",\r\n    \"126,3 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"280 U\/min\",\r\n    \"237 Nm\",\r\n    \"295 Nm\",\r\n    \"335 Nm\",\r\n    \"25 mm\",\r\n    \"bmr125\"\r\n  ],\r\n  [\r\n    \"BMR160.25\",\r\n    \"160,8 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"250 U\/min\",\r\n    \"310 Nm\",\r\n    \"377 Nm\",\r\n    \"430 Nm\",\r\n    \"25 mm\",\r\n    \"bmr160\"\r\n  ],\r\n  [\r\n    \"BMR200.25\",\r\n    \"200,9 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"230 U\/min\",\r\n    \"359 Nm\",\r\n    \"470 Nm\",\r\n    \"540 Nm\",\r\n    \"25 mm\",\r\n    \"bmr200\"\r\n  ],\r\n  [\r\n    \"BMR250.25\",\r\n    \"252,6 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"200 U\/min\",\r\n    \"450 Nm\",\r\n    \"590 Nm\",\r\n    \"670 Nm\",\r\n    \"25 mm\",\r\n    \"bmr250\"\r\n  ],\r\n  [\r\n    \"BMR315.25\",\r\n    \"321,5 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"180 U\/min\",\r\n    \"570 Nm\",\r\n    \"740 Nm\",\r\n    \"860 Nm\",\r\n    \"25 mm\",\r\n    \"bmr315\"\r\n  ],\r\n  [\r\n    \"BMR400.25\",\r\n    \"401,9 cm\u00b3\/U\",\r\n    \"G 1\/2&quot;\",\r\n    \"140 bar\",\r\n    \"200 bar\",\r\n    \"160 U\/min\",\r\n    \"720 Nm\",\r\n    \"940 Nm\",\r\n    \"1080 Nm\",\r\n    \"25 mm\",\r\n    \"bmr400\"\r\n  ]\r\n];\r\n\r\nfunction getNumber(value) {\r\n  if (!value) return 0;\r\n  return parseFloat(String(value).replace(\",\", \".\").replace(\/[^0-9.]\/g, \"\")) || 0;\r\n}\r\n\r\nfunction ratioToNumber(value) {\r\n  if (!value) return 0;\r\n  return parseFloat(String(value).split(\":\")[0].replace(\",\", \".\")) || 0;\r\n}\r\n\r\nfunction isSaz(name) {\r\n  return String(name || \"\").startsWith(\"SAZ\");\r\n}\r\n\r\nfunction getSeriesFromName(name) {\r\n  const n = String(name || \"\");\r\n\r\n  if (n.startsWith(\"SA2\")) return \"Doppelschnecke\";\r\n  if (n.startsWith(\"SAH\")) return \"Schnell\";\r\n  if (n.startsWith(\"SAA\")) return \"Extrem\";\r\n  if (n.startsWith(\"SAL183\") || n.startsWith(\"SAL266\")) return \"Schwer\";\r\n  if (n.startsWith(\"SAL\")) return null;\r\n  if (n.startsWith(\"SA\")) return \"Schwer\";\r\n\r\n  return \"Sonstige\";\r\n}\r\n\r\nfunction buildSlewingDataFromOldArray() {\r\n  const result = {};\r\n\r\n  sdArray.forEach(row => {\r\n    const name = row[0];\r\n    if (!name || name === \"Keine Auswahl\" || isSaz(name)) return;\r\n\r\n    result[name] = {\r\n      ratio: ratioToNumber(row[1]),\r\n      ratioText: row[1] || \"\u2013\",\r\n      outerDiameter: row[2] || \"\u2013\",\r\n      innerDiameter: row[3] || \"\u2013\",\r\n      height: row[4] || \"\u2013\",\r\n      axisDistance: row[5] || \"\u2013\",\r\n      holdingTorque: row[6] || \"\u2013\",\r\n      outputTorque: row[7] || \"\u2013\",\r\n      tiltingMoment: row[8] || \"\u2013\",\r\n      cadBase: row[9] || \"\"\r\n    };\r\n  });\r\n\r\n  return result;\r\n}\r\n\r\nconst hydraulicPowerData = {\r\n  \/\/ BMM\r\n  \"BMM8.16\": \"2,6 KW\",\r\n  \"BMM12.16\": \"3,2 KW\",\r\n  \"BMM20.16\": \"3,2 KW\",\r\n  \"BMM32.16\": \"3,2 KW\",\r\n  \"BMM40.16\": \"3,2 KW\",\r\n  \"BMM50.16\": \"3,2 KW\",\r\n\r\n  \/\/ BMR\r\n  \"BMR50.25\": \"9,7 KW\",\r\n  \"BMR80.25\": \"11,5 KW\",\r\n  \"BMR100.25\": \"11,5 KW\",\r\n  \"BMR125.25\": \"11,5 KW\",\r\n  \"BMR160.25\": \"12,0 KW\",\r\n  \"BMR200.25\": \"10,0 KW\",\r\n  \"BMR250.25\": \"8,0 KW\",\r\n  \"BMR315.25\": \"7,0 KW\",\r\n  \"BMR400.25\": \"6,0 KW\"\r\n};\r\nfunction buildMotorDataFromOldArray() {\r\n  const result = {};\r\n\r\n  hmArray.forEach(row => {\r\n    const name = row[0];\r\n\r\n    if (!name || name === \"Keine Auswahl\") return;\r\n\r\n    const isHydraulic = name.startsWith(\"BMM\") || name.startsWith(\"BMR\");\r\n\r\n    result[name] = {\r\n      isHydraulic,\r\n\r\n      gearRatio: row[1] || \"\u2013\",\r\n      length: row[2] || \"\u2013\",\r\n      diameter: row[3] || \"\u2013\",\r\n      voltage: row[4] || \"\u2013\",\r\n\r\n      power: isHydraulic\r\n        ? (hydraulicPowerData[name] || \"\u2013\")\r\n        : (row[5] || \"\u2013\"),\r\n\r\n      powerValue: isHydraulic\r\n        ? getNumber(hydraulicPowerData[name] || \"0\")\r\n        : getNumber(row[5]),\r\n\r\n      speed: isHydraulic\r\n        ? getNumber(row[5])\r\n        : getNumber(row[6]),\r\n\r\n      speedText: isHydraulic\r\n        ? (row[5] || \"\u2013\")\r\n        : (row[6] || \"\u2013\"),\r\n\r\n      torque: isHydraulic\r\n        ? getNumber(row[6])\r\n        : getNumber(row[7]),\r\n\r\n      torqueText: isHydraulic\r\n        ? (row[6] || \"\u2013\")\r\n        : (row[7] || \"\u2013\"),\r\n\r\n      maxTorqueText: isHydraulic\r\n        ? (row[7] || \"\u2013\")\r\n        : (row[7] || \"\u2013\"),\r\n\r\n      peakTorqueText: isHydraulic\r\n        ? (row[8] || \"\u2013\")\r\n        : (row[7] || \"\u2013\"),\r\n\r\n      shaft: name.endsWith(\".16\")\r\n        ? \"16 mm\"\r\n        : name.endsWith(\".25\")\r\n          ? \"25 mm\"\r\n          : name.endsWith(\"-16\")\r\n            ? \"16x40 mm\"\r\n            : \"V25x50 mm\",\r\n\r\n      drawing: row[9] || \"\u2013\",\r\n      cadSuffix: row[10] || \"\",\r\n      raw: row\r\n    };\r\n  });\r\n\r\n  return result;\r\n}\r\n\r\nconst slewingData = buildSlewingDataFromOldArray();\r\nconst motorData = buildMotorDataFromOldArray();\r\n\r\nconst data = {\r\n  electric: {\r\n    label: \"Elektromotor\",\r\n    options: {}\r\n  },\r\n  hydraulic: {\r\n    label: \"Hydraulikmotor\",\r\n    options: {},\r\n    rotaryUnions: {}\r\n  }\r\n};\r\n\r\n\r\nconst rotaryUnionData = {\r\n  \"DD14.2.250\": { channels: \"2\", connection: \"G 1\/4\", pressure: \"250 bar\" },\r\n  \"DD14.4.250\": { channels: \"4\", connection: \"G 1\/4\", pressure: \"250 bar\" },\r\n  \"DD38.2.250\": { channels: \"2\", connection: \"G 3\/8\", pressure: \"250 bar\" },\r\n  \"DD38.4.250\": { channels: \"4\", connection: \"G 3\/8\", pressure: \"250 bar\" },\r\n  \"DD12.2.250\": { channels: \"2\", connection: \"G 1\/2\", pressure: \"250 bar\" },\r\n  \"DD12.4.250\": { channels: \"4\", connection: \"G 1\/2\", pressure: \"250 bar\" },\r\n  \"DD34.2.250\": { channels: \"2\", connection: \"G 3\/4\", pressure: \"250 bar\" },\r\n  \"DD34.4.250\": { channels: \"4\", connection: \"G 3\/4\", pressure: \"250 bar\" }\r\n};\r\n\r\nconst allRotaryUnions = Object.keys(rotaryUnionData);\r\n\r\nfunction configureRotaryUnions() {\r\n  data.hydraulic.rotaryUnions = {\r\n    Schwer: {\r\n      \"SAL266.81\": [\"DD14.2.250\"],\r\n      \"SA276.85\": [\"DD14.2.250\"],\r\n      \"SA350.82\": allRotaryUnions,\r\n      \"SA436.82\": allRotaryUnions,\r\n      \"SA470.82\": allRotaryUnions,\r\n      \"SA559.82\": allRotaryUnions,\r\n      \"SA625.108\": allRotaryUnions,\r\n      \"SA678.130\": allRotaryUnions,\r\n      \"SA776.130\": allRotaryUnions,\r\n      \"SA832.148\": allRotaryUnions\r\n    },\r\n    Extrem: {\r\n      \"SAA276.85\": [\"DD14.2.250\"],\r\n      \"SAA360.108\": allRotaryUnions,\r\n      \"SAA445.108\": allRotaryUnions,\r\n      \"SAA480.108\": allRotaryUnions,\r\n      \"SAA570.108\": allRotaryUnions,\r\n      \"SAA625.108\": allRotaryUnions,\r\n      \"SAA693.130\": allRotaryUnions,\r\n      \"SAA793.130\": allRotaryUnions\r\n    },\r\n    Doppelschnecke: {\r\n      \"SA2.480.108\": allRotaryUnions,\r\n      \"SA2.570.108\": allRotaryUnions,\r\n      \"SA2.693.130\": allRotaryUnions,\r\n      \"SA2.832.148\": allRotaryUnions\r\n    },\r\n    Schnell: {\r\n      \"SAH346.105\": allRotaryUnions,\r\n      \"SAH471.108\": allRotaryUnions,\r\n      \"SAH532.84\": allRotaryUnions,\r\n      \"SAH610.113\": allRotaryUnions\r\n    }\r\n  };\r\n}\r\n\r\nconfigureRotaryUnions();\r\n\r\nObject.keys(slewingData).forEach(sdName => {\r\n  const series = getSeriesFromName(sdName);\r\n  if (!series) return;\r\n\r\n  if (!data.electric.options[series]) data.electric.options[series] = {};\r\n  if (!data.hydraulic.options[series]) data.hydraulic.options[series] = {};\r\n\r\n  const isSmallDrive =\r\n    sdName.startsWith(\"SAL183\") ||\r\n    sdName.startsWith(\"SAL266\");\r\n\r\n  data.electric.options[series][sdName] =\r\n    Object.keys(motorData).filter(m => {\r\n      if (!m.startsWith(\"STG\")) return false;\r\n\r\n      const is16mmMotor = m.endsWith(\"-16\");\r\n\r\n      return isSmallDrive\r\n        ? is16mmMotor\r\n        : !is16mmMotor;\r\n    });\r\n\r\n  data.hydraulic.options[series][sdName] =\r\n    Object.keys(motorData).filter(m => {\r\n      if (isSmallDrive) {\r\n        return m.startsWith(\"BMM\");\r\n      }\r\n\r\n      return m.startsWith(\"BMR\");\r\n    });\r\n});\r\n\r\nif (slewingData[\"SA276.85\"]) {\r\n  const electricMotors = Object.keys(motorData).filter(m => {\r\n    return m.startsWith(\"STG\") && !m.endsWith(\"-16\");\r\n  });\r\n\r\n  const hydraulicMotors = Object.keys(motorData).filter(m => {\r\n    return m.startsWith(\"BMR\");\r\n  });\r\n\r\n  data.electric.options[\"Schwer\"] = {\r\n    \"SA276.85\": electricMotors,\r\n    ...data.electric.options[\"Schwer\"]\r\n  };\r\n\r\n  data.hydraulic.options[\"Schwer\"] = {\r\n    \"SA276.85\": hydraulicMotors,\r\n    ...data.hydraulic.options[\"Schwer\"]\r\n  };\r\n}\r\n\r\nfunction addOption(select, value, text, selected = false) {\r\n  const opt = document.createElement(\"option\");\r\n  opt.value = value;\r\n  opt.textContent = text;\r\n  opt.selected = selected;\r\n  select.appendChild(opt);\r\n}\r\n\r\nfunction currentMotorList() {\r\n  if (!state.driveType || !state.series || !state.slewingDrive) return [];\r\n  return (((data[state.driveType] || {}).options || {})[state.series] || {})[state.slewingDrive] || [];\r\n}\r\n\r\nfunction updateSelects() {\r\n  const slewing = document.getElementById(\"athSlewingDrive\");\r\n  const rotary = document.getElementById(\"athRotaryUnion\");\r\n\r\n  slewing.innerHTML = \"\";\r\n  rotary.innerHTML = \"\";\r\n\r\n  addOption(slewing, \"\", \"Bitte ausw\u00e4hlen\");\r\n  addOption(rotary, \"\", \"Keine \/ optional ausw\u00e4hlen\");\r\n\r\n  if (!state.driveType || !state.series) {\r\n    updateMotorPowerOptions();\r\n    renderMotorCandidates();\r\n    return;\r\n  }\r\n\r\n  const drives = data[state.driveType].options[state.series] || {};\r\n\r\n  Object.keys(drives)\r\n  .sort((a, b) => getNumber(a) - getNumber(b))\r\n  .forEach(name => {\r\n    addOption(\r\n      slewing,\r\n      name,\r\n      name,\r\n      state.slewingDrive === name\r\n    );\r\n  });\r\n\r\n  if (state.driveType === \"hydraulic\" && state.slewingDrive) {\r\n    const unions = (data.hydraulic.rotaryUnions[state.series] && data.hydraulic.rotaryUnions[state.series][state.slewingDrive]) || [];\r\n    unions.forEach(name => addOption(rotary, name, name, state.rotaryUnion === name));\r\n  }\r\n\r\n  updateMotorPowerOptions();\r\n  renderMotorCandidates();\r\n}\r\n\r\nfunction updateMotorPowerOptions() {\r\n  const select = document.getElementById(\"athMotorPower\");\r\n  if (!select) return;\r\n\r\n  const previous = state.motorPower;\r\n  select.innerHTML = \"\";\r\n\r\n  addOption(select, \"\", \"Alle Motorleistungen\");\r\n\r\n  const powers = [...new Set(\r\n    currentMotorList()\r\n      .map(name => motorData[name]?.power)\r\n      .filter(Boolean)\r\n      .filter(v => v !== \"\u2013\")\r\n  )];\r\n\r\n  powers.sort((a, b) => getNumber(a) - getNumber(b));\r\n  powers.forEach(p => addOption(select, p, p, p === previous));\r\n\r\n  if (previous && !powers.includes(previous)) {\r\n    state.motorPower = \"\";\r\n    select.value = \"\";\r\n  }\r\n}\r\n\r\nfunction getOutputSpeedForMotor(motorName) {\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[motorName];\r\n\r\n  if (!s || !m || !s.ratio || !m.speed) return null;\r\n  return m.speed \/ s.ratio;\r\n}\r\n\r\nfunction getFilteredMotorCandidates() {\r\n  const target = state.targetSpeed;\r\n  let list = currentMotorList().filter(name => motorData[name]);\r\n\r\n  if (state.motorPower) {\r\n    list = list.filter(name => motorData[name].power === state.motorPower);\r\n  }\r\n\r\n  return list\r\n    .map(name => {\r\n      const m = motorData[name];\r\n      const out = getOutputSpeedForMotor(name);\r\n\r\n      return {\r\n        name,\r\n        m,\r\n        out,\r\n        diff: target && out !== null ? Math.abs(out - target) : 0\r\n      };\r\n    })\r\n    .filter(x => x.out !== null)\r\n    .sort((a, b) => {\r\n      if (target) return a.diff - b.diff;\r\n      return getNumber(a.m.power) - getNumber(b.m.power) || b.m.torque - a.m.torque;\r\n    });\r\n}\r\n\r\nfunction renderMotorCandidates() {\r\n  const wrap = document.getElementById(\"athMotorCandidates\");\r\n  const hint = document.getElementById(\"athCandidateHint\");\r\n\r\n  if (!wrap) return;\r\n\r\n  wrap.innerHTML = \"\";\r\n\r\n  if (!state.slewingDrive) {\r\n    if (hint) hint.innerText = \"Bitte zuerst Schwenkantrieb w\u00e4hlen.\";\r\n    return;\r\n  }\r\n\r\n  const candidates = getFilteredMotorCandidates();\r\n\r\n  if (hint) {\r\n    const doubleMotorHint = isDoubleMotorSeries()\r\n      ? \" Bei dieser Baureihe werden 2 Motoren verwendet und berechnet.\"\r\n      : \"\";\r\n\r\n    if (!candidates.length) {\r\n      hint.innerText = \"Keine passenden Motoren f\u00fcr diese Auswahl gefunden.\" + doubleMotorHint;\r\n    } else if (state.targetSpeed) {\r\n      hint.innerText = `Sortiert nach N\u00e4he zu ${String(state.targetSpeed).replace(\".\", \",\")} U\/min.` + doubleMotorHint;\r\n    } else {\r\n      hint.innerText = \"Bitte gew\u00fcnschte Ausgangsdrehzahl eingeben oder direkt Motor w\u00e4hlen.\" + doubleMotorHint;\r\n    }\r\n  }\r\n\r\n  candidates.slice(0, 18).forEach(c => {\r\n    const btn = document.createElement(\"button\");\r\n\r\n    btn.type = \"button\";\r\n    btn.className = \"ath-motor-candidate\" + (state.motor === c.name ? \" active\" : \"\");\r\n    btn.dataset.motor = c.name;\r\n\r\n    btn.innerHTML = `\r\n      <strong>${formatMotorName(c.name)}<\/strong>\r\n\r\n      <div class=\"ath-motor-cell\">\r\n        <span>Menge<\/span>\r\n        <b>${formatMotorQtyLabel()}<\/b>\r\n      <\/div>\r\n\r\n      <div class=\"ath-motor-cell\">\r\n        <span>Ausgang<\/span>\r\n        <b>${c.out.toFixed(2).replace(\".\", \",\")} U\/min<\/b>\r\n      <\/div>\r\n\r\n      <div class=\"ath-motor-cell\">\r\n        <span>Leistung<\/span>\r\n        <b>${c.m.power || \"\u2013\"}<\/b>\r\n      <\/div>\r\n\r\n      <div class=\"ath-motor-cell\">\r\n        <span>Drehzahl<\/span>\r\n        <b>${c.m.speedText || \"\u2013\"}<\/b>\r\n      <\/div>\r\n\r\n      <div class=\"ath-motor-cell\">\r\n        <span>Ausgangsdrehmoment<\/span>\r\n        <b>${calculateTorqueForMotor(c.name)}<\/b>\r\n      <\/div>\r\n\r\n      <div class=\"ath-motor-select\">Ausw\u00e4hlen<\/div>\r\n    `;\r\n\r\n    btn.addEventListener(\"click\", () => {\r\n      state.motor = c.name;\r\n\r\n      updateSummary();\r\n      renderMotorCandidates();\r\n\r\n      setTimeout(() => {\r\n        scrollToMotorOptions();\r\n      }, 150);\r\n    });\r\n\r\n    wrap.appendChild(btn);\r\n  });\r\n}\r\n\r\nfunction getEfficiency() {\r\n  if (!state.slewingDrive) return 0.39;\r\n  if (state.slewingDrive.includes(\"SAH\")) return 0.95;\r\n  if (state.slewingDrive.includes(\"SA2\")) return 0.35;\r\n  return 0.39;\r\n}\r\n\r\nfunction calculateTorque() {\r\n  if (!state.slewingDrive || !state.motor) return \"\u2013\";\r\n\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[state.motor];\r\n  if (!s || !m) return \"nicht verf\u00fcgbar\";\r\n\r\n  return Math.round(m.torque * s.ratio * getEfficiency() * getMotorQuantity()).toLocaleString(\"de-DE\") + \" Nm\";\r\n}\r\n\r\nfunction calculateTorqueForMotor(motorName) {\r\n  if (!state.slewingDrive || !motorName) return \"\u2013\";\r\n\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[motorName];\r\n\r\n  if (!s || !m) return \"nicht verf\u00fcgbar\";\r\n\r\n  const torque = m.torque * s.ratio * getEfficiency() * getMotorQuantity();\r\n\r\n  return Math.round(torque).toLocaleString(\"de-DE\") + \" Nm\";\r\n}\r\n\r\nfunction calculateSpeed() {\r\n  if (!state.slewingDrive || !state.motor) return \"\u2013\";\r\n\r\n  const out = getOutputSpeedForMotor(state.motor);\r\n  if (out === null) return \"nicht verf\u00fcgbar\";\r\n\r\n  return out.toFixed(2).replace(\".\", \",\") + \" U\/min\";\r\n}\r\n\r\nfunction updateProgress() {\r\n  const progress = document.getElementById(\"athProgress\");\r\n  const resultItem = document.querySelector('[data-progress=\"result\"]');\r\n\r\n  if (progress) {\r\n    progress.classList.add(\"has-result\");\r\n  }\r\n\r\n  if (resultItem) {\r\n    resultItem.style.display = \"flex\";\r\n\r\n    resultItem.innerHTML =\r\n      `<span>5<\/span>${\r\n        state.driveType === \"hydraulic\"\r\n          ? \"Drehdurchf\u00fchrung\"\r\n          : \"Motoroptionen\"\r\n      }`;\r\n  }\r\n\r\n  const order = [\"drive\", \"series\", \"slewing\", \"motor\", \"result\"];\r\n\r\n  const active = !state.driveType\r\n    ? \"drive\"\r\n    : !state.series\r\n      ? \"series\"\r\n      : !state.slewingDrive\r\n        ? \"slewing\"\r\n        : !state.motor\r\n          ? \"motor\"\r\n          : \"result\";\r\n\r\n  document.querySelectorAll(\".ath-progress-item\").forEach(el => {\r\n    const key = el.dataset.progress;\r\n\r\n    el.classList.remove(\"active\", \"done\");\r\n\r\n    if (key === active) {\r\n      el.classList.add(\"active\");\r\n    }\r\n\r\n    if (\r\n      order.indexOf(key) > -1 &&\r\n      order.indexOf(key) < order.indexOf(active)\r\n    ) {\r\n      el.classList.add(\"done\");\r\n    }\r\n  });\r\n}\r\n\r\nfunction updateFactCards() {\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[state.motor];\r\n\r\n  document.getElementById(\"factRatio\").innerText = s ? s.ratioText : \"\u2013\";\r\n  document.getElementById(\"factTilting\").innerText = s ? s.tiltingMoment : \"\u2013\";\r\n  document.getElementById(\"factHolding\").innerText = s ? s.holdingTorque : \"\u2013\";\r\n  document.getElementById(\"factOuter\").innerText = s ? s.outerDiameter : \"\u2013\";\r\n\r\n  document.getElementById(\"factMotorPower\").innerText = m ? (isDoubleMotorSeries() ? \"2 \u00d7 \" + m.power : m.power) : \"\u2013\";\r\n  document.getElementById(\"factMotorSpeed\").innerText = m ? m.speedText : \"\u2013\";\r\n  document.getElementById(\"factMotorTorque\").innerText = m ? (isDoubleMotorSeries() ? \"2 \u00d7 \" + m.torqueText : m.torqueText) : \"\u2013\";\r\n  document.getElementById(\"factMotorShaft\").innerText = m ? (isDoubleMotorSeries() ? \"2 \u00d7 \" + m.shaft : m.shaft) : \"\u2013\";\r\n}\r\n\r\nfunction updateSummary() {\r\n  document.getElementById(\"sumDrive\").innerText = state.driveType ? data[state.driveType].label : \"\u2013\";\r\n  document.getElementById(\"sumSeries\").innerText = state.series || \"\u2013\";\r\n  document.getElementById(\"sumSlewing\").innerText = state.slewingDrive || \"\u2013\";\r\n  document.getElementById(\"sumMotor\").innerText = state.motor ? formatMotorName(state.motor) : \"\u2013\";\r\n  document.getElementById(\"sumTorque\").innerText = calculateTorque();\r\n  document.getElementById(\"sumSpeed\").innerText = calculateSpeed();\r\n\r\n  updateFactCards();\r\n  updateProgress();\r\n  updateSummaryOptions();\r\n  updateTotalPrice();\r\n}\r\n\r\nfunction updateSummaryOptions(){\r\n\r\n  const box = document.getElementById(\"summaryOptions\");\r\n  const list = document.getElementById(\"summaryOptionsList\");\r\n\r\n  if(!box || !list) return;\r\n\r\n  const options = [];\r\n\r\n  if(isDoubleMotorSeries()){\r\n    options.push(\"2 Motoren erforderlich\");\r\n  }\r\n\r\n  if(state.driveType === \"electric\"){\r\n\r\n    if(state.brake){\r\n      options.push(isDoubleMotorSeries() ? \"2 \u00d7 Haltebremse\" : \"Haltebremse\");\r\n    }\r\n\r\n    if(state.encoder){\r\n      options.push(isDoubleMotorSeries() ? \"2 \u00d7 Absolutwertgeber\" : \"Absolutwertgeber\");\r\n    }\r\n  }\r\n\r\n  if(state.driveType === \"hydraulic\" && state.rotaryUnion){\r\n    options.push(\"Drehdurchf\u00fchrung \" + state.rotaryUnion);\r\n  }\r\n\r\n  if(options.length === 0){\r\n\r\n    box.style.display = \"none\";\r\n    list.innerHTML = \"\";\r\n    return;\r\n  }\r\n\r\n  box.style.display = \"block\";\r\n\r\n  list.innerHTML = options\r\n    .map(option => `<div class=\"ath-option-pill\">${option}<\/div>`)\r\n    .join(\"\");\r\n}\r\n\r\nfunction scrollToStep(selector) {\r\n  const el = document.querySelector(selector);\r\n  if (!el) return;\r\n\r\n  const offset = window.innerWidth < 760 ? 150 : 190;\r\n  const y = el.getBoundingClientRect().top + window.pageYOffset - offset;\r\n\r\n  window.scrollTo({\r\n    top: y,\r\n    behavior: \"smooth\"\r\n  });\r\n}\r\n\r\nfunction scrollToSummary() {\r\n  if (window.innerWidth > 1200) return;\r\n\r\n  const el = document.querySelector(\".ath-summary\");\r\n  if (!el) return;\r\n\r\n  const y = el.getBoundingClientRect().top + window.pageYOffset - 150;\r\n\r\n  window.scrollTo({\r\n    top: y,\r\n    behavior: \"smooth\"\r\n  });\r\n}\r\n\r\nfunction scrollToMotorOptions() {\r\n  const selector = state.driveType === \"hydraulic\"\r\n    ? '[data-step=\"rotaryunion\"]'\r\n    : '[data-step=\"options\"]';\r\n\r\n  const el = document.querySelector(selector);\r\n  if (!el) return;\r\n\r\n  const offset = window.innerWidth < 760 ? 210 : 290;\r\n  const y = el.getBoundingClientRect().top + window.pageYOffset - offset;\r\n\r\n  window.scrollTo({\r\n    top: y,\r\n    behavior: \"smooth\"\r\n  });\r\n}\r\n\r\ndocument.querySelectorAll(\"[data-drive]\").forEach(btn => {\r\n  btn.addEventListener(\"click\", () => {\r\n    document.querySelectorAll(\"[data-drive]\").forEach(b => b.classList.remove(\"active\"));\r\n    btn.classList.add(\"active\");\r\n\r\n    state.driveType = btn.dataset.drive;\r\n    state.slewingDrive = null;\r\n    state.motor = null;\r\n    state.rotaryUnion = null;\r\n    state.motorPower = \"\";\r\n\r\n    document.querySelector(\".ath-electric-options\").style.display = state.driveType === \"electric\" ? \"block\" : \"none\";\r\n    document.querySelector(\".ath-hydraulic-options\").style.display = state.driveType === \"hydraulic\" ? \"block\" : \"none\";\r\n\r\n    updateSelects();\r\n    updateSummary();\r\n\r\n    setTimeout(() => scrollToStep('[data-step=\"series\"]'), 120);\r\n  });\r\n});\r\n\r\ndocument.querySelectorAll(\"[data-series]\").forEach(btn => {\r\n  btn.addEventListener(\"click\", () => {\r\n    document.querySelectorAll(\"[data-series]\").forEach(b => b.classList.remove(\"active\"));\r\n    btn.classList.add(\"active\");\r\n\r\n    state.series = btn.dataset.series;\r\n    state.slewingDrive = null;\r\n    state.motor = null;\r\n    state.rotaryUnion = null;\r\n    state.motorPower = \"\";\r\n\r\n    updateSelects();\r\n    updateSummary();\r\n\r\n    setTimeout(() => scrollToStep('[data-step=\"slewing\"]'), 120);\r\n  });\r\n});\r\n\r\ndocument.getElementById(\"athSlewingDrive\").addEventListener(\"change\", e => {\r\n  state.slewingDrive = e.target.value;\r\n  state.motor = null;\r\n  state.rotaryUnion = null;\r\n  state.motorPower = \"\";\r\n\r\n  updateSelects();\r\n  updateSummary();\r\n\r\n  if (state.slewingDrive) {\r\n    setTimeout(() => scrollToStep('[data-step=\"motor\"]'), 120);\r\n  }\r\n});\r\n\r\ndocument.getElementById(\"athTargetSpeed\").addEventListener(\"input\", e => {\r\n  state.targetSpeed = getNumber(e.target.value);\r\n  renderMotorCandidates();\r\n});\r\n\r\ndocument.getElementById(\"athMotorPower\").addEventListener(\"change\", e => {\r\n  state.motorPower = e.target.value;\r\n  state.motor = null;\r\n\r\n  updateSummary();\r\n  renderMotorCandidates();\r\n});\r\n\r\ndocument.getElementById(\"athRotaryUnion\").addEventListener(\"change\", e => {\r\n  state.rotaryUnion = e.target.value;\r\n  updateSummary();\r\n\r\n  setTimeout(() => {\r\n    scrollToSummary();\r\n  }, 150);\r\n});\r\n\r\ndocument.querySelectorAll(\".ath-option-btn\").forEach(btn => {\r\n  btn.addEventListener(\"click\", () => {\r\n    const option = btn.dataset.option;\r\n    const value = btn.dataset.value === \"true\";\r\n\r\n    document\r\n      .querySelectorAll(`.ath-option-btn[data-option=\"${option}\"]`)\r\n      .forEach(b => b.classList.remove(\"active\"));\r\n\r\n    btn.classList.add(\"active\");\r\n\r\n    if(option === \"brake\"){\r\n      state.brake = value;\r\n    }\r\n\r\n    if(option === \"encoder\"){\r\n      state.encoder = value;\r\n    }\r\n\r\n    updateSummary();\r\n  });\r\n});\r\n\r\ndocument.getElementById(\"cadDownloadBtn\").addEventListener(\"click\", () => {\r\n  if (!state.slewingDrive || !state.motor) {\r\n    alert(\"Bitte w\u00e4hlen Sie zuerst Schwenkantrieb und Motor aus.\");\r\n    return;\r\n  }\r\n\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[state.motor];\r\n\r\n  if (!s || !m || !s.cadBase || !m.cadSuffix || s.cadBase === \"-\" || m.cadSuffix === \"-\") {\r\n    alert(\"F\u00fcr diese Kombination ist kein CAD-Modell hinterlegt.\");\r\n    return;\r\n  }\r\n\r\n  window.open(\"https:\/\/athtechnik.de\/sdm_downloads\/\" + s.cadBase + \"-\" + m.cadSuffix, \"_blank\");\r\n});\r\n\r\nfunction getConfigurationText() {\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[state.motor];\r\n\r\n  return `Antriebsart: ${state.driveType ? data[state.driveType].label : \"\u2013\"}\r\nBaureihe: ${state.series || \"\u2013\"}\r\nSchwenkantrieb: ${state.slewingDrive || \"\u2013\"}\r\nGew\u00fcnschte Ausgangsdrehzahl: ${state.targetSpeed ? String(state.targetSpeed).replace(\".\", \",\") + \" U\/min\" : \"\u2013\"}\r\nMotor: ${state.motor ? formatMotorName(state.motor) : \"\u2013\"}\r\nMotoranzahl: ${state.motor ? formatMotorQtyLabel() : \"\u2013\"}\r\nMotorleistung: ${m ? (isDoubleMotorSeries() ? \"2 \u00d7 \" + m.power : m.power) : \"\u2013\"}\r\nMotordrehmoment: ${m ? (isDoubleMotorSeries() ? \"2 \u00d7 \" + m.torqueText : m.torqueText) : \"\u2013\"}\r\nAusgangsdrehmoment System: ${calculateTorque()}\r\nAusgangsdrehzahl System: ${calculateSpeed()}\r\nHaltebremse: ${state.driveType === \"electric\" ? (state.brake ? (isDoubleMotorSeries() ? \"Ja, 2 St\u00fcck\" : \"Ja\") : \"Nein\") : \"Nein\"}\r\nAbsolutwertgeber: ${state.driveType === \"electric\" ? (state.encoder ? (isDoubleMotorSeries() ? \"Ja, 2 St\u00fcck\" : \"Ja\") : \"Nein\") : \"Nein\"}\r\nDrehdurchf\u00fchrung: ${state.driveType === \"hydraulic\" ? (state.rotaryUnion || \"Keine\") : \"Keine\"}`;\r\n}\r\n\r\ndocument.getElementById(\"requestBtn\").addEventListener(\"click\", () => {\r\n  const txt = getConfigurationText();\r\n\r\n  const modalSummary = document.getElementById(\"athModalSummary\");\r\n  if (modalSummary) {\r\n    modalSummary.innerHTML = txt.replace(\/\\n\/g, \"<br>\");\r\n  }\r\n\r\n  const setCf7Value = (id, value) => {\r\n    const el = document.getElementById(id);\r\n    if (el) el.value = value || \"\";\r\n  };\r\n\r\n  setCf7Value(\"athCf7Config\", txt);\r\n  setCf7Value(\"athCf7Drive\", state.driveType ? data[state.driveType].label : \"\");\r\n  setCf7Value(\"athCf7Series\", state.series || \"\");\r\n  setCf7Value(\"athCf7Slewing\", state.slewingDrive || \"\");\r\n  setCf7Value(\"athCf7Motor\", state.motor ? formatMotorName(state.motor) : \"\");\r\n  setCf7Value(\"athCf7Torque\", calculateTorque());\r\n  setCf7Value(\"athCf7Speed\", calculateSpeed());\r\n\r\n  document.getElementById(\"athRequestModal\").classList.add(\"open\");\r\n  document.body.style.overflow = \"hidden\";\r\n});\r\n\r\nfunction closeAthModal() {\r\n  document.getElementById(\"athRequestModal\").classList.remove(\"open\");\r\n  document.body.style.overflow = \"\";\r\n}\r\n\r\ndocument.getElementById(\"athModalClose\").addEventListener(\"click\", closeAthModal);\r\n\r\ndocument.getElementById(\"athRequestModal\").addEventListener(\"click\", e => {\r\n  if (e.target.id === \"athRequestModal\") closeAthModal();\r\n});\r\n\r\ndocument.addEventListener(\"keydown\", e => {\r\n  if (e.key === \"Escape\") closeAthModal();\r\n});\r\n\r\nfunction getBrakePrice() {\r\n  if (!state.brake || state.driveType !== \"electric\" || !state.motor) return 0;\r\n\r\n  const m = motorData[state.motor];\r\n  if (!m) return 0;\r\n\r\n  const power = m.powerValue;\r\n  const is16mm = getMotorPriceSku().endsWith(\"-16\");\r\n\r\n  const brakePrices16 = {\r\n    0.09: 104.3185,\r\n    0.12: 104.3185,\r\n    0.18: 104.3185,\r\n    0.25: 104.3185,\r\n    0.37: 118.7355,\r\n    0.55: 118.7355\r\n  };\r\n\r\n  const brakePrices25 = {\r\n    0.09: 104.3185,\r\n    0.12: 104.3185,\r\n    0.18: 104.3185,\r\n    0.25: 104.3185,\r\n    0.37: 118.7355,\r\n    0.55: 118.7355,\r\n    0.75: 118.7355,\r\n    1.1: 170.4625,\r\n    1.5: 170.4625,\r\n    2.2: 185.7375,\r\n    3: 207.8755\r\n  };\r\n\r\n  const table = is16mm ? brakePrices16 : brakePrices25;\r\n  return table[power] || 0;\r\n}\r\n\r\nfunction getMotorPriceSku() {\r\n  if (!state.motor) return \"\";\r\n\r\n  let cleanMotor = cleanMotorNumber(state.motor);\r\n\r\n  const isSmallDrive =\r\n    state.slewingDrive &&\r\n    (\r\n      state.slewingDrive.startsWith(\"SAL183\") ||\r\n      state.slewingDrive.startsWith(\"SAL266\")\r\n    );\r\n\r\n  if (state.driveType === \"electric\") {\r\n    if (isSmallDrive) {\r\n      return cleanMotor.endsWith(\"-16\")\r\n        ? cleanMotor\r\n        : cleanMotor + \"-16\";\r\n    }\r\n\r\n    return cleanMotor.endsWith(\"-25\")\r\n      ? cleanMotor\r\n      : cleanMotor + \"-25\";\r\n  }\r\n\r\n  return cleanMotor;\r\n}\r\n\r\nfunction getFlangePriceSku() {\r\n  if (state.driveType !== \"electric\" || !state.motor) return \"\";\r\n\r\n  const m = motorData[state.motor];\r\n  if (!m || !m.raw) return \"\";\r\n\r\n  const flangeType = String(m.raw[9] || \"\").trim().toUpperCase();\r\n\r\n  const flangeMap = {\r\n    Z19: \"FL-Z19\",\r\n    Z29: \"FL-Z29\"\r\n  };\r\n\r\n  return flangeMap[flangeType] || \"\";\r\n}\r\n\r\nasync function generateDatasheet() {\r\n  if (!state.driveType || !state.series || !state.slewingDrive || !state.motor) {\r\n    alert(\"Bitte w\u00e4hlen Sie zuerst Antriebsart, Baureihe, Schwenkantrieb und Motor aus.\");\r\n    return;\r\n  }\r\n\r\n  const { jsPDF } = window.jspdf;\r\n  const doc = new jsPDF(\"p\", \"mm\", \"a4\");\r\n\r\n  const s = slewingData[state.slewingDrive];\r\n  const m = motorData[state.motor];\r\n\r\n  const articleNumber = getArticleNumber();\r\n  const cleanMotor = cleanMotorNumber(state.motor);\r\n\r\n  const logoUrl = \"https:\/\/ath-technik.de\/wp-content\/uploads\/2024\/07\/Logo-ATH-Technik_white_300px.png\";\r\n\r\n  let logoBase64 = null;\r\n\r\n  try {\r\n    logoBase64 = await imageToBase64(logoUrl);\r\n  } catch (e) {\r\n    console.warn(\"Logo konnte nicht geladen werden.\", e);\r\n  }\r\n\r\n  const blue = [0, 160, 192];\r\n  const dark = [13, 35, 54];\r\n  const lightGray = [245, 247, 249];\r\n  const midGray = [225, 225, 225];\r\n  const text = [35, 35, 35];\r\n\r\n  \/\/ Kopfbereich\r\n  doc.setFillColor(255, 255, 255);\r\n  doc.rect(0, 0, 210, 38, \"F\");\r\n\r\n  if (logoBase64) {\r\n    \/\/ Logo unverzerrt: nicht zu hoch skalieren\r\n    doc.addImage(logoBase64, \"PNG\", 16, 10, 42, 18.76);\r\n  } else {\r\n    doc.setTextColor(...dark);\r\n    doc.setFont(\"helvetica\", \"bold\");\r\n    doc.setFontSize(18);\r\n    doc.text(\"ATH Technik\", 16, 20);\r\n  }\r\n\r\n  doc.setTextColor(...dark);\r\n  doc.setFont(\"helvetica\", \"bold\");\r\n  doc.setFontSize(10);\r\n  doc.text(\"Konfigurationsblatt\", 150, 17);\r\n\r\n  doc.setFont(\"helvetica\", \"normal\");\r\n  doc.setFontSize(8);\r\n  doc.text(new Date().toLocaleDateString(\"de-DE\"), 150, 24);\r\n\r\n  doc.setDrawColor(...blue);\r\n  doc.setLineWidth(0.8);\r\n  doc.line(0, 38, 210, 38);\r\n\r\n  \/\/ Titel\r\n  doc.setTextColor(...dark);\r\n  doc.setFont(\"helvetica\", \"bold\");\r\n  doc.setFontSize(22);\r\n  doc.text(\"Schwenkantrieb-System\", 16, 54);\r\n\r\n  doc.setFont(\"helvetica\", \"normal\");\r\n  doc.setFontSize(9);\r\n  doc.setTextColor(100, 100, 100);\r\n  doc.text(\"Automatisch erzeugt aus dem ATH Schwenkantrieb-Konfigurator\", 16, 61);\r\n\r\n  \/\/ Artikelnummer\r\n  doc.setFillColor(...lightGray);\r\n  doc.roundedRect(16, 70, 178, 24, 3, 3, \"F\");\r\n\r\n  doc.setTextColor(100, 100, 100);\r\n  doc.setFont(\"helvetica\", \"bold\");\r\n  doc.setFontSize(8);\r\n  doc.text(\"ARTIKELNUMMER\", 22, 79);\r\n\r\n  doc.setTextColor(...dark);\r\n  doc.setFontSize(13);\r\n  doc.text(articleNumber, 22, 87);\r\n\r\n  let y = 108;\r\n\r\n  function sectionTitle(title) {\r\n    doc.setTextColor(...dark);\r\n    doc.setFont(\"helvetica\", \"bold\");\r\n    doc.setFontSize(12);\r\n    doc.text(title, 16, y);\r\n    y += 8;\r\n  }\r\n\r\n  function row(label, value) {\r\n    const safeValue = value || \"\u2013\";\r\n\r\n    doc.setDrawColor(...midGray);\r\n    doc.setLineWidth(0.15);\r\n    doc.line(16, y + 4, 194, y + 4);\r\n\r\n    doc.setTextColor(95, 95, 95);\r\n    doc.setFont(\"helvetica\", \"bold\");\r\n    doc.setFontSize(9);\r\n    doc.text(label, 16, y);\r\n\r\n    doc.setTextColor(...text);\r\n    doc.setFont(\"helvetica\", \"normal\");\r\n    doc.setFontSize(9.5);\r\n\r\n    const lines = doc.splitTextToSize(String(safeValue), 92);\r\n    doc.text(lines, 98, y);\r\n\r\n    y += Math.max(9, lines.length * 5.2);\r\n  }\r\n\r\n  \/\/ Konfiguration als Liste\r\n  sectionTitle(\"Konfiguration\");\r\n\r\n  row(\"Antriebsart\", data[state.driveType].label);\r\n  row(\"Baureihe\", state.series);\r\n  row(\"Schwenkantrieb\", state.slewingDrive);\r\n  row(\"Motorisierung\", formatMotorName(state.motor));\r\n  row(\"Motoranzahl\", formatMotorQtyLabel());\r\n\r\n  row(\"Absolutwertgeber\", state.driveType === \"electric\" && state.encoder ? (isDoubleMotorSeries() ? \"Ja, 2 St\u00fcck\" : \"Ja\") : \"Nein\");\r\n  row(\"Haltebremse\", state.driveType === \"electric\" && state.brake ? (isDoubleMotorSeries() ? \"Ja, 2 St\u00fcck\" : \"Ja\") : \"Nein\");\r\n  row(\"Drehdurchf\u00fchrung\", state.driveType === \"hydraulic\" ? (state.rotaryUnion || \"Keine\") : \"Keine\");\r\n\r\n  row(\"Motorleistung\", isDoubleMotorSeries() ? \"2 \u00d7 \" + m.power : m.power);\r\n  row(\"Motordrehmoment\", isDoubleMotorSeries() ? \"2 \u00d7 \" + m.torqueText : m.torqueText);\r\n  row(\"Abtriebswelle\", isDoubleMotorSeries() ? \"2 \u00d7 \" + m.shaft : m.shaft);\r\n\r\n  row(\"Haltedrehmoment Schwenkantrieb\", s.holdingTorque);\r\n  row(\"Max. Ausgangsdrehmoment Schwenkantrieb\", s.outputTorque);\r\n\r\n  y += 8;\r\n\r\n  \/\/ Leistungsdaten\r\n  sectionTitle(\"Berechnete Leistungsdaten\");\r\n\r\n  doc.setFillColor(...dark);\r\n  doc.roundedRect(16, y, 178, 36, 3, 3, \"F\");\r\n\r\n  doc.setTextColor(255, 255, 255);\r\n  doc.setFont(\"helvetica\", \"bold\");\r\n  doc.setFontSize(8);\r\n  doc.text(\"AUSGANGSDREHMOMENT\", 24, y + 12);\r\n  doc.text(\"AUSGANGSDREHZAHL\", 112, y + 12);\r\n\r\n  doc.setFontSize(16);\r\n  doc.text(calculateTorque(), 24, y + 26);\r\n  doc.text(calculateSpeed(), 112, y + 26);\r\n\r\n  y += 52;\r\n\r\n  \/\/ Hinweis\r\n  doc.setFillColor(250, 250, 250);\r\n  doc.roundedRect(16, y, 178, 26, 2.5, 2.5, \"F\");\r\n\r\n  doc.setTextColor(90, 90, 90);\r\n  doc.setFont(\"helvetica\", \"normal\");\r\n  doc.setFontSize(8);\r\n\r\n  const note =\r\n    \"Hinweis: Dieses Konfigurationsblatt dient der technischen Vorauswahl. Die berechneten Werte sind unverbindlich. Finale technische Pr\u00fcfung, Auslegung und Angebotsfreigabe erfolgen durch ATH Technik.\";\r\n\r\n  doc.text(doc.splitTextToSize(note, 168), 21, y + 8);\r\n\r\n  \/\/ Footer\r\n  doc.setDrawColor(...blue);\r\n  doc.setLineWidth(0.8);\r\n  doc.line(16, 278, 194, 278);\r\n\r\n  doc.setTextColor(90, 90, 90);\r\n  doc.setFontSize(8);\r\n  doc.text(\"ATH Technik GmbH | www.ath-technik.de\", 16, 285);\r\n  doc.text(\"Technische \u00c4nderungen vorbehalten.\", 139, 285);\r\n\r\n  doc.save(\"ATH_Konfigurationsblatt_\" + articleNumber + \".pdf\");\r\n}\r\n\r\ndocument.getElementById(\"datasheetBtn\").addEventListener(\"click\", generateDatasheet);\r\n\r\nupdateSelects();\r\nupdateSummary();\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Online-Konfigurator Schwenkantrieb-Konfigurator f\u00fcr Elektro- und Hydraulikantriebe Ihr Schwenkantrieb. Individuell ausgelegt. W\u00e4hlen Sie Antriebsart, Baureihe, Schwenkantrieb und die passende Motorisierung. Das System berechnet automatisch die relevanten technischen Kennwerte Ihrer Konfiguration. 1 Antrieb 2 Baureihe 3 Schwenkantrieb 4 Motorisierung 5 Motoroptionen 1. Antriebsart w\u00e4hlen Elektromotor Stirnradgetriebemotor mit optionaler Haltebremse Hydraulikmotor BMM \/ BMR Hydraulikmotor mit optionaler Drehdurchf\u00fchrung [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15721,"parent":61,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ocean_front_end_style_editor":"no","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"on","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":""},"class_list":["post-10225","page","type-page","status-publish","has-post-thumbnail","hentry","entry","has-media","owp-thumbs-layout-horizontal","owp-btn-normal","owp-tabs-layout-horizontal","has-no-thumbnails"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/pages\/10225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/comments?post=10225"}],"version-history":[{"count":3,"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/pages\/10225\/revisions"}],"predecessor-version":[{"id":18002,"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/pages\/10225\/revisions\/18002"}],"up":[{"embeddable":true,"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/pages\/61"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/media\/15721"}],"wp:attachment":[{"href":"https:\/\/ath-technik.de\/en\/wp-json\/wp\/v2\/media?parent=10225"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}