*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#202020;font:14px/1.5 Arial,Helvetica,sans-serif;font-weight:400}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:hover,button:hover{color:#777}a:focus-visible,button:focus-visible{outline:1px solid #222;outline-offset:6px}.skip{position:fixed;top:-100px;background:#fff;padding:12px;z-index:10}.skip:focus{top:0}header{width:225px;position:fixed;inset:0 auto 0 0;padding:37px 36px;display:flex;flex-direction:column;align-items:flex-start}.brand{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:43px;font-weight:500;letter-spacing:-4px}.brand span{font-size:11px;letter-spacing:2px;margin-top:12px}nav{display:flex;flex-direction:column;gap:15px;margin-top:75px;font-size:13px}nav a{color:#818181}nav a[aria-current]{color:#202020}nav a[aria-current]:before{content:'—';position:absolute;left:17px}.aside-note{margin-top:auto;color:#888;font-size:11px;line-height:1.6}main{margin-left:225px;padding:38px 38px 100px 12px;min-height:85vh}.page-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:38px;height:21px;font-size:12px}.page-top h1{font-size:12px;font-weight:400;margin:0}.view-options{display:flex;gap:22px}.view-options button{padding:0;border:0;background:none;color:#888;font-size:12px}.view-options button[aria-pressed=true]{color:#222}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:27px;row-gap:45px}.project{display:block;min-width:0}.project img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(0);transition:filter .3s ease}@media (hover:hover) and (pointer:fine){.project:hover img{filter:grayscale(1)}}.project:focus-visible img{filter:grayscale(1)}.caption{margin-top:10px;font-size:11px;line-height:1.5;display:flex;flex-direction:column;gap:1px}.caption span+span{color:#858585}.projects.index{display:block}.index .project{display:block;padding:19px 0;border-top:1px solid #e6e6e6}.index img{display:none}.index .caption{display:grid;grid-template-columns:1.5fr 1fr;margin:0;font-size:14px}.project-title{font-size:23px;line-height:1.25;font-weight:400;margin:0 0 30px}.project-gallery{display:flex;flex-direction:column;gap:24px}.photo{padding:0;border:0;background:none;display:block}.photo:first-child{grid-column:1/-1}.photo img{display:block;width:100%;height:auto}.photo:first-child img{max-height:none}.project-info{display:grid;grid-template-columns:1fr 2fr;gap:48px;margin:45px 0 0}.project-info h2{font-size:14px;font-weight:400;margin:0}.project-info p{margin:0 0 16px;max-width:55ch}.muted{color:#858585}.source,.credit{font-size:11px}.credit{color:#888;margin-top:18px!important}.source{border-bottom:1px solid #ccc}.editorial{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;padding:22px 0 65px}.editorial h2,.contact-layout h2{font-size:29px;line-height:1.3;font-weight:400;letter-spacing:-.8px;margin:0}.editorial-copy{max-width:48ch;font-size:15px;line-height:1.75}.editorial-copy p{margin:0 0 20px}.facts{display:flex;flex-direction:column;gap:5px;font-size:11px;margin-top:36px;color:#888}.agency-image{margin:0;max-width:850px}.agency-image img{display:block;width:100%}.agency-image figcaption{font-size:11px;color:#888;margin-top:10px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-top:38px}.contact-layout address{font-style:normal;font-size:20px;line-height:1.6;margin-bottom:36px}.contact-layout p{margin:0 0 28px}.social{display:flex;gap:22px;font-size:12px;margin-top:60px}.text-link{border-bottom:1px solid #bbb;padding-bottom:4px}.news{max-width:1050px}.news img{width:100%;max-height:60vh;object-fit:cover;display:block}.news-text{max-width:620px;padding-top:30px}.news-text h2{font-weight:400;font-size:26px;line-height:1.3;margin:20px 0}.news-text p{line-height:1.7}.news-text .text-link{display:inline-block;margin-top:18px}footer{margin-left:237px;padding:22px 38px 26px 0;display:flex;justify-content:space-between;gap:20px;color:#888;font-size:10px;border-top:1px solid #eee}dialog{border:0;padding:50px 25px 25px;max-width:96vw;max-height:96vh;background:#fff}dialog::backdrop{background:#fffE}dialog img{max-width:90vw;max-height:82vh;display:block}.close{position:absolute;right:25px;top:16px;background:none;border:0;font-size:12px}@media(min-width:1600px){.projects{gap:55px 40px}header{width:255px}main{margin-left:255px}footer{margin-left:267px}}@media(max-width:1050px){header{width:190px;padding:30px 27px}main{margin-left:190px;padding:30px 26px 70px 10px}.projects{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial{gap:30px}.editorial h2{font-size:24px}footer{margin-left:200px}}@media(max-width:650px){header{position:static;width:auto;padding:24px 21px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px}.brand strong{font-size:33px}.brand span{font-size:8px;letter-spacing:1.5px;margin-top:9px}nav{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;font-size:12px}nav a[aria-current]:before{display:none}nav a[aria-current]{text-decoration:underline;text-underline-offset:4px}.aside-note{display:none}main{margin:0;padding:24px 21px 65px}.page-top{margin-bottom:25px}.projects{gap:28px 15px}.caption{font-size:10px}.project img{aspect-ratio:1.2}.project-title{font-size:22px}.project-gallery{grid-template-columns:1fr;gap:16px}.project-info,.editorial,.contact-layout{grid-template-columns:1fr;gap:25px}.editorial{padding-top:0}.editorial-copy{font-size:14px}.contact-layout{padding-top:15px}.contact-layout address{font-size:18px}.social{flex-wrap:wrap}.news-text h2{font-size:23px}footer{margin:0 21px;padding:20px 0;flex-wrap:wrap;font-size:9px}footer span:nth-child(2){order:3;width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.project[hidden]{display:none!important}.programme-filters{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:-10px 0 34px}.programme-filters button{border:0;background:none;padding:0;font-size:12px;color:#818181}.programme-filters button[aria-pressed="true"]{color:#202020;text-decoration:underline;text-underline-offset:5px}.project-count{margin-left:auto;font-size:11px;color:#888}@media(max-width:650px){.programme-filters{gap:18px;margin:0 0 25px}.programme-filters button{font-size:11px}.project-count{width:100%;margin-left:0}}

