1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1479],{67863:function(e,t,n){Promise.resolve().then(n.bind(n,69751))},69751:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return p}});var i=n(38393),a=n(1059),r=n(55761),l=n(69345),s=n(81482),o=n(32550),c=n(77814),m=n(64834);let d={"bim-management":{src:"/images/services-bim-management.jpg",alt:"\xc9quipe BIM Management coordonnant un projet de construction"},"bim-amo":{src:"/images/services-bim-amo.jpg",alt:"Consultant BIM AMO accompagnant une \xe9quipe projet en salle de r\xe9union"},"bim-modelisation":{src:"/images/services-modelisation.jpg",alt:"Mod\xe9lisation BIM 3D d'un b\xe2timent avec d\xe9tails architecturaux"},"digital-twin":{src:"/images/digital-twin-hero.jpg",alt:"Jumeau num\xe9rique d'un b\xe2timent avec donn\xe9es en temps r\xe9el"},"developpement-bim":{src:"/images/services-developpement.jpg",alt:"D\xe9veloppement de plugins BIM sur double \xe9cran avec code et mod\xe8le 3D"},"formation-bim":{src:"/images/services-formation.jpg",alt:"Session de formation BIM en salle avec instructeur et participants"},"iso-19650":{src:"/images/iso-19650-process.jpg",alt:"Processus de certification ISO 19650 pour la gestion de l'information BIM"}};function u(e){let{children:t,id:n,className:a=""}=e,r=(0,c.useRef)(null),l=(0,s.Y)(r,{once:!0,margin:"-80px"});return(0,i.jsx)("section",{ref:r,id:n,className:"py-16 md:py-20 ".concat(a),children:(0,i.jsx)(o.E.div,{initial:{opacity:0,y:30},animate:l?{opacity:1,y:0}:{},transition:{duration:.6,ease:"easeOut"},children:t})})}let f=[{id:"bim-management",key:"bimMgmt",delCount:6},{id:"bim-amo",key:"bimAmo",delCount:4},{id:"bim-modelisation",key:"bimModel",delCount:5},{id:"digital-twin",key:"digitalTwin",delCount:6},{id:"developpement-bim",key:"devBim",delCount:5},{id:"formation-bim",key:"formation",delCount:6},{id:"iso-19650",key:"iso",delCount:4}];function p(){let e=(0,a.T)("servicesPage"),t=(0,m.useSearchParams)();return(0,c.useEffect)(()=>{let e=t.get("section");if(e){let t=document.getElementById(e);t&&t.scrollIntoView({behavior:"smooth"})}},[t]),(0,i.jsxs)("main",{children:[(0,i.jsxs)("section",{className:"relative bg-bim-dark pt-32 pb-20 overflow-hidden",children:[(0,i.jsx)(l.default,{src:"/images/services-hero.jpg",alt:"Chantier de construction avec overlay BIM num\xe9rique",fill:!0,priority:!0,quality:85,className:"object-cover opacity-40"}),(0,i.jsx)("div",{className:"absolute inset-0 bg-gradient-to-b from-[#050d1a]/60 via-trans
1parent to-[#050d1a]"}),(0,i.jsxs)("div",{className:"relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[(0,i.jsx)("span",{className:"inline-block bg-bim-accent/10 border border-bim-accent/30 text-bim-accent text-sm font-medium px-4 py-2 rounded-full mb-6 animate-fade-in-up",children:e("badge")}),(0,i.jsx)("h1",{className:"font-syne text-4xl md:text-6xl font-bold text-white mb-4 animate-fade-in-up animate-delay-1",children:e("title")}),(0,i.jsx)("p",{className:"text-bim-muted text-lg max-w-2xl mx-auto mb-10 animate-fade-in-up animate-delay-2",children:e("subtitle")}),(0,i.jsx)("div",{className:"flex flex-wrap justify-center gap-3 animate-fade-in-up animate-delay-3",children:f.map(t=>(0,i.jsx)("a",{href:"#".concat(t.id),className:"text-sm text-bim-muted hover:text-bim-bright border border-white/10 rounded-full px-4 py-2 transition-colors",children:e("".concat(t.key,".title"))},t.id))})]})]}),(0,i.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:f.map((t,n)=>(0,i.jsx)(u,{id:t.id,className:n<f.length-1?"border-b border-white/10":"",children:(0,i.jsxs)("div",{className:d[t.id]?"grid grid-cols-1 md:grid-cols-2 gap-8 items-start":"",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h2",{className:"font-syne text-2xl md:text-3xl font-bold text-white mb-4",children:e("".concat(t.key,".title"))}),(0,i.jsx)("p",{className:"text-bim-muted leading-relaxed max-w-3xl mb-6",children:e("".concat(t.key,".desc"))}),(0,i.jsxs)("div",{className:"mb-6",children:[(0,i.jsx)("h3",{className:"text-sm font-semibold text-white mb-3",children:e("deliverables")}),(0,i.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:Array.from({length:t.delCount},(n,a)=>(0,i.jsxs)("div",{className:"flex items-start gap-2 text-sm text-bim-muted",children:[(0,i.jsx)("svg",{className:"w-4 h-4 text-bim-accent mt-0.5 shrink-0",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12.75l6 6 9-13.5"})}),e("".concat(t.key,".del").concat(a+1))]},a))})]})]}),d[t.id]&&(0,i.jsx)("div",{className:"relative aspect-video w-full rounded-xl overflow-hidden",children:(0,i.jsx)(l.default,{src:d[t.id].src,alt:d[t.id].alt,fill:!0,quality:85,className:"object-cover rounded-xl"})})]})},t.id))}),(0,i.jsx)("div",{className:"bg-bim-dark-2 py-16 md:py-20",children:(0,i.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[(0,i.jsx)("h2",{className:"section-title",children:e("ctaTitle")}),(0,i.jsx)("p",{className:"section-subtitle",children:e("ctaDesc")}),(0,i.jsx)(r.rU,{href:"/contact",className:"btn-primary mt-6",children:e("ctaButton")})]})})]})}},55761:function(e,t,n){"use strict";n.d(t,{jD:function(){return o},rU:function(){return l},tv:function(){return c}});var i=n(30438),a=n(29027);let r=(0,i.Z)({locales:["fr","en","de"],defaultLocale:"fr"}),{Link:l,redirect:s,usePathname:o,useRouter:c}=(0,a.Z)(r)},81482:function(e,t,n){"use strict";n.d(t,{Y:function(){return l}});var i=n(77814),a=n(98058);let r={some:0,all:1};function l(e){let{root:t,margin:n,amount:l,once:s=!1,initial:o=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[c,m]=(0,i.useState)(o);return(0,i.useEffect)(()=>{if(!e.current||s&&c)return;let i={root:t&&t.current||void 0,margin:n,amount:l};return function(e,t,{root:n,margin:i,amount:l="some"}={}){let s=(0,a.I)(e),o=new WeakMap,c=new IntersectionObserver(e=>{e.forEach(e=>{let n=o.get(e.target);if(!!n!==e.isIntersecting){if(e.isIntersecting){let n=t(e.target,e);"function"==typeof n?o.set(e.target,n):c.unobserve(e.target)}else"function"==typeof n&&(n(e),o.delete(e.target))}})},{root:n,rootMargin:i,threshold:"number"==typeof l?l:r[l]});return s.forEach(e=>c.observe(e)),()=>c.disconnect()}(e.current,()=>(m(!0),s?void 0:()=>m(!1)),i)},[t,e,n,s,l]),c}},29027:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var i=n(64834),a=n(77814),r=n.t(a,2),l=n(52568),s=r["use".trim()],o=n(98288),c=n(6568),m=n(19024),d=n(38393),u=n(13680);function f(e){let{Link:t,config:n,getPathname:r,...f}=function(e,t){var n,r,l;let u={...n=t||{},localePrefix:"object"==typeof(l=n.localePrefix)?l:{mode:l||"always"}
1,localeCookie:!!((r=n.localeCookie)??1)&&{name:"NEXT_LOCALE",sameSite:"lax",..."object"==typeof r&&r},localeDetection:n.localeDetection??!0,alternateLinks:n.alternateLinks??!0},f=u.pathnames,p=(0,a.forwardRef)(function({href:t,locale:n,...i},a){let r,l;"object"==typeof t?(r=t.pathname,l=t.params):r=t;let m=(0,o.t3)(t),p=e(),h=(0,o.tI)(p)?s(p):p,b=m?x({locale:n||h,href:null==f?r:{pathname:r,params:l},forcePrefix:null!=n||void 0}):r;return(0,d.jsx)(c.default,{ref:a,href:"object"==typeof t?{...t,pathname:b}:b,locale:n,localeCookie:u.localeCookie,...i})});function x(e){let t;let{forcePrefix:n,href:i,locale:a}=e;return null==f?"object"==typeof i?(t=i.pathname,i.query&&(t+=(0,m.Ci)(i.query))):t=i:t=(0,m.cT)({locale:a,...(0,m.hm)(i),pathnames:u.pathnames}),(0,m.r6)(t,a,u,n)}function h(e){return function(t,...n){return e(x(t),...n)}}return{config:u,Link:p,redirect:h(i.redirect),permanentRedirect:h(i.permanentRedirect),getPathname:x}}(l.bU,e);return{...f,Link:t,usePathname:function(){let e=function(e){let t=(0,i.usePathname)(),n=(0,l.bU)();return(0,a.useMemo)(()=>{if(!t)return t;let i=t,a=(0,o.Af)(n,e.localePrefix);if((0,o.Tp)(a,t))i=(0,o.vz)(t,a);else if("never"!==e.localePrefix.mode&&e.localePrefix.prefixes){let e=(0,o.Sk)(n);(0,o.Tp)(e,t)&&(i=(0,o.vz)(t,e))}return i},[e.localePrefix,n,t])}(n),t=(0,l.bU)();return(0,a.useMemo)(()=>e&&n.pathnames?(0,m.Bv)(t,e,n.pathnames):e,[t,e])},useRouter:function(){let e=(0,i.useRouter)(),t=(0,l.bU)(),s=(0,i.usePathname)();return(0,a.useMemo)(()=>{function i(e){return function(i,a){let{locale:l,...o}=a||{},c=[r({href:i,locale:l||t,forcePrefix:null!=l||void 0})];Object.keys(o).length>0&&c.push(o),(0,u.Z)(n.localeCookie,s,t,l),e(...c)}}return{...e,push:i(e.push),replace:i(e.replace),prefetch:i(e.prefetch)}},[t,s,e])},getPathname:r}}},30438:function(e,t,n){"use strict";function i(e){return e}n.d(t,{Z:function(){return i}})}},function(e){e.O(0,[2568,6568,7232,2550,7181,8065,1744],function(){return e(e.s=67863)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.