@charset "UTF-8";
:root{--ink:#201c27;--dark:#15111d;--purple:#783bca;--purple-light:#b98bec;--muted:#77727d;--line:#e4e0e8;--paper:#fff;--soft:#f6f5f8;--max:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 "Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.09;letter-spacing:-.045em}h2{font-size:clamp(34px,4.3vw,58px);font-weight:650;margin-bottom:24px}h3{font-size:23px;font-weight:650;letter-spacing:-.025em}p{margin-bottom:22px}::selection{background:#dec8f8;color:#21152f}:focus-visible{outline:3px solid #a66de9;outline-offset:5px}.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.section{padding-block:110px}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:700;line-height:1.5;margin-bottom:24px;color:var(--purple)}.eyebrow.light{color:#d2bedf}.muted{color:var(--muted)}.purple{color:var(--purple-light)}.purple-light{color:var(--purple-light)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:17px 24px;min-height:54px;background:var(--purple);color:white;font-size:14px;font-weight:600;border:1px solid transparent;border-radius:3px;transition:background .2s,transform .2s}.button:hover{background:#6530ac;transform:translateY(-2px)}.button span{font-size:21px;line-height:1}.button-small{padding:12px 18px;min-height:46px}.button-outline{background:transparent;border-color:#776683}.button-outline:hover{background:#382843}.text-link{display:inline-flex;align-items:center;gap:24px;font-size:14px;font-weight:650;min-height:44px}.text-link span{color:var(--purple);font-size:20px}.text-link:hover{color:var(--purple)}.light-link{color:white}.light-link span{color:var(--purple-light)}.skip-link{position:fixed;top:-100px;left:16px;background:white;color:black;padding:12px;z-index:100}.skip-link:focus{top:10px}.status-dot{display:inline-block;width:6px;height:6px;background:#a975e5;border-radius:50%;box-shadow:0 0 0 4px #ad75e51c;flex-shrink:0}.topline{height:34px;background:#211829;color:#c9c0d2;display:flex;align-items:center;justify-content:space-between;padding:0 48px;font-size:11px;letter-spacing:.03em}.topline>span{display:flex;align-items:center;gap:10px}.topline a{display:flex;align-items:center;gap:18px}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:var(--dark);color:#f6f4f8;position:relative;z-index:20;border-bottom:1px solid #ffffff12}.brand{display:inline-flex;align-items:center}.brand img{width:151px;height:74px;object-fit:contain}.site-header nav{display:flex;gap:30px;align-items:center}.site-header nav>a{font-size:13px}.site-header nav>a:not(.button){padding-block:14px;color:#ddd6e4}.site-header nav>a:not(.button):hover{color:var(--purple-light)}.menu-toggle{display:none}.hero{position:relative;isolation:isolate;color:white;min-height:690px;height:calc(100svh - 122px);max-height:850px;display:flex;align-items:center;background:#15151a;overflow:hidden}.hero-picture,.hero-picture img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero-picture img{object-position:center}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(13,12,17,.76),rgba(13,12,17,.21) 59%,rgba(13,12,17,.08)),linear-gradient(0deg,rgba(13,12,17,.72),transparent 27%)}.hero-content{padding-bottom:60px;animation:rise .85s ease both}.hero .eyebrow{display:flex;gap:12px;align-items:center;font-size:10px}.hero .eyebrow>span{width:22px;height:2px;background:var(--purple-light)}h1{font-size:clamp(62px,6.8vw,96px);font-weight:650;line-height:1.01;margin:0 0 25px;letter-spacing:-.055em}.hero-description{font-size:16px;color:#d2cfd5;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}.hero-bottom{position:absolute;inset:auto 0 25px;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.12em;line-height:1.9;color:#bcb6c2}.hero-bottom strong{color:#e1dbe6;font-weight:500}.scroll-cue{display:flex;align-items:center;gap:15px}.scroll-cue b{font-size:22px;color:white;animation:nudge 2.5s ease-in-out infinite}.clients{border-bottom:1px solid var(--line)}.clients-inner{min-height:145px;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;align-items:center;gap:40px}.clients p{font-size:12px;line-height:1.6;margin:0;color:var(--muted)}.clients strong{font-weight:500;color:var(--ink)}.client-wordmark{font-size:24px;letter-spacing:.06em;font-weight:750;line-height:1.2;color:#66616c}.client-wordmark small{display:block;font-size:9px;font-weight:500;letter-spacing:.22em;margin-top:10px}.bleu{font-size:32px;letter-spacing:-.06em;font-weight:700}.mota{font-size:23px;letter-spacing:-.06em}.about{display:grid;grid-template-columns:1.1fr 1fr;gap:100px}.about h2{font-size:clamp(34px,3.7vw,49px)}.about-copy{padding-top:38px;color:#6e6875}.about-copy .lead{font-size:20px;line-height:1.55;color:#332d3b}.values-line{display:flex;flex-wrap:wrap;gap:18px;margin:30px 0 20px;color:#3b3245;font-size:12px;font-weight:600}.values-line span:before{content:"+";color:var(--purple);margin-right:8px}.services{background:var(--soft)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:80px;margin-bottom:35px}.section-heading>p{max-width:350px;color:var(--muted);font-size:15px;margin-bottom:29px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}.service-card{background:white;border:1px solid #e9e5ee;padding:29px 28px 0;border-radius:5px;transition:border-color .2s,box-shadow .2s}.service-card:hover{border-color:#cbb4e5;box-shadow:0 10px 28px #33204b08}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.service-icon{width:44px;height:44px;background:#f1e9fb;color:var(--purple);display:grid;place-items:center;font-size:33px;border-radius:5px;line-height:1}.card-number{font-size:11px;letter-spacing:.1em;color:#b3a9be}.service-card h3{max-width:240px;margin-bottom:15px;min-height:51px}.service-card>p{font-size:14px;color:var(--muted);min-height:70px;line-height:1.65}.service-card details{border-top:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;min-height:65px;font-size:13px;font-weight:600}summary::-webkit-details-marker{display:none}summary>span{font-size:23px;font-weight:400;color:var(--purple);transition:transform .2s}details[open]>summary>span{transform:rotate(45deg)}.service-card ul{padding:0 0 12px 17px;color:#716979;font-size:13px;line-height:1.65}.service-card li{margin-bottom:13px}.service-card li::marker{color:var(--purple)}.service-card strong{font-weight:600;color:#3f3449}.services-bottom{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:25px 0 15px;gap:20px}.services-bottom p{font-size:14px;color:var(--muted);margin:0}.coverage{color:#ede8f3;background:radial-gradient(ellipse at 70% 50%,#312240 0%,#19131f 60%);overflow:hidden}.coverage-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.coverage-copy>p:not(.eyebrow){color:#cdc2d6;max-width:420px}.coverage-note{font-size:14px;color:#998ca5!important}.coverage-copy .button{margin-top:8px}.coverage-key{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:36px;font-size:11px;color:#b7a9c2}.coverage-key span{width:100%;padding-left:18px;font-size:10px;color:#998ca5}.map-panel{border:1px solid #ffffff16;border-radius:5px;background:radial-gradient(#a27bc023 1px,transparent 1px);background-size:15px 15px;padding:22px 24px}.map-topline{display:flex;justify-content:space-between;gap:15px;font-size:8px;letter-spacing:.13em;color:#b5a3c2}.drc-map img{width:100%;height:auto}.map-caption{text-align:center;margin:0;color:#a594b2;font-size:11px;letter-spacing:.04em}.approach{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.approach-photo{position:relative;height:600px;border-radius:5px;overflow:hidden}.approach-photo img{width:100%;height:100%;object-fit:cover;object-position:32% center}.image-tag{position:absolute;bottom:24px;left:24px;background:#19131ee8;color:#ece5f3;padding:13px 18px;font-size:9px;letter-spacing:.12em;border:1px solid #ffffff24;display:flex;align-items:center;gap:12px;border-radius:3px}.approach-copy h2{font-size:clamp(33px,3.5vw,47px)}.approach-copy>p:not(.eyebrow){font-size:15px;color:var(--muted)}.approach-steps>div{display:flex;gap:22px;border-top:1px solid var(--line);padding-top:23px;margin-top:20px}.approach-steps>div>span{font-size:11px;color:var(--purple);padding-top:4px}.approach-steps h3{font-size:17px;letter-spacing:-.015em;margin-bottom:10px}.approach-steps p{font-size:13px;line-height:1.7;color:var(--muted);margin-bottom:0}.response-banner{position:relative;height:455px;overflow:hidden;border-radius:5px;isolation:isolate;display:flex;align-items:flex-end;padding:50px;color:white}.response-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.response-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#100c17e6,#100c1740 80%),linear-gradient(0deg,#100c17bb,transparent 70%);z-index:-1}.response-copy h2{font-size:37px;max-width:650px}.response-copy .eyebrow{font-size:9px}.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.faq h2{font-size:clamp(32px,3.5vw,47px)}.faq>div>p:last-child{font-size:14px;color:var(--muted)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{font-size:15px;min-height:75px;font-weight:550;line-height:1.5;padding:16px 0}.faq-list p{font-size:14px;color:var(--muted);padding-right:28px}.contact{background:#20172a;color:#fff}.contact-heading h2{font-size:clamp(40px,5.7vw,76px)}.contact-heading>p:last-child{color:#b8abca;font-size:16px}.contact-options{display:grid;grid-template-columns:.95fr 1.2fr 1fr;border-top:1px solid #ffffff22;margin-top:50px}.contact-options>a,.contact-options>div{position:relative;display:flex;flex-direction:column;padding:30px 24px 0 0;gap:12px}.contact-options>a:hover strong{color:var(--purple-light)}.contact-label{font-size:9px;letter-spacing:.13em;color:#b4a5c3}.contact-options strong{font-size:17px;font-weight:500;transition:color .2s}.contact-options p{font-size:12px;color:#aa9cb8;line-height:1.6}.contact-arrow{position:absolute;right:25px;top:26px;font-size:20px;color:var(--purple-light)}footer{background:#15111b;color:#afa3bc}.footer-main{display:flex;align-items:center;justify-content:space-between;padding-block:30px;gap:25px}.footer-main .brand img{width:130px;height:66px}.footer-main p{font-size:12px;margin:0}.footer-main>a:last-child{font-size:12px}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff14;padding-block:22px;font-size:9px;letter-spacing:.04em}.mobile-contact{display:none}.reveal{opacity:1}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.js-motion .reveal.is-visible{opacity:1;transform:none}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(min-width:1500px){.hero-picture img{object-position:center 40%}}
@media(max-width:1050px){.container{width:calc(100% - 56px)}.topline,.site-header{padding-inline:28px}.site-header nav{gap:20px}.site-header nav>a{font-size:12px}.site-header .brand img{width:125px}.section{padding-block:80px}.about,.approach,.coverage-grid,.faq{gap:45px}.service-card{padding:24px 20px 0}.service-card h3{font-size:21px}.clients-inner{gap:20px}.contact-options{grid-template-columns:1fr 1.2fr}.contact-options>div{grid-column:1/-1}.contact-options strong{font-size:17px}}
@media(max-width:760px){html{scroll-padding-top:20px}.container{width:calc(100% - 40px)}.section{padding-block:64px}.topline{padding-inline:20px;height:31px;font-size:9px}.topline a{gap:8px}.site-header{height:75px;padding-inline:20px}.site-header .brand img{width:124px;height:66px}.menu-toggle{display:flex;align-items:center;gap:13px;color:white;background:none;border:1px solid #ffffff25;border-radius:3px;padding:10px 12px;min-height:44px;cursor:pointer}.menu-label{font-size:12px}.menu-bars{width:17px;height:10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] .menu-bars{transform:rotate(45deg)}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#21172b;padding:14px 20px 24px;border-bottom:1px solid #ffffff24;box-shadow:0 16px 25px #0004}.site-header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-header nav>a:not(.button){font-size:16px;border-bottom:1px solid #ffffff14;min-height:52px;padding:13px 3px}.site-header nav .button{margin-top:15px;font-size:14px}.hero{height:770px;min-height:0;max-height:none;align-items:flex-start}.hero-content{padding-top:42px;padding-bottom:0}.hero-picture img{object-position:center center}.hero-shade{background:linear-gradient(180deg,#111018d9 0%,#111018a6 25%,#11101822 60%,#111018aa 100%)}.hero .eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:19px;gap:8px}h1{font-size:61px;line-height:.99;letter-spacing:-.052em;margin-bottom:21px}.hero-description{font-size:14px;line-height:1.65;max-width:285px}.hero-actions{margin-top:22px;gap:13px;flex-wrap:wrap;max-width:280px}.hero-actions .button{font-size:13px;gap:25px;padding:14px 18px;min-height:49px}.hero-actions .text-link{font-size:12px;gap:16px}.hero-bottom{bottom:22px;font-size:8px}.scroll-cue span{display:none}.hero-bottom strong{font-size:8px}.clients-inner{min-height:0;padding-block:26px;grid-template-columns:repeat(3,1fr);gap:20px 12px}.clients-inner>p{grid-column:1/-1;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.clients-inner>p br{display:none}.clients-inner>p strong{margin-left:5px}.client-wordmark{font-size:17px;letter-spacing:.01em}.client-wordmark small{font-size:7px;letter-spacing:.1em;margin-top:8px}.bleu{font-size:25px;letter-spacing:-.05em}.mota{font-size:17px;letter-spacing:-.06em}.about{grid-template-columns:1fr;gap:4px}.eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:20px}.about h2{font-size:36px}.about-copy{padding-top:10px}.about-copy .lead{font-size:18px}.about-copy>p{font-size:15px}.values-line{font-size:11px;gap:14px;margin-block:23px 12px}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:37px}.section-heading>p{font-size:14px;margin:0;max-width:100%}.service-grid{grid-template-columns:1fr;gap:12px}.service-card{padding:23px 23px 0}.card-top{margin-bottom:23px}.service-icon{width:40px;height:40px;font-size:30px}.service-card h3{font-size:23px;min-height:0;max-width:none}.service-card>p{font-size:14px;min-height:0;margin-bottom:19px}.service-card summary{min-height:57px}.service-card ul{font-size:14px}.services-bottom{align-items:flex-start;flex-direction:column;gap:7px;padding-top:22px}.services-bottom p{font-size:13px}.coverage-grid{grid-template-columns:1fr;gap:35px}.coverage h2{font-size:45px}.coverage-copy>p:not(.eyebrow){font-size:15px}.coverage-key{margin-top:27px}.map-panel{padding:18px 14px}.map-topline{font-size:7px}.map-caption{font-size:10px}.approach{grid-template-columns:1fr;gap:35px}.approach-photo{height:350px}.approach-photo img{object-position:28% center}.image-tag{bottom:18px;left:18px;font-size:8px;padding:11px 13px}.approach-copy h2{font-size:36px}.approach-steps p{font-size:14px}.response-banner{height:450px;padding:26px;align-items:flex-end}.response-banner>img{object-position:55% center}.response-banner:after{background:linear-gradient(0deg,#15101ff5,#15101f44 80%)}.response-copy h2{font-size:30px;line-height:1.15}.response-copy .eyebrow{font-size:8px}.response-copy .button{padding:13px 18px;font-size:13px}.faq{grid-template-columns:1fr;gap:18px}.faq h2{font-size:36px}.faq-list summary{font-size:15px;min-height:74px}.faq-list p{padding-right:8px}.contact-heading h2{font-size:43px}.contact-heading>p:last-child{font-size:15px}.contact-heading>p:last-child br{display:none}.contact-options{grid-template-columns:1fr;margin-top:32px}.contact-options>a,.contact-options>div{padding:24px 0;border-bottom:1px solid #ffffff1a;gap:10px}.contact-options strong{font-size:19px}.contact-options p{font-size:13px;margin:0}.contact-arrow{right:3px;top:24px}.footer-main{align-items:flex-start;flex-wrap:wrap;gap:10px 25px;padding-block:26px}.footer-main .brand{width:100%}.footer-main p{font-size:11px}.footer-main>a:last-child{font-size:11px;min-height:44px;display:flex;align-items:center}.footer-bottom{flex-wrap:wrap;gap:12px;padding-block:20px 92px;font-size:8px}.footer-bottom>a{margin-left:auto}.mobile-contact{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:.85fr 1.15fr;background:#20172a;box-shadow:0 -3px 25px #0002;border-top:1px solid #ffffff17;padding-bottom:env(safe-area-inset-bottom)}.mobile-contact a{display:flex;align-items:center;justify-content:center;gap:11px;padding:16px 8px;font-size:12px;font-weight:600;color:white;min-height:58px}.mobile-contact a:last-child{background:var(--purple)}.mobile-contact svg{width:17px;height:17px}.mobile-contact a>span{font-size:18px}}
@media(min-width:641px) and (max-width:760px){.hero-picture img{object-position:65% center}.hero-shade{background:linear-gradient(90deg,#111018e0,#11101820)}.hero{height:700px}}
@media(max-width:380px){h1{font-size:54px}.hero{height:740px}.hero-content{padding-top:33px}.contact-options strong{font-size:17px}.client-wordmark{font-size:15px}.bleu{font-size:22px}.mota{font-size:15px}.container{width:calc(100% - 36px)}}
/* Services: touch-first, perspective card slider */
.service-slider{--card-width:390px;position:relative;margin-inline:-24px}
.slider-hint{display:flex;justify-content:flex-end;align-items:center;gap:14px;padding-inline:24px;margin:0 0 12px;font-size:10px;letter-spacing:.14em;color:var(--muted)}
.slider-hint span{font-size:22px;color:var(--purple)}
.service-grid{display:flex;position:relative;gap:24px;align-items:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:24px max(24px,calc((100% - var(--card-width))/2)) 45px;perspective:1200px;-webkit-overflow-scrolling:touch}
.service-grid::-webkit-scrollbar{display:none}
.service-card{flex:0 0 var(--card-width);width:var(--card-width);padding:0 26px;scroll-snap-align:center;border-radius:14px;overflow:hidden;transform-origin:center center;transition:transform .45s ease,box-shadow .45s ease,border-color .3s;box-shadow:0 10px 25px #2414320a;will-change:transform}
.service-card.is-current{transform:translateZ(0) rotateY(0);border-color:#c9a9ea;box-shadow:0 20px 35px -15px #5329804d}
.service-card.is-before{transform:scale(.94) rotateY(7deg)}
.service-card.is-after{transform:scale(.94) rotateY(-7deg)}
.service-photo{width:calc(100% + 52px);max-width:none;height:215px;margin:0 -26px;object-fit:cover;object-position:65% center}
.service-photo-1,.service-photo-2,.service-photo-3,.service-photo-4,.service-photo-5,.service-photo-6{object-position:center center}
.service-card .card-top{margin:22px 0 20px}.service-card .service-icon{width:36px;height:36px;font-size:27px}.service-card h3{min-height:51px;font-size:24px}.service-card>p{min-height:70px}.service-card summary{min-height:62px}.service-card:hover{box-shadow:0 20px 35px -15px #5329804d}
.slider-controls{display:flex;align-items:center;justify-content:center;gap:21px;padding:0 24px 10px}.slider-controls[hidden]{display:none}.slider-arrow{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid #d8cce4;background:white;color:var(--purple);font-size:23px;cursor:pointer;transition:background .2s,color .2s}.slider-arrow:hover:not(:disabled){background:var(--purple);color:white}.slider-arrow:disabled{opacity:.35;cursor:default}.slider-dots{display:flex;align-items:center;gap:0}.slider-dot{width:25px;height:44px;padding:0;border:0;background:none;cursor:pointer;position:relative}.slider-dot:after{content:"";display:block;width:6px;height:6px;margin:auto;border-radius:50%;background:#cdc1d9;transition:background .2s,transform .2s}.slider-dot[aria-current=true]:after{background:var(--purple);transform:scale(1.5)}.slider-count{font-size:11px;letter-spacing:.08em;color:#9c8caa;margin:0}.slider-count span{color:var(--purple);font-weight:700}
@media(max-width:760px){.service-slider{--card-width:min(82vw,390px);margin-inline:-20px}.service-grid{gap:14px;padding-top:16px;padding-bottom:30px;perspective:900px}.slider-hint{padding-inline:20px;font-size:9px;margin-bottom:2px}.service-card{padding-inline:21px;border-radius:12px}.service-photo{width:calc(100% + 42px);margin-inline:-21px;height:190px}.service-card h3{font-size:23px;min-height:51px}.service-card>p{min-height:92px}.service-card.is-before{transform:scale(.96) rotateY(5deg)}.service-card.is-after{transform:scale(.96) rotateY(-5deg)}.slider-controls{gap:12px;padding-inline:15px}.slider-dot{width:22px}.slider-count{font-size:10px}.slider-arrow{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.service-card.is-before,.service-card.is-after{transform:none}}

.client-link{display:block;position:relative;min-height:60px;padding:12px 6px;border-radius:12px;transition:color .2s,background .2s}.client-link>span{font-size:14px;margin-left:9px;color:var(--purple);vertical-align:top}.client-link:hover{color:var(--purple);background:#f5effb}.smart-security{padding-bottom:0}.smart-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;align-items:stretch}.smart-image{position:relative;overflow:hidden;border-radius:26px;background:#251d2e;min-height:450px}.smart-image img{width:100%;height:100%;object-fit:cover;object-position:40% center}.smart-features{display:grid;grid-template-columns:1fr 1fr;gap:14px}.smart-features article{padding:23px;border-radius:22px;background:var(--soft);border:1px solid var(--line)}.smart-number{font-size:10px;color:var(--purple);letter-spacing:.1em}.smart-features h3{font-size:20px;margin:12px 0}.smart-features p{font-size:14px;color:var(--muted);margin:0}.smart-security .services-bottom{border:0}.smart-security .services-bottom p{max-width:650px}@media(max-width:760px){.client-link{padding:10px 2px}.client-link>span{font-size:10px;margin-left:4px}.smart-layout{grid-template-columns:1fr;gap:18px}.smart-image{min-height:0;height:260px;border-radius:20px}.smart-features{gap:12px}.smart-features article{padding:19px}.smart-features h3{font-size:19px}.smart-security h2{font-size:37px}}@media(max-width:480px){.smart-features{grid-template-columns:1fr}.smart-features article{padding:22px}.smart-features h3{margin:9px 0}}
/* Rounded surfaces and gentle, non-blocking motion. */
.button,.button-small,.menu-toggle,.image-tag{border-radius:999px}
.service-card,.map-panel,.approach-photo,.response-banner{border-radius:24px}
.service-icon{border-radius:13px}
.hero{border-radius:0 0 32px 32px}
.contact{border-radius:36px 36px 0 0}
.monitoring{padding-bottom:10px}
.monitoring-visual{position:relative;margin:0;overflow:hidden;border-radius:28px;background:#241d2d}
.monitoring-visual img{width:100%;height:auto;aspect-ratio:1672/941;object-fit:cover}
.monitoring-visual figcaption{position:absolute;bottom:20px;left:20px;right:auto;max-width:calc(100% - 40px);display:flex;align-items:center;gap:10px;padding:11px 17px;border:1px solid #ffffff26;border-radius:999px;background:#19131ee8;color:#eee5f7;font-size:9px;letter-spacing:.09em}
.monitoring-capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}
.monitoring-capabilities>div{padding:25px;border:1px solid var(--line);border-radius:22px;background:var(--soft)}
.monitoring-capabilities>div:nth-child(2){transition-delay:.09s}.monitoring-capabilities>div:nth-child(3){transition-delay:.18s}
.monitoring-capabilities span{font-size:9px;letter-spacing:.12em;color:var(--purple);font-weight:650}
.monitoring-capabilities h3{font-size:21px;margin:13px 0 11px}
.monitoring-capabilities p{font-size:14px;color:var(--muted);margin:0}
.page-load{position:fixed;top:0;left:0;z-index:100;pointer-events:none;height:3px;width:100%;background:linear-gradient(90deg,transparent,#9a5cdd,#dec8ff,transparent);transform-origin:left;animation:arrival 1.15s ease-out forwards}
.reading-progress{position:fixed;top:0;left:0;z-index:99;width:100%;height:3px;transform:scaleX(0);transform-origin:left;background:#a368e5;pointer-events:none}
.js-motion img{transition:opacity .55s ease,filter .55s ease}
.js-motion img.image-pending{opacity:.35;filter:blur(3px)}
.js-motion .contact-options>a,.js-motion .approach-steps>div{transition-delay:.06s}
@keyframes arrival{0%{transform:scaleX(.05);opacity:1}75%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@media(max-width:760px){.hero{border-radius:0 0 25px 25px}.service-card,.map-panel,.approach-photo,.response-banner{border-radius:20px}.monitoring-visual{border-radius:20px}.monitoring-visual figcaption{position:static;margin:0;border:0;border-radius:0;padding:13px 15px;max-width:none;font-size:8px;line-height:1.6}.monitoring-capabilities{grid-template-columns:1fr;gap:12px;margin-top:15px}.monitoring-capabilities>div{padding:21px}.monitoring-capabilities h3{font-size:20px}.contact{border-radius:28px 28px 0 0}.site-header nav{border-radius:0 0 22px 22px}.mobile-contact{border-radius:18px 18px 0 0;overflow:hidden}}
@media(prefers-reduced-motion:reduce){.page-load{display:none}.js-motion img.image-pending{opacity:1;filter:none}.monitoring-capabilities>div{transition-delay:0s}.reading-progress{display:none}}

/* Shared hover treatment for smart-security and monitoring capability cards. */
@media (hover:hover) and (pointer:fine){
  .smart-features article,.monitoring-capabilities>div{
    transition:opacity .65s ease,transform .25s ease,border-color .25s ease,box-shadow .25s ease,background-color .25s ease;
  }
  .smart-features article.is-visible,.monitoring-capabilities>div.is-visible{transition-delay:0s}
  .smart-features article h3,.monitoring-capabilities>div h3{transition:color .25s ease}
  .smart-features article:hover,.monitoring-capabilities>div:hover,
  .js-motion .smart-features article.is-visible:hover,.js-motion .monitoring-capabilities>div.is-visible:hover{
    transform:translateY(-5px);
    background-color:#fbf8ff;
    border-color:#b98bec;
    box-shadow:0 14px 30px -14px #783bca55,0 0 0 1px #b98bec26;
  }
  .smart-features article:hover h3,.monitoring-capabilities>div:hover h3{color:var(--purple)}
}
/* Mobile hero: image first, with a compact bottom-aligned message. */
.hero-title-mobile{display:none}
.topline{transition:opacity .18s ease,transform .18s ease}
.topline.is-scrolled-away{opacity:0;transform:translateY(-100%);pointer-events:none}
@media(prefers-reduced-motion:reduce){.topline{transition:none}}
@media(max-width:760px){
 .hero{height:calc(100svh - 164px);min-height:580px;max-height:740px;align-items:flex-end;border-radius:0 0 28px 28px}
 .hero-picture{inset:0;width:100%;height:100%}
 .hero-picture img{object-position:50% 30%;width:100%;height:100%}
 .hero-shade{background:linear-gradient(180deg,transparent 20%,rgba(15,13,20,.06) 40%,rgba(15,13,20,.78) 70%,#15111d 100%)}
 .hero .hero-content{width:calc(100% - 40px);padding:0 0 30px;position:relative}
 .hero-title-desktop,.hero-description,.hero-bottom,.hero .eyebrow,.hero-actions .text-link{display:none}
 .hero-title-mobile{display:block}
 .hero h1,html[lang=fr] .hero h1{font-size:clamp(34px,8.8vw,52px);line-height:1.08;letter-spacing:-.045em;margin:0 0 20px}
 .hero-actions,html[lang=fr] .hero-actions{margin:0;max-width:none;gap:0}
 .hero-actions .button{font-size:14px;min-height:50px;padding:13px 20px;gap:25px}
}
@media(max-width:760px) and (orientation:landscape){
 .hero{min-height:530px}
 .hero-picture img{object-position:50% 25%}
}
@media (prefers-reduced-motion:reduce){
  .smart-features article:hover,.monitoring-capabilities>div:hover,
  .js-motion .smart-features article.is-visible:hover,.js-motion .monitoring-capabilities>div.is-visible:hover{transform:none}
}

/* English/French switch stays beside navigation, including the mobile menu. */
.site-header{gap:16px}
.site-header>.brand{margin-inline-end:auto;flex-shrink:0}
.language-switch{display:flex;align-items:center;flex-shrink:0;border:1px solid #ffffff30;border-radius:999px;padding:3px;order:3}
.language-switch a{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:999px;font-size:13px;font-weight:700;color:#e5dbea}
.language-switch a:hover{background:#ffffff15}
.language-switch a[aria-current=page]{background:var(--purple);color:#fff}
html[lang=fr] h1{font-size:clamp(54px,6vw,86px)}
html[lang=fr] .hero-content{max-width:var(--max)}
@media(min-width:761px) and (max-width:1120px){
 .site-header{padding-inline:24px;gap:12px}
 .site-header nav{gap:14px}
 .site-header nav>a{font-size:12px}
 .site-header .brand img{width:120px}
 .site-header .button-small{padding-inline:12px;gap:10px}
}
@media(max-width:1000px) and (min-width:761px){
 .site-header{height:auto;min-height:88px;flex-wrap:wrap;padding-block:8px}
 .site-header nav{order:4;flex-basis:100%;justify-content:center;flex-wrap:wrap}
}
@media(max-width:760px){
 .site-header{gap:8px;padding-inline:16px}
 .language-switch{order:0}
 .language-switch a{min-width:38px;min-height:44px}
 .menu-toggle{flex-shrink:0;padding-inline:10px;gap:8px}
 html[lang=fr] h1{font-size:clamp(46px,10.5vw,68px)}
 html[lang=fr] .hero-actions{gap:12px;flex-wrap:wrap}
 html[lang=fr] .mobile-contact a{font-size:12px}
}
@media(max-width:360px){
 .site-header .brand img{width:102px}
 .site-header{padding-inline:12px;gap:6px}
 .menu-bars{display:none}
}

/* Service-specific technology imagery directly after the hero. */
.hero-visual-note{position:absolute;right:24px;bottom:14px;margin:0;font-size:11px;color:#e2dce8;background:#15111dc9;border-radius:999px;padding:5px 10px}
.hero h1{font-size:clamp(52px,6.2vw,86px)}
.technology-intro{padding-block:35px 42px}
.technology-intro-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:20px}
.technology-intro-heading h2{font-size:25px;letter-spacing:-.025em;margin:0;line-height:1.2}
.technology-intro-heading>p{font-size:12px;color:var(--muted);margin:0}
.technology-intro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.technology-intro-card{display:block;overflow:hidden;border-radius:24px;background:var(--soft);border:1px solid var(--line)}
.technology-intro-card>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.technology-intro-card>div{padding:20px}
.technology-intro-card h3{display:flex;justify-content:space-between;gap:10px;font-size:21px;margin-bottom:10px;line-height:1.2}
.technology-intro-card h3>span{color:var(--purple)}
.technology-intro-card p{font-size:14px;line-height:1.6;color:#6e6875;margin:0}
.gallery-hint{font-size:13px;color:var(--muted);margin-bottom:14px}
.field-gallery-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:3px 2px 16px}
.field-gallery-track>figure{flex:0 0 31%;min-width:260px;margin:0;scroll-snap-align:start;background:var(--soft);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.field-gallery-track img{width:100%;aspect-ratio:4/3;object-fit:cover}
.field-gallery-track figcaption{padding:18px;font-size:14px;font-weight:600;line-height:1.5}
@media(hover:hover) and (pointer:fine){
 .technology-intro-card:hover{border-color:var(--purple-light)}
 .technology-intro-card:hover h3{color:var(--purple)}
}
@media(max-width:760px){
 .hero .hero-content{padding-bottom:52px}
 .hero h1,html[lang=fr] .hero h1{font-size:clamp(34px,8.8vw,52px);line-height:1.08}
 .hero-visual-note{right:20px;bottom:13px;font-size:10px;background:transparent;padding:0}
 .technology-intro{padding-block:28px}
 .technology-intro-heading{display:block}
 .technology-intro-heading h2{font-size:23px;margin-bottom:10px}
 .technology-intro-grid{grid-template-columns:1fr;gap:12px}
 .technology-intro-card{display:grid;grid-template-columns:34% 1fr;border-radius:20px}
 .technology-intro-card>img{height:100%;min-height:145px;aspect-ratio:auto}
 .technology-intro-card[href="#tech-cctv"]>img{object-position:75% center}
 .technology-intro-card[href="#tech-alarms"]>img{object-position:left center}
 .technology-intro-card[href="#tech-fire"]>img{object-position:20% center}
 .technology-intro-card>div{padding:17px 15px}
 .technology-intro-card h3{font-size:19px}
 .technology-intro-card p{font-size:14px}
.field-gallery-track>figure{flex-basis:83%;min-width:0}
}

/* Motion follows one restrained rhythm; touch scrolling stays native. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.25,.46,.45,.94)}
.hero-content{animation:none}
.hero-picture img{transform-origin:68% 40%;object-position:68% top}
.smart-image>picture{position:absolute;inset:0;display:block}
.smart-image img{object-position:50% center}
.service-photo-1{object-position:center top}
.hero-visual-note{font-size:12px}
.js-motion .hero-picture img{animation:hero-focus 1.8s var(--ease-out) both;transform:translate3d(0,var(--hero-shift,0px),0) scale(1.045)}
.js-motion .hero-content>.eyebrow{animation:content-arrive .7s var(--ease-out) .06s both}
.js-motion .hero-content>h1{animation:content-arrive .9s var(--ease-out) .14s both}
.js-motion .hero-actions{animation:content-arrive .75s var(--ease-out) .29s both}
.js-motion .hero-visual-note{animation:content-arrive .7s var(--ease-out) .36s both}
.js-motion .reveal{
  opacity:0;transform:none;translate:0 24px;
  transition:opacity .7s var(--ease-out) var(--reveal-delay,0ms),
    translate .85s var(--ease-out) var(--reveal-delay,0ms),
    transform .3s var(--ease-out),border-color .3s ease,box-shadow .3s ease,background-color .3s ease;
}
.js-motion .reveal.is-visible{opacity:1;transform:none;translate:0 0}
.js-motion .reveal:focus-within{opacity:1;translate:0 0;transition-delay:0s}
.js-motion img{transition:opacity .5s var(--ease-soft),transform .8s var(--ease-out)}
.js-motion img.image-pending{opacity:.45;filter:none}
.service-card{will-change:auto;transition:transform .65s var(--ease-out),box-shadow .4s ease,border-color .3s ease}
.service-card.is-before{transform:scale(.965) rotateY(3deg)}
.service-card.is-after{transform:scale(.965) rotateY(-3deg)}
.service-card.is-current{box-shadow:0 24px 42px -24px #53298055}
.slider-dot:after{transition:background .3s ease,transform .4s var(--ease-out),width .4s var(--ease-out)}
.slider-dot[aria-current=true]:after{width:18px;transform:scale(1);border-radius:4px}
.button,.text-link,.slider-arrow,.client-link{transition:transform .3s var(--ease-out),background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}
.button>span,.text-link>span,.contact-arrow,.technology-intro-card h3>span,.client-link>span{display:inline-block;transition:transform .35s var(--ease-out)}
.button:active,.slider-arrow:active:not(:disabled){transform:scale(.98)}
.technology-intro-card,.field-gallery-track>figure{isolation:isolate;transition:border-color .3s ease,box-shadow .3s ease,transform .35s var(--ease-out)}
.technology-intro-card>img,.field-gallery-track img,.service-photo{transition:transform .8s var(--ease-out),opacity .5s ease}
.technology-intro-card>div,.field-gallery-track figcaption{position:relative;background:var(--soft)}
.technology-intro-card h3{transition:color .3s ease}
.field-gallery-track{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b8a0d0 transparent}
.faq-list summary{transition:color .25s ease}
.faq-list details[open]>summary{color:var(--purple)}
summary>span{transition:transform .3s var(--ease-out)}
.menu-bars{position:relative;transition:border-color .2s ease,transform .3s var(--ease-out)}
.menu-bars:after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1px solid currentColor;transform:scaleX(0);transition:transform .3s var(--ease-out)}
.menu-toggle[aria-expanded=true] .menu-bars{border-bottom-color:transparent;transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-bars:after{top:-1px;transform:rotate(90deg)}

@keyframes hero-focus{
  from{transform:translate3d(0,var(--hero-shift,0px),0) scale(1.095)}
  to{transform:translate3d(0,var(--hero-shift,0px),0) scale(1.045)}
}
@keyframes content-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}

@media(hover:hover) and (pointer:fine){
  .site-header nav>a:not(.button){position:relative}
  .site-header nav>a:not(.button):after{content:"";position:absolute;bottom:6px;left:0;right:0;height:1px;background:var(--purple-light);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
  .site-header nav>a:not(.button):hover:after,.site-header nav>a:not(.button):focus-visible:after{transform:scaleX(1)}
  .button:hover{box-shadow:0 10px 24px -12px #783bca88}
  .button:hover>span,.technology-intro-card:hover h3>span,.contact-options>a:hover .contact-arrow,.client-link:hover>span{transform:translate(3px,-3px)}
  .text-link:hover>span{transform:translateX(4px)}
  .technology-intro-card:hover,.js-motion .technology-intro-card.is-visible:hover{transform:translateY(-4px);box-shadow:0 16px 32px -22px #3b225952;border-color:#b98bec}
  .technology-intro-card:hover>img,.field-gallery-track>figure:hover img{transform:scale(1.04)}
  .service-card.is-current:hover .service-photo{transform:scale(1.025)}
  .faq-list summary:hover{color:var(--purple)}
  .slider-arrow:hover:not(:disabled){transform:translateY(-2px)}
}
@media(max-width:760px){
  .js-motion .reveal{translate:0 16px;transition-duration:.6s,.7s,.3s,.3s,.3s,.3s}
  .js-motion .reveal.is-visible{translate:0 0}
  .hero-picture img{transform-origin:50% 35%;object-position:50% 30%}
  .js-motion .hero-picture img{animation-name:hero-focus-mobile;transform:scale(1)}
  .service-card.is-before,.service-card.is-after{transform:scale(.98)}
  .technology-intro-card[href="#tech-cctv"]>img{object-position:60% center}
  .hero-visual-note{font-size:12px}
  .field-gallery-track{scroll-padding-inline:2px}
}
@keyframes hero-focus-mobile{from{transform:scale(1.045)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .js-motion .reveal,.js-motion .reveal.is-visible{opacity:1;translate:none;transform:none}
  .js-motion .hero-picture img,.service-card.is-before,.service-card.is-after{transform:none}
  .button:hover,.button:active,.slider-arrow:hover:not(:disabled),.slider-arrow:active:not(:disabled),
  .technology-intro-card:hover,.js-motion .technology-intro-card.is-visible:hover,
  .technology-intro-card:hover>img,.field-gallery-track>figure:hover img,.service-card.is-current:hover .service-photo{transform:none}
  .button:hover>span,.text-link:hover>span,.technology-intro-card:hover h3>span,.contact-options>a:hover .contact-arrow,.client-link:hover>span{transform:none}
}
@media print{
  .js-motion .reveal{opacity:1;translate:none;transform:none}
  .page-load,.reading-progress,.mobile-contact{display:none}
}
