/*
Theme Name:   Vision Santé Paris — Thème enfant Divi
Theme URI:    https://wkdo.fr
Description:  Thème enfant Divi 5 — typographie globale et composants du projet Vision Santé Paris
Author:       WKDO
Author URI:   https://wkdo.fr
Template:     Divi
Version:      1.2
*/

/* ============================================================
   PALETTE VSP (identique aux couleurs globales du JSON)
   Marron          #3D1F05      Marron profond  #2F1400
   Or              #BF8514      Or clair        #D9A23B
   Or foncé        #93630E      Crème clair     #FFF8F3
   Crème           #F5F0E2      Crème foncé     #EAE0C7
   Blanc           #FFFFFF      Bleu Doctolib   #0596DE
   Polices : Fraunces (titres, serif) · Jost (corps, sans)
   ============================================================ */

/**FONT CUSTOM**/

body {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    line-height: 1.65em;
    font-weight: 400;
    color: #5C3613;
}

p {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    line-height: 1.65em;
    font-weight: 400;
    color: #5C3613 !important;
}

h1 {
    font-family: 'Fraunces', serif;
    font-size: 54px;
    line-height: 1.08em;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #3D1F05 !important;
}

h1.entry-title {
    font-family: 'Fraunces', serif;
    font-size: 54px;
    line-height: 1.08em;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #3D1F05 !important;
}

h2 {
    font-family: 'Fraunces', serif;
    font-size: 38px;
    line-height: 1.15em;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #3D1F05 !important;
}

h3 {
    font-family: 'Fraunces', serif;
    font-size: 25px;
    line-height: 1.25em;
    font-weight: 600;
    color: #3D1F05 !important;
}

h4 {
    font-family: 'Fraunces', serif;
    font-size: 19px;
    line-height: 1.3em;
    font-weight: 600;
    color: #3D1F05 !important;
}

/* Eyebrow / sur-titre de section — trait doré de 28px avant le texte */
.gold-title {
    font-family: 'Jost', sans-serif;
    font-size: 12.5px;
    letter-spacing: 0.18em;
    line-height: 1.4em;
    font-weight: 600;
    text-transform: uppercase;
    color: #93630E !important;
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
}
.gold-title::before {
    content: "";
    width: 28px;
    height: 1px;
    background: #BF8514;
    flex-shrink: 0;
}
.gold-title--centre { justify-content: center; }
.gold-title--centre::before { display: none; }

/*Mobile font custom*/

@media screen and (max-width: 980px) {
    h1, h1.entry-title { font-size: 34px; }
    h2 { font-size: 27px; }
    h3 { font-size: 21px; }
    h4 { font-size: 18px; }
    .vsp-lead { font-size: 17px !important; }
}

/**COMPOSANTS VSP**/

/* Chiffres clés */
.vsp-chiffre {
    font-family: 'Fraunces', serif !important;
    font-size: 43px !important;
    line-height: 1.1em !important;
    font-weight: 600 !important;
    color: #BF8514 !important;
}
.vsp-chiffre-label {
    font-size: 13.4px !important;
    line-height: 1.45em !important;
    color: #5C3613 !important;
}
@media screen and (max-width: 980px) {
    .vsp-chiffre { font-size: 34px !important; }
}

/* Badge flottant du hero */
.vsp-badge-hero { position: relative; z-index: 2; backdrop-filter: blur(6px); }
.vsp-badge-hero p { font-size: 14px !important; line-height: 1.45em !important; }

/* Encadré sur fond sombre */
.vsp-callout {
    background: rgba(235, 224, 199, 0.08);
    border-left: 3px solid #D9A23B;
    border-radius: 6px;
    padding: 18px 20px;
}
.vsp-callout p { font-size: 15px !important; margin: 0; }

/* Liste à puces cochées (fond sombre) */
.vsp-liste-check ul { list-style: none; padding-left: 0; margin: 0; }
.vsp-liste-check ul li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 12px;
    font-size: 15.5px;
    line-height: 1.5em;
}
.vsp-liste-check ul li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    top: 0;
    color: #D9A23B;
    font-weight: 700;
    border: 1px solid rgba(217, 162, 59, 0.55);
    border-radius: 50%;
    width: 20px;
    height: 20px;
    line-height: 19px;
    text-align: center;
    font-size: 12px;
}

