/* =========================================================
   MENU MOBILE
========================================================= */

body:not(.pp-visualbuilder) .pp-slideover > .pp-block {
    width: 100vw !important;
}


/* =========================================================
   ACCORDÉON
========================================================= */

/* État fermé */
.collapsed {
    background-color: #eee;
    font-weight: normal !important;
}

/* Carte */
.sp-easy-accordion .sp-ea-single {
    border: none !important;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(123,123,123,.25);
}

/* État ouvert */
.sp-ea-one .ea-card.ea-expand {
    border-radius: 10px;
    box-shadow: 0 8px 25px rgba(0,0,0,.1);
}

/* Fond ouvert */
.sp-ea-one .ea-card.ea-expand .ea-header a {
    background-color: #ece6dd;
}


/* =========================================================
   HEADER ACCORDÉON
========================================================= */

/* Header */
.sp-ea-one.sp-easy-accordion .sp-ea-single .ea-header a {
    position: relative !important;
    display: block !important;
    padding: 10px 54px 10px 20px !important;
    color: #444 !important;
    background-color: #F2EFEB !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    text-align: left !important;
    line-height: 1.45 !important;
    text-decoration: none !important;
    text-transform: none !important;
    box-sizing: border-box !important;
    border: 0 !important;
    outline: 0 !important;
    transition: background-color .2s ease;
}

/* Hover */
.sp-ea-one.sp-easy-accordion .sp-ea-single .ea-header a:hover {
    background-color: #EFEBE6 !important;
}

/* Mobile */
@media (max-width: 768px) {
    .sp-ea-one.sp-easy-accordion .sp-ea-single .ea-header a {
        font-size: 12px !important;
        line-height: 1.35;
    }
}


/* =========================================================
   ICÔNES ACCORDÉON
========================================================= */

/* Supprime l'icône native */
.sp-easy-accordion .ea-expand-icon::before {
    content: "" !important;
}

/* Icône */
.sp-easy-accordion .ea-expand-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23686865' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
    transition: transform .25s ease;
    will-change: transform;
}

/* Fermé */
.sp-easy-accordion .eap-icon-ea-expand-plus {
    transform: translateY(-50%) rotate(0deg);
}

/* Ouvert */
.sp-easy-accordion .eap-icon-ea-expand-minus {
    transform: translateY(-50%) rotate(90deg);
}

/* Position */
.sp-ea-one.sp-easy-accordion .sp-ea-single .ea-header a .ea-expand-icon {
    position: absolute !important;
    top: 50% !important;
    right: 14px !important;
    left: auto !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    text-align: left !important;
}


/* =========================================================
   LISTES
========================================================= */

/* Reset listes */
.pp-text-module-body ul,
.public-DraftEditor-content ul.public-DraftStyleDefault-ul {
    margin-top: 0;
    margin-bottom: 10px;
    margin-left: 0 !important;
    padding-left: 0 !important;
    list-style: none !important;
    overflow: visible;
}

/* Items */
.pp-text-module-body ul li,
.public-DraftEditor-content li.public-DraftStyleDefault-unorderedListItem {
    position: relative;
    margin-left: 0;
    margin-bottom: .5em;
    padding-left: 1.5em;
    overflow: visible;
    list-style: none !important;
    line-height: 1.4;
}


/* =========================================================
   CONTENU ACCORDÉON
========================================================= */

/* Contenu */
.sp-easy-accordion .ea-body,
.sp-easy-accordion .ea-body p,
.sp-easy-accordion .ea-body li,
.sp-easy-accordion .ea-body li a {
    font-size: 16px !important;
    line-height: 1.4 !important;
}

/* Bloc */
.sp-easy-accordion .ea-body {
    padding: 20px !important;
    color: #222 !important;
    display: block !important;
    line-height: 1.2 !important;
    opacity: 1 !important;
    visibility: visible !important;
    will-change: height;
}

/* Paragraphes */
.sp-easy-accordion .ea-body p {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}

/* Espacement entre paragraphes */
.sp-easy-accordion .ea-body p:not(:last-child) {
    margin-bottom: 14px !important;
}

/* Supprime les paragraphes vides */
.sp-easy-accordion .ea-body p:empty {
    display: none !important;
}

/* Titres */
.sp-easy-accordion .ea-body > div strong,
.sp-easy-accordion .ea-body > p strong {
    display: block;
    margin-bottom: 14px;
    color: #2f2f2f;
    font-size: 1.15em;
    font-weight: 600;
}

/* Titre tarifs */
.sp-easy-accordion .ea-body p strong {
    margin-bottom: 10px;
}

/* Espace liste → paragraphe */
.sp-easy-accordion .ea-body ul + p {
    margin-top: 18px !important;
}

/* Listes */
.sp-easy-accordion .ea-body ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

/* Items */
.sp-easy-accordion .ea-body ul li {
    position: relative;
    margin-bottom: 6px;
    padding-left: 30px;
    list-style: none;
    line-height: 1.45;
}

/* Dernier item */
.sp-easy-accordion .ea-body ul li:last-child {
    margin-bottom: 0 !important;
}

