/* ==========================================================================
   MPPME v4.3.0-Beta — Formulaires et confirmations
   ========================================================================== */

.contact-request-section,
.contact-confirmation-section {
    background:
        radial-gradient(circle at 8% 9%, rgba(106, 189, 69, .10), transparent 27%),
        linear-gradient(180deg, #f5f9f3 0%, #eaf2e7 100%);
}

.contact-request-layout {
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
    gap: 28px;
    align-items: start;
}

.contact-request-aside {
    position: sticky;
    top: 120px;
    padding: 32px;
    border: 1px solid #285238;
    border-radius: 26px;
    background:
        radial-gradient(circle at 94% 6%, rgba(153, 226, 119, .17), transparent 31%),
        linear-gradient(145deg, #14341f 0%, #1d472c 100%);
    color: #fff;
    box-shadow: 0 20px 48px rgba(18, 49, 29, .14);
}

.contact-request-aside .eyebrow {
    color: #b9ef9f;
}

.contact-request-aside h2 {
    margin: 8px 0 14px;
    color: #fff;
    font-size: clamp(30px, 3.5vw, 42px);
    line-height: 1.08;
}

.contact-request-aside p {
    margin: 0;
    color: #e2ece4;
    font-size: 16.5px;
    line-height: 1.7;
}

.contact-request-notice {
    margin-top: 22px;
    padding: 17px 18px;
    border: 1px solid rgba(190, 237, 167, .20);
    border-radius: 15px;
    background: rgba(255, 255, 255, .07);
    color: #dff0e1;
    font-size: 14.5px;
    line-height: 1.6;
}

.contact-help-link {
    display: inline-flex;
    margin-top: 18px;
    color: #b9ef9f;
    font-weight: 900;
    text-decoration: none;
}

.contact-form-card,
.contact-public-form-card {
    padding: 34px;
    border: 1px solid #c6d7c1;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 20px 52px rgba(24, 59, 36, .09);
}

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.contact-form-grid .full {
    grid-column: 1 / -1;
}

.contact-live-form .field label {
    display: block;
    margin-bottom: 7px;
    color: #213b2b;
    font-size: 14px;
    font-weight: 850;
}

.contact-live-form .field label > span,
.contact-live-form .field > label span {
    color: #a52b34;
}

.contact-live-form input[type="text"],
.contact-live-form input[type="email"],
.contact-live-form input[type="tel"],
.contact-live-form input[type="date"],
.contact-live-form select,
.contact-live-form textarea {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #cbd8c7;
    border-radius: 11px;
    background: #fbfdfb;
    color: #203529;
    font: inherit;
    font-size: 15px;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.contact-live-form textarea {
    min-height: 170px;
    resize: vertical;
    line-height: 1.58;
}

.contact-live-form input:focus,
.contact-live-form select:focus,
.contact-live-form textarea:focus {
    outline: none;
    border-color: #6abd45;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(106, 189, 69, .12);
}

.contact-live-form .field small {
    display: block;
    margin-top: 5px;
    color: #6c7a71;
    font-size: 12px;
}

.contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.contact-form-errors {
    margin-bottom: 20px;
    padding: 17px 19px;
    border: 1px solid #e1b9bc;
    border-left: 4px solid #b72f37;
    border-radius: 13px;
    background: #fff4f4;
    color: #5a2b2f;
}

.contact-form-errors strong {
    display: block;
    margin-bottom: 6px;
}

.contact-form-errors ul {
    margin: 0;
    padding-left: 20px;
}

.contact-consent {
    padding: 15px 16px;
    border: 1px solid #d5e1d1;
    border-radius: 13px;
    background: #f5f9f3;
}

.contact-consent label {
    display: flex !important;
    margin: 0 !important;
    gap: 11px;
    align-items: flex-start;
    font-weight: 650 !important;
}

.contact-consent input {
    margin-top: 3px;
}

.contact-consent a {
    color: #367927;
    font-weight: 900;
}

.contact-form-submit {
    display: flex;
    gap: 16px;
    align-items: center;
}

.contact-form-submit a {
    color: #4f6255;
    font-weight: 800;
    text-decoration: none;
}

.contact-confirmation-section {
    min-height: 650px;
    display: grid;
    place-items: center;
}

.contact-confirmation-card {
    max-width: 820px;
    margin: 0 auto;
    padding: 48px;
    border: 1px solid #c5d8bf;
    border-radius: 30px;
    background:
        radial-gradient(circle at 95% 5%, rgba(106, 189, 69, .15), transparent 30%),
        #fff;
    box-shadow: 0 26px 68px rgba(24, 59, 36, .12);
    text-align: center;
}

.contact-confirmation-check {
    display: grid;
    width: 68px;
    height: 68px;
    margin: 0 auto 18px;
    place-items: center;
    border-radius: 21px;
    background: #6abd45;
    color: #102b1b;
    font-size: 31px;
    font-weight: 950;
}

.contact-confirmation-card .eyebrow {
    display: block;
    text-align: center;
}

.contact-confirmation-card h1 {
    margin: 8px auto 14px;
    color: #173a25;
    font-size: clamp(36px, 5vw, 54px);
}

.contact-confirmation-card > p {
    max-width: 650px;
    margin: 0 auto;
    color: #56665c;
    font-size: 17px;
    line-height: 1.7;
}

.contact-reference {
    max-width: 620px;
    margin: 28px auto 0;
    padding: 20px;
    border: 1px solid #bdd7b5;
    border-radius: 17px;
    background: #edf6e9;
}

.contact-reference span,
.contact-reference strong {
    display: block;
}

.contact-reference span {
    margin-bottom: 5px;
    color: #4e6754;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.contact-reference strong {
    color: #173a25;
    font-size: clamp(20px, 4vw, 30px);
    letter-spacing: .02em;
    overflow-wrap: anywhere;
}

.contact-confirmation-type {
    margin-top: 14px !important;
    font-weight: 850;
}

.contact-email-status {
    max-width: 650px;
    margin: 20px auto 0;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.5;
}

.contact-email-status.is-success {
    border: 1px solid #c5ddbd;
    background: #eff8ec;
    color: #315e28;
}

.contact-email-status.is-warning {
    border: 1px solid #e5d5a6;
    background: #fff9e8;
    color: #6a5822;
}

.contact-confirmation-actions {
    display: flex;
    margin-top: 26px;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

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

    .contact-request-aside {
        position: static;
    }
}

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

    .contact-form-grid .full {
        grid-column: 1;
    }

    .contact-form-card,
    .contact-public-form-card,
    .contact-confirmation-card {
        padding: 26px 22px;
    }

    .contact-form-submit {
        flex-direction: column;
        align-items: stretch;
    }

    .contact-form-submit .btn {
        justify-content: center;
    }
}


/* v4.4.0 — transparence sur les données techniques du formulaire */
.contact-technical-disclosure {
    padding: 13px 15px;
    border: 1px solid #dbe5d7;
    border-radius: 11px;
    background: #f8fbf7;
    color: #68766d;
    font-size: 12.5px;
    line-height: 1.55;
}


/* ==========================================================================
   MPPME v4.4.1-Beta — formulaire membre / validation
   ========================================================================== */

.contact-request-page {
    position: relative;
    background:
        linear-gradient(112deg, rgba(8, 32, 20, .84) 0%, rgba(12, 48, 29, .70) 48%, rgba(9, 35, 21, .77) 100%),
        url('../img/wallpaper.jpg') center top / cover fixed no-repeat;
}

.contact-request-page .contact-request-hero {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.14);
}

.contact-request-page .contact-request-section {
    background: transparent;
    padding-top: 54px;
    padding-bottom: 72px;
}

.contact-request-page .contact-request-aside {
    border-color: rgba(190, 237, 167, .28);
    background:
        radial-gradient(circle at 94% 6%, rgba(153, 226, 119, .17), transparent 31%),
        linear-gradient(145deg, rgba(16, 49, 29, .94) 0%, rgba(27, 70, 43, .91) 100%);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .20);
    backdrop-filter: blur(8px);
}

