/* CODE INFLOW: effects that Elementor's free controls cannot express.
   Everything else (text, colours, type, spacing) is set in the Elementor widgets. */
:root{--ci-bg:#050914;--ci-ink:#eef3ff;--ci-soft:#a9b6d3;--ci-faint:#6f7ea3;--ci-blue:#4f8cff;--ci-cyan:#5fe3ff;--ci-violet:#9a7bff;--ci-line:rgba(140,170,255,.16)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{-webkit-font-smoothing:antialiased}

/* Hero */
.ci-hero{position:relative;overflow:hidden;isolation:isolate}
.ci-hero>canvas.ci-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.ci-hero>*:not(canvas){position:relative;z-index:1}
.ci-stage::before{content:"";position:absolute;left:50%;top:46%;width:min(78%,520px);aspect-ratio:3/5;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(70,130,255,.22),rgba(90,80,255,.07) 55%,transparent 100%);filter:blur(18px);pointer-events:none}
.ci-stage::after{content:"";position:absolute;left:50%;bottom:5%;width:min(60%,380px);height:44px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(95,227,255,.22),transparent 100%);filter:blur(10px);pointer-events:none}
.ci-status .elementor-heading-title{display:inline-flex;align-items:center;gap:.6rem}
.ci-status .elementor-heading-title::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ci-cyan);box-shadow:0 0 10px 2px rgba(95,227,255,.6);animation:ci-pulse 2.6s ease-in-out infinite}
@keyframes ci-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
.ci-btn-primary .elementor-button{transition:box-shadow .2s ease,transform .2s ease,background-color .2s ease}
.ci-btn-primary .elementor-button:hover{box-shadow:0 0 32px 0 rgba(95,200,255,.35);transform:translateY(-1px)}

/* Statement whose words light up on scroll */
.ci-words .elementor-heading-title{text-wrap:pretty}
.ci-words .elementor-heading-title.is-live span{opacity:.16;transition:opacity .35s ease}
.ci-words .elementor-heading-title.is-live span.is-on{opacity:1}

/* Service rows */
.ci-svc-row{--mx:50%;transition:opacity .3s ease}
.ci-svc-row::before{content:"";position:absolute;inset:0;background:radial-gradient(26rem 12rem at var(--mx) 50%,rgba(79,140,255,.2),rgba(154,123,255,.06) 55%,transparent 75%);opacity:0;transition:opacity .35s ease;pointer-events:none}
.ci-svc-row .elementor-heading-title{transition:transform .35s ease}
@media (hover:hover){
.ci-svc-list:hover .ci-svc-row:not(:hover){opacity:.4}
.ci-svc-row:hover::before{opacity:1}
.ci-svc-row:hover .elementor-widget-heading .elementor-heading-title{transform:translateX(.6rem)}
.ci-svc-row:hover .elementor-icon-list-text{color:var(--ci-cyan)}
.ci-case:hover .ci-shot{transform:translateY(-6px)}
}

