:root { --gold:#b8901c; --gold-lt:#e8b84b; --dark:#111; }

/* ── Hero (identique à reglement.php / faq.php) ── */
.contact-hero {
    background: linear-gradient(160deg,#0a0a0a,#1a1200 50%,#0a0a0a);
    padding: 80px 0 60px;
    text-align: center;
    position: relative;
    overflow: hidden;

    /* ✅ AJOUTÉ — breakout "fondu" plein écran, DESKTOP + MOBILE.
       Même logique que .hero-section : le fond touche les bords du
       viewport quelle que soit la largeur d'écran, le contenu interne
       (.container Bootstrap) garde son padding habituel. */
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.contact-hero::before {
    content:'';
    position:absolute;inset:0;
    background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(184,144,28,.15),transparent 70%);
    pointer-events:none;
}
.contact-eyebrow { font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold); }
.contact-title   { font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;color:#fff; }
.gold-bar        { width:40px;height:2px;background:var(--gold);border:none;margin:16px auto; }

/* ── Cartes info (même famille visuelle que reg-card) ── */
.contact-info-card {
    background:#fff;
    border-radius:16px;
    border:1px solid #f0f0f0;
    padding:24px;
    margin-bottom:16px;
    display:flex;
    gap:18px;
    align-items:flex-start;
    transition:transform .25s,box-shadow .25s,border-color .25s;
}
.contact-info-card:hover {
    transform:translateX(6px);
    box-shadow:0 8px 32px rgba(184,144,28,.10);
    border-color:rgba(184,144,28,.25);
}
.contact-icon-box {
    width:48px;height:48px;
    border-radius:14px;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
    font-size:1.1rem;
    background:rgba(184,144,28,.12);
    color:var(--gold);
}
.contact-info-title { font-size:.95rem;font-weight:700;color:var(--dark);margin-bottom:2px; }
.contact-info-text  { font-size:13px;color:#777; }
.contact-info-text a { color:#777; text-decoration:none; }
.contact-info-text a:hover { color:var(--gold); }

.contact-badge {
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(184,144,28,.09);
    border:1px solid rgba(184,144,28,.25);
    color:var(--gold);
    font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
    padding:6px 16px;border-radius:20px;
    margin-bottom:16px;
}

/* ── Réseaux sociaux ── */
.contact-social-row { display:flex; gap:10px; margin-top:8px; }
.contact-social-btn {
    width:40px;height:40px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    background:#111;color:#fff;font-size:14px;
    transition:background .2s, transform .2s;
    text-decoration:none;
}
.contact-social-btn:hover { background:var(--gold); color:#fff; transform:translateY(-2px); }

/* ── Formulaire ── */
.contact-form-card {
    background:#fff;
    border-radius:20px;
    border:1px solid #f0f0f0;
    box-shadow:0 4px 32px rgba(0,0,0,.05);
    padding: 40px;
    position: relative;
}

.contact-form-card .form-label {
    color: #444;
    font-size: 12.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 6px;
}

.contact-form-card .form-control {
    background:#fafafa;
    border:1px solid #eee;
    border-radius:12px;
    transition: background .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.contact-form-card .form-control:focus {
    background: #fff;
    box-shadow: 0 0 0 3px rgba(184,144,28,.15);
    border-color: var(--gold);
    outline: none;
}

.contact-error-msg {
    font-size: 12px; color: #dc3545; margin-top: 5px; display: none;
}
.contact-error-msg.is-visible { display: block; }
.contact-invalid { box-shadow: 0 0 0 2px rgba(220,53,69,.25) !important; border-color:#dc3545 !important; }

.contact-submit-btn {
    background: linear-gradient(135deg,var(--gold),var(--gold-lt));
    color:#fff; border:none; border-radius:12px;
    font-size:12px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
    padding:16px; width:100%;
    transition: transform .15s ease, box-shadow .2s ease, opacity .2s ease;
}
.contact-submit-btn:hover:not(:disabled) {
    transform:translateY(-2px);
    box-shadow:0 10px 28px rgba(184,144,28,.35);
    color:#fff;
}
.contact-submit-btn:active:not(:disabled) { transform: scale(.98); }
.contact-submit-btn:disabled { opacity: .7; cursor: not-allowed; transform:none; }

.contact-success-banner {
    display: none;
    align-items: center;
    gap: 10px;
    background: rgba(40,167,69,.08);
    border: 1px solid rgba(40,167,69,.25);
    color: #1e7e34;
    border-radius: 12px;
    padding: 14px 16px;
    font-size: 13px;
    margin-top: 16px;
}
.contact-success-banner.is-visible { display: flex; }

/* ── Note finale (identique à reg-footnote / faq-contact-cta) ── */
.contact-footnote {
    text-align:center;padding:32px;
    background:linear-gradient(135deg,#111,#1a1200);
    border-radius:16px;margin-top:32px;
}
.contact-footnote i { color:var(--gold);font-size:1.5rem;margin-bottom:12px;display:block; }
.contact-footnote p { color:rgba(255,255,255,.7);font-size:13px;max-width:500px;margin:0 auto;line-height:1.8; }

/* ═══════════════════════════════════════════════════
   RESPONSIVE — MOBILE
   ═══════════════════════════════════════════════════ */
@media (max-width: 767px) {
    .contact-hero { padding: 56px 0 40px; }
    .contact-hero p { font-size: 12.5px; padding: 0 16px; }

    .contact-info-card {
        flex-direction: column;
        gap: 14px;
        padding: 18px;
        border-radius: 14px;
    }
    .contact-info-card:hover { transform: none; }

    .contact-form-card { padding: 24px !important; border-radius: 18px !important; }
    .contact-form-card .form-control { padding: 12px !important; }

    .contact-submit-btn { font-size: 11px; padding: 14px; }

    .contact-footnote { padding: 24px 18px; }
    .contact-footnote p { font-size: 12px; }
}

@media (max-width: 400px) {
    .contact-form-card { padding: 18px !important; }
    .contact-info-card { padding: 16px; }
}