.contact-request-page .contact-form-card {
    border-color: rgba(218, 232, 214, .92);
    background: rgba(255, 255, 255, .955);
    box-shadow: 0 24px 64px rgba(0, 0, 0, .19);
    backdrop-filter: blur(10px);
}

.contact-live-form .field.has-error > label { color: #8f232c; }
.contact-live-form .field.has-error input:not([type="checkbox"]),
.contact-live-form .field.has-error select,
.contact-live-form .field.has-error textarea {
    border-color: #b72f37;
    background: #fff7f7;
    box-shadow: 0 0 0 3px rgba(183, 47, 55, .10);
}
.contact-live-form .contact-consent.has-error {
    border-color: #b72f37;
    background: #fff5f5;
}
.field-error-message {
    display: block;
    margin-top: 6px;
    color: #a52b34 !important;
    font-size: 12.5px !important;
    font-weight: 850;
    line-height: 1.4;
}
@media (max-width: 900px) {
    .contact-request-page { background-attachment: scroll; }
}


/* ==========================================================================
   MPPME v4.4.2-Beta — Nous joindre, équipe et ressources
   ========================================================================== */

.public-contact-page,
.team-contact-page {
    position: relative;
    background:
        linear-gradient(112deg, rgba(8, 32, 20, .82) 0%, rgba(12, 48, 29, .72) 48%, rgba(9, 35, 21, .78) 100%),
        url('../img/wallpaper.jpg') center top / cover fixed no-repeat;
}

.public-contact-hero,
.team-contact-hero {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.14);
}

.public-contact-page .section,
.team-contact-page .section {
    background: transparent;
}

.public-contact-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 500px);
    gap: 32px;
    align-items: end;
    margin-bottom: 28px;
}

