/* Galerie « Nos chantiers en cours » (accueil et /nos-chantiers/) */
.chx{background:#fff;padding:110px 0 96px;overflow:hidden;scroll-margin-top:74px}
.chx[hidden]{display:none}
.chx-head{max-width:1200px;margin:0 auto 48px;padding:0 40px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.chx-h{font-size:clamp(32px,4.6vw,58px);font-weight:700;letter-spacing:-.02em;line-height:1.06;color:var(--dark)}
.chx-sub{font-size:clamp(16px,1.6vw,20px);font-weight:400;line-height:1.5;color:#6e6e73;max-width:560px;margin-top:16px}
.chx-all{font-size:16px;font-weight:500;color:var(--dark-mid);white-space:nowrap;padding-bottom:6px}
.chx-all:hover{text-decoration:underline}
.chx-track{--chx-pad:max(40px,calc((100vw - 1200px) / 2 + 40px));display:flex;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--chx-pad);padding:4px var(--chx-pad) 8px;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chx-track::-webkit-scrollbar{display:none}
.chx-track:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.chx-card{flex:0 0 auto;width:min(78vw,480px);margin:0;scroll-snap-align:start}
.chx-photo{display:block;width:100%;aspect-ratio:4/5;padding:0;border:0;border-radius:26px;overflow:hidden;background:#f5f5f7;cursor:zoom-in}
.chx-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.chx-photo:hover img{transform:scale(1.03)}
.chx-photo:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.chx-cap{padding:20px 6px 0}
.chx-cap strong{display:block;font-size:19px;font-weight:600;color:#1d1d1f;line-height:1.3}
.chx-cap span{display:block;font-size:14px;color:#6e6e73;margin-top:3px}
.chx-cap p{font-size:14px;line-height:1.6;color:#424245;margin-top:8px}
.chx-nav{max-width:1200px;margin:30px auto 0;padding:0 40px;display:flex;justify-content:flex-end;gap:14px}
.chx-btn{width:46px;height:46px;border:0;border-radius:50%;background:#e8e8ed;color:#1d1d1f;font-family:var(--font);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,opacity .2s}
.chx-btn:hover{background:#dcdce1}
.chx-btn:disabled{opacity:.35;cursor:default}
/* Page dédiée : grille */
.chx-grid{max-width:1200px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:56px 28px}
.chx-grid .chx-card{width:auto}
.chx-grid .chx-photo{aspect-ratio:4/3}
.chx-empty{max-width:1200px;margin:0 auto;padding:0 40px;font-size:17px;color:#6e6e73}
/* Agrandissement */
.chx-lb{border:0;padding:0;margin:auto;width:100vw;height:100vh;max-width:none;max-height:none;background:transparent;color:#f5f5f7;font-family:var(--font)}
.chx-lb::backdrop{background:rgba(0,0,0,.92)}
.chx-lb[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;animation:chxIn .35s ease}
.chx-lb img{max-width:92vw;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:14px}
.chx-lb p{font-size:15px;max-width:720px;text-align:center;padding:0 22px;color:rgba(245,245,247,.85)}
.chx-lb-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;cursor:pointer}
@keyframes chxIn{from{opacity:0}to{opacity:1}}
@media(max-width:600px){
  .chx{padding:72px 0 64px}
  .chx-head{padding:0 22px;margin-bottom:32px}
  .chx-track{--chx-pad:22px;gap:14px}
  .chx-card{width:84vw}
  .chx-photo{border-radius:20px}
  .chx-nav{padding:0 22px}
  .chx-grid{padding:0 22px;grid-template-columns:1fr;gap:40px}
  .chx-empty{padding:0 22px}
}
@media(prefers-reduced-motion:reduce){
  .chx-track{scroll-behavior:auto}
  .chx-photo img{transition:none}
  .chx-lb[open]{animation:none}
}