/* Icône check */
.sp-easy-accordion .ea-body ul li::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 0;
    width: 22px;
    height: 22px;
    background-image: url("/wp-content/uploads/svg/check.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* Texte final */
.sp-easy-accordion .ea-body ul + p:last-of-type {
    margin-top: 20px !important;
    color: #5f5f5f;
    font-size: .95em;
    line-height: 1.4;
}


/* =========================================================
   CONTACT FORM 7
========================================================= */

/* Conteneur */
#formulaire-responsive {
    width: 100%;
    margin: 0 auto;
}

/* Titres */
#formulaire-responsive h2 {
    position: relative;
    padding: 15px 0 10px;
}

/* Focus */
#formulaire-responsive input:focus,
#formulaire-responsive textarea:focus {
    outline: 1px solid #9d9d9d;
}


/* =========================================================
   CHAMPS
========================================================= */

/* Champs communs */
.left-third-contact,
.middle-third-contact,
.right-third-contact,
.full-width-contact,
.left-half-contact,
.right-half-contact,
.message-contact {
    margin: 0 0 10px;
    padding: 10px;
    background-color: #f4f4f4;
    border: 0;
    color: #737373;
    font-size: calc(1em * .98);
    outline: none;
    font-display: swap;
}

/* Uniformisation */
#formulaire-responsive input[type="text"],
#formulaire-responsive input[type="email"],
#formulaire-responsive input[type="tel"],
#formulaire-responsive select,
#formulaire-responsive textarea {
    background-color: #f4f4f4 !important;
    color: #777 !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

/* Placeholders */
#formulaire-responsive input::placeholder,
#formulaire-responsive textarea::placeholder {
    color: #777 !important;
    opacity: 1 !important;
}


/* =========================================================
   SELECT
========================================================= */

/* Select */
.wpcf7-form-control.wpcf7-select {
    -webkit-appearance: none;
}

.wpcf7-form-control.wpcf7-select.full-width-contact {
    width: 100% !important;
}

/* Texte select */
#formulaire-responsive select {
    color: #777 !important;
}

/* Options */
#formulaire-responsive select option {
    color: #777;
    background-color: #f4f4f4;
}

/* Option sélectionnée */
#formulaire-responsive select option:not(:first-child) {
    color: #111 !important;
}


/* =========================================================
   CHAMPS EN 2 COLONNES
========================================================= */

/* Ligne Nom / Prénom et Email / Téléphone */
#formulaire-responsive p:has(.left-half-contact) {
    display: flex;
    gap: 8px;
}

/* Colonnes */
#formulaire-responsive p:has(.left-half-contact) .wpcf7-form-control-wrap {
    flex: 1;
}

#formulaire-responsive p:has(.left-half-contact) .left-half-contact,
#formulaire-responsive p:has(.left-half-contact) .right-half-contact {
    width: 100%;
    margin: 0 0 10px;
}


/* =========================================================
   CHAMPS EN 3 COLONNES
========================================================= */

.left-third-contact {
    width: calc(33.33% - 5px);
    margin: 0 7px 10px 0;
}

.middle-third-contact {
    width: calc(33.33% - 5px);
    margin: 0 7px 10px 0;
}

.right-third-contact {
    width: calc(33.33% - 5px);
    margin: 0 0 10px;
}


/* =========================================================
   MESSAGE
========================================================= */

.message-contact {
    width: 100% !important;
    max-width: 100%;
    height: 140px;
    min-height: 130px;
    max-height: 240px;
}


/* =========================================================
   ESPACEMENTS
========================================================= */

.contact-form-spacer {
    height: 20px;
}

#formulaire-responsive h3 {
    margin-bottom: 15px;
}

#formulaire-responsive > div {
    margin-bottom: 20px;
}


/* =========================================================
   BOUTON
========================================================= */

/* Bouton */
#formulaire-responsive input[type="submit"] {
    display: block;
    width: 260px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #000 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 16px !important;
    font-weight: 400;
    font-variant: normal;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
    transition: background-color 300ms ease-in-out, color 300ms ease-in-out;
}

/* Hover */
#formulaire-responsive input[type="submit"]:hover {
    background: #eee !important;
    color: #000 !important;
}


/* =========================================================
   POSITION
========================================================= */

/* Liens et textes */
#formulaire-responsive b,
#formulaire-responsive a {
    font-size: 14px;
}

/* Bouton à gauche */
.form-pos-center {
    width: 100%;
    margin: 40px 0 0;
    text-align: left;
}


/* =========================================================
   ACCEPTANCE
========================================================= */

.wpcf7-form-control-wrap.acceptance-666,
.wpcf7-form-control.wpcf7-radio {
    margin: 0 0 0 -14px;
}


/* =========================================================
   ERREURS
========================================================= */

/* Message sous le champ */
span.wpcf7-not-valid-tip {
    display: none;
    color: #f00;
    font-size: 1em;
}

/* Erreur formulaire */
div.wpcf7-validation-errors {
    border: 2px solid #f00;
}

/* Champ invalide */
.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required.wpcf7-not-valid,
.wpcf7-form-control.wpcf7-textarea.wpcf7-validates-as-required.wpcf7-not-valid,
.wpcf7-form-control.wpcf7-select.wpcf7-validates-as-required.wpcf7-not-valid {
    background-color: rgba(255,0,0,.02);
    border: 1px solid #f00;
}

/* Message envoyé */
div.wpcf7-mail-sent-ok {
    margin-top: 30px;
    padding: 8px;
    background-color: #e5f2e0;
    border: 1px solid #398f14;
    text-align: center;
}