/* ── M3 Contact Form ──────────────────────────────────────── */
.m3cf-wrapper {
  max-width: 680px;
  font-family: inherit;
}
.m3cf-title {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: .4rem;
  color: #1a1a1a;
}
.m3cf-subtitle {
  color: #666;
  margin-bottom: 1.8rem;
  font-size: .95rem;
}

/* Messages */
.m3cf-success,
.m3cf-error {
  padding: .9rem 1.2rem;
  border-radius: 4px;
  margin-bottom: 1.2rem;
  font-size: .95rem;
}
.m3cf-success { background: #e6f9ed; border: 1px solid #81d99d; color: #1d6e38; }
.m3cf-error   { background: #fde8e8; border: 1px solid #e88; color: #a00; }

/* Lignes */
.m3cf-row {
  display: flex;
  align-items: center;
  margin-bottom: 1.1rem;
  gap: 1rem;
}
.m3cf-row--message  { align-items: flex-start; }
.m3cf-row--privacy  { align-items: flex-start; }
.m3cf-row--submit   { margin-top: 1.4rem; }

.m3cf-label {
  min-width: 130px;
  font-weight: 600;
  font-size: .95rem;
  color: #1a1a1a;
  flex-shrink: 0;
}
.m3cf-field { flex: 1; }

/* Champs */
.m3cf-select,
.m3cf-input,
.m3cf-textarea {
  width: 100%;
  padding: .65rem .9rem;
  border: 1px solid #ccc;
  border-radius: 3px;
  background: #fff;
  font-size: .95rem;
  color: #333;
  outline: none;
  transition: border-color .2s;
  box-sizing: border-box;
}
.m3cf-select:focus,
.m3cf-input:focus,
.m3cf-textarea:focus { border-color: #1a1a1a; }

.m3cf-select { cursor: pointer; }
.m3cf-textarea { resize: vertical; min-height: 140px; }

/* Fichier */
.m3cf-file-wrap { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.m3cf-file-label {
  display: flex;
  align-items: center;
  border: 1px solid #ccc;
  border-radius: 3px;
  overflow: hidden;
  cursor: pointer;
  flex: 1;
  min-width: 0; /* permet la réduction sous la taille du contenu */
}
.m3cf-file-input { display: none; }
.m3cf-file-btn {
  background: #1a1a1a;
  color: #fff;
  padding: .65rem 1rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .05em;
  white-space: nowrap;
  flex-shrink: 0;
}
.m3cf-file-name {
  padding: 0 .8rem;
  font-size: .85rem;
  color: #999;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.m3cf-optional { font-size: .85rem; color: #999; white-space: nowrap; flex-shrink: 0; }

/* Privacy */
.m3cf-privacy-label {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  cursor: pointer;
}
.m3cf-checkbox { margin-top: 3px; width: 16px; height: 16px; flex-shrink: 0; }
.m3cf-privacy-text { font-size: .9rem; color: #444; line-height: 1.4; }
.m3cf-privacy-text a { color: #1a1a1a; text-decoration: underline; }

/* Bouton */
.m3cf-btn {
  background: #1a1a1a;
  color: #fff;
  border: none;
  padding: .8rem 2rem;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .08em;
  border-radius: 3px;
  cursor: pointer;
  transition: background .2s, opacity .2s;
}
.m3cf-btn:hover   { background: #333; }
.m3cf-btn:disabled { opacity: .6; cursor: not-allowed; }

/* Responsive */
@media (max-width: 600px) {
  .m3cf-row { flex-direction: column; align-items: flex-start; gap: .4rem; }
  .m3cf-label { min-width: unset; }
}
