/* ==========================================================
   PAGE CONTACT
   ========================================================== */

.contact-page {
    --contact-green-dark: #173f3f;
    --contact-green: #256764;
    --contact-green-light: #eaf2f0;
    --contact-orange: #e14924;
    --contact-orange-dark: #c23827;
    --contact-white: #ffffff;
    --contact-cream: #f8f5f0;
    --contact-grey: #5f6564;
    --contact-border: #dce3e1;

    background: var(--contact-cream);
}

.contact-container {
    width: min(90%, 1280px);
    margin-inline: auto;
}


/* HERO */

.contact-hero {
    padding: clamp(75px, 9vw, 130px) 0;

    color: var(--contact-white);

    background:
        linear-gradient(
            120deg,
            #0f3433,
            var(--contact-green-dark)
        );

    border-bottom: 8px solid var(--contact-orange);
}

.contact-eyebrow {
    margin: 0 0 12px;

    color: var(--contact-orange);

    font-size: 13px;
    font-weight: 800;

    letter-spacing: .13em;

    text-transform: uppercase;
}

.contact-hero h1 {
    margin: 0;

    color: var(--contact-white);

    font-size: clamp(52px, 8vw, 95px);
    line-height: .95;

    text-transform: uppercase;
}

.contact-hero__description {
    max-width: 700px;

    margin: 28px 0 0;

    color: rgb(255 255 255 / 82%);

    font-size: 18px;
    line-height: 1.7;
}


/* CONTENU */

.contact-section {
    padding: clamp(65px, 8vw, 110px) 0;
}

.contact-section__grid {
    display: grid;

    grid-template-columns:
        minmax(280px, .7fr)
        minmax(0, 1.3fr);

    gap: clamp(50px, 8vw, 120px);

    align-items: start;
}


/* INFORMATIONS */

.contact-information {
    padding: 35px;

    background: var(--contact-green-dark);

    border-radius: 14px;
}

.contact-information h2 {
    margin: 0;

    color: var(--contact-white);

    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.05;
}

.contact-information > p:not(.contact-eyebrow) {
    margin: 20px 0 35px;

    color: rgb(255 255 255 / 75%);

    line-height: 1.7;
}

.contact-information__item {
    display: flex;

    flex-direction: column;

    gap: 5px;

    padding: 18px 0;

    border-top: 1px solid rgb(255 255 255 / 14%);
}

.contact-information__item span {
    color: rgb(255 255 255 / 65%);

    font-size: 12px;

    text-transform: uppercase;
}

.contact-information__item strong {
    color: var(--contact-white);
}


/* FORMULAIRE */

.contact-form-wrapper {
    padding: clamp(25px, 4vw, 45px);

    background: var(--contact-white);

    border: 1px solid var(--contact-border);

    border-radius: 14px;

    box-shadow: 0 15px 40px rgb(23 63 63 / 8%);
}

.contact-form {
    display: grid;

    gap: 24px;
}

.contact-form__row {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px;
}

.contact-form__field {
    display: grid;

    gap: 9px;
}

.contact-form__field label {
    color: var(--contact-green-dark);

    font-size: 13px;
    font-weight: 800;
}

.contact-form__field label span {
    color: var(--contact-orange);
}

.contact-form input,
.contact-form textarea {
    width: 100%;

    padding: 14px 15px;

    color: #171715;

    background: #fff;

    border: 1px solid var(--contact-border);

    border-radius: 7px;

    font: inherit;

    transition:
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.contact-form textarea {
    min-height: 180px;

    resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus {
    outline: none;

    border-color: var(--contact-green);

    box-shadow:
        0 0 0 3px rgb(37 103 100 / 12%);
}


/* HONEYPOT */

.contact-form__honeypot {
    position: absolute !important;

    width: 1px;
    height: 1px;

    overflow: hidden;

    clip: rect(0 0 0 0);

    clip-path: inset(50%);

    white-space: nowrap;
}


/* CONFIDENTIALITÉ */

.contact-form__privacy {
    margin: 0;

    color: var(--contact-grey);

    font-size: 12px;
    line-height: 1.6;
}


/* BOUTON */

.contact-form__submit {
    display: inline-flex;

    min-height: 56px;

    align-items: center;
    justify-content: space-between;

    gap: 30px;

    justify-self: start;

    padding: 14px 22px;

    color: #fff;

    background: var(--contact-orange);

    border: 0;

    border-radius: 7px;

    font-size: 13px;
    font-weight: 800;

    text-transform: uppercase;

    cursor: pointer;

    transition:
        background 180ms ease,
        transform 180ms ease;
}

.contact-form__submit:hover {
    background: var(--contact-orange-dark);

    transform: translateY(-2px);
}


/* MESSAGES */

.contact-alert {
    margin-bottom: 28px;

    padding: 16px 18px;

    border-radius: 7px;

    font-size: 14px;
    line-height: 1.6;
}

.contact-alert--success {
    color: #164c36;

    background: #e5f5ed;

    border-left: 4px solid #256764;
}

.contact-alert--warning {
    color: #76531c;

    background: #fff4d9;

    border-left: 4px solid #d99a21;
}

.contact-alert--error {
    color: #7b2b20;

    background: #fff0ed;

    border-left: 4px solid #e14924;
}


/* TABLETTE */

@media (max-width: 950px) {

    .contact-section__grid {
        grid-template-columns: 1fr;

        gap: 40px;
    }
}


/* TÉLÉPHONE */

@media (max-width: 700px) {

    .contact-container {
        width: 91%;
    }

    .contact-hero {
        padding: 70px 0;
    }

    .contact-hero h1 {
        font-size: clamp(40px, 13vw, 58px);
    }

    .contact-hero__description {
        font-size: 16px;
    }

    .contact-section {
        padding: 55px 0;
    }

    .contact-information {
        padding: 27px 22px;
    }

    .contact-form-wrapper {
        padding: 25px 18px;
    }

    .contact-form__row {
        grid-template-columns: 1fr;
    }

    .contact-form__submit {
        width: 100%;
    }
}