/* ============================================================
   FocusLab — projets.css · règles propres à la page Projets
   Chargé après focuslab.css, scopé sous body.projets.
   Grille évolutive : le premier projet (ordre 1 dans le dashboard)
   prend toute la largeur, les suivants vont par deux. Ajouter un
   projet ne demande rien : la grille absorbe 3, 6, 12 fiches.
   ============================================================ */

body.projets .lbl{font-size:.7rem;letter-spacing:.26em;white-space:nowrap}
body.projets .nav-r a.l{font-size:.7rem;white-space:nowrap}
body.projets .theme-btn{font-size:.62rem;white-space:nowrap}
body.projets .nav-cta{font-size:.64rem;white-space:nowrap;padding:10px 16px}
body.projets .btn{font-size:.72rem;padding:16px 30px;white-space:nowrap}
body.projets #construction-bar .cb-close{white-space:nowrap;font-size:.56rem}
body.projets .h2{font-size:clamp(2.1rem,4.4vw,3.8rem);font-weight:500;letter-spacing:-.03em;line-height:1.02;max-width:18ch;text-wrap:balance}
body.projets .lead{font-size:clamp(1.02rem,1.35vw,1.18rem);line-height:1.65;max-width:52ch;text-wrap:pretty}

/* ── EN-TÊTE : titre à gauche, intro à droite ── */
body.projets .phead{padding:clamp(180px,22vh,230px) 0 0;border-bottom:0;overflow:visible}
body.projets .phead::after{display:none}
body.projets.has-banner .phead{padding-top:clamp(218px,26vh,268px)}
body.projets.has-disclaimer .phead{padding-top:clamp(213px,25vh,263px)}
body.projets.has-banner.has-disclaimer .phead{padding-top:clamp(250px,29vh,300px)}
body.projets .phead .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,6vw,96px);align-items:end}
body.projets .phead .lbl{grid-column:1;grid-row:1;color:var(--o)}
body.projets .phead h1{grid-column:1;grid-row:2;margin-top:22px;font-weight:500;letter-spacing:-.035em;line-height:.96;font-size:clamp(3rem,8vw,7.2rem);max-width:none}
body.projets .phead .lead{grid-column:2;grid-row:2;margin:0 0 6px;max-width:36ch}

/* ── FILTRES : une ligne de texte, le filtre actif souligné ── */
body.projets #realisations{padding-top:clamp(48px,6vw,80px)!important;padding-bottom:clamp(88px,11vw,150px)}
body.projets .pfilters{margin:0 0 clamp(40px,5vw,64px);gap:0 clamp(18px,2.5vw,32px);border-bottom:1px solid var(--line)}
body.projets .pfilters .fi{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:0 0 14px;font-family:var(--label);font-weight:500;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap;transition:color .25s var(--e-out)}
body.projets .pfilters .fi:hover{color:var(--title)}
body.projets .pfilters .fi.active{color:var(--title);border-bottom-color:var(--o)}

