{"id":1269,"date":"2026-11-03T09:25:47","date_gmt":"2026-11-03T09:25:47","guid":{"rendered":"https:\/\/yohann.shop\/gdpr-anmodninger-om-privatliv\/"},"modified":"2026-11-03T15:17:58","modified_gmt":"2026-11-03T14:17:58","slug":"gdpr-anmodninger-om-privatliv","status":"publish","type":"page","link":"https:\/\/yohann.shop\/da\/gdpr-anmodninger-om-privatliv\/","title":{"rendered":"GDPR-anmodninger om privatliv"},"content":{"rendered":"\n<style>\n    #form-gdpr-access-data-request,\n    #form-gdpr-correct-info-request,\n    #form-gdpr-delete-data-request {\n        display: none;\n    }\n    #gdpr_page button {\n      background-color: transparent;\n      border: 0;\n      border-bottom: 1px solid black;\n      padding: 0px;\n    }\n\n    \/* Modal background *\/\n    #data-verification-background {\n      display: none;\n      position: fixed;\n      z-index: 1;\n      padding: 24px 16px;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      overflow: auto;\n      background-color: rgb(0,0,0);\n      background-color: rgba(15, 23, 42, 0.5);\n      opacity: unset;\n      z-index: 9999;\n      align-items: center;\n      justify-content: center;\n    }\n    \/* Modal Content *\/\n    #data-verification-modal {\n      background-color: #fefefe;\n      margin: 0;\n      padding: 20px 22px;\n      border: 1px solid #d0d7de;\n      border-radius: 14px;\n      box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);\n      width: min(100%, 620px);\n      max-height: calc(100vh - 48px);\n      overflow-y: auto;\n      opacity: 1;\n    }\n    \/* Modal Close Button *\/\n    .data-verification-close {\n      color: #4b5563;\n      float: right;\n      font-size: 24px;\n      font-weight: 500;\n      line-height: 22px;\n      background-color: transparent;\n      border: 0;\n      width: 30px;\n      height: 30px;\n      border-radius: 8px;\n      padding: 0;\n      transition: background-color 0.2s ease, color 0.2s ease;\n    }\n    .data-verification-close:hover {\n      color: #111827;\n      background-color: #f3f4f6;\n      text-decoration: none;\n      cursor: pointer;\n    }\n    \/* Checkbox Text *\/\n    #data-verification-container {\n      display: flex;\n      align-items: flex-start;\n      gap: 12px;\n      margin-top: 8px;\n    }\n    #data-verification-container p {\n      display: block;\n      padding: 0;\n      margin: 0;\n      line-height: 1.5;\n      font-size: 15px;\n      color: #1f2937;\n      width: auto;\n    }\n    #data-verification-container a, #data-verification-container a:hover{\n      text-decoration: underline !important;\n      color: #2563eb;\n      font-weight: 600;\n    }\n    #data-verification-container input {\n      opacity: 0;\n      width: 0;\n      height: 0;\n      margin: 0;\n      padding: 0;\n    }\n    \/* Checkbox Icon *\/\n    #data-verification-icon {\n      cursor: pointer;\n      position: relative;\n      margin: 2px 0 0;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 24px;\n      height: 24px;\n      -webkit-tap-highlight-color: transparent;\n      transform: translate3d(0, 0, 0);\n      flex: 0 0 24px;\n    }\n    #data-verification-icon:before {\n      content: \"\";\n      position: absolute;\n      top: -7px;\n      left: -7px;\n      width: 32px;\n      height: 32px;\n      border-radius: 50%;\n      background: rgba(34,50,84,0.03);\n      opacity: 0;\n      transition: opacity 0.2s ease;\n    }\n    #data-verification-icon svg {\n      position: relative;\n      z-index: 1;\n      fill: none;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n      stroke: #94a3b8;\n      stroke-width: 1.5;\n      transform: translate3d(0, 0, 0);\n      transition: all 0.2s ease;\n    }\n    #data-verification-icon svg path {\n      stroke-dasharray: 60;\n      stroke-dashoffset: 0;\n    }\n    #data-verification-icon svg polyline {\n      stroke-dasharray: 22;\n      stroke-dashoffset: 66;\n    }\n    #data-verification-icon:hover:before {\n      opacity: 1;\n    }\n    #data-verification-container:hover #data-verification-icon svg {\n      stroke: #2563eb;\n    }\n    #data-verification-icon.clicked svg {\n      stroke: #2563eb;\n    }\n    #data-verification-icon.clicked svg path {\n      stroke-dashoffset: 60;\n      transition: all 0.3s linear;\n    }\n    #data-verification-icon.clicked svg polyline {\n      stroke-dashoffset: 42;\n      transition: all 0.2s linear;\n      transition-delay: 0.15s;\n    }\n\n    \/* Accessibility design *\/\n    #data-verification-icon:focus, .data-verification-close:focus, #data-verification-container input:focus ~ #data-verification-icon svg, #data-verification-container a:focus {\n      box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.28);\n      transition: all 0.3s ease;\n      outline: none;\n      transform: scale(1.06);\n    }\n\n    \/* Loading Element *\/\n    .loading {\n        display: none;\n        top:50vh;\n        left:50vw;\n        position:fixed;\n    }\n    .loading:not(:required):after {\n      content: '';\n      display: block;\n      font-size: 10px;\n      width: 1em;\n      height: 1em;\n      margin-top: -0.5em;\n      -webkit-animation: spinner 1500ms infinite linear;\n      -moz-animation: spinner 1500ms infinite linear;\n      -ms-animation: spinner 1500ms infinite linear;\n      -o-animation: spinner 1500ms infinite linear;\n      animation: spinner 1500ms infinite linear;\n      border-radius: 0.5em;\n      -webkit-box-shadow: rgba(255,255,255, 1) 1.5em 0 0 0, rgba(255,255,255, 1) 1.1em 1.1em 0 0, rgba(255,255,255, 1) 0 1.5em 0 0, rgba(255,255,255, 1) -1.1em 1.1em 0 0, rgba(255,255,255, 1) -1.5em 0 0 0, rgba(255,255,255, 1) -1.1em -1.1em 0 0, rgba(255,255,255, 1) 0 -1.5em 0 0, rgba(255,255,255, 1) 1.1em -1.1em 0 0;\n      box-shadow: rgba(255,255,255, 1) 1.5em 0 0 0, rgba(255,255,255, 1) 1.1em 1.1em 0 0, rgba(255,255,255, 1) 0 1.5em 0 0, rgba(255,255,255, 1) -1.1em 1.1em 0 0, rgba(255,255,255, 1) -1.5em 0 0 0, rgba(255,255,255, 1) -1.1em -1.1em 0 0, rgba(255,255,255, 1) 0 -1.5em 0 0, rgba(255,255,255, 1) 1.1em -1.1em 0 0;\n    }\n    #gdpr_page .list-unstyled li button {\n      cursor: pointer;\n    }\n    #gdpr_page .form-gdpr-request form label {\n      display: block;\n      margin-bottom: 10px;\n      font-weight: 600;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"email\"] {\n      display: inline-block;\n      width: 100%;\n      max-width: 420px;\n      padding: 12px 14px;\n      margin: 0 10px 12px 0;\n      border: 1px solid #d0d7de;\n      border-radius: 10px;\n      font-size: 16px;\n      line-height: 1.4;\n      box-sizing: border-box;\n      vertical-align: middle;\n      transition: border-color 0.2s ease, box-shadow 0.2s ease;\n      background-color: #fff;\n      color: #1f2328;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"email\"]:focus {\n      border-color: #4c8bf5;\n      box-shadow: 0 0 0 3px rgba(76, 139, 245, 0.2);\n      outline: none;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"submit\"] {\n      display: inline-block;\n      min-height: 42px;\n      padding: 10px 18px;\n      margin-bottom: 12px;\n      border: 0;\n      border-radius: 10px;\n      background-color: #111827;\n      color: #fff;\n      font-size: 15px;\n      font-weight: 600;\n      line-height: 1;\n      cursor: pointer;\n      vertical-align: middle;\n      transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"submit\"]:hover {\n      background-color: #1f2937;\n      transform: translateY(-1px);\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"submit\"]:focus {\n      box-shadow: 0 0 0 3px rgba(76, 139, 245, 0.25);\n      outline: none;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"button\"].btn,\n    #gdpr_page .form-gdpr-request form button.btn {\n      display: inline-block;\n      margin-top: 8px;\n      margin-bottom: 12px;\n      padding: 10px 18px;\n      font-size: 14px;\n      font-weight: 600;\n      color: #fff;\n      background-color: #111827;\n      border: none;\n      border-radius: 8px;\n      cursor: pointer;\n      line-height: 1;\n      vertical-align: middle;\n      transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"button\"].btn:hover,\n    #gdpr_page .form-gdpr-request form button.btn:hover {\n      background-color: #1f2937;\n      transform: translateY(-1px);\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"button\"].btn:focus,\n    #gdpr_page .form-gdpr-request form button.btn:focus {\n      box-shadow: 0 0 0 3px rgba(76, 139, 245, 0.25);\n      outline: none;\n    }\n    #gdpr_page .form-gdpr-request form input[type=\"button\"].btn:disabled,\n    #gdpr_page .form-gdpr-request form button.btn:disabled {\n      opacity: 0.65;\n      cursor: not-allowed;\n      transform: none;\n    }\n    #gdpr_page .form-gdpr-request form .gdpr-request-success {\n      display: block;\n      margin: 0 0 12px;\n      color: #15803d;\n      font-size: 14px;\n      line-height: 1.4;\n      font-weight: 600;\n    }\n    #gdpr_page .form-gdpr-request form .gdpr-request-error {\n      display: block;\n      margin: 0 0 12px;\n      color: #b91c1c;\n      font-size: 14px;\n      line-height: 1.4;\n      font-weight: 600;\n    }\n    .show-isense {\n      transition: opacity 400ms !important;\n    }\n    .hide-isense {\n      opacity: 0 !important;\n      transition: 0.4s ease-out;\n    }\n\n    \/* Modal changes on mobile resolution*\/\n    @media only screen and (max-width: 600px) {\n      #data-verification-modal {\n        width: 100%;\n        padding: 16px;\n      }\n    }\n\n    \/* Animation *\/\n    @-webkit-keyframes spinner {\n      0% {\n        -webkit-transform: rotate(0deg);\n        -moz-transform: rotate(0deg);\n        -ms-transform: rotate(0deg);\n        -o-transform: rotate(0deg);\n        transform: rotate(0deg);\n      }\n      100% {\n        -webkit-transform: rotate(360deg);\n        -moz-transform: rotate(360deg);\n        -ms-transform: rotate(360deg);\n        -o-transform: rotate(360deg);\n        transform: rotate(360deg);\n      }\n    }\n    @-moz-keyframes spinner {\n      0% {\n        -webkit-transform: rotate(0deg);\n        -moz-transform: rotate(0deg);\n        -ms-transform: rotate(0deg);\n        -o-transform: rotate(0deg);\n        transform: rotate(0deg);\n      }\n      100% {\n        -webkit-transform: rotate(360deg);\n        -moz-transform: rotate(360deg);\n        -ms-transform: rotate(360deg);\n        -o-transform: rotate(360deg);\n        transform: rotate(360deg);\n      }\n    }\n    @-o-keyframes spinner {\n      0% {\n        -webkit-transform: rotate(0deg);\n        -moz-transform: rotate(0deg);\n        -ms-transform: rotate(0deg);\n        -o-transform: rotate(0deg);\n        transform: rotate(0deg);\n      }\n      100% {\n        -webkit-transform: rotate(360deg);\n        -moz-transform: rotate(360deg);\n        -ms-transform: rotate(360deg);\n        -o-transform: rotate(360deg);\n        transform: rotate(360deg);\n      }\n    }\n    @keyframes spinner {\n      0% {\n        -webkit-transform: rotate(0deg);\n        -moz-transform: rotate(0deg);\n        -ms-transform: rotate(0deg);\n        -o-transform: rotate(0deg);\n        transform: rotate(0deg);\n      }\n      100% {\n        -webkit-transform: rotate(360deg);\n        -moz-transform: rotate(360deg);\n        -ms-transform: rotate(360deg);\n        -o-transform: rotate(360deg);\n        transform: rotate(360deg);\n      }\n    }\n<\/style><div id=\"gdpr_page\" class=\"col-sm-12\">\n    <div>\n        <p><strong>Vi respekterer dit privatliv.<\/strong> Hvis du befinder dig i Det Europ\u00e6iske \u00d8konomiske Samarbejdsomr\u00e5de (E\u00d8S), har du visse rettigheder i henhold til Persondataforordningen (GDPR). Brug mulighederne nedenfor til at ud\u00f8ve dine rettigheder vedr\u00f8rende de personoplysninger, vi har om dig.<\/p>\n    <\/div>\n    <p><strong>S\u00e5dan behandler vi din anmodning<\/strong> N\u00e5r du indsender en anmodning via denne side, behandler vores compliance-leverand\u00f8r <strong>(Consentmo)<\/strong> kun din e-mailadresse og tekniske oplysninger (s\u00e5som IP-adresse) for at verificere og opfylde din anmodning, forhindre misbrug og f\u00f8re journal over compliance. Se <a href=\"https:\/\/www.consentmo.com\/end-user-dpa\" target=\"_blank\" aria-label=\"Consentmos databehandlingspolitik (\u00e5bner i ny fane)\">Consentmos databehandlingspolitik<\/a> for flere detaljer.<\/p>\n    <br>\n    <h2>Adgang til eller download af mine data<\/h2>\n    <p>Du kan anmode om en kopi af de personoplysninger, vi har om dig, herunder kontooplysninger og ordrehistorik. Du kan anmode om dine data i et portabelt format (CSV eller PDF).<\/p>\n    <ul id=\"gdpr_access_data_compliance_requests\" class=\"gdpr-compliance-requests list-unstyled\">\n        <li><button id=\"btn-gdpr-access-data-request\" aria-label=\"Anmod om mine data\" aria-controls=\"form-gdpr-access-data-request\" aria-expanded=\"false\">Anmod om mine data<\/button><\/li>\n    <\/ul>\n    <div id=\"form-gdpr-access-data-request\" class=\"form-gdpr-request\">\n        <form>\n            <label for=\"form-gdpr-access-data-request-email\">Indtast din e-mail for at bekr\u00e6fte din identitet<\/label>\n            <input type=\"email\" name=\"email\" id=\"form-gdpr-access-data-request-email\" placeholder=\"example@email.com\" autocomplete=\"email\" autocorrect=\"off\" autocapitalize=\"off\" autofocus=\"\">\n            <input type=\"submit\" id=\"form-gdpr-access-data-request-submit\" class=\"btn\" value=\"Indsend\">\n        <\/form>\n    <\/div>\n    <p><em>Svartid: Vi svarer inden for \u00e9n m\u00e5ned. Hvis din anmodning er kompleks, kan vi forl\u00e6nge fristen i henhold til loven og vil underrette dig.<\/em><\/p>\n    <br>\n    <h2>Korriger mine oplysninger<\/h2>\n    <p>Hvis du mener, at dine personoplysninger er un\u00f8jagtige eller ufuldst\u00e6ndige (f.eks. en forkert leveringsadresse eller forkert stavet navn), kan du opdatere dem her.<\/p>\n    <ul id=\"gdpr_correct_info_compliance_requests\" class=\"gdpr-compliance-requests list-unstyled\">\n        <li><button id=\"btn-gdpr-correct-info-request\" aria-label=\"Korriger mine oplysninger\" aria-controls=\"form-gdpr-correct-info-request\" aria-expanded=\"false\">Korriger mine oplysninger<\/button><\/li>\n    <\/ul>\n    <div id=\"form-gdpr-correct-info-request\" class=\"form-gdpr-request\">\n        <form>\n            <label for=\"form-gdpr-correct-info-request-email\">Indtast din e-mail for at bekr\u00e6fte din identitet<\/label>\n            <input type=\"email\" name=\"email\" id=\"form-gdpr-correct-info-request-email\" placeholder=\"example@email.com\" autocomplete=\"email\" autocorrect=\"off\" autocapitalize=\"off\" autofocus=\"\">\n            <input type=\"submit\" id=\"form-gdpr-correct-info-request-submit\" class=\"btn\" value=\"Indsend\">\n        <\/form>\n    <\/div>\n    <br>\n    <h2>Slet mine data<\/h2>\n    <p>Du kan anmode om sletning af dine personoplysninger, der er knyttet til denne butik (ogs\u00e5 kendt som \u201eretten til at blive glemt\u201c).<\/p>\n    <ul id=\"gdpr_delete_data_compliance_requests\" class=\"gdpr-compliance-requests list-unstyled\">\n        <li><button id=\"btn-gdpr-delete-data-request\" aria-label=\"Anmod om sletning\" aria-controls=\"form-gdpr-delete-data-request\" aria-expanded=\"false\">Anmod om sletning<\/button><\/li>\n    <\/ul>\n    <div id=\"form-gdpr-delete-data-request\" class=\"form-gdpr-request\">\n        <form>\n            <label for=\"form-gdpr-delete-data-request-email\">Indtast din e-mail for at bekr\u00e6fte din identitet<\/label>\n            <input type=\"email\" name=\"email\" id=\"form-gdpr-delete-data-request-email\" placeholder=\"example@email.com\" autocomplete=\"email\" autocorrect=\"off\" autocapitalize=\"off\" autofocus=\"\">\n            <input type=\"submit\" class=\"btn\" id=\"form-gdpr-delete-data-request-submit\" value=\"Indsend\">\n        <\/form>\n    <\/div>\n    <p><em>Vigtigt: Visse oplysninger kan beholdes, hvor det kr\u00e6ves i henhold til loven eller for legitime form\u00e5l (f.eks. skat, forebyggelse af svindel og sikkerhed).<\/em><\/p>\n    <br>\n    <h2>Administrer privatlivsindstillinger<\/h2>\n    <p>Du kan tilpasse din oplevelse ved pr\u00e6cist at v\u00e6lge, hvilke typer cookies og teknologier du tillader os at bruge (f.eks. aktivere analyser, men deaktivere markedsf\u00f8ring). Du kan opdatere disse specifikke indstillinger n\u00e5r som helst.<\/p>\n    <ul id=\"gdpr_manage_privacy_preferences_compliance_requests\" class=\"gdpr-compliance-requests list-unstyled\">\n        <li><button id=\"btn-gdpr-manage-privacy-preferences\" aria-label=\"Opdater cookieindstillinger\">Opdater cookieindstillinger<\/button><\/li>\n    <\/ul>\n    <br>\n    <h2>Tilbagekald samtykke<\/h2>\n    <p>Du har ret til n\u00e5r som helst at tilbagekalde dit Shopify-markedsf\u00f8rings-samtykke til sporingsteknologier. Dette vil g\u00e6lde for din fremtidige brug af vores butik og vil stoppe dataindsamling til valgfrie form\u00e5l.<\/p>\n    <div id=\"form-gdpr-withdraw-consent-request\" class=\"form-gdpr-request\">\n        <form action=\"#\" onsubmit=\"return false;\">\n            <div id=\"gdpr-withdraw-email-wrap\" class=\"gdpr-instant-email-wrap\" style=\"display: none; margin-bottom: 12px;\">\n                <label for=\"gdpr-withdraw-email\">Indtast din e-mail for at identificere din anmodning<\/label>\n                <input type=\"email\" id=\"gdpr-withdraw-email\" placeholder=\"example@email.com\" autocomplete=\"email\" style=\"display: block; width: 100%; max-width: 400px; margin-top: 6px;\">\n                <p id=\"gdpr-withdraw-email-error\" class=\"gdpr-request-error\" role=\"alert\" style=\"display: none;\"><\/p>\n            <\/div>\n            <input type=\"button\" class=\"btn\" id=\"form-gdpr-withdraw-consent-request-submit\" value=\"Tilbagekald samtykke\" aria-label=\"Tilbagekald samtykke og deaktiver valgfri sporing\"><p id=\"gdpr-withdraw-success\" class=\"gdpr-request-success\" role=\"status\" aria-live=\"polite\" style=\"display: none;\"><\/p>\n            <p id=\"gdpr-withdraw-error\" class=\"gdpr-request-error\" role=\"alert\" aria-live=\"polite\" style=\"display: none;\"><\/p>\n        <\/form>\n    <\/div>\n    <br>\n    <h2>Begr\u00e6ns eller g\u00f8r indsigelse mod behandling<\/h2>\n    <p>Du kan anmode om, at vi begr\u00e6nser behandlingen af dine personoplysninger eller g\u00f8re indsigelse mod visse behandlingsaktiviteter (s\u00e5som direkte markedsf\u00f8ring eller behandling baseret p\u00e5 legitime interesser).<\/p>\n    <p>For at ud\u00f8ve disse rettigheder, kontakt os venligst p\u00e5:<\/p>\n    <p>\ud83d\udce7 info@yohann.com<\/p>\n    <br>\n    <h2>Kontaktinformation<\/h2>\n    <p>Har du sp\u00f8rgsm\u00e5l vedr\u00f8rende dine privatlivsrettigheder eller denne side, kan du kontakte:<\/p>\n    <p><strong>E-mail:<\/strong> info@yohann.com<\/p>\n    <p><strong>Adresse:<\/strong> Schwarzwaldstra\u00dfe 61, 79539 L\u00f6rrach , Tyskland<\/p>\n    <br>\n    <h2>Indgiv en klage<\/h2><p>Hvis du mener, at vi ikke har behandlet din henvendelse tilstr\u00e6kkeligt, har du ret til at indgive en klage til din nationale databeskyttelsesmyndighed (DPA).<\/p>\n<\/div>\n\n<script>window.__CONSENTMO_CUSTOMER_IDENTIFICATION={\"withdraw_consent\":false,\"do_not_sell\":false,\"limit_use\":false};window.__CONSENTMO_CUSTOMER_IDENTIFICATION_I18N={\"invalidEmail\":\"Indtast venligst en gyldig e-mailadresse.\",\"emailLabelIdentify\":\"Indtast din e-mail for at identificere din anmodning\"};<\/script><script src=\"https:\/\/cdn.consentmo.com\/js\/privacy_customer_identification.js?v=1789549329\"><\/script><script>\n\n     \/* SLIDE UP *\/\n     let slideUp = (target, duration=500) => {\n        target.style.transitionProperty = 'height, margin, padding';\n        target.style.transitionDuration = duration + 'ms';\n        target.style.boxSizing = 'border-box';\n        target.style.height = target.offsetHeight + 'px';\n        target.offsetHeight;\n        target.style.overflow = 'hidden';\n        target.style.height = 0;\n        target.style.paddingTop = 0;\n        target.style.paddingBottom = 0;\n        target.style.marginTop = 0;\n        target.style.marginBottom = 0;\n        window.setTimeout( () => {\n            target.style.display = 'none';\n            target.style.removeProperty('height');\n            target.style.removeProperty('padding-top');\n            target.style.removeProperty('padding-bottom');\n            target.style.removeProperty('margin-top');\n            target.style.removeProperty('margin-bottom');\n            target.style.removeProperty('overflow');\n            target.style.removeProperty('transition-duration');\n            target.style.removeProperty('transition-property');\n        }, duration);\n    }\n\n    \/* SLIDE DOWN *\/\n    let slideDown = (target, duration=500) => {\n      setTimeout(function(){\n        target.style.removeProperty('display');\n        let display = window.getComputedStyle(target).display;\n        if (display === 'none') display = 'block';\n\n          target.style.display = display;\n          \n          let height = target.offsetHeight;\n          \n          target.style.overflow = 'hidden';\n          target.style.height = 0;\n          target.style.paddingTop = 0;\n          target.style.paddingBottom = 0;\n          target.style.marginTop = 0;\n          target.style.marginBottom = 0;\n          target.offsetHeight;\n          target.style.boxSizing = 'border-box';\n          target.style.transitionProperty = \"height, margin, padding\";\n          target.style.transitionDuration = duration + 'ms';\n          target.style.height = height + 'px';\n\n          target.style.removeProperty('padding-top');\n          target.style.removeProperty('padding-bottom');\n          target.style.removeProperty('margin-top');\n          target.style.removeProperty('margin-bottom');\n          \n          window.setTimeout( () => {\n              target.style.removeProperty('height');\n              target.style.removeProperty('overflow');\n              target.style.removeProperty('transition-duration');\n              target.style.removeProperty('transition-property');\n          }, duration);\n       }, 100)\n    }\n\n    \/* TOOGLE *\/\n    var slideToggle = (target, duration = 500) => {\n        if (window.getComputedStyle(target).display === 'none') {\n            return slideDown(target, duration);\n        } else {\n            return slideUp(target, duration);\n        }\n    }\n\n    \/* FADE *\/\n    var toggleFadeiSense = (elem, show) => {\n        if (show) {\n            elem.style.display = elem.id === 'data-verification-background' ? 'flex' : 'block';\n            setTimeout(function(){\n                elem.classList.add('show-isense');\n                elem.classList.remove('hide-isense');\n            },20)\n        } else {\n            elem.classList.remove('show-isense');\n            elem.classList.add('hide-isense');\n            setTimeout(() => {\n                elem.style.display = 'none';\n            }, 400)\n        }\n    }\n\n    var gdprSlideUpAll = function() {\n        slideUp(document.querySelector('#form-gdpr-access-data-request'), 100);\n        if(document.querySelector('#btn-gdpr-access-data-request')) document.querySelector('#btn-gdpr-access-data-request').setAttribute(\"aria-expanded\", \"false\");\n        slideUp(document.querySelector('#form-gdpr-correct-info-request'), 100);\n        if(document.querySelector('#btn-gdpr-correct-info-request')) document.querySelector('#btn-gdpr-correct-info-request').setAttribute(\"aria-expanded\", \"false\");\n        slideUp(document.querySelector('#form-gdpr-delete-data-request'), 100);\n        if(document.querySelector('#btn-gdpr-delete-data-request')) document.querySelector('#btn-gdpr-delete-data-request').setAttribute(\"aria-expanded\", \"false\");\n        if(document.querySelector('#gdpr_page button')) document.querySelector('#gdpr_page button').setAttribute(\"aria-expanded\", \"false\");\n    };\n\n    \/** Instant withdraw consent: same as cookie banner Reject (deny + consent record). *\/\n    (function() {\n        var WITHDRAW_SUCCESS_MSG = 'Dit samtykke er blevet trukket tilbage. Al valgfri sporing er blevet deaktiveret for denne browser.';\n        var GEO_PRIMARY = 'https:\/\/wekre6r5lsxxzzbnlltsbyfm6i0dcqrs.lambda-url.eu-central-1.on.aws';\n        var GEO_FALLBACK = 'https:\/\/workers.consentmo.com\/action\/geo';\n        var CONSENT_PRIMARY = 'https:\/\/4nbp277fevb5pvm2ditk5w6swe0biflq.lambda-url.eu-central-1.on.aws';\n        var CONSENT_FALLBACK = 'https:\/\/workers.consentmo.com\/action\/consent';\n\n        function getDeviceTypeInline() {\n            var ua = navigator.userAgent || '';\n            if (\/(tablet|ipad|playbook|silk)|(android(?!.*mobi))\/i.test(ua)) return 't';\n            if (\/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)\/.test(ua)) return 'm';\n            return 'd';\n        }\n\n        function int2ip(ipInt) {\n            return ((ipInt >>> 24) + '.' + ((ipInt >> 16) & 255) + '.' + ((ipInt >> 8) & 255) + '.' + (ipInt & 255));\n        }\n\n        function setConsentCookie(name, value, days) {\n            var expires = '';\n            if (days) {\n                var date = new Date();\n                date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n                expires = '; expires=' + date.toUTCString();\n            }\n            var secure = location.protocol === 'https:' ? '; Secure' : '';\n            document.cookie = name + '=' + encodeURIComponent(value || '') + expires + '; path=\/; SameSite=Lax' + secure;\n        }\n\n        function expireCookie(name) {\n            document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=\/';\n            var host = location.hostname;\n            if (host) {\n                document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=\/; domain=' + host;\n                var parts = host.split('.');\n                if (parts.length >= 2) {\n                    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=\/; domain=.' + parts.slice(-2).join('.');\n                }\n            }\n        }\n\n        function clearCategoryFromSettings(settings, cat) {\n            if (!settings) return;\n            var raw = settings[cat + '_cookies'] || '';\n            raw.split('n').map(function(c) { return c.trim(); }).filter(Boolean).forEach(function(n) { expireCookie(n); });\n            if (cat === 'marketing' && settings.youtube_iframe_options && settings.youtube_iframe_options.enabled) {\n                ['VISITOR_INFO1_LIVE', 'YSC', 'SOCS', '__Secure-3PSID', '__Secure-1PSID'].forEach(expireCookie);\n            }\n        }\n\n        function parseGdprSettings() {\n            var out = {\n                cookieName: '',\n                consentDuration: 365,\n                paUsrId: 0,\n                saleRegion: false,\n                manageSale: '',\n                saleCheckbox: '',\n                saleText: '',\n                settings: null\n            };\n            try {\n                var raw = localStorage.getItem('gdprCache');\n                if (!raw) return out;\n                var cache = JSON.parse(raw);\n                out.saleRegion = !!cache.userIsInSaleOfDataRegion;\n                if (cache.getCookieConsentSettings) {\n                    var s = JSON.parse(cache.getCookieConsentSettings);\n                    out.settings = s;\n                    out.cookieName = s.cookie_name != null ? String(s.cookie_name) : '';\n                    out.consentDuration = parseInt(s.consent_duration, 10) || 365;\n                    out.paUsrId = parseInt(s.pa_usr_id, 10) || 0;\n                    out.manageSale = String(s.manage_sale_of_data || '');\n                    out.saleCheckbox = String(s.sale_of_data_checkbox || '');\n                    out.saleText = String(s.sale_of_data_text || '');\n                }\n            } catch (e) {}\n            return out;\n        }\n\n        function userInSalesRegionFromParsed(parsed) {\n            return !!(parsed && parsed.saleRegion && parsed.manageSale === '1' && parsed.saleText && parsed.saleCheckbox);\n        }\n\n        function appendGdprCache(key, val) {\n            try {\n                var g = JSON.parse(localStorage.getItem('gdprCache') || '{}');\n                g[key] = val;\n                localStorage.setItem('gdprCache', JSON.stringify(g));\n            } catch (e) {}\n        }\n\n        function getConsentIdentifier() {\n            var STORAGE_KEY = 'csmConsentIdentifier';\n            try {\n                var stored = localStorage.getItem(STORAGE_KEY);\n                if (stored) {\n                    var data = JSON.parse(stored);\n                    if (data.consentIdentifier && data.expiresAt && new Date(data.expiresAt) > new Date()) {\n                        return data.consentIdentifier;\n                    }\n                    localStorage.removeItem(STORAGE_KEY);\n                }\n            } catch (e) {}\n            var bytes = new Uint8Array(32);\n            if (window.crypto && window.crypto.getRandomValues) {\n                window.crypto.getRandomValues(bytes);\n            } else {\n                for (var i = 0; i < bytes.length; i++) bytes[i] = Math.floor(Math.random() * 256);\n            }\n            var hex = '';\n            for (var j = 0; j < bytes.length; j++) hex += ('0' + bytes[j].toString(16)).slice(-2);\n            try {\n                var exp = new Date();\n                exp.setDate(exp.getDate() + 365);\n                localStorage.setItem(STORAGE_KEY, JSON.stringify({\n                    consentIdentifier: hex,\n                    createdAt: new Date().toISOString(),\n                    expiresAt: exp.toISOString()\n                }));\n            } catch (e2) {}\n            return hex;\n        }\n\n        function normalizeGeo(geo) {\n            var addInfo = geo &#038;&#038; geo.add_info != null ? String(geo.add_info) : '';\n            var longIpRegex = \/^-?d{1,12}$\/;\n            var ip = longIpRegex.test(addInfo) ? int2ip(parseInt(addInfo, 10)) : addInfo;\n            return {\n                ip: ip,\n                country: (geo &#038;&#038; geo.country) || '',\n                region: (geo &#038;&#038; (geo.state || geo.regionCode)) || '',\n                region_name: (geo &#038;&#038; geo.region) || '',\n                city: (geo &#038;&#038; geo.city) || ''\n            };\n        }\n\n        function fetchGeo() {\n            return fetch(GEO_PRIMARY, { method: 'GET', headers: { 'Accept': 'application\/json' } })\n                .then(function(r) { return r.json(); })\n                .catch(function() {\n                    return fetch(GEO_FALLBACK, { method: 'GET', headers: { 'Accept': 'application\/json' } })\n                        .then(function(r2) { return r2.json(); });\n                })\n                .catch(function() {\n                    return fetch('https:\/\/www.cloudflare.com\/cdn-cgi\/trace', { method: 'GET' })\n                        .then(function(r3) { return r3.text(); })\n                        .then(function(text) {\n                            var ip = '';\n                            text.split('n').forEach(function(line) {\n                                var p = line.split('=');\n                                if (p[0] === 'ip') ip = p[1] || '';\n                            });\n                            return { add_info: ip, country: 'US', state: '', region: '', city: '' };\n                        });\n                });\n        }\n\n        function applyShopifyCustomerPrivacy(blockedCategoriesComma) {\n            var isA = blockedCategoriesComma.indexOf('analytics') >= 0;\n            var isM = blockedCategoriesComma.indexOf('marketing') >= 0;\n            var isF = blockedCategoriesComma.indexOf('functionality') >= 0;\n            var isS = blockedCategoriesComma.indexOf('saleofdata') >= 0;\n            var parsed = parseGdprSettings();\n            var payload = { analytics: !isA, marketing: !isM, preferences: !isF };\n            if (userInSalesRegionFromParsed(parsed) || isS) {\n                payload.sale_of_data = !isS;\n            }\n            var doSet = function() {\n                if (typeof Shopify !== 'undefined' && Shopify.customerPrivacy && typeof Shopify.customerPrivacy.setTrackingConsent === 'function') {\n                    Shopify.customerPrivacy.setTrackingConsent(payload, function() {});\n                }\n            };\n            if (typeof Shopify === 'undefined') return;\n            if (Shopify.customerPrivacy && typeof Shopify.customerPrivacy.setTrackingConsent === 'function') {\n                doSet();\n            } else if (typeof Shopify.loadFeatures === 'function') {\n                Shopify.loadFeatures([{ name: 'consent-tracking-api', version: '0.1' }], function(err) {\n                    if (!err) doSet();\n                });\n            }\n        }\n\n        function postConsent(bodyObj) {\n            var body = JSON.stringify(bodyObj);\n            var opts = { method: 'POST', headers: { 'Content-Type': 'text\/plain' }, body: body };\n            return fetch(CONSENT_PRIMARY, opts).then(function(r) {\n                if (r.ok) return r;\n                throw new Error('consent primary failed');\n            }).catch(function() {\n                return fetch(CONSENT_FALLBACK, opts).then(function(r2) {\n                    if (r2.ok) return r2;\n                    throw new Error('consent fallback failed');\n                });\n            });\n        }\n\n        \/** Logs customer\/withdraw_consent to GDPR requests (same consent_identifier as consent record for cross-reference). Fire-and-forget. *\/\n        function logInstantWithdrawGdprRequest(consentIdentifier, ipAddress) {\n            try {\n                if (typeof Shopify === 'undefined' || !Shopify.shop || !consentIdentifier) return;\n                var email = '';\n                if (typeof ConsentmoCustomerIdentification !== 'undefined') {\n                    email = ConsentmoCustomerIdentification.resolveSubmitEmail(\n                        'withdraw_consent',\n                        'gdpr-withdraw-email',\n                        function() { return consentIdentifier; }\n                    );\n                }\n                if (!email) {\n                    try {\n                        if (Shopify.customerEmail) email = String(Shopify.customerEmail).trim();\n                        if (!email && window.ShopifyAnalytics && window.ShopifyAnalytics.meta && window.ShopifyAnalytics.meta.page) {\n                            var pe = window.ShopifyAnalytics.meta.page.customerEmail;\n                            if (pe) email = String(pe).trim();\n                        }\n                    } catch (e0) {}\n                }\n                if (!email) {\n                    email = String(consentIdentifier) + '@guest.withdraw.consentmo.com';\n                }\n                var customerId = 0;\n                try {\n                    if (typeof Shopify !== 'undefined' && typeof Shopify.customer_id !== 'undefined') customerId = Shopify.customer_id;\n                    else if (typeof __st !== 'undefined' && __st.cid != null) customerId = __st.cid;\n                } catch (e1) {}\n                var formData = new FormData();\n                formData.append('shop', Shopify.shop);\n                formData.append('email', email);\n                formData.append('type', 'customer\/withdraw_consent');\n                formData.append('sourceOfRequest', 1);\n                formData.append('consentGiven', 1);\n                formData.append('page', 'gdpr');\n                formData.append('lang', Shopify.locale ? Shopify.locale : '');\n                formData.append('gtranslateLang', (typeof isenseGDPR !== 'undefined' && isenseGDPR.Cookies) ? isenseGDPR.Cookies.get('googtrans') : '');\n                formData.append('ipAddress', ipAddress || '');\n                formData.append('instant_withdraw', '1');\n                if (customerId) formData.append('customer_id', customerId);\n                fetch('https:\/\/app.consentmo.com\/gdprRequests\/submitRequest', { method: 'POST', body: formData }).catch(function() {});\n            } catch (e) {}\n        }\n\n        window.csmHandleWithdrawConsentGdpr = function(btn) {\n            if (typeof Shopify === 'undefined' || !Shopify.shop) {\n                var errEl = document.getElementById('gdpr-withdraw-error');\n                if (errEl) {\n                    errEl.textContent = 'Butikkens kontekst er ikke tilg\u00e6ngelig. Pr\u00f8v venligst igen fra butikken.';\n                    errEl.style.display = 'block';\n                }\n                return;\n            }\n            if (typeof ConsentmoCustomerIdentification !== 'undefined'\n                && !ConsentmoCustomerIdentification.validateEmail('gdpr-withdraw-email', 'gdpr-withdraw-email-error', 'withdraw_consent')) {\n                return;\n            }\n            if (btn && btn.disabled) return;\n            var errBox = document.getElementById('gdpr-withdraw-error');\n            var okBox = document.getElementById('gdpr-withdraw-success');\n            if (errBox) errBox.style.display = 'none';\n            if (okBox) okBox.style.display = 'none';\n\n            var parsed = parseGdprSettings();\n            var blocked = userInSalesRegionFromParsed(parsed)\n                ? 'analytics,marketing,functionality,saleofdata'\n                : 'analytics,marketing,functionality';\n            var cookieSuffix = parsed.cookieName || '';\n            var duration = parsed.consentDuration || 365;\n\n            setConsentCookie('cookieconsent_status' + cookieSuffix, 'deny', duration);\n            setConsentCookie('cookieconsent_preferences_disabled', blocked, duration);\n            appendGdprCache('cookieconsent_status' + cookieSuffix, 'deny');\n            appendGdprCache('cookieconsent_preferences_disabled', blocked);\n\n            clearCategoryFromSettings(parsed.settings, 'analytics');\n            clearCategoryFromSettings(parsed.settings, 'marketing');\n            clearCategoryFromSettings(parsed.settings, 'functionality');\n\n            applyShopifyCustomerPrivacy(blocked);\n\n            if (btn) {\n                btn.disabled = true;\n                btn.setAttribute('aria-disabled', 'true');\n            }\n\n            fetchGeo()\n                .then(function(geo) {\n                    var n = normalizeGeo(geo);\n                    if (!n.ip) {\n                        throw new Error('no ip');\n                    }\n                    var customerId = 0;\n                    if (typeof Shopify.customer_id !== 'undefined') {\n                        customerId = Shopify.customer_id;\n                    } else if (typeof __st !== 'undefined' && __st.cid != null) {\n                        customerId = __st.cid;\n                    }\n                    var body = {\n                        consent_identifier: getConsentIdentifier(),\n                        shop: Shopify.shop,\n                        customer_id: customerId,\n                        ip: n.ip,\n                        country: n.country,\n                        region: n.region,\n                        region_name: n.region_name,\n                        city: n.city,\n                        device: getDeviceTypeInline(),\n                        pa_usr_id: parsed.paUsrId || 0,\n                        blocked_cookies: blocked + ',',\n                        accepted_page: window.location.origin + window.location.pathname,\n                        interaction_button: 5,\n                        is_sale_of_data_enabled: userInSalesRegionFromParsed(parsed)\n                    };\n                    return postConsent(body).then(function() {\n                        logInstantWithdrawGdprRequest(body.consent_identifier, n.ip);\n                    });\n                })\n                .then(function() {\n                    if (okBox) {\n                        okBox.textContent = WITHDRAW_SUCCESS_MSG;\n                        okBox.style.display = 'block';\n                    }\n                })\n                .catch(function() {\n                    if (errBox) {\n                        errBox.textContent = 'Dine pr\u00e6ferencer er blevet opdateret, men vi kunne ikke logge denne handling. Pr\u00f8v venligst igen senere.';\n                        errBox.style.display = 'block';\n                    }\n                    if (btn) {\n                        btn.disabled = false;\n                        btn.removeAttribute('aria-disabled');\n                    }\n                });\n        };\n    })();\n\n    var email, type, consentGiven = false;\n    var activeSubmitButton = null;\n    var successMessage = 'Din anmodning er blevet indsendt med succes. Tjek venligst din e-mail for yderligere oplysninger.';\n    var verificationModalContent = '<div id=\"data-verification-background\"><div class=\"loading\"><\/div><div id=\"data-verification-modal\"><button class=\"data-verification-close\" aria-label=\"Luk\">&times;<\/button><div id=\"data-verification-container\"><input type=\"checkbox\" aria-labelledby=\"gdpr-modal-container-text\"><label id=\"data-verification-icon\" aria-label=\"Dataverificeringsikon\"><svg width=\"24px\" height=\"24px\" viewBox=\"0 0 18 18\"><path d=\"M1,9 L1,3.5 C1,2 2,1 3.5,1 L14.5,1 C16,1 17,2 17,3.5 L17,14.5 C17,16 16,17 14.5,17 L3.5,17 C2,17 1,16 1,14.5 L1,9 Z\"><\/path><\/path><polyline points=\"1 9 7 14 15 4\"><\/polyline><\/svg><\/label><p id=\"gdpr-modal-container-text\">Jeg giver samtykke til indsamling af min e-mailadresse og IP-adresse med henblik p\u00e5 at behandle denne anmodning. L\u00e6s mere i vores <a href=\"https:\/\/www.consentmo.com\/privacy-policy-terms-of-service\/en\" target=\"_blank\" aria-label=\"Privatlivspolitik-link (\u00e5bner i ny fane)\">Privatlivspolitik<\/a>.<\/p><\/div><\/div><\/div>';\n\n    var isEmailValid = function(email) {\n        let regex = \/^(([^<>()[]\\.,;:s@\"]+(.[^<>()[]\\.,;:s@\"]+)*)|(\".+\"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$\/;\n\n        if (email == '' || email == undefined) {\n            return false;\n        } else {\n            return regex.test(email);\n        }\n    }\n\n    var gdprSendRequest = function(callback) {\n        \n        fetch('https:\/\/www.cloudflare.com\/cdn-cgi\/trace', {\n            method: 'GET' ,\n            headers: {\n                'Content-Type': 'text\/plain',\n            },\n        })\n        .then(resp => resp.text())\n        .then(resp => {\n            if (!resp.error) {\n                let ipInfo = resp;\n\n                let formData = new FormData();\n\n                formData.append('shop', Shopify.shop);\n                formData.append('email', email);\n                formData.append('type', type);\n                formData.append('sourceOfRequest', 1);\n                formData.append('ipAddress', ipInfo);\n                formData.append('consentGiven', consentGiven);\n                formData.append('page', 'gdpr');\n                formData.append('lang', Shopify.locale ? Shopify.locale : '');\n                formData.append('gtranslateLang', (typeof isenseGDPR !== 'undefined' && isenseGDPR.Cookies) ? isenseGDPR.Cookies.get('googtrans') : '');\n\n                fetch('https:\/\/app.consentmo.com\/gdprRequests\/submitRequest', {\n                    method: 'POST',\n                    body: formData\n                })\n                .then(resp => resp.json())\n                .then(resp => {\n                    if (!resp.error) {\n                        showInlineSuccessMessage();\n                    } else {\n                        showInlineErrorMessage(resp.message);\n                    }\n                    if (typeof callback == 'function') {\n                        callback(resp);\n                    }\n                })\n                .catch(error => {\n                    showInlineErrorMessage(error.message || 'Noget gik galt. Pr\u00f8v venligst igen.');\n                })\n\n            } \n            else {\n                showInlineErrorMessage(resp.message || 'Noget gik galt. Pr\u00f8v venligst igen.');\n            }                        \n        })\n    }\n\n    function showInlineSuccessMessage() {\n        if (!activeSubmitButton) {\n            return;\n        }\n        var form = activeSubmitButton.closest('form');\n        if (!form) {\n            return;\n        }\n        var errNode = form.querySelector('.gdpr-request-error');\n        if (errNode) {\n            errNode.remove();\n        }\n        var successNode = form.querySelector('.gdpr-request-success');\n        if (!successNode) {\n            successNode = document.createElement('p');\n            successNode.className = 'gdpr-request-success';\n            form.appendChild(successNode);\n        }\n        successNode.textContent = successMessage;\n    }\n\n    function showInlineErrorMessage(message) {\n        if (!activeSubmitButton) {\n            return;\n        }\n        var form = activeSubmitButton.closest('form');\n        if (!form) {\n            return;\n        }\n        var successNode = form.querySelector('.gdpr-request-success');\n        if (successNode) {\n            successNode.remove();\n        }\n        var errorNode = form.querySelector('.gdpr-request-error');\n        if (!errorNode) {\n            errorNode = document.createElement('p');\n            errorNode.className = 'gdpr-request-error';\n            form.appendChild(errorNode);\n        }\n        errorNode.textContent = message;\n    }\n\n\n    \n    document.addEventListener(\"DOMContentLoaded\", function() {\n\n      \/\/Append modal to body, because otherwise it will not stay centered(even if position is fixed)\n      document.querySelector(\"body\").insertAdjacentHTML( 'beforeend', verificationModalContent);\n      \n      \/\/ When the user clicks on <span> (x), close the modal\n      document.querySelector('.data-verification-close').addEventListener('click', function(e) {\n          e.preventDefault();\n          closeVerificationModal();\n      });\n\n      document.querySelector('#data-verification-icon, #data-verification-container p').addEventListener('click', function(e) {\n          e.preventDefault();\n\n          \/\/ Detect a href's click, because it is overwritten.\n          if(e.target.tagName === \"A\") {\n            window.open(e.target.href, '_blank');\n            return;\n          }\n\n          document.querySelector('#data-verification-icon').classList.add(\"clicked\");\n          setTimeout(()=>{\n            toggleFadeiSense(document.querySelector(\"#data-verification-modal\"), false);\n            document.querySelector('#data-verification-background .loading').style.display = 'inline-block';\n            consentGiven = true;\n            gdprSendRequest(function(resp) {\n                consentGiven = false;\n                closeVerificationModal();\n            });\n          }, 400);\n      });\n    });\n\n    function openVerificationModal(){\n        if(!isEmailValid(email)) {\n            showInlineErrorMessage('Ugyldig e-mail');\n            return;\n        }   \n        toggleFadeiSense(document.querySelector(\"#data-verification-modal\"), true);\n        toggleFadeiSense(document.querySelector('#data-verification-background'), true);\n        document.querySelector('#data-verification-container input').focus();\n    }\n\n    function closeVerificationModal(){\n        toggleFadeiSense(document.querySelector(\"#data-verification-background\"), false);\n\n        document.querySelector('#data-verification-icon').classList.remove(\"clicked\");\n        document.querySelector('#data-verification-background .loading').style.display = 'none';\n\n        \/\/ Focus the button of the request type that was picked\n        let gdprForms = document.querySelectorAll('.form-gdpr-request');\n        gdprForms.forEach(function(gdprForm) {\n          if (gdprForm.id === 'form-gdpr-withdraw-consent-request') return;\n          if (gdprForm.style.display !== \"none\") {\n            let gdprFormLinks = gdprForm.previousElementSibling.querySelectorAll('li');\n            if (gdprFormLinks.length === 1) {\n              gdprFormLinks[0].querySelector('button').focus();\n            } else {\n              \/\/ Focus logic for Data Portability requests\n              gdprFormLinks = gdprForm.parentElement;\n              if (gdprFormLinks.nodeName === 'LI') {\n                gdprFormLinks.querySelector('button').focus();\n              }\n            }\n          }\n        });\n    }\n\n    \/\/ Access or download my data\n    document.querySelector('#btn-gdpr-access-data-request').addEventListener('click', function(e) {\n        e.preventDefault();\n        let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;\n        gdprSlideUpAll();\n        if(!isExpanded) {\n          slideDown(document.querySelector('#form-gdpr-access-data-request'), 200);\n          this.setAttribute(\"aria-expanded\", \"true\");\n        } else {\n          slideUp(document.querySelector('#form-gdpr-access-data-request'), 200);\n          this.setAttribute(\"aria-expanded\", \"false\");\n        }\n    });\n\n    document.querySelector('#form-gdpr-access-data-request-submit').addEventListener('click', function(e) {\n        e.preventDefault();\n        activeSubmitButton = this;\n        email = document.querySelector('#form-gdpr-access-data-request-email').value;\n        type = 'customer\/report';\n        openVerificationModal();\n    });\n\n    \/\/ Correct my information\n    document.querySelector('#btn-gdpr-correct-info-request').addEventListener('click', function(e) {\n        e.preventDefault();\n        let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;\n        gdprSlideUpAll();\n        if(!isExpanded) {\n          slideDown(document.querySelector('#form-gdpr-correct-info-request'), 200);\n          this.setAttribute(\"aria-expanded\", \"true\");\n        } else {\n          slideUp(document.querySelector('#form-gdpr-correct-info-request'), 200);\n          this.setAttribute(\"aria-expanded\", \"false\");\n        }\n    });\n\n    document.querySelector('#form-gdpr-correct-info-request-submit').addEventListener('click', function(e) {\n        e.preventDefault();\n        activeSubmitButton = this;\n        email = document.querySelector('#form-gdpr-correct-info-request-email').value;\n        type = 'customer\/edit';\n        openVerificationModal();\n    });\n\n    \/\/ Delete my data\n    document.querySelector('#btn-gdpr-delete-data-request').addEventListener('click', function(e) {\n        e.preventDefault();\n        let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false;\n        gdprSlideUpAll();\n        if(!isExpanded) {\n          slideDown(document.querySelector('#form-gdpr-delete-data-request'), 200);\n          this.setAttribute(\"aria-expanded\", \"true\");\n        } else {\n          slideUp(document.querySelector('#form-gdpr-delete-data-request'), 200);\n          this.setAttribute(\"aria-expanded\", \"false\");\n        }\n    });\n\n    document.querySelector('#form-gdpr-delete-data-request-submit').addEventListener('click', function(e) {\n        e.preventDefault();\n        activeSubmitButton = this;\n        email = document.querySelector('#form-gdpr-delete-data-request-email').value;\n        type = 'customer\/delete';\n        openVerificationModal();\n    });\n\n    \/\/ Withdraw consent (always visible; instant reject \u2014 no expand step)\n    document.querySelector('#form-gdpr-withdraw-consent-request-submit').addEventListener('click', function(e) {\n        e.preventDefault();\n        if (typeof window.csmHandleWithdrawConsentGdpr === 'function') {\n            window.csmHandleWithdrawConsentGdpr(this);\n        }\n    });\n\n    \/\/ Manage privacy preferences\n    document.querySelector('#btn-gdpr-manage-privacy-preferences').addEventListener('click', function(e) {\n        e.preventDefault();\n\n        if (typeof showPreferences === 'function') {\n            showPreferences(this);\n            return;\n        }\n\n        let settingsButton = document.querySelector('.cc-window .cc-settings');\n        if (settingsButton) {\n            settingsButton.click();\n            return;\n        }\n\n        alert('Cookie-indstillinger er ikke tilg\u00e6ngelige p\u00e5 denne side.');\n    });\n\n    \/\/ Keyboard navigation in data verification modal for accessibility\n    document.addEventListener(\"DOMContentLoaded\", function() {\n      document.querySelector('#data-verification-modal').addEventListener('keydown', function(e) {\n      let isTabPressed = e.keyCode === 9 || e.key === \"Tab\" || e.code === \"Tab\";\n      let isEscapePressed = e.keyCode === 27 || e.key === \"Escape\" || e.code === \"Escape\";\n      let isSpacePressed = event.keyCode === 32 || e.key === \" \" || event.code === \"Space\";\n      let isEnterPressed = event.keyCode === 13 || e.key === \"Enter\" || event.code === \"Enter\";\n      let dataVerificationCloseButton = document.querySelector('.data-verification-close');\n      let dataVerificationCheckbox = document.querySelector('#data-verification-container input');\n      let dataVerificationLink = document.querySelector('#data-verification-container a');\n      \/\/ This function saves us the trouble of calling e.preventDefault() after every focusing\n      let executeFocus = (focusElement) => {focusElement.focus();e.preventDefault();}\n\n      if (isEscapePressed) {\n        if (dataVerificationCloseButton) {\n          dataVerificationCloseButton.click();\n        }\n      }\n\n      if (isSpacePressed || isEnterPressed) {\n        if (document.activeElement === dataVerificationCheckbox) {\n          document.querySelector('#data-verification-container #data-verification-icon').click();\n        }\n      }\n\n      if (isTabPressed) {\n        if (e.shiftKey) {\n          if (dataVerificationCloseButton && document.activeElement === dataVerificationCloseButton) {\n            executeFocus(dataVerificationLink);\n          }\n        } else {\n          if (dataVerificationLink && document.activeElement === dataVerificationLink) {\n            executeFocus(dataVerificationCloseButton);\n          }\n        }\n      }\n      });\n    });\n\n    if (typeof ConsentmoCustomerIdentification !== 'undefined') {\n        ConsentmoCustomerIdentification.initPage({ withdraw_consent: 'gdpr-withdraw-email-wrap' });\n    }\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Vi respekterer dit privatliv. Hvis du befinder dig i Det Europ\u00e6iske \u00d8konomiske Samarbejdsomr\u00e5de (E\u00d8S), har du visse rettigheder i henhold til Persondataforordningen (GDPR). Brug mulighederne nedenfor til at ud\u00f8ve dine rettigheder vedr\u00f8rende de personoplysninger, vi har om dig. S\u00e5dan behandler vi din anmodning N\u00e5r du indsender en anmodning via denne side, behandler vores compliance-leverand\u00f8r (Consentmo) [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1269","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/pages\/1269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/comments?post=1269"}],"version-history":[{"count":1,"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/pages\/1269\/revisions"}],"predecessor-version":[{"id":1703,"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/pages\/1269\/revisions\/1703"}],"wp:attachment":[{"href":"https:\/\/yohann.shop\/da\/wp-json\/wp\/v2\/media?parent=1269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}