:root{--navy:#0a1d49;--navy-deep:#071638;--navy-light:#102a62;--navy-mid:#17316d;--yellow:#ffbd27;--yellow-dark:#e7a714;--ink:#102149;--muted:#62718b;--line:#e5eaf2;--soft:#f3f6ff;--white:#fff;--radius:16px;--shadow:0 14px 42px rgba(9,26,65,.06)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.16;letter-spacing:-.045em}h2{font-size:clamp(2rem,3.3vw,3rem);font-weight:800}h3{font-size:1.22rem;font-weight:800}p{line-height:1.75}.container{width:min(1180px,calc(100% - 72px));margin-inline:auto}.skip-link{position:absolute;z-index:99;top:-90px;left:12px;padding:12px 20px;background:#fff;color:var(--navy);border-radius:8px}.skip-link:focus{top:12px}.site-header{height:92px;background:#fff;position:relative;z-index:50;border-bottom:1px solid #f1f2f7}.header-inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:24px}.brand{display:flex;align-items:center;flex-shrink:0}.brand img{width:82px;height:82px;object-fit:contain}.primary-nav{display:flex;align-items:center;gap:clamp(15px,2vw,29px)}.primary-nav>a{font-weight:650;color:#142448;font-size:13px;white-space:nowrap;transition:color .2s}.primary-nav>a:hover,.primary-nav>a:focus-visible{color:#ca8810}.btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:15px;border-radius:999px;padding:12px 24px;font-size:13px;line-height:1.4;font-weight:750;white-space:nowrap;text-align:center;transition:transform .2s,background-color .2s,box-shadow .2s,color .2s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn:focus-visible,a:focus-visible,.menu-toggle:focus-visible,.dialog-close:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.btn-yellow{background:var(--yellow);color:#101e3c;box-shadow:0 5px 15px rgba(246,180,38,.14)}.btn-yellow:hover{background:#ffc948;box-shadow:0 10px 25px rgba(246,180,38,.22)}.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:#153877}.btn-large{padding:15px 28px}.btn-outline-light{color:#fff;border-color:rgba(255,255,255,.7);background:transparent}.btn-outline-light:hover{background:rgba(255,255,255,.1)}.nav-cta{padding:13px 23px;margin-left:2px}.menu-toggle{display:none;background:none;border:0;width:43px;height:43px;border-radius:8px;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{background:var(--navy);width:22px;height:2px;border-radius:2px;transition:transform .2s,opacity .2s}
.hero{background:linear-gradient(125deg,#08173a 0%,#0a204e 50%,#132e68 100%);min-height:640px;padding:105px 0 112px;overflow:hidden;position:relative;color:#fff;isolation:isolate}.hero::after{content:"";position:absolute;right:-10%;bottom:-63%;width:72%;aspect-ratio:1;background:radial-gradient(circle,rgba(46,89,169,.22) 0%,transparent 66%);z-index:-1}.hero-orbit{position:absolute;border:1px solid rgba(113,150,216,.075);transform:rotate(-18deg);border-radius:50%;pointer-events:none}.hero-orbit-one{width:880px;height:440px;right:-275px;top:195px}.hero-orbit-two{width:700px;height:350px;right:-175px;top:275px}.hero-grid{display:grid;grid-template-columns:1.07fr .93fr;align-items:center;gap:65px}.eyebrow{font-size:11px;line-height:1.2;letter-spacing:.23em;font-weight:850;margin-bottom:23px}.eyebrow-yellow{color:#f8c449}.eyebrow-yellow span{color:inherit}.eyebrow-line{display:inline-block;width:23px;height:1px;vertical-align:middle;background:var(--yellow);margin-right:12px}.hero h1{font-size:clamp(2.9rem,4.8vw,4.95rem);line-height:1.08;max-width:710px;font-weight:850;margin-bottom:27px;letter-spacing:-.059em}.hero h1 span{color:#fff}.hero-description{color:#c5d0e6;font-size:16px;max-width:535px;line-height:1.85;margin-bottom:33px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}.hero-tags{margin:0;padding:0;display:flex;gap:8px;list-style:none;flex-wrap:wrap}.hero-tags li{font:550 12px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#e5ecff;border:1px solid #354c7c;border-radius:6px;padding:9px 13px;background:rgba(255,255,255,.025)}.hero-tags li.tag-accent{border-color:#a5813b;color:var(--yellow)}.hero-visual{position:relative;isolation:isolate}.code-window,.terminal-window{position:relative;z-index:1;border:1px solid #29416c;background:#07132f;border-radius:13px;overflow:hidden;box-shadow:0 26px 65px rgba(0,0,0,.17)}.code-window{transform:rotate(.6deg)}.window-top,.terminal-top{background:#0f2451;border-bottom:1px solid #162e60;height:43px;display:flex;align-items:center;gap:12px;color:#a9badb;font-size:11px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;padding:0 19px}.window-dots{display:flex;gap:6px}.window-dots span{height:8px;width:8px;border-radius:50%;background:#ff6967}.window-dots span:nth-child(2){background:#ffc453}.window-dots span:nth-child(3){background:#51ce95}.window-end{margin-left:auto;color:#62789f}.code-content{font:500 13px/2.05 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;padding:23px 24px 28px;color:#e1eaff;white-space:nowrap}.code-spacer{height:13px}.code-content .indent{padding-left:20px}.code-purple{color:#c998ff}.code-green{color:#b4e49e}.code-blue{color:#84bcff}.code-yellow{color:#ffca5f}.terminal-window{width:88%;margin-top:15px;margin-left:auto;transform:rotate(-.4deg)}.terminal-top{height:38px}.terminal-icon{color:var(--yellow);font-weight:800}.terminal-status{margin-left:auto;color:#59d19e;font-size:9px}.terminal-content{padding:18px 20px 20px;font:500 12px/2 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap;color:#b3c5e6}.terminal-prompt{color:#56cc91}.terminal-result{color:#ffcb62}.cursor{display:inline-block;vertical-align:middle;margin-left:6px;background:var(--yellow);width:6px;height:14px;animation:blink 1s steps(2,start) infinite}.hero-visual-glow{position:absolute;inset:-30px;z-index:-1;background:radial-gradient(ellipse,rgba(42,79,153,.19),transparent 65%)}@keyframes blink{to{visibility:hidden}}
.section{padding:106px 0 112px;scroll-margin-top:0}.eyebrow-dark{color:#a07d2c}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:44px}.section-heading h2{margin-bottom:17px}.section-heading p{max-width:650px;color:var(--muted);margin:0;font-size:15px}.section-index{font:700 12px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;color:#aebbd0;margin-top:8px;white-space:nowrap}.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.service-card{display:flex;flex-direction:column;border:1px solid #e6ebf2;box-shadow:var(--shadow);padding:25px 22px 26px;border-radius:var(--radius);min-height:296px;transition:transform .25s,box-shadow .25s,border-color .25s;background:#fff}.service-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(9,26,65,.1);border-color:#d8e0f0}.service-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:var(--yellow);margin-bottom:22px;box-shadow:0 8px 18px rgba(10,29,73,.14)}.service-icon svg{width:24px;height:24px}.service-icon-yellow{background:var(--yellow);color:var(--navy);box-shadow:0 8px 18px rgba(255,190,39,.22)}.service-card h3{font-size:17px;margin-bottom:12px;letter-spacing:-.03em}.service-card p{color:#68758c;font-size:13px;line-height:1.8;margin-bottom:22px}.service-tech{margin-top:auto;color:#8794ab;font-size:10px;letter-spacing:.01em}
.technologies-section{background:#0c204c;color:#fff}.technologies-section .section-heading p{color:#bdcbe4}.section-index-light{color:#6077a4}.technology-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.tech-card{background:#152c60;border:1px solid #203a72;border-radius:15px;padding:28px 25px 33px;min-height:190px}.tech-card-heading{display:flex;align-items:flex-start;gap:9px;margin-bottom:20px}.tech-card-dot{display:inline-block;background:var(--yellow);width:7px;height:7px;border-radius:50%;margin-top:9px;flex-shrink:0}.tech-card h3{color:var(--yellow);font-size:16px;margin:0;font-weight:750;letter-spacing:-.025em}.tech-pills{display:flex;flex-wrap:wrap;gap:9px}.tech-pills span{font:500 12px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;background:#081a43;border-radius:6px;padding:9px 11px;color:#d9e4fa;border:1px solid rgba(255,255,255,.02)}
.training-section{background:#f1f4fc}.training-top{display:grid;grid-template-columns:1fr .94fr;align-items:center;gap:90px;margin-bottom:70px}.training-copy h2{max-width:560px;margin-bottom:22px}.training-description{color:var(--muted);max-width:510px;margin-bottom:27px}.check-list{padding:0;list-style:none;margin:0 0 32px}.check-list li{display:flex;align-items:flex-start;gap:14px;color:#445570;margin-bottom:13px;font-size:14px}.check-list li span{font-weight:850;color:var(--navy);font-size:16px;line-height:1.4}.training-journey{background:var(--navy);color:#fff;border-radius:17px;padding:39px 36px 35px;min-height:360px;position:relative;overflow:hidden;box-shadow:0 26px 60px rgba(11,34,85,.1)}.training-journey .eyebrow{margin-bottom:22px}.training-journey h3{font-size:25px;max-width:385px;line-height:1.22;margin-bottom:29px}.training-journey ol{list-style:none;padding:0;margin:0;position:relative;z-index:1}.training-journey li{display:flex;align-items:center;gap:15px;margin:17px 0;color:#e4eafb;font-size:14px}.training-journey li span{border-radius:50%;display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;background:var(--yellow);color:#0a1d49;font-size:12px;font-weight:850}.journey-decoration{position:absolute;right:17px;bottom:-28px;color:rgba(255,255,255,.035);font:bold 140px ui-monospace,monospace;pointer-events:none}.training-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.training-card{border-radius:14px;border:1px solid #e6ebf4;background:#fff;padding:29px 27px 31px;min-height:190px;box-shadow:0 5px 16px rgba(22,37,80,.015)}.training-card .training-label{color:#ac8c36;font:750 12px ui-monospace,SFMono-Regular,Consolas,monospace;margin-bottom:15px}.training-card h3{font-size:17px;letter-spacing:-.02em;margin-bottom:13px}.training-card>p:last-child{font-size:13px;color:var(--muted);margin-bottom:0;line-height:1.8}
.about-section{padding-bottom:113px}.about-section .section-heading{margin-bottom:56px}.values-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.value-card{padding-top:22px;border-top:3px solid var(--yellow)}.value-eyebrow{color:#ae8a2d;font-weight:850;font-size:11px;letter-spacing:.14em;margin-bottom:11px}.value-card h3{margin-bottom:12px;font-size:17px}.value-card>p:last-child{color:var(--muted);font-size:14px;max-width:360px;margin-bottom:0}.contact-banner{background:var(--yellow);padding:49px 0 53px;scroll-margin-top:90px}.contact-banner-inner{display:flex;justify-content:space-between;gap:40px;align-items:center}.contact-banner .eyebrow{font-size:10px;letter-spacing:.16em;color:#6d570f;margin-bottom:11px}.contact-banner h2{font-size:clamp(1.75rem,3.1vw,2.5rem);margin-bottom:9px}.contact-banner p:last-child{margin-bottom:0;color:#46391f;font-size:14px}.contact-banner .btn{min-width:173px}
.site-footer{background:#071638;color:#fff}.footer-top{padding:61px 0 65px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:50px}.footer-brand img{width:92px;height:92px;border-radius:9px;margin-bottom:15px}.footer-brand>p{color:#b5c4df;font-size:13px;max-width:285px;margin-bottom:18px}.footer-motto{color:var(--yellow);font-size:11px;letter-spacing:.08em}.site-footer h2{font-size:14px;letter-spacing:0;margin:5px 0 22px;font-weight:800}.footer-nav{display:flex;flex-direction:column;align-items:flex-start}.footer-nav a,.footer-contact>p,.footer-contact-button{font-size:13px;color:#c4d0e5;margin-bottom:11px;line-height:1.6}.footer-nav a:hover,.footer-contact a:hover,.footer-contact-button:hover{color:var(--yellow)}.footer-contact>p{margin-top:0}.footer-contact-button{border:0;padding:0;background:transparent;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:#7a90bc;text-underline-offset:4px}.footer-bottom{border-top:1px solid #1b2d52}.footer-bottom .container{padding:20px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}.footer-bottom p,.footer-bottom a{color:#8190b1;font-size:11px;margin:0}.footer-bottom a:hover{color:#fff}
.contact-dialog{border:0;padding:0;max-width:min(570px,calc(100% - 28px));width:100%;border-radius:19px;box-shadow:0 30px 95px rgba(1,12,40,.34);max-height:calc(100% - 40px);color:var(--ink);overflow:auto}.contact-dialog::backdrop{background:rgba(4,15,40,.7);backdrop-filter:blur(4px)}.dialog-frame{padding:32px 34px 33px}.dialog-header{display:flex;align-items:flex-start;gap:20px;justify-content:space-between}.dialog-header .eyebrow{margin-bottom:13px}.dialog-header h2{font-size:24px;margin-bottom:12px}.dialog-close{width:35px;height:35px;border:1px solid #e5eaf2;background:#f7f9fd;border-radius:50%;color:#263f69;font-size:27px;line-height:1;flex-shrink:0}.dialog-description{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:21px}.dialog-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dialog-fields label{font-size:12px;font-weight:700;display:flex;flex-direction:column;gap:6px}.dialog-fields label span{color:#b5760c}.dialog-fields label:nth-child(n+3){grid-column:1/-1}.dialog-fields input,.dialog-fields select,.dialog-fields textarea{background:#fff;width:100%;border:1px solid #d8e0ed;color:var(--ink);border-radius:9px;padding:11px 12px;outline:none;transition:border-color .15s,box-shadow .15s;font-size:13px}.dialog-fields textarea{resize:vertical;min-height:109px}.dialog-fields input:focus,.dialog-fields select:focus,.dialog-fields textarea:focus{border-color:#2855a8;box-shadow:0 0 0 3px #e5edff}.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.btn-secondary{border-color:#d5ddeb;color:var(--navy);background:#fff}.btn-secondary:hover{background:#f5f7fc}.dialog-feedback{font-size:13px;margin-top:15px;line-height:1.6;min-height:0}.dialog-feedback[hidden]{display:none}.dialog-feedback.success{color:#0c7652}.dialog-feedback.error{color:#a63a2d}
@media (max-width:1100px){.primary-nav{gap:14px}.primary-nav>a{font-size:12px}.nav-cta{padding:11px 16px;font-size:12px}.hero-grid{gap:42px}.hero h1{font-size:clamp(2.6rem,4.5vw,4.2rem)}.terminal-content{font-size:11px}.services-grid{gap:13px}.service-card{padding:22px 17px;min-height:310px}.training-top{gap:40px}}@media (max-width:820px){.site-header{height:80px}.header-inner{width:min(1180px,calc(100% - 40px))}.brand img{width:72px;height:72px}.menu-toggle{display:flex;position:relative;z-index:56}.menu-open .menu-toggle span:first-child{transform:translateY(7px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:last-child{transform:translateY(-7px) rotate(-45deg)}.primary-nav{position:absolute;top:80px;left:0;right:0;background:#fff;padding:20px 24px 28px;box-shadow:0 22px 35px rgba(12,29,73,.14);border-top:1px solid var(--line);display:none;flex-direction:column;align-items:stretch;gap:0}.menu-open .primary-nav{display:flex}.primary-nav>a{font-size:15px;padding:11px 5px;border-bottom:1px solid #edf0f6}.nav-cta{margin:20px 0 0;width:100%;font-size:14px}.container{width:min(1180px,calc(100% - 48px))}.hero{padding:76px 0 87px}.hero-grid{grid-template-columns:1fr;gap:55px}.hero-copy{max-width:650px}.hero h1{font-size:clamp(3.15rem,6.5vw,4.7rem)}.hero-visual{width:min(600px,100%);margin-inline:auto}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card{min-height:250px;padding:25px}.technology-grid{grid-template-columns:1fr;gap:13px}.tech-card{min-height:0;padding:24px}.training-top{grid-template-columns:1fr;gap:36px;margin-bottom:34px}.training-copy{max-width:640px}.training-journey{min-height:0}.training-cards{gap:14px}.training-card{padding:23px 20px}.footer-top{gap:35px}}@media (max-width:620px){html{scroll-padding-top:75px}.container{width:calc(100% - 38px)}.hero{padding:70px 0 76px;min-height:0}.eyebrow{font-size:10px;letter-spacing:.15em}.hero h1{font-size:clamp(2.65rem,10.5vw,3.8rem);margin-bottom:22px}.hero-description{font-size:14px}.hero-actions{gap:10px;margin-bottom:28px}.hero-actions .btn{padding:13px 17px;font-size:12px}.hero-tags{gap:6px}.hero-tags li{font-size:10px;padding:7px 9px}.hero-grid{gap:42px}.code-content{font-size:10px;padding:17px 15px;line-height:2.1}.terminal-content{font-size:9px;padding:14px 12px;line-height:2.2}.terminal-window{width:96%}.window-top,.terminal-top{font-size:10px;padding:0 14px}.terminal-status{display:none}.section{padding:75px 0 82px}.section-heading{margin-bottom:30px}.section-heading h2,.training-copy h2{font-size:clamp(2rem,8.4vw,2.6rem)}.section-heading p,.training-description{font-size:14px}.section-index{display:none}.desktop-only{display:none}.services-grid{grid-template-columns:1fr;gap:13px}.service-card{min-height:0;padding:24px}.service-icon{margin-bottom:16px}.service-card p{margin-bottom:15px}.technology-grid{gap:12px}.tech-card{padding:23px 20px}.tech-card h3{font-size:14px}.tech-pills span{font-size:11px}.training-journey{padding:30px 23px}.training-journey h3{font-size:22px}.training-journey li{font-size:12px}.training-cards,.values-grid{grid-template-columns:1fr}.training-card{min-height:0;padding:24px}.about-section .section-heading{margin-bottom:34px}.values-grid{gap:25px}.value-card{padding-top:17px}.contact-banner{padding:44px 0}.contact-banner-inner{flex-direction:column;align-items:flex-start;gap:27px}.contact-banner .btn{min-width:0}.footer-top{grid-template-columns:1fr 1fr;gap:35px 22px;padding:47px 0}.footer-brand{grid-column:1/-1}.footer-brand img{width:82px;height:82px}.footer-brand>p{max-width:320px}.site-footer h2{margin-top:0}.footer-bottom .container{flex-direction:column;align-items:flex-start;gap:8px}.dialog-frame{padding:26px 19px}.dialog-header h2{font-size:20px}.dialog-fields{grid-template-columns:1fr}.dialog-fields label{grid-column:1/-1}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Menu de langue compact : icône globe + liste accessible via <details>. */
.header-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}
.language-switch{position:relative;flex-shrink:0}
.language-menu-toggle{display:flex;align-items:center;justify-content:center;gap:3px;width:47px;height:41px;border:1px solid #dbe3ef;border-radius:11px;background:#f7f9fd;color:var(--navy);cursor:pointer;list-style:none;transition:background .18s,border-color .18s}
.language-menu-toggle::-webkit-details-marker{display:none}
.language-menu-toggle::marker{content:""}
.language-menu-toggle:hover,.language-switch[open] .language-menu-toggle{background:#eaf0fa;border-color:#b8c8df}
.language-menu-toggle:focus-visible,.language-menu a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.language-chevron{transition:transform .18s;flex-shrink:0}
.language-switch[open] .language-chevron{transform:rotate(180deg)}
.language-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:80;width:193px;max-width:calc(100vw - 26px);padding:7px;background:#fff;border:1px solid #e1e8f2;border-radius:12px;box-shadow:0 18px 38px rgba(10,29,73,.16)}
.language-menu a{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border-radius:8px;color:#142448;font-size:13px;line-height:1.35;font-weight:650;white-space:nowrap;text-decoration:none}
.language-menu a:hover{background:#f0f4fb}
.language-menu a.is-active{background:#eff4fc;color:#0a1d49;font-weight:800}
.language-menu a.is-active::after{content:"✓";font-size:14px;color:#1e6b49;margin-left:auto}
.language-code{display:grid;place-items:center;min-width:29px;height:25px;border-radius:6px;background:#eef2f9;color:#526383;font-size:10px;font-weight:800}
.language-menu a.is-active .language-code{background:#0a1d49;color:#fff}
@media (max-width:1100px){.header-inner{gap:13px}.header-controls{gap:8px}}
@media (max-width:820px){.header-controls{margin-left:auto;gap:13px}}

/* Technologies issues des projets : 6 cartes régulières + une carte intégrations. */
.tech-card-wide{grid-column:1/-1;min-height:0;background:linear-gradient(110deg,#152c60,#112658)}
.tech-card-wide .tech-card-heading{margin-bottom:17px}
.tech-pills span{overflow-wrap:anywhere}
@media (min-width:621px) and (max-width:820px){
  .technology-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tech-card-wide{grid-column:1/-1}
}
@media (max-width:620px){
  .tech-card-wide{grid-column:auto}
  .tech-pills{gap:7px}
}

/* Portfolio / réalisations */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.portfolio-section{background:#f4f7fc}
.portfolio-intro{margin-bottom:30px}
.portfolio-intro .section-heading p,.portfolio-intro p{max-width:650px}
.project-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:27px}
.project-filter{border:1px solid #dbe3f0;border-radius:100px;background:#fff;color:#253a61;padding:10px 19px;font-size:12px;line-height:1.3;font-weight:750;transition:background .18s,color .18s,border-color .18s}
.project-filter:hover{border-color:#8197bc}
.project-filter.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.project-filter:focus-visible,.project-contact:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.project-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #e2e8f2;border-radius:17px;overflow:hidden;box-shadow:0 10px 28px rgba(14,34,77,.04);transition:transform .22s,box-shadow .22s}
.project-card:hover{transform:translateY(-4px);box-shadow:0 19px 42px rgba(14,34,77,.09)}
.project-card[hidden]{display:none!important}
.project-preview{--project-accent:#f7b72b;position:relative;height:200px;padding:28px 40px 0;overflow:hidden;background:linear-gradient(125deg,#0b1f4c,#1d4380);isolation:isolate}
.project-preview:before{content:"";position:absolute;width:240px;height:240px;right:-60px;top:-130px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 32px rgba(255,255,255,.025),0 0 0 82px rgba(255,255,255,.018);z-index:-1}
.project-preview--hospital{--project-accent:#54d5c5;background:linear-gradient(130deg,#0a3d5b,#126d7f)}
.project-preview--school{--project-accent:#ffc555;background:linear-gradient(130deg,#2e326a,#555ca6)}
.project-preview--pharmacy{--project-accent:#8de0a9;background:linear-gradient(130deg,#125650,#23887b)}
.project-preview--tourism{--project-accent:#e7b6ff;background:linear-gradient(130deg,#22365d,#5f619d)}
.project-preview--market{--project-accent:#ffc385;background:linear-gradient(130deg,#39466a,#ab6359)}
.project-preview-device{position:relative;width:100%;height:184px;background:#fff;border:6px solid rgba(255,255,255,.5);border-radius:14px 14px 0 0;box-shadow:0 13px 34px rgba(0,0,0,.23);overflow:hidden;transform:perspective(600px) rotateX(3deg)}
.project-preview-toolbar{height:22px;background:#e8edf5;display:flex;align-items:center;gap:10px;padding:0 9px}
.project-preview-dots{display:flex;gap:3px}.project-preview-dots i{width:5px;height:5px;background:#adb8cd;border-radius:50%}
.project-preview-address{width:40%;height:5px;border-radius:10px;background:#ccd5e4;margin-inline:auto}
.project-preview-mini{width:15px;height:5px;background:#ccd5e4;border-radius:3px}
.project-preview-layout{height:calc(100% - 22px);display:flex;background:#f8fafd}
.project-preview-sidebar{display:flex;flex-direction:column;gap:12px;width:21%;padding:16px 10px;background:#142650}
.project-preview-sidebar i{height:5px;width:100%;border-radius:5px;background:#647ba6}.project-preview-sidebar i:first-child{background:var(--project-accent)}
.project-preview-content{flex:1;padding:13px 16px}
.project-preview-heading{display:flex;justify-content:space-between;margin-bottom:14px}.project-preview-heading i:first-child{width:42%;height:8px;background:#253c64;border-radius:4px}.project-preview-heading i:last-child{width:19%;height:8px;background:var(--project-accent);border-radius:4px}
.project-preview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:15px}
.project-preview-metrics i{height:43px;border-radius:6px;background:linear-gradient(180deg,#eff3f8 0%,#e5ecf6 100%);border-top:3px solid var(--project-accent)}
.project-preview-lines{display:flex;flex-direction:column;gap:7px}
.project-preview-lines i{height:8px;background:#e8edf5;border-radius:4px}.project-preview-lines i:nth-child(2){width:92%}.project-preview-lines i:nth-child(3){width:81%}
.project-preview-sign{position:absolute;top:7px;right:15px;color:rgba(255,255,255,.13);font-weight:900;letter-spacing:-.08em;font-size:75px;line-height:1}
.project-preview-note{position:absolute;right:11px;bottom:10px;border-radius:5px;background:rgba(9,25,55,.8);color:#fff;padding:4px 7px;font-size:9px;letter-spacing:.02em}
.project-card-content{padding:23px 23px 25px;display:flex;flex-direction:column;flex:1}
.project-category{color:#9a6c0e;text-transform:uppercase;font-size:10px;font-weight:850;letter-spacing:.11em;margin-bottom:10px}
.project-card h3{font-size:22px;margin:0 0 12px}
.project-description{font-size:13px;line-height:1.75;color:var(--muted);margin-bottom:19px;flex:1}
.project-technologies{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.project-technologies span{padding:5px 9px;color:#324769;background:#f0f4fa;font-size:10px;font-weight:700;border-radius:5px}
.project-contact{border:0;border-top:1px solid #e7ecf3;padding:16px 0 0;color:var(--navy);background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-size:12px;font-weight:800}
.project-contact:hover{color:#ae7500}
.portfolio-outro{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:36px;padding:30px 35px;background:#0d2454;border-radius:15px;color:#fff}
.portfolio-outro h3{font-size:22px;margin-bottom:6px}
.portfolio-outro p{font-size:13px;color:#c8d5eb;margin-bottom:0}
.portfolio-outro .btn{flex-shrink:0}
@media (min-width:821px) and (max-width:1080px){
  .primary-nav{gap:9px}.primary-nav>a{font-size:11px}.nav-cta{padding:10px 13px;font-size:11px}.header-inner{gap:11px}
}
@media (max-width:1100px){
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .portfolio-section .section-heading{margin-bottom:23px}
  .project-filters{gap:7px;margin-bottom:23px}
  .project-filter{padding:9px 13px;font-size:11px}
  .project-grid{grid-template-columns:1fr;gap:16px}
  .project-preview{height:205px;padding:24px 35px 0}
  .project-card-content{padding:22px}
  .portfolio-outro{padding:25px 22px;flex-direction:column;align-items:flex-start;gap:18px}
  .portfolio-outro h3{font-size:20px}
}

/* Nouveaux univers visuels du portfolio : présentations illustratives, non captures produit. */
.project-preview--restaurant{--project-accent:#ffa84b;background:linear-gradient(125deg,#553448,#a45d43)}
.project-preview--enterprise{--project-accent:#7bcaf6;background:linear-gradient(125deg,#0c3e5a,#236a9a)}
.project-preview--monitor{--project-accent:#84efb0;background:linear-gradient(125deg,#112d3d,#1e5365)}




/* Hero: typographic balance, readable line lengths, and responsive spacing.
   Keep the same copy and two-column layout without oversizing the headline. */
.hero{min-height:540px;padding:82px 0 88px}
.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,4vw,56px)}
.hero-copy{min-width:0}
.hero h1{font-size:clamp(2.05rem,3.35vw,3.1rem);line-height:1.14;max-width:600px;font-weight:800;letter-spacing:-.038em;margin-bottom:22px;text-wrap:balance;overflow-wrap:normal}
.hero .eyebrow{margin-bottom:18px}
.hero-description{font-size:15px;line-height:1.7;max-width:515px;margin-bottom:27px}
.hero-actions{margin-bottom:28px}
@media(max-width:1100px){
  .hero h1{font-size:clamp(2rem,3.75vw,2.65rem)}
  .hero{min-height:0;padding:76px 0 80px}
}
@media(max-width:820px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:38px}
  .hero-copy{max-width:690px}
  .hero h1{font-size:clamp(2.05rem,5vw,2.65rem);max-width:650px}
  .hero{padding:61px 0 70px}
}
@media(max-width:620px){
  .hero{padding:52px 0 62px}
  .hero h1{font-size:clamp(1.85rem,7.2vw,2.15rem);line-height:1.19;letter-spacing:-.027em;margin-bottom:20px}
  .hero .eyebrow{margin-bottom:19px;font-size:10px;letter-spacing:.12em}
  .hero-description{font-size:14px;line-height:1.7;margin-bottom:23px}
  .hero-grid{gap:35px}
  .hero-actions{margin-bottom:24px}
}
