/* ==================== CONTACT — le moment inversé ==========================
   La seule section sombre du site : le vert bancaire profond referme la page
   et concentre l'attention sur l'action. */

.contact {
    padding: var(--section-y) 0;
    background: var(--green-deep);
    background-image:
        radial-gradient(ellipse 70% 60% at 85% 0%,
            color-mix(in srgb, var(--green) 55%, transparent), transparent 70%);
}

.contact .section-eyebrow { color: var(--bronze-soft); }
.contact .section-eyebrow::before { background: var(--bronze); }

.contact .section-title { color: #F2F5EF; }
.contact .section-title em.serif,
.contact .gold-text { color: #E4C883; }

.contact .section-subtitle { color: color-mix(in srgb, #F2F5EF 68%, transparent); }

.contact-content {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

/* --- Coordonnées ----------------------------------------------------------- */
.contact-info-inner {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.contact-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: .85rem 1rem;
    border-radius: var(--radius-sm);
    transition: background .18s ease;
}

.contact-item:hover { background: color-mix(in srgb, #fff 6%, transparent); }

.contact-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: color-mix(in srgb, #fff 8%, transparent);
    border: 1px solid color-mix(in srgb, #fff 14%, transparent);
    color: #E4C883;
    font-size: .95rem;
    flex: 0 0 auto;
}

.contact-details h3 {
    font-size: .78rem;
    font-family: var(--f-mono);
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: color-mix(in srgb, #F2F5EF 55%, transparent);
    margin-bottom: .2rem;
}

.contact-details p { margin: 0; color: #E9EEE7; font-size: .95rem; }
.contact-details a { color: #E9EEE7; }
.contact-details a:hover { color: #E4C883; }

.contact-social-strip {
    display: flex;
    gap: .6rem;
    margin-top: 1.4rem;
    padding-left: 1rem;
}

.contact-social-btn {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid color-mix(in srgb, #fff 18%, transparent);
    color: #E9EEE7;
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}

.contact-social-btn:hover {
    color: #E4C883;
    border-color: #E4C883;
    transform: translateY(-2px);
}

/* --- Formulaire — la fiche de demande -------------------------------------- */
.contact-form {
    background: var(--card);
    border-radius: var(--radius);
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .5);
    padding: clamp(1.4rem, 3vw, 2.1rem);
}

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

.form-group { display: flex; flex-direction: column; }

.form-label {
    font-family: var(--f-mono);
    font-size: .66rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .4rem;
}

.contact-form input,
.contact-form textarea {
    font: inherit;
    font-size: .95rem;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-sm);
    padding: .72rem .9rem;
    transition: border-color .15s ease, box-shadow .15s ease;
    width: 100%;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder { color: var(--muted); opacity: .7; }

.contact-form input:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: var(--green);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 14%, transparent);
}

.contact-form textarea { resize: vertical; min-height: 130px; }

.form-group.has-error input,
.form-group.has-error textarea,
.contact-form input.error,
.contact-form textarea.error { border-color: var(--alert); }

.error-message {
    color: var(--alert);
    font-size: .78rem;
    margin-top: .3rem;
    min-height: 1em;
}

#submitBtn { position: relative; width: 100%; justify-content: center; }

.btn-loader {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid color-mix(in srgb, #fff 40%, transparent);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btn-spin .7s linear infinite;
}

#submitBtn.loading .btn-loader { display: inline-block; }
#submitBtn.loading .btn-text { opacity: .7; }

@keyframes btn-spin { to { transform: rotate(360deg); } }

.form-status {
    margin-top: .9rem;
    font-size: .9rem;
    text-align: center;
    color: var(--muted);
}

.form-status.success { color: var(--green); font-weight: 600; }
.form-status.error { color: var(--alert); font-weight: 600; }

@media (max-width: 900px) {
    .contact-content { grid-template-columns: 1fr; }
}

@media (max-width: 576px) {
    .form-row { grid-template-columns: 1fr; }
}
