/* Ajustements communs : ordinateur, tablette et téléphone */
.hero-image {
  background-image: linear-gradient(0deg, #211b1733, transparent 55%), url('assets/accueil-chantier-rmd-v3.png');
  background-position: 35% center;
  background-size: cover;
}
.hero-copy .lead {
  max-width: 540px;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(22px, 2.1vw, 29px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .005em;
  color: #514238;
  margin: 28px 0 35px;
}
img, video, iframe { max-width: 100%; }
@media (min-width: 1201px) {
  .header { min-height: 86px; }
  .header nav { white-space: nowrap; }
  .hero-copy, .zone-hero-copy { min-width: 0; }
}
@media (min-width: 701px) and (max-width: 1200px) {
  .header { padding-right: 3vw; padding-left: 3vw; }
  .header nav { gap: 2px; }
  .header nav a { padding-right: 9px; padding-left: 9px; font-size: 10px; }
  .trade-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .realisation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partners-heading { padding-right: 5vw; padding-left: 5vw; }
}
@media (max-width: 900px) {
  .header { padding-right: 6vw; padding-left: 6vw; }
  .header.open nav { z-index: 20; box-shadow: 0 14px 25px rgba(33,27,23,.12); }
  .hero-copy, .zone-hero-copy { padding-right: 7vw; padding-left: 7vw; }
  .projects .section-title, .partners-heading { margin-right: 0; margin-left: 0; }
  .zone-hero-panel { min-height: 220px; }
  .zone-hero-panel strong { font-size: 120px; }
}
@media (max-width: 600px) {
  .utility { height: 12px; }
  .header { height: 72px; }
  .header.open nav { top: 72px; }
  .brand { width: 140px; height: 54px; }
  .menu-toggle { padding: 8px; }
  .hero-copy, .zone-hero-copy { min-height: auto; padding-top: 64px; padding-bottom: 64px; }
  .hero-copy h1, .zone-hero-copy h1 { font-size: clamp(46px, 13vw, 64px); }
  .hero-actions { gap: 14px; }
  .hero-actions .button { width: 100%; }
  .intro, .trades, .projects, .reviews, .contact, .communes-section { padding-right: 6vw; padding-left: 6vw; }
  .trade-list { grid-template-columns: 1fr; }
  .trade { min-height: 250px; }
  .partners-heading { padding-right: 6vw; padding-left: 6vw; }
  .partners-heading > p:last-child { font-size: 18px; }
  .partner-logo { width: 145px; flex-basis: 145px; }
  .realisation-card { min-height: 285px; }
  .ba-caption h3 { font-size: 25px; }
  .contacts { grid-template-columns: 1fr; }
  .contact form { padding: 25px 20px; }
  footer { padding-right: 6vw; padding-left: 6vw; }
}

/* Navigation compacte sur tablette et mise en page tactile */
@media (min-width: 901px) and (max-width: 1150px) {
  .header { grid-template-columns: 1fr auto; }
  .header nav, .header .call { display: none; }
  .menu-toggle { display: block; padding: 10px; }
  .header.open nav { position: absolute; top: 86px; right: 0; left: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding: 18px 5vw; border-radius: 0; background: var(--cream); box-shadow: 0 14px 25px rgba(33,27,23,.12); }
  .header.open nav a { padding: 13px; text-align: center; }
  .header.open nav a:last-child { grid-column: span 2; }
  .trade-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .trade { min-height: 295px; }
}

@media (max-width: 700px) {
  .header.open nav { gap: 4px; }
  .header.open nav a { font-size: 13px; }
  .intro-proof img { width: min(100%, 250px); }
  .trades .section-title > p:last-child { margin-top: 16px; padding-left: 14px; font-size: 15px; }
  .territory { grid-template-columns: 1fr; min-height: 0; }
  .territory-copy { padding: 68px 7vw 48px; }
  .territory h2 em { white-space: normal; }
  .territory-map { height: 380px; min-height: 0; margin: 0 7vw 30px; }
  .territory-map iframe { height: 100%; min-height: 0; }
  footer { grid-template-columns: 1fr; gap: 9px; min-height: 0; text-align: center; }
  footer > span:nth-child(2), footer address { text-align: center; }
}

@media (max-width: 430px) {
  .header { padding-right: 5vw; padding-left: 5vw; }
  .header.open nav { padding-right: 5vw; padding-left: 5vw; }
  .button { min-height: 48px; padding-right: 16px; padding-left: 16px; }
  .contact-title > p:not(.eyebrow), .intro > div:nth-of-type(1) > p { font-size: 19px; }
  .partner-logo { width: 130px; height: 74px; flex-basis: 130px; }
  .coverage-diagram img { max-height: 390px; }
}
