/* ============================================================
   contact-v2.css — Contact page refonte 2026
   Scoped under .cv2-shell to avoid collisions
   ============================================================ */

.cv2-shell, .cv2-shell * { box-sizing: border-box; }

.cv2-shell {
  --cv2-brand-900:#1e3a8a;
  --cv2-brand-800:#1e40af;
  --cv2-brand-600:#2563eb;
  --cv2-brand-50:#eff6ff;
  --cv2-ink-900:#0f172a;
  --cv2-ink-700:#334155;
  --cv2-ink-500:#64748b;
  --cv2-line:#e2e8f0;
  --cv2-bg:#f8fafc;
  --cv2-g-blue:#4285f4; --cv2-g-blue-bg:#e8f0fe; --cv2-g-blue-text:#1967d2;
  --cv2-g-red:#ea4335;  --cv2-g-red-bg:#fce8e6;  --cv2-g-red-text:#c5221f;
  --cv2-g-yellow:#fbbc04;--cv2-g-yellow-bg:#fef7e0;--cv2-g-yellow-text:#b06000;
  --cv2-g-green:#34a853;--cv2-g-green-bg:#e6f4ea; --cv2-g-green-text:#137333;

  background: var(--cv2-bg);
  color: var(--cv2-ink-900);
  font-family: 'Inter', 'Catamaran', -apple-system, BlinkMacSystemFont, sans-serif;
}

.cv2-wrap { max-width: 1280px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px){ .cv2-wrap{ padding: 0 24px; } }
@media (min-width: 1024px){ .cv2-wrap{ padding: 0 32px; } }

/* HERO */
.cv2-hero { padding: 56px 0 24px; text-align: center; }
@media (max-width: 600px){ .cv2-hero{ padding: 36px 0 16px; } }
.cv2-eyebrow {
  display:inline-block;
  font-size: .75rem; font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  background: var(--cv2-g-blue-bg);
  color: var(--cv2-g-blue-text);
  padding: 6px 14px;
  border-radius: 9999px;
}
.cv2-eyebrow--green { background: var(--cv2-g-green-bg); color: var(--cv2-g-green-text); }
.cv2-eyebrow--red   { background: var(--cv2-g-red-bg);   color: var(--cv2-g-red-text); }
.cv2-h1 {
  font-size: clamp(1.85rem, 4.5vw, 2.85rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.02em;
  margin: 14px 0 12px;
  color: var(--cv2-ink-900);
}
.cv2-lead {
  color: var(--cv2-ink-500);
  max-width: 42rem;
  margin: 0 auto;
  line-height: 1.6;
  font-size: 1.05rem;
}
.cv2-lead a { color: var(--cv2-brand-600); font-weight: 600; text-decoration: underline; }
.cv2-lead strong { color: var(--cv2-ink-900); }

/* GRID 2-COLS */
.cv2-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 32px;
  padding: 16px 0 64px;
}
@media (max-width: 900px){ .cv2-grid{ grid-template-columns: 1fr; gap: 20px; } }

/* CARD */
.cv2-card {
  background:#fff;
  border: 1px solid var(--cv2-line);
  border-radius: 16px;
  padding: 24px;
  position: relative;
  overflow: hidden;
  transition: .2s;
}
.cv2-card:hover { box-shadow: 0 8px 24px -8px rgba(15,23,42,.08); }
.cv2-card--form { padding: 32px; }
@media (max-width: 600px){ .cv2-card--form{ padding: 22px; } }
.cv2-card__bar {
  position:absolute; left:0; top:0; bottom:0; width: 4px;
}
.cv2-bar--blue   { background: var(--cv2-g-blue); }
.cv2-bar--red    { background: var(--cv2-g-red); }
.cv2-bar--yellow { background: var(--cv2-g-yellow); }
.cv2-bar--green  { background: var(--cv2-g-green); }

.cv2-card__title { font-size: 1.25rem; font-weight: 800; margin: 0 0 4px; color: var(--cv2-ink-900); }
.cv2-card__sub   { color: var(--cv2-ink-500); font-size: .9rem; margin: 0 0 22px; }

