
:root{--navy:#0f1b33;--deep:#07111f;--blue:#1e90ff;--blue-mid:#1565c0;--sky:#5ab3ff;--text:#16233f;--muted:#60708a;--slate:#43516a;--surface:#f4f7fb;--white:#fff;--line:rgba(22,35,63,.12);--shadow:0 24px 70px -42px rgba(15,27,51,.5);--ease:cubic-bezier(.2,.75,.25,1)}
*{box-sizing:border-box;margin:0;padding:0}
*{scrollbar-width:thin;scrollbar-color:rgba(30,144,255,.55) #f5f8fc}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:400;color:var(--text);background:#fff;line-height:1.65;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;letter-spacing:-.025em;text-wrap:balance;line-height:1.1}
h1{font-weight:600}h2{font-weight:500}h3{font-weight:500}h4{font-weight:500}
.container{width:min(1180px,calc(100% - 3rem));margin:auto}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;z-index:1000;padding:.7rem 1rem;background:#fff;color:var(--navy);border-radius:8px}
.eyebrow{margin:0 0 .8rem;font-size:.72rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--blue)}
.lead{font-size:1.06rem;font-weight:300;line-height:1.75;color:var(--muted);max-width:720px}
.section{padding:6rem 0}
.section.soft{background:linear-gradient(180deg,var(--surface),#fff)}
.section-head{max-width:780px;margin-bottom:2.7rem}
.section-head p:last-child{color:var(--muted)}
/* custom scrollbar */
html::-webkit-scrollbar{width:13px;height:13px}
html::-webkit-scrollbar-track{background:#f5f8fc;border-left:1px solid rgba(22,35,63,.08)}
html::-webkit-scrollbar-thumb{border:3px solid #f5f8fc;border-radius:999px;background:linear-gradient(180deg,#9fd4ff,#5aa9ec);box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
html::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#62bdff,#178cff);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 8px rgba(30,144,255,.38)}
/* nav */
.nav{position:sticky;top:0;z-index:100;background:rgba(15,27,51,.97);border-bottom:1px solid rgba(255,255,255,.1);transition:.25s var(--ease);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.nav-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:min-height .28s var(--ease)}
.nav.compact .nav-inner{min-height:66px}
.brand{position:relative;display:block;height:52px;min-width:150px}
.brand img{position:absolute;left:0;top:50%;height:52px;width:auto;transform:translateY(-50%);transition:opacity .22s}
.brand .dark{opacity:0}
.nav.compact .brand,.nav.compact .brand img{height:46px}
.nav-links{display:flex;align-items:center;gap:1.7rem}
.nav-link{position:relative;padding:.5rem 0;color:rgba(255,255,255,.66);font-size:.9rem;font-weight:400;text-decoration:none}
.nav-link:hover,.nav-link.active{color:#fff}
.nav-link.active{font-weight:500}
.nav-link.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--sky))}
.language{display:flex;align-items:center;gap:.28rem;margin-left:.25rem;padding-left:1rem;border-left:1px solid rgba(255,255,255,.16)}
.language a{color:rgba(255,255,255,.5);text-decoration:none;font-size:.78rem;font-weight:500}
.language a.active{color:var(--sky)}
.lang-sep{font-size:.72rem;color:rgba(255,255,255,.28)}
.nav-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--sky),transparent);box-shadow:0 0 12px rgba(30,144,255,.5);pointer-events:none}
.menu-toggle{display:none;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.07);color:#fff;cursor:pointer}
.menu-toggle span{display:block;width:21px;height:2px;margin:5px auto;background:currentColor;transition:.25s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(hover:hover) and (min-width:961px){
 .nav:hover{background:#fff;border-bottom-color:var(--line);box-shadow:0 14px 38px -28px rgba(15,27,51,.55)}
 .nav:hover .brand .light{opacity:0}.nav:hover .brand .dark{opacity:1}
 .nav:hover .nav-link{color:#63718a}.nav:hover .nav-link:hover{color:var(--blue)}.nav:hover .nav-link.active{color:var(--navy)}
 .nav:hover .language{border-left-color:var(--line)}.nav:hover .language a{color:#758198}.nav:hover .language a.active{color:var(--blue)}.nav:hover .lang-sep{color:rgba(22,35,63,.2)}
}
/* hero */
.hero{position:relative;overflow:hidden;padding:6.5rem 0 7.2rem;background:radial-gradient(circle at 76% 40%,rgba(30,144,255,.22),transparent 26rem),linear-gradient(135deg,var(--deep),var(--navy) 58%,#12365f);color:#fff}
.hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(90,179,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(90,179,255,.035) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 92%);mask-image:linear-gradient(to bottom,#000,transparent 92%);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.05fr;gap:4rem;align-items:center}
.hero-copy{position:relative;z-index:2}
.pill{display:inline-flex;align-items:center;gap:.6rem;padding:.48rem .9rem;border:1px solid rgba(90,179,255,.34);border-radius:999px;background:rgba(30,144,255,.1);color:var(--sky);font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sky);box-shadow:0 0 12px var(--blue);animation:pulse 1.9s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}
.hero h1{margin:1.3rem 0;font-size:clamp(2.6rem,4.6vw,4.1rem);line-height:1.03;hyphens:none;-webkit-hyphens:none}
.hero h1 em{font-style:normal;background:linear-gradient(135deg,#76d4ff,var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:rgba(255,255,255,.72)}
.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.82rem 1.2rem;border:1px solid transparent;border-radius:12px;background:linear-gradient(135deg,var(--blue),#155dac);color:#fff;text-decoration:none;font-weight:600;white-space:nowrap;box-shadow:0 16px 34px -20px rgba(30,144,255,.9);transition:.22s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn.secondary{background:transparent;border-color:rgba(255,255,255,.28);box-shadow:none}
.btn.light{background:#fff;color:var(--navy);box-shadow:none;min-width:max-content}
.hero-media{position:relative;width:100%;aspect-ratio:16/9.6;border-radius:20px;overflow:hidden;border:1px solid rgba(112,207,255,.28);box-shadow:0 0 0 1px rgba(61,167,255,.18),0 24px 70px -28px rgba(23,140,255,.42);transform:rotate(1.2deg);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.hero-media:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(140deg,rgba(255,255,255,.12),transparent 25% 75%,rgba(23,140,255,.12));pointer-events:none}
.hero-media:after{content:"";position:absolute;inset:10px;z-index:3;border:1px solid rgba(255,255,255,.13);border-radius:13px;pointer-events:none}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center center;transition:transform 1s var(--ease)}
.hero-media:hover{transform:rotate(0) translateY(-7px)}
.hero-media:hover img{transform:scale(1.045)}
/* tech strip */
.tech-strip{border-bottom:1px solid var(--line);background:#fff}
.tech-list{display:flex;justify-content:center;gap:2.5rem;flex-wrap:wrap;padding:1.1rem 0;color:#53617a;font-size:.84rem;font-weight:500}
/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{position:relative;padding:1.8rem;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);transition:.25s var(--ease)}
.card:hover{transform:translateY(-5px);border-color:rgba(30,144,255,.3)}
.card .num{display:inline-grid;place-items:center;width:38px;height:38px;margin-bottom:1.2rem;border-radius:11px;background:rgba(30,144,255,.1);color:var(--blue);font-family:'Space Grotesk',sans-serif;font-weight:600}
.card h3{margin-bottom:.6rem}
.card p{margin:0;font-weight:300;color:var(--muted)}
.method{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.method .card{box-shadow:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.media-card{border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.media-card img{width:100%;height:auto;display:block}
.clean-list{list-style:none;margin-top:1.6rem;border-top:1px solid var(--line)}
.clean-list li{position:relative;padding:1rem 0 1rem 1.35rem;border-bottom:1px solid var(--line);font-weight:300;color:var(--slate)}
.clean-list li:before{content:"";position:absolute;left:.05rem;top:1.45rem;width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--sky))}
.cta-band{padding:4.5rem 0;background:linear-gradient(135deg,var(--deep),var(--navy));color:#fff}
.cta-band .content{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.cta-band h2{font-weight:500}
.cta-band p{color:rgba(255,255,255,.68);font-weight:300;max-width:650px}
/* page hero (inner pages) */
.page-hero{position:relative;overflow:hidden;padding:5rem 0 4rem;background:radial-gradient(circle at 80% 20%,rgba(30,144,255,.16),transparent 25rem),linear-gradient(135deg,var(--deep),var(--navy));color:#fff}
.page-hero h1{max-width:900px;font-size:clamp(2.6rem,4.6vw,4rem)}
.page-hero .lead{color:rgba(255,255,255,.72)}
.code-row{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.8rem}
.code-row span{padding:.45rem .8rem;border:1px solid rgba(102,216,255,.28);border-radius:999px;background:rgba(23,140,255,.09);color:#92d6ff;font-size:.75rem;font-weight:600;letter-spacing:.1em}
/* service blocks (expertise) */
.service-block{display:grid;grid-template-columns:.6fr 1.4fr;gap:3.5rem;padding:2.4rem 0;border-bottom:1px solid var(--line)}
.service-block:last-child{border-bottom:0}
.service-block h2{font-size:1.55rem}
.service-block .intro{margin:0 0 1rem;font-weight:300;color:var(--muted);line-height:1.7}
.service-block ul{list-style:none;border-top:1px solid rgba(22,35,63,.09)}
.service-block li{position:relative;padding:.68rem 0 .68rem 1.25rem;border-bottom:1px solid rgba(22,35,63,.08);font-weight:300;color:var(--slate)}
.service-block li:before{content:"";position:absolute;left:0;top:1.02rem;width:5px;height:5px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--sky))}
/* certifications */
.cert-intro{padding:5rem 0}
.cert-intro-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:5rem;align-items:center}
.cert-principles{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--line);gap:1px}
.cert-principles div{display:flex;align-items:center;gap:.85rem;padding:1.2rem;background:#fff}
.cert-principles strong{font-family:'Space Grotesk',sans-serif;font-size:.8rem;font-weight:500;color:var(--blue)}
.cert-principles span{font-size:.88rem;font-weight:300;color:var(--slate)}
.cert-paths{padding:5.5rem 0;background:linear-gradient(180deg,var(--surface),#fff)}
.cert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.cert-card{position:relative;display:flex;flex-direction:column;padding:1.8rem;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);transition:.3s}
.cert-card:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--sky),transparent);transform:scaleX(.28);transform-origin:left;transition:.35s}
.cert-card:hover{transform:translateY(-6px);border-color:rgba(23,140,255,.25)}
.cert-card:hover:before{transform:scaleX(1)}
.cert-card-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:1.2rem}
.cert-code{font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:600;color:var(--blue)}
.cert-level{font-size:.67rem;font-weight:500;color:var(--muted);text-align:right}
.cert-card h2{font-size:1.4rem;margin-bottom:1.3rem}
.cert-detail{padding:.82rem 0;border-top:1px solid rgba(22,35,63,.08)}
.cert-detail small{display:block;margin-bottom:.3rem;font-size:.62rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.cert-detail p{font-weight:300;font-size:.86rem;color:var(--slate);line-height:1.58}
.cert-link{display:inline-flex;gap:.45rem;margin-top:auto;padding-top:1.1rem;color:var(--blue-mid);text-decoration:none;font-size:.84rem;font-weight:500}
.cert-link:hover{color:var(--blue)}
.cert-note{max-width:920px;margin:1.5rem 0 0;padding-left:1rem;border-left:2px solid rgba(23,140,255,.35);font-weight:300;font-size:.78rem;color:#6a768c}
.certification-promo{margin-top:2rem;padding:1.4rem 1.5rem;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,rgba(30,144,255,.055),rgba(255,255,255,.96));box-shadow:0 20px 55px -44px rgba(15,27,51,.42)}
.certification-promo .codes{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:.85rem}
.certification-promo .codes span{padding:.26rem .58rem;border:1px solid rgba(30,144,255,.16);border-radius:999px;background:rgba(30,144,255,.075);color:var(--blue-mid);font-size:.68rem;font-weight:600;letter-spacing:.06em}
.certification-promo h3{margin:0 0 .45rem;font-size:1.18rem}
.certification-promo p{margin:0 0 .9rem;font-weight:300;font-size:.88rem;color:var(--muted);line-height:1.65}
.certification-promo a{display:inline-flex;align-items:center;gap:.45rem;color:var(--blue-mid);text-decoration:none;font-size:.84rem;font-weight:500}
.certification-promo a:hover{color:var(--blue)}
/* about */
.about-values{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
.value{padding:1.3rem;border-top:3px solid var(--blue);background:var(--surface);font-weight:500}
/* contact */
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:start}
.contact-details{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--line);gap:1px;border-radius:14px;overflow:hidden}
.detail{padding:1.4rem 1.45rem;background:#fff}
.detail.full{grid-column:1/-1}
.detail small{display:block;margin-bottom:.35rem;font-size:.62rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.detail a{color:var(--blue-mid);text-decoration:none;font-weight:500}
.note{padding:1.55rem 1.65rem;border-left:3px solid var(--blue);border-radius:0 14px 14px 0;background:linear-gradient(135deg,rgba(30,144,255,.055),rgba(244,247,251,.9))}
.note h3{font-size:1.08rem;margin-bottom:.8rem}
.note ul{list-style:none}
.note li{position:relative;padding:.66rem 0 .66rem 1.2rem;border-bottom:1px solid rgba(22,35,63,.08);font-weight:300;font-size:.88rem;color:var(--slate)}
.note li:last-child{border-bottom:0}
.note li:before{content:"";position:absolute;left:0;top:1.05rem;width:5px;height:5px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--sky))}
.contact-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.1rem}
.contact-actions .btn.secondary{background:#fff;color:var(--blue-mid);border-color:rgba(30,144,255,.3);box-shadow:none}
/* form */
.form-card{padding:2rem;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-grid label{display:flex;flex-direction:column;gap:.45rem;font-size:.82rem;font-weight:500}
.form-grid .full{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:.82rem .95rem;border:1px solid rgba(22,35,63,.18);border-radius:11px;background:#fbfdff;color:var(--text);font:inherit}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,144,255,.1)}
.form-grid textarea{min-height:150px;resize:vertical}
.check{flex-direction:row!important;align-items:flex-start;gap:.6rem}
.check input{width:18px;height:18px}
.honeypot{position:absolute;left:-9999px}
.form-status{font-weight:300;font-size:.86rem;color:var(--muted)}
.form-status.ok{color:#147142}.form-status.err{color:#b42318}
/* footer */
.footer{padding:5rem 0 2rem;position:relative;overflow:hidden;background:linear-gradient(145deg,#07111f,#0d1d37 58%,#102d50);color:#fff}
.footer:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--blue),var(--sky),transparent)}
.footer:after{content:"";position:absolute;width:520px;height:520px;right:-220px;top:-250px;border:1px solid rgba(90,179,255,.12);border-radius:50%;box-shadow:0 0 0 70px rgba(90,179,255,.025),0 0 0 140px rgba(90,179,255,.018);pointer-events:none}
.footer-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:3rem}
.footer-logo{height:62px;width:auto;margin-bottom:1rem}
.footer h4{color:var(--sky);font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem}
.footer p,.footer a{color:rgba(255,255,255,.62);text-decoration:none;font-weight:300;font-size:.9rem;line-height:1.55}
.footer a:hover{color:#fff}
.footer-bottom{position:relative;z-index:1;margin-top:3rem;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;font-weight:300;color:rgba(255,255,255,.45)}
/* elevator */
button#sapila-elevator{position:fixed;right:clamp(1rem,2.2vw,2rem);bottom:clamp(1rem,2.2vw,2rem);z-index:120;width:56px;height:56px;display:grid;place-items:center;padding:0;border:1px solid rgba(102,216,255,.5);border-radius:50%;color:#fff;background:linear-gradient(145deg,#299dff,#0e4fa8);box-shadow:0 22px 50px -15px rgba(23,140,255,.95),inset 0 1px 0 rgba(255,255,255,.4);cursor:pointer;appearance:none;-webkit-appearance:none;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(14px) scale(.9);transition:opacity .25s var(--ease),visibility .25s,transform .28s var(--ease),box-shadow .28s var(--ease)}
button#sapila-elevator.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}
button#sapila-elevator:hover{transform:translateY(-5px) scale(1.05)}
button#sapila-elevator svg{width:22px;height:22px;transition:transform .35s var(--ease)}
button#sapila-elevator.up svg{transform:rotate(180deg)}
/* reveal */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-reveal].visible{opacity:1;transform:none}
/* responsive */
@media(max-width:960px){
 .menu-toggle{display:block}
 .nav-links{position:fixed;top:82px;left:1rem;right:1rem;flex-direction:column;align-items:stretch;gap:.2rem;padding:.85rem;border:1px solid rgba(90,179,255,.2);border-radius:18px;background:var(--navy);box-shadow:0 30px 80px -28px #000;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.22s}
 .nav-links.open{opacity:1;visibility:visible;transform:none}
 .nav-link{padding:.85rem 1rem;border-radius:10px}
 .nav-link.active,.nav-link:hover{background:rgba(30,144,255,.12)}
 .nav-link.active:after{display:none}
 .language{margin:0;padding:1rem;border-left:0;border-top:1px solid rgba(255,255,255,.1)}
 .hero-grid,.split,.contact-grid,.service-block,.cert-intro-grid,.cert-grid{grid-template-columns:1fr;gap:3rem}
 .hero-media{transform:none}
 .cards,.method,.about-values,.cert-grid,.contact-details,.form-grid{grid-template-columns:repeat(2,1fr)}
 .method,.about-values{grid-template-columns:repeat(2,1fr)}
 .footer-grid{grid-template-columns:1fr 1fr}
 .cta-band .content{flex-direction:column;align-items:flex-start}
}
@media(max-width:620px){
 .container{width:min(100% - 2rem,1180px)}
 .section{padding:4rem 0}.hero{padding:4.5rem 0}
 .cards,.method,.about-values,.cert-grid,.contact-details,.form-grid,.footer-grid,.cert-principles{grid-template-columns:1fr}
 .detail.full,.form-grid .full{grid-column:auto}
 .actions,.contact-actions{flex-direction:column}
 .btn{width:100%}
 button#sapila-elevator{width:50px;height:50px;right:1rem;bottom:1rem}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-reveal]{opacity:1;transform:none}}
