  /* ---------- HERO ---------- */
  .page-header{position:relative; background-size:cover; background-position:center; background-repeat:no-repeat;}
  .page-header::before{content:""; position:absolute; inset:0; background:rgba(0,0,0,.65); z-index:1;}
  .page-header > .wrap{position:relative; z-index:2;}

  /* ---------- CONTACT ---------- */
  .contact-body{padding:90px 0 120px;}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:90px;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr; gap:60px;} }
  .field{margin-bottom:26px;}
  .field label{display:block; font-weight:600; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--encre-douce); margin-bottom:10px;}
  .field input, .field select, .field textarea{
    width:100%; border:none; border-bottom:2px solid var(--ligne); padding:12px 0; font-family:var(--font);
    font-size:17px; background:transparent; color:var(--encre); transition:border-color .2s ease; border-radius:0;
  }
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--corail); outline:none;}
  .field textarea{resize:vertical; min-height:90px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
  @media (max-width:520px){ .field-row{grid-template-columns:1fr;} }
  .submit-row{margin-top:36px;}
  .form-success{display:none; padding:40px 0;}
  .form-success.show{display:block;}
  .form-success .label{margin-bottom:14px; display:block;}
  .form-success h3{font-size:28px; margin-bottom:10px;}
  .form-success p{color:var(--encre-douce);}
  .info-block{margin-bottom:40px;}
  .info-block .label{margin-bottom:12px; display:block;}
  .info-block p, .info-block a{font-size:17px; line-height:1.7;}
  .info-block a:hover{color:var(--corail-texte);}
  .social-row{display:flex; gap:12px; margin-top:8px; flex-wrap:wrap;}
  .social-row a{font-weight:600; font-size:14px; border:2px solid var(--ligne); padding:9px 16px; transition:all .2s ease;}
  .social-row a:hover{border-color:var(--encre); background:var(--encre); color:var(--ivoire);}
  .map-frame{aspect-ratio:16/9; background:transparent; margin-top:40px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;}
  .map-frame::before{content:''; position:absolute; left:-40px; bottom:-40px; width:160px; height:160px; border-radius:50%; background:var(--moutarde); opacity:0;}
  .map-frame .label{position:relative;}
