/* Codex 45 : modifications demandées sur l'accueil uniquement. */
.c31-hero {
  min-height: 0;
  padding-top: clamp(24px, 2.75vw, 40px);
  padding-bottom: clamp(36px, 4.1vw, 60px);
}

/* Empêcher la largeur intrinsèque du titre de pousser la photo hors du hero
   au premier palier ordinateur, sans réduire la police ni changer le texte. */
@media (min-width: 901px) and (max-width: 1100px) {
  .c44-hero-grid { grid-template-columns: minmax(0, 1fr) 430px; }
  .c44-hero-eyebrow { white-space: nowrap; }
}

.c31-orient {
  background: linear-gradient(90deg, #dff4fa 0%, #f9fdfe 34%, #fff 50%, #f9fdfe 66%, #dff4fa 100%);
}

/* Recadrages d'affichage : les fichiers originaux restent intacts. */
.c31-hub img[src$="garde-corps-verre-balcon.jpg"] { object-position: 44% 50%; }
.c31-hub img[src$="rambarde-inox-lisses-terrasse-bois.jpg"] { object-position: 45% 50%; }
.c31-system-image img[src$="balustrade-verre-cables-inox-balcon.jpg"] {
  scale: 1.12;
  transform-origin: 50% 60%;
  object-position: 50% 60%;
}
.c31-system-image img[src$="garde-corps-verre-lisses-inox-acrotere-couvertine-alu-ral-7016.jpg"] {
  scale: 1.3;
  transform-origin: 20% 75%;
  object-position: 20% 75%;
}
.c31-system-image img[src$="balustrade-tout-verre-toit-terrasse-sans-main-courante.jpg"] {
  scale: 1.65;
  transform-origin: 38% 27%;
  object-position: 38% 27%;
}

.c31-project-layout {
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}
.c31-project-feature {
  min-height: 0;
  height: clamp(340px, 38vw, 520px);
}
.c31-project-feature img { object-position: 50% 45%; }
.c31-project-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, auto);
  gap: 20px;
}
.c31-project-list > a:not(.c31-project-all) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr;
}
.c31-project-list img {
  width: 100%;
  height: clamp(220px, 24vw, 310px);
  object-fit: cover;
}
.c31-project-list > a > span { padding: 18px; }
.c31-project-layout > .c31-project-all {
  justify-self: center;
  justify-content: center;
  gap: 24px;
  max-width: 100%;
  margin-top: 4px;
  text-align: center;
}

@media (max-width: 900px) {
  .c31-hero { padding-top: 23.333px; padding-bottom: 35px; }
  .c44-hero-grid { gap: 20px; }
}
@media (max-width: 640px) {
  .c31-hero { padding-top: 16px; padding-bottom: 30px; }
  .c31-project-feature { height: 105vw; }
  .c31-project-list { grid-template-columns: minmax(0, 1fr); }
  .c31-project-list img { height: 65vw; }
}

/* Suite Codex 45 : seuls les espacements supérieurs demandés sont réduits. */
.c31-orient,
.c31-systems { padding-top: clamp(45.6px, 4.8vw, 67.2px); }

.c31-orient .c31-heading,
.c31-projects .c31-heading,
.c31-area .c44-section-heading { text-align: center; }
.c31-orient .c31-heading > p:last-child,
.c31-projects .c31-heading > p:last-child { margin-inline: auto; }

/* Carte validée entière ; la légende existante reste hors du visuel. */
.c31-area figure img { object-fit: contain; }
.c31-area figcaption {
  position: static;
  margin: 10px 15px 0;
  padding: 0;
  text-align: right;
}

@media (max-width: 900px) {
  .c31-orient,
  .c31-systems { padding-top: 43.2px; }
}
@media (max-width: 640px) {
  .c31-orient,
  .c31-systems { padding-top: 34.8px; }
  .c31-area figure img { height: auto; }
}