/* Work rail */
.ci-rail{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ci-rail::-webkit-scrollbar{display:none}
.ci-case{scroll-snap-align:start;flex-shrink:0}
.ci-shot{transition:transform .4s ease;box-shadow:0 34px 60px -34px rgba(10,17,36,.55)}

/* Process line */
.ci-sticky{position:sticky;top:7rem;align-self:flex-start}
.ci-steps{--p:1}
.ci-steps::before,.ci-steps::after{content:"";position:absolute;left:11px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--ci-line)}
.ci-steps::after{background:linear-gradient(var(--ci-cyan),var(--ci-blue) 55%,var(--ci-violet));transform-origin:top;transform:scaleY(var(--p));box-shadow:0 0 14px rgba(95,200,255,.55)}
.ci-step::before{content:"";position:absolute;left:-52px;top:6px;width:24px;height:24px;box-sizing:border-box;border-radius:50%;background:var(--ci-bg);border:2px solid var(--ci-cyan);box-shadow:0 0 16px rgba(95,227,255,.6);z-index:1;transition:border-color .4s ease,box-shadow .4s ease}
.ci-step>*{transition:opacity .4s ease}
.ci-steps.is-live .ci-step:not(.is-on)>*{opacity:.3}
.ci-steps.is-live .ci-step:not(.is-on)::before{border-color:#2a3657;box-shadow:none}

/* Audit panel */
.ci-panel{background-image:radial-gradient(50% 70% at 0% 0%,rgba(79,140,255,.26),transparent 70%),radial-gradient(45% 60% at 100% 100%,rgba(154,123,255,.2),transparent 70%)}
.ci-checks .elementor-icon-list-icon svg,.ci-checks .elementor-icon-list-icon i{filter:drop-shadow(0 0 6px rgba(95,227,255,.7))}

/* WPForms on dark */
.ci-form .wpforms-container{--wpforms-field-background-color:rgba(5,9,20,.55);--wpforms-field-border-color:rgba(140,170,255,.16);--wpforms-field-text-color:#eef3ff;--wpforms-label-color:#a9b6d3;--wpforms-label-sublabel-color:#6f7ea3;--wpforms-field-border-radius:12px;--wpforms-button-background-color:#eef3ff;--wpforms-button-text-color:#050914;--wpforms-button-border-radius:999px;--wpforms-button-size-height:52px;margin:0}
.ci-form .wpforms-form label.wpforms-field-label{color:#a9b6d3;font-weight:400;font-size:15px}
.ci-form .wpforms-form input[type=text],.ci-form .wpforms-form input[type=email],.ci-form .wpforms-form input[type=url],.ci-form .wpforms-form input[type=tel],.ci-form .wpforms-form textarea{background:rgba(5,9,20,.55);border:1px solid rgba(140,170,255,.16);border-radius:12px;color:#eef3ff;padding:14px 16px;height:auto;max-width:100%;font-family:inherit;font-size:16px}
.ci-form .wpforms-form input::placeholder,.ci-form .wpforms-form textarea::placeholder{color:#6f7ea3}
.ci-form .wpforms-form input:focus,.ci-form .wpforms-form textarea:focus{border-color:#5fe3ff;outline:0;box-shadow:0 0 0 1px #5fe3ff}
.ci-form .wpforms-form .wpforms-field-sublabel{color:#6f7ea3}
.ci-form .wpforms-form button[type=submit]{background:#eef3ff;color:#050914;border:0;border-radius:999px;padding:0 26px;min-height:52px;font-weight:600;font-size:16px;font-family:inherit;transition:box-shadow .2s ease,background-color .2s ease}
.ci-form .wpforms-form button[type=submit]:hover{background:#fff;box-shadow:0 0 32px 0 rgba(95,200,255,.35)}
.ci-form .wpforms-confirmation-container-full{background:rgba(95,227,255,.08);border:1px solid rgba(95,227,255,.4);color:#eef3ff;border-radius:12px}

/* Header and footer (XPRO templates) */
.xpro-theme-builder-header.xtb-header-sticky,.xpro-theme-builder-header{z-index:50}
.ci-header{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ci-foot-mark .xpro-heading-title{white-space:nowrap;background:linear-gradient(90deg,rgba(95,227,255,.5),rgba(79,140,255,.35),rgba(154,123,255,.5));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ci-foot{overflow:hidden}

.ci-hero a:focus-visible,.ci-sec a:focus-visible,.ci-sec button:focus-visible,.ci-header a:focus-visible,.ci-foot a:focus-visible{outline:2px solid var(--ci-cyan);outline-offset:3px}

@media (max-width:767px){
.ci-sticky{position:static}
.ci-stage::before{width:90%}
}
@media (prefers-reduced-motion:reduce){
.ci-status .elementor-heading-title::before{animation:none}
.ci-svc-row,.ci-svc-row::before,.ci-svc-row .elementor-heading-title,.ci-shot,.ci-step>*,.ci-step::before,.ci-btn-primary .elementor-button{transition:none!important}
}

.ci-hero .elementor-widget-text-editor p:last-child,.ci-sec .elementor-widget-text-editor p:last-child{margin-bottom:0}
.ci-hero .elementor-widget-text-editor p,.ci-sec .elementor-widget-text-editor p{margin-top:0}
.ci-foot .xpro-heading-title,.ci-header .xpro-heading-title{margin:0}

/* Astra wrappers: no padding or boxed width around Elementor pages */
.elementor-page.ast-separate-container .ast-article-post,.elementor-page.ast-separate-container .ast-article-single,.elementor-page .ast-article-post,.elementor-page .ast-article-single{padding:0!important;margin:0!important;background:transparent!important}
.elementor-page #primary,.elementor-page #content .ast-container,.elementor-page .site-content>.ast-container{margin:0!important;padding:0!important;max-width:100%!important;width:100%!important}
.elementor-page .site-content .ast-container{display:block}
.elementor-page .entry-content{margin:0}
.elementor-page.ast-separate-container,.elementor-page .site-content{background:#050914}

/* Always-visible header: stays at the top of every page while scrolling */
.xpro-theme-builder-header{position:sticky!important;top:0;z-index:999;min-height:0!important}
.admin-bar .xpro-theme-builder-header{top:32px}
@media (max-width:782px){.admin-bar .xpro-theme-builder-header{top:46px}}
@media (max-width:600px){.admin-bar .xpro-theme-builder-header{top:0}}
.xpro-theme-builder-header .xpro-theme-builder-header-nav,.xtb-header-sticky.xtb-appear .xpro-theme-builder-header-nav{position:relative!important;top:auto!important;animation:none!important;-webkit-animation:none!important;box-shadow:none!important}
html,body{overflow-x:clip}
