
/* ========================================
   LAYOUT CONTACT
   ======================================== */
.contact-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 72px 40px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 64px;
    align-items: start;
}

/* ========================================
   ASIDE COORDONNÉES
   ======================================== */
.contact-aside {
    background-color: var(--defi-white);
    border: 1px solid var(--defi-border);
    border-radius: var(--defi-radius);
    padding: 32px;
    position: sticky;
    top: 88px;
}
.aside-title {
    font-family: var(--defi-font-head);
    font-size: 20px; font-weight: 600;
    color: var(--defi-slate);
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--defi-border);
}

.contact-items { display: flex; flex-direction: column; gap: 16px; margin-bottom: 28px; }
.contact-item { display: flex; align-items: center; gap: 12px; }
.contact-item-icon {
    width: 36px; height: 36px;
    background-color: var(--defi-sand);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.contact-item-icon svg { width: 16px; height: 16px; stroke: var(--defi-terra); }
.contact-item p,
.contact-item a {
    font-size: 14px; color: var(--defi-text-s); text-decoration: none;
    transition: color .15s; line-height: 1.4;
}
.contact-item a:hover { color: var(--defi-terra); }

.contact-adresses { display: flex; flex-direction: column; gap: 20px; }
.adresse-title { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--defi-terra); margin-bottom: 4px; }
.adresse-item p { font-size: 13px; color: var(--defi-text-s); line-height: 1.55; }

/* ========================================
   FORMULAIRE
   ======================================== */
.contact-form-section {
    background-color: var(--defi-white);
    border: 1px solid var(--defi-border);
    border-radius: var(--defi-radius);
    padding: 40px;
}

.form-title {
    font-family: var(--defi-font-head);
    font-size: 22px; font-weight: 600;
    color: var(--defi-slate);
    margin-bottom: 6px;
}
.form-notice { font-size: 13px; color: var(--defi-warm-gray); font-style: italic; margin-bottom: 28px; }

/* Feedback AJAX */
.contact-feedback { padding: 14px 18px; border-radius: 8px; margin-bottom: 24px; font-size: 14px; line-height: 1.5; }
.feedback-success { background-color: #d4edda; border: 1px solid #a8d5b5; color: #1e5631; }
.feedback-error   { background-color: #fde8e8; border: 1px solid #f3b8b8; color: #7a1818; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }

.form-group { display: flex; flex-direction: column; }
.form-group-full { margin-bottom: 20px; }

.form-group label {
    font-size: 12px; font-weight: 600;
    color: var(--defi-warm-gray);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 8px;
}
.optional { font-size: 11px; color: #aaa; font-weight: normal; font-style: italic; text-transform: none; }

.form-group input,
.form-group select,
.form-group textarea {
    padding: 11px 14px;
    border: 1px solid var(--defi-border);
    border-radius: 8px;
    font-size: 14px;
    font-family: var(--defi-font-body);
    background-color: var(--defi-white);
    color: var(--defi-text);
    transition: border-color .15s, box-shadow .15s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--defi-slate-l);
    box-shadow: 0 0 0 3px rgba(74,112,144,.12);
}
.form-group select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B5F55' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 14px;
    padding-right: 36px;
}
.form-group textarea { resize: vertical; min-height: 130px; }
.form-group textarea::placeholder { color: #bbb; font-style: italic; }

.form-actions { text-align: left; margin-top: 8px; }
.btn-submit {
    background-color: var(--defi-terra);
    color: var(--defi-white);
    border: none;
    padding: 13px 36px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    font-family: var(--defi-font-body);
    cursor: pointer;
    transition: background-color .15s;
}
.btn-submit:hover { background-color: var(--defi-terra-d); }
.btn-submit:disabled { background-color: #bbb; cursor: not-allowed; }

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 1024px) {
    