/* GVisuel — charte issue de la maquette Figma « MAQUETTE V1 » (desktop 1920 / contenu 1440).
 2 polices : Montserrat (titres ; texte en 400), Roboto Mono (boutons, tags, menu). Tailles : paliers --t-*.
 Polices auto-hébergées (OFL). « latin » sans unicode-range : le latin-ext, déclaré après, prime pour ses caractères (Š).
 3 col. ≥ 64em, 2 col. ≥ 40em, 1 col. dessous ; titres fluides (clamp), identiques ≥ 1024 px. */

@font-face{font-family:Montserrat;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Montserrat;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Montserrat;font-weight:600;font-display:swap;src:url(../fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-weight:600;font-display:swap;src:url(../fonts/montserrat-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Montserrat;font-weight:700;font-display:swap;src:url(../fonts/montserrat-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-weight:700;font-display:swap;src:url(../fonts/montserrat-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Roboto Mono";font-weight:400;font-display:swap;src:url(../fonts/roboto-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Roboto Mono";font-weight:400;font-display:swap;src:url(../fonts/roboto-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Repli métrique (limite le décalage au chargement des polices) */
@font-face{font-family:"Montserrat repli";src:local("Arial");size-adjust:113%;ascent-override:85%;descent-override:22%;line-gap-override:0%}

:root{
--black:#000;--white:#fff;--bg:#f7f7f7;--grey:#9c9c9c;--line:#ddd;--shade:rgba(0,0,0,.2);--muted:#595959;
--sans:Montserrat,"Montserrat repli",Arial,sans-serif;--mono:"Roboto Mono",ui-monospace,Menlo,Consolas,monospace;
--max:1440px;--g:clamp(16px,5vw,80px);--w:min(var(--max),100% - 2*var(--g));
--r:10px;--rs:5px;--gap:12px;
--sec:clamp(80px,10.42vw,200px);--top:clamp(40px,6.25vw,120px);--hd:clamp(40px,6.25vw,120px);
--t-hero:clamp(2.14rem,max(6.33vw,1.43rem + 3.56vw),7.6rem);--t-1:clamp(1.78rem,max(4.75vw,1.19rem + 2.85vw),5.7rem);
--t-2:clamp(1.66rem,max(3.46vw,1.07rem + 2.14vw),4.16rem);
--t-3:clamp(1.43rem,2.23vw,2.67rem);--t-4:clamp(1.31rem,1.98vw,2.38rem);--t-5:clamp(1.07rem,max(1.66vw,1.01rem + .4vw),1.66rem);
--t-b:clamp(1.01rem,.9rem + .28vw,1.19rem);--t-s:15.2px;--t-xs:13.3px
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);scroll-padding-top:110px}
body{margin:0;font:400 var(--t-b)/1.2 var(--sans);letter-spacing:-.02em;color:var(--black);background:var(--bg);overflow-x:clip;overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
picture{display:block}
h1,h2,h3,p,ul,ol,dl,dd,figure,fieldset{margin:0}
ul[role=list],ol{list-style:none;padding:0}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--black);outline-offset:3px;border-radius:2px}
.foot :focus-visible,.card :focus-visible,.pole-img :focus-visible{outline-color:var(--white)}
.sr{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}
.skip{position:fixed;left:12px;top:-80px;z-index:50;background:var(--black);color:var(--white);padding:12px 16px;border-radius:var(--rs);font:400 var(--t-s)/1 var(--mono);text-transform:uppercase}
.skip:focus{top:12px}
main:focus{outline:0}

/* Typographie (Montserrat SemiBold 128/96/70/45 ; texte Regular 20) */
.t-hero,.t-1,.t-2,.t-disp,.t-3,.t-lead p{font-weight:600;line-height:1.05;letter-spacing:0}
.t-hero{font-size:var(--t-hero);line-height:1}
.t-1,.t-lead p{font-size:var(--t-1)}
.t-2,.t-disp{font-size:var(--t-2)}
.t-3{font-size:var(--t-3)}
.t-4{font:500 var(--t-4)/1.05 var(--sans);letter-spacing:0}
.prose p,.prose ul,.prose ol{margin:0 0 1em}
.prose>:last-child{margin-bottom:0}
.prose ul,.prose ol{padding-left:1.2em}
.prose a{text-decoration:underline}

/* Mise en page */
.page{position:relative;z-index:1;background:var(--bg);padding:0 10px}
.wrap{width:var(--w);margin-inline:auto}
.main{padding:var(--top) 0 clamp(80px,9.4vw,180px);display:flex;flex-direction:column;gap:var(--sec)}
.main-home{padding-top:var(--sec)}
.crumbs+.main{padding-top:clamp(32px,4.2vw,80px)}
.page-t{margin-bottom:calc(var(--hd) - var(--sec))}
.lead-col{max-width:586px;margin-left:auto;margin-top:calc(48px - var(--hd));margin-bottom:calc(var(--hd) - var(--sec))}
.sec-t{margin-bottom:clamp(32px,4.2vw,80px)}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 75px;margin-bottom:clamp(40px,4.2vw,80px)}
.sec-head h2{max-width:498px}
.grid{display:grid;gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Fil d'Ariane */
.crumbs{padding-top:clamp(24px,3vw,48px)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 8px;font:400 var(--t-xs)/1.3 var(--mono);text-transform:uppercase;letter-spacing:0;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:8px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline;color:var(--black)}
.crumbs [aria-current]{color:var(--black)}

/* Boutons et tags (Roboto Mono en capitales) */
.btn,.tag,.nav-link,.nav-mob summary{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:0}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:34px;padding:10px;border:1px solid currentColor;border-radius:var(--rs);background:transparent;color:var(--black);font-size:var(--t-s);line-height:13.3px;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s}
.btn::after{content:"";width:10px;height:10px;flex:none;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;opacity:0;margin-right:-20px;transition:opacity .2s,margin .2s}
.btn:hover,.btn:focus-visible{background:var(--white)}
.btn:hover::after,.btn:focus-visible::after{opacity:1;margin-right:0}
.btn-light{color:var(--white)}
.btn-light:hover,.btn-light:focus-visible{background:var(--white);color:var(--black)}
:root{--arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 9 9 1M3 1h6v6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E")}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.tags{display:flex;flex-wrap:wrap;gap:10px}
.tag{display:inline-block;padding:8px 10px;border:1px solid currentColor;border-radius:var(--rs);font-size:var(--t-xs);line-height:12.35px;text-decoration:none}
a.tag{position:relative}
a.tag::after{content:"";position:absolute;inset:-7px 0}
a.tag:hover{background:var(--white)}

/* Barre de navigation (collée en haut, effet verre) */
.nav{--np:min(24px,var(--g) - 6px);position:sticky;top:10px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1488px,100% - 2*var(--g) + 2*var(--np));margin:10px auto 0;padding:20px var(--np);border-radius:var(--r);background:rgba(247,247,247,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.nav-logo{display:block;flex:none;border-radius:2px}
.nav-logo img{width:143px;height:32px}
.nav-main,.foot-top nav{display:flex;align-items:center;gap:32px}
.nav-main ul,.foot-top ul{display:flex;gap:32px;list-style:none;padding:0}
@media (max-width:80em){.nav-main,.nav-main ul{gap:20px;white-space:nowrap}}
.nav-link{font-size:var(--t-s);line-height:1;text-decoration:none;padding:6px 0;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .25s}
.nav-link:hover,.nav-link[aria-current]{background-size:100% 1px}
.nav-mob{display:none;position:relative}
.nav-mob summary{display:flex;align-items:center;min-height:44px;list-style:none;cursor:pointer;font-size:var(--t-s);line-height:13.3px;padding:10px 12px;border:1px solid;border-radius:var(--rs)}
.nav-mob summary::-webkit-details-marker{display:none}
.nav-mob[open] summary{background:var(--black);color:var(--white)}
.nav-mob nav{position:absolute;right:0;top:calc(100% + 18px);width:min(320px,calc(100vw - 32px));padding:24px;border-radius:var(--r);background:var(--white);box-shadow:0 12px 40px rgba(0,0,0,.12);max-height:calc(100svh - 90px);overflow-y:auto;overscroll-behavior:contain;display:grid;gap:24px;justify-items:start}
.nav-mob ul{display:grid;gap:18px;list-style:none;padding:0}

/* En-tête d'accueil : grand bloc arrondi, image ou vidéo, titre blanc */
.hero{position:relative;display:flex;align-items:flex-end;height:clamp(min(520px,100svh - 96px),min(100svh - 95px,52vw),1100px);margin-top:1px;border-radius:var(--r);overflow:hidden;background:#222;color:var(--white);isolation:isolate}
.hero picture,.hero video{position:absolute;inset:0;z-index:-2}
.hero img,.hero video{width:100%;height:100%;object-fit:cover}
.hero video{opacity:0;transition:opacity .8s}
.hero video.on{opacity:1}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,.1) 55%,rgba(0,0,0,0))}
.hero-in{padding-bottom:clamp(40px,5.2vw,100px)}
.hero h1{max-width:1440px;text-shadow:0 0 120px rgba(0,0,0,.8)}
.hero-noimg{height:auto;min-height:0;padding-top:clamp(120px,20vw,360px)}

/* Intro accueil */
.intro{display:flex;flex-direction:column;align-items:flex-start;gap:48px}

/* Cartes réalisation (projet-item) : image, voile 20 % + dégradé, tags en haut, nom en bas */
.card{position:relative;aspect-ratio:472/394;border-radius:var(--r);overflow:hidden;background:#cfcfcf;color:var(--white);isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;padding:12px}
.card-sq{aspect-ratio:1}
.card picture{position:absolute;inset:0;z-index:-2}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 50%,rgba(0,0,0,.6)),var(--shade)}
.card-noimg{background:#1e1e1e url(../img/logo-blanc.svg) center/38% auto no-repeat}
.card-noimg::after{background:linear-gradient(rgba(30,30,30,.8),rgba(30,30,30,.8)),linear-gradient(0deg,rgba(0,0,0,.5),transparent 45%)}
.card-tags{display:flex;flex-wrap:wrap;gap:5px}
.card-t{margin-top:auto;padding:12px;font:700 var(--t-4)/1.05 var(--sans);letter-spacing:0}
.card-t a{text-decoration:none}
.card-t a::before{content:"";position:absolute;inset:0;z-index:1}
.card:hover img,.card:focus-within img{transform:scale(1.07)}
.card:focus-within{outline:2px solid var(--black);outline-offset:3px}
.card a:focus-visible{outline:0}

/* Pôles de services (accueil) : carte blanche, image révélée au survol */
.pole{position:relative;aspect-ratio:472/600;display:flex;flex-direction:column;justify-content:flex-end;gap:72px;padding:24px;border-radius:var(--r);background:var(--white);overflow:hidden;isolation:isolate}
.pole picture{position:absolute;inset:0;z-index:-2;opacity:0;transition:opacity .45s}
.pole img{width:100%;height:100%;object-fit:cover}
.pole-img::after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .45s;background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,0) 40%,rgba(0,0,0,.55)),var(--shade)}
.pole-tags{display:flex;flex-wrap:wrap;gap:10px}
.pole{container-type:inline-size;--fs-max:14.3cqi}
/* Dernières réalisations : taille des pôles */
[aria-labelledby=t-latest] .card{aspect-ratio:472/600}
.pole .t-2{font-size:min(var(--t-2),13.59cqi)}
.pole-bot{display:grid;gap:48px}
.pole .btn,.pole .tag{transition:color .45s,background-color .2s}
.pole-img:hover,.pole-img:focus-within{color:var(--white)}
.pole-img:hover picture,.pole-img:hover::after,.pole-img:focus-within picture,.pole-img:focus-within::after{opacity:1}
.pole-img:hover .btn,.pole-img:focus-within .btn{color:var(--white)}
.pole-img .btn:hover,.pole-img .btn:focus-visible{background:var(--black)}

