/* --- Pages d'expertise -----------------------------------------------------
   Meme identite que la page d'accueil. La seule piece propre a ces pages est
   la maquette animee : une projection isometrique en SVG, une par expertise,
   reprise de la version 2 et repeinte a l'accent rouille du site. */

.fil{font:500 12.5px/1 var(--mono);letter-spacing:.06em;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}
.fil a:hover{color:var(--text)}
.fil span{color:var(--line-strong)}

.tete{position:relative;padding-top:68px;overflow:hidden;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:44px 44px}
.tete .wrap{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center;gap:40px}
.tete-texte{padding:64px 0 76px}
.tete h1{font-size:clamp(36px,4.6vw,60px);line-height:1.04;letter-spacing:-.035em;font-weight:700;margin-top:18px;max-width:14ch}
.tete p.sous{margin-top:20px;color:var(--muted);font-size:18px;max-width:46ch}
.tete .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* --- La maquette animee --------------------------------------------------- */
.maquette{position:relative;display:grid;place-items:center;perspective:900px;pointer-events:none;height:min(58vh,480px);min-height:340px}
.maquette::before,.maquette::after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:50%;transform:rotateX(66deg) rotateZ(-18deg)}
.maquette::before{inset:6% 2%}
.maquette::after{inset:17% 13%}
.maquette svg{width:100%;max-width:520px;height:auto;overflow:visible;transform-style:preserve-3d;animation:orbite 11s ease-in-out infinite}
.maquette .ground{fill:color-mix(in srgb,var(--accent) 5%,transparent);stroke:color-mix(in srgb,var(--accent) 35%,transparent);stroke-width:1}
.maquette .axis,.maquette .detail{fill:none;stroke:var(--line-strong);stroke-width:1;opacity:.55}
.maquette #verre .haut{stop-color:var(--accent);stop-opacity:.22}
.maquette #verre .bas{stop-color:var(--text);stop-opacity:.05}
.maquette .solid{fill:url(#verre);stroke:color-mix(in srgb,var(--accent) 55%,transparent);stroke-width:1.5}
.maquette .wire{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.maquette .beam{fill:none;stroke:var(--accent);stroke-width:4;filter:url(#halo);stroke-dasharray:750;animation:trace 7s ease-in-out infinite}
.maquette .pulse{fill:var(--accent);filter:url(#halo);animation:battement 3s ease-in-out infinite}
.maquette .scan{fill:none;stroke:var(--accent);stroke-width:7;opacity:.75;filter:url(#halo);animation:balayage 4s ease-in-out infinite alternate}
.maquette .cross{fill:none;stroke:var(--accent);stroke-width:2}
.maquette .legende{position:absolute;right:0;bottom:6px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@keyframes orbite{0%,100%{transform:translateY(5px) rotateY(-12deg) rotateX(7deg)}50%{transform:translateY(-18px) rotateY(12deg) rotateX(-4deg)}}
@keyframes trace{0%{stroke-dashoffset:750;opacity:.2}45%,75%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-750;opacity:.2}}
@keyframes battement{50%{opacity:.35;r:12}}
@keyframes balayage{0%{transform:translateY(-95px);opacity:.25}100%{transform:translateY(85px);opacity:1}}
@media (prefers-reduced-motion: reduce){
  .maquette svg,.maquette .beam,.maquette .pulse,.maquette .scan{animation:none}
}
@media (max-width:900px){
  .tete .wrap{grid-template-columns:1fr}
  .tete-texte{padding:34px 0 8px;order:1}
  .maquette{order:2;height:320px;min-height:0;margin-bottom:34px}
  .maquette svg{max-width:400px}
}

/* --- Bande illustree ------------------------------------------------------- */
.bande{position:relative;height:clamp(220px,34vw,380px);background-size:cover;background-position:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);filter:saturate(.25)}
.bande::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--bg) 62%,transparent),transparent 62%)}

/* --- La mission : liste numerotee ------------------------------------------ */
.mission .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:64px}
.mission .colle{position:sticky;top:110px;align-self:start}
.etapes{border-top:1px solid var(--line)}
.etape{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:26px 0;border-bottom:1px solid var(--line)}
.etape b{font:500 13px/1.2 var(--mono);color:var(--accent);letter-spacing:.06em;padding-top:4px}
.etape h3{font-size:18.5px;letter-spacing:-.015em;font-weight:600;line-height:1.35}
@media (max-width:900px){
  .mission .wrap{grid-template-columns:1fr;gap:32px}
  .mission .colle{position:static}
  .etape{grid-template-columns:52px 1fr;gap:14px}
}

/* --- Autres expertises ----------------------------------------------------- */
.autres{background:var(--bg-2);border-top:1px solid var(--line)}
.liste-autres{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:40px}
.liste-autres a{display:block;padding:26px 24px 30px 0;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.liste-autres a:nth-child(3n){border-right:0;padding-right:0}
.liste-autres a:nth-child(3n+2){padding-left:24px}
.liste-autres a:nth-child(3n){padding-left:24px}
.liste-autres i{font-size:26px;color:var(--accent)}
.liste-autres h3{font-size:17.5px;letter-spacing:-.015em;margin-top:14px}
.liste-autres span{display:block;color:var(--muted);font-size:14.5px;margin-top:6px}
.liste-autres a:hover h3{color:var(--accent)}
@media (max-width:900px){
  .liste-autres{grid-template-columns:1fr}
  .liste-autres a,.liste-autres a:nth-child(3n),.liste-autres a:nth-child(3n+2){padding:22px 0;border-right:0}
}

/* --- Les projets : une fiche par projet, ses textes et toutes ses photos ------ */
.references{display:grid;gap:0;margin-top:48px;border-top:1px solid var(--line)}
.reference{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;
  padding:40px 0;border-bottom:1px solid var(--line)}
.ref-texte h3{font-size:21px;letter-spacing:-.02em;text-transform:none}
.ref-texte p{color:var(--muted);font-size:14.5px;margin-top:12px;max-width:42ch}
.references .reference[hidden]{display:none}
.ref-tout{display:inline-flex;align-items:center;gap:8px;margin-top:18px;
  font:500 13px/1 var(--mono);letter-spacing:.06em;color:var(--accent)}
.ref-tout:hover{text-decoration:underline;text-underline-offset:4px}
.ref-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-content:start}
.ref-photos[data-nombre="1"]{grid-template-columns:minmax(0,2fr) 1fr}
.ref-photos[data-nombre="2"]{grid-template-columns:repeat(2,1fr)}
/* AU-DELA DE SIX PHOTOS ON PASSE A QUATRE COLONNES : la maison de Salles-sur-Mer
   en porte quatorze, et trois colonnes lui feraient cinq rangees. */
.ref-photos[data-nombre="7"],.ref-photos[data-nombre="8"],.ref-photos[data-nombre="9"],
.ref-photos[data-nombre="10"],.ref-photos[data-nombre="11"],.ref-photos[data-nombre="12"],
.ref-photos[data-nombre="13"],.ref-photos[data-nombre="14"],.ref-photos[data-nombre="15"],
.ref-photos[data-nombre="16"]{grid-template-columns:repeat(4,1fr)}
.vue{display:block;overflow:hidden;background:var(--line);aspect-ratio:4/3}
.vue img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.vue:hover img{transform:scale(1.05)}
@media (max-width:900px){
  .reference{grid-template-columns:1fr;gap:24px;padding:32px 0}
  .ref-photos,.ref-photos[data-nombre]{grid-template-columns:repeat(3,1fr);gap:10px}
}
@media (max-width:600px){
  .ref-photos,.ref-photos[data-nombre]{grid-template-columns:repeat(2,1fr)}
}

/* --- La page de tous les projets --------------------------------------------- */
.filtres{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.filtres button{font:500 13px/1 var(--mono);letter-spacing:.05em;padding:12px 16px;
  background:none;border:1px solid var(--line-strong);color:var(--muted);cursor:pointer;
  transition:border-color .2s,color .2s,background .2s}
.filtres button:hover{border-color:var(--text);color:var(--text)}
.filtres button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.galerie{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px}
.galerie figure{margin:0}
.galerie a{display:block;overflow:hidden;background:var(--line);aspect-ratio:4/3}
.galerie img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.galerie a:hover img{transform:scale(1.05)}
.galerie figcaption{color:var(--muted);font-size:13.5px;margin-top:10px;line-height:1.45}
.galerie figcaption b{display:block;color:var(--text);font-size:15px;font-weight:600;letter-spacing:-.01em}
.galerie [hidden]{display:none}
@media (max-width:900px){.galerie{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.galerie{grid-template-columns:1fr}}

/* --- Moyens informatiques ----------------------------------------------------
   Une carte par logiciel, son logo a gauche, son texte a droite, exactement
   comme sur sa page actuelle. */
.moyens{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:48px}
.moyen{display:grid;grid-template-columns:110px 1fr;gap:24px;align-items:start;
  background:var(--surface);border:1px solid var(--line);padding:28px 26px}
.moyen-logo{background:#fff;border:1px solid var(--line);display:grid;place-items:center;padding:10px;aspect-ratio:1}
.moyen-logo img{width:100%;height:100%;object-fit:contain}
.moyen-texte h3{font-size:19px;letter-spacing:-.02em}
.moyen-lien{display:inline-flex;align-items:center;gap:7px}
.moyen-lien i{font-size:14px;color:var(--accent)}
a.moyen-lien:hover{color:var(--accent)}
.moyen-texte p{color:var(--muted);font-size:14.5px;margin-top:10px}
@media (max-width:900px){
  .moyens{grid-template-columns:1fr}
  .moyen{grid-template-columns:84px 1fr;gap:18px;padding:22px 20px}
}
