/* ==========================================================================
   VALENTIN HENRY — FEUILLE DE STYLE UNIQUE (source de vérité)
   --------------------------------------------------------------------------
   Ce fichier regroupe TOUT le CSS personnalisé du site.
   Chargé en dernier (mu-plugin, priorité 999), après tout Elementor.
   => Pour modifier le style du site : c'est ICI, et nulle part ailleurs.

   Anciennes sources VIDÉES et rapatriées ci-dessous :
     - Custom CSS du Kit Elementor (Réglages du site > CSS personnalisé)
     - CSS additionnel du Customizer (Apparence > Personnaliser)
   Sauvegardes données Elementor : post-meta _elementor_data_bak (stamp 20260626-092648).
   ========================================================================== */


/* ######################################################################
   BLOC 1 — GLOBAL + HEADER + HERO ACCUEIL  (ex-Kit Elementor)
   ###################################################################### */

/* ============================================
   VALENTIN HENRY — CUSTOM CSS
   ============================================ */

/* === FOND GLOBAL === */
body, html { background-color: #f5f0e6 !important; }
.site, .site-content, #content, .site-main,
article.post, article.page, .hentry, .entry-content {
    background-color: #f5f0e6 !important;
}

/* === MASQUER HEADER NATIF HELLO ELEMENTOR === */
.site-header { display: none !important; }

/* === HEADER ELEMENTOR PRO === */
.elementor-location-header {
    background-color: rgba(245, 240, 230, 0.95) !important;
    backdrop-filter: blur(5px);
    border-bottom: 3px solid #2c5545 !important;
    position: fixed !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Container direct : le section header (#header-section) */
.elementor-location-header > .e-con {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* e-con-inner du header-section : c'est LUI le flex row */
.elementor-location-header > .e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 16px 5% !important;
    box-sizing: border-box !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
    height: auto !important;
    min-height: 63px !important;
}

/* logo-container : 1er enfant direct du e-con-inner */
.elementor-location-header > .e-con > .e-con-inner > .e-con {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 50% !important;
    position: static !important;
    overflow: visible !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-location-header > .e-con > .e-con-inner > .e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 14px !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    height: auto !important;
    position: static !important;
}

/* Nested containers dans logo (logo-text, logo-vh) */
.elementor-location-header > .e-con > .e-con-inner > .e-con > .e-con-inner > .e-con {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    position: static !important;
    padding: 0 !important;
    height: auto !important;
}
.elementor-location-header > .e-con > .e-con-inner > .e-con > .e-con-inner > .e-con > .e-con-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    height: auto !important;
    position: static !important;
}

/* Monogramme VH */
.elementor-location-header [data-id="logo-vh"] .elementor-widget-container {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    border-radius: 50% !important;
    background-color: #2c5545 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
}
.elementor-location-header [data-id="logo-vh"] .elementor-heading-title {
    color: #ffffff !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    font-family: 'Raleway', sans-serif !important;
    line-height: 1 !important;
    margin: 0 !important;
    white-space: nowrap !important;
}
.elementor-location-header [data-id="logo-name"] .elementor-heading-title {
    white-space: nowrap !important;
    color: #2c5545 !important;
    font-size: 24px !important;
    font-weight: 600 !important;
    font-family: 'Raleway', sans-serif !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}
.elementor-location-header [data-id="logo-subtitle"] p {
    white-space: nowrap !important;
    font-size: 16px !important;
    color: #555555 !important;
    font-family: 'Raleway', sans-serif !important;
    margin: 0 !important;
}

/* Nav widget */
.elementor-location-header [data-id="nav-widget"] {
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    width: auto !important;
}
.elementor-location-header .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 28px !important;
    list-style: none !important;
    margin: 0 !important; padding: 0 !important;
    align-items: center !important;
}
.elementor-location-header .elementor-nav-menu .elementor-item {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    color: #333333 !important;
    text-decoration: none !important;
    position: relative !important;
    padding-bottom: 4px !important;
    white-space: nowrap !important;
    transition: color 0.3s !important;
}
.elementor-location-header .elementor-nav-menu .elementor-item::after {
    content: ''; position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 2px;
    background-color: #2c5545;
    transition: width 0.3s; display: block;
}
.elementor-location-header .elementor-nav-menu .elementor-item:hover { color: #2c5545 !important; }
.elementor-location-header .elementor-nav-menu .elementor-item:hover::after { width: 100% !important; }
.elementor-location-header .elementor-nav-menu .elementor-item-active { color: #2c5545 !important; }
.elementor-location-header .elementor-nav-menu .elementor-item-active::after { width: 100% !important; }

/* Compenser header fixe */
.site-content { padding-top: 95px !important; margin-top: 0 !important; }
.site-content > *, .elementor > .e-con:first-child { margin-top: 0 !important; }

/* === HERO PAGE ACCUEIL === */
[data-id="hero-section"] {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    min-height: calc(100vh - 95px) !important;
    width: 100% !important;
    padding: 0 !important; margin: 0 !important;
}
[data-id="hero-section"] > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 100% !important; max-width: 100% !important;
    padding: 0 !important; margin: 0 !important;
    flex-wrap: nowrap !important;
}
[data-id="hero-image-container"] {
    width: 55% !important; max-width: 55% !important;
    min-height: calc(100vh - 95px) !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
}
[data-id="hero-image-container"] > .e-con-inner { display: none !important; }
[data-id="hero-content"] {
    width: 45% !important; max-width: 45% !important;
    min-height: calc(100vh - 95px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 60px 8% !important;
    background-color: #E8F0EB !important;
    box-sizing: border-box !important;
}
[data-id="hero-content"] > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 20px !important;
    width: 100% !important; max-width: 100% !important;
    padding: 0 !important; height: auto !important;
}
[data-id="hero-content"] .elementor-heading-title,
[data-id="hero-content"] p { text-align: center !important; }

/* === COULEURS GLOBALES === */
:root {
    --e-global-color-primary: #2c5545 !important;
    --e-global-color-secondary: #3a7259 !important;
    --e-global-color-text: #333333 !important;
    --e-global-color-accent: #e0ceb1 !important;
}
h1, h2, h3, h4, h5, h6, .elementor-heading-title {
    font-family: 'Raleway', sans-serif !important; color: #2c5545;
}
body, p, li, span { font-family: 'Raleway', sans-serif; color: #333333; }
.elementor-button { font-family: 'Raleway', sans-serif !important; }
/* === CORRECTION ADMIN BAR + HEADER TOP === */
/* Header descend sous la barre admin WP */
.admin-bar .elementor-location-header {
    top: 32px !important;
}

/* Compensation pour le contenu : admin bar (32) + header (95) */
.admin-bar .site-content {
    padding-top: 95px !important;
}

/* Sans admin bar */
body:not(.admin-bar) .site-content {
    padding-top: 95px !important;
}

/* === CORRECTION LOGO CONTAINER HEIGHT === */
/* Force align-self:center pour éviter l'étirement */
.elementor-location-header > .e-con > .e-con-inner > .e-con {
    align-self: center !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 63px !important;
}
.elementor-location-header > .e-con > .e-con-inner > .e-con > .e-con-inner {
    height: auto !important;
    min-height: 0 !important;
    align-items: center !important;
}
/* === CORRECTIF CERCLE VH === */
/* Le widget heading logo-vh n'a pas de .elementor-widget-container */
/* On cible directement l'élément */
.elementor-location-header [data-id="logo-vh"] {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 50% !important;
    background-color: #2c5545 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-location-header [data-id="logo-vh"] .elementor-heading-title,
.elementor-location-header [data-id="logo-vh"] p {
    color: #ffffff !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    font-family: 'Raleway', sans-serif !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}
/* === 1. SOULIGNEMENT MENU : forcer la couleur verte avec !important === */
.elementor-location-header .elementor-nav-menu .elementor-item::after,
.elementor-nav-menu--pointer-underline .elementor-nav-menu .elementor-item::after,
.elementor-nav-menu--pointer-underline .elementor-nav-menu .elementor-item::before {
    background-color: #2c5545 !important;
    height: 2px !important;
}

/* === 2. HEADER MAX-WIDTH : contraindre l'e-con-inner === */
.elementor-location-header > .e-con > .e-con-inner {
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 94px !important;
    padding-right: 94px !important;
}

/* === 3. FOND #E8F0EB SUR TOUTE LA SECTION HERO === */
[data-id="hero-section"] {
    background-color: #E8F0EB !important;
}

/* === 4. PROPORTIONS 66% / 34% === */
[data-id="hero-image-container"] {
    width: 66% !important;
    max-width: 66% !important;
}
[data-id="hero-content"] {
    width: 34% !important;
    max-width: 34% !important;
}

/* === 5. ESPACE AU-DESSUS DE LA PHOTO === */
/* padding-top sur la section cree un espace de 25px
   qui laisse apparaitre le fond #E8F0EB au-dessus de la photo */
[data-id="hero-section"],
[data-id="hero-section"] > .e-con-inner {
    padding-top: 25px !important;
}
/* === CORRECTION PADDING HERO CONTENT (original : 32px) === */
[data-id="hero-content"] {
    padding: 32px !important;
    align-items: center !important;
    justify-content: center !important;
}
[data-id="hero-content"] > .e-con-inner {
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
}

/* === CORRECTION GAP AU-DESSUS DE LA PHOTO ===
   - L'e-con-inner a padding-top: 25px (un seul niveau de padding)
   - Le [data-id="hero-section"] lui-meme n'a pas de padding-top supplementaire */
[data-id="hero-section"] {
    padding-top: 0 !important;
}
[data-id="hero-section"] > .e-con-inner {
    padding-top: 25px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
}

/* === Correction : la règle globale span/body ne doit pas teinter la barre d'admin WordPress === */
#wpadminbar span,
#wpadminbar .ab-item,
#wpadminbar a { color: inherit; }
#wpadminbar .display-name,
#wpadminbar .elementor-edit-link-title { color: inherit; }


/* ######################################################################
   BLOC 2 — OVERRIDES HAUTE PRIORITÉ  (marges header, espace photo)
   ###################################################################### */

/* === HEADER : marges gauche/droite === */
.elementor-location-header > .e-con > .e-con-inner {
    padding-left: 94px !important;
    padding-right: 94px !important;
    max-width: 1600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* === ESPACE AU-DESSUS DE LA PHOTO ===
   Le e-con-inner du hero pousse les éléments de 25px vers le bas,
   révélant le fond #E8F0EB de la section au-dessus de la photo */
[data-id="hero-section"] > .e-con-inner {
    padding-top: 25px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
}

[data-id="hero-image-container"] {
    margin-top: 0 !important;
}


/* ######################################################################
   BLOC 3 — FOOTER + ACCUEIL (pleine hauteur) + À PROPOS + SOINS  (ex-Customizer)
   ###################################################################### */

/* Footer natif Hello Elementor masqué — le footer Elementor (Theme Builder) prend le relais et reste modifiable */
footer.site-footer {
    display: none !important;
}

/* Accueil : la section hero remplit la hauteur dispo sous le header, photo jusqu'en bas */
@media (min-width: 768px) {
    body:not(.elementor-editor-active).page-id-16 {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
    }
    body.admin-bar:not(.elementor-editor-active).page-id-16 {
        min-height: calc(100vh - 32px);
    }
    body:not(.elementor-editor-active).page-id-16 > main#content {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }
    body:not(.elementor-editor-active).page-id-16 > main#content > .page-content {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }
    body:not(.elementor-editor-active).page-id-16 .page-content > .elementor {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }
    body:not(.elementor-editor-active).page-id-16 .elementor-element-hero-section {
        flex: 1 0 auto !important;
        min-height: 100vh !important;
    }
    body:not(.elementor-editor-active).page-id-16 .elementor-element-hero-image-container,
    body:not(.elementor-editor-active).page-id-16 .elementor-element-hero-content {
        min-height: 0 !important;
    }
}

/* À propos : texte à gauche, image à droite (conforme au site d'origine) */
@media (min-width: 768px) {
    .elementor-element-about-content > .e-con-inner {
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 50px;
    }
    .elementor-element-about-text-col {
        flex: 1 1 0 !important;
        width: auto !important;
    }
    .elementor-element-about-img-col {
        flex: 1 1 0 !important;
        width: auto !important;
    }
    .elementor-element-about-img-col img {
        max-height: 600px;
        object-fit: cover;
        width: 100%;
        border-radius: 10px !important;
    }
}

/* ===== Page Soins : cartes fidèles à la version HTML ===== */
/* Carte : fond blanc, coins arrondis, ombre */
.elementor-element-soins-cards > .e-con-inner > .e-con {
    background-color: #ffffff !important;
    border-radius: 10px !important;
    box-shadow: 0 5px 20px rgba(0,0,0,0.05) !important;
    padding: 2rem !important;
    transition: transform .3s ease, box-shadow .3s ease !important;
}
.elementor-element-soins-cards > .e-con-inner > .e-con:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important;
}
/* Contenu centré vertical, bouton poussé en bas */
.elementor-element-soins-cards > .e-con-inner > .e-con > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    flex-grow: 1 !important;
}
.elementor-element-soins-cards .elementor-widget-button {
    margin-top: auto !important;
}
/* Icône : rond à fond vert clair, centré */
.elementor-element-soins-cards .elementor-widget-heading:first-child .elementor-heading-title {
    width: 80px !important;
    height: 80px !important;
    line-height: 80px !important;
    border-radius: 50% !important;
    background-color: #e8f0eb !important;
    margin: 0 auto 1.2rem !important;
    font-size: 40px !important;
    text-align: center !important;
    padding: 0 !important;
}
/* Bouton "En savoir plus" : texte vert, sans fond ni bordure */
.elementor-element-soins-cards .elementor-button {
    background-color: transparent !important;
    color: #2c5545 !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-weight: 600 !important;
}
.elementor-element-soins-cards > .e-con-inner > .e-con:hover .elementor-button {
    color: #3a7259 !important;
}
/* 3 cartes sur une ligne au desktop */
@media (min-width: 769px) {
    .elementor-element-soins-cards > .e-con-inner {
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: stretch !important;
        gap: 30px !important;
    }
    .elementor-element-soins-cards > .e-con-inner > .e-con {
        flex: 1 1 0 !important;
        max-width: 380px !important;
        width: auto !important;
    }
}


/* ######################################################################
   BLOC 4 — PAGES DÉTAIL SOINS  (Ostéopathie, Désensibilisation, Microbiote)
   ###################################################################### */

/* Titre + séparateur centrés sur la page */
.elementor-element-detail-header,
.elementor-element-detail-header > .e-con-inner {
    text-align: center !important;
    align-items: center !important;
}
.elementor-element-detail-title .elementor-heading-title {
    text-align: center !important;
}
.elementor-element-detail-sep .elementor-divider {
    justify-content: center !important;
}
.elementor-element-detail-sep .elementor-divider-separator {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Bouton "Prendre rendez-vous" : texte blanc + pilule très arrondie */
.elementor-element-detail-cta .elementor-button {
    border-radius: 50px !important;
    color: #ffffff !important;
}
.elementor-element-detail-cta .elementor-button .elementor-button-text {
    color: #ffffff !important;
}


/* ######################################################################
   BLOC 5 — PAGE PRISE DE RDV  (telephone, 2 cartes lieux, boutons)
   ###################################################################### */

/* --- Bandeau telephone : encadre blanc, centre, plus gros --- */
.elementor-element-phone-block > .e-con-inner,
.elementor-element-phone-block {
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}
.elementor-element-phone-text {
    background-color: #ffffff !important;
    padding: 18px 40px !important;
    border-radius: 10px !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.08) !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
}
.elementor-element-phone-text,
.elementor-element-phone-text p,
.elementor-element-phone-text a,
.elementor-element-phone-text span {
    font-size: 24px !important;
    line-height: 1.3 !important;
    color: #2c5545 !important;
    font-weight: 600 !important;
    margin: 0 !important;
    text-align: center !important;
}

/* --- Deux cartes lieux cote a cote, encadrees --- */
@media (min-width: 769px) {
    .elementor-element-rdv-cards > .e-con-inner {
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: stretch !important;
        gap: 40px !important;
    }
    .elementor-element-card-grenoble,
    .elementor-element-card-van {
        flex: 1 1 0 !important;
        max-width: 560px !important;
        width: auto !important;
    }
}
.elementor-element-card-grenoble,
.elementor-element-card-van {
    background-color: #ffffff !important;
    border-radius: 10px !important;
    box-shadow: 0 5px 20px rgba(0,0,0,0.08) !important;
    overflow: hidden !important;
    padding: 0 !important;
}
.elementor-element-card-grenoble > .e-con-inner,
.elementor-element-card-van > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    gap: 0 !important;
    flex-grow: 1 !important;
    height: 100% !important;
}
.elementor-element-card-grenoble .elementor-widget,
.elementor-element-card-van .elementor-widget {
    width: 100% !important;
    margin: 0 !important;
}
/* En-tete vert clair */
.elementor-element-gren-title .elementor-heading-title,
.elementor-element-van-title .elementor-heading-title {
    background-color: #e8f0eb !important;
    color: #2c5545 !important;
    text-align: center !important;
    padding: 18px 16px !important;
    margin: 0 !important;
    font-weight: 600 !important;
}
/* Image 200px cover */
.elementor-element-gren-img img,
.elementor-element-van-img img {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    display: block !important;
}
/* Infos : padding interne */
.elementor-element-gren-info,
.elementor-element-van-info {
    padding: 1.5rem !important;
}
/* Conteneur bouton : centre, pousse en bas */
.elementor-element-gren-btn,
.elementor-element-van-btn {
    text-align: center !important;
    padding: 0 1.5rem 1.5rem !important;
    margin-top: auto !important;
}
/* Boutons : pilule + texte blanc */
.elementor-element-gren-btn .elementor-button,
.elementor-element-van-btn .elementor-button {
    border-radius: 50px !important;
    background-color: #2c5545 !important;
    color: #ffffff !important;
}
.elementor-element-gren-btn .elementor-button .elementor-button-text,
.elementor-element-van-btn .elementor-button .elementor-button-text {
    color: #ffffff !important;
}


/* ######################################################################
   BLOC 6 — PRISE DE RDV : encarts "Informations importantes" (2 cadres)
   ###################################################################### */
@media (min-width: 769px) {
    .elementor-element-rdv-infos > .e-con-inner {
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: stretch !important;
        gap: 40px !important;
    }
    .elementor-element-info-grenoble,
    .elementor-element-info-van {
        flex: 1 1 0 !important;
        max-width: 560px !important;
        width: auto !important;
    }
}
.elementor-element-info-grenoble,
.elementor-element-info-van {
    background-color: #e8f0eb !important;
    border-radius: 10px !important;
    padding: 1.5rem !important;
}
.elementor-element-ig-title .elementor-heading-title,
.elementor-element-iv-title .elementor-heading-title {
    color: #2c5545 !important;
    font-weight: 600 !important;
    margin: 0 0 1rem 0 !important;
}


/* ######################################################################
   BLOC 8 — PAGE PLANNING OSTEO'VAN (page dédiée, fidèle à l'original HTML)
   ###################################################################### */
:root{--beige-clair:#f5f0e6;--beige-fonce:#e0ceb1;--vert-fonce:#2c5545;--vert-moyen:#3a7259;--texte-fonce:#333333;--fond-clair:#e8f0eb;}
.osteo-van-planning{display:block;padding:80px 20px;background-color:var(--beige-clair);width:100%;}
.osteo-van-planning .separator{width:80px;height:3px;background-color:var(--vert-moyen);margin:0 auto;}
.osteo-van-planning .details-container{max-width:1200px;margin:0 auto;}
.osteo-van-planning .details-header{text-align:center;margin-bottom:3rem;position:relative;}
.osteo-van-planning .back-button{position:absolute;left:0;top:0;display:flex;align-items:center;background:none;border:none;color:var(--vert-moyen);font-weight:600;cursor:pointer;text-decoration:none;transition:color .3s ease;}
.osteo-van-planning .back-button:hover{color:var(--vert-fonce);}
.osteo-van-planning .details-header h2{font-size:2.5rem;color:var(--vert-fonce);font-weight:700;margin-bottom:.5rem;font-family:'Open Sans',sans-serif;}
.van-locations-container{background-color:#fff;border-radius:10px;padding:2rem;margin-bottom:3rem;box-shadow:0 5px 20px rgba(0,0,0,.08);}
.van-locations-container h3{font-size:1.8rem;color:var(--vert-moyen);margin-bottom:1rem;text-align:center;font-family:'Open Sans',sans-serif;font-weight:600;}
.van-locations-container p{text-align:center;margin-bottom:2rem;}
.van-locations{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;}
.village-card{background-color:var(--fond-clair);padding:1.5rem;border-radius:8px;text-decoration:none;color:var(--texte-fonce);transition:all .3s ease;display:block;border-left:4px solid var(--vert-moyen);}
.village-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.1);border-left-color:var(--vert-fonce);}
.village-card h4{font-size:1.4rem;color:var(--vert-fonce);margin-bottom:.5rem;}
.village-card p{margin-bottom:0;text-align:left;font-size:.9rem;}
.calendar-tabs-container{background-color:#fff;border-radius:10px;padding:2rem;margin-bottom:3rem;box-shadow:0 5px 20px rgba(0,0,0,.08);}
.calendar-tabs-container h3{font-size:1.8rem;color:var(--vert-moyen);margin-bottom:1.5rem;text-align:center;font-family:'Open Sans',sans-serif;font-weight:600;}
.calendar-tab-buttons{display:flex;justify-content:center;margin-bottom:1.5rem;gap:10px;flex-wrap:wrap;}
.tab-button{background-color:var(--fond-clair);border:none;color:var(--vert-fonce);padding:10px 20px;border-radius:5px;cursor:pointer;font-weight:600;transition:all .3s ease;}
.tab-button:hover{background-color:var(--beige-fonce);}
.tab-button.active{background-color:var(--vert-moyen);color:#fff;}
.calendar-tab-content{display:none;}
.calendar-tab-content.active{display:block;}
.calendar{width:100%;border-collapse:collapse;margin-bottom:1.5rem;}
.calendar th,.calendar td{border:1px solid #ddd;padding:10px;text-align:center;position:relative;}
.calendar th{background-color:var(--fond-clair);color:var(--vert-fonce);font-weight:600;}
.calendar td{height:80px;vertical-align:top;}
.calendar td:empty{background-color:#f9f9f9;}
.has-event{background-color:#e8f0eb;font-weight:600;}
.event-indicator{position:absolute;bottom:5px;left:0;right:0;font-size:.8rem;color:var(--vert-fonce);background-color:var(--beige-fonce);padding:2px 4px;border-radius:3px;margin:0 5px;}

/* pas de soulignement sur les cartes village */
.van-locations .village-card, .van-locations .village-card *{ text-decoration: none !important; }



/* ######################################################################
   BLOC 9 — PAGE CONTACT  (2 boites cote a cote, icones rondes, boutons, formulaire)
   ###################################################################### */
@media (min-width:769px){
  .elementor-element-contactrow > .e-con-inner{
    flex-wrap:nowrap !important; align-items:stretch !important; justify-content:center !important; gap:40px !important;
  }
  .elementor-element-infobox, .elementor-element-mapbox{
    flex:1 1 0 !important; max-width:none !important; width:auto !important;
  }
}
.elementor-element-infobox, .elementor-element-mapbox, .elementor-element-contact-form-col{
  background-color:#fff !important; border-radius:10px !important; padding:2rem !important;
  box-shadow:0 5px 15px rgba(0,0,0,0.05) !important;
}
.elementor-element-contact-form-col{ margin-top:40px !important; width:auto !important; }
.elementor-element-infobox .elementor-heading-title,
.elementor-element-mapbox .elementor-heading-title,
.elementor-element-contact-form-col .elementor-heading-title{
  font-size:1.8rem !important; color:#3a7259 !important; font-family:'Open Sans',sans-serif !important; font-weight:600 !important; margin-bottom:1.2rem !important;
}
/* Infos contact = widgets Icon Box, editables par le client. Rendu : icone ronde verte + libelle + valeur */
.elementor-element-infobox .elementor-widget-icon-box{ margin-bottom:1.5rem !important; }
.elementor-element-infobox .elementor-widget-icon-box:last-child{ margin-bottom:0 !important; }
.elementor-element-infobox .elementor-icon-box-wrapper{ display:flex !important; align-items:flex-start !important; text-align:left !important; }
.elementor-element-infobox .elementor-icon-box-icon{ margin:0 1rem 0 0 !important; }
.elementor-element-infobox .elementor-icon-box-icon .elementor-icon{ width:50px !important; height:50px !important; display:flex !important; align-items:center !important; justify-content:center !important; background-color:#e8f0eb !important; border-radius:50% !important; color:#2c5545 !important; font-size:22px !important; border:none !important; padding:0 !important; line-height:1 !important; }
.elementor-element-infobox .elementor-icon-box-icon .elementor-icon svg{ width:22px !important; height:22px !important; fill:#2c5545 !important; }
.elementor-element-infobox .elementor-icon-box-content{ text-align:left !important; }
.elementor-element-infobox .elementor-icon-box-title{ font-size:1.2rem !important; color:#2c5545 !important; font-weight:600 !important; margin:0 0 .3rem !important; }
.elementor-element-infobox .elementor-icon-box-title a{ color:#2c5545 !important; text-decoration:none !important; }
.elementor-element-infobox .elementor-icon-box-description{ font-size:1.1rem !important; color:#333333 !important; line-height:1.5 !important; margin:0 !important; white-space:pre-line !important; }
.elementor-element-mapbox iframe{ border-radius:8px; }
/* Bouton Voir sur Google Maps : vert plein, blanc, pilule */
.elementor-element-ci-map-link .elementor-button{
  background-color:#2c5545 !important; border:none !important; border-radius:50px !important; color:#fff !important; padding:0.8rem 1.4rem !important;
}
.elementor-element-ci-map-link .elementor-button .elementor-button-text{ color:#fff !important; }
.elementor-element-ci-map-link .elementor-button:hover{ background-color:#3a7259 !important; }
/* Formulaire : bouton Envoyer compact, vert pilule blanc */
.elementor-element-contact-form .elementor-field-type-submit{ display:flex !important; justify-content:center !important; }
.elementor-element-contact-form button.elementor-button{
  width:auto !important; flex:0 0 auto !important; background-color:#2c5545 !important; color:#fff !important; border:none !important; border-radius:50px !important; padding:0.8rem 2rem !important;
}
.elementor-element-contact-form button.elementor-button .elementor-button-text{ color:#fff !important; }
.elementor-element-contact-form button.elementor-button:hover{ background-color:#3a7259 !important; }
/* Consentement : case a cocher PUIS texte, sur la meme ligne */
.elementor-element-contact-form .elementor-field-type-acceptance{
  display:flex !important; flex-direction:row-reverse !important; justify-content:flex-end !important; align-items:flex-start !important; gap:8px !important;
}
.elementor-element-contact-form .elementor-field-type-acceptance .elementor-field-label{ margin:0 !important; font-weight:400 !important; line-height:1.4 !important; }
.elementor-element-contact-form .elementor-field-type-acceptance .elementor-field-subgroup{ flex:0 0 auto !important; }
.elementor-element-contact-form .elementor-field-type-acceptance input[type=checkbox]{ width:auto !important; min-width:0 !important; flex:0 0 auto !important; margin-top:3px !important; }



/* ######################################################################
   BLOC 10 — PAGE INFOS  (accordeon arrondi/separe + 3 cartes cliquables)
   ###################################################################### */
/* Accordeon : items arrondis, separes, en cartes blanches */
.elementor-element-faq-accordion .elementor-accordion-item{
  border:none !important; border-radius:10px !important; overflow:hidden !important;
  margin-bottom:1rem !important; background:#fff !important; box-shadow:0 3px 10px rgba(0,0,0,0.05) !important;
}
.elementor-element-faq-accordion .elementor-tab-title,
.elementor-element-faq-accordion .elementor-tab-content{ border:none !important; }
.elementor-element-faq-accordion .elementor-accordion{ border:none !important; }

/* 3 cartes cote a cote, cadres blancs cliquables */
@media (min-width:769px){
  .elementor-element-info-links > .e-con-inner{
    flex-wrap:nowrap !important; justify-content:center !important; align-items:stretch !important; gap:20px !important;
  }
  .elementor-element-link-prep,
  .elementor-element-link-rdv,
  .elementor-element-link-exercices{ flex:1 1 0 !important; max-width:300px !important; width:auto !important; }
}
/* ordre : Preparer, RDV (milieu), Exercices */
.elementor-element-link-prep{ order:1 !important; }
.elementor-element-link-rdv{ order:2 !important; }
.elementor-element-link-exercices{ order:3 !important; }
.elementor-element-link-prep,
.elementor-element-link-rdv,
.elementor-element-link-exercices{
  background-color:#fff !important; border-radius:10px !important; box-shadow:0 3px 10px rgba(0,0,0,0.05) !important;
  padding:1.5rem !important; cursor:pointer !important; transition:transform .3s ease, box-shadow .3s ease !important;
}
.elementor-element-link-prep:hover,
.elementor-element-link-rdv:hover,
.elementor-element-link-exercices:hover{ transform:translateY(-5px) !important; box-shadow:0 8px 20px rgba(0,0,0,0.1) !important; }
.elementor-element-link-prep > .e-con-inner,
.elementor-element-link-rdv > .e-con-inner,
.elementor-element-link-exercices > .e-con-inner{ align-items:center !important; text-align:center !important; }
/* icones */
.elementor-element-lrdv-icon .elementor-heading-title,
.elementor-element-lprep-icon .elementor-heading-title,
.elementor-element-lexo-icon .elementor-heading-title{ font-size:2.5rem !important; line-height:1 !important; margin-bottom:.5rem !important; color:#3a7259 !important; }
/* titres */
.elementor-element-lrdv-title .elementor-heading-title,
.elementor-element-lprep-title .elementor-heading-title,
.elementor-element-lexo-title .elementor-heading-title{ font-size:1.2rem !important; color:#2c5545 !important; font-weight:600 !important; margin-bottom:.3rem !important; }



/* ######################################################################
   BLOC 11 — BOUTONS AMELIA (Step Booking)  : meme style que les boutons RDV
   ###################################################################### */
.elementor-widget-stepbookingbutton .elementor-button{
    background-color:#2c5545 !important;
    color:#ffffff !important;
    border:none !important;
    border-radius:50px !important;
    padding:0.8rem 2rem !important;
    box-shadow:none !important;
}
.elementor-widget-stepbookingbutton .elementor-button .elementor-button-text{
    color:#ffffff !important;
}
.elementor-widget-stepbookingbutton .elementor-button:hover{
    background-color:#3a7259 !important;
}



/* ######################################################################
   BLOC 12 — POPUP RESERVATION AMELIA : panneau lateral vert + texte clair
   ###################################################################### */
.am-fs-sb{ background-color:#2c5545 !important; }
.am-fs-sb, .am-fs-sb *{ color:#ffffff !important; }
.am-fs-sb__step-checker{ background-color:#3a7259 !important; border-color:#ffffff !important; }

/* Page Infos : encart RDV non cliquable (widget Amelia a l'interieur) */
.elementor-element-link-rdv{ cursor:default !important; }
.elementor-element-link-rdv:hover{ transform:none !important; box-shadow:0 3px 10px rgba(0,0,0,0.05) !important; }



/* ######################################################################
   BLOC 13 — PAGE PLANNING OSTEO'VAN (reconstruite en Elementor)
   ###################################################################### */
/* Degager le contenu de sous le header fixe */
body.page-id-75 main#content{ padding-top:120px !important; padding-bottom:60px !important; }
/* Conteneur titre + bouton retour, en haut, centre */
.elementor-element-d9a1ae0{ max-width:1000px !important; margin:0 auto !important; }
.elementor-element-d9a1ae0 .elementor-widget-text-editor{ text-align:left !important; }
.elementor-element-d9a1ae0 .elementor-widget-text-editor a{ color:#3a7259 !important; text-decoration:none !important; font-weight:600 !important; }
.elementor-element-eab5f4b .elementor-heading-title{ text-align:center !important; color:#2c5545 !important; font-size:2.2rem !important; font-weight:700 !important; }
.elementor-element-eab5f4b .elementor-divider{ justify-content:center !important; }
.elementor-element-eab5f4b .elementor-divider-separator{ margin-left:auto !important; margin-right:auto !important; }
/* Conteneur villes : boite blanche centree, pas pleine largeur */
.elementor-element-f918ed5{ max-width:1100px !important; width:auto !important; margin:0 auto 2rem !important; background-color:#ffffff !important; border-radius:10px !important; padding:2rem !important; box-shadow:0 5px 20px rgba(0,0,0,0.08) !important; }



/* ######################################################################
   BLOC 14 — HEADER MOBILE : le titre doit tenir entre le logo et le menu
   ###################################################################### */
@media (max-width: 767px) {
  .elementor-location-header > .e-con > .e-con-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
    gap: 10px !important;
  }
  /* Conteneur logo : plus de plafond 50%, hauteur auto, autorise a retrecir */
  .elementor-location-header > .e-con > .e-con-inner > .e-con {
    max-width: none !important;
    max-height: none !important;
    height: auto !important;
    min-height: 0 !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }
  .elementor-location-header > .e-con > .e-con-inner > .e-con > .e-con-inner {
    max-height: none !important;
    height: auto !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
  }
  /* Monogramme VH un peu plus petit */
  .elementor-location-header [data-id="logo-vh"] {
    width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important;
  }
  .elementor-location-header [data-id="logo-vh"] .elementor-heading-title { font-size: 20px !important; }
  /* Titre + sous-titre compacts */
  .elementor-location-header [data-id="logo-name"] .elementor-heading-title {
    font-size: 17px !important; line-height: 1.15 !important; white-space: nowrap !important;
  }
  .elementor-location-header [data-id="logo-subtitle"] p {
    font-size: 12px !important; white-space: nowrap !important;
  }
  /* Le menu (hamburger) ne retrecit pas */
  .elementor-location-header [data-id="nav-widget"] { flex: 0 0 auto !important; }
}



/* ######################################################################
   BLOC 15 — ACCUEIL HERO MOBILE : image + texte en pleine largeur une fois empiles
   ###################################################################### */
@media (max-width: 767px) {
  [data-id="hero-image-container"],
  [data-id="hero-content"] {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
  }
}


/* Éditeur Elementor : header non fixe pour laisser le contenu (hero) selectionnable */
body.elementor-editor-active .elementor-location-header{ position: static !important; }
body.elementor-editor-active.page-id-16 main#content{ padding-top: 0 !important; }



/* ######################################################################
   BLOC 16 — CALENDRIER SUGAR CALENDAR (planning Osteo'Van)
   ###################################################################### */
.sc_events_calendar h2{ text-align:center; color:#2c5545 !important; font-size:1.6rem !important; margin-bottom:1rem !important; }
.sc_events_calendar .sc_events_form{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; margin-bottom:1.2rem; }
.sc_events_calendar .sc_events_form select{ padding:6px 10px; border:1px solid #ccd6d0; border-radius:6px; background:#fff; }
.sc_events_calendar input.sc_calendar_submit{ background-color:#2c5545 !important; color:#fff !important; border:none !important; border-radius:50px !important; padding:6px 18px !important; cursor:pointer; font-weight:600; }
.sc_events_calendar input.sc_calendar_submit:hover{ background-color:#3a7259 !important; }
.sc_events_calendar table.calendar{ width:100%; border-collapse:collapse; background:#fff; box-shadow:0 3px 10px rgba(0,0,0,.05); }
.sc_events_calendar th.calendar-day-head{ background:#e8f0eb; color:#2c5545; padding:10px; font-weight:600; text-align:center; border:1px solid #e0e6e2; }
.sc_events_calendar td.calendar-day{ border:1px solid #e0e6e2; vertical-align:top; height:92px; padding:5px; }
.sc_events_calendar td.calendar-day .day-number{ font-weight:600; color:#555; margin-bottom:4px; }
.sc_events_calendar td.calendar-day.today{ background:#f3f8f5; }
/* Evenements = pastilles colorees, chacune sur sa ligne */
.sc_events_calendar td.calendar-day a{ display:block; margin:2px 0; padding:3px 8px; border-radius:4px; font-size:12px; line-height:1.35; text-decoration:none !important; color:#fff !important; background-color:#5685BD; }
.sc_events_calendar td.calendar-day a:hover{ opacity:.9; color:#fff !important; }



/* ######################################################################
   BLOC 17 — CALENDRIER : largeur alignee + boutons de mois personnalises
   ###################################################################### */
/* Aligner le calendrier sur la largeur de la boite villes (1100px) */
.elementor-element-4f5a8328 > .e-con-inner{ max-width:1100px !important; margin-left:auto !important; margin-right:auto !important; }
/* Masquer les menus deroulants + Go / Previous / Next natifs */
.sc_events_calendar .sc_events_form{ display:none !important; }
/* Rangee de boutons de mois (style onglets verts) */
.vh-month-tabs{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:0 0 1.2rem; }
.vh-month-tab{ background:#e8f0eb; color:#2c5545; border:none; border-radius:50px; padding:8px 18px; cursor:pointer; font-weight:600; font-family:inherit; font-size:14px; transition:background .2s,color .2s; text-transform:capitalize; }
.vh-month-tab:hover{ background:#d5e5db; }
.vh-month-tab.active{ background:#2c5545; color:#fff; }

/* Calendrier : cellules de largeur uniforme */
.sc_events_calendar table.calendar{ table-layout:fixed !important; }
.sc_events_calendar table.calendar th, .sc_events_calendar table.calendar td{ width:14.2857% !important; overflow:hidden; }
.sc_events_calendar td.calendar-day a{ white-space:normal; overflow-wrap:break-word; }

/* Legende des couleurs praticiens sous le calendrier */
.vh-cal-legend{ display:flex; flex-wrap:wrap; gap:12px 26px; justify-content:center; margin-top:1.2rem; font-size:14px; }
.vh-cal-legend .vh-legend-item{ display:inline-flex; align-items:center; gap:8px; color:#333; }
.vh-cal-legend .vh-legend-swatch{ width:16px; height:16px; border-radius:4px; display:inline-block; flex:0 0 auto; }

/* ===== BLOC 18 : desactiver les liens des evenements du calendrier (affichage seul) ===== */
/* vh-cal-nolink */
.sc_events_calendar td.calendar-day a[href]{ pointer-events:none; cursor:default; text-decoration:none; }

/* ===== BLOC 19 : correctif affichage calendrier sur mobile (< 480px) =====
   Sugar Calendar empile les cellules en une colonne etroite sous 480px
   (.sc-table th{display:none} + #content .sc-table tr td{display:block}).
   On restaure la grille mensuelle 7 colonnes. */
@media only screen and (max-width: 480px){
  #content .sc-table tr td,
  .sc-table td{ display:table-cell !important; width:14.2857% !important; text-align:center !important; }
  .sc-table th{ display:table-cell !important; }
  .sc-table td:first-child{ background-color:transparent !important; padding-top:0 !important; }
  #sc_calendar td.calendar-day{ height:auto !important; min-height:44px !important; }
}

/* ===== BLOC 20 : le numero du jour ne doit plus etre recouvert par la pastille =====
   Les libellés d'événements sont des pastilles pleine largeur (bloc ~994) qui
   passaient sous le numero du jour (position:absolute, coin haut-droit).
   On reserve une bande en haut de la case + on remet le numero au-dessus. */
.sc_events_calendar td.calendar-day .day-number{ z-index:5 !important; }
.sc_events_calendar td.calendar-day .sc_day_div{ padding-top:18px !important; }