.public-contact-head h2 {
    margin: 8px 0 0;
    font-size: clamp(30px, 3.1vw, 46px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.public-contact-head p {
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: 16px;
    line-height: 1.7;
}

.contact-directory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.contact-directory-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 28px 26px 24px;
    border-radius: 26px;
    border: 1px solid rgba(212, 232, 203, .22);
    background: linear-gradient(165deg, rgba(255,255,255,.96) 0%, rgba(245,249,243,.95) 100%);
    box-shadow: 0 22px 54px rgba(0,0,0,.16);
}

.contact-directory-card--accent {
    background: linear-gradient(160deg, rgba(18,61,33,.95) 0%, rgba(25,84,44,.93) 100%);
    color: #fff;
    border-color: rgba(190, 237, 167, .24);
}

.contact-directory-card--accent h3,
.contact-directory-card--accent p,
.contact-directory-card--accent .contact-availability-big,
.contact-directory-card--accent .contact-directory-phone,
.contact-directory-card--accent .contact-directory-kicker {
    color: #fff;
}

.contact-directory-kicker {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 16px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(106, 189, 69, .12);
    color: var(--gd);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.contact-directory-card h3 {
    margin: 0 0 14px;
    color: var(--deep);
    font-size: 28px;
    line-height: 1.12;
    letter-spacing: -.03em;
}

.contact-directory-card p {
    margin: 0 0 18px;
    color: #51635a;
    line-height: 1.7;
}

.contact-hours {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
    display: grid;
    gap: 8px;
}

.contact-hours li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(26, 61, 38, .08);
    color: #48574f;
    font-size: 14px;
}

.contact-directory-phone {
    margin-top: auto;
    color: var(--deep);
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.02em;
    text-decoration: none;
}

.contact-availability-big {
    margin: 0 0 12px;
    font-size: 38px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.05em;
}

.resource-split-card {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 26px;
    padding: 28px;
    border-radius: 30px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 22px 54px rgba(0,0,0,.16);
    border: 1px solid rgba(217,230,212,.92);
}

.resource-split-card--compact {
    padding-top: 22px;
    padding-bottom: 22px;
}

.resource-split-copy h2 {
    margin: 10px 0 0;
    color: var(--deep);
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.resource-split-copy p {
    margin: 16px 0 0;
    color: #526359;
    font-size: 16px;
    line-height: 1.7;
}

.support-resource-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.support-resource-link {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 22px 22px 20px;
    border-radius: 24px;
    border: 1px solid rgba(184,207,176,.9);
    background: linear-gradient(165deg, #f5faf3 0%, #ffffff 100%);
    color: var(--ink);
    text-decoration: none;
    box-shadow: 0 14px 38px rgba(20, 47, 29, .08);
    transition: transform .2s ease, box-shadow .2s ease;
}

.support-resource-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 44px rgba(20, 47, 29, .12);
}

.support-resource-link--dark {
    background: linear-gradient(155deg, #173a25 0%, #215236 100%);
    border-color: rgba(172, 226, 143, .22);
    color: #fff;
}

.support-resource-link--dark p,
.support-resource-link--dark strong,
.support-resource-link--dark .support-resource-kicker,
.support-resource-link--dark .support-resource-arrow {
    color: #fff;
}

.support-resource-kicker {
    color: var(--gd);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.support-resource-link strong {
    margin-top: 8px;
    font-size: 25px;
    line-height: 1.12;
    letter-spacing: -.03em;
    color: var(--deep);
}

.support-resource-link p {
    margin: 12px 0 0;
    color: #56665d;
    line-height: 1.65;
}

.support-resource-arrow {
    margin-top: auto;
    padding-top: 18px;
    color: #2e7b1e;
    font-weight: 900;
}

.public-contact-form-layout,
.team-contact-layout {
    display: grid;
    grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}

.public-contact-side-card,
.team-contact-person {
    position: sticky;
    top: 110px;
    padding: 28px 24px 26px;
    border-radius: 28px;
    border: 1px solid rgba(190, 237, 167, .22);
    background: linear-gradient(160deg, rgba(18,61,33,.94) 0%, rgba(26,82,42,.92) 100%);
    color: #fff;
    box-shadow: 0 24px 56px rgba(0,0,0,.18);
}

.public-contact-side-card h2,
.team-contact-person h2 {
    margin: 10px 0 0;
    color: #fff;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.04;
    letter-spacing: -.04em;
}

.team-contact-role {
    margin-top: 10px;
    color: #c8efb8;
    font-weight: 800;
}

.public-contact-side-card p,
.team-contact-person p {
    margin: 14px 0 0;
    color: rgba(255,255,255,.88);
    line-height: 1.7;
}

.public-contact-points {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.public-contact-points li {
    padding-left: 18px;
    position: relative;
    line-height: 1.55;
}

.public-contact-points li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .58em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #8bd45f;
}

.public-contact-form-card,
.team-contact-card {
    box-shadow: 0 24px 64px rgba(0,0,0,.18);
}

.assistance-resource-section {
    padding-top: 10px;
}

.team-contact-kicker {
    display: inline-flex;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #d4f3c7;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* Réparation du wallpaper des formulaires de demande */
.contact-request-page {
    position: relative;
    background: #0d2518;
    overflow: hidden;
}

.contact-request-page::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(112deg, rgba(8, 32, 20, .84) 0%, rgba(12, 48, 29, .70) 48%, rgba(9, 35, 21, .77) 100%),
        url('../img/wallpaper.jpg') center top / cover no-repeat;
    background-attachment: fixed;
    z-index: 0;
}

.contact-request-page > * {
    position: relative;
    z-index: 1;
}

.contact-request-page .contact-request-hero,
.contact-request-page .contact-request-section {
    background: transparent !important;
}

.contact-request-page .contact-request-section {
    border-top: 0 !important;
    padding-top: 34px;
}

.contact-request-page .contact-request-layout {
    margin-top: 0;
}

@media (max-width: 1100px) {
    .contact-directory-grid,
    .public-contact-form-layout,
    .team-contact-layout,
    .resource-split-card,
    .support-resource-links,
    .public-contact-head {
        grid-template-columns: 1fr;
    }

    .public-contact-side-card,
    .team-contact-person {
        position: static;
    }
}

@media (max-width: 900px) {
    .public-contact-page,
    .team-contact-page {
        background-attachment: scroll;
    }

    .contact-request-page::before {
        background-attachment: scroll;
    }
}


/* ==========================================================================
   MPPME v4.4.3-Beta — Nous joindre et raccourcis FAQ / base de connaissances
   ========================================================================== */

.contact-page-v443 {
    background: #ffffff;
}

.contact-v443-hero {
    padding-top: 72px;
    padding-bottom: 76px;
}

.contact-v443-hero-inner {
    text-align: center;
}

.contact-v443-hero .breadcrumbs {
    justify-content: center;
    text-align: center;
}

.contact-v443-hero .eyebrow {
    color: #b9ef9f;
}

.contact-v443-hero h1 {
    margin-left: auto;
    margin-right: auto;
    max-width: 920px;
}

.contact-v443-hero .lead {
    margin: 0 auto;
    max-width: 860px;
    color: #e4eee7;
    text-align: justify;
    text-align-last: center;
}

.contact-v443-hero-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.contact-v443-hero-actions .ghost {
    border-color: rgba(255,255,255,.28);
    background: rgba(255,255,255,.94);
}

.contact-v443-phone-section {
    background:
        radial-gradient(circle at 10% 10%, rgba(106,189,69,.08), transparent 30%),
        #f7faf6;
}

.contact-v443-section-head {
    max-width: 920px;
    margin: 0 auto 34px;
    text-align: center;
}

.contact-v443-section-head h2 {
    margin: 6px 0 14px;
    color: #173a25;
    font-size: clamp(32px, 3.8vw, 50px);
    line-height: 1.06;
    letter-spacing: -.04em;
}

.contact-v443-section-head p {
    margin: 0 auto;
    max-width: 820px;
    color: #59675f;
    font-size: 16px;
    line-height: 1.75;
    text-align: justify;
    text-align-last: center;
}

.contact-v443-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.contact-v443-service-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 28px 28px 26px;
    border: 1px solid #d7e3d3;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 46px rgba(22,58,37,.08);
}

.contact-v443-service-card--urgent {
    border-color: #28513a;
    background:
        radial-gradient(circle at 85% 12%, rgba(128,214,89,.17), transparent 35%),
        linear-gradient(150deg, #173a25 0%, #215336 100%);
    color: #fff;
}

.contact-v443-service-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.contact-v443-service-code {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: #edf6e9;
    color: #347a25;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
}

.contact-v443-service-card--urgent .contact-v443-service-code {
    background: rgba(255,255,255,.10);
    color: #c7f3b4;
}

.contact-v443-service-tag {
    color: #4d6a57;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase;
    text-align: right;
}

.contact-v443-service-card--urgent .contact-v443-service-tag {
    color: #c7f3b4;
}

.contact-v443-service-card h3 {
    margin: 0 0 10px;
    color: #173a25;
    font-size: 26px;
    line-height: 1.12;
    letter-spacing: -.025em;
    text-align: center;
}

.contact-v443-service-card--urgent h3 {
    color: #fff;
}

.contact-v443-service-intro {
    margin: 0 0 18px;
    color: #607067;
    font-size: 14px;
    line-height: 1.65;
    text-align: justify;
}

.contact-v443-service-card--urgent .contact-v443-service-intro {
    color: #d8e8dd;
}

.contact-v443-hours {
    margin: 0 0 22px;
}

.contact-v443-hours > div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    padding: 7px 0;
    border-bottom: 1px solid #e4ebe1;
    font-size: 13px;
}

.contact-v443-hours dt {
    font-weight: 800;
}

.contact-v443-hours dd {
    margin: 0;
    color: #5e6c63;
    text-align: right;
}

.contact-v443-247 {
    display: grid;
    place-items: center;
    margin: auto 0;
    padding: 34px 18px;
    border-top: 1px solid rgba(255,255,255,.10);
    border-bottom: 1px solid rgba(255,255,255,.10);
    text-align: center;
}

.contact-v443-247 strong {
    display: block;
    color: #fff;
    font-size: clamp(38px, 4vw, 54px);
    line-height: 1;
    letter-spacing: -.045em;
}

.contact-v443-247 span {
    margin-top: 8px;
    color: #cde1d2;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.contact-v443-phone {
    display: inline-flex;
    justify-content: center;
    margin-top: auto;
    padding-top: 20px;
    color: #173a25;
    font-size: 21px;
    font-weight: 900;
    text-decoration: none;
}

.contact-v443-service-card--urgent .contact-v443-phone {
    color: #fff;
}

.contact-v443-knowledge-section {
    background: #eef4eb;
}

.contact-v443-knowledge-shell,
.assistance-v443-knowledge-shell {
    padding: 34px;
    border: 1px solid #d6e2d2;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 46px rgba(22,58,37,.08);
}

.contact-v443-knowledge-copy,
.assistance-v443-knowledge-copy {
    max-width: 850px;
    margin: 0 auto 28px;
    text-align: center;
}

.contact-v443-knowledge-copy h2,
.assistance-v443-knowledge-copy h2 {
    margin: 6px 0 12px;
    color: #173a25;
    font-size: clamp(30px, 3.4vw, 44px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.contact-v443-knowledge-copy p,
.assistance-v443-knowledge-copy p {
    margin: 0 auto;
    max-width: 760px;
    color: #59685f;
    line-height: 1.7;
    text-align: justify;
    text-align-last: center;
}

.contact-v443-knowledge-grid,
.assistance-v443-knowledge-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.contact-v443-knowledge-card,
.assistance-v443-knowledge-card {
    position: relative;
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 18px;
    min-height: 210px;
    padding: 24px;
    border: 1px solid #cbdcc5;
    border-radius: 22px;
    background: linear-gradient(150deg, #fbfdf9, #f2f7ef);
    color: #173a25;
    text-decoration: none;
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease;
}

.contact-v443-knowledge-card:hover,
.assistance-v443-knowledge-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(20,55,33,.10);
}

.contact-v443-knowledge-card--dark,
.assistance-v443-knowledge-card--dark {
    border-color: #234a32;
    background:
        radial-gradient(circle at 90% 10%, rgba(106,189,69,.18), transparent 34%),
        linear-gradient(145deg, #173a25, #214f34);
    color: #fff;
}

.contact-v443-knowledge-number,
.assistance-v443-knowledge-number {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: #173a25;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

.contact-v443-knowledge-card--dark .contact-v443-knowledge-number,
.assistance-v443-knowledge-card--dark .assistance-v443-knowledge-number {
    background: #6abd45;
}

.contact-v443-knowledge-label,
.assistance-v443-knowledge-label {
    display: block;
    margin-bottom: 6px;
    color: #468b32;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.contact-v443-knowledge-card--dark .contact-v443-knowledge-label,
.assistance-v443-knowledge-card--dark .assistance-v443-knowledge-label {
    color: #bceda5;
}

.contact-v443-knowledge-card strong,
.assistance-v443-knowledge-card strong {
    display: block;
    color: inherit;
    font-size: 25px;
    line-height: 1.12;
}

.contact-v443-knowledge-card p,
.assistance-v443-knowledge-card p {
    margin: 10px 0 0;
    color: #627068;
    font-size: 14px;
    line-height: 1.6;
    text-align: justify;
}

.contact-v443-knowledge-card--dark p,
.assistance-v443-knowledge-card--dark p {
    color: #d5e5da;
}

.contact-v443-knowledge-action,
.assistance-v443-knowledge-action {
    grid-column: 2;
    align-self: end;
    margin-top: 10px;
    color: #357d26;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
}

.contact-v443-knowledge-card--dark .contact-v443-knowledge-action,
.assistance-v443-knowledge-card--dark .assistance-v443-knowledge-action {
    color: #fff;
}

.contact-v443-form-section {
    background: #fff;
}

.contact-v443-form-head {
    margin-bottom: 26px;
}

.contact-v443-form-shell {
    width: min(920px, 100%);
    margin: 0 auto;
    padding: 38px;
    border: 1px solid #d1dfcd;
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0%, rgba(106,189,69,.07), transparent 30%),
        #fff;
    box-shadow: 0 22px 58px rgba(22,58,37,.10);
}

.contact-v443-form-shell .contact-form-submit {
    text-align: center;
}

.contact-v443-form-shell .contact-form-submit .btn {
    min-width: 220px;
}

/* Assistance : même système visuel, sans le débordement vu en 4.4.2. */
.assistance-v443-knowledge-section {
    padding-top: 24px;
    background: #edf3ea;
}

.assistance-v443-knowledge-shell {
    width: min(1040px, 100%);
    margin: 0 auto;
}

/* Page de contact équipe */
.team-contact-page {
    background: #f4f8f2;
}

.team-contact-page .team-contact-hero {
    background:
        linear-gradient(90deg, rgba(8,32,20,.92), rgba(8,32,20,.64)),
        url('../img/wallpaper.jpg') center / cover no-repeat !important;
}

.team-contact-page .team-contact-section {
    background:
        radial-gradient(circle at 10% 8%, rgba(106,189,69,.08), transparent 28%),
        #f5f8f3;
}

/* Neutralise l'ancien wallpaper plein écran appliqué en 4.4.2 à nous-joindre. */
.contact-page-v443.public-contact-page,
.contact-page-v443 {
    background: #fff !important;
}

@media (max-width: 960px) {
    .contact-v443-service-grid,
    .contact-v443-knowledge-grid,
    .assistance-v443-knowledge-grid {
        grid-template-columns: 1fr;
    }

    .contact-v443-knowledge-card,
    .assistance-v443-knowledge-card {
        min-height: 0;
    }
}

@media (max-width: 650px) {
    .contact-v443-hero-actions {
        flex-direction: column;
    }

    .contact-v443-hero-actions .btn {
        width: 100%;
    }

    .contact-v443-form-shell,
    .contact-v443-knowledge-shell,
    .assistance-v443-knowledge-shell {
        padding: 24px 20px;
        border-radius: 22px;
    }

    .contact-v443-knowledge-card,
    .assistance-v443-knowledge-card {
        grid-template-columns: 44px 1fr;
        gap: 14px;
        padding: 20px;
    }

    .contact-v443-knowledge-number,
    .assistance-v443-knowledge-number {
        width: 44px;
        height: 44px;
        border-radius: 13px;
    }

    .contact-v443-knowledge-action,
    .assistance-v443-knowledge-action {
        grid-column: 1 / -1;
    }
}


/* ==========================================================================
   MPPME v4.4.4-Beta — Fonds pâles, Nous joindre et documentation Assistance
   ========================================================================== */


/* --------------------------------------------------------------------------
   DEMANDES A-01 À A-04
   Wallpaper uniquement dans le hero. Tout le contenu jusqu'au footer revient
   sur un fond pâle, comme les autres pages corporatives du site.
   -------------------------------------------------------------------------- */

.contact-request-page {
    background: #edf3ea !important;
    overflow: visible;
}

.contact-request-page::before {
    content: none !important;
    display: none !important;
}

.contact-request-page .contact-request-hero {
    background:
        linear-gradient(90deg, rgba(8, 32, 20, .92), rgba(8, 32, 20, .66)),
        url('../img/wallpaper.jpg') center / cover no-repeat !important;
    border-bottom: 1px solid rgba(23, 58, 37, .10);
}

.contact-request-page .contact-request-section {
    background:
        radial-gradient(circle at 8% 8%, rgba(106, 189, 69, .07), transparent 28%),
        linear-gradient(180deg, #eef4eb 0%, #e7eee4 100%) !important;
    padding-top: 54px;
    padding-bottom: 72px;
}

.contact-request-page .contact-request-aside {
    box-shadow: 0 18px 44px rgba(23, 58, 37, .13);
    backdrop-filter: none;
}

.contact-request-page .contact-form-card {
    border-color: #b9cdb3;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(23, 58, 37, .10);
    backdrop-filter: none;
}


/* --------------------------------------------------------------------------
   NOUS JOINDRE
   Fond légèrement plus soutenu + boîtes avec contours élégants.
   -------------------------------------------------------------------------- */

.contact-page-v443 {
    background: #e8eee5 !important;
}

.contact-page-v443 .contact-v443-hero {
    background:
        linear-gradient(90deg, rgba(8, 32, 20, .92), rgba(8, 32, 20, .62)),
        url('../img/wallpaper.jpg') center / cover no-repeat !important;
}

.contact-v443-call-button {
    border: 1px solid rgba(255,255,255,.38);
    background: rgba(23, 58, 37, .78);
    color: #ffffff;
}

.contact-v443-call-button:hover {
    background: #173a25;
    color: #ffffff;
}

.contact-v443-knowledge-section {
    background:
        radial-gradient(circle at 90% 5%, rgba(106,189,69,.08), transparent 28%),
        #e5ece2;
}

.contact-v443-form-section {
    background:
        radial-gradient(circle at 8% 8%, rgba(23,58,37,.055), transparent 27%),
        #e9efe6;
}

.contact-v443-phone-section {
    background:
        radial-gradient(circle at 12% 10%, rgba(106,189,69,.065), transparent 30%),
        #e2eae0;
}

.contact-v443-knowledge-shell {
    border: 1px solid #aabfa4;
    background: #f8faf7;
    box-shadow:
        0 18px 46px rgba(22,58,37,.10),
        inset 0 0 0 1px rgba(255,255,255,.80);
}

.contact-v443-knowledge-card {
    border-color: #adc5a5;
    box-shadow:
        0 10px 26px rgba(22,58,37,.075),
        inset 0 0 0 1px rgba(255,255,255,.72);
}

.contact-v443-knowledge-card--dark {
    border-color: #365f43;
    box-shadow:
        0 12px 30px rgba(22,58,37,.14),
        inset 0 0 0 1px rgba(255,255,255,.055);
}

.contact-v443-form-shell {
    border: 1px solid #a8bfa1;
    background:
        radial-gradient(circle at 100% 0%, rgba(106,189,69,.065), transparent 30%),
        #ffffff;
    box-shadow:
        0 20px 52px rgba(22,58,37,.105),
        inset 0 0 0 1px rgba(255,255,255,.80);
}

.contact-v443-service-card {
    border: 1px solid #aebfaa;
    background:
        linear-gradient(155deg, #ffffff 0%, #f5f8f3 100%);
    box-shadow:
        0 16px 38px rgba(22,58,37,.09),
        inset 0 0 0 1px rgba(255,255,255,.76);
}

/* La carte URGENT reste clairement identifiée, mais ne domine plus la page. */
.contact-v443-service-card--urgent {
    position: relative;
    border: 1px solid #bcaeb0;
    background:
        linear-gradient(155deg, #ffffff 0%, #f8f5f5 100%);
    color: #173a25;
    box-shadow:
        0 16px 38px rgba(55,40,42,.075),
        inset 0 0 0 1px rgba(255,255,255,.78);
}

.contact-v443-service-card--urgent::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    border-radius: 24px 24px 0 0;
    background: #9e4a50;
}

.contact-v443-service-card--urgent .contact-v443-service-code {
    background: #f4e9ea;
    color: #8d343b;
}

.contact-v443-service-card--urgent .contact-v443-service-tag {
    color: #8d343b;
}

.contact-v443-service-card--urgent h3 {
    color: #173a25;
}

.contact-v443-service-card--urgent .contact-v443-service-intro {
    color: #607067;
}

.contact-v443-service-card--urgent .contact-v443-phone {
    color: #173a25;
}

.contact-v443-247 {
    margin: auto 0;
    padding: 28px 18px;
    border-top: 1px solid #e4d8da;
    border-bottom: 1px solid #e4d8da;
    background: rgba(157, 74, 80, .035);
}

.contact-v443-247 strong {
    color: #173a25;
    font-size: clamp(34px, 3.5vw, 46px);
}

.contact-v443-247 span {
    color: #746568;
}


/* --------------------------------------------------------------------------
   ASSISTANCE — Documentation utile
   Même largeur que les rectangles A-01 à A-04 (1180 px) et contour plus net.
   -------------------------------------------------------------------------- */

.assistance-v443-knowledge-section {
    background:
        radial-gradient(circle at 92% 8%, rgba(106,189,69,.075), transparent 28%),
        #e6eee3;
    padding-top: 32px;
    padding-bottom: 72px;
}

.assistance-v443-knowledge-shell {
    width: min(1180px, 100%);
    max-width: none;
    margin: 0 auto;
    border: 1px solid #a9c0a2;
    background:
        radial-gradient(circle at 95% 6%, rgba(106,189,69,.075), transparent 27%),
        #f8faf7;
    box-shadow:
        0 18px 46px rgba(22,58,37,.105),
        inset 0 0 0 1px rgba(255,255,255,.82);
}

.assistance-v443-knowledge-card {
    border-color: #adc5a5;
}

.assistance-v443-knowledge-card--dark {
    border-color: #365f43;
}

@media (max-width: 900px) {
    .contact-request-page {
        background: #edf3ea !important;
    }
}


/* ==========================================================================
   MPPME v4.4.5-Beta — Nous joindre : boutons et contours des services
   ========================================================================== */

.contact-v443-call-button {
    display: inline-flex !important;
    min-height: 48px;
    padding: 12px 20px !important;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 11px !important;
    background: rgba(255,255,255,.12) !important;
    color: #ffffff !important;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
    box-shadow: 0 10px 24px rgba(0,0,0,.10);
}

.contact-v443-call-button:hover {
    border-color: #ffffff !important;
    background: #ffffff !important;
    color: #173a25 !important;
}

.contact-v445-service-card--sst {
    border: 2px solid #69ae57;
}

.contact-v445-service-card--sst .contact-v443-service-code {
    border: 1px solid #b8d9ae;
    background: #e8f4e4;
    color: #347a25;
}

.contact-v443-service-card--urgent {
    border: 2px solid #b72f37;
}

.contact-v443-service-card--urgent::before {
    display: none;
}

.contact-v443-service-card--urgent .contact-v443-service-code {
    border: 1px solid #dfb6b9;
}

.contact-v445-service-card--tech {
    border: 2px solid #4f8fba;
}

.contact-v445-service-card--tech .contact-v443-service-code {
    border: 1px solid #b8d3e5;
    background: #e7f1f8;
    color: #286a95;
}

.contact-v445-service-card--tech .contact-v443-service-tag {
    color: #286a95;
}


/* ========================================================================== 
   MPPME v4.4.6-Beta — Appels, téléphones et Centre d'assistance
   ========================================================================== */

/* Le bouton APPELEZ-NOUS doit rester un vrai bouton même si une règle de lien globale intervient. */
.contact-v443-hero-actions a.contact-v444-call-button,
.contact-v443-hero-actions a.contact-v444-call-button:visited {
    display:inline-flex !important;
    min-width:148px;
    min-height:48px;
    padding:12px 20px !important;
    align-items:center;
    justify-content:center;
    border:1px solid #83c66a !important;
    border-radius:11px !important;
    background:#285a3a !important;
    color:#fff !important;
    font-weight:900 !important;
    text-decoration:none !important;
    box-shadow:0 10px 24px rgba(0,0,0,.16) !important;
}
.contact-v443-hero-actions a.contact-v444-call-button:hover { background:#173a25 !important; border-color:#b7e99f !important; color:#fff !important; }

/* Numéros = vrais boutons colorés selon le service. */
.contact-v443-service-card .contact-v443-phone {
    display:flex;
    width:100%;
    min-height:48px;
    margin-top:auto;
    padding:12px 16px;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:#fff !important;
    font-size:18px;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 9px 20px rgba(23,58,37,.12);
}
.contact-v445-service-card--sst .contact-v443-phone { background:#4f9e3b; }
.contact-v443-service-card--urgent .contact-v443-phone { background:#a9363d; color:#fff !important; }
.contact-v445-service-card--tech .contact-v443-phone { background:#3d7fa8; }
.contact-v443-service-card .contact-v443-phone:hover { filter:brightness(.92); }

.request-phone-section {
    background:#e3ebe0 !important;
    border-top:1px solid #c9d8c5;
    padding-top:58px;
    padding-bottom:72px;
}
.request-phone-head { max-width:860px; margin:0 auto 30px; text-align:center; }
.request-phone-head h2 { margin:6px 0 12px; color:#173a25; font-size:clamp(32px,3.4vw,46px); }
.request-phone-head p { margin:0 auto; max-width:800px; color:#59685f; line-height:1.7; text-align:justify; text-align-last:center; }
.request-phone-grid { width:min(1180px,100%); margin:0 auto; }

/* Assistance : intro > documentation > quatre chemins > routage. */
.assistance-triage-intro-section { padding-bottom:34px; }
.assistance-v446-knowledge-section { padding-top:10px; padding-bottom:38px; }
.assistance-v446-options-section { padding-top:34px; }


/* ==========================================================================
   MPPME v4.4.7-Beta — Nous joindre : téléphone simplifié
   ========================================================================== */

.contact-v447-phone-section {
    background:
        radial-gradient(circle at 12% 8%, rgba(106,189,69,.075), transparent 28%),
        #e4ebe1;
}

.contact-v447-phone-head {
    margin-bottom: 28px;
}

.contact-v447-phone-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    width: min(980px, 100%);
    margin: 0 auto;
    overflow: hidden;
    border: 2px solid #69ae57;
    border-radius: 26px;
    background:
        radial-gradient(circle at 95% 8%, rgba(106,189,69,.085), transparent 28%),
        #ffffff;
    box-shadow:
        0 18px 46px rgba(22,58,37,.10),
        inset 0 0 0 1px rgba(255,255,255,.82);
}

.contact-v447-phone-hours {
    padding: 30px 34px;
}

.contact-v447-phone-hours-title {
    margin-bottom: 17px;
    color: #173a25;
    font-size: 21px;
    font-weight: 900;
    text-align: center;
}

.contact-v447-phone-hours dl {
    margin: 0;
}

.contact-v447-phone-hours dl > div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    padding: 9px 0;
    border-bottom: 1px solid #e4ebe1;
    color: #405247;
    font-size: 14px;
}

.contact-v447-phone-hours dl > div:last-child {
    border-bottom: 0;
}

.contact-v447-phone-hours dt {
    font-weight: 850;
}

.contact-v447-phone-hours dd {
    margin: 0;
    color: #5c6b62;
    text-align: right;
}

.contact-v447-phone-call {
    display: flex;
    padding: 36px 32px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-left: 1px solid #cbdac6;
    background:
        radial-gradient(circle at 88% 12%, rgba(255,255,255,.13), transparent 30%),
        linear-gradient(145deg,#5cab3d 0%,#438f2f 58%,#317123 100%);
    color: #ffffff;
    text-align: center;
}

.contact-v447-phone-label {
    display: block;
    margin-bottom: 13px;
    color: #edf9e8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contact-v447-phone-button {
    display: inline-flex;
    min-width: min(100%, 280px);
    min-height: 58px;
    padding: 13px 22px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 13px;
    background: #173a25;
    color: #ffffff !important;
    font-size: 23px;
    font-weight: 950;
    letter-spacing: -.02em;
    text-decoration: none !important;
    box-shadow: 0 12px 30px rgba(15,45,25,.20);
    transition: transform .18s ease, background .18s ease;
}

.contact-v447-phone-button:hover {
    transform: translateY(-2px);
    background: #102b1b;
    color: #ffffff !important;
}

.contact-v447-phone-call p {
    max-width: 320px;
    margin: 17px 0 0;
    color: #edf7e9;
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
}

@media (max-width: 800px) {
    .contact-v447-phone-shell {
        grid-template-columns: 1fr;
    }

    .contact-v447-phone-call {
        border-top: 1px solid rgba(255,255,255,.25);
        border-left: 0;
    }
}



/* ==========================================================================
   v4.4.8-Beta — FAQ / Base de connaissances : palette harmonisée
   ========================================================================== */

.contact-v443-knowledge-card,
.assistance-v443-knowledge-card {
    border-color: #214a30 !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(151, 225, 116, .18), transparent 34%),
        linear-gradient(145deg, #173a25 0%, #214a30 48%, #2c6b39 100%) !important;
    color: #f7fff4 !important;
    box-shadow:
        0 16px 40px rgba(23, 58, 37, .12),
        inset 0 0 0 1px rgba(255,255,255,.04);
}

.contact-v443-knowledge-card::before,
.assistance-v443-knowledge-card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, #8be35f, #6abd45, #4a9c2e);
    opacity: .95;
}

.contact-v443-knowledge-number,
.assistance-v443-knowledge-number {
    background: rgba(122, 201, 85, .18) !important;
    border: 1px solid rgba(169, 230, 137, .32);
    color: #f3ffec !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

.contact-v443-knowledge-label,
.assistance-v443-knowledge-label,
.contact-v443-knowledge-card strong,
.assistance-v443-knowledge-card strong,
.contact-v443-knowledge-card p,
.assistance-v443-knowledge-card p,
.contact-v443-knowledge-action,
.assistance-v443-knowledge-action {
    color: #f7fff4 !important;
}

.contact-v443-knowledge-card p,
.assistance-v443-knowledge-card p {
    opacity: .92;
}

.contact-v443-knowledge-action,
.assistance-v443-knowledge-action {
    font-size: 13px;
    letter-spacing: .06em;
}