/* ICON wrap */
.cv2-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  display:inline-flex; align-items:center; justify-content:center;
  margin-bottom: 14px;
}
.cv2-icon svg { width: 20px; height: 20px; }
.cv2-ic--blue   { background: var(--cv2-g-blue-bg);   color: var(--cv2-g-blue-text); }
.cv2-ic--red    { background: var(--cv2-g-red-bg);    color: var(--cv2-g-red-text); }
.cv2-ic--yellow { background: var(--cv2-g-yellow-bg); color: var(--cv2-g-yellow-text); }
.cv2-ic--green  { background: var(--cv2-g-green-bg);  color: var(--cv2-g-green-text); }

.cv2-aside-card h3 { font-size: 1rem; font-weight: 700; margin: 0 0 4px; color: var(--cv2-ink-900); }
.cv2-aside-card p { font-size: .85rem; color: var(--cv2-ink-500); margin: 0 0 8px; line-height: 1.5; }
.cv2-aside-card a:not(.cv2-btn) {
  color: var(--cv2-brand-600); font-weight: 600; text-decoration: none;
}
.cv2-aside-card a:not(.cv2-btn):hover { text-decoration: underline; color: var(--cv2-brand-800); }

/* ASIDE list */
.cv2-aside { display:flex; flex-direction: column; gap: 16px; }

/* FORM */
.cv2-form { display:flex; flex-direction: column; gap: 18px; }
.cv2-form__row { display:grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 540px){ .cv2-form__row{ grid-template-columns: 1fr; } }

