{"version":3,"file":"shared-lib.DPtMOLmg.mjs","names":["F","C","C","useState","useRef","CORE_C","useState","_Fragment","CORE_COLORS","CORE_F"],"sources":["https:/framerusercontent.com/modules/UC2LtU8MGAj4xQXcKWsX/yVZ8R1Rie1XZokNSpSmP/Qrz4pdvyz.js","https:/ga.jspm.io/npm:lenis@1.1.2/dist/lenis.mjs","https:/framerusercontent.com/modules/E5lpYYtAed1c8I887qYQ/NcJXWIX4dId61VXc6izk/DamoiCore.js","https:/framerusercontent.com/modules/eYHtrlZ9CURGLwXLcbkR/BSBjdbNa3DvOxkiuJGr6/Header.js","https:/framerusercontent.com/modules/xch1lj4XA6z07YbHrG1F/Armld7JnFnF5bcjTZsGV/Site_Footer.js"],"sourcesContent":["// Generated by Framer (e0e363b)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-uODRh .framer-styles-preset-q3x6uz:not(.rich-text-wrapper), .framer-uODRh .framer-styles-preset-q3x6uz.rich-text-wrapper a { --framer-link-hover-text-color: var(--token-0c8281da-5e93-4517-a79a-f5302f041165, #c85a54); --framer-link-text-color: #c85a54; transition-delay: 0s; transition-duration: 0.4s; transition-property: color; transition-timing-function: cubic-bezier(0.44, 0, 0.56, 1); }\"];export const className=\"framer-uODRh\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","function clamp(t,e,i){return Math.max(t,Math.min(e,i))}class Animate{advance(t){if(!this.isRunning)return;let e=!1;if(this.lerp)this.value=function damp(t,e,i,s){return function lerp(t,e,i){return(1-i)*t+i*e}(t,e,1-Math.exp(-i*s))}(this.value,this.to,60*this.lerp,t),Math.round(this.value)===this.to&&(this.value=this.to,e=!0);else{this.currentTime+=t;const i=clamp(0,this.currentTime/this.duration,1);e=i>=1;const s=e?1:this.easing(i);this.value=this.from+(this.to-this.from)*s}e&&this.stop(),this.onUpdate?.(this.value,e)}stop(){this.isRunning=!1}fromTo(t,e,{lerp:i=.1,duration:s=1,easing:o=(t=>t),onStart:n,onUpdate:r}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,n?.(),this.onUpdate=r}}class Dimensions{constructor({wrapper:t,content:e,autoResize:i=!0,debounce:s=250}={}){this.wrapper=t,this.content=e,i&&(this.debouncedResize=function debounce(t,e){let i;return function(){let s=arguments,o=this;clearTimeout(i),i=setTimeout((function(){t.apply(o,s)}),e)}}(this.resize,s),this.wrapper===window?window.addEventListener(\"resize\",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),window.removeEventListener(\"resize\",this.debouncedResize,!1)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper===window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={}}emit(t,...e){let i=this.events[t]||[];for(let t=0,s=i.length;t<s;t++)i[t](...e)}on(t,e){return this.events[t]?.push(e)||(this.events[t]=[e]),()=>{this.events[t]=this.events[t]?.filter((t=>e!==t))}}off(t,e){this.events[t]=this.events[t]?.filter((t=>e!==t))}destroy(){this.events={}}}const t=100/6;class VirtualScroll{constructor(t,{wheelMultiplier:e=1,touchMultiplier:i=1}){this.element=t,this.wheelMultiplier=e,this.touchMultiplier=i,this.touchStart={x:null,y:null},this.emitter=new Emitter,window.addEventListener(\"resize\",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.addEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),window.removeEventListener(\"resize\",this.onWindowResize,!1),this.element.removeEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.removeEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.removeEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.removeEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit(\"scroll\",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.touchMultiplier,o=-(i-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit(\"scroll\",{deltaX:s,deltaY:o,event:t})};onTouchEnd=t=>{this.emitter.emit(\"scroll\",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=e=>{let{deltaX:i,deltaY:s,deltaMode:o}=e;i*=1===o?t:2===o?this.windowWidth:1,s*=1===o?t:2===o?this.windowHeight:1,i*=this.wheelMultiplier,s*=this.wheelMultiplier,this.emitter.emit(\"scroll\",{deltaX:i,deltaY:s,event:e})};onWindowResize=()=>{this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight}}class Lenis{constructor({wrapper:t=window,content:e=document.documentElement,wheelEventsTarget:i=t,eventsTarget:s=i,smoothWheel:o=!0,syncTouch:n=!1,syncTouchLerp:r=.075,touchInertiaMultiplier:l=35,duration:h,easing:a=(t=>Math.min(1,1.001-Math.pow(2,-10*t))),lerp:c=!h&&.1,infinite:u=!1,orientation:d=\"vertical\",gestureOrientation:p=\"vertical\",touchMultiplier:m=1,wheelMultiplier:v=1,autoResize:g=!0,prevent:w=!1,__experimental__naiveDimensions:S=!1}={}){this.__isScrolling=!1,this.__isStopped=!1,this.__isLocked=!1,this.onVirtualScroll=({deltaX:t,deltaY:e,event:i})=>{if(i.ctrlKey)return;const s=i.type.includes(\"touch\"),o=i.type.includes(\"wheel\");this.isTouching=\"touchstart\"===i.type||\"touchmove\"===i.type;if(this.options.syncTouch&&s&&\"touchstart\"===i.type&&!this.isStopped&&!this.isLocked)return void this.reset();const n=0===t&&0===e,r=\"vertical\"===this.options.gestureOrientation&&0===e||\"horizontal\"===this.options.gestureOrientation&&0===t;if(n||r)return;let l=i.composedPath();l=l.slice(0,l.indexOf(this.rootElement));const h=this.options.prevent;if(l.find((t=>{var e,i,n,r,l;return(\"function\"==typeof h?null==h?void 0:h(t):h)||(null===(e=t.hasAttribute)||void 0===e?void 0:e.call(t,\"data-lenis-prevent\"))||s&&(null===(i=t.hasAttribute)||void 0===i?void 0:i.call(t,\"data-lenis-prevent-touch\"))||o&&(null===(n=t.hasAttribute)||void 0===n?void 0:n.call(t,\"data-lenis-prevent-wheel\"))||(null===(r=t.classList)||void 0===r?void 0:r.contains(\"lenis\"))&&!(null===(l=t.classList)||void 0===l?void 0:l.contains(\"lenis-stopped\"))})))return;if(this.isStopped||this.isLocked)return void i.preventDefault();if(!(this.options.syncTouch&&s||this.options.smoothWheel&&o))return this.isScrolling=\"native\",void this.animate.stop();i.preventDefault();let a=e;\"both\"===this.options.gestureOrientation?a=Math.abs(e)>Math.abs(t)?e:t:\"horizontal\"===this.options.gestureOrientation&&(a=t);const c=s&&this.options.syncTouch,u=s&&\"touchend\"===i.type&&Math.abs(a)>5;u&&(a=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+a,Object.assign({programmatic:!1},c?{lerp:u?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}))},this.onNativeScroll=()=>{if(clearTimeout(this.__resetVelocityTimeout),delete this.__resetVelocityTimeout,this.__preventNextNativeScrollEvent)delete this.__preventNextNativeScrollEvent;else if(!1===this.isScrolling||\"native\"===this.isScrolling){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isScrolling=\"native\",this.emit(),0!==this.velocity&&(this.__resetVelocityTimeout=setTimeout((()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()}),400))}},window.lenisVersion=\"1.1.2\",t!==document.documentElement&&t!==document.body||(t=window),this.options={wrapper:t,content:e,wheelEventsTarget:i,eventsTarget:s,smoothWheel:o,syncTouch:n,syncTouchLerp:r,touchInertiaMultiplier:l,duration:h,easing:a,lerp:c,infinite:u,gestureOrientation:p,orientation:d,touchMultiplier:m,wheelMultiplier:v,autoResize:g,prevent:w,__experimental__naiveDimensions:S},this.animate=new Animate,this.emitter=new Emitter,this.dimensions=new Dimensions({wrapper:t,content:e,autoResize:g}),this.updateClassName(),this.userData={},this.time=0,this.velocity=this.lastVelocity=0,this.isLocked=!1,this.isStopped=!1,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll=new VirtualScroll(s,{touchMultiplier:m,wheelMultiplier:v}),this.virtualScroll.on(\"scroll\",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName()}on(t,e){return this.emitter.on(t,e)}off(t,e){return this.emitter.off(t,e)}setScroll(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t}resize(){this.dimensions.resize()}emit({userData:t={}}={}){this.userData=t,this.emitter.emit(\"scroll\",this),this.userData={}}reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){this.isStopped&&(this.isStopped=!1,this.reset())}stop(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset())}raf(t){const e=t-(this.time||t);this.time=t,this.animate.advance(.001*e)}scrollTo(t,{offset:e=0,immediate:i=!1,lock:s=!1,duration:o=this.options.duration,easing:n=this.options.easing,lerp:r=!o&&this.options.lerp,onStart:l,onComplete:h,force:a=!1,programmatic:c=!0,userData:u={}}={}){if(!this.isStopped&&!this.isLocked||a){if([\"top\",\"left\",\"start\"].includes(t))t=0;else if([\"bottom\",\"right\",\"end\"].includes(t))t=this.limit;else{let i;if(\"string\"==typeof t?i=document.querySelector(t):(null==t?void 0:t.nodeType)&&(i=t),i){if(this.options.wrapper!==window){const t=this.options.wrapper.getBoundingClientRect();e-=this.isHorizontal?t.left:t.top}const s=i.getBoundingClientRect();t=(this.isHorizontal?s.left:s.top)+this.animatedScroll}}if(\"number\"==typeof t){if(t+=e,t=Math.round(t),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):t=clamp(0,t,this.limit),i)return this.animatedScroll=this.targetScroll=t,this.setScroll(this.scroll),this.reset(),void(null==h||h(this));t!==this.targetScroll&&(c||(this.targetScroll=t),this.animate.fromTo(this.animatedScroll,t,{duration:o,easing:n,lerp:r,onStart:()=>{s&&(this.isLocked=!0),this.isScrolling=\"smooth\",null==l||l(this)},onUpdate:(t,e)=>{this.isScrolling=\"smooth\",this.lastVelocity=this.velocity,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),c&&(this.targetScroll=t),e||this.emit({userData:u}),e&&(this.reset(),this.emit({userData:u}),null==h||h(this),this.__preventNextNativeScrollEvent=!0)}}))}}}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?\"x\":\"y\"]}get isHorizontal(){return\"horizontal\"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?function modulo(t,e){return(t%e+e)%e}(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isScrolling(){return this.__isScrolling}set isScrolling(t){this.__isScrolling!==t&&(this.__isScrolling=t,this.updateClassName())}get isStopped(){return this.__isStopped}set isStopped(t){this.__isStopped!==t&&(this.__isStopped=t,this.updateClassName())}get isLocked(){return this.__isLocked}set isLocked(t){this.__isLocked!==t&&(this.__isLocked=t,this.updateClassName())}get isSmooth(){return\"smooth\"===this.isScrolling}get className(){let t=\"lenis\";return this.isStopped&&(t+=\" lenis-stopped\"),this.isLocked&&(t+=\" lenis-locked\"),this.isScrolling&&(t+=\" lenis-scrolling\"),\"smooth\"===this.isScrolling&&(t+=\" lenis-smooth\"),t}updateClassName(){this.cleanUpClassName(),this.rootElement.className=`${this.rootElement.className} ${this.className}`.trim()}cleanUpClassName(){this.rootElement.className=this.rootElement.className.replace(/lenis(-\\w+)?/g,\"\").trim()}}export{Lenis as default};\n//# sourceMappingURL=lenis.mjs.map\n","// ===========================================\n// DAMOI CORE, die eine Quelle der Wahrheit (V14)\n//\n// Framer-Setup: Diese Datei EINMAL als Code-File \"DamoiCore\" anlegen.\n// Sections importieren daraus:\n//   import { C, F, TYPE, SPACE, RADIUS, SHADOW, M, GRAD,\n//            motionCSS, markJsAlive, observeReveals } from \"./DamoiCore.tsx\"\n//   (WICHTIG: relativ MIT \".tsx\"-Endung, Framer verlangt die Endung.\n//    Belegt durch das Code-Sync-Plugin, das genau diese Endung beim\n//    Upload automatisch ergänzt. Bare specifier + \"./\" ohne Endung: beide ✗)\n//\n// Eine Änderung hier = alle Sections auf allen Seiten aktualisieren\n// sich sofort. KEINE Repastes der Sections nötig.\n//\n// Skala abgeleitet aus den häufigsten Ist-Werten der Live-Sections\n// (Stand 2026-07-29), dokumentiert in design-system/V13-TOKENS.md.\n// ===========================================\nimport{RenderTarget}from\"framer\";// ── Farben ─────────────────────────────────\nexport const C={accent:\"#C85A54\",accentDeep:\"#A84A45\",peach:\"#E6AF91\",text1:\"#293133\",text2:\"#626A6C\",text3:\"#9CA3A6\",bg1:\"#FAF9F6\",bg2:\"#F2F0EB\",white:\"#FFFFFF\",hairline:\"#E7DCCF\",green:\"#7DB89B\",success:\"#7DB89B\",warning:\"#D4A056\",glassBorder:\"rgba(255,255,255,0.6)\",pillBg:\"rgba(255,255,255,0.82)\"};// ── Gradients (einfache Strings, importieren problemlos) ──\nexport const GRAD={cta:\"linear-gradient(135deg, #E6AF91 0%, #C85A54 100%)\",ctaHorizontal:\"linear-gradient(90deg, #E6AF91 0%, #C85A54 100%)\",warmCard:\"linear-gradient(135deg, #FBF1EC 0%, #F4DBCF 100%)\"};// ── Fonts ──────────────────────────────────\n// ⚠️ KRITISCH (V14.6, 2026-07-30): KEINE Apostrophe in den Font-Stacks!\n// Framers SSR escaped Apostrophe im <style>-Inhalt zu &#x27; ein CSS-Parser\n// dekodiert das nicht, erklaert die Deklaration fuer ungueltig und verwirft\n// sie komplett. Ergebnis war: ueberall sans-serif statt Instrument Serif/Inter.\n// Font-Namen ohne Sonderzeichen brauchen keine Quotes (valides CSS).\n// Gilt genauso fuer \" (wird zu &quot;), siehe PD_01_Hero_p1..p4/PD_02_Buybox,\n// deren @font-face live an exakt diesem Escaping zerbrochen ist.\n//\n// ── CLS-Fix (V14.8, 2026-07-31) ────────────\n// \"* Fallback\" sind metrik-angepasste Varianten von Georgia/Arial: per\n// size-adjust auf die Web-Font-Metriken skaliert, damit der Font-Swap keine\n// Zeilenumbrueche veraendert und die Seite nicht springt.\n// Gemessen mobil (Lighthouse, Homepage): CLS 0.1115 -> 0.0024.\n//\n// ⚠️ Die @font-face-Deklarationen dazu leben im Framer-Head-Snippet\n// (framer-head-snippet-fonts.html), NICHT hier, im Head sind sie einmal\n// site-weit gueltig und werden nicht vom SSR-Escaping angefasst.\n// Ohne dieses Snippet fallen die Stacks still auf Georgia/-apple-system\n// zurueck: kein Fehler, aber auch kein Fix.\nexport const F={heading:\"Instrument Serif, Instrument Serif Fallback, Georgia, serif\",body:\"Inter, Inter Fallback, -apple-system, BlinkMacSystemFont, sans-serif\",ui:\"Inter, Inter Fallback, -apple-system, sans-serif\"};// ── Typo-Skala (V13.1) ─────────────────────\nexport const TYPE={h1:\"clamp(46px, 8vw, 100px)\",h2:\"clamp(42px, 6vw, 78px)\",h2Calm:\"clamp(38px, 5.2vw, 68px)\",serifSub:\"clamp(30px, 4.5vw, 56px)\",lede:\"clamp(16px, 1.25vw, 19px)\",body:\"16px\",label:\"13px\"};// ── Abstands-Skala ─────────────────────────\nexport const SPACE={sectionY:\"clamp(80px, 9vw, 130px)\",sectionYCompact:\"clamp(56px, 6vw, 88px)\",sectionX:\"clamp(24px, 4vw, 80px)\",container:1680,textNarrow:520,textMedium:640,textWide:760,gapS:16,gapM:28,gapL:48,gapXL:64};// ── Radien (ZWEI + Pill, mehr gibt es nicht) ──\nexport const RADIUS={card:20,large:28,pill:100};// ── Schatten (DREI Stufen, mehr gibt es nicht) ──\nexport const SHADOW={rest:\"0 1px 3px rgba(41,49,51,0.06)\",lift:\"0 12px 32px rgba(41,49,51,0.10)\",floating:\"0 1px 3px rgba(41,49,51,0.06), 0 24px 60px rgba(41,49,51,0.12)\",cta:\"0 4px 16px rgba(200,90,84,0.25)\"};// ── Motion (V13, Neko-Messwerte) ───────────\nexport const M={easeReveal:\"cubic-bezier(0.65, 0, 0.35, 1)\",easeUI:\"cubic-bezier(0.32, 0.72, 0, 1)\",durReveal:1.4,durFast:.3,y:16,stagger:100,staggerList:50,threshold:.05,safetyAbove:1.6,safetyBelow:2};// ── Reveal-CSS-Generator (slug-prefixt, kollisionsfrei) ──\n// In die Section-CSS einbetten: ${motionCSS(\"slug\")}\n// Markup: className=\"<slug>-rv\" (+ style transitionDelay für Stagger)\nexport function motionCSS(slug,aboveFold=false){const safety=aboveFold?M.safetyAbove:M.safetyBelow;return`\n.${slug}-rv {\n    opacity: 0;\n    transform: translate3d(0, ${M.y}px, 0);\n    transition: opacity ${M.durReveal}s ${M.easeReveal}, transform ${M.durReveal}s ${M.easeReveal};\n    animation: ${slug}-safety 0.6s ${safety}s ease-out forwards;\n}\n.${slug}-rv.is-visible { opacity: 1; transform: none; animation: none; }\n@keyframes ${slug}-safety { to { opacity: 1; transform: none; } }\nhtml.dm-js .${slug}-rv { animation: none; }\n@media (prefers-reduced-motion: reduce) {\n    .${slug}-rv { opacity: 1; transform: none; transition: none; animation: none; }\n}\n`;}// ── dm-js-Marker: JS lebt → Pattern-B-Safety aus ──\n// In jeder Inject-Funktion aufrufen (Module-Load + useEffect-Backup).\n// Nicht auf dem Framer-Canvas (dort hält die Safety den Canvas sichtbar).\nexport function markJsAlive(){if(typeof document===\"undefined\")return;try{const onCanvas=typeof RenderTarget!==\"undefined\"&&RenderTarget.current&&RenderTarget.current()===RenderTarget.canvas;if(!onCanvas)document.documentElement.classList.add(\"dm-js\");}catch(e){document.documentElement.classList.add(\"dm-js\");}}// ── Reveal-Observer: einmal pro Section im Mount-useEffect ──\n// const cleanup = observeReveals(rootRef.current, \".xy-rv\")\n// return cleanup\n//\n// GRENZE: Ein Reveal-Element darf nicht hoeher werden als das 20-fache des\n// Viewports. isIntersecting ist an den Threshold gekoppelt, nicht an die reine\n// Geometrie: liegt das Sichtbarkeitsverhaeltnis dauerhaft unter M.threshold\n// (0.05), meldet der Observer isIntersecting=false, obwohl das Element im Bild\n// steht. .is-visible kommt dann nie und das Element bleibt auf opacity 0.\n// Bei 800px Viewport gemessen: 16000px hoch klappt, 17000px nicht mehr.\n// Auf dem Canvas faellt es nicht auf, weil dort die Safety-Animation greift.\n// Lange Inhalte deshalb in mehrere Reveals teilen oder gar nicht reveal-en.\nexport function observeReveals(root,selector){if(!root||typeof IntersectionObserver===\"undefined\"){return()=>{};}const els=Array.from(root.querySelectorAll(selector));if(els.length===0)return()=>{};const io=new IntersectionObserver(entries=>{for(const e of entries){if(!e.isIntersecting)continue;e.target.classList.add(\"is-visible\");io.unobserve(e.target);}},{threshold:M.threshold,rootMargin:\"0px\"});els.forEach(el=>io.observe(el));return()=>io.disconnect();}// ── Button-Basis-Styles (Sentence case, V13 §3) ──\nexport const BUTTON={primary:{fontFamily:F.ui,fontSize:16,fontWeight:500,letterSpacing:0,color:C.white,background:GRAD.cta,border:\"1px solid transparent\",borderRadius:RADIUS.pill,boxShadow:SHADOW.cta,cursor:\"pointer\",textDecoration:\"none\"},secondary:{fontFamily:F.ui,fontSize:15,fontWeight:500,letterSpacing:0,color:C.accent,background:\"transparent\",border:`1px solid ${C.accent}`,borderRadius:RADIUS.pill,cursor:\"pointer\",textDecoration:\"none\"}};// ── RangeBar / StrokeRangeIndicator (V14.4), echte App-Parität ─────────\n// Werte 1:1 aus der laufenden App übernommen (Beschluss Paul 2026-07-30):\n//   /Damoi/03_App/damoi-app-main/src/components/StrokeRangeIndicator.tsx\n//   /Damoi/03_App/damoi-app-main/src/constants/theme.ts (RANGE_INDICATOR, STATUS_ACCENT)\n//   /Damoi/03_App/damoi-app-main/src/components/rangeTicks.ts\n//\n// Die App zeigt KEINEN Balken mit Zonen-Flächen, sondern ~80 (mobil) bzw. die\n// doppelte Zahl (Web) dünner vertikaler Striche, Damoi's stroke design\n// language. Der Wert ist kein Overlay-Marker, sondern der Strich selbst:\n// Zonenfarbe + Höhen-Peak, dazu ein Ink-Caret darunter.\n// Wichtig: „außerhalb der Referenz\" ist GRAU, bewusst kein Alarm-Rot.\nexport const RANGE={// Dichte, App: MOBILE_STROKE_COUNT, getStrokeCount(), STROKE_GAP\nstrokeCountBase:80,strokeCountWebFactor:2,strokeCountMax:200,strokeCountMin:40,referenceWidth:375,maxWidth:1100,strokeGap:1,strokeRadius:2,// Höhen, App: strokeHeight-Default + Peak-Faktoren um den Wert-Strich\nstrokeHeight:10,barHeight:24,peakMarker:2,peakNeighbor1:1.6,peakNeighbor2:1.4,peakNeighbor3:1.2,// Zonenfarben, App: zoneColors (Light-Mode)\noptimalColor:\"#7DB89B\",transitionColor:\"#D4A056\",outOfRangeColor:\"#9CA3A6\",inactiveColor:\"rgba(0, 0, 0, 0.15)\",caretColor:\"#293133\",// Zonen-Defaults, App: StrokeRangeIndicator Zeilen 97 bis 100\noptimalInset:.2,displayPad:.3,// Ruler, App: styles.ruler / rulerBaseline / rulerTick / rulerLabel\nrulerGap:10,rulerHeight:22,rulerBaseline:\"rgba(41, 49, 51, 0.12)\",rulerTickColor:\"#626A6C\",rulerLabel:11,// Motion, App: 150 ms je Strich, 20 ms Stagger\nstrokeDur:.15,strokeStagger:20};// ── StrokeRangeIndicator, gemeinsame Logik (V15.1) ─────────────────────\n// Die Strich-Grafik läuft seit V15.1 in ZWEI Sections: 03 Ranges in voller\n// Größe und 01 Hero als kompakte Vorschau unter dem Marker-Namen (Beschluss\n// Paul 2026-07-30: „dann sieht jede Marker-Seite anders aus\"). Berechnung\n// und CSS liegen deshalb hier zentral, die Sections liefern nur noch\n// Markup, Größen und Texte. Port-Quelle unverändert:\n//   /Damoi/03_App/damoi-app-main/src/components/StrokeRangeIndicator.tsx\n//   /Damoi/03_App/damoi-app-main/src/components/rangeTicks.ts\n// Grenzwert-Erkennung per STRING. Truthiness auf der ZAHL würde \"0\" als\n// „nicht gesetzt\" werten (mehrere der 37 Werte, z. B. ApoB 0 bis 80).\nexport function isRangeNum(v){return v!==undefined&&v!==null&&String(v).trim()!==\"\"&&Number.isFinite(Number(v));}// App-Port: getStrokeCount(), round(min(w, 1100) / 375 × 80 × 2), Deckel 320.\n// Im Web wird die Bar-Breite gemessen (App: Fensterbreite), damit die\n// Strich-Dichte im jeweiligen Container stimmt.\nexport function strokeCountFor(width){const effective=Math.min(width,RANGE.maxWidth);const proportional=Math.round(effective/RANGE.referenceWidth*RANGE.strokeCountBase*RANGE.strokeCountWebFactor);return Math.max(RANGE.strokeCountMin,Math.min(proportional,RANGE.strokeCountMax));}// SSR / kein-JS: App-Referenzdichte bei 375 px (80 × 2). Auf Mobile exakt\n// richtig, auf Desktop nur gröber, nie „vermatscht\".\nexport const SSR_STROKE_COUNT=RANGE.strokeCountBase*RANGE.strokeCountWebFactor;// App-Port: rangeTicks.ts\nexport function rangeDecimalsFor(value){return value%1===0?0:1;}// DIN-Komma wie formatValue() in der App.\nexport function formatRangeTick(value,decimals){return value.toFixed(decimals).replace(\".\",\",\");}// Tick-Beschriftung: wenn möglich die AUTORISIERTE Zahl der Marker-Seite,\n// nur DIN-Komma statt Punkt (rangeDecimalsFor rundet auf max. eine Stelle,\n// Cystatin C 0.85 würde sonst als „0,8\" erscheinen, also als falscher\n// Grenzwert). Nicht-numerische Prop-Strings werden verworfen, damit ein\n// Tippfehler nicht als Tick auf der Seite landet.\nexport function formatRangeLabel(raw,value,decimals){return isRangeNum(raw)?String(raw).trim().replace(\".\",\",\"):formatRangeTick(value,decimals);}const EDGE_MERGE_PERCENT=2;const LABEL_COLLISION_PERCENT=12;// App-Port: computeRangeTicks(), Eckwerte + Grenzwerte, sonst nichts.\nexport function computeRangeTicks(displayMin,displayMax,refMin,refMax){if(!Number.isFinite(displayMin)||!Number.isFinite(displayMax)||displayMax<=displayMin){return[];}const span=displayMax-displayMin;const toPercent=value=>Math.min(100,Math.max(0,(value-displayMin)/span*100));const boundaries=[refMin,refMax].filter(value=>Number.isFinite(value)).map(value=>({value,percent:toPercent(value)}))// Grenzen am Skalenrand trägt der Endpunkt selbst\n.filter(b=>b.percent>EDGE_MERGE_PERCENT&&b.percent<100-EDGE_MERGE_PERCENT).map(b=>({percent:b.percent,value:b.value,decimals:rangeDecimalsFor(b.value),kind:\"boundary\",align:\"center\",showLabel:true}));const endpointLabelVisible=endpointPercent=>!boundaries.some(b=>Math.abs(b.percent-endpointPercent)<LABEL_COLLISION_PERCENT);const endpoints=[{percent:0,value:displayMin,decimals:rangeDecimalsFor(displayMin),kind:\"endpoint\",align:\"left\",showLabel:endpointLabelVisible(0)},{percent:100,value:displayMax,decimals:rangeDecimalsFor(displayMax),kind:\"endpoint\",align:\"right\",showLabel:endpointLabelVisible(100)}];return[...endpoints,...boundaries].sort((a,b)=>a.percent-b.percent);}// Zonen-Mathematik + fertige Strich-Liste. Reine Funktion, keine Mutation,\n// die Sections rendern nur noch das Ergebnis.\n//\n// Prop-Mapping auf die App-Signatur:\n//   rangeMin/rangeMax     → displayMin/displayMax (Skalenenden)\n//   optimalMin/optimalMax → refMin/refMax (Referenzgrenzen)\n// App-Defaults 1:1: Optimal-Band = Referenz 20 % eingerückt, Skala =\n// Referenz ± 30 %, wenn die jeweilige Angabe fehlt.\nexport function computeStrokeZones(input){const{rangeMin,rangeMax,optimalMin,optimalMax,markerValue,strokeCount=SSR_STROKE_COUNT,strokeHeight=RANGE.strokeHeight,revealDurationS=M.durReveal}=input||{};const hasOptMin=isRangeNum(optimalMin);const hasOptMax=isRangeNum(optimalMax);const rawDispMin=isRangeNum(rangeMin)?Number(rangeMin):null;const rawDispMax=isRangeNum(rangeMax)?Number(rangeMax):null;// Fehlende Referenzgrenze = Skalenende (App-Fallback: 0 bzw. 100).\nconst refMin=hasOptMin?Number(optimalMin):rawDispMin!==null?rawDispMin:0;const refMax=hasOptMax?Number(optimalMax):rawDispMax!==null?rawDispMax:100;const refWidth=refMax-refMin;const dispMin=rawDispMin!==null?rawDispMin:Math.max(0,refMin-refWidth*RANGE.displayPad);const dispMax=rawDispMax!==null?rawDispMax:refMax+refWidth*RANGE.displayPad;const dispRange=Math.max(dispMax-dispMin,1);// Genug Daten für eine ehrliche Skala? Section 03 rendert unabhängig davon\n// (Bestandsverhalten), der Hero rendert die Vorschau nur bei true.\nconst hasScale=(rawDispMin!==null&&rawDispMax!==null||hasOptMin&&hasOptMax)&&dispMax>dispMin;// App-Default: Optimal-Band 20 % innerhalb der Referenzgrenzen.\nconst optInnerMin=refMin+refWidth*RANGE.optimalInset;const optInnerMax=refMax-refWidth*RANGE.optimalInset;const pctOf=v=>(v-dispMin)/dispRange*100;const refStartPercent=pctOf(refMin);const refEndPercent=pctOf(refMax);const optimalStartPercent=pctOf(optInnerMin);const optimalEndPercent=pctOf(optInnerMax);// App: biomarkerType. Aus den gesetzten Grenzen abgeleitet, damit kein\n// neuer Property-Key nötig ist (harte Regel: 37 Marker-Seiten).\n// Eine Grenze zählt nur als echte Grenze, wenn sie INNERHALB der Skala\n// liegt: Marker-Seiten setzen bewusst optimalMin = rangeMin (ApoB 0/0)\n// bzw. optimalMax = rangeMax (Vitamin D 50/50), das heißt „nach unten/\n// oben keine Grenze\", nicht „Grenze am Skalenrand\".\nconst lowerBounded=hasOptMin&&refMin>dispMin;const upperBounded=hasOptMax&&refMax<dispMax;const biomarkerType=lowerBounded&&upperBounded?\"range\":upperBounded?\"lower_is_better\":lowerBounded?\"higher_is_better\":\"range\";// App-Port: getStrokeColor()\nconst strokeColorAt=strokePercent=>{if(biomarkerType===\"lower_is_better\"){if(strokePercent<=optimalEndPercent)return RANGE.optimalColor;if(strokePercent<=refEndPercent)return RANGE.transitionColor;return RANGE.outOfRangeColor;}if(biomarkerType===\"higher_is_better\"){if(strokePercent<refStartPercent)return RANGE.outOfRangeColor;if(strokePercent<optimalStartPercent)return RANGE.transitionColor;return RANGE.optimalColor;}if(strokePercent<refStartPercent)return RANGE.outOfRangeColor;if(strokePercent<optimalStartPercent)return RANGE.transitionColor;if(strokePercent<=optimalEndPercent)return RANGE.optimalColor;if(strokePercent<=refEndPercent)return RANGE.transitionColor;return RANGE.outOfRangeColor;};// Wert-Strich (App: markerStrokeIndex aus valueProgress). Nicht-numerische\n// Werte rendern gar keinen Marker statt „NaN%\".\nconst hasMarker=isRangeNum(markerValue);const markerVal=hasMarker?Number(markerValue):null;const valueProgress=hasMarker?Math.min(Math.max((markerVal-dispMin)/dispRange,0),1):0;const markerIndex=hasMarker?Math.round(valueProgress*(strokeCount-1)):-1;const caretLeft=hasMarker?(markerIndex+.5)/strokeCount*100:0;// App: 150 ms je Strich, 20 ms Stagger. Bei 320 Strichen wären 20 ms ein\n// 6,4-s-Sweep, im Web auf die Reveal-Gesamtdauer normiert, Deckel 20 ms.\nconst staggerMs=Math.min(RANGE.strokeStagger,revealDurationS*1e3/Math.max(strokeCount,1));const sweepEnd=(strokeCount-1)*staggerMs/1e3;const strokes=Array.from({length:strokeCount},(_,i)=>{const strokePercent=i/Math.max(strokeCount-1,1)*100;const distance=hasMarker?Math.abs(i-markerIndex):-1;const factor=distance===0?RANGE.peakMarker:distance===1?RANGE.peakNeighbor1:distance===2?RANGE.peakNeighbor2:distance===3?RANGE.peakNeighbor3:1;return{h:strokeHeight*factor,c:strokeColorAt(strokePercent),d:i*staggerMs/1e3};});return{hasScale,dispMin,dispMax,dispRange,refMin,refMax,hasOptMin,hasOptMax,lowerBounded,upperBounded,biomarkerType,hasMarker,markerVal,markerIndex,caretLeft,strokes,ticks:computeRangeTicks(dispMin,dispMax,refMin,refMax),staggerMs,sweepEnd};}// CSS der Strich-Grafik, slug-prefixt (kollisionsfrei, mehrere Sections pro\n// Seite). Defaults = Section-03-Optik 1:1; der Hero überschreibt nur Größen.\n// Erwartetes Markup:\n//   <div class=\"<slug>-bar\">  n × <span class=\"<slug>-stroke\">  [+ <span class=\"<slug>-caret\">]\n//   <div class=\"<slug>-ruler\"> <span class=\"<slug>-ruler-base\"> + Ticks/Labels\n// Die Striche blenden ein, sobald der Bar-Container \"is-visible\" trägt.\nexport function strokeRangeCSS(slug,opts={}){const{barHeight=RANGE.barHeight,caretOffset=8,rulerHeight=RANGE.rulerHeight,rulerGap=RANGE.rulerGap,rulerLabel=RANGE.rulerLabel,labelTop=10,labelWidth=64,safetyDelayS=2}=opts;return`\n.${slug}-bar {\n    position: relative; display: flex; align-items: center;\n    height: ${barHeight}px; width: 100%;\n    /* V14.5-Fix: strokeGap wurde definiert, aber nie angewendet, ohne\n       Abstand verschmolzen die Striche zu einem durchgehenden Balken. */\n    gap: ${RANGE.strokeGap}px;\n}\n.${slug}-stroke {\n    flex: 1 1 0; min-width: 0; display: block;\n    border-radius: ${RANGE.strokeRadius}px;\n    opacity: 0; transition: opacity ${RANGE.strokeDur}s linear;\n    animation: ${slug}-stroke-safety 0.6s ${safetyDelayS}s ease-out forwards;\n}\n.${slug}-bar.is-visible .${slug}-stroke { opacity: 1; animation: none; }\nhtml.dm-js .${slug}-stroke { animation: none; }\n@keyframes ${slug}-stroke-safety { to { opacity: 1; } }\n\n/* Wert-Marker: Ink-Caret UNTER der Bar (App: styles.markerCaret) */\n.${slug}-caret {\n    position: absolute; bottom: -${caretOffset}px; width: 0; height: 0; margin-left: -4px;\n    border-left: 4px solid transparent; border-right: 4px solid transparent;\n    border-bottom: 5px solid ${RANGE.caretColor};\n    opacity: 0; transition: opacity ${M.durFast}s ${M.easeReveal};\n    animation: ${slug}-stroke-safety 0.6s ${safetyDelayS}s ease-out forwards;\n}\n.${slug}-bar.is-visible .${slug}-caret { opacity: 1; animation: none; }\nhtml.dm-js .${slug}-caret { animation: none; }\n\n/* Tick-Ruler (App: styles.ruler / rulerBaseline / rulerTick / rulerLabel) */\n.${slug}-ruler {\n    position: relative; height: ${rulerHeight}px;\n    margin-top: ${rulerGap}px;\n}\n.${slug}-ruler-base {\n    position: absolute; top: 0; left: 0; right: 0; height: 1px;\n    background: ${RANGE.rulerBaseline};\n}\n.${slug}-ruler-tick {\n    position: absolute; top: 0; width: 1px; height: 5px;\n    background: ${RANGE.rulerBaseline};\n}\n.${slug}-ruler-tick[data-kind=\"boundary\"] { height: 7px; background: ${RANGE.rulerTickColor}; }\n.${slug}-ruler-tick[data-last=\"1\"] { margin-left: -1px; }\n.${slug}-ruler-lab {\n    position: absolute; top: ${labelTop}px;\n    font-family: ${F.ui}; font-size: ${rulerLabel}px; font-weight: 400;\n    line-height: 1; color: ${C.text3};\n    font-variant-numeric: tabular-nums; white-space: nowrap;\n}\n.${slug}-ruler-lab[data-kind=\"boundary\"] { color: ${C.text2}; }\n.${slug}-ruler-lab[data-align=\"center\"] { width: ${labelWidth}px; margin-left: -${labelWidth/2}px; text-align: center; }\n.${slug}-ruler-lab[data-align=\"left\"] { left: 0; text-align: left; }\n.${slug}-ruler-lab[data-align=\"right\"] { right: 0; text-align: right; }\n\n@media (prefers-reduced-motion: reduce) {\n    .${slug}-stroke, .${slug}-caret {\n        opacity: 1 !important; transition: none !important; animation: none !important;\n    }\n}\n`;}// ── Trend-Chart (V15.1), echte App-Parität ────────────────────────────\n// Werte 1:1 aus der laufenden App übernommen (Beschluss Paul 2026-07-30):\n//   /Damoi/03_App/damoi-app-main/src/components/charts/DamoiLineChart.tsx\n//   /Damoi/03_App/damoi-app-main/src/components/charts/trendChartCanon.ts\n//   /Damoi/03_App/damoi-app-main/src/constants/theme.ts (CHART_TOKENS.light)\n//\n// Gemeint ist IMMER die Variante \"detail\" (der große Verlaufs-Chart der\n// Marker-Detail-Ansicht), card/sparkline sind auf der Website nicht im Spiel.\n// Die Linie ist bewusst neutrale Tinte, kein Brand-Gradient: „reads as data,\n// not decoration\". Farbe trägt allein die Peach-Fläche darunter (P-13).\nexport const CHART={// Linie + Punkte, CHART_TOKENS.light.line, stroke.detail, dotRadius.detail\nline:\"#293133\",strokeWidth:2.5,dotRadius:4,dotInnerRadius:2,calloutDotRadius:3.5,calloutDotRing:1.5,smoothTension:.12,// Grid + Achsen, fast unsichtbar (CHART_TOKENS.light)\ngrid:\"rgba(41, 49, 51, 0.08)\",gridDash:\"4,4\",axisLabel:\"#9CA3A6\",extremeLabel:\"#626A6C\",axisLabelSize:11,extremeLabelSize:12,calloutSize:12,// Referenzband, App rendert seit 2026-07-20 NUR die gestrichelten\n// Grenzlinien; die grüne Flächenfüllung ist raus (Paul), damit nicht\n// zwei Farbmassen konkurrieren. bandFill bleibt als Token dokumentiert.\nbandEdge:\"rgba(125, 184, 155, 0.45)\",bandFill:\"rgba(125, 184, 155, 0.14)\",bandDash:\"2,3\",// Peach-Fläche unter der Linie, trendChartCanon.TREND_AREA_GRADIENT\nareaHue:\"#E6AF91\",areaPeak:.45,areaMidStop:.55,areaMidFactor:.35,// Callout-Pill am letzten Punkt, trendChartCanon.TREND_CALLOUT\ncalloutWrapWidth:100,calloutGap:34,xLabelMinGap:30,// Geometrie, VARIANT_DEFAULTS.detail + CHART_TOKENS.padding\nheight:200,edgePadding:24,padTop:18,padBottom:18,yAxisWidth:38,xAxisHeight:26,xLabelWidth:50,extremeLabelWidth:80,valuePad:.12,// Motion, CHART_TOKENS.animation (ms → s)\ndrawDur:1.1,fadeDur:.3,// Web-Ergänzungen: die App hat eine feste Höhe (200), im Browser skaliert\n// der Chart mit der Spaltenbreite. Verhältnis so gewählt, dass Mobile nicht\n// zusammenfällt und Desktop nicht zur Plakatwand wird.\nwebHeightRatio:.42,webMinHeight:210,webMaxHeight:320,webDefaultWidth:720};// ── Gradient-Ring (V14.7), zentrales Interaktions-Vokabular ──────────\n// Ein Rahmen im CTA-Gradient, der sich um ein Element ZEICHNET. Beschluss\n// Paul 2026-07-30: ersetzt statische Highlights (Pricing-Hover, Panel-\n// Vergleich, offene FAQ-Zeile). Erstmals in 06b_Beta_Stimmen erprobt.\n//\n// Nutzung:\n//   CSS:    ${gradientRingCSS(\"slug\")}                      // Hover-Variante\n//           ${gradientRingCSS(\"slug\", { trigger: \"class\" })} // via .is-active\n//   Markup: <div className=\"slug-ringwrap\">              (position: relative)\n//             <svg className=\"slug-ring\" aria-hidden=\"true\" viewBox=\"0 0 100 100\"\n//                  preserveAspectRatio=\"none\">\n//               <defs><linearGradient id=\"slug-grad\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n//                 <stop offset=\"0%\" stop-color={C.peach}/>\n//                 <stop offset=\"100%\" stop-color={C.accent}/>\n//               </linearGradient></defs>\n//               <rect x=\"0.6\" y=\"0.6\" width=\"98.8\" height=\"98.8\" rx=\"2\"\n//                     pathLength=\"1\" stroke=\"url(#slug-grad)\"\n//                     vectorEffect=\"non-scaling-stroke\"/>\n//             </svg>\n//             … Inhalt …\n//           </div>\n// rx im rect an den Karten-Radius anpassen (viewBox 0 bis 100, also grob\n// radius/breite*100). Reduced-Motion: Ring erscheint sofort voll.\nexport function gradientRingCSS(slug,opts={}){const{trigger=\"hover\",drawS=.5,width=2}=opts;const on=trigger===\"hover\"?`@media (hover: hover) { .${slug}-ringwrap:hover .${slug}-ring rect,\n    .${slug}-ringwrap:focus-within .${slug}-ring rect`:// hier KEIN \"{\" anhaengen (sonst doppelte Klammer = ungueltiges CSS).\n`.${slug}-ringwrap.is-active .${slug}-ring rect`;const close=trigger===\"hover\"?\"} }\":\"}\";const body=`\n        animation: ${slug}-ring-draw ${drawS}s ${M.easeUI} forwards;\n        opacity: 1;\n    `;return`\n.${slug}-ringwrap { position: relative; }\n.${slug}-ring {\n    position: absolute; inset: 0; width: 100%; height: 100%;\n    pointer-events: none; overflow: visible; z-index: 2;\n}\n.${slug}-ring rect {\n    fill: none;\n    stroke-width: ${width};\n    stroke-dasharray: 1;\n    stroke-dashoffset: 1;\n    opacity: 0;\n    transition: opacity ${M.durFast}s ${M.easeUI};\n}\n${on} {${body}${close}\n@keyframes ${slug}-ring-draw { to { stroke-dashoffset: 0; } }\n@media (prefers-reduced-motion: reduce) {\n    .${slug}-ring rect { animation: none !important; stroke-dashoffset: 0; }\n}\n`;}// ── Effekte (V14.1) ────────────────────────\nexport const EFFECT={liftTransform:\"translateY(-4px)\",liftTransition:`transform ${M.durFast}s ${M.easeUI}, box-shadow ${M.durFast}s ${M.easeUI}`};// Hover-Lift für Karten, CSS-Block, Selector frei wählbar:\n//   ${hoverLiftCSS(\".xy-card\")}\nexport function hoverLiftCSS(selector){return`\n${selector} { transition: ${EFFECT.liftTransition}; }\n@media (hover: hover) {\n    ${selector}:hover { transform: ${EFFECT.liftTransform}; box-shadow: ${SHADOW.lift}; }\n}\n`;}// Stagger-Delay für Reveal-Gruppen:\n//   style={{ transitionDelay: staggerDelay(i) }}\nexport function staggerDelay(index,stepMs=M.stagger){return`${index*stepMs/1e3}s`;}// Count-Up-Easing (Stats, Pricing), GSAP-power2.out-Äquivalent\nexport function easeOutCubic(t){return 1-Math.pow(1-t,3);}// ── Akzent-Sweep (V14.2 Rev. 2, Cleo-Pattern · Beschluss Paul 2026-07-30) ─────\n// Basis: Wort steht in text1 (dunkel, NICHT rot). Beim ersten Sichtbarwerden\n// wandert EINMAL ein Gradient-Band (peach→accent = CTA-Gradient-Farben)\n// EXTREM LANGSAM über das Wort, danach wieder dunkel. Nutzung:\n//   CSS:    ${accentSweepCSS(\"slug\")}          // Default 5s\n//   Markup: <em className=\"slug-sweep\">Akzentwort</em>\n//   Trigger: Klasse \"is-visible\" auf dem Wort ODER einem Vorfahren\n//   (dockt am bestehenden Reveal-System an, gleiche IO-Klasse).\n// Fallback ohne background-clip-Support: Wort bleibt schlicht text1.\n// REGEL (Beschluss Paul 2026-07-30): Der Sweep-Span umfasst IMMER die ganze\n// Fokus-Phrase, MINDESTENS 3 Wörter. Nie auf ein Einzelwort setzen.\n//   <span className=\"slug-sweep\">Getestet von uns.</span>  ✓\n//   <span className=\"slug-sweep\">Rhythmus</span>           ✗\n// (Kursiv-Akzente dürfen INNERHALB des Spans liegen, background-clip\n// des Parents färbt verschachtelte <em> mit.)\n// Band-Breite: farbiger Bereich 20 bis 80 % bei size 500 % (= 3× Span-Breite).\n// Die dunklen Zonen (je 20 %) sind exakt >= sichtbares Fenster (100/500).\n// Dadurch ist der Text VOR und NACH dem Sweep garantiert rein text1\n// (Rev. 6: fixt den Orange-Rest am Ende, Bugreport Paul 2026-07-30).\n// trigger: \"visible\" = feuert über die is-visible-Klasse des Reveal-Systems\n//          \"load\"    = feuert sofort nach Load (für Above-Fold-Heros ohne IO)\nexport function accentSweepCSS(slug,durS=2.6,trigger=\"visible\"){const runSelector=trigger===\"load\"?`.${slug}-sweep`:`.is-visible .${slug}-sweep,\n    .${slug}-sweep.is-visible`;return`\n.${slug}-sweep { color: ${C.text1}; }\n@supports ((-webkit-background-clip: text) or (background-clip: text)) {\n    .${slug}-sweep {\n        background: linear-gradient(105deg,\n            ${C.text1} 0%, ${C.text1} 20%,\n            ${C.peach} 40%, ${C.accent} 60%,\n            ${C.text1} 80%, ${C.text1} 100%);\n        background-size: 500% 100%;\n        background-position: 100% 0;\n        -webkit-background-clip: text;\n        background-clip: text;\n        -webkit-text-fill-color: transparent;\n    }\n    ${runSelector} {\n        animation: ${slug}-sweep-run ${durS}s linear 0.5s 1 both;\n    }\n    @keyframes ${slug}-sweep-run {\n        from { background-position: 100% 0; }\n        to   { background-position: 0% 0; }\n    }\n}\n@media (prefers-reduced-motion: reduce) {\n    .${slug}-sweep, .is-visible .${slug}-sweep { animation: none; }\n}\n`;}// Reines Token-/Utility-Modul, bewusst KEIN JSX, kein Default-Export\n// einer Komponente. Nicht auf den Canvas ziehen.\nexport default function DamoiCore(){return null;}\nexport const __FramerMetadata__ = {\"exports\":{\"M\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SSR_STROKE_COUNT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"computeRangeTicks\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"computeStrokeZones\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SPACE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"F\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"C\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"rangeDecimalsFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"formatRangeLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RANGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"markJsAlive\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RADIUS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hoverLiftCSS\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BUTTON\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gradientRingCSS\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"strokeCountFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"formatRangeTick\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"accentSweepCSS\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"staggerDelay\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"easeOutCubic\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EFFECT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"motionCSS\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHADOW\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"strokeRangeCSS\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isRangeNum\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CHART\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GRAD\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"observeReveals\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DamoiCore.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useState,useEffect,useRef}from\"react\";import Lenis from\"lenis\";import{createPortal}from\"react-dom\";import{C as CORE_C,GRAD,RADIUS,M,gradientRingCSS}from\"https://framerusercontent.com/modules/E5lpYYtAed1c8I887qYQ/NcJXWIX4dId61VXc6izk/DamoiCore.js\";/**\n * Damoi Header, drei Pills (Logo / Nav / CTA), full-width & dynamisch.\n *\n * WICHTIG zum Glas (backdrop-filter):\n *  - Header wird per Portal an document.body gehängt, damit er aus Framers\n *    (oft transformierten) Component-Wrappern ausbricht. Ein transform/filter\n *    auf irgendeinem Vorfahren würde den Blur sonst zerstören.\n *  - Im Component selbst hat im Ruhezustand KEIN Element ein transform.\n *  - Blur sieht man nur, wenn kontrastreicher Content (Foto/Text/Gradient)\n *    UNTER den Pills durchscrollt. Über flacher Fläche zeigt Blur nichts.\n *  - Framer-Canvas rendert backdrop-filter nicht. Immer in der Preview testen.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1440\n * @framerIntrinsicHeight 100\n */// ── Marken-Tokens ───────────────────────────────────────────────────\n// V14: Farben/Pill-Radius/CTA-Gradient aus DamoiCore (alle Werte exakt\n// identisch, visuell 1:1). Border/Shadow/Eases sind lokale Sonderwerte\n// ohne Core-Match und bleiben bewusst lokal.\nconst C={accent:CORE_C.accent,peach:CORE_C.peach,white:CORE_C.white};const TOKENS={border:\"rgba(41, 49, 51, 0.08)\",shadow:\"0 8px 28px rgba(41, 49, 51, 0.10)\",pillRadius:RADIUS.pill,gap:14,hoverBg:\"rgba(41, 49, 51, 0.06)\",fontSans:\"Inter, sans-serif\",navFontSize:\"clamp(16px, 1.05vw, 19px)\",sidePadding:\"clamp(14px, 1.8vw, 28px)\"};// Lokaler Wert war exakt GRAD.cta: linear-gradient(135deg, #E6AF91 0%, #C85A54 100%)\nconst CTA_GRADIENT=GRAD.cta;const STRONG_EASE=\"cubic-bezier(0.23, 1, 0.32, 1)\";const SLIDE_EASE=\"cubic-bezier(0.22, 0.03, 0.26, 1)\";const HIDE_EASE=\"cubic-bezier(0.4, 0, 0.2, 1)\"// weich, symmetrisch (kein harter Start)\n;const MOBILE_BREAKPOINT=860;const TOGGLE_SIZE=56// Burger UND Logo-Badge identisch groß auf Mobile\n;const NAV_ITEMS=[{label:\"Produkte\",link:\"/produkte\",mega:true},{label:\"Deine Ziele\",link:\"/ziele\",mega:true},{label:\"Was testen wir\",link:\"/was-testen-wir\",mega:true},{label:\"App\",link:\"/app\"},{label:\"Blog\",link:\"/blog\"}];// Mobile bleibt bewusst flach (Hub-Seiten übernehmen die Tiefe).\n// 2026-08-31 (Beschluss Paul): /so-funktionierts wird nicht published,\n// der Eintrag aus 2026-08-22 ist wieder entfernt (404-Quelle).\nconst MOBILE_NAV_ITEMS=[{label:\"Produkte\",link:\"/produkte\"},{label:\"Deine Ziele\",link:\"/ziele\"},{label:\"Was testen wir\",link:\"/was-testen-wir\"},{label:\"Finde dein Panel\",link:\"/quiz\"},{label:\"App\",link:\"/app\"},{label:\"Blog\",link:\"/blog\"}];const MEGA_COLUMNS=[{title:\"Produkte\",items:[{label:\"Stoffwechsel und Herz\",sub:\"ApoB, LDL, hsCRP\",link:\"/produkte/stoffwechsel-herz-test\",tag:\"P1\"},{label:\"Leber, Niere und Muskel\",sub:\"Leberwerte, eGFR, CK\",link:\"/produkte/leber-niere-test\",tag:\"P2\"},{label:\"Schilddr\\xfcse, Vitamine und Eisen\",sub:\"Ferritin, Vitamin D, TSH\",link:\"/produkte/schilddruesen-test\",tag:\"P3\"},{label:\"Hormone und Vitalit\\xe4t\",sub:\"Testosteron, Oestradiol (E2)\",link:\"/produkte/hormontest\",tag:\"P4\"}],footer:{label:\"Alle Produkte\",link:\"/produkte\"}},{title:\"Deine Ziele\",items:[{label:\"Ausdauer & Laufen\",sub:\"Eisen, Regeneration, Belastung\",link:\"/ziele/ausdauer\"},{label:\"Wechseljahre\",sub:\"FSH, LH, Oestradiol (E2)\",link:\"/ziele/wechseljahre\"},{label:\"Energie & M\\xfcdigkeit\",sub:\"Schilddr\\xfcse, Eisen, B12\",link:\"/ziele/energie\"},{label:\"Longevity\",sub:\"ApoB, hsCRP, Nierenfunktion\",link:\"/ziele/longevity\"},{label:\"Testosteron\",sub:\"Gesamt, frei, SHBG\",link:\"/ziele/testosteron\"},{label:\"Vegan & Vegetarisch\",sub:\"Aktives B12, Eisen, Vitamin D\",link:\"/ziele/vegan\"}]},{title:\"Was testen wir\",items:[{label:\"Lipide\",sub:\"Von Gesamtcholesterin bis ApoB\",link:\"/was-testen-wir/lipide\"},{label:\"Leber und Niere\",sub:\"ALT, GGT, eGFR und mehr\",link:\"/was-testen-wir/leber-und-niere\"},{label:\"Schilddr\\xfcse und Vitamine\",sub:\"TSH, Ferritin, Vitamin D\",link:\"/was-testen-wir/schilddruese-vitamine\"},{label:\"Hormone\",sub:\"Testosteron bis FSH\",link:\"/was-testen-wir/hormone\"}],footer:{label:\"Alle 34 Biomarker\",link:\"/was-testen-wir\"}},// Seit dem Kategorie-Panel-Umbau (2026-09-01) ohne Trigger: kein\n// Nav-Punkt heißt \"Damoi\", die Spalte wird also nicht mehr gerendert.\n// Daten bleiben absichtlich stehen (Links liegen auch im Footer);\n// ein späterer Nav-Punkt \"Damoi\" mit mega: true aktiviert sie wieder.\n{title:\"Damoi\",items:[{label:\"Die App\",sub:\"Trends, Scores, Empfehlungen\",link:\"/app\"},{label:\"Vision\",sub:\"Warum es Damoi gibt\",link:\"/vision\"},{label:\"F\\xfcr Unternehmen\",sub:\"Gesundheit als Benefit\",link:\"/fuer-unternehmen\"},{label:\"Hilfe\",sub:\"Antworten und Kontakt\",link:\"/hilfe\"}]}];const MEGA_FOOTER={text:\"Unsicher, welches Panel zu dir passt?\",label:\"Finde dein Panel\",link:\"/quiz\"};const CTA={label:\"Platz sichern\",link:\"#waitlist\"};// ── CSS (einmalig): nur CTA-Pattern ─────────────────────────────────\nconst HEADER_CSS=`\n/* Global Reset: In-App-Browser (Instagram/Facebook WKWebView) skalieren Text\n   sonst automatisch hoch (\"font boosting\"), echtes Safari nicht. Das ist die\n   Ursache f\\xfcr zu gro\\xdfe Headings, wenn man die Seite aus Instagram \\xf6ffnet.\n   100% = keine automatische Vergr\\xf6\\xdferung. Header l\\xe4dt auf jeder Seite, daher\n   die richtige Stelle f\\xfcr die globale Regel. */\nhtml { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }\n.dm-hdr-cta {\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: calc(17px * var(--dm-hs, 1)) calc(32px * var(--dm-hs, 1));\n    background: ${CTA_GRADIENT};\n    color: ${C.white};\n    border: none;\n    border-radius: ${RADIUS.pill}px;\n    font-family: ${TOKENS.fontSans};\n    font-weight: 600;\n    font-size: calc(15px * var(--dm-hs, 1));\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    text-decoration: none;\n    cursor: pointer;\n    overflow: hidden;\n    white-space: nowrap;\n    box-shadow: 0 4px 16px rgba(200, 90, 84, 0.22);\n    transition:\n        transform 200ms ${STRONG_EASE},\n        box-shadow 200ms ${STRONG_EASE},\n        filter 200ms ease-out;\n    -webkit-tap-highlight-color: transparent;\n    will-change: transform;\n}\n@media (hover: hover) {\n    .dm-hdr-cta:hover {\n        transform: translateY(-2px);\n        box-shadow: 0 8px 24px rgba(200, 90, 84, 0.35);\n        filter: brightness(1.05);\n    }\n}\n.dm-hdr-cta:active { transform: scale(0.97); transition-duration: 80ms; }\n.dm-hdr-cta-text { display: inline-flex; flex-direction: column; height: 1.2em; overflow: hidden; }\n.dm-hdr-cta-line {\n    display: block; height: 1.2em; line-height: 1.2em;\n    transition: transform 0.4s ${SLIDE_EASE}; white-space: nowrap;\n}\n.dm-hdr-cta:hover .dm-hdr-cta-line { transform: translateY(-1.2em); }\n.dm-hdr-cta.is-block { width: 100%; }\n\n@media (prefers-reduced-motion: reduce) {\n    .dm-hdr-cta, .dm-hdr-cta-line { transition: none !important; }\n    .dm-hdr-cta:hover, .dm-hdr-cta:active { transform: none !important; }\n    .dm-hdr-cta:hover .dm-hdr-cta-line { transform: none !important; }\n}\n/* Gradient-Ring auf Nav-Hover (V14 \\xa73.4). drawS/width dezenter als bei\n   Karten: kleines Pill-Format. Keyframes + Reduced-Motion liefert der\n   Helper mit. */\n${gradientRingCSS(\"dm-nav\",{drawS:.4,width:1.5})}\n/* Mega-Panel-Items: Hover-Fl\\xe4che via CSS statt per-Item-State.\n   V3 (Paul 2026-08-10): Hover-Fl\\xe4che wieder die schlichte T\\xf6nung (V1),\n   der Rahmen ZEICHNET sich stattdessen wie bei den Nav-Pills: echter\n   Gradient-Ring (V14 \\xa73.4) mit Draw-Animation, Pixel-Variante ohne\n   viewBox (rx = fester Item-Radius 14, wuerde mit viewBox elliptisch). */\n.dm-mega-item {\n    display: block;\n    text-decoration: none;\n    border-radius: 14px;\n    transition: background 160ms ease;\n}\n@media (hover: hover) {\n    .dm-mega-item:hover { background: rgba(41, 49, 51, 0.06); }\n}\n${gradientRingCSS(\"dm-mega\",{drawS:.4,width:1.5})}\n/* Panel-Inhalt blendet kurz ein; l\\xe4uft auch beim Kategorie-Wechsel\n   erneut (key-Remount der Spalte). Transform auf KINDERN des\n   Glas-Panels ist unkritisch, der backdrop-filter sitzt auf dem Panel\n   selbst. 2026-09-01: 0.5s statt 0.9s, passend zum schnelleren Panel\n   (Klick-Bug-Fix, siehe Kommentar am motion.div). */\n@keyframes dm-mega-colin {\n    from { opacity: 0; transform: translate3d(0, 10px, 0); }\n    to { opacity: 1; transform: none; }\n}\n.dm-mega-col { animation: dm-mega-colin 0.5s ${M.easeUI} both; }\n@media (prefers-reduced-motion: reduce) {\n    .dm-mega-col { animation: none; }\n}\n/* Farbige Panel-Links (Spalten-Footer + Bottom-Bar): Gradient-Text\n   statt flachem Terracotta (Paul 2026-08-10). Fallback ohne\n   background-clip-Support bleibt Accent. */\n.dm-mega-gradlink {\n    color: ${C.accent};\n}\n@supports ((-webkit-background-clip: text) or (background-clip: text)) {\n    .dm-mega-gradlink {\n        background-image: ${CTA_GRADIENT};\n        -webkit-background-clip: text;\n        background-clip: text;\n        -webkit-text-fill-color: transparent;\n    }\n}\n`;function injectAssets(){if(typeof document===\"undefined\")return;if(!document.getElementById(\"damoi-fonts-v16\")){const fontLink=document.createElement(\"link\");fontLink.id=\"damoi-fonts-v16\";fontLink.rel=\"stylesheet\";fontLink.href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap\";document.head.appendChild(fontLink);[\"damoi-fonts-v12\",\"damoi-fonts-v13\",\"damoi-fonts-v14\",\"damoi-fonts-v15\"].forEach(function(id){const stale=document.getElementById(id);if(stale)stale.remove();});}if(!document.getElementById(\"dm-hdr-css\")){const s=document.createElement(\"style\");s.id=\"dm-hdr-css\";s.textContent=HEADER_CSS;document.head.appendChild(s);}}// ── CTA (dm-btn, Text-Slide) ────────────────────────────────────────\nfunction HeaderCTA({label,href,block}){return /*#__PURE__*/_jsx(\"a\",{href:href||\"#\",className:block?\"dm-hdr-cta is-block\":\"dm-hdr-cta\",\"aria-label\":label,children:/*#__PURE__*/_jsxs(\"span\",{className:\"dm-hdr-cta-text\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"dm-hdr-cta-line\",children:label}),/*#__PURE__*/_jsx(\"span\",{className:\"dm-hdr-cta-line\",\"aria-hidden\":\"true\",children:label})]})});}// ── Gradient-Ring fuer Mega-Panel-Items (Pixel-Variante, rx fix 14) ──\n// Zeichnet sich im Hover ueber die dm-mega-ringwrap-Klasse, exakt die\n// Mechanik der Nav-Pills. Ein Ring pro Item, Gradient-ID muss eindeutig\n// sein (Framer rendert das Panel einmal pro Seite).\nfunction MegaRing({gradId}){return /*#__PURE__*/_jsxs(\"svg\",{className:\"dm-mega-ring\",\"aria-hidden\":\"true\",focusable:\"false\",children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:gradId,x1:\"0%\",y1:\"0%\",x2:\"100%\",y2:\"100%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:C.peach}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:C.accent})]})}),/*#__PURE__*/_jsx(\"rect\",{width:\"100%\",height:\"100%\",rx:\"14\",ry:\"14\",pathLength:\"1\",stroke:`url(#${gradId})`})]});}// ── Hook: Viewport-Breite (SSR-sicher) ──────────────────────────────\n// Lazy-Initializer liest die Breite SYNCHRON beim ersten Client-Render.\n// Dadurch kennt der allererste Paint schon Mobil/Desktop und der volle\n// Desktop-Nav blitzt nicht mehr kurz auf, bevor der Burger erscheint.\n// Nur am Server (kein window) starten wir mit null → dort greift Desktop.\nfunction useViewportWidth(){const[width,setWidth]=useState(()=>typeof window!==\"undefined\"?window.innerWidth:null);useEffect(()=>{const update=()=>setWidth(window.innerWidth);update();window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);},[]);return width;}// ── Nav-Link mit weichem Hover + Gradient-Ring (V14 §3.4) ───────────\n// Pill-Breite variiert je Label, deshalb die Pixel-Variante ohne\n// viewBox (wie PanelFinder): Hoehe messen, rx = halbe Hoehe. Ein\n// pauschales rx wuerde an der Breite clampen und die Ecken elliptisch\n// machen. Ring zeichnet sich via CSS :hover/:focus-within, der\n// JS-Hover-State steuert nur die Pill-Flaeche.\nfunction NavLink({href,label,color,scale=1,gradId,chevron=false,expanded=false,onHoverStart}){const[hover,setHover]=useState(false);const[ringH,setRingH]=useState(0);const ref=useRef(null);useEffect(()=>{const el=ref.current;if(!el||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(()=>setRingH(el.offsetHeight));ro.observe(el);return()=>ro.disconnect();},[]);return /*#__PURE__*/_jsxs(\"a\",{ref:ref,href:href||\"#\",className:\"dm-nav-ringwrap\",\"aria-haspopup\":chevron?\"true\":undefined,\"aria-expanded\":chevron?expanded:undefined,onMouseEnter:()=>{setHover(true);if(onHoverStart)onHoverStart();},onMouseLeave:()=>setHover(false),onFocus:()=>{if(onHoverStart)onHoverStart();},style:{display:\"inline-flex\",alignItems:\"center\",padding:`${11*scale}px ${20*scale}px`,borderRadius:RADIUS.pill,color,fontFamily:TOKENS.fontSans,fontSize:`calc(${TOKENS.navFontSize} * ${scale})`,fontWeight:500,textDecoration:\"none\",whiteSpace:\"nowrap\",transition:\"background 160ms ease\",background:hover?TOKENS.hoverBg:\"transparent\"},children:[ringH>0?/*#__PURE__*/_jsxs(\"svg\",{className:\"dm-nav-ring\",\"aria-hidden\":\"true\",focusable:\"false\",children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:gradId,x1:\"0%\",y1:\"0%\",x2:\"100%\",y2:\"100%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:C.peach}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:C.accent})]})}),/*#__PURE__*/_jsx(\"rect\",{width:\"100%\",height:\"100%\",rx:ringH/2,ry:ringH/2,pathLength:\"1\",stroke:`url(#${gradId})`})]}):null,label,chevron?// Chevron als Kind-Element: transform hier ist unkritisch,\n// das Glas (backdrop-filter) sitzt auf der Nav-Pill.\n/*#__PURE__*/_jsx(\"svg\",{width:Math.round(10*scale),height:Math.round(10*scale),viewBox:\"0 0 10 10\",\"aria-hidden\":\"true\",focusable:\"false\",style:{marginLeft:Math.round(6*scale),flexShrink:0,transition:`transform ${M.durFast}s ${M.easeUI}`,transform:expanded?\"rotate(180deg)\":\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M2 3.5 L5 6.5 L8 3.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})}):null]});}// ── Burger-Toggle (Mobile) ──────────────────────────────────────────\nfunction MenuToggle({open,onClick,color,bg,blur,border,size=TOGGLE_SIZE}){const line={width:20,height:2,background:color,borderRadius:2,display:\"block\",transition:\"transform 220ms ease, opacity 180ms ease\"};return /*#__PURE__*/_jsxs(\"button\",{\"aria-label\":\"Men\\xfc\",onClick:onClick,style:{width:size,height:size,borderRadius:RADIUS.pill,border,background:bg,backdropFilter:`blur(${blur}px)`,WebkitBackdropFilter:`blur(${blur}px)`,boxShadow:TOKENS.shadow,cursor:\"pointer\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:5,pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{...line,transform:open?\"translateY(7px) rotate(45deg)\":\"none\"}}),/*#__PURE__*/_jsx(\"span\",{style:{...line,opacity:open?0:1}}),/*#__PURE__*/_jsx(\"span\",{style:{...line,transform:open?\"translateY(-7px) rotate(-45deg)\":\"none\"}})]});}export default function DamoiHeader(props){const{logo,logoHeight=44,wordmark=\"damoi\",textColor=\"#2B2422\",glassTint=\"rgba(250, 249, 246, 0.55)\",blur=20,headerScale=.9,topOffset=18,mobileBreakpoint=860,hideOnScroll=true,fixed=true,smoothScroll=true}=props;// Globaler Header-Größen-Faktor (Slider). Skaliert Badge, Burger, Nav, CTA\n// proportional, NICHT via CSS-transform (würde das Glas/backdrop-filter killen).\nconst scale=headerScale;const toggleSize=Math.round(TOGGLE_SIZE*scale);const[mounted,setMounted]=useState(false);useEffect(()=>{injectAssets();setMounted(true);},[]);const width=useViewportWidth();const isMobile=width!==null&&width<=mobileBreakpoint;const[open,setOpen]=useState(false);const[hidden,setHidden]=useState(false);const items=NAV_ITEMS;// ── Kategorie-Panel (Desktop) ───────────────────────────────────\n// activeMega hält den MEGA_COLUMNS-Titel der offenen Kategorie\n// (null = zu). Hover-Intent: Öffnen sofort, Schließen mit 240ms\n// Verzögerung. 240ms statt der früheren 140ms, weil der Weg von der\n// Nav-Pill über die tote Zone ins Panel sonst zu knapp ist: Panel\n// begann den Exit, blieb aber klickbar gemountet, und der Link\n// verschwand zwischen Mousedown und Mouseup aus dem DOM. Das war\n// die Hauptursache für \"erster Klick tut nichts\" (Paul 2026-09-01).\nconst[activeMega,setActiveMega]=useState(null);const megaCloseTimer=useRef(null);const megaCancelClose=()=>{if(megaCloseTimer.current!==null){window.clearTimeout(megaCloseTimer.current);megaCloseTimer.current=null;}};const megaEnter=title=>{megaCancelClose();setActiveMega(title);};const megaScheduleClose=()=>{if(megaCloseTimer.current!==null){window.clearTimeout(megaCloseTimer.current);}megaCloseTimer.current=window.setTimeout(()=>{setActiveMega(null);megaCloseTimer.current=null;},240);};useEffect(()=>{return()=>{if(megaCloseTimer.current!==null){window.clearTimeout(megaCloseTimer.current);}};},[]);// Escape schließt das Panel (Tastatur-Nutzer kommen sonst nicht raus).\nuseEffect(()=>{if(typeof window===\"undefined\")return;const onKey=e=>{if(e.key===\"Escape\")setActiveMega(null);};window.addEventListener(\"keydown\",onKey);return()=>window.removeEventListener(\"keydown\",onKey);},[]);// Logo-Badge: Desktop skaliert mit logoHeight, Mobile exakt so groß wie der Burger\nconst badgeSize=isMobile?toggleSize:Math.round((logoHeight+24)*scale);const badgeImg=isMobile?Math.round(toggleSize*.62):Math.round(logoHeight*scale);const dropdownTop=topOffset+badgeSize+10;// Aktive Kategorie-Spalte (null = Panel zu). AnimatePresence rendert\n// beim Exit den letzten Stand weiter, der Inhalt bleibt also auch\n// während des Ausblendens sichtbar.\nconst activeColumn=activeMega?MEGA_COLUMNS.find(c=>c.title===activeMega)??null:null;const activeColumnIndex=activeColumn?MEGA_COLUMNS.indexOf(activeColumn):-1;// Smart-Hide: runterscrollen = weg, hochscrollen = zurück.\nuseEffect(()=>{if(!fixed||!hideOnScroll||typeof window===\"undefined\")return;let lastY=window.scrollY;const onScroll=()=>{const y=window.scrollY;if(Math.abs(y-lastY)<6)return;// Jitter-Schwelle\nif(y>lastY&&y>80){setHidden(true);setOpen(false);setActiveMega(null);}else{setHidden(false);}lastY=y;};window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",onScroll);},[fixed,hideOnScroll]);// ── Universeller Smooth Scroll (Lenis) ──────────────────────────\n// Der Header liegt auf jeder Seite → einmal hier initialisiert gilt\n// Lenis für die ganze Website.\n//\n// Kompatibilität: Lenis animiert die NATIVE Scroll-Position (kein\n// Transform-Fake-Scroll). Dadurch funktionieren unverändert:\n//  - window.scrollY (→ Smart-Hide-Effect oben liest weiter korrekt)\n//  - IntersectionObserver (Reveal-Animationen der Sections)\n//  - position: sticky (z. B. HIW-Pinning)\n// HEADER_CSS injiziert bewusst KEIN `scroll-behavior: smooth`, das\n// würde mit Lenis kollidieren (doppelte Animation). Nicht ergänzen!\nuseEffect(()=>{// Guard a: SSR, kein window, kein Scroll.\nif(typeof window===\"undefined\")return;// Guard b: Framer-Canvas. Dort niemals Scroll kapern.\ntry{if(RenderTarget.current()===RenderTarget.canvas)return;}catch(_e){// RenderTarget nicht verfügbar → kein Canvas, weiter.\n}// Property-Control: Smooth Scroll abschaltbar.\nif(!smoothScroll)return;// Guard c: Nutzer wünscht reduzierte Bewegung → natives Scrollen.\nif(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;// Guard d: Doppel-Init-Schutz (Header könnte doppelt mounten).\nif(window.__damoiLenis)return;// V2 (Feedback Paul): lerp statt duration, spürbar subtiler und\n// stoppt ohne langes Nachziehen (höherer lerp = strafferes Ende).\nconst lenis=new Lenis({lerp:.2,smoothWheel:true,syncTouch:false});window.__damoiLenis=lenis;let rafId=0;function raf(t){lenis.raf(t);rafId=requestAnimationFrame(raf);}rafId=requestAnimationFrame(raf);// Anker-Links (#hash) sanft via Lenis scrollen, mit Offset für\n// die fixe Nav. preventDefault NUR, wenn das Ziel existiert.\nconst onAnchorClick=e=>{if(e.defaultPrevented)return;if(e.button!==0)return;// nur Linksklick\nif(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const target=e.target;const anchor=target&&typeof target.closest===\"function\"?target.closest('a[href^=\"#\"]'):null;if(!anchor)return;const hash=anchor.getAttribute(\"href\");if(!hash||hash===\"#\")return;const el=document.getElementById(hash.slice(1));if(!el)return;// Ziel fehlt → natives Verhalten belassen\ne.preventDefault();lenis.scrollTo(el,{offset:-96});};document.addEventListener(\"click\",onAnchorClick,true)// capture\n;return()=>{document.removeEventListener(\"click\",onAnchorClick,true);cancelAnimationFrame(rafId);lenis.destroy();if(window.__damoiLenis===lenis){delete window.__damoiLenis;}};},[smoothScroll]);// Glas-Pill, KEIN transform im Ruhezustand (sonst Blur kaputt).\n// Kontrast-Boost (Paul 2026-08-10, V2 nachgeschaerft): Auf dunklen\n// Foto-Heros war die dunkle Nav-Schrift durch die halbtransparente\n// Pille schlecht lesbar. Ein zusaetzlicher Beige-Layer UEBER dem\n// Instanz-Tint garantiert eine Mindest-Deckung, egal was die\n// (eingefrorene) Instanz-Prop sagt. 0.52 ergibt mit dem Default-Tint\n// (0.55) rund 78 Prozent Deckung: fast solide, Blur bleibt sichtbar.\nconst pillBg=`linear-gradient(rgba(250,249,246,0.52), rgba(250,249,246,0.52)), ${glassTint}`;const pill={background:pillBg,backdropFilter:`blur(${blur}px)`,WebkitBackdropFilter:`blur(${blur}px)`,border:`1px solid ${TOKENS.border}`,borderRadius:TOKENS.pillRadius,boxShadow:TOKENS.shadow};const header=/*#__PURE__*/_jsxs(\"div\",{style:{position:fixed?\"fixed\":\"relative\",top:0,left:0,right:0,zIndex:1e3,boxSizing:\"border-box\",[\"--dm-hs\"]:scale,padding:`${topOffset}px ${TOKENS.sidePadding} clamp(14px, 1.4vw, 20px)`,// Verstecken über transform (GPU) + sanftes Fade. Im sichtbaren\n// Zustand exakt \"none\", damit backdrop-filter intakt bleibt.\ntransform:fixed&&hidden?\"translateY(-105%)\":\"none\",opacity:fixed&&hidden?0:1,transition:`transform 640ms ${HIDE_EASE}, opacity 420ms ease`,pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"style\",{id:\"dm-hdr-css\",children:HEADER_CSS}),/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",position:\"relative\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsxs(\"a\",{href:\"/\",\"aria-label\":\"Damoi, Startseite\",style:{display:\"flex\",alignItems:\"center\",gap:12,textDecoration:\"none\",pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...pill,width:badgeSize,height:badgeSize,borderRadius:\"50%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",flexShrink:0},children:logo?/*#__PURE__*/_jsx(\"img\",{src:logo,alt:\"\",style:{height:badgeImg,width:badgeImg,objectFit:\"contain\",display:\"block\"}}):null}),wordmark?/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:TOKENS.fontSans,fontWeight:600,color:textColor,fontSize:Math.round(logoHeight*.62*scale),letterSpacing:\"-0.01em\",// Wordmark steht als einziges Element OHNE\n// Glas-Pille direkt auf dem Hero. Heller Halo\n// sichert die Lesbarkeit auf dunklen Fotos,\n// auf beigen Flaechen ist er unsichtbar.\ntextShadow:\"0 1px 2px rgba(250,249,246,0.9), 0 0 14px rgba(250,249,246,0.6)\"},children:wordmark}):null]}),!isMobile&&items.length>0?/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,right:0,top:0,bottom:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"nav\",{onMouseLeave:megaScheduleClose,style:{...pill,display:\"flex\",alignItems:\"center\",gap:2,padding:`${8*scale}px ${12*scale}px`,pointerEvents:\"auto\"},children:items.map((it,i)=>/*#__PURE__*/_jsx(NavLink,{href:it.link,label:it.label,color:textColor,scale:scale,gradId:`dm-nav-grad-${i}`,chevron:!!it.mega,expanded:!!it.mega&&activeMega===it.label,onHoverStart:it.mega?()=>megaEnter(it.label):megaScheduleClose},i))})}):null,/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:TOKENS.gap,pointerEvents:\"none\"},children:[!isMobile?/*#__PURE__*/_jsx(\"span\",{style:{pointerEvents:\"auto\"},children:/*#__PURE__*/_jsx(HeaderCTA,{label:CTA.label,href:CTA.link,block:false})}):null,isMobile?/*#__PURE__*/_jsx(MenuToggle,{open:open,onClick:()=>setOpen(v=>!v),color:textColor,bg:pillBg,blur:blur,border:`1px solid ${TOKENS.border}`,size:toggleSize}):null]})]}),/*#__PURE__*/_jsx(AnimatePresence,{children:!isMobile&&activeColumn?/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,top:dropdownTop-10},animate:{opacity:1,top:dropdownTop,pointerEvents:\"auto\"},exit:{opacity:0,top:dropdownTop-8,// Sofort unklickbar beim Ausblenden: vorher fing\n// das sterbende Panel den Klick, der Link\n// verschwand zwischen Mousedown und Mouseup aus\n// dem DOM und die Navigation blieb aus\n// (\"erst beim 2. oder 3. Mal\", Paul 2026-09-01).\npointerEvents:\"none\",transition:{duration:.26,ease:[.32,.72,0,1]}},// 2026-09-01: 0.45s statt 1.3s (Beschluss 2026-08-10\n// aufgehoben). Das betont langsame Öffnen machte die\n// Links sekundenlang zu beweglichen Klick-Zielen.\ntransition:{duration:.45,ease:[.32,.72,0,1]},onMouseEnter:megaCancelClose,onMouseLeave:megaScheduleClose,style:{...pill,borderRadius:RADIUS.large,position:\"absolute\",left:TOKENS.sidePadding,right:TOKENS.sidePadding,margin:\"0 auto\",width:\"min(440px, 100%)\",padding:\"18px 16px 12px\",pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",top:-10,left:0,right:0,height:10}}),/*#__PURE__*/_jsxs(\"div\",{className:\"dm-mega-col\",style:{display:\"flex\",flexDirection:\"column\",gap:2},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:TOKENS.fontSans,fontSize:12,fontWeight:700,letterSpacing:\"0.14em\",textTransform:\"uppercase\",color:CORE_C.text2,padding:\"0 12px 8px\"},children:activeColumn.title}),activeColumn.items.map((item,ii)=>/*#__PURE__*/_jsxs(\"a\",{href:item.link,className:\"dm-mega-item dm-mega-ringwrap\",onClick:()=>setActiveMega(null),style:{padding:\"9px 12px\"},children:[/*#__PURE__*/_jsx(MegaRing,{gradId:`dm-mega-grad-${activeColumnIndex}-${ii}`}),/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:10},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:TOKENS.fontSans,fontSize:15,fontWeight:600,color:textColor,lineHeight:1.3},children:item.label}),item.tag?// Panel-Chip wie im MarkerGrid:\n    // bg2/text2, bewusst NICHT rot.\n    /*#__PURE__*/_jsx(\"span\",{style:{flexShrink:0,padding:\"2px 9px\",background:CORE_C.bg2,borderRadius:RADIUS.pill,fontFamily:TOKENS.fontSans,fontSize:11.5,fontWeight:600,letterSpacing:\"0.04em\",color:CORE_C.text2},children:item.tag}):null]}),item.sub?/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",fontFamily:TOKENS.fontSans,fontSize:13,fontWeight:400,color:CORE_C.text2,lineHeight:1.4,marginTop:2},children:item.sub}):null]},item.link)),activeColumn.footer?/*#__PURE__*/_jsxs(\"a\",{href:activeColumn.footer.link,className:\"dm-mega-item dm-mega-ringwrap\",onClick:()=>setActiveMega(null),style:{padding:\"9px 12px\",marginTop:2,fontFamily:TOKENS.fontSans,fontSize:14,fontWeight:600},children:[/*#__PURE__*/_jsx(MegaRing,{gradId:`dm-mega-grad-f${activeColumnIndex}`}),/*#__PURE__*/_jsx(\"span\",{className:\"dm-mega-gradlink\",children:activeColumn.footer.label})]}):null]},activeColumn.title),/*#__PURE__*/_jsxs(\"div\",{className:\"dm-mega-col\",style:{marginTop:12,paddingTop:12,borderTop:`1px solid ${TOKENS.border}`,display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",flexWrap:\"wrap\",gap:4,animationDelay:\"0.12s\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:TOKENS.fontSans,fontSize:13.5,fontWeight:500,color:CORE_C.text1,paddingLeft:12},children:MEGA_FOOTER.text}),/*#__PURE__*/_jsxs(\"a\",{href:MEGA_FOOTER.link,className:\"dm-mega-item dm-mega-ringwrap\",onClick:()=>setActiveMega(null),style:{padding:\"9px 12px\",fontFamily:TOKENS.fontSans,fontSize:14,fontWeight:600},children:[/*#__PURE__*/_jsx(MegaRing,{gradId:\"dm-mega-grad-quiz\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"dm-mega-gradlink\",children:[MEGA_FOOTER.label,\" →\"]})]})]})]}):null}),/*#__PURE__*/_jsx(AnimatePresence,{children:isMobile&&open?/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,top:dropdownTop-12},animate:{opacity:1,top:dropdownTop},exit:{opacity:0,top:dropdownTop-12},transition:{duration:.34,ease:[.32,.72,0,1]},style:{...pill,borderRadius:24,borderBottomLeftRadius:0,position:\"absolute\",left:TOKENS.sidePadding,right:TOKENS.sidePadding,padding:16,display:\"flex\",flexDirection:\"column\",gap:3,pointerEvents:\"auto\"},children:[MOBILE_NAV_ITEMS.map((it,i)=>/*#__PURE__*/_jsx(\"a\",{href:it.link||\"#\",onClick:()=>setOpen(false),style:{padding:\"11px 18px\",borderRadius:16,color:textColor,fontFamily:TOKENS.fontSans,fontSize:18,fontWeight:500,textDecoration:\"none\"},children:it.label},i)),/*#__PURE__*/_jsx(\"div\",{style:{marginTop:8},children:/*#__PURE__*/_jsx(HeaderCTA,{label:CTA.label,href:CTA.link,block:true})})]}):null})]});// Portal an document.body: bricht aus Framers Wrappern aus → Glas + fixed\n// funktionieren zuverlässig. Vor Mount (SSR/Canvas) inline rendern.\nif(fixed&&mounted&&typeof document!==\"undefined\"){return /*#__PURE__*/createPortal(header,document.body);}return header;}DamoiHeader.defaultProps={logoHeight:44,wordmark:\"damoi\",textColor:\"#2B2422\",glassTint:\"rgba(250, 249, 246, 0.55)\",blur:20,headerScale:.9,topOffset:18,mobileBreakpoint:860,hideOnScroll:true,fixed:true,smoothScroll:true};addPropertyControls(DamoiHeader,{logo:{type:ControlType.Image,title:\"Logo (Sun-Mark)\"},logoHeight:{type:ControlType.Number,title:\"Logo-Gr\\xf6\\xdfe\",defaultValue:44,min:20,max:80,step:2,unit:\"px\"},wordmark:{type:ControlType.String,title:\"Wordmark\",defaultValue:\"damoi\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#2B2422\"},glassTint:{type:ControlType.Color,title:\"Glas-Tint\",defaultValue:\"rgba(250, 249, 246, 0.55)\"},blur:{type:ControlType.Number,title:\"Blur\",defaultValue:20,min:0,max:40,step:1,unit:\"px\"},headerScale:{type:ControlType.Number,title:\"Header-Gr\\xf6\\xdfe\",defaultValue:.9,min:.7,max:1.1,step:.05,displayStepper:true,description:\"Skaliert Logo, Nav, CTA & Burger. 1 = Original, kleiner = kompakter.\"},topOffset:{type:ControlType.Number,title:\"Abstand oben\",defaultValue:18,min:0,max:64,step:1,unit:\"px\"},mobileBreakpoint:{type:ControlType.Number,title:\"Mobile ab\",defaultValue:860,min:480,max:1200,step:10,unit:\"px\",description:\"Unter dieser Breite: Logo + Burger statt voller Nav\"},hideOnScroll:{type:ControlType.Boolean,title:\"Beim Scrollen verstecken\",defaultValue:true,enabledTitle:\"An\",disabledTitle:\"Aus\"},smoothScroll:{type:ControlType.Boolean,title:\"Smooth Scroll\",defaultValue:true,enabledTitle:\"An\",disabledTitle:\"Aus\",description:\"Lenis Smooth Scroll f\\xfcr die ganze Website (Touch bleibt nativ).\"},fixed:{type:ControlType.Boolean,title:\"Fixed\",defaultValue:true,enabledTitle:\"An\",disabledTitle:\"Aus\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DamoiHeader\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Header.map","// ===========================================\n// DAMOI FOOTER V2.1, Design System V6\n// Newsletter subscribe + Nav + Legal + Social + Copyright\n// Ambient radial gradient bg · Logo image or brand-name fallback\n//\n// V2.1 Changes (V6 alignment):\n// - Instagram handle damoi.health → damoi.de (real handle)\n// - Newsletter button Pill-Radius (9999), V6 brand CTA consistency\n// - Newsletter button dot-pattern removed (consistency with Hero V11.1)\n// - Button letter-spacing 0.06 → 0.08 (V6 widest)\n// - Error color accent → accentDark (#A84A45, WCAG AA pass)\n//\n// V14 (2026-07-30): Farb-/Font-Tokens aus DamoiCore (visuell 1:1).\n// Eigene V6-Motion-Kurven (0.22,0.61,0.36,1 etc.), observeReveal-Logik,\n// rgba-Sonderwerte, Welcome-Gradient und Radius 9999 bleiben bewusst lokal.\n//\n// 2026-08-26: Google-Preferred-Source-Row unter dem Ask-AI-Widget.\n// Deeplink statt Google publisher.js (DSGVO: kein externer Request).\n// ===========================================\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useState}from\"react\";import{C as CORE_COLORS,F as CORE_F}from\"https://framerusercontent.com/modules/E5lpYYtAed1c8I887qYQ/NcJXWIX4dId61VXc6izk/DamoiCore.js\";const observeReveal=selectors=>{if(typeof window===\"undefined\"||!window.IntersectionObserver){selectors.forEach(sel=>document.querySelectorAll(sel).forEach(el=>el.classList.add(\"is-visible\")));return;}const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting){entry.target.classList.add(\"is-visible\");observer.unobserve(entry.target);}});},{threshold:.1,rootMargin:\"0px 0px -10% 0px\"});selectors.forEach(sel=>document.querySelectorAll(sel).forEach(el=>observer.observe(el)));};// Scroll-reveal CSS for footer content\nconst REVEAL_CSS=`\n.dmfoot-content {\n    opacity: 0;\n    transform: translate3d(0, 20px, 0);\n    transition: opacity 0.7s cubic-bezier(0.22,0.61,0.36,1), transform 0.7s cubic-bezier(0.22,0.61,0.36,1);\n    /* Pattern B Safety-Net: Footer enth\\xe4lt Impressum/Datenschutz/AGB,\n       darf NIE unsichtbar bleiben, falls der Observer nicht feuert. */\n    animation: dmfoot-safety-show 0.6s ease-out 1.8s forwards;\n}\n.dmfoot-content.is-visible {\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n    animation: none;\n}\n@keyframes dmfoot-safety-show {\n    to { opacity: 1; transform: translate3d(0, 0, 0); }\n}\n@media (prefers-reduced-motion: reduce) {\n    .dmfoot-content { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }\n}\n`;const injectRevealCSS=()=>{if(typeof document===\"undefined\")return;if(document.getElementById(\"dmfoot-reveal-css\"))return;const s=document.createElement(\"style\");s.id=\"dmfoot-reveal-css\";s.textContent=REVEAL_CSS;document.head.appendChild(s);};// ===========================================\n// TOKENS\n// ===========================================\n// V14: Farben aus DamoiCore, nur lokale Sonderwerte bleiben.\nconst C={...CORE_COLORS,accentDark:CORE_COLORS.accentDeep,border:\"rgba(41, 49, 51, 0.08)\"};// V6-Footer nutzt bewusst überall Inter, auch für \"heading\" (kein Serif).\n// Exakter Stack-Match ist Core F.ui. NICHT auf Core F.heading (Serif) umstellen!\nconst F={heading:CORE_F.ui,body:CORE_F.ui,ui:CORE_F.ui};// ===========================================\n// CSS\n// ===========================================\nconst CSS=`\n.dmfoot-link { transition: color 0.2s ease; text-decoration: none; }\n@media (hover: hover) { .dmfoot-link:hover { color: ${C.accent} !important; } }\n.dmfoot-social { transition: opacity 0.2s ease; }\n@media (hover: hover) { .dmfoot-social:hover { opacity: 0.7 !important; } }\n.dmfoot-submit {\n    position: relative; overflow: hidden;\n    transition: background-color 200ms ease-out, transform 200ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 200ms cubic-bezier(0.23, 1, 0.32, 1), filter 200ms ease-out;\n    -webkit-tap-highlight-color: transparent;\n}\n.dmfoot-submit .dm-slide-text { display: inline-flex; flex-direction: column; height: 1.2em; overflow: hidden; }\n.dmfoot-submit .dm-slide-line { display: block; height: 1.2em; line-height: 1.2em; transition: transform 0.4s cubic-bezier(0.22,0.03,0.26,1); white-space: nowrap; }\n@media (hover: hover) {\n    .dmfoot-submit:hover { filter: brightness(1.05); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(200,90,84,0.25); }\n    .dmfoot-submit:hover .dm-slide-line { transform: translateY(-1.2em); }\n}\n.dmfoot-submit:active:not(:disabled) {\n    transform: scale(0.97);\n    transition-duration: 80ms;\n}\n.dmfoot-input { border: none; background: transparent; outline: none; }\n.dmfoot-input::placeholder { color: rgba(41,49,51,0.3); }\n\n/* CSS-only Layout-Anchors, greift auch bei Framer SSR-Hydration\n   mit f\\xe4lschlich \"desktop\"-State. Verhindert horizontale Row-Layouts\n   auf echten Handys (Preview != Production). */\n.dmfoot-section {\n    width: 100%;\n    box-sizing: border-box;\n    padding: 56px 80px 36px;\n}\n.dmfoot-row-stack {\n    display: flex;\n    flex-direction: row;\n}\n.dmfoot-newsletter-form {\n    width: auto;\n}\n/* Mittel-Navigation: 5 Spalten Desktop (seit 01.09.: + \"Vergleich\",\n   Peec-Muster), 2-spaltig ab Tablet abw\\xe4rts */\n.dmfoot-nav-cols {\n    display: grid;\n    grid-template-columns: repeat(5, 1fr);\n    gap: 40px 44px;\n}\n@media (max-width: 1023px) {\n    .dmfoot-nav-cols { grid-template-columns: repeat(2, 1fr); gap: 36px 28px; }\n}\n@media (max-width: 767px) {\n    /* !important n\\xf6tig, weil inline style={{ flexDirection: isMobile ? ... }}\n       sonst die CSS-Regel \\xfcberstimmt wenn JS-isMobile f\\xe4lschlich false ist */\n    .dmfoot-section { padding: 56px 24px 32px !important; }\n    .dmfoot-row-stack {\n        flex-direction: column !important;\n        align-items: flex-start !important;\n        gap: 32px !important;\n    }\n    .dmfoot-newsletter-form { width: 100% !important; }\n    .dmfoot-row-stack > div { min-width: 0 !important; }\n}\n\n/* ─── Ask-AI Widget (\"Frag deine KI \\xfcber Damoi\") ─── */\n.dmfoot-askai-row {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 24px;\n    padding: 20px 0;\n    border-bottom: 1px solid rgba(41, 49, 51, 0.06);\n}\n@media (max-width: 767px) {\n    .dmfoot-askai-row { flex-direction: column !important; align-items: flex-start !important; gap: 18px !important; }\n}\n.dmfoot-askai-tiles { display: flex; gap: 8px; position: relative; }\n.dmfoot-askai-tile {\n    width: 44px; height: 44px;\n    border-radius: 12px;\n    background: rgba(41, 49, 51, 0.04);\n    border: 1px solid rgba(41, 49, 51, 0.08);\n    display: flex; align-items: center; justify-content: center;\n    cursor: pointer;\n    transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;\n    -webkit-tap-highlight-color: transparent;\n    padding: 0;\n}\n@media (hover: hover) {\n    .dmfoot-askai-tile:hover { background: ${C.white}; border-color: rgba(200, 90, 84, 0.35); transform: translateY(-2px); }\n}\n.dmfoot-askai-tile.is-active { background: ${C.white}; border-color: rgba(200, 90, 84, 0.35); }\n.dmfoot-askai-pop {\n    position: absolute;\n    bottom: calc(100% + 10px);\n    left: 0; right: auto;\n    width: 320px; max-width: 82vw;\n    background: ${C.white};\n    border: 1px solid rgba(41, 49, 51, 0.10);\n    border-radius: 16px;\n    box-shadow: 0 12px 40px rgba(41, 49, 51, 0.14);\n    padding: 8px;\n    z-index: 20;\n    opacity: 0; transform: translateY(6px); pointer-events: none;\n    transition: opacity 0.18s ease, transform 0.18s ease;\n}\n@media (min-width: 768px) {\n    .dmfoot-askai-pop { left: auto; right: 0; }\n}\n/* Unsichtbare Br\\xfccke \\xfcber den 10px-Spalt, damit der Hover beim Weg vom\n   Icon zum Popover nicht abrei\\xdft. */\n.dmfoot-askai-pop::after { content: \"\"; position: absolute; top: 100%; left: 0; right: 0; height: 14px; }\n.dmfoot-askai-pop.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }\n.dmfoot-askai-pop-head {\n    display: flex; align-items: center; gap: 8px;\n    padding: 8px 12px 8px;\n    color: ${C.text3};\n    font-size: 11px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase;\n}\n.dmfoot-askai-q {\n    display: block;\n    padding: 11px 12px;\n    border-radius: 10px;\n    font-size: 13.5px; line-height: 1.4;\n    color: ${C.text1}; text-decoration: none;\n    transition: background 0.15s ease, color 0.15s ease;\n}\n@media (hover: hover) {\n    .dmfoot-askai-q:hover { background: rgba(200, 90, 84, 0.06); color: ${C.accent}; }\n}\n\n/* ─── Google Preferred Source Button ───\n   Row-Layout kommt von .dmfoot-askai-row (wird wiederverwendet,\n   inkl. Mobile-Stacking), hier nur der Button selbst. */\n.dmfoot-gps-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 11px 20px;\n    border-radius: 9999px;\n    background: rgba(41, 49, 51, 0.04);\n    border: 1px solid rgba(41, 49, 51, 0.08);\n    text-decoration: none;\n    white-space: nowrap;\n    transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;\n    -webkit-tap-highlight-color: transparent;\n}\n@media (hover: hover) {\n    .dmfoot-gps-btn:hover { background: ${C.white}; border-color: rgba(200, 90, 84, 0.35); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(41, 49, 51, 0.08); }\n}\n.dmfoot-gps-btn:active { transform: scale(0.97); }\n@media (max-width: 379px) {\n    /* Sehr schmale Screens: Text darf umbrechen statt zu overflowen */\n    .dmfoot-gps-btn { white-space: normal; }\n}\n`;const injectAll=()=>{if(typeof document===\"undefined\")return;if(!document.getElementById(\"damoi-fonts-v16\")){const fontLink=document.createElement(\"link\");fontLink.id=\"damoi-fonts-v16\";fontLink.rel=\"stylesheet\";fontLink.href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap\";document.head.appendChild(fontLink);[\"damoi-fonts-v12\",\"damoi-fonts-v13\",\"damoi-fonts-v14\",\"damoi-fonts-v15\"].forEach(function(id){const stale=document.getElementById(id);if(stale)stale.remove();});}if(!document.getElementById(\"dmfoot-css\")){const s=document.createElement(\"style\");s.id=\"dmfoot-css\";s.textContent=CSS;document.head.appendChild(s);}};// ===========================================\n// RESPONSIVE\n// ===========================================\nconst getBreakpoint=()=>{if(typeof window===\"undefined\")return\"desktop\";const w=window.innerWidth;if(w<430)return\"mobile\";if(w<768)return\"mobileL\";if(w<1280)return\"tablet\";return\"desktop\";};const useBreakpoint=()=>{const[bp,setBp]=useState(getBreakpoint);useEffect(()=>{// Force re-check after hydration, fixes Framer SSR returning \"desktop\"\nsetBp(getBreakpoint());const check=()=>setBp(getBreakpoint());window.addEventListener(\"resize\",check);return()=>window.removeEventListener(\"resize\",check);},[]);return bp;};// ===========================================\n// ICONS\n// ===========================================\nconst IconInstagram=({size=18,color=C.text1})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"2\",y:\"2\",width:\"20\",height:\"20\",rx:\"5\",ry:\"5\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"5\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"17.5\",y1:\"6.5\",x2:\"17.51\",y2:\"6.5\"})]});const IconMail=({size=16,color=C.text3})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"2\",y:\"4\",width:\"20\",height:\"16\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"})]});const IconCheck=({size=16,color=C.white})=>/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"20 6 9 17 4 12\"})});const IconUser=({size=15,color=C.text3})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"7\",r:\"4\"})]});// ===========================================\n// ASK-AI WIDGET, \"Frag deine KI über Damoi\"\n// V7-Muster: kuratierte Share-Chats. Pro Frage EIN geteilter Chat je LLM.\n//\n// ┌──────────────────────────────────────────────────────────────────┐\n// │ WO TRÄGST DU WAS EIN?                                              │\n// │ → NUR unten in ASK_AI_ENGINES, in die \"links: [ ... ]\" jedes LLM.  │\n// │   Jedes LLM hat 4 Slots (einen pro Frage). Neben jedem Slot steht  │\n// │   die Frage als Kommentar. URL einfach zwischen die \"\" setzen.     │\n// │   Die Icons (ASK_AI_ICONS) musst du NICHT anfassen.                │\n// └──────────────────────────────────────────────────────────────────┘\n//\n// SO ERSTELLST DU EINEN SHARE-CHAT (pro Slot):\n//   1. LLM öffnen (z.B. chatgpt.com), diesen Prompt reinkopieren:\n//      \"Schau dir damoi.de an und beantworte dann unabhängig: <Frage>.\n//       Bleib bei Fakten, keine medizinischen Empfehlungen.\"\n//   2. Antwort HWG-prüfen (keine Heilversprechen, keine Diagnosen).\n//   3. Chat teilen (\"Share\") → öffentliche Share-URL kopieren.\n//   4. URL unten in den passenden Slot des LLM einsetzen.\n//\n// Leerer Slot (\"\") = Frage für dieses LLM ausgeblendet.\n// LLM ohne einen einzigen Link = Icon ausgeblendet.\n// Kein einziger Link gesetzt = ganzes Widget bleibt unsichtbar (nie \"leer\" live).\n// Du musst NICHT alle Slots füllen, fang mit ein paar an, der Rest bleibt aus.\n// ===========================================\nconst ASK_AI_LABEL=\"Frag deine KI \\xfcber Damoi\";const ASK_AI_SUB=\"Echte Antworten, kein Verkaufsgespr\\xe4ch.\";const ASK_AI_QUESTIONS=[\"Erkl\\xe4r mir unabh\\xe4ngig, was Damoi macht und f\\xfcr wen es sich lohnt.\",\"Wie unterscheidet sich Damoi von anderen At-home-Bluttests?\",\"Wie l\\xe4uft ein Damoi-Test von der Blutentnahme zuhause bis zu den Ergebnissen ab?\",\"Was bringt mir Damois Langzeit-Tracking gegen\\xfcber einem einmaligen Bluttest?\"];// ▼▼▼ HIER TRÄGST DU DIE SHARE-CHAT-URLS EIN ▼▼▼\n// Pro LLM 4 Slots. links[0] gehört zu Frage 1, links[1] zu Frage 2 usw.\nconst ASK_AI_ENGINES=[{id:\"chatgpt\",name:\"ChatGPT\",links:[\"https://chatgpt.com/share/6a58a468-7344-83eb-b8e9-809aa1294dde\",\"https://chatgpt.com/share/6a58a609-31d8-83eb-ad04-5077f2508baa\",\"https://chatgpt.com/share/6a58a769-e670-83ed-ab91-c2172de28772\",\"https://chatgpt.com/share/6a58a7cb-3bb0-83eb-a8a1-7d4ba86ec979\"]},{id:\"claude\",name:\"Claude\",links:[\"https://claude.ai/share/2576a180-20c5-4f5d-b42a-3fbe8a0f2115\",\"https://claude.ai/share/561cf73e-c164-43ea-92e7-ac0c9df38554\",\"https://claude.ai/share/92cbe659-cede-4ea3-aaa6-3a6cb75beae8\",\"https://claude.ai/share/efa863e0-2487-4fbb-96b9-8f0a8f21cad2\"]},{id:\"gemini\",name:\"Gemini\",links:[\"https://share.gemini.google/oDHNs63R5frD\",\"https://share.gemini.google/qDNV3RsSs1g8\",\"https://share.gemini.google/AjNdiRykqSBx\",\"https://share.gemini.google/PrAftdoxhR5o\"]},{id:\"perplexity\",name:\"Perplexity\",links:[\"https://www.perplexity.ai/search/5d69f4c3-eba4-462b-9c24-e359e588bee7\",\"https://www.perplexity.ai/search/529ce65e-b96e-4c59-ae94-e50c3372a7c5\",\"https://www.perplexity.ai/search/82d019ff-f130-4a59-87ad-ec7582bc6371\",\"https://www.perplexity.ai/search/85a0edf5-d20b-4467-9b63-7a8e6773255f\"]},{id:\"grok\",name:\"Grok\",links:[\"https://grok.com/share/c2hhcmQtNQ_49333d6b-a6c8-454f-b7b2-956d57deb141\",\"https://grok.com/share/c2hhcmQtNQ_f98e7b7b-7b2a-4da4-9094-d7330a7f94d1\",\"https://grok.com/share/c2hhcmQtNQ_3fc0c3e0-6b1e-4cb6-a645-9591d5b1bcf1\",\"https://grok.com/share/c2hhcmQtNQ_023a4418-684b-44a3-b0a5-c703a33fc4bc\"]}];// ▲▲▲ ENDE EINTRAGE-BEREICH ▲▲▲\n// Icons (Inline-SVG, 24x24, DSGVO-sauber, kein externer Request). NICHT\n// anfassen nötig. Grok = Näherung (kein offizielles Logo verfügbar); für das\n// echte Logo das Bild in den Property Controls (\"↳ Grok Icon\") hochladen.\nconst ASK_AI_ICONS={chatgpt:{viewBox:\"0 0 24 24\",path:\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9a6.0651 6.0651 0 0 0-10.3717 4.1817 5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.1419.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1686a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997z\"},claude:{viewBox:\"0 0 24 24\",path:\"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.541Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z\"},gemini:{viewBox:\"0 0 24 24\",path:\"M12 24A14.304 14.304 0 0 0 0 12 14.304 14.304 0 0 0 12 0a14.305 14.305 0 0 0 12 12 14.305 14.305 0 0 0-12 12\"},perplexity:{viewBox:\"0 0 24 24\",path:\"M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm12.7086.0248-5.7766-5.1509V9.0618l5.7766 5.7766v6.5588zm2.8882-5.0652h-1.733v-1.9723L13.3948 8.245h7.8478v8.087z\"},grok:{viewBox:\"0 0 24 24\",path:\"M6.469 8.776 16.512 23h-4.464L2.005 8.776H6.47Zm-.004 6.9 2.233 3.164-2.237 3.158H1.997l4.468-6.322ZM22.003 1l-8.982 12.7-2.235-3.163L17.542 1h4.461Zm-.005 7.776V23h-3.66V13.97l3.66-5.194Z\"}};function EngineIcon({engine,override,size=20}){if(override){return /*#__PURE__*/_jsx(\"img\",{src:override,alt:engine.name,width:size,height:size,style:{display:\"block\",objectFit:\"contain\"}});}const icon=ASK_AI_ICONS[engine.id];if(!icon)return null;return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:icon.viewBox,fill:C.text2,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:icon.path})});}function AskAiWidget({iconOverrides={}}){const[openEngine,setOpenEngine]=useState(null);const[hoverCapable,setHoverCapable]=useState(true);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;setHoverCapable(window.matchMedia(\"(hover: hover)\").matches);},[]);// Touch: Tap außerhalb schließt das Popover.\nuseEffect(()=>{if(hoverCapable||openEngine===null)return;const close=()=>setOpenEngine(null);const t=setTimeout(()=>document.addEventListener(\"click\",close),0);return()=>{clearTimeout(t);document.removeEventListener(\"click\",close);};},[hoverCapable,openEngine]);// Nur Engines mit mindestens einem gepflegten Link zeigen.\nconst engines=ASK_AI_ENGINES.map((e,idx)=>({...e,idx})).filter(e=>e.links.some(l=>l&&l.trim()));if(engines.length===0)return null;const active=engines.find(e=>e.idx===openEngine);return /*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-askai-row\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:13,fontWeight:600,color:C.text1,letterSpacing:\"0.01em\"},children:ASK_AI_LABEL}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.body,fontSize:12,color:C.text3},children:ASK_AI_SUB})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-askai-tiles\",onMouseLeave:()=>hoverCapable&&setOpenEngine(null),children:[active&&/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-askai-pop is-open\",role:\"menu\",onClick:e=>e.stopPropagation(),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-askai-pop-head\",children:[/*#__PURE__*/_jsx(EngineIcon,{engine:active,override:iconOverrides[active.id],size:15}),/*#__PURE__*/_jsxs(\"span\",{children:[\"Frag \",active.name]})]}),ASK_AI_QUESTIONS.map((q,qi)=>{const href=active.links[qi];if(!href||!href.trim())return null;return /*#__PURE__*/_jsx(\"a\",{href:href,target:\"_blank\",rel:\"noopener noreferrer\",className:\"dmfoot-askai-q\",role:\"menuitem\",children:q},qi);})]}),engines.map(e=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":`Frag ${e.name} \\xfcber Damoi`,className:`dmfoot-askai-tile${openEngine===e.idx?\" is-active\":\"\"}`,onMouseEnter:()=>hoverCapable&&setOpenEngine(e.idx),onClick:ev=>{ev.stopPropagation();if(!hoverCapable)setOpenEngine(openEngine===e.idx?null:e.idx);},children:/*#__PURE__*/_jsx(EngineIcon,{engine:e,override:iconOverrides[e.id],size:20})},e.id))]})]});}// ===========================================\n// GOOGLE PREFERRED SOURCE\n// Deeplink zum Google-Quellen-Tool, dokumentiertes Format:\n// https://www.google.com/preferences/source?q=<domain>\n// Bewusst OHNE Googles publisher.js-Button: der laedt ein externes\n// Script vor jedem Consent. Der Deeplink leistet dasselbe DSGVO-sauber.\n// Nur Domain-Ebene ist waehlbar (damoi.de, nicht damoi.de/blog).\n// ===========================================\nconst GOOGLE_PREF_LABEL=\"Damoi in deiner Google-Suche\";const GOOGLE_PREF_SUB=\"Als bevorzugte Quelle siehst du unsere Artikel \\xf6fter in Schlagzeilen und Discover.\";const GOOGLE_PREF_CTA=\"Als bevorzugte Quelle hinzuf\\xfcgen\";// Offizielles Google-G (Inline-SVG, Markenfarben, kein externer Request)\nconst IconGoogleG=({size=16})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 48 48\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{fill:\"#EA4335\",d:\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#4285F4\",d:\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#FBBC05\",d:\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#34A853\",d:\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"})]});function GooglePreferredRow({url}){if(!url||!url.trim())return null;return /*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-askai-row\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:4},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:13,fontWeight:600,color:C.text1,letterSpacing:\"0.01em\"},children:GOOGLE_PREF_LABEL}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.body,fontSize:12,color:C.text3},children:GOOGLE_PREF_SUB})]}),/*#__PURE__*/_jsxs(\"a\",{href:url,target:\"_blank\",rel:\"noopener noreferrer\",className:\"dmfoot-gps-btn\",\"aria-label\":\"Damoi bei Google als bevorzugte Quelle hinzuf\\xfcgen\",children:[/*#__PURE__*/_jsx(IconGoogleG,{size:16}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:13,fontWeight:600,color:C.text1,letterSpacing:\"0.01em\"},children:GOOGLE_PREF_CTA})]})]});}// ===========================================\n// MAIN\n// ===========================================\nexport default function FooterWithNewsletter(props){const{// Logo\nlogoImage,// 2026-07-22: Logo auf dunklem Welcome-Band automatisch weiß (Kontrast-Fix)\nlogoOnDark=true,brandName=\"Damoi\",// Newsletter\nnlHeadline=\"Dein At-Home-Bluttest.\",nlEyebrow=\"Newsletter\",nlSubtext=\"Kein Spam. Nur Updates zum Launch.\",nlPrivacyText=\"Mit der Anmeldung stimmst du unserer Datenschutzerkl\\xe4rung zu. Abmeldung jederzeit m\\xf6glich.\",nlPrivacyUrl=\"/datenschutz\",nlPlaceholder=\"Deine E-Mail\",nlButtonText=\"Anmelden\",nlSuccessText=\"Du bist dabei!\",// Medical / brand disclaimer\nmedicalDisclaimer=\"DISCLAIMER: Damoi empfiehlt oder verweist dich nicht an bestimmte Gesundheitsdienstleister, und es steht dir frei, jeden Gesundheitsdienstleister zu w\\xe4hlen und die Dienste von Damoi weiterhin zu nutzen. Damoi bietet keine medizinische Beratung, keine Diagnose, keine medizinische Behandlung und keine medizinische Meinung in irgendeiner Form, weder \\xfcber unsere Dienste noch anderweitig. Die Dienste von Damoi sind kein Ersatz f\\xfcr medizinische Versorgung, medizinische Beratung und/oder ein ausf\\xfchrliches Gespr\\xe4ch mit deinem Hausarzt oder einem anderen approbierten Arzt. Wenn du Fragen zu Laborergebnissen oder anderen Informationen hast, die du \\xfcber Damoi erh\\xe4ltst, empfehlen wir, diese mit einem Hausarzt oder einem anderen approbierten Arzt zu besprechen. Alle Materialien, Informationen, Daten und Inhalte, die Damoi bereitstellt, dienen ausschlie\\xdflich allgemeinen Informationszwecken. Die Mitgliedspreise von Damoi umfassen die von Damoi erhobenen Technologie- und Servicegeb\\xfchren sowie den Zugang zu vorausbezahlten Labor- und anderen Leistungen. Bestimmte Artikel und Leistungen erfordern zus\\xe4tzliche Zahlungen, die nicht im Standard-Mitgliedspreis enthalten sind. Weitere wichtige Informationen zu den von Damoi erbrachten Leistungen findest du in den AGB. Mit der Angabe deiner Telefonnummer erkl\\xe4rst du dich damit einverstanden, Textnachrichten von Damoi zu erhalten. Es k\\xf6nnen Nachrichten- und Datengeb\\xfchren anfallen. Die H\\xe4ufigkeit der Nachrichten variiert. Hinweis zum Einsatz k\\xfcnstlicher Intelligenz: Texte und Bilder auf dieser Website werden teilweise mithilfe KI-gest\\xfctzter Werkzeuge erstellt oder \\xfcberarbeitet. Alle Inhalte werden vor der Ver\\xf6ffentlichung redaktionell gepr\\xfcft; die inhaltliche Verantwortung liegt bei Damoi.\",// Nav\nnavLink1Text=\"Was wir testen\",navLink1Url=\"/was-testen-wir\",navLink2Text=\"Produkte\",navLink2Url=\"/produkte\",navLink3Text=\"Blog\",navLink3Url=\"/blog\",navLink4Text=\"Hilfe und Fragen\",navLink4Url=\"/hilfe\",navLink5Text=\"Vision\",navLink5Url=\"/vision\",navLink6Text=\"Finde dein Panel\",navLink6Url=\"/quiz\",// Legal\nlegalLink1Text=\"Impressum\",legalLink1Url=\"/impressum\",legalLink2Text=\"Datenschutz\",legalLink2Url=\"/datenschutz\",legalLink3Text=\"AGB\",// Contact\ncontactEmail=\"hello@damoi.de\",instagramUrl=\"https://instagram.com/damoi.de\",showInstagram=true,appStoreUrl=\"https://apps.apple.com/de/app/damoi/id6756821292\",showAppStore=true,playStoreUrl=\"https://play.google.com/store/apps/details?id=com.damoi.health\",showPlayStore=true,// Ask-AI widget\nshowAskAi=true,askAiIconPerplexity,askAiIconGrok,// Google Preferred Source\nshowGooglePreferred=true,googlePreferredUrl=\"https://www.google.com/preferences/source?q=damoi.de\",// Copyright\ncopyrightText=\"2026 Damoi. Alle Rechte vorbehalten.\",bgColor=\"transparent\"}=props;const bp=useBreakpoint();const isMobile=bp===\"mobile\"||bp===\"mobileL\";const isTablet=bp===\"tablet\";const[vorname,setVorname]=useState(\"\");const[email,setEmail]=useState(\"\");const[isSubmitting,setIsSubmitting]=useState(false);const[isSubmitted,setIsSubmitted]=useState(false);const[error,setError]=useState(\"\");useEffect(()=>{injectAll();injectRevealCSS();observeReveal([\".dmfoot-content\"]);},[]);const handleSubmit=async e=>{e.preventDefault();if(!email||!vorname.trim()||isSubmitting)return;if(!/^\\S+@\\S+\\.\\S+$/.test(email.trim())){setError(\"Bitte gib eine g\\xfcltige E-Mail-Adresse ein.\");return;}setIsSubmitting(true);setError(\"\");try{// V2.2 (2026-05-04): Klaviyo → Damoi eigener Email-Stack.\n// Subscribe Edge Function → DOI-Mail → confirmed → waitlist_v1 flow.\n// Footer-Sign-up ist Newsletter-Audience (labels: newsletter).\nconst response=await fetch(\"https://pstfxooqrdhxtredyoyt.supabase.co/functions/v1/subscribe\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({email:email.trim(),vorname:vorname.trim(),source:\"damoi.de:footer-newsletter\",labels:[\"newsletter\"]}),// Hängende Verbindung darf den Button nicht ewig blockieren\nsignal:typeof AbortSignal!==\"undefined\"&&AbortSignal.timeout?AbortSignal.timeout(1e4):undefined});if(response.ok){setIsSubmitted(true);setEmail(\"\");setVorname(\"\");if(typeof window!==\"undefined\"&&window.dataLayer)window.dataLayer.push({event:\"newsletter_signup\",form_location:\"footer\"});}else{throw new Error(\"Signup failed\");}}catch(err){console.error(\"[damoi-footer] Newsletter-Signup fehlgeschlagen:\",err);setError(\"Bitte versuche es erneut.\");}finally{setIsSubmitting(false);}};// Spalte \"Produkt\": Discovery + Produkt + App + Quiz\nconst produktLinks=[{text:navLink1Text,url:navLink1Url},{text:navLink2Text,url:navLink2Url},{text:\"Deine Ziele\",url:\"/ziele\"},{text:\"F\\xfcr Unternehmen\",url:\"/fuer-unternehmen\"},{text:\"Die App\",url:\"/app\"},{text:navLink6Text,url:navLink6Url}].filter(l=>l.text);// Spalte \"Unternehmen\": Marke + Content + Trust\nconst unternehmenLinks=[{text:navLink5Text,url:navLink5Url},{text:navLink3Text,url:navLink3Url},{text:navLink4Text,url:navLink4Url},{text:\"Datensicherheit\",url:\"/datensicherheit\"}].filter(l=>l.text);// Spalte \"Vergleich\" (01.09.2026, Peec-Muster): die 4 redaktionellen\n// Anbieter-Vergleiche aus website-relaunch/vergleichsseiten/.\n// ⚠️ Erst publishen, wenn die 4 Seiten unter /vergleich/ in Framer\n// existieren, sonst 404 (Lehre aus /so-funktionierts).\nconst vergleichLinks=[{text:\"Damoi vs. Cerascreen\",url:\"/vergleich/damoi-vs-cerascreen\"},{text:\"Damoi vs. Aware\",url:\"/vergleich/damoi-vs-aware\"},{text:\"Damoi vs. Lykon\",url:\"/vergleich/damoi-vs-lykon\"},{text:\"Damoi vs. Pieks\",url:\"/vergleich/damoi-vs-pieks\"}];const legalLinks=[{text:legalLink1Text,url:legalLink1Url},{text:legalLink2Text,url:legalLink2Url},{text:legalLink3Text,url:\"/agb\"},// § 312k BGB Kündigungsschaltfläche: Wortlaut gesetzlich vorgegeben,\n// bewusst hartcodiert (kein Property), muss ständig erreichbar sein.\n{text:\"Vertr\\xe4ge hier k\\xfcndigen\",url:\"/kuendigen\"}].filter(l=>l.text);const pxH=isMobile?24:isTablet?48:80;// Welcome-Gradient (App-Paritaet): Deep-Terracotta Top-Band -> Peach -> Cream.\n// topColor #B84A44 (voll), midColor #E6AF91 (0.70), Fade auf Cream #FAF9F6.\n// Band sitzt oben am Footer = spiegelt den App-Welcome-Eintritt. Top-Zone-Text invertiert.\nconst footerGradient=isMobile?\"linear-gradient(180deg, rgba(184,74,68,1) 0px, rgba(230,175,145,0.7) 240px, rgba(230,175,145,0) 480px), #FAF9F6\":\"linear-gradient(180deg, rgba(184,74,68,1) 0px, rgba(230,175,145,0.7) 160px, rgba(230,175,145,0) 320px), #FAF9F6\";// Store-Badges: EINE horizontale Reihe (App Store + Play Store), wird links\n// unter dem Logo platziert, hält die obere Reihe niedrig und balanciert die\n// beiden Spalten, statt rechts vertikal zu stapeln.\nconst storeBadges=showAppStore&&appStoreUrl||showPlayStore&&playStoreUrl?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",flexWrap:\"wrap\",gap:10,marginTop:20},children:[showAppStore&&appStoreUrl&&/*#__PURE__*/_jsxs(\"a\",{href:appStoreUrl,target:\"_blank\",rel:\"noopener noreferrer\",\"aria-label\":\"Damoi im App Store laden\",style:{display:\"inline-flex\",alignItems:\"center\",gap:9,padding:\"10px 18px\",background:\"#111111\",border:\"1px solid rgba(255,255,255,0.2)\",borderRadius:12,textDecoration:\"none\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:19,height:19,viewBox:\"0 0 24 24\",fill:C.white,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M17.05 12.04c-.03-3.16 2.58-4.68 2.7-4.75-1.47-2.15-3.76-2.45-4.57-2.48-1.94-.2-3.79 1.14-4.78 1.14-.98 0-2.5-1.12-4.12-1.09-2.12.03-4.08 1.23-5.17 3.13-2.2 3.82-.56 9.47 1.58 12.57 1.05 1.52 2.3 3.22 3.93 3.16 1.58-.06 2.18-1.02 4.09-1.02 1.9 0 2.45 1.02 4.12.99 1.7-.03 2.78-1.55 3.82-3.08 1.2-1.76 1.7-3.47 1.73-3.56-.04-.02-3.32-1.27-3.35-5.04zM14.6 4.59c.87-1.05 1.45-2.51 1.29-3.96-1.25.05-2.76.83-3.65 1.88-.8.93-1.5 2.42-1.31 3.85 1.39.11 2.81-.71 3.67-1.77z\"})}),/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",flexDirection:\"column\",lineHeight:1.05},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.body,fontSize:9,color:\"rgba(255,255,255,0.78)\",letterSpacing:\"0.04em\",textTransform:\"uppercase\"},children:\"Laden im\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.heading,fontSize:16,fontWeight:600,color:C.white,letterSpacing:\"-0.01em\"},children:\"App Store\"})]})]}),showPlayStore&&playStoreUrl&&/*#__PURE__*/_jsxs(\"a\",{href:playStoreUrl,target:\"_blank\",rel:\"noopener noreferrer\",\"aria-label\":\"Damoi bei Google Play laden\",style:{display:\"inline-flex\",alignItems:\"center\",gap:9,padding:\"10px 18px\",background:\"#111111\",border:\"1px solid rgba(255,255,255,0.2)\",borderRadius:12,textDecoration:\"none\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:18,height:18,viewBox:\"0 0 24 24\",fill:C.white,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 3.4v17.2c0 .76.82 1.23 1.47.85l14.7-8.6a.99.99 0 0 0 0-1.7L6.47 2.55C5.82 2.17 5 2.64 5 3.4z\"})}),/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",flexDirection:\"column\",lineHeight:1.05},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.body,fontSize:9,color:\"rgba(255,255,255,0.78)\",letterSpacing:\"0.04em\",textTransform:\"uppercase\"},children:\"Jetzt bei\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.heading,fontSize:16,fontWeight:600,color:C.white,letterSpacing:\"-0.01em\"},children:\"Google Play\"})]})]})]}):null;return /*#__PURE__*/_jsxs(\"footer\",{className:\"dmfoot-section\",style:{background:footerGradient,fontFamily:F.body,position:\"relative\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"style\",{id:\"dmfoot-css\",children:CSS}),/*#__PURE__*/_jsx(\"style\",{id:\"dmfoot-reveal-css\",children:REVEAL_CSS}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",backgroundImage:\"radial-gradient(circle, rgba(41,49,51,0.03) 1px, transparent 1px)\",backgroundSize:\"24px 24px\",maskImage:\"linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%)\",WebkitMaskImage:\"linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%)\"}}),/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-content\",style:{maxWidth:\"100%\",margin:\"0 auto\",position:\"relative\",zIndex:1},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-row-stack\",style:{justifyContent:\"space-between\",alignItems:\"flex-start\",gap:isMobile?32:40,paddingBottom:isMobile?32:36,borderBottom:\"1px solid rgba(255, 255, 255, 0.18)\"},children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:12,marginBottom:8},children:[logoImage&&/*#__PURE__*/_jsx(\"img\",{src:logoImage,alt:brandName,style:{height:isMobile?56:88,width:\"auto\",objectFit:\"contain\",// 2026-07-22: Logo auf dunklem Welcome-Band automatisch weiß (Kontrast-Fix)\nfilter:logoOnDark?\"brightness(0) invert(1)\":undefined}}),!logoImage&&/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.heading,fontSize:isMobile?40:56,fontWeight:600,color:C.white,letterSpacing:\"-0.02em\"},children:brandName})]}),/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:F.body,fontSize:15,fontWeight:500,color:C.text1,margin:0,maxWidth:300,lineHeight:1.4},children:nlHeadline}),storeBadges]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:10,width:isMobile?\"100%\":\"auto\"},children:[nlEyebrow&&/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:11,fontWeight:500,color:\"rgba(255,255,255,0.72)\",letterSpacing:\"0.06em\",textTransform:\"uppercase\"},children:nlEyebrow}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,className:\"dmfoot-newsletter-form\",style:{display:\"flex\",flexDirection:\"column\",gap:10},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:14,top:\"50%\",transform:\"translateY(-50%)\"},children:/*#__PURE__*/_jsx(IconUser,{size:15,color:C.text3})}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:vorname,onChange:e=>setVorname(e.target.value),placeholder:\"Dein Vorname\",disabled:isSubmitted,required:true,autoComplete:\"given-name\",className:\"dmfoot-input\",style:{width:\"100%\",padding:\"14px 16px 14px 40px\",fontFamily:F.body,fontSize:14,color:C.text1,backgroundColor:C.white,border:\"1px solid rgba(41,49,51,0.08)\",borderRadius:10,boxSizing:\"border-box\"}})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-row-stack\",style:{gap:10},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",flex:1,minWidth:isMobile?\"auto\":280},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:14,top:\"50%\",transform:\"translateY(-50%)\"},children:/*#__PURE__*/_jsx(IconMail,{size:15,color:C.text3})}),/*#__PURE__*/_jsx(\"input\",{type:\"email\",value:email,onChange:e=>setEmail(e.target.value),placeholder:nlPlaceholder,disabled:isSubmitted,className:\"dmfoot-input\",style:{width:\"100%\",padding:\"14px 16px 14px 40px\",fontFamily:F.body,fontSize:14,color:C.text1,backgroundColor:C.white,border:\"1px solid rgba(41,49,51,0.08)\",borderRadius:10,boxSizing:\"border-box\"}})]}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:isSubmitting||isSubmitted,className:\"dmfoot-submit\",style:{padding:\"14px 28px\",fontFamily:F.ui,fontSize:13,fontWeight:600,letterSpacing:\"0.08em\",textTransform:\"uppercase\",color:isSubmitted?C.white:C.accent,background:isSubmitted?C.green:C.white,border:\"none\",borderRadius:9999,cursor:isSubmitting||isSubmitted?\"default\":\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,whiteSpace:\"nowrap\",position:\"relative\",overflow:\"hidden\",boxShadow:isSubmitted?\"none\":\"0 4px 12px rgba(200,90,84,0.2)\"},children:isSubmitted?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(IconCheck,{size:14,color:C.white}),/*#__PURE__*/_jsx(\"span\",{children:nlSuccessText})]}):isSubmitting?/*#__PURE__*/_jsx(\"span\",{style:{position:\"relative\",zIndex:1},children:\"...\"}):/*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",zIndex:1},className:\"dm-slide-text\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"dm-slide-line\",children:nlButtonText}),/*#__PURE__*/_jsx(\"span\",{className:\"dm-slide-line\",\"aria-hidden\":\"true\",children:nlButtonText})]})})]})]}),nlPrivacyText&&/*#__PURE__*/_jsxs(\"p\",{style:{fontFamily:F.body,fontSize:11,color:C.text3,margin:\"2px 0 0\",lineHeight:1.5,opacity:.75,maxWidth:isMobile?\"100%\":380},children:[nlPrivacyText.split(\"Datenschutzerkl\\xe4rung\")[0],/*#__PURE__*/_jsx(\"a\",{href:nlPrivacyUrl,className:\"dmfoot-link\",style:{color:C.text2,textDecoration:\"underline\",textUnderlineOffset:2},children:\"Datenschutzerkl\\xe4rung\"}),nlPrivacyText.split(\"Datenschutzerkl\\xe4rung\")[1]||\"\"]})]})]}),error&&/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:F.body,fontSize:13,color:C.accentDark,margin:\"8px 0 0\",textAlign:\"right\"},children:error}),/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:F.body,fontSize:12,color:C.text3,margin:\"12px 0 0\",textAlign:isMobile?\"left\":\"right\",opacity:.6},children:nlSubtext}),/*#__PURE__*/_jsxs(\"div\",{className:\"dmfoot-nav-cols\",style:{paddingTop:isMobile?32:36,paddingBottom:isMobile?28:32,borderBottom:\"1px solid rgba(41, 49, 51, 0.06)\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:11,fontWeight:500,color:C.text3,letterSpacing:\"0.06em\",textTransform:\"uppercase\"},children:\"Produkt\"}),produktLinks.map((link,i)=>/*#__PURE__*/_jsx(\"a\",{href:link.url,className:\"dmfoot-link\",style:{fontFamily:F.body,fontSize:14,fontWeight:400,color:C.text2},children:link.text},i))]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:11,fontWeight:500,color:C.text3,letterSpacing:\"0.06em\",textTransform:\"uppercase\"},children:\"Unternehmen\"}),unternehmenLinks.map((link,i)=>/*#__PURE__*/_jsx(\"a\",{href:link.url,className:\"dmfoot-link\",style:{fontFamily:F.body,fontSize:14,fontWeight:400,color:C.text2},children:link.text},i))]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:11,fontWeight:500,color:C.text3,letterSpacing:\"0.06em\",textTransform:\"uppercase\"},children:\"Vergleich\"}),vergleichLinks.map((link,i)=>/*#__PURE__*/_jsx(\"a\",{href:link.url,className:\"dmfoot-link\",style:{fontFamily:F.body,fontSize:14,fontWeight:400,color:C.text2},children:link.text},i))]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:11,fontWeight:500,color:C.text3,letterSpacing:\"0.06em\",textTransform:\"uppercase\"},children:\"Rechtliches\"}),legalLinks.map((link,i)=>/*#__PURE__*/_jsx(\"a\",{href:link.url,className:\"dmfoot-link\",style:{fontFamily:F.body,fontSize:14,fontWeight:400,color:C.text2},children:link.text},i))]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:F.ui,fontSize:11,fontWeight:500,color:C.text3,letterSpacing:\"0.06em\",textTransform:\"uppercase\"},children:\"Kontakt\"}),/*#__PURE__*/_jsxs(\"a\",{href:`mailto:${contactEmail}`,className:\"dmfoot-link\",style:{fontFamily:F.body,fontSize:14,fontWeight:400,color:C.text2,display:\"flex\",alignItems:\"center\",gap:8},children:[/*#__PURE__*/_jsx(IconMail,{size:14,color:C.text3}),contactEmail]}),showInstagram&&instagramUrl&&/*#__PURE__*/_jsxs(\"a\",{href:instagramUrl,target:\"_blank\",rel:\"noopener noreferrer\",className:\"dmfoot-link\",style:{fontFamily:F.body,fontSize:14,fontWeight:400,color:C.text2,display:\"flex\",alignItems:\"center\",gap:8},children:[/*#__PURE__*/_jsx(IconInstagram,{size:14,color:C.text3}),\"@damoi.de\"]})]})]}),showAskAi&&/*#__PURE__*/_jsx(AskAiWidget,{iconOverrides:{perplexity:askAiIconPerplexity,grok:askAiIconGrok}}),showGooglePreferred&&/*#__PURE__*/_jsx(GooglePreferredRow,{url:googlePreferredUrl}),medicalDisclaimer&&/*#__PURE__*/_jsx(\"div\",{style:{paddingTop:isMobile?24:32,paddingBottom:isMobile?8:16,borderBottom:\"1px solid rgba(41, 49, 51, 0.06)\"},children:/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:F.body,fontSize:10.5,lineHeight:1.7,color:C.text3,margin:0,opacity:.7,letterSpacing:\"0.005em\"},children:medicalDisclaimer})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",paddingTop:isMobile?20:24,flexWrap:\"wrap\",gap:12},children:[/*#__PURE__*/_jsxs(\"span\",{style:{fontFamily:F.body,fontSize:13,color:C.text3,fontWeight:400},children:[\"\\xa9 \",copyrightText]}),showInstagram&&instagramUrl&&/*#__PURE__*/_jsx(\"a\",{href:instagramUrl,target:\"_blank\",rel:\"noopener noreferrer\",className:\"dmfoot-social\",\"aria-label\":\"Damoi auf Instagram\",style:{opacity:.4,display:\"flex\"},children:/*#__PURE__*/_jsx(IconInstagram,{size:18,color:C.text1,\"aria-hidden\":\"true\"})})]})]})]});}// ===========================================\n// DEFAULTS\n// ===========================================\nFooterWithNewsletter.defaultProps={logoOnDark:true,brandName:\"Damoi\",nlHeadline:\"Dein At-Home-Bluttest.\",nlEyebrow:\"Newsletter\",nlSubtext:\"Kein Spam. Nur Updates zum Launch.\",nlPrivacyText:\"Mit der Anmeldung stimmst du unserer Datenschutzerkl\\xe4rung zu. Abmeldung jederzeit m\\xf6glich.\",nlPrivacyUrl:\"/datenschutz\",nlPlaceholder:\"Deine E-Mail\",nlButtonText:\"Anmelden\",nlSuccessText:\"Du bist dabei!\",navLink1Text:\"Was wir testen\",navLink1Url:\"/was-testen-wir\",navLink2Text:\"Produkte\",navLink2Url:\"/produkte\",navLink3Text:\"Blog\",navLink3Url:\"/blog\",navLink4Text:\"Hilfe und Fragen\",navLink4Url:\"/hilfe\",navLink5Text:\"Vision\",navLink5Url:\"/vision\",navLink6Text:\"Finde dein Panel\",navLink6Url:\"/quiz\",legalLink1Text:\"Impressum\",legalLink1Url:\"/impressum\",legalLink2Text:\"Datenschutz\",legalLink2Url:\"/datenschutz\",legalLink3Text:\"AGB\",contactEmail:\"hello@damoi.de\",instagramUrl:\"https://instagram.com/damoi.de\",showInstagram:true,appStoreUrl:\"https://apps.apple.com/de/app/damoi/id6756821292\",showAppStore:true,playStoreUrl:\"https://play.google.com/store/apps/details?id=com.damoi.health\",showPlayStore:true,showAskAi:true,showGooglePreferred:true,googlePreferredUrl:\"https://www.google.com/preferences/source?q=damoi.de\",copyrightText:\"2026 Damoi. Alle Rechte vorbehalten.\",bgColor:\"transparent\",medicalDisclaimer:\"DISCLAIMER: Damoi empfiehlt oder verweist dich nicht an bestimmte Gesundheitsdienstleister, und es steht dir frei, jeden Gesundheitsdienstleister zu w\\xe4hlen und die Dienste von Damoi weiterhin zu nutzen. Damoi bietet keine medizinische Beratung, keine Diagnose, keine medizinische Behandlung und keine medizinische Meinung in irgendeiner Form, weder \\xfcber unsere Dienste noch anderweitig. Die Dienste von Damoi sind kein Ersatz f\\xfcr medizinische Versorgung, medizinische Beratung und/oder ein ausf\\xfchrliches Gespr\\xe4ch mit deinem Hausarzt oder einem anderen approbierten Arzt. Wenn du Fragen zu Laborergebnissen oder anderen Informationen hast, die du \\xfcber Damoi erh\\xe4ltst, empfehlen wir, diese mit einem Hausarzt oder einem anderen approbierten Arzt zu besprechen. Alle Materialien, Informationen, Daten und Inhalte, die Damoi bereitstellt, dienen ausschlie\\xdflich allgemeinen Informationszwecken. Die Mitgliedspreise von Damoi umfassen die von Damoi erhobenen Technologie- und Servicegeb\\xfchren sowie den Zugang zu vorausbezahlten Labor- und anderen Leistungen. Bestimmte Artikel und Leistungen erfordern zus\\xe4tzliche Zahlungen, die nicht im Standard-Mitgliedspreis enthalten sind. Weitere wichtige Informationen zu den von Damoi erbrachten Leistungen findest du in den AGB. Mit der Angabe deiner Telefonnummer erkl\\xe4rst du dich damit einverstanden, Textnachrichten von Damoi zu erhalten. Es k\\xf6nnen Nachrichten- und Datengeb\\xfchren anfallen. Die H\\xe4ufigkeit der Nachrichten variiert. Hinweis zum Einsatz k\\xfcnstlicher Intelligenz: Texte und Bilder auf dieser Website werden teilweise mithilfe KI-gest\\xfctzter Werkzeuge erstellt oder \\xfcberarbeitet. Alle Inhalte werden vor der Ver\\xf6ffentlichung redaktionell gepr\\xfcft; die inhaltliche Verantwortung liegt bei Damoi.\"};// ===========================================\n// PROPERTY CONTROLS\n// ===========================================\naddPropertyControls(FooterWithNewsletter,{logoImage:{type:ControlType.Image,title:\"Logo (PNG/SVG)\"},logoOnDark:{type:ControlType.Boolean,title:\"Logo wei\\xdf f\\xe4rben\",defaultValue:true,hidden:p=>!p.logoImage},brandName:{type:ControlType.String,title:\"Brand Name\",defaultValue:\"Damoi\"},nlHeadline:{type:ControlType.String,title:\"Slogan (unter Logo)\",defaultValue:\"Dein At-Home-Bluttest.\"},nlEyebrow:{type:ControlType.String,title:\"NL Eyebrow\",defaultValue:\"Newsletter\"},nlSubtext:{type:ControlType.String,title:\"NL Subtext\",defaultValue:\"Kein Spam. Nur Updates zum Launch.\"},nlPrivacyText:{type:ControlType.String,title:\"NL Datenschutz\",defaultValue:\"Mit der Anmeldung stimmst du unserer Datenschutzerkl\\xe4rung zu. Abmeldung jederzeit m\\xf6glich.\",displayTextArea:true},nlPrivacyUrl:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/datenschutz\"},nlPlaceholder:{type:ControlType.String,title:\"NL Placeholder\",defaultValue:\"Deine E-Mail\"},nlButtonText:{type:ControlType.String,title:\"NL Button\",defaultValue:\"Anmelden\"},nlSuccessText:{type:ControlType.String,title:\"NL Success\",defaultValue:\"Du bist dabei!\"},navLink1Text:{type:ControlType.String,title:\"Nav 1\",defaultValue:\"Was wir testen\"},navLink1Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/was-testen-wir\"},navLink2Text:{type:ControlType.String,title:\"Nav 2\",defaultValue:\"Produkte\"},navLink2Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/produkte\"},navLink3Text:{type:ControlType.String,title:\"Nav 3\",defaultValue:\"Blog\"},navLink3Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/blog\"},navLink4Text:{type:ControlType.String,title:\"Nav 4\",defaultValue:\"Hilfe und Fragen\"},navLink4Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/hilfe\"},navLink5Text:{type:ControlType.String,title:\"Nav 5\",defaultValue:\"Vision\"},navLink5Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/vision\"},navLink6Text:{type:ControlType.String,title:\"Nav 6\",defaultValue:\"Finde dein Panel\"},navLink6Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/quiz\"},legalLink1Text:{type:ControlType.String,title:\"Legal 1\",defaultValue:\"Impressum\"},legalLink1Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/impressum\"},legalLink2Text:{type:ControlType.String,title:\"Legal 2\",defaultValue:\"Datenschutz\"},legalLink2Url:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"/datenschutz\"},legalLink3Text:{type:ControlType.String,title:\"Legal 3\",defaultValue:\"AGB\"},contactEmail:{type:ControlType.String,title:\"E-Mail\",defaultValue:\"hello@damoi.de\"},showInstagram:{type:ControlType.Boolean,title:\"Instagram\",defaultValue:true},instagramUrl:{type:ControlType.String,title:\"↓ URL\",defaultValue:\"https://instagram.com/damoi.de\",hidden:p=>!p.showInstagram},showAppStore:{type:ControlType.Boolean,title:\"App Store Badge\",defaultValue:true},appStoreUrl:{type:ControlType.String,title:\"↓ App Store URL\",defaultValue:\"https://apps.apple.com/de/app/damoi/id6756821292\",hidden:p=>!p.showAppStore},showPlayStore:{type:ControlType.Boolean,title:\"Google Play Badge\",defaultValue:true},playStoreUrl:{type:ControlType.String,title:\"↓ Google Play URL\",defaultValue:\"https://play.google.com/store/apps/details?id=com.damoi.health\",hidden:p=>!p.showPlayStore},showAskAi:{type:ControlType.Boolean,title:\"Frag-die-KI\",defaultValue:true},askAiIconPerplexity:{type:ControlType.Image,title:\"↳ Perplexity Icon\",hidden:p=>!p.showAskAi},askAiIconGrok:{type:ControlType.Image,title:\"↳ Grok Icon\",hidden:p=>!p.showAskAi},showGooglePreferred:{type:ControlType.Boolean,title:\"Google Quelle\",defaultValue:true},googlePreferredUrl:{type:ControlType.String,title:\"↓ Quellen-URL\",defaultValue:\"https://www.google.com/preferences/source?q=damoi.de\",hidden:p=>!p.showGooglePreferred},copyrightText:{type:ControlType.String,title:\"Copyright\",defaultValue:\"2026 Damoi. Alle Rechte vorbehalten.\"},bgColor:{type:ControlType.Enum,title:\"Hintergrund\",options:[\"transparent\",\"#FAF9F6\",\"#F2F0EB\"],optionTitles:[\"Transparent\",\"Beige 1\",\"Beige 2\"],defaultValue:\"transparent\"},medicalDisclaimer:{type:ControlType.String,title:\"Disclaimer\",defaultValue:\"DISCLAIMER: Damoi empfiehlt oder verweist dich nicht an bestimmte Gesundheitsdienstleister, und es steht dir frei, jeden Gesundheitsdienstleister zu w\\xe4hlen und die Dienste von Damoi weiterhin zu nutzen. Damoi bietet keine medizinische Beratung, keine Diagnose, keine medizinische Behandlung und keine medizinische Meinung in irgendeiner Form, weder \\xfcber unsere Dienste noch anderweitig. Die Dienste von Damoi sind kein Ersatz f\\xfcr medizinische Versorgung, medizinische Beratung und/oder ein ausf\\xfchrliches Gespr\\xe4ch mit deinem Hausarzt oder einem anderen approbierten Arzt. Wenn du Fragen zu Laborergebnissen oder anderen Informationen hast, die du \\xfcber Damoi erh\\xe4ltst, empfehlen wir, diese mit einem Hausarzt oder einem anderen approbierten Arzt zu besprechen. Alle Materialien, Informationen, Daten und Inhalte, die Damoi bereitstellt, dienen ausschlie\\xdflich allgemeinen Informationszwecken. Die Mitgliedspreise von Damoi umfassen die von Damoi erhobenen Technologie- und Servicegeb\\xfchren sowie den Zugang zu vorausbezahlten Labor- und anderen Leistungen. Bestimmte Artikel und Leistungen erfordern zus\\xe4tzliche Zahlungen, die nicht im Standard-Mitgliedspreis enthalten sind. Weitere wichtige Informationen zu den von Damoi erbrachten Leistungen findest du in den AGB. Mit der Angabe deiner Telefonnummer erkl\\xe4rst du dich damit einverstanden, Textnachrichten von Damoi zu erhalten. Es k\\xf6nnen Nachrichten- und Datengeb\\xfchren anfallen. Die H\\xe4ufigkeit der Nachrichten variiert. Hinweis zum Einsatz k\\xfcnstlicher Intelligenz: Texte und Bilder auf dieser Website werden teilweise mithilfe KI-gest\\xfctzter Werkzeuge erstellt oder \\xfcberarbeitet. Alle Inhalte werden vor der Ver\\xf6ffentlichung redaktionell gepr\\xfcft; die inhaltliche Verantwortung liegt bei Damoi.\",displayTextArea:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FooterWithNewsletter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Site_Footer.map"],"mappings":"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"}