{"id":104,"date":"2026-02-08T15:14:07","date_gmt":"2026-02-08T14:14:07","guid":{"rendered":"https:\/\/oraven.com\/new_page\/?page_id=104"},"modified":"2026-06-11T12:47:59","modified_gmt":"2026-06-11T10:47:59","slug":"kontakt","status":"publish","type":"page","link":"https:\/\/oraven.com\/oraven\/kontakt\/","title":{"rendered":"Kontakt"},"content":{"rendered":"    \n    <style>\n    .oraven-contact-section {\n        --contact-orange: #E87800;\n        --contact-orange-dark: #D96E00;\n        --contact-heading: #1F2328;\n        --contact-text: #5F5F5F;\n        --contact-muted: #8A8A8A;\n        --contact-line: #E3E6EA;\n        position: relative;\n        max-width: 1200px;\n        margin: 0 auto;\n        padding: clamp(42px, 6vw, 72px) 20px clamp(60px, 8vw, 96px);\n    }\n    \n    .oraven-contact-header {\n        position: relative;\n        max-width: 760px;\n        margin-bottom: clamp(34px, 5vw, 52px);\n        padding-left: 20px;\n        text-align: left;\n    }\n\n    .oraven-contact-header::before {\n        content: \"\";\n        position: absolute;\n        top: 3px;\n        bottom: 2px;\n        left: 0;\n        width: 3px;\n        border-radius: 999px;\n        background: linear-gradient(180deg, var(--contact-orange), rgba(232,120,0,.2));\n    }\n    \n    .oraven-contact-header h1 {\n        margin: 0 0 12px;\n        color: var(--contact-heading);\n        font-size: clamp(34px, 4.2vw, 50px);\n        font-weight: 650;\n        letter-spacing: -.03em;\n        line-height: 1.08;\n    }\n    \n    .oraven-contact-header p {\n        max-width: 650px;\n        margin: 0;\n        color: var(--contact-text);\n        font-size: 17px;\n        line-height: 1.65;\n    }\n    \n    .oraven-contact-wrapper {\n        display: grid;\n        grid-template-columns: minmax(310px, .82fr) minmax(0, 1.18fr);\n        gap: 24px;\n        align-items: stretch;\n    }\n    \n    @media (max-width: 968px) {\n        .oraven-contact-wrapper {\n            grid-template-columns: 1fr;\n            gap: 40px;\n        }\n    }\n    \n    \/* Kontaktinformationen *\/\n    .oraven-contact-info {\n        position: relative;\n        isolation: isolate;\n        overflow: hidden;\n        padding: clamp(30px, 4vw, 44px);\n        color: var(--contact-heading);\n        background:\n            linear-gradient(145deg, rgba(255,255,255,.62), transparent 44%),\n            linear-gradient(145deg, #F3F5F6 0%, #F8F9FA 72%);\n        border: 1px solid var(--contact-line);\n        border-radius: 20px;\n        box-shadow: 0 16px 38px rgba(20,24,28,.07);\n    }\n\n    .oraven-contact-info::before {\n        content: \"\";\n        position: absolute;\n        z-index: -1;\n        top: -110px;\n        right: -100px;\n        width: 270px;\n        height: 270px;\n        background: radial-gradient(circle, rgba(31,35,40,.055), transparent 68%);\n        pointer-events: none;\n    }\n\n    .oraven-contact-info::after {\n        content: \"ORAVEN\";\n        position: absolute;\n        z-index: -1;\n        right: -12px;\n        bottom: -18px;\n        color: rgba(31,35,40,.035);\n        font-size: 76px;\n        font-weight: 800;\n        letter-spacing: .06em;\n        line-height: 1;\n        pointer-events: none;\n    }\n    \n    .oraven-contact-info h2 {\n        position: relative;\n        margin: 0 0 28px;\n        padding-bottom: 18px;\n        color: var(--contact-heading);\n        font-size: clamp(23px, 2.5vw, 29px);\n        font-weight: 650;\n        letter-spacing: -.015em;\n    }\n\n    .oraven-contact-info h2::after {\n        content: \"\";\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        width: 46px;\n        height: 2px;\n        background: var(--contact-orange);\n    }\n    \n    .contact-info-item {\n        display: flex;\n        align-items: center;\n        gap: 16px;\n        margin: 0;\n        padding: 17px 0;\n        border-bottom: 1px solid var(--contact-line);\n    }\n    \n    .contact-info-item:last-child {\n        border-bottom: 0;\n    }\n    \n    .contact-info-icon {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 44px;\n        height: 44px;\n        flex-shrink: 0;\n        margin: 0;\n        background: rgba(232,120,0,.09);\n        border: 1px solid rgba(232,120,0,.2);\n        border-radius: 12px;\n    }\n    \n    .contact-info-icon svg {\n        width: 20px;\n        height: 20px;\n        fill: var(--contact-orange);\n    }\n    \n    .contact-info-content h3 {\n        margin: 0 0 3px;\n        color: var(--contact-muted);\n        font-size: 11px;\n        font-weight: 700;\n        letter-spacing: .1em;\n        line-height: 1.3;\n        text-transform: uppercase;\n    }\n    \n    .contact-info-content p,\n    .contact-info-content a {\n        margin: 0;\n        color: var(--contact-text);\n        font-size: 15px;\n        line-height: 1.55;\n    }\n    \n    .contact-info-content a {\n        color: var(--contact-heading);\n        text-decoration: none;\n        transition: color .2s ease;\n    }\n    \n    .contact-info-content a:hover {\n        color: var(--contact-orange);\n        text-decoration: none;\n    }\n    \n    \/* Kontaktformular *\/\n    .oraven-contact-form {\n        position: relative;\n        overflow: hidden;\n        padding: clamp(30px, 4vw, 44px);\n        background: #fff;\n        border: 1px solid var(--contact-line);\n        border-radius: 20px;\n        box-shadow: 0 18px 42px rgba(20,24,28,.085);\n    }\n\n    .oraven-contact-form::before {\n        content: \"\";\n        position: absolute;\n        top: 0;\n        right: 0;\n        left: 0;\n        height: 3px;\n        background: linear-gradient(90deg, var(--contact-orange), rgba(232,120,0,.16) 70%, transparent);\n    }\n    \n    .oraven-contact-form h2 {\n        margin: 0 0 28px;\n        color: var(--contact-heading);\n        font-size: clamp(23px, 2.5vw, 29px);\n        font-weight: 650;\n        letter-spacing: -.015em;\n    }\n    \n    .form-group {\n        margin-bottom: 20px;\n    }\n\n    .oraven-form-row {\n        display: grid;\n        grid-template-columns: 1fr 1fr;\n        gap: 16px;\n    }\n\n    .oraven-form-row .form-group {\n        min-width: 0;\n    }\n    \n    .form-group label {\n        display: block;\n        margin-bottom: 8px;\n        color: var(--contact-heading);\n        font-size: 13px;\n        font-weight: 650;\n    }\n    \n    .form-group label .required {\n        color: #dc3545;\n        margin-left: 3px;\n    }\n    \n    .form-group input[type=\"text\"],\n    .form-group input[type=\"email\"],\n    .form-group input[type=\"tel\"],\n    .form-group textarea,\n    .form-group select {\n        width: 100%;\n        min-height: 48px;\n        padding: 12px 14px;\n        color: var(--contact-heading);\n        font-size: 15px;\n        font-family: inherit;\n        background: #F7F8F9;\n        border: 1px solid #DFE3E7;\n        border-radius: 10px;\n        transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;\n    }\n    \n    .form-group input:focus,\n    .form-group textarea:focus,\n    .form-group select:focus {\n        outline: none;\n        background: #fff;\n        border-color: var(--contact-orange);\n        box-shadow: 0 0 0 3px rgba(232,120,0,.11);\n    }\n    \n    .form-group textarea {\n        min-height: 150px;\n        resize: vertical;\n    }\n    \n    .form-group.has-error input,\n    .form-group.has-error textarea,\n    .form-group.has-error select {\n        border-color: #dc3545;\n    }\n    \n    .form-error {\n        color: #dc3545;\n        font-size: 0.875rem;\n        margin-top: 5px;\n        display: none;\n    }\n    \n    .form-group.has-error .form-error {\n        display: block;\n    }\n    \n    .form-checkbox {\n        display: flex;\n        align-items: start;\n        gap: 10px;\n        margin-bottom: 25px;\n    }\n    \n    .form-checkbox input[type=\"checkbox\"] {\n        accent-color: var(--contact-orange);\n        margin-top: 4px;\n        width: 18px;\n        height: 18px;\n        cursor: pointer;\n    }\n    \n    .form-checkbox label {\n        margin: 0;\n        font-size: 0.9rem;\n        color: #666;\n        cursor: pointer;\n    }\n    \n    .form-checkbox a {\n        color: var(--contact-orange);\n        text-decoration: none;\n    }\n    \n    .form-checkbox a:hover {\n        text-decoration: underline;\n    }\n    \n    .form-submit {\n        text-align: left;\n    }\n    \n    .submit-button {\n        min-height: 48px;\n        background: var(--contact-orange);\n        color: white;\n        padding: 13px 24px;\n        border: none;\n        border-radius: 10px;\n        font-size: 15px;\n        font-weight: 700;\n        cursor: pointer;\n        transition: background .2s ease, transform .2s ease, box-shadow .2s ease;\n        display: inline-flex;\n        align-items: center;\n        gap: 10px;\n    }\n    \n    .submit-button:hover {\n        background: var(--contact-orange-dark);\n        transform: translateY(-2px);\n        box-shadow: 0 10px 22px rgba(232,120,0,.22);\n    }\n    \n    .submit-button:active {\n        transform: translateY(0);\n    }\n    \n    .submit-button:disabled {\n        background: #ccc;\n        cursor: not-allowed;\n        transform: none;\n    }\n    \n    .form-message {\n        padding: 15px 20px;\n        border-radius: 8px;\n        margin-bottom: 25px;\n        display: none;\n    }\n    \n    .form-message.success {\n        background: #d4edda;\n        color: #155724;\n        border: 1px solid #c3e6cb;\n        display: block;\n    }\n    \n    .form-message.error {\n        background: #f8d7da;\n        color: #721c24;\n        border: 1px solid #f5c6cb;\n        display: block;\n    }\n    \n    \/* Honeypot (Spam-Schutz) *\/\n    .oraven-hp {\n        position: absolute;\n        left: -9999px;\n        opacity: 0;\n        pointer-events: none;\n    }\n    \n    @media (max-width: 768px) {\n        .oraven-contact-section {\n            padding: 36px 18px 56px;\n        }\n        \n        .oraven-contact-header h1 {\n            font-size: 34px;\n        }\n        \n        .oraven-contact-info,\n        .oraven-contact-form {\n            padding: 28px 22px;\n        }\n\n        .oraven-form-row {\n            grid-template-columns: 1fr;\n            gap: 0;\n        }\n    }\n    <\/style>\n    \n    <div class=\"oraven-contact-section\">\n        \n        <div class=\"oraven-contact-header\">\n            <h1>Kontaktieren Sie uns<\/h1>\n                    <\/div>\n        \n        <div class=\"oraven-contact-wrapper\">\n            \n            <!-- Kontaktinformationen -->\n            <div class=\"oraven-contact-info\">\n                <h2>Kontaktinformationen<\/h2>\n                \n                                <div class=\"contact-info-item\">\n                    <div class=\"contact-info-icon\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\">\n                            <path d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"contact-info-content\">\n                        <h3>E-Mail<\/h3>\n                        <a href=\"mailto:team@oraven.com\">\n                            team@oraven.com                        <\/a>\n                    <\/div>\n                <\/div>\n                                \n                                <div class=\"contact-info-item\">\n                    <div class=\"contact-info-icon\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\">\n                            <path d=\"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"contact-info-content\">\n                        <h3>Telefon<\/h3>\n                        <a href=\"tel:+49553491040\">\n                            +49 5534 9104 0                        <\/a>\n                    <\/div>\n                <\/div>\n                                \n                                <div class=\"contact-info-item\">\n                    <div class=\"contact-info-icon\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\">\n                            <path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"contact-info-content\">\n                        <h3>Adresse<\/h3>\n                        <p>ORAVEN GmbH<br \/>\r\nBruchweg 22-24<br \/>\r\nD-37632 Eschershausen<br \/>\r\nGermany<br \/>\r\n<\/p>\n                    <\/div>\n                <\/div>\n                                \n                            <\/div>\n            \n            <!-- Kontaktformular -->\n            <div class=\"oraven-contact-form\">\n                <h2>Nachricht senden<\/h2>\n                \n                                \n                                \n                <form method=\"post\" action=\"\" id=\"oraven-contact-form\">\n                    <input type=\"hidden\" id=\"oraven_contact_nonce\" name=\"oraven_contact_nonce\" value=\"bfff36dc2f\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/oraven\/wp-json\/wp\/v2\/pages\/104\" \/>                    \n                    <!-- Honeypot Feld (versteckt f\u00fcr Bots) -->\n                    <input type=\"text\" name=\"oraven_website\" class=\"oraven-hp\" aria-hidden=\"true\" tabindex=\"-1\" autocomplete=\"off\">\n                    \n                    <div class=\"oraven-form-row\">\n                        <div class=\"form-group\">\n                            <label for=\"contact_name\">Name <span class=\"required\">*<\/span><\/label>\n                            <input type=\"text\" id=\"contact_name\" name=\"contact_name\" maxlength=\"200\"\n                                   value=\"\"\n                                   required>\n                        <\/div>\n                        \n                        <div class=\"form-group\">\n                            <label for=\"contact_email\">E-Mail <span class=\"required\">*<\/span><\/label>\n                            <input type=\"email\" id=\"contact_email\" name=\"contact_email\" maxlength=\"254\"\n                                   value=\"\"\n                                   required>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"oraven-form-row\">\n                        <div class=\"form-group\">\n                            <label for=\"contact_phone\">Telefon<\/label>\n                            <input type=\"tel\" id=\"contact_phone\" name=\"contact_phone\" maxlength=\"80\"\n                                   value=\"\">\n                        <\/div>\n                        \n                        <div class=\"form-group\">\n                            <label for=\"contact_subject\">Betreff<\/label>\n                            <select id=\"contact_subject\" name=\"contact_subject\">\n                                <option value=\"Allgemeine Anfrage\" >Allgemeine Anfrage<\/option>\n                                <option value=\"Produktinformation\" >Produktinformation<\/option>\n                                <option value=\"Angebot anfordern\" >Angebot anfordern<\/option>\n                                <option value=\"Technischer Support\" >Technischer Support<\/option>\n                                <option value=\"Sonstiges\" >Sonstiges<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"form-group\">\n                        <label for=\"contact_message\">Ihre Nachricht <span class=\"required\">*<\/span><\/label>\n                        <textarea id=\"contact_message\" name=\"contact_message\" maxlength=\"10000\" required><\/textarea>\n                    <\/div>\n                    \n                    <div class=\"form-checkbox\">\n                        <input type=\"checkbox\" id=\"contact_privacy\" name=\"contact_privacy\" required>\n                        <label for=\"contact_privacy\">\n                            Ich habe die <a href=\"https:\/\/oraven.com\/oraven\/datenschutz\/\" target=\"_blank\" rel=\"noopener\">Datenschutzerkl\u00e4rung<\/a> gelesen und akzeptiere sie. <span class=\"required\">*<\/span>\n                        <\/label>\n                    <\/div>\n                    \n                    <div class=\"form-submit\">\n                        <button type=\"submit\" name=\"oraven_contact_submit\" class=\"submit-button\">\n                            <span>Nachricht senden<\/span>\n                            <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"><\/line>\n                                <polygon points=\"22 2 15 22 11 13 2 9 22 2\"><\/polygon>\n                            <\/svg>\n                        <\/button>\n                    <\/div>\n                <\/form>\n            <\/div>\n            \n        <\/div>\n        \n    <\/div>\n    \n    <script>\n    \/\/ Formular-Validierung\n    document.addEventListener('DOMContentLoaded', function() {\n        const form = document.getElementById('oraven-contact-form');\n        if (form) {\n            form.addEventListener('submit', function(e) {\n                let isValid = true;\n                \n                \/\/ Name Validierung\n                const nameInput = document.getElementById('contact_name');\n                if (nameInput.value.trim() === '') {\n                    isValid = false;\n                    nameInput.parentElement.classList.add('has-error');\n                } else {\n                    nameInput.parentElement.classList.remove('has-error');\n                }\n                \n                \/\/ E-Mail Validierung\n                const emailInput = document.getElementById('contact_email');\n                const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n                if (!emailRegex.test(emailInput.value)) {\n                    isValid = false;\n                    emailInput.parentElement.classList.add('has-error');\n                } else {\n                    emailInput.parentElement.classList.remove('has-error');\n                }\n                \n                \/\/ Nachricht Validierung\n                const messageInput = document.getElementById('contact_message');\n                if (messageInput.value.trim() === '') {\n                    isValid = false;\n                    messageInput.parentElement.classList.add('has-error');\n                } else {\n                    messageInput.parentElement.classList.remove('has-error');\n                }\n                \n                \/\/ Datenschutz Validierung\n                const privacyCheckbox = document.getElementById('contact_privacy');\n                if (!privacyCheckbox.checked) {\n                    isValid = false;\n                    alert(\"Bitte akzeptieren Sie die Datenschutzerkl\\u00e4rung.\");\n                }\n                \n                if (!isValid) {\n                    e.preventDefault();\n                }\n            });\n        }\n    });\n    <\/script>\n    \n        <style>\n    .oraven-enquiry { max-width:1160px; margin:0 auto 70px; padding:28px; border:1px solid #E3E6EA; border-radius:20px; background:#fff; color:#1F2328; box-sizing:border-box; }\n    .oraven-enquiry summary { cursor:pointer; font-size:clamp(22px,3vw,29px); font-weight:650; }\n    .oraven-enquiry p { line-height:1.6; }\n    .oraven-enquiry a { color:#a65300; text-decoration:underline; }\n    .oraven-enquiry-scroll { overflow:auto; max-height:85vh; border:1px solid #E3E6EA; margin:20px 0; }\n    .oraven-enquiry-page { position:relative; margin:auto; }\n    .oraven-enquiry-page canvas { display:block; }\n    .oraven-enquiry-page input, .oraven-enquiry-page textarea { position:absolute; box-sizing:border-box; margin:0; padding:1px 2px; min-width:0; min-height:0; border:1px solid transparent; border-radius:0; background:rgba(232,120,0,.09); color:#183f6d; font:12px Arial,sans-serif; line-height:normal; }\n    .oraven-enquiry-page input[type=checkbox] { appearance:auto; padding:0; accent-color:#E87800; cursor:pointer; }\n    .oraven-enquiry-page textarea { resize:none; }\n    .oraven-enquiry-page input:focus, .oraven-enquiry-page textarea:focus { outline:2px solid #E87800; outline-offset:1px; background:#fff; z-index:1; }\n    .oraven-enquiry-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }\n    .oraven-enquiry button { padding:13px 20px; border:1px solid #E87800; border-radius:10px; background:#E87800; color:#fff; font:inherit; cursor:pointer; }\n    .oraven-enquiry button[data-download] { background:#fff; color:#a65300; }\n    .oraven-enquiry button:disabled { opacity:.55; cursor:wait; }\n    .oraven-enquiry [data-status][data-error=true] { color:#a32121; }\n    .oraven-enquiry-consent { display:flex; align-items:flex-start; gap:10px; }\n    .oraven-enquiry-consent input { margin-top:5px; }\n    @media(max-width:600px) { .oraven-enquiry { margin:0 20px 50px; padding:20px; } }\n    <\/style>\n    <details class=\"oraven-enquiry\" id=\"oraven-enquiry\">\n        <summary>Anfragebogen direkt online ausf\u00fcllen<\/summary>\n        <p>Tragen Sie Ihre Projektdaten ein und senden Sie den ausgef\u00fcllten Anfragebogen direkt an team@oraven.com. Ansprechpartner und E-Mail sind Pflichtfelder. Skizzen und CAD-Dateien senden Sie bitte separat per E-Mail.<\/p>\n        <a href=\"https:\/\/oraven.com\/oraven\/wp-content\/uploads\/2026\/09\/Anfragebogen-25.09.2026.pdf\" target=\"_blank\" rel=\"noopener\">PDF-Vorlage \u00f6ffnen<\/a>\n        <noscript><p>Zum Online-Ausf\u00fcllen aktivieren Sie bitte JavaScript. Alternativ k\u00f6nnen Sie die PDF herunterladen und per E-Mail an team@oraven.com senden.<\/p><\/noscript>\n        <form data-enquiry-form>\n            <input type=\"hidden\" name=\"oraven_contact_nonce\" value=\"bfff36dc2f\">\n            <input type=\"text\" name=\"oraven_website\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\" style=\"position:absolute;left:-9999px;width:1px;height:1px;\">\n            <p data-status role=\"status\" aria-live=\"polite\"><\/p>\n            <div class=\"oraven-enquiry-scroll\" role=\"region\" aria-label=\"Ausf\u00fcllbarer Anfragebogen\" tabindex=\"0\"><div data-pages><\/div><\/div>\n            <label class=\"oraven-enquiry-consent\">\n                <input type=\"checkbox\" name=\"contact_privacy\" required>\n                <span>Ich habe die <a href=\"https:\/\/oraven.com\/oraven\/datenschutz\/\" target=\"_blank\" rel=\"noopener\">Datenschutzerkl\u00e4rung<\/a> gelesen und akzeptiere sie. *<\/span>\n            <\/label>\n            <div class=\"oraven-enquiry-actions\">\n                <button type=\"submit\" data-send disabled>Anfragebogen per E-Mail senden<\/button>\n                <button type=\"button\" data-download disabled>Ausgef\u00fcllte PDF speichern<\/button>\n            <\/div>\n        <\/form>\n    <\/details>\n    <script type=\"module\">\n    const config = {\"url\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Anfragebogen-25.09.2026.pdf\",\"endpoint\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/wp-admin\\\/admin-ajax.php\",\"language\":\"de\",\"loading\":\"Anfragebogen wird geladen \\u2026\",\"ready\":\"F\\u00fcllen Sie die Felder direkt im Anfragebogen aus. Auf kleinen Bildschirmen k\\u00f6nnen Sie seitlich scrollen.\",\"loadError\":\"Der Anfragebogen konnte nicht geladen werden. Bitte schlie\\u00dfen und \\u00f6ffnen Sie ihn erneut oder nutzen Sie den PDF-Link.\",\"sendError\":\"Der Versand konnte nicht best\\u00e4tigt werden. Ihre Eingaben bleiben erhalten. Bitte versuchen Sie es sp\\u00e4ter erneut oder kontaktieren Sie team@oraven.com.\",\"senderError\":\"Bitte tragen Sie im Anfragebogen Ansprechpartner und eine g\\u00fcltige E-Mail-Adresse ein.\",\"sending\":\"Wird gesendet \\u2026\",\"send\":\"Anfragebogen per E-Mail senden\",\"downloadError\":\"Die PDF konnte nicht gespeichert werden. Bitte versuchen Sie es erneut.\"};\n    const root = document.getElementById('oraven-enquiry');\n    const form = root.querySelector('[data-enquiry-form]');\n    const status = root.querySelector('[data-status]');\n    const send = root.querySelector('[data-send]');\n    const download = root.querySelector('[data-download]');\n    const pages = root.querySelector('[data-pages]');\n    const fields = new Map();\n    let pdf, loading = false, busy = false;\n    const announce = (message, error = false) => {\n        status.textContent = message;\n        status.dataset.error = String(error);\n    };\n    const filename = () => config.language === 'en' ? 'Enquiry-Form.pdf' : 'Anfragebogen.pdf';\n    root.addEventListener('toggle', async () => {\n        if (!root.open || pdf || loading) return;\n        loading = true;\n        announce(config.loading);\n        pages.replaceChildren();\n        fields.clear();\n        let document;\n        try {\n            const base = 'https:\/\/cdn.jsdelivr.net\/npm\/pdfjs-dist@6.3.289\/';\n            const lib = await import(base + 'build\/pdf.mjs');\n            lib.GlobalWorkerOptions.workerSrc = base + 'build\/pdf.worker.mjs';\n            document = await lib.getDocument({url: config.url, isEvalSupported: false,\n                standardFontDataUrl: base + 'standard_fonts\/', cMapUrl: base + 'cmaps\/', cMapPacked: true}).promise;\n            for (let n = 1; n <= document.numPages; n++) {\n                const page = await document.getPage(n);\n                const viewport = page.getViewport({scale: 1.5});\n                const panel = window.document.createElement('div');\n                panel.className = 'oraven-enquiry-page';\n                panel.style.width = viewport.width + 'px';\n                panel.style.height = viewport.height + 'px';\n                const canvas = window.document.createElement('canvas');\n                const ratio = Math.min(window.devicePixelRatio || 1, 2);\n                canvas.width = Math.ceil(viewport.width * ratio);\n                canvas.height = Math.ceil(viewport.height * ratio);\n                canvas.style.width = viewport.width + 'px';\n                canvas.style.height = viewport.height + 'px';\n                canvas.setAttribute('aria-hidden', 'true');\n                panel.append(canvas);\n                pages.append(panel);\n                await page.render({canvas, canvasContext: canvas.getContext('2d'), viewport,\n                    transform: [ratio, 0, 0, ratio, 0, 0], annotationMode: lib.AnnotationMode.DISABLE}).promise;\n                for (const annotation of await page.getAnnotations()) {\n                    if (!['Tx', 'Btn'].includes(annotation.fieldType) || annotation.pushButton) continue;\n                    if (annotation.fieldType === 'Btn' && !annotation.checkBox) throw new Error('Unsupported PDF field');\n                    const input = window.document.createElement(annotation.multiLine ? 'textarea' : 'input');\n                    const checkbox = annotation.fieldType === 'Btn';\n                    if (input.tagName === 'INPUT') input.type = checkbox ? 'checkbox' : 'text';\n                    input.setAttribute('aria-label', annotation.alternativeText || annotation.fieldName);\n                    input.title = annotation.alternativeText || annotation.fieldName;\n                    if (annotation.maxLen > 0) input.maxLength = annotation.maxLen;\n                    const rect = [...viewport.convertToViewportPoint(annotation.rect[0], annotation.rect[1]),\n                        ...viewport.convertToViewportPoint(annotation.rect[2], annotation.rect[3])];\n                    Object.assign(input.style, {left: Math.min(rect[0], rect[2]) + 'px', top: Math.min(rect[1], rect[3]) + 'px',\n                        width: Math.abs(rect[2] - rect[0]) + 'px', height: Math.abs(rect[3] - rect[1]) + 'px'});\n                    if (checkbox) input.checked = annotation.fieldValue !== 'Off' && !!annotation.fieldValue;\n                    else input.value = annotation.fieldValue || '';\n                    input.addEventListener('input', () => {\n                        document.annotationStorage.setValue(annotation.id, {value: checkbox ? input.checked : input.value});\n                    });\n                    if (annotation.fieldName === 'email') { input.type = 'email'; input.required = true; input.autocomplete = 'email'; }\n                    if (annotation.fieldName === 'ansprechpartner') { input.required = true; input.autocomplete = 'name'; }\n                    fields.set(annotation.fieldName, input);\n                    panel.append(input);\n                }\n            }\n            if (!fields.has('email') || !fields.has('ansprechpartner')) throw new Error('Missing sender fields');\n            pdf = document;\n            send.disabled = download.disabled = false;\n            announce(config.ready);\n        } catch (error) {\n            if (document) await document.loadingTask.destroy();\n            pages.replaceChildren();\n            announce(config.loadError, true);\n        } finally { loading = false; }\n    });\n    download.addEventListener('click', async () => {\n        if (!pdf || busy) return;\n        try {\n            const url = URL.createObjectURL(new Blob([await pdf.saveDocument()], {type:'application\/pdf'}));\n            const link = document.createElement('a');\n            link.href = url; link.download = filename(); link.click();\n            setTimeout(() => URL.revokeObjectURL(url), 30000);\n        } catch (error) { announce(config.downloadError, true); }\n    });\n    form.addEventListener('submit', async event => {\n        event.preventDefault();\n        if (!pdf || busy || !form.reportValidity()) return;\n        const name = fields.get('ansprechpartner').value.trim();\n        const email = fields.get('email').value.trim();\n        if (!name || !email) { announce(config.senderError, true); return; }\n        busy = true;\n        send.disabled = download.disabled = true;\n        \/\/ Eingaben waehrend des Speicherns und Versendens einfrieren.\n        for (const input of fields.values()) input.disabled = true;\n        send.textContent = config.sending;\n        announce(config.sending);\n        try {\n            const data = new FormData(form);\n            data.set('action', 'oraven_enquiry_send');\n            data.set('enquiry_language', config.language);\n            data.set('contact_name', name);\n            data.set('contact_email', email);\n            data.set('contact_subject', 'Angebot anfordern');\n            data.set('enquiry_pdf', new Blob([await pdf.saveDocument()], {type:'application\/pdf'}), filename());\n            const response = await fetch(config.endpoint, {method:'POST', body:data, credentials:'same-origin'});\n            const result = await response.json();\n            if (!result.success) throw new Error(result.data?.message || config.sendError);\n            announce(result.data.message);\n        } catch (error) {\n            announce(error.message && !(error instanceof TypeError) && !(error instanceof SyntaxError) ? error.message : config.sendError, true);\n        } finally {\n            busy = false;\n            send.disabled = download.disabled = false;\n            for (const input of fields.values()) input.disabled = false;\n            send.textContent = config.send;\n        }\n    });\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-104","page","type-page","status-publish"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kontakt - https:\/\/oraven.com\/<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/oraven.com\/oraven\/kontakt\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kontakt - https:\/\/oraven.com\/\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oraven.com\/oraven\/kontakt\/\" \/>\n<meta property=\"og:site_name\" content=\"https:\/\/oraven.com\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T10:47:59+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/kontakt\\\/\",\"url\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/kontakt\\\/\",\"name\":\"Kontakt - https:\\\/\\\/oraven.com\\\/\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/#website\"},\"datePublished\":\"2026-02-08T14:14:07+00:00\",\"dateModified\":\"2026-06-11T10:47:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/kontakt\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/oraven.com\\\/oraven\\\/kontakt\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/kontakt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kontakt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/#website\",\"url\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/\",\"name\":\"https:\\\/\\\/oraven.com\\\/\",\"description\":\"Mit ORAVEN textile Ventilation gestalten Sie das Klima im Raum. Wir fertigen textile Luftausl\u00e4sse zur zugfreien, ger\u00e4uschlosen Klimatisierung von Produktionshallen, Hochregallagern, B\u00fcros und weiteren Industrie- und Gewerbebauten.\",\"publisher\":{\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/#organization\",\"name\":\"https:\\\/\\\/oraven.com\\\/\",\"url\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Logo.png\",\"contentUrl\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Logo.png\",\"width\":1030,\"height\":144,\"caption\":\"https:\\\/\\\/oraven.com\\\/\"},\"image\":{\"@id\":\"https:\\\/\\\/oraven.com\\\/oraven\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kontakt - https:\/\/oraven.com\/","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/oraven.com\/oraven\/kontakt\/","og_locale":"de_DE","og_type":"article","og_title":"Kontakt - https:\/\/oraven.com\/","og_url":"https:\/\/oraven.com\/oraven\/kontakt\/","og_site_name":"https:\/\/oraven.com\/","article_modified_time":"2026-06-11T10:47:59+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/oraven.com\/oraven\/kontakt\/","url":"https:\/\/oraven.com\/oraven\/kontakt\/","name":"Kontakt - https:\/\/oraven.com\/","isPartOf":{"@id":"https:\/\/oraven.com\/oraven\/#website"},"datePublished":"2026-02-08T14:14:07+00:00","dateModified":"2026-06-11T10:47:59+00:00","breadcrumb":{"@id":"https:\/\/oraven.com\/oraven\/kontakt\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oraven.com\/oraven\/kontakt\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/oraven.com\/oraven\/kontakt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/oraven.com\/oraven\/"},{"@type":"ListItem","position":2,"name":"Kontakt"}]},{"@type":"WebSite","@id":"https:\/\/oraven.com\/oraven\/#website","url":"https:\/\/oraven.com\/oraven\/","name":"https:\/\/oraven.com\/","description":"Mit ORAVEN textile Ventilation gestalten Sie das Klima im Raum. Wir fertigen textile Luftausl\u00e4sse zur zugfreien, ger\u00e4uschlosen Klimatisierung von Produktionshallen, Hochregallagern, B\u00fcros und weiteren Industrie- und Gewerbebauten.","publisher":{"@id":"https:\/\/oraven.com\/oraven\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/oraven.com\/oraven\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/oraven.com\/oraven\/#organization","name":"https:\/\/oraven.com\/","url":"https:\/\/oraven.com\/oraven\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/oraven.com\/oraven\/#\/schema\/logo\/image\/","url":"https:\/\/oraven.com\/oraven\/wp-content\/uploads\/2026\/02\/cropped-Logo.png","contentUrl":"https:\/\/oraven.com\/oraven\/wp-content\/uploads\/2026\/02\/cropped-Logo.png","width":1030,"height":144,"caption":"https:\/\/oraven.com\/"},"image":{"@id":"https:\/\/oraven.com\/oraven\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/pages\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/comments?post=104"}],"version-history":[{"count":7,"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/pages\/104\/revisions"}],"predecessor-version":[{"id":512,"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/pages\/104\/revisions\/512"}],"wp:attachment":[{"href":"https:\/\/oraven.com\/oraven\/wp-json\/wp\/v2\/media?parent=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}