.cv2-label {
  display:block;
  font-size: .85rem; font-weight: 600;
  color: var(--cv2-ink-700);
  margin-bottom: 6px;
}
.cv2-input {
  width: 100%;
  padding: 11px 14px;
  background:#fff;
  border: 1px solid var(--cv2-line);
  border-radius: 10px;
  font-size: .95rem;
  color: var(--cv2-ink-900);
  transition: .15s;
  font-family: inherit;
}
.cv2-input::placeholder { color:#94a3b8; }
.cv2-input:focus {
  outline: none;
  border-color: var(--cv2-brand-600);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.cv2-input--err { border-color: var(--cv2-g-red); }
.cv2-textarea { resize: vertical; min-height: 130px; }
.cv2-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2364748b' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
}
.cv2-help-txt { font-size: .72rem; color:#94a3b8; margin: 4px 0 0; }
.cv2-err { color: var(--cv2-g-red-text); font-size: .8rem; margin: 4px 0 0; display:block; }

.cv2-check {
  display:flex; align-items: flex-start; gap: 10px;
  font-size: .85rem; color: var(--cv2-ink-700); line-height: 1.5;
}
.cv2-check input[type=checkbox]{ margin-top: 3px; accent-color: var(--cv2-brand-600); flex-shrink: 0; }
.cv2-check a { color: var(--cv2-brand-600); text-decoration: underline; }

.cv2-btn {
  display:inline-flex; align-items:center; justify-content:center; gap: 8px;
  background: var(--cv2-brand-600);
  color:#fff; font-weight: 700;
  padding: 11px 20px;
  border-radius: 10px;
  border: 0;
  cursor: pointer;
  transition: .2s;
  font-family: inherit;
  font-size: .95rem;
  text-decoration: none;
}
.cv2-btn:hover { background: var(--cv2-brand-800); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(37,99,235,.25); color:#fff; text-decoration:none; }
.cv2-btn svg { width: 16px; height: 16px; }
.cv2-btn--ghost { background:#fff; color: var(--cv2-ink-900); border: 1px solid var(--cv2-line); }
.cv2-btn--ghost:hover { background:#f1f5f9; color: var(--cv2-ink-900); box-shadow:none; }

.cv2-submit-row { display:flex; flex-wrap: wrap; align-items:center; gap: 14px; padding-top: 4px; }
.cv2-submit-row span { font-size: .78rem; color: var(--cv2-ink-500); }

/* SUCCESS / alert */
.cv2-alert {
  display:flex; align-items:flex-start; gap: 12px;
  background: var(--cv2-g-green-bg);
  border: 1px solid var(--cv2-g-green);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 0 0 18px;
}
.cv2-alert svg { width: 20px; height: 20px; color: var(--cv2-g-green-text); flex-shrink:0; margin-top:2px; }
.cv2-alert strong { color: var(--cv2-g-green-text); display:block; }
.cv2-alert div span { color:#0f5d2c; font-size: .85rem; }

/* BAND with bg-white (Liens rapides) */
.cv2-band {
  background:#fff;
  border-top: 1px solid var(--cv2-line);
  border-bottom: 1px solid var(--cv2-line);
  padding: 56px 0;
}
.cv2-band__head { text-align:center; margin-bottom: 32px; }
.cv2-h2 { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; letter-spacing:-.02em; color: var(--cv2-ink-900); margin: 12px 0 0; }

.cv2-helps {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  max-width: 920px;
  margin: 0 auto;
}
@media (max-width: 640px){ .cv2-helps{ grid-template-columns: 1fr; } }

.cv2-help-link {
  display:flex; align-items:center; gap: 12px;
  padding: 16px 18px;
  background:#fff;
  border: 1px solid var(--cv2-line);
  border-radius: 12px;
  transition: .15s;
  text-decoration:none;
  color: inherit;
}
.cv2-help-link:hover {
  border-color:#cbd5e1;
  background:#f8fafc;
  transform: translateX(2px);
  text-decoration: none;
  color: inherit;
}
.cv2-help-link .cv2-icon { margin: 0; flex-shrink:0; }
.cv2-help-link__body { flex: 1; }
.cv2-help-link__title { font-weight: 700; color: var(--cv2-ink-900); font-size: .95rem; }
.cv2-help-link__sub { font-size: .78rem; color: var(--cv2-ink-500); }
.cv2-help-link__arrow { color:#94a3b8; flex-shrink:0; }
.cv2-help-link__arrow svg { width: 16px; height: 16px; }

/* FAQ */
.cv2-faqs-wrap { max-width: 760px; margin: 0 auto; padding: 56px 16px; }
.cv2-faq {
  background:#fff;
  border: 1px solid var(--cv2-line);
  border-radius: 12px;
  margin-bottom: 8px;
}
.cv2-faq summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 20px;
  font-weight: 600;
  color: var(--cv2-ink-900);
  display:flex; justify-content: space-between; align-items: center;
  font-size: .95rem;
}
.cv2-faq summary::-webkit-details-marker { display: none; }
.cv2-faq summary::after { content: "+"; font-size: 1.4rem; color: var(--cv2-ink-500); font-weight: 400; }
.cv2-faq[open] summary::after { content: "×"; }
.cv2-faq__body {
  padding: 0 20px 18px;
  color: var(--cv2-ink-700);
  line-height: 1.65;
  font-size: .92rem;
}
.cv2-faq__body a { color: var(--cv2-brand-600); text-decoration: underline; }

.cv2-allfaq { text-align: center; margin-top: 24px; }
.cv2-allfaq a { color: var(--cv2-brand-600); font-weight: 600; text-decoration: none; }
.cv2-allfaq a:hover { text-decoration: underline; }

/* Dark mode */
body.dark-mode .cv2-shell { background:#0b1220; color:#e2e8f0; }
body.dark-mode .cv2-card,
body.dark-mode .cv2-help-link,
body.dark-mode .cv2-faq,
body.dark-mode .cv2-band { background:#0f172a; border-color:#1e293b; color:#e2e8f0; }
body.dark-mode .cv2-band { border-color:#1e293b; }
body.dark-mode .cv2-h1, body.dark-mode .cv2-h2,
body.dark-mode .cv2-card__title,
body.dark-mode .cv2-aside-card h3,
body.dark-mode .cv2-help-link__title,
body.dark-mode .cv2-faq summary { color:#f1f5f9; }
body.dark-mode .cv2-lead, body.dark-mode .cv2-card__sub,
body.dark-mode .cv2-aside-card p,
body.dark-mode .cv2-help-link__sub { color:#94a3b8; }
body.dark-mode .cv2-input { background:#1e293b; color:#f1f5f9; border-color:#334155; }
body.dark-mode .cv2-input::placeholder { color:#64748b; }
body.dark-mode .cv2-label { color:#cbd5e1; }
body.dark-mode .cv2-faq__body { color:#cbd5e1; }
body.dark-mode .cv2-help-link:hover { background:#1e293b; }