/* Motif art-déco en remplissage de colonne */
.vsp-motif,
.vsp-motif .et_pb_image_wrap,
.vsp-motif img { height: 100%; width: 100%; object-fit: cover; display: block; }

/* Pastilles d'état des cartes cabinet */
.vsp-badge p {
    display: inline-block;
    background: #EAE0C7 !important;
    color: #93630E !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.09em;
    border-radius: 999px;
    padding: 0.45em 1.1em !important;
    margin: 0;
}
.vsp-badge--fonce p { background: #3D1F05 !important; color: #EAE0C7 !important; }
.vsp-badge--clair p { background: #FFFFFF !important; color: #EAE0C7 !important; }

/* Focus visible (accessibilité AA) */
a:focus-visible,
button:focus-visible,
.et_pb_button:focus-visible { outline: 3px solid #BF8514; outline-offset: 3px; }

/**BANDEAU D'URGENCE + HEADER**/

.vsp-bandeau-urgence p {
    font-size: 13.8px !important;
    line-height: 1.4em !important;
    margin: 0;
}
.vsp-bandeau-urgence p::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #D9A23B;
    margin-right: 10px;
    vertical-align: middle;
    animation: vsp-pulse 1.8s ease-out infinite;
}
.vsp-bandeau-urgence a {
    color: #EBE0C7 !important;
    text-decoration: underline;
    font-size: 13.8px;
}
.vsp-bandeau-urgence a:hover { color: #D9A23B !important; }

@keyframes vsp-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(217, 162, 59, 0.6); }
    70%  { box-shadow: 0 0 0 7px rgba(217, 162, 59, 0); }
    100% { box-shadow: 0 0 0 0 rgba(217, 162, 59, 0); }
}

/**BARRE D'ACTIONS MOBILE**/

.vsp-barre-mobile {
    position: fixed !important;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    box-shadow: 0 -6px 20px -8px rgba(61, 31, 5, 0.22);
}
@media screen and (min-width: 981px) { .vsp-barre-mobile { display: none !important; } }

/**FOOTER**/

.vsp-footer-marque p {
    font-family: 'Fraunces', serif !important;
    font-size: 30px !important;
    line-height: 1.12em !important;
    font-weight: 600 !important;
    color: #FFF8F3 !important;
    margin: 0;
}
.vsp-footer-titre p {
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    color: #FFF8F3 !important;
    margin: 0 0 4px 0;
}
.vsp-footer-liens p { font-size: 14.2px !important; margin: 0; }
.vsp-footer-liens .et_pb_text:hover p span { color: #FFF8F3 !important; }
.vsp-footer-legal p {
    font-size: 12.5px !important;
    color: rgba(235, 224, 199, 0.55) !important;
    margin: 0;
}
.vsp-footer-legal:hover p { color: rgba(235, 224, 199, 0.85) !important; }
.vsp-social p { margin: 0; display: flex; gap: 10px; }
.vsp-social a {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(235, 224, 199, 0.35);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #EBE0C7;
}
.vsp-social a:hover { border-color: #D9A23B; color: #D9A23B; }

/**PAGES INTÉRIEURES — À PROPOS + GABARIT PATHOLOGIE**/

/* ---------- Sommaire sticky (colonne de gauche des pages pathologie) ---------- */
.vsp-toc {
    background: #FFFFFF;
    border: 1px solid rgba(61, 31, 5, 0.05);
    border-radius: 14px;
    padding: 26px 24px;
    box-shadow: 0 6px 20px -8px rgba(61, 31, 5, 0.14);
    position: sticky;
    top: 110px;
}
.vsp-toc-titre {
    font-size: 12.5px !important;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #93630E !important;
    margin: 0 !important;
}
.vsp-toc-liens ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.vsp-toc-liens ul li {
    padding: 9px 0;
    border-bottom: 1px dashed rgba(61, 31, 5, 0.14);
    line-height: 1.4em;
}
.vsp-toc-liens ul li:last-child { border-bottom: 0; }
.vsp-toc-liens ul li a {
    font-size: 14.4px;
    color: #5C3613 !important;
    text-decoration: none;
    transition: color 0.18s ease;
}
.vsp-toc-liens ul li a:hover { color: #93630E !important; }
.vsp-toc-note {
    font-size: 13.4px !important;
    line-height: 1.5em !important;
    color: #5C3613 !important;
    background: #F5F0E2;
    border-left: 3px solid #BF8514;
    border-radius: 6px;
    padding: 12px 14px;
    margin: 0 !important;
}

/* Encadré sur fond clair */
.vsp-callout-clair {
    background: #EAE0C7;
    border-left: 3px solid #BF8514;
    border-radius: 6px;
    padding: 18px 22px;
}
.vsp-callout-clair p {
    font-size: 15.4px !important;
    line-height: 1.6em !important;
    margin: 0 !important;
}

/* ---------- FAQ (accordéon natif details/summary) ---------- */
.vsp-faq details {
    border-bottom: 1px solid rgba(61, 31, 5, 0.12);
}
.vsp-faq details:first-child { border-top: 1px solid rgba(61, 31, 5, 0.12); }
.vsp-faq summary {
    font-family: 'Fraunces', serif;
    font-size: 17px;
    font-weight: 600;
    color: #3D1F05;
    line-height: 1.35em;
    padding: 20px 44px 20px 0;
    cursor: pointer;
    list-style: none;
    position: relative;
}
.vsp-faq summary::-webkit-details-marker { display: none; }
.vsp-faq summary::after {
    content: "+";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-family: 'Jost', sans-serif;
    font-size: 24px;
    font-weight: 400;
    color: #BF8514;
    transition: transform 0.22s ease;
}
.vsp-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.vsp-faq details > div { padding: 0 44px 22px 0; max-width: 680px; }
.vsp-faq details > div p {
    font-size: 15px !important;
    line-height: 1.65em !important;
    margin: 0 0 12px;
}
.vsp-faq details > div p:last-child { margin-bottom: 0; }
.vsp-faq details > div a { color: #93630E !important; font-weight: 500; }
.vsp-faq summary:focus-visible { outline: 3px solid #BF8514; outline-offset: 3px; }

/* ---------- Bloc praticien détaillé (page À propos) ---------- */
.vsp-diplomes ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.vsp-diplomes ul li {
    position: relative;
    padding-left: 18px;
    margin-bottom: 7px;
    font-size: 14.6px;
    line-height: 1.55em;
    color: #5C3613;
}
.vsp-diplomes ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 8px;
    height: 1px;
    background: #BF8514;
}

/* ---------- Cartes de contenu ---------- */
.vsp-texte-carte p { font-size: 14.6px !important; line-height: 1.6em !important; }
.vsp-carte-lieu-contenu { padding: 24px 24px 26px; }
.vsp-horaires p { font-size: 15.4px !important; line-height: 1.6em !important; }
.vsp-horaires strong { color: #3D1F05; font-weight: 600; }
.vsp-note-or p {
    font-size: 14.8px !important;
    background: #EAE0C7;
    border-left: 3px solid #BF8514;
    border-radius: 6px;
    padding: 14px 16px;
    margin: 0 !important;
}

/* ---------- Responsive pages intérieures ---------- */
@media screen and (max-width: 980px) {
    .vsp-toc {
        position: static;
        top: auto;
    }
    .vsp-carte-lieu-contenu { padding: 20px 20px 22px; }
}

@media screen and (max-width: 620px) {
    .vsp-toc { padding: 22px 20px; }
    .vsp-faq summary { font-size: 16px; padding-right: 38px; }
    .vsp-article h3 { font-size: 19px; }
}

/**STYLE CUSTOM**/

/*Bread-crumb custom*/

.bread-crumb{
    color: #5C3613!important;
    font-size: 0.8em !important;
}
.bread-crumb a{
    color: #93630E!important;
    font-size: 0.8em !important;
}

/* Changer la couleur des bullet points */

.bullet-customize ul {
  list-style: none;
}

.bullet-customize ul li::before {
    content: "\2022";
    color: #BF8514;
    font-size: 2em;
    padding-right: 10px;
    font-weight: 300;
    display: inline-block;
    width: 0.75em;
    line-height: 1em;
}

/*Links custom*/

a {
    font-size: 16px;
    line-height: 1.5em;
    font-weight: 500;
    color: #93630E;
}

/*Back to Top button custom*/

.et_pb_scroll_top.et-pb-icon.et-visible, .et_pb_scroll_top.et-hidden {
    background: #BF8514;
    color: #FFF8F3;
    border: 0px solid #BF8514;
    width: 50px;
    height: 50px;
    border-radius: 30px !important;
    right: 10px;
    align-content: center;
}

/* Étiquettes (pastilles mots-clés des cartes) */
.ph-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.ph-tags span { background: #EAE0C7; color: #3D1F05; font-size: 13px; padding: 4px 11px; border-radius: 50px; }

/* Badges actus — classe sur le module text, variantes .media / .pub */
.ph-badge p {
    display: inline-block;
    font-weight: 700!important;
    border-radius: 50px;
    margin-bottom: 8px;
    background: #EAE0C7 !important;
    color: #93630E !important;
    font-size: 14px !important;
    padding: .3em 1em!important;
    line-height: 1.7em !important;
}
.ph-badge.media p { background: #F5F0E2 !important; color: #BF8514 !important; }
.ph-badge.pub p  { background: #FFF8F3 !important; color: #5C3613 !important; }

/* Accessibilité : respect de prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .et_pb_button:hover,
    .vsp-carte-geo:hover { transform: none; }
    .vsp-bandeau-urgence p::before { animation: none; }
}

/*******CUSTOMIZE COMMENT FORM
 -------------------------*******/

.comment-form-url {
    display: none;
}

/*Contact Form 7 > Form Background & Border CSS
 -----------------------------------------------*/

 .wpcf7 {
    background: transparent;
    border: transparent;
    width: 100%;
    padding: 20px 20px 20px 20px !important;
 }

/*Contact Form 7 > Input CSS
 ---------------------------*/

 .wpcf7 input[type="text"],
 .wpcf7 input[type="email"],
 .wpcf7 input[type="tel"],
 .wpcf7 input[type="date"],
 .wpcf7 input[type="select"],
 .wpcf7 input[type="file"],
 textarea {
    font-size: 14px;
    color: #3D1F05;
    background-color: #FFF8F3;
    border: 1px solid rgba(61, 31, 5, 0.15);
    border-radius: 8px;
    width: 100%;
    padding: 3%;
}

/* Contact Form 7 > Select field
 ---------------------------*/

select.wpcf7-form-control {
    min-height: 35px !important;
    font-size: 13px;
    color: #3D1F05;
    font-weight: 700;
    background: none;
    border: 1px solid rgba(61, 31, 5, 0.15);
    width: 100%;
    padding: 2%;
}

/*Contact Form 7 > Submit Button
 -------------------------------*/

 .wpcf7 input[type="submit"] {
    color: #FFFFFF !important;
    border: 2px solid #BF8514 !important;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 600;
    background: #BF8514;
    width: auto;
    padding: 12px 28px;
}
 .wpcf7 input:hover[type="submit"] {
    color: #FFFFFF !important;
    border: 2px solid #93630E !important;
    background-color: #93630E;
    transition: all 0.4s ease 0s;
 }

/*Contact Form 7 > Columns
 ------------------------*/

.one-half,
.one-third {
    position: relative;
    float: left;
    margin-right: 2%;
    margin-bottom: 20px;
}
.one-half { width: 49%; }
.one-third { width: 30.66%; }
.one-half.last {
    margin-right: 0 !important;
    clear: right;
}
.wpcf7-form textarea{
 width: 100% !important;
 height:100px;
}
input.wpcf7-form-control.wpcf7-submit {
display: block;
margin: 0 auto;
}