/* ── GRILLE : 1 grand + paires, sans boîte, filet sous chaque fiche ── */
body.projets .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,72px) clamp(24px,3vw,40px);margin-top:0}
body.projets .pcard{background:transparent;border:0;overflow:visible;transition:none}
body.projets .pcard:hover{transform:none}
body.projets .pcard:first-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(32px,5vw,72px);align-items:end;padding-bottom:clamp(40px,5vw,72px);border-bottom:1px solid var(--line)}
body.projets .pcard:first-child .pcard-fr{aspect-ratio:16/10}
body.projets .pcard:first-child .pcard-b{padding:0 0 6px}
body.projets .pcard:first-child .pcard-h{font-size:clamp(1.8rem,3.2vw,3rem);max-width:16ch}
body.projets .pcard:first-child .pcard-d{font-size:clamp(1rem,1.3vw,1.15rem);max-width:44ch}
body.projets .pcard-fr{background:var(--surface);aspect-ratio:16/10}
body.projets .pcard-fr img{transition:transform .8s var(--e-out)}
body.projets .pcard:hover .pcard-fr img{transform:scale(1.03)}
body.projets .pcard-st{top:auto;bottom:14px;left:14px;right:auto;font-size:.62rem;letter-spacing:.2em;background:var(--bg);border:0;color:var(--title);padding:8px 12px}
body.projets .pcard-b{padding:20px 0 0}
body.projets .pcard-yr{font-size:.66rem;letter-spacing:.22em;color:var(--o)}
body.projets .pcard-h{font-weight:500;font-size:clamp(1.3rem,1.8vw,1.6rem);letter-spacing:-.02em;line-height:1.15;margin:10px 0 10px;max-width:22ch}
body.projets .pcard-d{font-size:.96rem;color:var(--muted);line-height:1.6;margin-bottom:18px;max-width:46ch;text-wrap:pretty}
body.projets .pchips{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:18px}
body.projets .pcct,body.projets .pctg{background:none;border:0;padding:0;font-family:var(--label);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
body.projets .pcct{color:var(--text)}
body.projets .pctg{color:var(--muted)}
body.projets .pcard-lnk{font-size:.68rem;letter-spacing:.2em;gap:8px}
body.projets .pcard:hover .pcard-lnk{color:var(--title)}
body.projets .pempty{font-size:1rem;color:var(--muted)}

/* ── APPEL FINAL : sans boîte, une grande phrase ── */
body.projets #cta-b{background:transparent;border-top:1px solid var(--line);padding:clamp(88px,11vw,150px) 0}
body.projets .contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0 clamp(40px,6vw,96px);align-items:end;text-align:left;border:0;background:transparent;padding:0;overflow:visible}
body.projets .contact .lbl{grid-column:1/-1;grid-row:1;justify-content:flex-start!important;margin-bottom:22px}
body.projets .contact .h2{grid-column:1;grid-row:2/4;margin:0!important;font-size:clamp(2.6rem,6.6vw,5.8rem);max-width:12ch;line-height:.98}
body.projets .contact .lead{grid-column:2;grid-row:2;margin:0 0 30px!important;max-width:34ch!important}
body.projets .contact .btn{grid-column:2;grid-row:3;justify-self:start}

/* ── FOOTER ── */
body.projets .foot{padding:clamp(56px,7vw,88px) 0 44px}
body.projets .foot-tag{font-size:1.35rem;color:var(--title)}
body.projets .foot-leg{font-size:.62rem;white-space:nowrap;flex-shrink:0}

/* ── Tablette (820px) ── */
@media(max-width:820px){
  body.projets .phead .wrap,body.projets .contact{grid-template-columns:minmax(0,1fr)}
  body.projets .phead .lbl,body.projets .phead h1,body.projets .phead .lead{grid-column:1;grid-row:auto}
  body.projets .phead .lead{margin-top:26px}
  body.projets .contact > *{grid-column:1!important;grid-row:auto!important}
  body.projets .contact .lead{margin:22px 0 28px!important}
  body.projets .pcard:first-child{grid-template-columns:minmax(0,1fr);row-gap:0}
  body.projets .pcard:first-child .pcard-b{padding-top:20px}
  body.projets .pfilters{overflow-x:auto;flex-wrap:nowrap;-ms-overflow-style:none;scrollbar-width:none}
  body.projets .pfilters::-webkit-scrollbar{display:none}
}

/* ── Mobile (760px) ── */
@media(max-width:760px){
  body.projets .phead{padding-top:120px}
  body.projets .phead h1{font-size:clamp(2.6rem,12vw,3.6rem)}
  body.projets .pgrid{grid-template-columns:minmax(0,1fr);gap:48px}
  body.projets .pcard:first-child{padding-bottom:48px}
  body.projets .pcard:first-child .pcard-h{font-size:1.7rem}
  body.projets .contact .h2{font-size:clamp(2.2rem,10vw,3.2rem)}
  body.projets .btn{width:100%;text-align:center}
  body.projets .nav-cta{font-size:.58rem;padding:9px 12px}
  body.projets .nav-r{gap:10px}
  body.projets .foot-tag{font-size:1.15rem}
}
