/* ===== Page contact — utilise les tokens de Shared/base.css ===== */

/* ---------- bandeau d'en-tête ---------- */
.contact-hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, #2a3340 0%, #16202B 100%);
  color:var(--white);
  text-align:center;
  padding:88px 0 80px;
}
.contact-hero::before{
  content:"";
  position:absolute;
  inset:-20% -10%;
  background:
    radial-gradient(ellipse at 25% 30%, rgba(224,27,61,.22), transparent 55%),
    radial-gradient(ellipse at 80% 70%, rgba(255,255,255,.08), transparent 60%);
  pointer-events:none;
}
.contact-hero .wrap{ position:relative; }
.contact-hero h1{
  /* 72px max (au lieu de 88) : reste le plus grand titre du site sans
     écraser le reste de la page */
  font-size:clamp(40px, 6vw, 72px);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.05;
}
.contact-hero p{
  margin:16px auto 0;
  max-width:46ch;
  font-size:clamp(15px, 2vw, 18px);
  color:rgba(255,255,255,.78);
  line-height:1.6;
}

/* ---------- intro + formulaire ---------- */
.contact-section{ padding:96px 0 72px; }
.contact-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:72px;
}
.contact-eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--red);
}
.contact-eyebrow::before{
  content:"";
  width:22px; height:2px;
  background:var(--red);
}
.contact-copy h2{
  margin-top:18px;
  font-size:clamp(32px, 4vw, 46px);
  line-height:1.1;
  letter-spacing:-0.02em;
}
.contact-copy p{
  margin-top:20px;
  max-width:40ch;
  color:var(--ink-soft);
  font-size:15.5px;
  line-height:1.75;
}

.contact-form{ display:grid; gap:16px; }
.contact-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-field{ display:flex; flex-direction:column; gap:6px; }
.contact-field label{
  font-size:13px;
  font-weight:600;
  color:var(--ink);
}
.contact-field input,
.contact-field select,
.contact-field textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--gray-200);
  border-radius:12px;
  background:var(--paper);
  font:inherit;
  font-size:14.5px;
  color:var(--ink);
  transition:border-color .15s ease, background .15s ease;
}
.contact-field textarea{ min-height:140px; resize:vertical; }
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus{
  outline:none;
  border-color:var(--red);
  background:var(--white);
}
/* champ piège anti-spam : jamais visible, jamais accessible */
.contact-trap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.contact-form .btn{ justify-self:start; border:none; padding:14px 34px; }
.contact-form .btn[disabled]{ opacity:.6; cursor:progress; }
.contact-note{ font-size:14px; line-height:1.5; }
.contact-note[hidden]{ display:none; }
.contact-note.is-success{ color:#1a7f4b; }
.contact-note.is-error{ color:var(--red-dark); }

/* ---------- bandeau d'infos ---------- */
.contact-info{
  border-top:1px solid var(--gray-200);
  padding:56px 0;
}
.contact-info-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:36px;
}
.contact-info-grid h3{
  font-family:'Inter', sans-serif;
  font-size:15px;
  font-weight:600;
  margin-bottom:10px;
}
.contact-info-grid p,
.contact-info-grid a{
  color:var(--ink-soft);
  font-size:14.5px;
  line-height:1.7;
}
.contact-info-grid a:hover{ color:var(--red); }

/* ---------- carte ---------- */
.contact-map{
  position:relative;
  height:420px;
  background:var(--gray-100);
}
.contact-map iframe{ width:100%; height:100%; border:0; display:block; }
.contact-map-link{
  position:absolute;
  left:20px; bottom:20px;
  display:flex; align-items:center; gap:8px;
  padding:10px 18px;
  border-radius:999px;
  background:var(--white);
  font-size:13.5px;
  font-weight:600;
  box-shadow:0 8px 20px -6px rgba(22,32,43,.25);
}
.contact-map-link:hover{ color:var(--red); }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--red);
  outline-offset:2px;
}

@media (max-width:1080px){
  .contact-info-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .contact-hero{ padding:72px 0 64px; }
  .contact-section{ padding:64px 0 48px; }
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .contact-row{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .contact-info-grid{ grid-template-columns:1fr; gap:26px; }
  .contact-map{ height:340px; }
}
