:root{--marine:#0b1f3a;--marine-2:#12345a;--accent:#14b8a6;--accent-fonce:#0f766e;--ambre:#f59e0b;--fond:#f6f8fb;--fond-clair:#eef3f8;--blanc:#fff;--texte:#334155;--discret:#64748b;--bordure:#e2e8f0;--rayon:18px;--ombre:0 1px 2px #0b1f3a0a, 0 8px 24px #0b1f3a0f;--ombre-forte:0 2px 4px #0b1f3a0f, 0 18px 40px #0b1f3a1f;--largeur:1180px;--police-titre:"Space Grotesk", system-ui, sans-serif;--police-texte:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--fond);color:var(--texte);font-family:var(--police-texte);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}img{max-width:100%;display:block}a{color:var(--accent-fonce);text-decoration:none}h1,h2,h3{font-family:var(--police-titre);color:var(--marine);letter-spacing:-.02em;margin:0;line-height:1.15}p{margin:0}.conteneur{width:100%;max-width:var(--largeur);margin:0 auto;padding:0 1.5rem}.section{padding-top:5rem;padding-bottom:5rem}.fond-clair{background:var(--fond-clair)}.surtitre{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.9rem;font-size:.8rem;font-weight:600;display:inline-block}.bouton{background:var(--accent);color:var(--blanc);border:2px solid var(--accent);border-radius:999px;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.bouton:hover{background:var(--accent-fonce);border-color:var(--accent-fonce);transform:translateY(-1px);box-shadow:0 8px 20px #14b8a64d}.bouton.contour{background:0 0;border-color:#ffffff59}.bouton.contour:hover{border-color:var(--blanc);box-shadow:none}.bouton.clair{background:var(--blanc);border-color:var(--blanc);color:var(--marine)}.bouton.petit{padding:.5rem 1.1rem;font-size:.92rem}.lien-fleche{white-space:nowrap;font-weight:600}.lien-fleche:hover{color:var(--accent)}.hero{background:radial-gradient(900px 500px at 85% 20%, #14b8a640, transparent 60%), radial-gradient(600px 400px at 0% 100%, #f59e0b1f, transparent 60%), linear-gradient(160deg, var(--marine) 0%, var(--marine-2) 100%);color:#cbd5e1;padding:5rem 0 6rem;position:relative;overflow:hidden}.hero:before{content:"";background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.hero-grille{grid-template-columns:1.05fr 1fr;align-items:center;gap:3rem;display:grid;position:relative}.hero h1{color:var(--blanc);margin-bottom:1.4rem;font-size:clamp(2.5rem,5.5vw,4.2rem)}.hero-texte p{color:#cbd5e1;max-width:520px;font-size:1.15rem}.boutons{flex-wrap:wrap;gap:.9rem;margin-top:2.2rem;display:flex}.hero-visuel img{filter:drop-shadow(0 30px 50px #00000059);width:100%}.titre-section{margin-bottom:2.5rem}.titre-section h2{max-width:640px;font-size:clamp(1.8rem,3.5vw,2.6rem)}.entete-avec-lien{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2.5rem;display:flex}.entete-avec-lien .titre-section{margin-bottom:0}.grille{gap:1.5rem;display:grid}.grille-domaines{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}@media (width>=1100px){.grille-domaines{grid-template-columns:repeat(5,1fr);gap:1.1rem}}.grille-projets{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.grille-contact{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.carte{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--rayon);box-shadow:var(--ombre);color:var(--texte);display:block}a.carte{transition:transform .2s,box-shadow .2s,border-color .2s}a.carte:hover{box-shadow:var(--ombre-forte);border-color:#14b8a666;transform:translateY(-4px)}.icone{background:#14b8a61a;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex}.icone img{width:26px;height:26px}.icone.grande{border-radius:18px;width:68px;height:68px}.icone.grande img{width:34px;height:34px}.carte-domaine{padding:1.75rem 1.5rem 3.2rem;position:relative}.carte-domaine h3{margin:1.25rem 0 .5rem;font-size:1.2rem}.carte-domaine p{color:var(--discret);font-size:.95rem}.carte-domaine .fleche{color:var(--accent);font-weight:700;transition:transform .2s;position:absolute;bottom:1.2rem;left:1.5rem}.carte-domaine:hover .fleche{transform:translate(5px)}.carte-projet{flex-direction:column;display:flex;overflow:hidden}.carte-projet .image{aspect-ratio:16/10;background:var(--marine);overflow:hidden}.carte-projet .image img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.carte-projet:hover .image img{transform:scale(1.05)}.carte-projet .corps{padding:1.4rem 1.5rem 1.6rem}.carte-projet h3{margin:.75rem 0 .4rem;font-size:1.3rem}.carte-projet p{color:var(--discret);font-size:.95rem}.badges{flex-wrap:wrap;gap:.4rem;display:flex}.badge{color:var(--accent-fonce);background:#14b8a61a;border-radius:999px;padding:.25rem .7rem;font-size:.75rem;font-weight:600}.badge.clair{color:var(--blanc);background:#ffffff1f}.tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tags li{color:var(--marine);background:var(--fond-clair);border-radius:8px;padding:.35rem .75rem;font-size:.85rem;font-weight:500}.points{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.points li{background:var(--fond);color:var(--marine);border-radius:12px;padding:.85rem 1rem .85rem 2.8rem;font-weight:500;position:relative}.points li:before{content:"";background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat;border-radius:50%;width:1.2rem;height:1.2rem;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.frise{grid-template-columns:repeat(5,1fr);gap:1rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.frise:before{content:"";background:repeating-linear-gradient(90deg, var(--accent) 0 8px, transparent 8px 16px);opacity:.5;height:2px;position:absolute;top:26px;left:10%;right:10%}.frise li{text-align:center;flex-direction:column;align-items:center;gap:.3rem;display:flex;position:relative}.frise-icone{background:var(--blanc);width:54px;height:54px;box-shadow:var(--ombre);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.6rem;display:inline-flex}.frise-icone img{width:26px;height:26px}.frise-numero{font-family:var(--police-titre);color:var(--ambre);font-size:.8rem;font-weight:700}.frise strong{font-family:var(--police-titre);color:var(--marine);font-size:1.15rem}.frise-texte{color:var(--discret);font-size:.9rem}.bandeau-page,.bandeau-projet{background:radial-gradient(700px 400px at 90% 0%, #14b8a640, transparent 60%), linear-gradient(160deg, var(--marine) 0%, var(--marine-2) 100%);color:#cbd5e1}.bandeau-page{padding:4.5rem 0}.bandeau-page h1,.bandeau-projet h1{color:var(--blanc);margin-bottom:1rem;font-size:clamp(2.2rem,5vw,3.4rem)}.bandeau-page p,.bandeau-projet p{max-width:600px;font-size:1.15rem}.expertise{grid-template-columns:1fr 1.4fr;gap:2.5rem;margin-bottom:1.75rem;padding:2.5rem;scroll-margin-top:6rem;display:grid}.expertise-gauche h2{margin:1.25rem 0 .6rem;font-size:1.7rem}.expertise-gauche p{color:var(--discret);margin-bottom:1.5rem}.projets-lies{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.projet-mini{border:1px solid var(--bordure);color:var(--marine);border-radius:999px;align-items:center;gap:.7rem;padding:.4rem 1rem .4rem .4rem;font-size:.9rem;font-weight:600;transition:border-color .2s;display:flex}.projet-mini:hover{border-color:var(--accent)}.projet-mini img{object-fit:cover;border-radius:50%;width:38px;height:38px}.bandeau-projet{padding:3.5rem 0 7rem}.bandeau-projet-grille{grid-template-columns:1fr 1.1fr;align-items:center;gap:3rem;display:grid}.bandeau-projet .badges{margin:1.5rem 0 1rem}.retour{color:#94a3b8;font-weight:600}.retour:hover{color:var(--blanc)}.bandeau-projet-image{border-radius:var(--rayon);width:100%;box-shadow:0 30px 60px #00000059}.chiffres{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-top:-3.5rem;display:grid;position:relative}.chiffre{background:var(--blanc);border-radius:var(--rayon);box-shadow:var(--ombre-forte);flex-direction:column;gap:.2rem;padding:1.6rem 1.75rem;display:flex}.chiffre strong{font-family:var(--police-titre);color:var(--accent);font-size:2.1rem;line-height:1.1}.chiffre span{color:var(--discret);font-size:.95rem}.fiche-grille{grid-template-columns:1fr 300px;align-items:start;gap:3rem;display:grid}.fiche-grille h2{margin-bottom:1rem;font-size:1.6rem}.grand-texte{color:var(--marine);max-width:640px;margin-bottom:3rem;font-size:1.2rem}.fiche-cote{padding:1.75rem;position:sticky;top:6rem}.fiche-cote h3{margin-bottom:1rem;font-size:1.1rem}.contact-grille{grid-template-columns:340px 1fr;align-items:start;gap:2rem;display:grid}.contact-grille .grille-contact{grid-template-columns:1fr 1fr}.contact-grille .grille-contact>:first-child{grid-column:1/-1}.contact-grille .grille-contact>:first-child p{color:var(--marine);font-size:1.05rem;font-weight:500}.carte-profil{text-align:center;margin-top:-7rem;padding:2.25rem 2rem;position:relative}.photo-profil{object-fit:cover;border:5px solid var(--blanc);width:168px;height:168px;box-shadow:0 0 0 3px var(--accent), var(--ombre-forte);border-radius:50%;margin:0 auto 1.4rem}.carte-profil h2{margin-bottom:.35rem;font-size:1.6rem}.profil-metier{color:var(--discret);margin-bottom:.9rem}.profil-lieu{color:var(--marine);align-items:center;gap:.4rem;margin-bottom:1.6rem;font-weight:500;display:inline-flex}.profil-lieu img{width:18px;height:18px}.carte-profil .bouton{justify-content:center;width:100%}.carte-contact{padding:2rem 1.75rem}.carte-contact h3{margin:1.25rem 0 .3rem;font-size:1.2rem}.carte-contact p{color:var(--discret);overflow-wrap:anywhere;font-size:.9rem}.vide{text-align:center;padding:3rem}.vide h1{margin-bottom:.75rem;font-size:2.2rem}.vide p{color:var(--discret);margin-bottom:2rem}.appel-contact{background:radial-gradient(500px 300px at 100% 0%, #f59e0b40, transparent 60%), linear-gradient(135deg, var(--accent-fonce), var(--accent));color:#ffffffd9;border-radius:28px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;margin:1rem 0 5rem;padding:3rem 3.5rem;display:flex}.appel-contact h2{color:var(--blanc);margin-bottom:.4rem;font-size:clamp(1.6rem,3vw,2.2rem)}@media (width<=900px){.hero-grille,.bandeau-projet-grille,.expertise,.fiche-grille{grid-template-columns:1fr}.hero{padding:3.5rem 0 4rem}.hero-visuel{max-width:480px}.frise{grid-template-columns:1fr;gap:1.5rem}.frise:before{display:none}.frise li{text-align:left;flex-direction:row;gap:.9rem}.frise-icone{flex-shrink:0;margin:0}.frise-numero{display:none}.frise-texte:before{content:"· "}.expertise{gap:1.5rem;padding:1.75rem}.fiche-cote{position:static}.contact-grille,.contact-grille .grille-contact{grid-template-columns:1fr}.carte-profil{margin-top:-5rem}.section{padding-top:3.5rem;padding-bottom:3.5rem}.appel-contact{padding:2.25rem 1.75rem}}