/* Bandeau partenaires défilant */
.partners h2{margin-bottom:40px}
.marquee{margin-inline:calc(50% - 50vw);background:var(--white);overflow:hidden;height:216px;display:flex;align-items:center}
.marquee-track{display:flex;width:max-content;animation:defile 50s linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
.marquee li{flex:none;width:310px;display:flex;justify-content:center}
.marquee a{display:block}
.marquee img{width:290px;height:194px;object-fit:contain}
.rev{margin-top:-36px}.rev .marquee-track{animation-direction:reverse}@keyframes defile{to{transform:translateX(-50%)}}

/* Bloc « Concrétisons votre projet ! » */
.cta{display:grid;gap:60px;padding:48px;border-radius:var(--r);background:var(--white)}
.cta-head{display:grid;grid-template-columns:605fr 691fr;gap:48px;align-items:start}
.cta-head p{max-width:691px}
.cta-head .t-disp{max-width:8em}
.cta-form,.f-grid,.f-col{display:grid;gap:12px}
.field{display:flex;flex-wrap:wrap;border-radius:var(--r);background:var(--bg)}
.field:focus-within{outline:2px solid var(--black);outline-offset:2px}
.field input,.field textarea,.field select{flex:1;min-width:0;border:0;padding:12px 16px;background:transparent;font:400 var(--t-s)/1.25 var(--sans);letter-spacing:0;color:var(--black);outline:0}
.field ::placeholder{color:var(--muted);opacity:1;text-transform:uppercase;font-size:var(--t-xs)}
.field textarea{min-height:140px;resize:vertical}
.field select{flex:none;width:calc(5ch + 1.5em + 46px);padding-right:30px;font-family:var(--mono);-webkit-appearance:none;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") right 12px center/10px no-repeat;cursor:pointer}
.field-tel input{padding-left:6px}
.field-err{box-shadow:inset 0 0 0 2px #b00020}
.f-err{flex-basis:100%;padding:0 16px 10px;color:#b00020;font-size:var(--t-xs)}
.cta-form .btn{justify-content:center;width:50%;min-height:44px;border-radius:var(--r)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{padding:16px;border-radius:var(--rs);background:#fff3cd}
.cta-done{justify-items:start}
small{font-size:var(--t-s)}

/* Deux colonnes : titre à gauche, texte à droite (projet, services) */
.split{display:grid;grid-template-columns:minmax(0,621fr) minmax(0,586fr);column-gap:clamp(24px,10.4vw,200px);row-gap:60px;align-items:end}
.split-l{display:grid;gap:48px;justify-items:start}
.split-r{display:grid;gap:10px}
.facts{grid-column:2;border-bottom:1px solid}
.facts div{display:flex;gap:10px;padding:6px;border:1px solid;border-bottom:0}
.facts dt::after{content:" :"}
.facts dd{font-weight:600}

/* Galerie projet : grande image puis rangées de 3 et de 2 */
.gal{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap);margin-top:calc(var(--hd) - var(--sec))}
.gal li{grid-column:span 6;aspect-ratio:1440/501;border-radius:var(--rs);overflow:hidden;background:var(--line)}
.gal .gal-lead{aspect-ratio:1440/600}
.gal .g3{grid-column:span 2;aspect-ratio:472/501}
.gal .g2{grid-column:span 3;aspect-ratio:714/501}
.gal picture,.svc-lead picture,.about-lead picture,.contact-map picture{height:100%}.map-pin{position:relative}
.gal img,.svc-lead img,.about-lead img,.contact-map img,.blk img{width:100%;height:100%;object-fit:cover}

/* Services : pôle = en-tête 2 colonnes + grande image + blocs image/texte */
.svc{display:grid;gap:var(--hd)}
.svc-gal,.about-gal{display:grid;gap:var(--gap)}
.svc-lead{aspect-ratio:1440/509;border-radius:var(--rs);overflow:hidden}
.sec-img{margin-top:calc(var(--hd) - var(--sec))}
.blks{row-gap:40px}
.blk{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-content:start}
.blk picture{aspect-ratio:472/400;border-radius:var(--rs);overflow:hidden}
.grid-2 .blk picture{aspect-ratio:714/380}
.blk-t{font:700 var(--t-b)/1.2 var(--sans);letter-spacing:-.02em}
.blk-t a{text-decoration:none}
.blk-t a:hover{text-decoration:underline}

/* Accordéon <details> (Services, FAQ) ; Services : services.css */
.blk-t+p{color:var(--muted)}
.acc{border-top:1px solid}
.acc-i{border-bottom:1px solid}
.acc-i summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:clamp(16px,1.6vw,28px) 0;cursor:pointer;list-style:none}
.acc-i summary::-webkit-details-marker{display:none}
.acc-i summary::after{content:"";flex:none;width:18px;height:18px;background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 100% no-repeat;transition:transform .2s}
.acc-i[open]>summary::after{transform:rotate(45deg)}
.acc-i summary:hover .acc-t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.acc-t{font:600 var(--t-4)/1.1 var(--sans);letter-spacing:0}
.acc-p{display:grid;grid-template-columns:minmax(0,586fr) minmax(0,560fr);gap:24px clamp(24px,10.4vw,200px);padding:0 0 clamp(24px,2.5vw,48px);align-items:start}
.acc-p-noimg{grid-template-columns:minmax(0,586fr)}
.acc-p picture{aspect-ratio:3/2;border-radius:var(--rs);overflow:hidden;background:var(--line)}
.acc-p img{width:100%;height:100%;object-fit:cover}
@media (max-width:63.99em){.acc-p{grid-template-columns:1fr}h1,h2,h3{text-wrap:balance}}
@media (min-width:48em){.grid.ab-atouts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:47.99em){.grid.ab-atouts{grid-template-columns:1fr}}

/* À propos */
.about-lead{aspect-ratio:1440/500;border-radius:var(--rs);overflow:hidden}
.vals .val{display:flex;flex-direction:column;gap:72px;padding:24px;border-radius:var(--rs);background:var(--white)}
.val-ico,.val picture{width:40px;height:40px}
.val img{width:40px;height:40px;object-fit:contain}
.val div{display:grid;gap:24px}

/* Contact */
.contact-map{display:grid;gap:24px}
.contact-map>picture,.map-pin{aspect-ratio:1440/599;border-radius:var(--rs);overflow:hidden}
.contact-info{display:flex;flex-wrap:wrap;gap:24px 60px}
.contact-info address{display:flex;flex-wrap:wrap;gap:24px 60px;font-style:normal}
.contact-info a{text-decoration:none}
.contact-info a:hover{text-decoration:underline}

/* Filtres des réalisations (liens) */
.sec-list{display:grid;gap:48px}
.filters{display:flex;flex-wrap:wrap;gap:10px}
.filters a[aria-current]{background:var(--line);border-color:var(--line)}
.page-prose{max-width:860px}
.page-prose h1{margin-bottom:48px}

/* Pied de page noir, « révélé » sous le contenu au défilement (CSS seul) */
.foot{margin:0 10px 10px;border-radius:var(--r);background:var(--black);color:var(--bg);padding:48px 0}
.foot-in{display:flex;flex-direction:column;justify-content:space-between;gap:80px;min-height:554px}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px 60px;margin-top:auto}
.foot address{display:flex;flex-wrap:wrap;gap:24px 60px;font-style:normal}
.foot address a{text-decoration:none;display:inline-block;padding:2px 0}
.foot address a:hover{text-decoration:underline}
.socials{display:flex;gap:20px;list-style:none;padding:0}
.socials a{display:block;color:var(--white)}
.socials svg{display:block;fill:currentColor}
.foot-legal{font:400 var(--t-xs)/1.4 var(--mono);letter-spacing:0;color:#b5b5b5}
.foot-legal a{color:inherit}
@media (min-width:64em) and (min-height:720px) and (prefers-reduced-motion:no-preference){
.foot{position:sticky;bottom:0;z-index:0}
}

/* Tablette et tactile : cibles ≥ 44 px (marges négatives : visuel inchangé) */
@media (max-width:63.99em),(pointer:coarse){
.btn{min-height:44px;line-height:1.15}
.nav-link{padding:13px 0;margin-block:-7px;background-position:0 calc(100% - 7px)}
.nav-logo,.crumbs a,.foot address a,.foot-legal a{display:inline-block;padding-block:13px;margin-block:-13px}
.socials{gap:2px;margin:-9px}
.socials a{padding:9px}
}
/* Téléphones : césure des grands titres (mots ≥ 10 lettres), coupure forcée en dernier recours */
@media (max-width:30em){.t-hero,.t-1,.t-2,.t-disp,.t-lead p{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4;overflow-wrap:anywhere}}
@media (max-width:63.99em){
.nav{padding-block:16px}
.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.nav-main{display:none}
.nav-mob{display:block}
.split,.cta-head{grid-template-columns:1fr}
.facts{grid-column:1}
.lead-col{margin-left:0}
.pole,[aria-labelledby=t-latest] .card{aspect-ratio:auto;min-height:440px}
.poles>li:last-child:nth-child(odd){grid-column:1/-1;min-height:360px}
.gal .g3{grid-column:span 3}
.gal .g3:last-child:nth-child(even){grid-column:span 6}
.foot-in{min-height:0}
.foot-top nav{flex-wrap:wrap}
.foot-top ul{flex-wrap:wrap;gap:12px 24px}
}
/* Mobile */
@media (max-width:39.99em){
.grid,.grid-2{grid-template-columns:1fr}
.cta-form .btn{width:100%}
.page{padding:0 6px}
.foot{margin:0 6px 6px}
.nav{top:6px;margin-top:6px;padding-block:10px}
.hero{height:clamp(min(440px,100svh - 70px),min(100svh - 82px,150vw),760px)}
.cta{padding:24px 16px;gap:40px}
.pole{gap:48px}
.pole,[aria-labelledby=t-latest] .card{aspect-ratio:4/3;min-height:min-content}
.gal li,.gal .g3,.gal .g2{grid-column:span 6;aspect-ratio:4/3}
.gal .gal-lead{aspect-ratio:4/3}
.svc-lead,.about-lead{aspect-ratio:4/3}
.contact-map>picture,.map-pin{aspect-ratio:4/3}
.foot-top{flex-direction:column;align-items:flex-start}
.foot-top nav{flex-direction:column;align-items:flex-start;gap:24px}
.marquee{height:156px}
.marquee li{width:232px}
.marquee img{width:206px;height:138px}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
.marquee{height:auto;padding:16px 0}
.marquee-track{width:auto;flex-wrap:wrap;justify-content:center}
.marquee [aria-hidden]{display:none}
.card:hover img,.card:focus-within img{transform:none}
}
@media (hover:none){.card img{transition:none}}
@media print{.nav,.foot,.cta,.marquee,.skip{display:none}.page{padding:0}}
.card-sum{padding:0 12px 12px;margin-top:-10px;font-size:var(--t-xs);line-height:1.3}
.proj-sum{margin-top:-32px;font:400 var(--t-4)/1.2 var(--sans);color:var(--muted)}
/* À propos (structure Wix, styles Figma) — module about, gabarit page-about.php */
.ab-mos{display:grid;gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}
.ab-mos>div{position:relative;aspect-ratio:3/2;border-radius:var(--rs);overflow:hidden;background:var(--line)}
.ab-mos .ab-big{grid-column:1/-1;aspect-ratio:4/3}
.ab-mos picture,.tm-ph picture,.tm-ph video{position:absolute;inset:0}
.ab-mos img,.ab-at img,.tm-ph img,.tm-ph video{width:100%;height:100%;object-fit:cover}
.ab-in{display:grid;gap:var(--hd)}
.ab-intro{display:grid;gap:12px;max-width:62ch}.ab-intro h2,.ab-at h3{font-weight:700}
.ab-atouts{row-gap:40px}.ab-at{display:grid;gap:12px;align-content:start}.ab-at p,.ab-intro p{margin:0}
.ab-at picture{display:block;aspect-ratio:16/9;border-radius:var(--rs);overflow:hidden}
.ab-team{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
.tm-ph{position:relative;aspect-ratio:2/3;margin-bottom:16px;border-radius:var(--rs);overflow:hidden;background:var(--line)}
.tm-ph video{opacity:0;transition:opacity .4s}
.tm-ph video.on{opacity:1}
.tm-ini{position:absolute;inset:0;display:grid;place-items:center;font:600 var(--t-3)/1 var(--sans);color:var(--muted)}
.tm-n{font:700 var(--t-b)/1.2 var(--sans);text-transform:uppercase;letter-spacing:0}
.tm-r{margin-top:6px;font:400 var(--t-xs)/1.3 var(--mono);text-transform:uppercase;letter-spacing:0;color:var(--muted)}
.tm-x{margin-top:4px;font-size:var(--t-xs);line-height:1.3}
@media (min-width:40em){
.ab-mos .ab-big{aspect-ratio:16/9}
.ab-team{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:64em){
.ab-mos{grid-template-columns:repeat(4,minmax(0,1fr))}
.ab-mos .ab-big{aspect-ratio:1440/500}
.ab-mos-5{grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));aspect-ratio:1440/620}
.ab-mos-5>div,.ab-mos-5 .ab-big{aspect-ratio:auto}
.ab-mos-5 .ab-big{grid-column:auto;grid-row:span 2}
.ab-team{grid-template-columns:repeat(4,minmax(0,1fr))}
}
