/* BRAVOZ : matière irisée, lueurs coordonnées, mouvement sans agitation. */
.tech{--bravoz-spectrum:linear-gradient(110deg,#f3d8dc 0%,#9bc0f4 25%,#9ebcf5 50%,#b8d3f8 72%,#edc98a 100%)}
.tech .header{background:linear-gradient(110deg,#0b121bec,#131d2aeb 55%,#0b111aec);border-bottom:0;box-shadow:0 8px 35px #02070d66;backdrop-filter:blur(24px);isolation:isolate}
.tech .header:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--bravoz-spectrum);background-size:250% 100%;animation:bravoz-spectrum 18s ease-in-out infinite;opacity:.7;pointer-events:none}
.tech .nav{min-height:100px;height:auto;gap:30px;padding-block:14px;align-items:center;position:relative}
.tech .nav .brand{width:200px;flex-shrink:0;padding:0;filter:drop-shadow(0 0 16px #6a8fc21a)}
.tech .nav-links{gap:3px;align-items:center;background:#0c1420a6;border:1px solid #aac7f02b;border-radius:4px 22px 4px 22px;padding:5px;box-shadow:inset 0 1px 0 #c4ddff0b}
.tech .nav-links>a{position:relative;font-family:'Oxanium',Manrope,sans-serif;text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:500;color:#b7c6db;padding:13px 14px;border-radius:2px 13px 2px 13px;transition:color .25s,background .25s;white-space:nowrap}
.tech .nav-links>a:hover,.tech .nav-links>a:focus-visible{color:#fff;background:#7995bd20}
.tech .nav-links>a:focus-visible{outline:1px solid #bad3f6;outline-offset:2px}
.tech .nav-links>a[aria-current=page]{color:#e4efff;background:linear-gradient(110deg,#516d9544,#a5c3ed18);box-shadow:inset 0 -1px 0 #b2d0fa88;text-shadow:0 0 15px #b2d2ff44}
.tech .nav-links .nav-cta{margin-left:9px;padding:14px 18px;border:1px solid #c7deff88;border-radius:2px 15px 2px 15px;background:var(--bravoz-spectrum);background-size:250% 100%;color:#131f31;box-shadow:0 0 25px #8fb3e61a;animation:bravoz-spectrum 18s ease-in-out infinite;font-weight:700;letter-spacing:.07em}
.tech .nav-links .nav-cta:hover{color:#101c2d;background-image:var(--bravoz-spectrum);box-shadow:0 0 28px #91b6eb44}
.tech .menu-toggle{border:1px solid #a5c4f060;border-radius:2px 13px 2px 13px;background:#1a2637;box-shadow:inset 0 1px 0 #d2e5ff14;width:44px;height:44px}.tech .menu-toggle span{background:#cfdef4}
/* Un cycle commun conserve la palette de marque. */
.tech .shine-text,.tech .italic-gradient{background-image:var(--bravoz-spectrum)!important;background-size:250% 100%!important;animation:bravoz-spectrum 18s ease-in-out infinite!important;color:transparent;background-clip:text;-webkit-background-clip:text}
.tech .btn-primary,.tech .featured-banner,.tech .recommended-top,.tech .featured .price-button{background-image:var(--bravoz-spectrum);background-size:250% 100%;animation:bravoz-spectrum 18s ease-in-out infinite}
.tech .btn-primary{border-color:#bad3f77a;box-shadow:0 6px 30px #82adea25}
.tech .overline,.tech .eyebrow,.tech .plan-name,.tech .maintenance-level,.tech .trajectory-number,.tech .discipline-index{animation:bravoz-accent 18s ease-in-out infinite}
.tech .text-link,.tech .future-label,.tech .ai-tags span,.tech .journey-nav{animation:bravoz-edge 18s ease-in-out infinite}
.tech .hero-outline{animation:bravoz-outline 18s ease-in-out infinite}
.tech .brand:after{animation:brand-prism 12s ease-in-out infinite!important;opacity:.6}
.tech .world-backdrop:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(110deg,transparent 15%,#77a8ed0b 34%,#a1c4fb0a 50%,#b2cdf40b 64%,transparent 82%);background-size:220% 100%;mix-blend-mode:screen;animation:bravoz-spectrum 24s ease-in-out infinite}
.tech .service-icon .icon-signal{animation:icon-trace 9s ease-in-out infinite}
.tech .trajectory-arrow,.tech .process-grid i,.tech .benefits>div>span{animation:bravoz-accent 18s ease-in-out infinite}
.tech .experience-card,.tech .price-card.featured,.tech .client-demo,.tech .contact-panel{animation:bravoz-edge 18s ease-in-out infinite}
.tech .footer-brand img{filter:none;animation:bravoz-logo-light 18s ease-in-out infinite!important}
@keyframes bravoz-spectrum{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes bravoz-accent{0%,100%{color:#edc98a}33%{color:#adcbf5}66%{color:#afc6f5}}
@keyframes bravoz-edge{0%,100%{border-color:#afcaf04d}50%{border-color:#aabff678}}
@keyframes bravoz-outline{0%,100%{-webkit-text-stroke-color:#d6e4f8}50%{-webkit-text-stroke-color:#b3c7f2}}
@keyframes bravoz-logo-light{0%,100%{filter:drop-shadow(0 0 3px #8fb4e80d)}50%{filter:drop-shadow(0 0 10px #95b7e630)}}
@media(max-width:1150px){.tech .nav{gap:18px}.tech .nav .brand{width:175px}.tech .nav-links>a{padding-inline:10px;font-size:9px;letter-spacing:.06em}.tech .nav-links .nav-cta{padding-inline:13px;margin-left:5px}}
@media(max-width:900px) and (min-width:791px){.tech .nav .brand{width:140px}.tech .nav{gap:12px}.tech .nav-links>a{padding-inline:7px;font-size:8px}.tech .nav-links .nav-cta{padding-inline:9px}}
@media(max-width:790px){.tech .nav{min-height:84px;padding-block:16px;gap:15px}.tech .nav .brand{width:175px}.tech .nav-links{position:absolute;top:calc(100% + 7px);left:0;right:0;padding:15px;border:1px solid #adcaf24d;border-radius:3px 20px 3px 20px;background:linear-gradient(130deg,#17212ff7,#0c131ef7);backdrop-filter:blur(28px);box-shadow:0 20px 50px #0009;gap:3px}.tech .nav-links>a{font-size:14px;letter-spacing:.12em;padding:14px 16px;width:100%;white-space:normal}.tech .nav-links .nav-cta{margin:8px 0 0;padding:15px 16px;font-size:12px;width:100%}.tech .header .nav>.text-link{font-family:'Oxanium',Manrope,sans-serif;font-size:10px;max-width:180px;text-align:right}.tech .journey-nav a{letter-spacing:0}.tech .header{box-shadow:0 5px 25px #0004}}
@media(prefers-reduced-motion:reduce){.tech *,.tech *:before,.tech *:after{animation:none!important;transition:none!important}.tech .brand:after,.tech .world-backdrop:before{display:none!important}}
.tech .nav-links>a[aria-current=page]{background-size:220% 100%;animation:bravoz-spectrum 18s ease-in-out infinite}
.tech .discipline,.tech .price-card,.tech .maintenance-card,.tech .extra,.tech .platform-window,.tech .simulator-shell{animation:bravoz-edge 18s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){body.tech *,body.tech *:before,body.tech *:after{animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){html body.tech.tech.tech *,html body.tech.tech.tech *:before,html body.tech.tech.tech *:after{animation:none!important;transition:none!important}}
/* Lumière en mouvement : flux et particules suivent les décors sans les recadrer. */
.tech .world-backdrop:before{background:linear-gradient(110deg,transparent 12%,#77a8ed22 34%,#b9d7ff24 49%,#b7d1f525 62%,transparent 82%);background-size:230% 100%;animation:bravoz-spectrum 16s ease-in-out infinite}
.tech .world-dust{inset:0;background:none;opacity:1;animation:none;transform:none;z-index:2}
.tech .world-dust i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#c2dbff;box-shadow:0 0 6px 2px #94baef65;opacity:0;animation:bravoz-spark var(--duration) linear var(--delay) infinite;pointer-events:none}
.tech .world-dust i:nth-child(3n){width:3px;height:3px;background:#eecf97;box-shadow:0 0 8px 2px #eecf974d}
.tech .photon-stream{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden;fill:none}
.photon-track{stroke:#9cc4fb16;stroke-width:1}
.photon-flow{stroke:#b5d4ff;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:90 1310;opacity:.7;filter:drop-shadow(0 0 4px #9bbded);animation:bravoz-photon 12s linear infinite}
.photon-gold{stroke:#f1cf95;stroke-width:1.2;stroke-dasharray:55 1345;animation-duration:17s;animation-delay:-8s;filter:drop-shadow(0 0 4px #edc98a)}
.tech .shine-text,.tech .italic-gradient{animation-duration:12s!important}.tech .brand:after{animation-duration:8s!important;opacity:.95}
.tech .header:before{content:'';position:absolute;bottom:0;left:0;width:150px;height:2px;background:linear-gradient(90deg,transparent,#bbd7ff,#c1d4fc,transparent);box-shadow:0 0 14px #9bbded66;animation:bravoz-nav-light 13s ease-in-out infinite;pointer-events:none;z-index:2}
/* Des repères lisibles, nommés pour les clients. */
.tech .journey-nav{right:12px;width:104px;padding:13px 8px;border:1px solid #a7cafa80;border-radius:3px 17px 3px 17px;background:linear-gradient(145deg,#283c57ed,#16202eee);box-shadow:0 0 26px #729ad228,0 10px 35px #0005;gap:8px;backdrop-filter:blur(16px);animation:none}
.tech .journey-nav a{display:flex;flex-direction:column;gap:5px;padding:9px 5px;font-family:'Oxanium',Manrope,sans-serif;font-size:10px;line-height:1.3;letter-spacing:.02em;font-weight:500;color:#deecff;border-radius:2px 9px 2px 9px;min-height:43px;transition:background .25s,color .25s;min-width:0}
.tech .journey-nav a span{font-size:9px;color:#f0cc92;letter-spacing:.17em}
.tech .journey-nav a:hover,.tech .journey-nav a:focus-visible,.tech .journey-nav a[aria-current=page]{color:#fff4df;background:linear-gradient(110deg,#86aee54d,#91b2ed22);box-shadow:inset 2px 0 0 #c4ddff;text-shadow:0 0 15px #b4d3ff66}
@keyframes bravoz-spark{0%{transform:translate3d(0,25px,0);opacity:0}15%{opacity:.65}75%{opacity:.65}100%{transform:translate3d(var(--drift),-85px,0);opacity:0}}
@keyframes bravoz-photon{to{stroke-dashoffset:-1400}}
@keyframes bravoz-nav-light{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:calc(100% - var(--beam-width,150px));opacity:0}}
@media(min-width:1201px){.tech main>.section>.wrap,.tech .hero>.wrap,.tech .page-intro{width:min(calc(100% - 190px),1200px);margin-left:max(40px,calc((100% - 1280px)/2));margin-right:auto}}
@media(max-width:1200px){.tech{padding-bottom:65px}.tech .journey-nav{top:auto;bottom:10px;left:10px;right:10px;width:auto;transform:none;display:flex;flex-direction:row;justify-content:space-around;gap:3px;padding:6px 8px;min-height:48px;background:linear-gradient(110deg,#283b56f5,#172232f5);border-color:#accdfb80;border-radius:3px 16px 3px 16px}.tech .journey-nav a{font-size:10px;flex:1;max-width:20%;min-height:32px;padding:5px 3px;text-align:center;align-items:center;justify-content:center;gap:0;line-height:1.3}.tech .journey-nav a span{display:none}.tech .journey-nav a:hover,.tech .journey-nav a:focus-visible,.tech .journey-nav a[aria-current=page]{box-shadow:inset 0 -1px 0 #c6deff}}
@media(max-width:530px){.tech .journey-nav a{font-size:9px}.tech .journey-nav{padding-inline:4px}.tech .photon-flow{opacity:.5;stroke-width:1.3}.tech .world-dust i:nth-child(n+9){display:none}.tech .header:before{width:95px}}
@media(prefers-reduced-motion:reduce){html body.tech.tech.tech *,html body.tech.tech.tech *:before,html body.tech.tech.tech *:after{animation:none!important;transition:none!important}.tech .photon-stream,.tech .world-dust,.tech .header:before{display:none!important}}
@media(min-width:1201px){.tech .header .nav,.tech .footer>.wrap{width:min(calc(100% - 80px),1280px);margin-inline:auto}}

.tech .header:before{--beam-width:150px;width:var(--beam-width)}
@media(max-width:530px){.tech .header:before{--beam-width:95px}}
/* Décors vivants : mouvement du cadre complet et reflets issus de l'image. */
.tech{padding-bottom:0}
.tech main>.section>.wrap,.tech .hero>.wrap,.tech .page-intro{width:min(calc(100% - 64px),1200px);margin-left:auto;margin-right:auto}
.tech .world-backdrop:before{display:none}
.tech .world-backdrop picture{transform-origin:50% 35%;animation:bravoz-scene-depth 22s ease-in-out infinite}
.tech .world-backdrop .scene-reflection{z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.42;filter:brightness(1.45) saturate(1.08);mask-image:linear-gradient(110deg,transparent 28%,#000 45%,#000 49%,transparent 66%);-webkit-mask-image:linear-gradient(110deg,transparent 28%,#000 45%,#000 49%,transparent 66%);mask-size:300% 100%;-webkit-mask-size:300% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;animation:bravoz-scene-depth 22s ease-in-out infinite,bravoz-scene-reflection 11s ease-in-out infinite}
.tech .world-dust{opacity:.45}
.tech .hero .world-backdrop picture{animation-duration:20s}
.tech .hero .world-backdrop .scene-reflection{animation-duration:20s,10s}
@keyframes bravoz-scene-depth{0%,100%{transform:translate3d(-.2%,.2%,0) scale(.975)}50%{transform:translate3d(0,0,0) scale(1)}}
@keyframes bravoz-scene-reflection{0%{mask-position:160% 50%;-webkit-mask-position:160% 50%;opacity:.15}25%{opacity:.42}75%{opacity:.42}100%{mask-position:-60% 50%;-webkit-mask-position:-60% 50%;opacity:.15}}
@media(max-width:790px){.tech{padding-bottom:0}.tech main>.section>.wrap,.tech .hero>.wrap,.tech .page-intro{width:calc(100% - 40px);margin-inline:auto}.tech .world-backdrop .scene-reflection{opacity:.3}.tech .footer{padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){html body.tech.tech.tech .world-backdrop picture{animation:none!important;transform:none!important}.tech .world-backdrop .scene-reflection{display:none!important}}
/* Les teintes de l'image évoluent ; le décor ne se déplace plus. */
.tech .world-backdrop picture,.tech .hero .world-backdrop picture{animation:none!important;transform:none!important;filter:none}
.tech main>.section .world-backdrop picture>img,.tech .hero .world-backdrop picture>img,.tech .scene-footer .world-backdrop picture>img{animation:bravoz-image-colors 14s ease-in-out infinite!important;transform:none!important;filter:hue-rotate(0deg) saturate(1.08) brightness(1)}
.tech .ai-section .world-backdrop picture>img{transform:scaleX(-1)!important}
@keyframes bravoz-image-colors{0%,100%{filter:hue-rotate(0deg) saturate(1.08) brightness(1)}30%{filter:hue-rotate(18deg) saturate(1.24) brightness(1.06)}65%{filter:hue-rotate(-18deg) saturate(1.18) brightness(1.03)}}
/* Deux panoramas dédiés terminent l'expérience. */
.tech main>.departure{min-height:max(460px,56.3vw);display:grid;align-items:center;padding-block:90px;background:#0b121b!important}
.tech .departure .world-backdrop{mask-image:linear-gradient(180deg,transparent,#000 10%,#000 85%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 85%,transparent)}
.tech .departure .world-backdrop:after{background:linear-gradient(90deg,#0b121bbf,#0b121b55 65%),linear-gradient(180deg,#0b121b55,transparent 45%,#0b121b66)}
.tech .departure>.wrap{position:relative;z-index:2;text-align:left}.tech .departure h2{font-size:clamp(42px,5.5vw,78px);max-width:900px}.tech .departure .btn{margin-top:35px}
.tech .scene-footer{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-height:max(500px,56.3vw);padding-top:85px;padding-bottom:25px;border:0;background:#0b121b}
.tech .scene-footer .world-backdrop{position:absolute;inset:0;height:100%;width:100%;margin:0;mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)}
.tech .scene-footer .world-backdrop picture{position:absolute;inset:0}.tech .scene-footer .world-backdrop img{position:absolute;bottom:0;left:0;width:100%;height:auto;max-width:none;opacity:1}
.tech .scene-footer .world-backdrop:after{background:linear-gradient(180deg,#0b121b44,transparent 45%,#0b121b33)}
.tech .scene-footer>.wrap{position:relative;z-index:1}.tech .scene-footer .footer-top{padding-bottom:40px}.tech .scene-footer .footer-bottom{margin-top:auto;border-color:#b2d0fa44;padding-top:22px}.tech .scene-footer .footer-brand img{max-width:210px}.tech .scene-footer .footer-col a{color:#d0dae9;text-shadow:0 2px 9px #0b121b}.tech .scene-footer .footer-col strong{color:#cfe2fc}.tech .scene-footer .footer-bottom{color:#becadb;text-shadow:0 1px 8px #000}
@media(max-width:790px){.tech main>.departure{min-height:560px;padding-block:65px;align-items:start}.tech .departure .world-backdrop img{top:auto;bottom:0}.tech .departure .world-backdrop:after{background:linear-gradient(180deg,#0b121b99,#0b121b55 55%,#0b121b33)}.tech .departure h2{font-size:clamp(36px,7vw,58px)}.tech .scene-footer{min-height:720px;padding-top:55px;padding-bottom:25px}.tech .scene-footer .footer-top{padding-bottom:180px}.tech .scene-footer .footer-bottom{background:#0b121b88}.tech .scene-footer .footer-brand img{max-width:175px}}
@media(max-width:530px){.tech main>.departure{min-height:500px}.tech .departure h2{font-size:37px}.tech .scene-footer .footer-top{padding-bottom:130px}.tech .scene-footer{min-height:740px}.tech .scene-footer .footer-col a{font-size:12px}}
@media(prefers-reduced-motion:reduce){html body.tech.tech.tech .world-backdrop picture>img{animation:none!important;filter:none!important}}
html body.tech.tech .fx-offscreen picture>img,html body.tech.tech.motion-hidden .world-backdrop picture>img{animation-play-state:paused!important}
