:root{--sp-blue:#0066FF;--sp-navy:#003366;--sp-grey:#666;--sp-light:#F4F7FB}

/* Loader */
.sp-loader{position:fixed;inset:0;z-index:99999;background:#fff;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease,visibility .5s ease}
.sp-loader-hide{opacity:0;visibility:hidden}
.sp-loader-inner{text-align:center;width:min(280px,70vw)}
.sp-loader-logo{width:100%;animation:spPulse 1.4s ease-in-out infinite}
.sp-loader-bar{height:4px;background:#E3ECF8;border-radius:4px;margin-top:1.5rem;overflow:hidden}
.sp-loader-bar span{display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--sp-blue),var(--sp-navy));border-radius:4px;animation:spBar 1.1s ease-in-out infinite}
@keyframes spPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.04);opacity:.8}}
@keyframes spBar{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}

/* Animations */
.sp-anim{opacity:0;transform:translateY(24px);animation:spUp .8s ease forwards;animation-delay:calc(var(--d,0s) + .5s)}
@keyframes spUp{to{opacity:1;transform:none}}
.sp-reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--d,0s)}
.sp-reveal.sp-in{opacity:1;transform:none}

/* Shared */
.sp-eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:600;color:var(--sp-blue);margin-bottom:.75rem}
.sp-btn{border-radius:50px;padding:.7rem 1.8rem;margin:0 .5rem .5rem 0;transition:transform .2s,box-shadow .2s}
.sp-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,51,102,.25)}
.sp-section-head{text-align:center;margin:4rem 0 1.5rem}
.sp-section-head h2,.sp-about h2,.sp-ai h2{font-size:2.2rem;font-weight:700;color:var(--sp-navy)}

/* Hero */
.sp-hero{position:relative;background-size:cover;background-position:center top;min-height:620px;display:flex;align-items:center;color:#fff}
.sp-hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,35,80,.92) 0%,rgba(0,51,102,.75) 50%,rgba(0,102,255,.25) 100%)}
.sp-hero-content{padding:5rem 0}
.sp-hero .sp-eyebrow{color:#9CC4FF}
.sp-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:700;color:#fff;line-height:1.15}
.sp-hero h1 span{color:#6FA8FF}
.sp-lead{font-size:1.25rem;margin:1.2rem 0 2rem;color:#E3ECF8;max-width:36rem}
.sp-hero-stats{list-style:none;display:flex;flex-wrap:wrap;gap:2.5rem;padding:0;margin:2.5rem 0 0}
.sp-hero-stats strong{display:block;font-size:2rem;color:#fff}
.sp-hero-stats span{font-size:.9rem;color:#BFD6F5}

/* Features */
.sp-features{margin-top:-3.5rem;position:relative;z-index:2}
.sp-feature{background:#fff;border-radius:14px;padding:2rem 1.5rem;height:100%;box-shadow:0 10px 30px rgba(0,51,102,.12);transition:transform .3s,box-shadow .3s;border-top:4px solid var(--sp-blue)}
.sp-feature:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,51,102,.2)}
.sp-feature i{font-size:1.8rem;color:var(--sp-blue);margin-bottom:1rem}
.sp-feature h3{font-weight:600;margin-bottom:.5rem}
.sp-feature p{color:var(--sp-grey);margin:0}

/* AI */
.sp-ai{padding:4rem 0 1rem}
.sp-ai-card{border-radius:20px;overflow:hidden;background-size:cover;background-position:center right;position:relative;min-height:320px;display:flex;align-items:center;background-color:var(--sp-navy)}
.sp-ai-card::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,35,80,.95) 0%,rgba(0,51,102,.7) 55%,rgba(0,51,102,0) 100%)}
.sp-ai-text{position:relative;padding:3rem;max-width:560px;color:#E3ECF8}
.sp-ai-text h2{color:#fff}
.sp-ai .sp-eyebrow{color:#9CC4FF}

/* Products (CMS-generated blocks) */
.sp-products .product-block{border:0;border-radius:14px;box-shadow:0 6px 20px rgba(0,51,102,.1);transition:transform .3s,box-shadow .3s;margin-bottom:2rem}
.sp-products .product-block:hover{transform:translateY(-6px);box-shadow:0 14px 32px rgba(0,51,102,.2)}
.sp-products .product-block img{transition:transform .4s}
.sp-products .product-block:hover img{transform:scale(1.05)}

/* About */
.sp-about{background-size:cover;background-position:center;margin:3rem 0 0;position:relative}
.sp-about p{color:var(--sp-grey);font-size:1.1rem}

/* CTA */
.sp-cta{background:linear-gradient(120deg,var(--sp-navy),var(--sp-blue));color:#fff;padding:4.5rem 0}
.sp-cta h2{color:#fff;font-weight:700}
.sp-cta p{color:#DCE9FF;font-size:1.15rem;margin-bottom:2rem}

@media(max-width:767px){.sp-hero{min-height:520px}.sp-ai-text{padding:2rem}.sp-hero-stats{gap:1.5rem}}
@media(prefers-reduced-motion:reduce){.sp-anim,.sp-reveal{animation:none;transition:none;opacity:1;transform:none}.sp-loader-logo,.sp-loader-bar span{animation:none}}

.sp-about::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.92) 45%,rgba(255,255,255,.35) 100%)}
.sp-about .container{position:relative;z-index:1}
.sp-about p{color:#33414f}

