html{scroll-behavior:smooth}
body{background:#F5F2EC;color:#0E1B2C;font-family:'Geist',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:#3A9AE0;color:#fff}
.elementor a{color:#0F5597}.elementor a:hover{color:#0E1B2C}
.kx-h .elementor-heading-title em{font-style:italic;color:#0F5597}
.kx-dark .kx-h .elementor-heading-title em{color:#6DB6EC}
.kx-h .elementor-heading-title a{color:inherit}
.kx-t p:last-child{margin-bottom:0}
.kx-t a{color:#0F5597;text-decoration:underline}
.e-con.kx-fit,.kx-fitw{--width:auto;width:auto;flex:0 0 auto}
.e-con.kx-dot{--width:8px;flex:0 0 8px;--min-height:8px;height:8px;padding:0}
.kx-grow{flex-grow:1}
.kx-w820{max-width:820px}
.e-con.kx-abs{position:absolute}

/* ---------- Header ---------- */
.xpro-theme-builder-header{position:relative;z-index:100}
.xtb-header-sticky .xpro-theme-builder-header-nav,.xpro-theme-builder-header .xpro-theme-builder-header-nav{position:fixed;top:0;left:0;width:100%;z-index:100}
body.admin-bar .xpro-theme-builder-header .xpro-theme-builder-header-nav{top:32px}
.kx-header{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:background-color .3s,border-color .3s}
body:not(.kx-scrolled) .kx-header{background-color:rgba(245,242,236,0)!important;border-color:transparent!important}
body.kx-scrolled .kx-header{background-color:rgba(245,242,236,.86)!important;border-color:#E2DDD3!important}
.kx-header-btn .xpro-elementor-button{border-radius:999px;position:relative;overflow:hidden}
.kx-header-btn .xpro-elementor-button::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.38),rgba(255,255,255,0));transform:skewX(-22deg);animation:kxShine 4.2s ease-in-out 3s infinite;pointer-events:none}
#xpro-theme-builder-footer a{color:#C9D2DE}#xpro-theme-builder-footer a:hover{color:#fff}

/* ---------- Hero ---------- */
.e-con.kx-hero{height:210vh;padding:0;overflow:visible}
.e-con.kx-hero-stick{position:sticky;top:0;height:100vh;overflow:hidden;--width:100%}
.e-con.kx-orb{position:absolute;left:0;top:0;width:760px;height:760px;--width:760px;border-radius:50%;background:radial-gradient(circle,rgba(58,154,224,.18) 0%,rgba(58,154,224,0) 62%);transform:translate(calc(var(--mx,50vw) - 380px),calc(var(--my,35vh) - 380px));transition:transform .5s cubic-bezier(.2,.7,.2,1);pointer-events:none;z-index:0;padding:0}
.e-con.kx-ribbons{position:absolute;inset:0;--width:100%;pointer-events:none;padding:0;z-index:0;transform:translate(calc(var(--nx,0) * -26px),calc(var(--ny,0) * -26px + var(--p,0) * -22vh));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.e-con.kx-ribbons2{transform:translate(calc(var(--nx,0) * 14px),calc(var(--ny,0) * 14px))}
.e-con.kx-rb{position:absolute;padding:0;background:#3A9AE0;transform-origin:100% 50%}
.e-con.kx-rb1{right:-30vmax;top:50%;width:150vmax;--width:150vmax;height:7vmin;opacity:.16;transform:rotate(-45deg);animation:kxRibbon 1.6s cubic-bezier(.7,0,.2,1) .15s both}
.e-con.kx-rb2{right:-42vmax;top:62%;width:150vmax;--width:150vmax;height:7vmin;opacity:.1;transform:rotate(-45deg);animation:kxRibbon 1.6s cubic-bezier(.7,0,.2,1) .35s both}
.e-con.kx-rb3{right:-20vmax;top:30%;width:120vmax;--width:120vmax;height:5vmin;background:#0F5597;opacity:.08;transform:rotate(45deg);animation:kxRibbon 1.8s cubic-bezier(.7,0,.2,1) .55s both}
.e-con.kx-rb4{left:-36vmax;top:78%;width:110vmax;--width:110vmax;height:4vmin;background:#0F5597;opacity:.07;transform:rotate(-45deg);transform-origin:0 50%;animation:kxRibbonL 1.8s cubic-bezier(.7,0,.2,1) .7s both}
.e-con.kx-hero-content{position:relative;z-index:4;max-width:1100px;--width:100%;padding-top:clamp(110px,16vh,160px);opacity:calc(1 - var(--p,0) * 1.8);transform:translateY(calc(var(--p,0) * -12vh)) scale(calc(1 - var(--p,0) * .08))}
.kx-split .kx-w{display:inline-block;animation:kxWord 1.1s cubic-bezier(.2,.7,.2,1) both}
.kx-split .elementor-heading-title{text-wrap:balance}
.kx-split em .kx-w{padding:0 .04em;background:linear-gradient(100deg,#0F5597 0%,#0F5597 42%,#6DB6EC 50%,#0F5597 58%,#0F5597 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:kxWord 1.1s cubic-bezier(.2,.7,.2,1) both,kxTextShine 5s ease-in-out infinite}
.kx-rot{display:inline-block;font-family:'Instrument Serif',serif;font-style:italic;font-size:1.3em;line-height:1;color:#0F5597}
.kx-rot.kx-in{animation:kxWordIn .7s cubic-bezier(.2,.7,.2,1) both}
.kx-rise{animation:kxRise .9s cubic-bezier(.2,.7,.2,1) .1s both}
.kx-d0{animation-delay:.2s}.kx-d1{animation-delay:2s}.kx-d2{animation-delay:2.3s}.kx-d3{animation-delay:3.2s}.kx-d4{animation-delay:1.35s}.kx-d5{animation-delay:1.55s}.kx-d6{animation-delay:2.4s}
.e-con.kx-cue{--width:1px;flex:0 0 auto;height:34px;padding:0;animation:kxCue 2s cubic-bezier(.6,0,.3,1) 3s infinite}
.kx-pulse .kx-dot,.e-con.kx-pulse{animation:kxPulse 2s infinite}
.e-con.kx-hero-mock{position:absolute;left:50%;bottom:0;width:min(1180px,92vw);--width:min(1180px,92vw);padding:0;transform:translate(-50%,calc((1 - var(--p,0)) * 58vh + 4vh)) scale(calc(.86 + var(--p,0) * .14));transform-origin:50% 100%;z-index:1;pointer-events:none}
.e-con.kx-mock{animation:kxFrameIn 1.4s cubic-bezier(.2,.7,.2,1) 1.1s both;text-align:left}
.e-con.kx-mock-body{height:min(62vh,640px);overflow:hidden}
.kx-mock .e-con.kx-url{margin:0 auto}
.kx-slot-glow{animation:kxGlow 3s ease-in-out 3s infinite}

/* ---------- Buttons ---------- */
.kx-btn .elementor-button{position:relative;overflow:hidden;transition:background .25s,color .25s,transform .25s,border-color .25s}
.kx-btn .elementor-button:hover{transform:translateY(-2px)}
.kx-shine .elementor-button::after,.kx-shine-soft .elementor-button::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.42),rgba(255,255,255,0));transform:skewX(-22deg);animation:kxShine 3.4s ease-in-out 2.2s infinite;pointer-events:none}
.kx-shine-soft .elementor-button::after{background:linear-gradient(100deg,rgba(58,154,224,0),rgba(58,154,224,.22),rgba(58,154,224,0));animation-delay:3.9s}
.kx-glow .elementor-button{animation:kxGlow 3s ease-in-out 2.4s infinite}
.kx-arrow .elementor-button-text::after{content:'\2192';display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin:-7px -10px -7px 12px;border-radius:50%;background:#3A9AE0;color:#fff;font-size:15px;vertical-align:middle}

/* ---------- Cards ---------- */
.kx-card{transition:transform .4s,box-shadow .4s}
.kx-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(14,27,44,.08)}

/* ---------- Story (sticky phone) ---------- */
.e-con.kx-story{height:420vh;padding:0;overflow:visible}
.e-con.kx-story-stick{position:sticky;top:0;height:100vh;overflow:hidden;justify-content:center;--width:100%}
.e-con.kx-story-row{max-width:1240px;--width:100%;margin:0 auto;padding:clamp(80px,10vh,110px) clamp(18px,4vw,40px) 24px}
.e-con.kx-st-wrap{position:relative;flex:1 1 420px;min-height:clamp(170px,30vh,300px);padding:0}
.e-con.kx-st{position:absolute;inset:0;padding:0;--width:100%}
.kx-st .kx-h .elementor-heading-title{text-wrap:balance}
.kx-st1{opacity:clamp(0,min((var(--p,0) + .1) * 10,(.24 - var(--p,0)) * 10),1);transform:translateY(calc((.1 - var(--p,0)) * 80px))}
.kx-st2{opacity:clamp(0,min((var(--p,0) - .26) * 10,(.49 - var(--p,0)) * 10),1);transform:translateY(calc((.375 - var(--p,0)) * 80px))}
.kx-st3{opacity:clamp(0,min((var(--p,0) - .51) * 10,(.74 - var(--p,0)) * 10),1);transform:translateY(calc((.625 - var(--p,0)) * 80px))}
.kx-st4{opacity:clamp(0,(var(--p,0) - .76) * 10,1);transform:translateY(calc(max(0,.86 - var(--p,0)) * 80px))}
.e-con.kx-phone{flex:0 0 auto;margin:0 auto;height:min(600px,52vh);width:auto;--width:auto;aspect-ratio:9/18.5;border-radius:clamp(30px,5vh,46px);background:#1B2A3E;padding:clamp(7px,1.2vh,11px);box-shadow:0 40px 120px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.08);transform:rotate(calc((.5 - var(--p,0)) * 6deg)) translateY(calc((.5 - var(--p,0)) * 30px))}
.e-con.kx-screen{position:relative;width:100%;height:100%;--width:100%;border-radius:clamp(24px,4.2vh,38px);overflow:hidden;background:#101C2B;padding:0}
.e-con.kx-scr{position:absolute;inset:0;--width:100%}
.e-con.kx-scr1{padding-top:18%;opacity:clamp(0,(.25 - var(--p,0)) * 12,1)}
.e-con.kx-scr2{background:#FBFAF7;padding:16% 7% 0;opacity:clamp(0,min((var(--p,0) - .22) * 12,(.78 - var(--p,0)) * 12),1)}
.e-con.kx-scr3{background:#0F2A47;padding:22% 8% 18%;justify-content:space-between;opacity:clamp(0,(var(--p,0) - .76) * 12,1)}
.kx-ph-date .elementor-heading-title{font-size:clamp(11px,1.6vh,14px)!important}
.kx-ph-time .elementor-heading-title{font-size:clamp(46px,9vh,82px)!important}
.kx-ph-s .elementor-heading-title{font-size:clamp(9px,1.3vh,11px)!important}
.kx-ph-m .elementor-heading-title{font-size:clamp(11px,1.6vh,13px)!important}
.kx-ph-l .elementor-heading-title{font-size:clamp(12px,1.8vh,15px)!important}
.kx-ph-xl .elementor-heading-title{font-size:clamp(20px,3.6vh,30px)!important}
.kx-ph-h .elementor-heading-title{font-size:clamp(15px,2.4vh,20px)!important}
.e-con.kx-ph-mag{--width:10px;flex:0 0 10px;width:10px;height:10px;border:1.5px solid #4A5566;border-radius:50%;padding:0}
.kx-typed{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;max-width:calc(clamp(0,(var(--p,0) - .28) * 5,1) * 100%)}
.kx-caret{display:inline-block;width:1.5px;height:14px;margin-left:2px;background:#0F5597;vertical-align:middle;animation:kxCaret 1s steps(1) infinite}
.e-con.kx-ph-results{opacity:clamp(0,(var(--p,0) - .5) * 10,1);transform:translateY(calc(max(0,.6 - var(--p,0)) * 60px))}
.e-con.kx-ph-bar{height:8px;border-radius:4px;background:#E2DDD3;padding:0}
.e-con.kx-ph-call{--width:clamp(40px,7vh,60px);width:clamp(40px,7vh,60px);flex:0 0 auto;aspect-ratio:1;border-radius:50%;padding:0}

/* ---------- Marquee ---------- */
.kx-marquee .elementor-heading-title{display:flex;gap:48px;white-space:nowrap;width:max-content;transform:translateX(calc(var(--sy,0) * -0.18px + 10vw))}
.kx-marquee .kx-star{color:#3A9AE0}

/* ---------- Statement ---------- */
.kx-words .kx-w{opacity:.14;transition:opacity .15s linear}

/* ---------- Referenzen (pinned horizontal) ---------- */
.e-con.kx-refs{height:320vh;padding:0;overflow:visible}
@media(max-width:899px){.e-con.kx-refs{height:420vh}}
.e-con.kx-refs-stick{position:sticky;top:0;height:100vh;overflow:hidden;justify-content:center;gap:clamp(24px,4vh,44px);--width:100%}
.e-con.kx-refs-head,.e-con.kx-prog-wrap{max-width:1240px;--width:100%;margin:0 auto}
.e-con.kx-refs-head{padding:60px clamp(18px,4vw,40px) 0}
.e-con.kx-prog-wrap{padding:0 clamp(18px,4vw,40px)}
.e-con.kx-track{--width:max-content;width:max-content;max-width:none;flex-wrap:nowrap;padding:0 clamp(18px,4vw,40px);transform:translateX(calc(var(--p,0) * (100vw - 100%)))}
.e-con.kx-ref-track{--width:min(78vw,500px);flex:0 0 min(78vw,500px)}
.e-con.kx-prog{height:2px;background:#DCD5C9;border-radius:2px;overflow:hidden;padding:0}
.e-con.kx-prog-fill{height:100%;--width:100%;background:#0F5597;transform-origin:0 50%;transform:scaleX(var(--p,0));padding:0}
.kx-ref{color:#0E1B2C}
.kx-ref:hover .elementor-heading-title{color:#0F5597}
.kx-ref-img img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s}
.kx-ref:hover .kx-ref-img img{transform:scale(1.04)}

/* ---------- Ablauf ---------- */
@media(min-width:1025px){.kx-sticky{position:sticky;top:120px}}
.e-con.kx-steps{position:relative}
.kx-steps::before,.kx-steps::after{content:'';position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:#E2DDD3}
.kx-steps::after{background:#3A9AE0;transform-origin:50% 0;transform:scaleY(var(--p,0))}
.e-con.kx-step{position:relative}
.kx-step::before{content:'';position:absolute;left:0;top:10px;width:16px;height:16px;border-radius:50%;background:#F5F2EC;border:2px solid #3A9AE0;box-sizing:border-box;z-index:1}

/* ---------- Über uns ---------- */
.e-con.kx-pic{overflow:hidden}
.kx-pic img{transform:translateY(calc((.5 - var(--p,0)) * 80px + 20px))}

/* ---------- FAQ ---------- */
.kx-faq .elementor-toggle-item{border-bottom:1px solid #D9D3C8}
.kx-faq .elementor-toggle-item:first-child{border-top:1px solid #D9D3C8}
.kx-faq .elementor-tab-title,.kx-faq .elementor-tab-content{border:0!important}
.kx-faq .elementor-toggle-icon{transition:transform .3s}

/* ---------- Kontakt ---------- */
.e-con.kx-kontakt{position:relative}
.kx-watermark{position:absolute!important;left:-10vw;bottom:-14vw;width:min(60vw,640px)!important;opacity:.07;pointer-events:none;z-index:0}
.kx-watermark img{width:100%}
.kx-kontakt > .e-con-inner{position:relative;z-index:1}
.kx-formcard .wpforms-container{margin:0!important}
.kx-formcard .wpforms-field{padding:0 0 18px!important}
.kx-formcard .wpforms-field input,.kx-formcard .wpforms-field textarea{max-width:100%!important;width:100%!important}
.kx-formcard .wpforms-submit{width:100%;cursor:pointer;transition:background .2s;position:relative;overflow:hidden}
.kx-formcard .wpforms-confirmation-container-full{background:#E6EEF6!important;border:0!important;border-radius:14px;color:#0E1B2C}

@keyframes kxPulse{0%{box-shadow:0 0 0 0 rgba(58,154,224,.55)}70%{box-shadow:0 0 0 10px rgba(58,154,224,0)}100%{box-shadow:0 0 0 0 rgba(58,154,224,0)}}
@keyframes kxCaret{50%{opacity:0}}
@keyframes kxWord{0%{opacity:0;transform:translateY(.55em) rotate(3deg);filter:blur(12px)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes kxRise{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
@keyframes kxFrameIn{0%{opacity:0;transform:translateY(140px) scale(.94)}100%{opacity:1;transform:none}}
@keyframes kxRibbon{0%{clip-path:inset(0 0 0 100%)}100%{clip-path:inset(0 0 0 0)}}
@keyframes kxRibbonL{0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes kxShine{0%{left:-70%}55%,100%{left:130%}}
@keyframes kxGlow{0%,100%{box-shadow:0 10px 30px rgba(15,85,151,.25),0 0 0 0 rgba(58,154,224,.35)}50%{box-shadow:0 14px 40px rgba(15,85,151,.35),0 0 0 8px rgba(58,154,224,0)}}
@keyframes kxTextShine{0%{background-position:120% 0}60%,100%{background-position:-120% 0}}
@keyframes kxWordIn{0%{opacity:0;transform:translateY(.6em);filter:blur(6px)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes kxCue{0%{transform:scaleY(0);transform-origin:50% 0}45%{transform:scaleY(1);transform-origin:50% 0}55%{transform:scaleY(1);transform-origin:50% 100%}100%{transform:scaleY(0);transform-origin:50% 100%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Elementor editor: pinned sections flat so they stay editable */
.elementor-editor-active .e-con.kx-hero,.elementor-editor-active .e-con.kx-story,.elementor-editor-active .e-con.kx-refs{height:auto}
.elementor-editor-active .e-con.kx-hero-stick,.elementor-editor-active .e-con.kx-story-stick,.elementor-editor-active .e-con.kx-refs-stick{position:relative;height:auto;min-height:100vh}
.elementor-editor-active .e-con.kx-hero-mock{position:relative;left:auto;transform:none;margin:40px auto 0}
.elementor-editor-active .e-con.kx-st{position:relative;opacity:1;transform:none}
.elementor-editor-active .e-con.kx-scr{position:relative;opacity:1}

.e-con.kx-pagehead{position:relative;overflow:hidden}
.e-con.kx-pagehead .kx-orb{top:-200px}
.e-con.kx-ph-content{position:relative;z-index:2;--width:100%;max-width:1100px}

/* Über uns Bildkarte */
.e-con.kx-pic{position:relative;width:100%;--width:100%;max-width:440px;aspect-ratio:4/5;min-height:0!important;--min-height:0;justify-self:center;justify-content:center;align-items:center}
.e-con.kx-pic > .e-con{flex:1 1 auto;width:100%;--width:100%;justify-content:center;align-items:center}
.e-con.kx-pic > .elementor-widget-heading{position:absolute;left:22px;bottom:20px;width:auto}
.kx-pic .elementor-widget-image{width:100%;text-align:center}
.kx-pic .elementor-widget-image img{width:46%!important;max-width:220px}

/* Smooth reveals: replace Elementor's 100% jump + 2s slow timing */
.elementor-element.animated.fadeInUp,.elementor-element.animated.animated-slow.fadeInUp{animation-name:kxReveal!important;animation-duration:.9s!important;animation-timing-function:cubic-bezier(.2,.7,.2,1)!important;animation-fill-mode:both!important}
@keyframes kxReveal{0%{opacity:0;transform:translate3d(0,34px,0)}100%{opacity:1;transform:none}}
.e-con.kx-hero-mock,.e-con.kx-track,.e-con.kx-phone,.e-con.kx-ribbons,.e-con.kx-st,.e-con.kx-hero-content,.e-con.kx-orb,.kx-marquee .elementor-heading-title,.kx-pic img{will-change:transform}
.e-con.kx-ribbons,.e-con.kx-orb{transition-timing-function:cubic-bezier(.2,.7,.2,1)}
/* Über uns: chat card */
.e-con.kx-chat{position:relative;width:100%;--width:100%;max-width:460px;justify-self:center;background:#EDE8DF;border-radius:24px;padding:28px;gap:14px;overflow:hidden}
.e-con.kx-chat::before{content:'';position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(58,154,224,.22),rgba(58,154,224,0) 65%);pointer-events:none}
.e-con.kx-chat-head{flex-direction:row;align-items:center;gap:12px;padding:0 0 14px;border-bottom:1px solid #DCD5C9;margin-bottom:6px}
.kx-chat-head .elementor-widget-image{width:44px;flex:0 0 44px}
.kx-chat-head .elementor-widget-image img{width:44px;height:44px;border-radius:50%;background:#fff;padding:7px;object-fit:contain;box-sizing:border-box}
.e-con.kx-bub{max-width:86%;--width:auto;width:auto;padding:14px 16px;border-radius:18px;gap:6px;opacity:0;transform:translateY(18px) scale(.98);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.e-con.kx-bub-in{align-self:flex-start;background:#fff;border-bottom-left-radius:6px}
.e-con.kx-bub-out{align-self:flex-end;background:#0E1B2C;border-bottom-right-radius:6px}
.e-con.kx-bub.kx-in{opacity:1;transform:none}
.e-con.kx-typing{flex-direction:row;align-self:flex-start;gap:5px;padding:14px 16px;background:#fff;border-radius:18px;border-bottom-left-radius:6px;--width:auto;width:auto;opacity:0;transition:opacity .5s}
.e-con.kx-typing.kx-in{opacity:1}
.e-con.kx-typing > .e-con{width:7px;--width:7px;height:7px;flex:0 0 7px;padding:0;border-radius:50%;background:#9FB0C4;animation:kxType 1.2s ease-in-out infinite}
.e-con.kx-typing > .e-con:nth-child(2){animation-delay:.15s}.e-con.kx-typing > .e-con:nth-child(3){animation-delay:.3s}
@keyframes kxType{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.e-con.kx-chat-foot{flex-direction:row;justify-content:space-between;align-items:center;padding:14px 0 0;margin-top:6px;border-top:1px solid #DCD5C9}
.elementor-editor-active .e-con.kx-bub,.elementor-editor-active .e-con.kx-typing{opacity:1;transform:none}
/* ===== Performance overrides ===== */
.kx-header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.kx-scrolled .kx-header{background-color:rgba(245,242,236,.95)!important}
.kx-shine .elementor-button::after,.kx-shine-soft .elementor-button::after,.kx-header-btn .xpro-elementor-button::after{left:0!important;transform:translate3d(-160%,0,0) skewX(-22deg);animation-name:kxShineT!important;will-change:transform}
@keyframes kxShineT{0%{transform:translate3d(-160%,0,0) skewX(-22deg)}55%,100%{transform:translate3d(330%,0,0) skewX(-22deg)}}
.kx-glow .elementor-button{animation:none!important;box-shadow:0 10px 30px rgba(15,85,151,.25)}
.kx-glow .elementor-button-wrapper{position:relative;display:inline-block}
.kx-glow .elementor-button-wrapper::before{content:'';position:absolute;inset:0;border-radius:999px;border:2px solid rgba(58,154,224,.55);opacity:0;pointer-events:none;animation:kxRing 3s ease-out 2.4s infinite;will-change:transform,opacity}
@keyframes kxRing{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(1.12,1.35);opacity:0}}
.kx-slot-glow{animation:none!important;box-shadow:0 10px 30px rgba(15,85,151,.3),0 0 0 3px rgba(58,154,224,.25)}
.e-con.kx-hero-stick,.e-con.kx-story-stick,.e-con.kx-refs-stick{contain:layout paint}
.e-con.kx-orb{will-change:transform}
.kx-off *,.kx-off *::before,.kx-off *::after{animation-play-state:paused!important}
.e-con.kx-hero-mock{backface-visibility:hidden}
.kx-mock{box-shadow:0 -20px 60px rgba(14,27,44,.10)!important}
/* Header over dark first section: always solid */
body.kx-dark-top .kx-header{background-color:rgba(245,242,236,.95)!important;border-color:#E2DDD3!important}
.kx-header-btn .xpro-elementor-button,.kx-header-btn .xpro-elementor-button *{white-space:nowrap}
/* Subpages */
.kx-list ul,ul.kx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.kx-list li,ul.kx-list li{position:relative;padding-left:26px}
.kx-list li::before,ul.kx-list li::before{content:'';position:absolute;left:0;top:.5em;width:14px;height:8px;border-left:2px solid #3A9AE0;border-bottom:2px solid #3A9AE0;transform:rotate(-45deg) translateY(-3px)}
.kx-mt{margin-top:28px}
.e-con.kx-owner{position:relative;overflow:hidden}
.e-con.kx-owner::after{content:'';position:absolute;right:-8%;top:-40%;width:55%;height:180%;background:linear-gradient(135deg,rgba(58,154,224,.16),rgba(58,154,224,0) 60%);transform:rotate(-20deg);pointer-events:none}
.kx-owner .elementor-widget-image img{width:40px!important;background:#fff;border-radius:50%;padding:6px;box-sizing:border-box}
.e-con.kx-owner-grid{grid-template-columns:1fr 2fr!important}
@media(max-width:1024px){.e-con.kx-owner-grid{grid-template-columns:1fr!important}}
/* Legal pages */
.kx-legal-head{position:relative}
.kx-legal-text h1,.kx-legal-text h2,.kx-legal-text h3,.kx-legal-text h4{font-family:'Instrument Serif',serif!important;font-weight:400!important;color:#0E1B2C!important;letter-spacing:-0.01em;line-height:1.1!important;margin:1.6em 0 .5em!important;text-transform:none!important;hyphens:auto;overflow-wrap:anywhere}
.kx-legal-text h2{font-size:clamp(28px,3.2vw,40px)!important;padding-top:1.1em;border-top:1px solid #E2DDD3}
.kx-legal-text > h2:first-child,.kx-legal-text > *:first-child{margin-top:0!important;padding-top:0;border-top:0}
.kx-legal-text h3{font-size:clamp(22px,2.2vw,28px)!important}
.kx-legal-text h4{font-size:20px!important}
.kx-legal-text p,.kx-legal-text li{color:#4A5566;font-size:16px;line-height:1.7}
.kx-legal-text strong{color:#0E1B2C;font-weight:600}
.kx-legal-text a{color:#0F5597;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.kx-legal-text ul{padding-left:1.2em}
/* Buttons: no theme uppercase, arrow stays inline */
.kx-btn .elementor-button,.kx-formcard .wpforms-submit,.kx-header-btn .xpro-elementor-button{text-transform:none!important;letter-spacing:0!important}
.kx-btn .elementor-button{white-space:nowrap}
.kx-btn .elementor-button-content-wrapper{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap}
.kx-arrow .elementor-button-text{display:inline-flex;align-items:center;flex-wrap:nowrap;white-space:nowrap}
.kx-arrow .elementor-button-text::after{flex:0 0 30px;margin:-7px -10px -7px 12px!important}
@media(max-width:767px){
 .kx-btn .elementor-button{font-size:15px!important}
 .kx-arrow .elementor-button{padding:15px 16px 15px 22px!important}
 .kx-arrow .elementor-button-text::after{width:28px;height:28px;flex-basis:28px;margin-left:10px!important}
}
/* ===== Mobile menu (matches design) ===== */
.kx-menu-open .xpro-elementor-button{display:inline-flex!important;align-items:center;gap:10px;height:46px;border-radius:999px!important;white-space:nowrap}
.kx-menu-open .xpro-elementor-button::after{content:'';width:30px;height:30px;border-radius:50%;flex:0 0 30px;background:linear-gradient(#fff,#fff) 9px 11px/12px 1.5px no-repeat,linear-gradient(#fff,#fff) 13px 17px/8px 1.5px no-repeat,#3A9AE0}
.kx-menu-close .xpro-elementor-button{display:inline-flex!important;align-items:center;gap:10px;height:46px;border:1px solid rgba(255,255,255,.2)!important;border-radius:999px!important}
.kx-menu-close .xpro-elementor-button::after{content:'';width:30px;height:30px;border-radius:50%;flex:0 0 30px;background:linear-gradient(45deg,transparent 47%,#0E1B2C 47%,#0E1B2C 53%,transparent 53%) center/12px 12px no-repeat,linear-gradient(-45deg,transparent 47%,#0E1B2C 47%,#0E1B2C 53%,transparent 53%) center/12px 12px no-repeat,#F5F2EC}
.e-con.kx-mmenu{position:fixed!important;inset:0;z-index:9999;width:100%;--width:100%;height:100vh;height:100dvh;background:#0E1B2C;color:#F5F2EC;overflow:hidden;clip-path:circle(0px at calc(100% - 44px) 37px);-webkit-clip-path:circle(0px at calc(100% - 44px) 37px);pointer-events:none;visibility:hidden;transition:clip-path .7s cubic-bezier(.7,0,.2,1),-webkit-clip-path .7s cubic-bezier(.7,0,.2,1),visibility 0s linear .7s}
body.kx-menu-is-open .e-con.kx-mmenu{clip-path:circle(160% at calc(100% - 44px) 37px);-webkit-clip-path:circle(160% at calc(100% - 44px) 37px);pointer-events:auto;visibility:visible;transition:clip-path .7s cubic-bezier(.7,0,.2,1),-webkit-clip-path .7s cubic-bezier(.7,0,.2,1),visibility 0s}
body.kx-menu-is-open{overflow:hidden}
@media(min-width:1025px){.e-con.kx-mmenu{display:none!important}}
.e-con.kx-mm-decor{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.e-con.kx-mm-decor::before,.e-con.kx-mm-decor::after{content:'';position:absolute;right:-40vmax;top:62%;width:150vmax;height:9vmin;background:#3A9AE0;opacity:.14;transform:rotate(-45deg);transform-origin:100% 50%}
.e-con.kx-mm-decor::after{right:-55vmax;top:78%;opacity:.08}
.e-con.kx-mm-top{position:relative;padding:12px 18px!important}
.e-con.kx-mm-brand{--width:auto;width:auto;flex:0 0 auto}
.e-con.kx-mm-nav{position:relative;flex:1 1 auto;justify-content:center;padding:0 18px!important}
.e-con.kx-mm-item{padding:14px 0!important;border-bottom:1px solid rgba(255,255,255,.1);color:#F5F2EC;opacity:0;transform:translateY(28px);transition:opacity .2s ease,transform .2s ease}
body.kx-menu-is-open .e-con.kx-mm-item{opacity:1;transform:none;transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
body.kx-menu-is-open .e-con.kx-mm-item:nth-child(1){transition-delay:.18s}body.kx-menu-is-open .e-con.kx-mm-item:nth-child(2){transition-delay:.24s}body.kx-menu-is-open .e-con.kx-mm-item:nth-child(3){transition-delay:.30s}body.kx-menu-is-open .e-con.kx-mm-item:nth-child(4){transition-delay:.36s}body.kx-menu-is-open .e-con.kx-mm-item:nth-child(5){transition-delay:.42s}
.kx-mm-n{width:22px;flex:0 0 22px}
.kx-mm-label{flex:1 1 auto}
.kx-mm-label .elementor-heading-title{font-size:clamp(40px,11vw,60px)!important}
.e-con.kx-mm-item:hover .kx-mm-label .elementor-heading-title{color:#6DB6EC!important}
.kx-mm-arrow{flex:0 0 auto}
.e-con.kx-mm-foot{position:relative;padding:24px 18px 34px!important;opacity:0;transform:translateY(20px);transition:opacity .3s ease,transform .3s ease}
body.kx-menu-is-open .e-con.kx-mm-foot{opacity:1;transform:none;transition:opacity .6s ease .45s,transform .6s cubic-bezier(.2,.7,.2,1) .45s}
.kx-mm-cta,.kx-mm-cta .elementor-widget-container{width:100%}
.kx-mm-cta .xpro-elementor-button{display:flex!important;width:100%;align-items:center;justify-content:space-between;border-radius:999px!important}
.kx-mm-cta .xpro-elementor-button::after{content:'\2192';width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#3A9AE0;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}
.elementor-editor-active .e-con.kx-mmenu{position:relative!important;clip-path:none;-webkit-clip-path:none;visibility:visible;pointer-events:auto;height:auto;min-height:100vh}
.elementor-editor-active .e-con.kx-mm-item,.elementor-editor-active .e-con.kx-mm-foot{opacity:1;transform:none}
.kx-mm-root{position:static}
.kx-menu-open{flex:0 0 auto!important;margin-left:auto}
.kx-menu-open .xpro-elementor-button{padding:0 8px 0 16px!important}
@media(max-width:1024px){.kx-header{gap:12px!important}.kx-header .kx-brand{flex:1 1 auto;min-width:0}}
.kx-mmenu .elementor-widget-xpro-site-logo img{width:34px!important;height:auto;max-width:34px}
.kx-mmenu .kx-mm-brand .elementor-widget-xpro-site-logo{width:34px;flex:0 0 34px}
.kx-menu-close .xpro-elementor-button{background:transparent!important;color:#F5F2EC!important;padding:0 8px 0 16px!important}
.kx-mm-label .elementor-heading-title{font-family:'Instrument Serif',serif!important;font-weight:400!important;line-height:1!important}
.e-con.kx-mm-item{flex-direction:row!important;align-items:baseline!important;gap:16px!important}
/* Hero mockup on phones/tablets: natural height, stacked content */
.e-con.kx-mock-body > .e-grid{--e-con-grid-template-rows:auto!important;grid-template-rows:auto!important;align-content:start}
@media(max-width:1024px){
 .e-con.kx-mock-body{height:auto!important;max-height:78vh}
 .e-con.kx-mock-body > .e-grid{--display:flex!important;display:flex!important;flex-direction:column!important;gap:24px!important}
 .e-con.kx-mock-body > .e-grid > .e-con{width:100%;--width:100%}
}
@media(max-width:767px){
 .e-con.kx-hero-mock{width:calc(100vw - 32px);--width:calc(100vw - 32px)}
 .kx-mock .kx-rise{animation-delay:.6s}
 .kx-mock .kx-d2{animation-delay:.9s}.kx-mock .kx-d3{animation-delay:1.3s}
}
/* iOS Safari: avoid oversized composited layers that paint blank */
@media(max-width:1024px){
 .e-con.kx-hero-mock,.e-con.kx-mock,.e-con.kx-hero-stick,.e-con.kx-story-stick,.e-con.kx-refs-stick{will-change:auto!important;backface-visibility:visible!important;contain:none!important}
 .kx-mock{box-shadow:0 -10px 40px rgba(14,27,44,.10)!important}
 .e-con.kx-mock{animation:none!important}
 .e-con.kx-mock-body > .e-con:first-child{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important}
 .e-con.kx-mock-body > .e-con:first-child .elementor-heading-title{white-space:nowrap}
}
@media(max-width:1024px){
 .kx-mock-body .e-grid,.kx-mock-body .e-grid *{visibility:visible!important}
 .kx-mock-body .e-grid .e-con,.kx-mock-body .e-grid .elementor-widget{opacity:1!important;animation:none!important;transform:none!important}
 .kx-mock-body .e-grid .kx-slot-glow{box-shadow:0 8px 20px rgba(15,85,151,.3)!important}
}