/* Catalogue - familles numérotées, blocs de gamme, index des produits. */
.fm{padding-block:clamp(44px,5.4vw,84px)}
.fm + .fm{border-top:1px solid var(--line)}
.fm:nth-of-type(even){background:var(--wash)}
.fm__h{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 22px;align-items:baseline;
  margin-bottom:clamp(26px,3vw,40px)}
.fm__k{font-family:var(--ui);font-weight:800;font-size:clamp(2rem,3.4vw,2.8rem);
  letter-spacing:-.04em;color:var(--sky);line-height:1;font-variant-numeric:tabular-nums}
.fm__h h2{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.03em}
.fm__h p{grid-column:2;max-width:64ch}

/* bloc gamme : la photographie à gauche, l'index des désignations à droite. Toutes les photos ont la même taille,
   quel que soit le nombre de produits du bloc (décision d'Alexandre, 22/09/2026 : la forme réduite de la maquette, à
   photo de 220 px pour un ou deux produits, a été retirée). */
.gb{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(22px,3vw,44px);
  padding-block:clamp(22px,2.6vw,34px);border-top:2px solid var(--navy)}
.gb + .gb{margin-top:clamp(14px,2vw,26px)}
.gb__p{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--navy);
  align-self:start}
.gb__p img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
a.gb__p:hover img{transform:scale(1.04)}
.gb__c{position:absolute;left:0;bottom:0;background:var(--navy);color:#fff;font-family:var(--ui);
  font-weight:700;font-size:.78rem;letter-spacing:.04em;padding:9px 14px}
.gb__b{min-width:0;display:grid;gap:14px;align-content:start}
.gb__t{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap}
.gb__t h3{font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:-.02em}
.gb__t h3 a{color:var(--navy)}
.gb__t h3 a:hover{color:var(--blue);text-decoration:none}
.gb__b > p{max-width:60ch;font-size:.98rem}

.pl{list-style:none;border-top:1px solid var(--line)}
.pl--2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(20px,3vw,44px)}
.pl li{border-bottom:1px solid var(--line)}
.pl a{display:grid;grid-template-columns:92px minmax(0,1fr) auto auto 16px;align-items:center;
  gap:6px 18px;padding:14px 8px 14px 0;color:var(--navy);position:relative;transition:.14s}
.pl--n a{grid-template-columns:minmax(0,1fr) 16px}
.pl a::before{content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:3px;
  background:var(--sky);transform:scaleY(0);transition:transform .16s}
.pl a:hover{background:#fff;padding-left:14px;text-decoration:none;color:var(--blue)}
.fm:nth-of-type(odd) .pl a:hover{background:var(--wash)}
.pl a:hover::before{transform:scaleY(1)}
.pl__d{font-family:var(--ui);font-weight:800;font-size:1.22rem;letter-spacing:-.025em}
.pl__n{font-size:.96rem;color:var(--body);min-width:0}
.pl--n .pl__n{font-family:var(--ui);font-weight:700;color:inherit;font-size:.98rem}
.pl__n em{font-style:normal;display:inline-block;margin-left:10px;padding:2px 8px;
  border:1px solid var(--line);font-family:var(--ui);font-weight:700;font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--mute);vertical-align:2px}
.pl__s{font-family:var(--ui);font-weight:800;font-size:1rem;color:var(--blue-d);
  font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:62px}
.pl__m{font-size:.86rem;color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap;
  min-width:112px;text-align:right}
.pl a > .ic{color:#9DB6C6;font-size:.8rem}
.pl a:hover > .ic{color:var(--blue)}
[hidden]{display:none !important}

.nul{border:1px solid var(--line);border-top:4px solid var(--blue);background:#fff;
  padding:clamp(28px,4vw,52px);display:grid;gap:16px;justify-items:start;
  margin-block:clamp(40px,5vw,72px)}
.nul h2{font-size:1.4rem}

@media (max-width:900px){
  .gb{grid-template-columns:minmax(0,1fr)}
  .gb__p{aspect-ratio:16/8}
}
@media (max-width:640px){
  .pl--2{grid-template-columns:minmax(0,1fr)}
  .pl a{grid-template-columns:72px minmax(0,1fr) 16px;row-gap:2px}
  .pl--n a{grid-template-columns:minmax(0,1fr) 16px}
  .pl__s,.pl__m{grid-column:2;text-align:left;min-width:0}
  .pl__s{grid-row:2} .pl__m{grid-row:3}
  .pl a > .ic{grid-column:3;grid-row:1}
  .pl--n a > .ic{grid-column:2}
  .fm__h{grid-template-columns:minmax(0,1fr)} .fm__h p{grid-column:1}
}