.gallery-item{margin:0}.project-gallery .photo{width:100%;aspect-ratio:3/2;overflow:hidden}.project-gallery .photo img{width:100%;height:100%;object-fit:cover}.project-gallery .photo.portrait img{object-fit:contain}.gallery-item figcaption{font-size:11px;color:#888;margin-top:9px}.project-facts{margin:30px 0;font-size:12px}.project-facts>div{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:11px 0;border-top:1px solid #eee}.project-facts dt{color:#888}.project-facts dd{margin:0}@media(max-width:650px){.project-facts>div{grid-template-columns:105px 1fr;gap:12px}.gallery-item figcaption{font-size:10px}}

.brand{width:155px;height:76px;overflow:hidden;position:relative}.brand img{position:absolute;width:214px;height:auto;max-width:none;left:-27px;top:-31px}.project-gallery .photo{position:relative}.project-gallery .photo img{position:absolute;inset:0}@media(max-width:650px){.brand{width:130px;height:64px;flex-shrink:0}.brand img{width:180px;left:-23px;top:-26px}}

.editorial-copy h3{font-size:15px;font-weight:400;margin:32px 0 12px;line-height:1.5}.editorial-copy h3:first-child{margin-top:0}

.footer-social{display:flex;gap:20px;flex-wrap:wrap}.index .caption{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 155px;gap:20px}.index .delivery{text-align:right}.caption .delivery{font-size:10px;color:#858585}@media(max-width:800px){footer{flex-wrap:wrap}.footer-social{width:100%}.index .caption{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:4px 15px}.index .delivery{grid-column:1/-1;text-align:left}}@media(max-width:650px){.page-top{height:auto;gap:15px}.page-top>span{text-align:right;max-width:65%}}

.caption .recognition-badge{font-size:10px;line-height:1.5;color:#535d4d;margin-top:6px}.index .recognition-badge{grid-column:1/-1;margin-top:0}.recognition-intro{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 25px;background:#f3f4f0;border-left:2px solid #7b876d;padding:15px 18px;margin:-8px 0 30px;font-size:12px;color:#424d3a}.recognition-intro span{font-size:11px;color:#727a6d}.recognition{border-top:1px solid #d9ded4;margin:30px 0;padding-top:22px}.recognition h2{font-size:18px;font-weight:400;margin-bottom:22px}.recognition h3{font-size:12px;font-weight:400;color:#727a6d;margin:22px 0 8px}.recognition ul{padding-left:17px;margin:0}.recognition li{margin:0 0 12px;font-size:13px;line-height:1.65}.recognition li .source{display:inline-block;margin-top:4px}.competition-intro{max-width:620px;padding:45px 0 90px}.competition-intro h2{font-size:30px;font-weight:400;line-height:1.3;margin:15px 0 25px}.competition-intro p{line-height:1.8}.competition-intro .text-link{display:inline-block;margin-top:25px}@media(max-width:650px){.recognition-intro{font-size:11px;padding:12px 14px}.recognition h2{font-size:17px}.index .recognition-badge{font-size:10px}.competition-intro{padding-top:10px}.competition-intro h2{font-size:25px}}

.project-status{font-size:12px;color:#6b6558;border-left:2px solid #b7ad98;background:#f6f4ef;padding:14px 17px;margin:-8px 0 30px}.caption .competition-status{font-size:10px;color:#6b6558;margin-top:6px}.competition-lead{font-size:13px;color:#858585;margin:-8px 0 35px}

.result-filters{display:flex;gap:22px;margin:-10px 0 32px;padding:14px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.result-filters[hidden],.empty-projects[hidden]{display:none}.result-filters button{border:0;background:none;padding:0;font-size:12px;color:#818181}.result-filters button[aria-pressed=true]{color:#202020;text-decoration:underline;text-underline-offset:5px}.caption .contest-label{font-size:10px;color:#596250;margin-top:5px}.index .contest-label,.index .competition-status{grid-column:1/-1}.project-title+.contest-label{display:block;font-size:12px;color:#596250;margin:-12px 0 26px}.empty-projects{color:#858585;font-size:13px;padding:35px 0}.caption .competition-status{font-size:10px;color:#6b6558;margin-top:5px}@media(max-width:650px){.result-filters{gap:18px;flex-wrap:wrap}.result-filters button{font-size:11px}}

.news-feed{display:flex;flex-direction:column;gap:90px}.news-figure{margin:0}.news-figure figcaption{font-size:11px;color:#888;margin-top:10px}.news-links{display:flex;flex-wrap:wrap;gap:18px}.news-figure img{max-height:none;height:auto;object-fit:contain}

.project-cover{position:relative}.cover-credit{position:absolute;right:5px;bottom:5px;padding:2px 5px;background:rgba(0,0,0,.55);color:#fff;font-size:9px;line-height:1.4;pointer-events:none}.index .project-cover{display:none}.index .caption{grid-template-columns:2fr 1fr}.caption .project-name{color:#202020}.project-info .contest-label{display:block;margin:0 0 12px}

img.monochrome{filter:grayscale(1)}

/* Actualité Valeurs d’exemples : préserver le cadrage des quatre visuels. */
.news .award-hero{width:100%;height:auto;max-height:none;object-fit:contain}.news .award-logo{display:block;width:min(260px,100%);height:auto;max-height:none;object-fit:contain;margin:0 0 28px}.award-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}.news .award-gallery img{width:100%;height:auto;max-height:none;object-fit:contain;align-self:start}@media(max-width:650px){.award-gallery{grid-template-columns:1fr;gap:20px}.news .award-logo{width:210px}}

/* Seynod-Balmont : couverture intégrale, sans coupe latérale. */


/* Actualité IFSI : une réalisation, avec le logo discret en surimpression. */
.award-cover{display:block;position:relative}.news .award-cover .award-logo{position:absolute;top:18px;right:18px;width:135px;max-width:20%;height:auto;margin:0;background:#fff;padding:7px;box-shadow:0 1px 6px #0002}@media(max-width:650px){.news .award-cover .award-logo{top:10px;right:10px;width:95px;padding:4px}}

/* Accueil : un cadre 4/3 identique pour chaque projet, sur tous les écrans. */
.projects .project-cover{aspect-ratio:4/3;overflow:hidden}.projects .project-cover img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}

/* Index limité aux titres ; perspectives du pôle légèrement recadrées. */
.project-gallery .photo.crop-right,.project-gallery .photo.crop-left{aspect-ratio:16/9}.project-gallery .photo.crop-right img{object-fit:cover;object-position:left center}.project-gallery .photo.crop-left img{object-fit:cover;object-position:right center}

/* Index : titre, date qualifiée, maîtrise d’ouvrage et montant HT. */
.index-columns,.caption .index-client,.caption .index-cost{display:none}
.projects.index .index-columns,.projects.index .caption{display:grid;grid-template-columns:minmax(0,2fr) 130px minmax(0,1.25fr) 125px;gap:20px;align-items:baseline}
.projects.index .index-columns{font-size:11px;color:#858585;padding:0 0 16px}
.projects.index .caption>.project-name,.projects.index .caption>.delivery,.projects.index .caption>.index-client,.projects.index .caption>.index-cost{display:block;grid-column:auto;margin:0}
.projects.index .caption>.delivery{font-size:11px;text-align:left}
.projects.index .caption>.index-client,.projects.index .caption>.index-cost{font-size:12px;color:#666}
.projects.index .caption>.index-cost,.projects.index .index-columns>span:last-child{text-align:right}
.index-cost small{display:block;font-size:10px;color:#888;margin-top:3px}
.projects.index .recognition-badge{display:none}
@media(max-width:1000px){.projects.index .index-columns,.projects.index .caption{grid-template-columns:minmax(0,1.6fr) 100px minmax(0,1fr) 100px;gap:14px}}
@media(max-width:650px){.projects.index .index-columns{display:none}.projects.index .caption{grid-template-columns:minmax(0,1fr) auto;gap:6px 16px}.projects.index .caption>.project-name{grid-column:1/-1;font-size:14px}.projects.index .caption>.delivery{grid-column:1;grid-row:2}.projects.index .caption>.index-cost{grid-column:2;grid-row:2/4}.projects.index .caption>.index-client{grid-column:1;grid-row:3;font-size:11px}}

/* Réseaux : liens lisibles et icônes monochromes. */
.footer-social{gap:16px 24px;align-items:center}
.footer-social a,.social a{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#202020;min-height:32px}
.social-icon{display:block;width:22px;height:22px;flex:0 0 22px}
.footer-social a:hover,.social a:hover{text-decoration:underline;text-underline-offset:4px}
footer{align-items:center}
@media(max-width:650px){.footer-social{gap:12px 20px}.footer-social a,.social a{font-size:14px}}

.project-gallery .photo.crop-bottom img{object-position:center bottom}

.news .forum-cover img{width:100%;height:auto;max-height:none;object-fit:contain}.forum-cover{display:block;max-width:720px}

.home-intro{margin-top:70px;padding-top:28px;border-top:1px solid #eee;max-width:780px}.home-intro h2{font-size:18px;font-weight:400}.home-intro p{font-size:14px;line-height:1.8;color:#666}.home-intro .text-link{font-size:12px}

/* Index : localisation et département, titres cliquables identifiables. */
.caption .index-location,.caption .index-project-title{display:none}
.projects.index .grid-project-title{display:none}
.projects.index .index-project-title{display:inline;color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.projects.index .index-columns,.projects.index .caption{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) 92px minmax(0,1.2fr) 108px;gap:16px}
.projects.index .caption>.index-location{display:block;margin:0;font-size:12px;color:#666}
.projects.index .caption>.project-name{font-size:13px}
@media(max-width:1000px) and (min-width:651px){.projects.index .index-columns,.projects.index .caption{grid-template-columns:minmax(0,1.4fr) minmax(0,.95fr) 78px minmax(0,1fr) 90px;gap:10px}.projects.index .caption>.index-client,.projects.index .caption>.index-cost,.projects.index .caption>.index-location{font-size:11px}}
@media(max-width:650px){.projects.index .index-columns{display:none}.projects.index .caption{grid-template-columns:minmax(0,1fr) auto;gap:6px 16px}.projects.index .caption>.project-name{grid-column:1/-1;grid-row:1;font-size:14px}.projects.index .caption>.index-location{grid-column:1;grid-row:2;font-size:11px}.projects.index .caption>.delivery{grid-column:1;grid-row:3}.projects.index .caption>.index-client{grid-column:1;grid-row:4}.projects.index .caption>.index-cost{grid-column:2;grid-row:2/5}}

.index-legend{display:none;font-size:11px;color:#777;margin:-12px 0 26px}.index-view .index-legend{display:block}.projects .reference-row{display:none}.projects.index .reference-row{display:block}.projects.index .reference-row .project-name{color:#555;text-decoration:none}.reference-row .caption>.delivery{display:block}.reference-row{cursor:default}

/* Index : années seules pour les réalisations, dates qualifiées pour les concours. */
.caption>.index-date{display:none}
.projects.index .caption>.grid-date{display:none}
.projects.index .caption>.index-date{display:block}

/* Actualités : largeur commune à tous les visuels, proportions conservées. */
.news>.forum-cover,.news>.award-cover,.news>.news-figure{width:100%;max-width:720px}

/* Index : titre principal et association sur deux lignes distinctes. */
.projects.index .index-project-title{display:block;text-decoration:none}
.projects.index a.project .index-name{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.projects.index .index-association{display:block;margin-top:4px;font-size:11px;line-height:1.5;font-weight:400;color:#777;text-decoration:none}

/* Vignettes compactes dans la première colonne de l’Index. */
.projects.index .index-entry{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center}
.projects.index .caption>.project-name.index-entry{display:grid}
.projects.index .index-thumbnail{display:block;width:120px;height:90px}
.projects.index .index-thumbnail img{display:block;width:120px;height:90px;aspect-ratio:4/3;object-fit:cover;filter:none;transition:none}
.projects.index .index-label{display:block;min-width:0;color:inherit}
.projects.index .index-name{color:inherit}
.projects.index .index-columns>span:first-child{padding-left:134px}
.projects.index .caption{align-items:center}
@media(max-width:1000px) and (min-width:651px){.projects.index .index-entry{grid-template-columns:88px minmax(0,1fr);gap:10px}.projects.index .index-thumbnail,.projects.index .index-thumbnail img{width:88px;height:66px}.projects.index .index-columns>span:first-child{padding-left:98px}}
@media(max-width:650px){.projects.index .index-entry{grid-template-columns:96px minmax(0,1fr);gap:12px}.projects.index .index-thumbnail,.projects.index .index-thumbnail img{width:96px;height:72px}}
