/* =============================================
   SOSDEM - Custom CSS
   ============================================= */

/* --- Header : fond sombre sur toutes les pages sauf accueil --- */
body:not(.home) .elementor-location-header {
    background-color: #111827 !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

/* --- Navigation : couleur du texte sur fond sombre --- */
    color: #ffffff !important;
}

    color: #615FFF !important;
}

/* --- Bouton Calculateur dans le header --- */
body:not(.home) .elementor-location-header .elementor-button {
    background-color: #615FFF !important;
    color: #ffffff !important;
}

/* =============================================
   Articles de blog - Amélioration lisibilité
   ============================================= */

/* Hero section de l'article : ombre sur le texte */
.single-post .elementor-widget-heading h1,
.single-post .elementor-widget-heading h2 {
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

/* Zone de contenu principal : padding et largeur max */
.single-post .elementor-widget-theme-post-content,
.single-post .entry-content {
    max-width: 780px;
    margin: 0 auto;
    padding: 40px 24px;
    font-size: 1.05rem;
    line-height: 1.8;
    color: #1f2937;
}

/* Titres dans le contenu de l'article */
.single-post .entry-content h2,
.single-post .elementor-widget-theme-post-content h2 {
    font-size: 1.5rem;
    color: #111827;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    border-left: 4px solid #615FFF;
    padding-left: 12px;
}

.single-post .entry-content h3,
.single-post .elementor-widget-theme-post-content h3 {
    font-size: 1.2rem;
    color: #374151;
    margin-top: 1.5rem;
}

/* Section blanche bas de page (conclusion) */
.single-post .elementor-section:last-of-type {
    background-color: #f9fafb !important;
    border-top: 1px solid #e5e7eb;
}

/* =============================================
   Pages légales (mentions légales, confidentialité)
   ============================================= */

.page .elementor-widget-theme-post-content,
.page .entry-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 24px;
    font-size: 1rem;
    line-height: 1.8;
    color: #1f2937;
}

.page .entry-content h1 {
    font-size: 1.8rem;
    color: #111827;
    margin-bottom: 1.5rem;
}

.page .entry-content h2 {
    font-size: 1.3rem;
    color: #111827;
    margin-top: 2rem;
    padding-bottom: 6px;
    border-bottom: 2px solid #615FFF;
}

/* =============================================
   Pages légales — lisibilité du texte Elementor
   (corrige le gris clair #7A7A7A du kit, illisible sur fond blanc)
   ============================================= */
.elementor-page-762 .elementor-widget-text-editor,
.elementor-page-762 .elementor-widget-text-editor p,
.elementor-page-762 .elementor-widget-text-editor li,
.elementor-page-762 .elementor-widget-text-editor span,
.elementor-page-762 .elementor-widget-text-editor strong,
.elementor-page-525 .elementor-widget-text-editor,
.elementor-page-525 .elementor-widget-text-editor p,
.elementor-page-525 .elementor-widget-text-editor li,
.elementor-page-525 .elementor-widget-text-editor span,
.elementor-page-525 .elementor-widget-text-editor strong,
.elementor-page-1418 .elementor-widget-text-editor,
.elementor-page-1418 .elementor-widget-text-editor p,
.elementor-page-1418 .elementor-widget-text-editor li,
.elementor-page-1418 .elementor-widget-text-editor span,
.elementor-page-1418 .elementor-widget-text-editor strong {
    color: #1f2937 !important;
}
.elementor-page-762 .elementor-widget-text-editor strong,
.elementor-page-525 .elementor-widget-text-editor strong,
.elementor-page-1418 .elementor-widget-text-editor strong {
    color: #111827 !important;
}
.elementor-page-762 .elementor-widget-text-editor a,
.elementor-page-525 .elementor-widget-text-editor a,
.elementor-page-1418 .elementor-widget-text-editor a {
    color: #615FFF !important;
    text-decoration: underline;
}

/* =============================================
   Footer — lisibilité du texte sur fond sombre (#111827)
   (tagline + copyright héritaient du gris #7A7A7A, illisible)
   ============================================= */
[data-elementor-type="footer"] .elementor-widget-text-editor,
[data-elementor-type="footer"] .elementor-widget-text-editor p,
[data-elementor-type="footer"] .elementor-widget-text-editor li,
[data-elementor-type="footer"] .elementor-widget-text-editor span {
    color: #d1d5db !important;
}

/* =============================================
   Home — bloc CTA "Demandez votre devis gratuit" (fond marine sombre)
   Le texte du bouton pointait vers la globale "Black" #000000 => invisible.
   ============================================= */
.elementor-element-fdf534a .elementor-widget-text-editor,
.elementor-element-fdf534a .elementor-widget-text-editor p,
.elementor-element-fdf534a .elementor-widget-text-editor strong {
    color: #e5e7eb !important;
}
.elementor-element-fdf534a .elementor-widget-button .elementor-button-wrapper,
.elementor-element-dfa793f {
    text-align: center !important;
}
.elementor-element-fdf534a .elementor-button {
    display: inline-flex !important;
    background-color: #615FFF !important;
    color: #ffffff !important;
    border-color: #615FFF !important;
    padding: 14px 28px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
}
.elementor-element-fdf534a .elementor-button:hover {
    background-color: #4F46E5 !important;
    color: #ffffff !important;
}

/* =============================================
   Pages localité (IDs 1543/1579/1580/1581) — classe body .sosdem-localite
   La trame Elementor clonée est minimale : mise en forme complète en CSS.
   ============================================= */

/* Override de la couleur de texte globale du kit (#7A7A7A, illisible) sur tout le périmètre localité */
.sosdem-localite [data-elementor-type="wp-page"] { --e-global-color-text: #1f2937; }

/* Conteneurs top-level : rythme vertical + contenu centré */
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent { padding: 46px 20px; }
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent > .e-con-inner { max-width: 1140px; margin-inline: auto; width: 100%; }
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:empty { display: none !important; }

/* Titres */
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-heading h1 {
    font-size: clamp(1.9rem, 4vw, 2.6rem);
    line-height: 1.18; color: #111827; margin-bottom: 14px; font-weight: 700;
}
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-heading h2 {
    font-size: 1.55rem; color: #111827; font-weight: 700;
    margin-bottom: 6px; border-left: 4px solid #615FFF; padding-left: 12px;
}

/* Texte lisible (corrige le gris clair #7A7A7A du kit) */
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-text-editor,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-text-editor p,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-text-editor li,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-text-editor span,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-text,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-icon-box-description {
    color: #1f2937 !important; line-height: 1.75; font-size: 1.02rem;
}
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-text-editor strong { color: #111827 !important; }

/* Liste à puces du hero */
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-items { margin-top: 6px; }
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-item { margin-bottom: 6px; }
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-icon i,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-list .elementor-icon-list-icon svg {
    color: #615FFF !important; fill: #615FFF !important;
}

/* Boutons (corrige le texte invisible + style) */
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-button .elementor-button {
    background-color: #615FFF !important; color: #ffffff !important;
    border: none !important; border-radius: 8px !important;
    padding: 14px 30px !important; font-weight: 700 !important; font-size: 1rem !important;
    box-shadow: 0 6px 16px rgba(97,95,255,.25); transition: all .2s ease;
}
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-button .elementor-button:hover {
    background-color: #4F46E5 !important; transform: translateY(-1px);
}

/* Images (hero + contact) */
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-image img {
    border-radius: 14px; box-shadow: 0 12px 30px rgba(17,24,39,.12);
    width: 100%; height: auto; display: block; object-fit: cover;
}

/* HERO : grille texte | image, centrée verticalement */
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(h1) {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    padding-top: 56px; padding-bottom: 56px;
}
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(h1) > .e-con-inner {
    display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center;
}
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(h1) > .e-con-inner > .e-con { width: auto !important; }

/* SERVICES : grille de cartes 2 colonnes */
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-icon-box) > .e-con-inner {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
}
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-icon-box) > .e-con-inner > .e-con { width: auto !important; }
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-box {
    background: #ffffff; border: 1px solid #eef0f4; border-radius: 14px;
    padding: 28px 24px; height: 100%; text-align: center;
    box-shadow: 0 4px 14px rgba(17,24,39,.05); transition: box-shadow .2s ease, transform .2s ease;
}
.sosdem-localite [data-elementor-type="wp-page"] .elementor-widget-icon-box:hover {
    box-shadow: 0 14px 30px rgba(17,24,39,.10); transform: translateY(-3px);
}
.sosdem-localite [data-elementor-type="wp-page"] .elementor-icon-box-icon { margin-bottom: 14px; }
.sosdem-localite [data-elementor-type="wp-page"] .elementor-icon-box-icon i,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-icon-box-icon svg {
    color: #615FFF !important; fill: #615FFF !important; font-size: 34px; width: 34px; height: 34px;
}
.sosdem-localite [data-elementor-type="wp-page"] .elementor-icon-box-title,
.sosdem-localite [data-elementor-type="wp-page"] .elementor-icon-box-title a { color: #111827 !important; font-size: 1.12rem; margin-bottom: 8px; }

/* BLOC CONTACT (dernier bloc avec bouton, hors hero) : image + carte sombre */
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) > .e-con-inner {
    display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center;
}
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) > .e-con-inner > .e-con { width: auto !important; }
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) .elementor-widget-text-editor {
    background: #111827; border-radius: 14px; padding: 26px 28px;
}
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) .elementor-widget-text-editor,
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) .elementor-widget-text-editor p {
    color: #e5e7eb !important;
}
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) .elementor-widget-text-editor strong,
.sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) .elementor-widget-text-editor b {
    color: #ffffff !important;
}

/* Responsive */
@media (max-width: 880px) {
    .sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(h1) > .e-con-inner { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-icon-box) > .e-con-inner { grid-template-columns: 1fr; }
    .sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent:has(.elementor-widget-button):not(:has(h1)) > .e-con-inner { grid-template-columns: 1fr; }
    .sosdem-localite [data-elementor-type="wp-page"] .e-con.e-parent { padding: 32px 18px; }
}

/* =============================================
   Article single (template 832) — typographie du corps + méta hero
   Base réutilisable : s'applique à TOUS les articles (présents et futurs)
   ============================================= */
.single-post .elementor-widget-theme-post-content {
    font-size: 18px; line-height: 1.78; color: #1f2937;
}
.single-post .elementor-widget-theme-post-content p { margin: 0 0 1.3em; }
.single-post .elementor-widget-theme-post-content > .elementor-widget-container > *:first-child { margin-top: 0; }

/* Titres dans le corps */
.single-post .elementor-widget-theme-post-content h2 {
    font-size: 1.6rem; color: #111827; font-weight: 700; line-height: 1.25;
    margin: 2.3rem 0 .85rem; padding-left: 14px; border-left: 4px solid #615FFF;
}
.single-post .elementor-widget-theme-post-content h3 {
    font-size: 1.25rem; color: #1f2937; font-weight: 700; margin: 1.8rem 0 .6rem;
}
.single-post .elementor-widget-theme-post-content h4 {
    font-size: 1.1rem; color: #374151; font-weight: 700; margin: 1.5rem 0 .5rem;
}

/* Listes */
.single-post .elementor-widget-theme-post-content ul,
.single-post .elementor-widget-theme-post-content ol { margin: 0 0 1.4em; padding-left: 1.4em; }
.single-post .elementor-widget-theme-post-content li { margin-bottom: .55em; }
.single-post .elementor-widget-theme-post-content ul li::marker { color: #615FFF; }

/* Liens + emphase */
.single-post .elementor-widget-theme-post-content a { color: #615FFF; text-decoration: underline; }
.single-post .elementor-widget-theme-post-content a:hover { color: #4F46E5; }
.single-post .elementor-widget-theme-post-content strong { color: #111827; }

/* Images */
.single-post .elementor-widget-theme-post-content img {
    max-width: 100%; height: auto; border-radius: 12px; margin: 1.6em 0;
    box-shadow: 0 10px 26px rgba(17,24,39,.10);
}

/* Citations */
.single-post .elementor-widget-theme-post-content blockquote {
    border-left: 4px solid #615FFF; background: #f8fafc; color: #374151; font-style: italic;
    padding: 16px 22px; margin: 1.6em 0; border-radius: 0 8px 8px 0;
}

/* Tableaux (ex : grille de prix) */
.single-post .elementor-widget-theme-post-content table {
    width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: .97rem;
    box-shadow: 0 4px 14px rgba(17,24,39,.06); border-radius: 10px; overflow: hidden;
}
.single-post .elementor-widget-theme-post-content th,
.single-post .elementor-widget-theme-post-content td { border: 1px solid #e5e7eb; padding: 11px 14px; text-align: left; }
.single-post .elementor-widget-theme-post-content th { background: #111827; color: #fff; font-weight: 600; }
.single-post .elementor-widget-theme-post-content tr:nth-child(even) td { background: #f9fafb; }

/* Méta hero (auteur / date / temps de lecture) centrée */
.single-post .elementor-widget-post-info .elementor-inline-items { justify-content: center; flex-wrap: wrap; }
.single-post .elementor-widget-post-info .elementor-icon-list-text,
.single-post .elementor-widget-post-info a { color: #e5e7eb !important; }
.single-post .elementor-widget-post-info i { color: #615FFF !important; }

/* Hero article — overlay sombre garanti (lisibilité du titre blanc sur photo) */
.single-post .elementor-element-f58ee61 { position: relative; }
.single-post .elementor-element-f58ee61::before {
    content: ""; position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(180deg, rgba(17,24,39,.45) 0%, rgba(17,24,39,.65) 100%);
}
.single-post .elementor-element-f58ee61 > * { position: relative; z-index: 1; }

/* Méta hero article : garder uniquement auteur + date, en ligne et centré
   (le repeater post_info_list d'Elementor retombe sur ses 4 items par défaut) */
.single-post .elementor-widget-post-info .elementor-icon-list-items {
    display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin: 0;
}
.single-post .elementor-widget-post-info .elementor-icon-list-item:nth-child(n+3) { display: none !important; }

/* Hero article : titre + méta alignés à GAUCHE dans une colonne 760px centrée
   (même axe que le corps de l'article → fini l'effet "centré mais décalé") */
.single-post .elementor-element-16ab816 {
    max-width: 760px !important; width: 100% !important;
    margin-left: auto !important; margin-right: auto !important;
    align-items: flex-start !important;
}
.single-post .elementor-element-dce0348 { width: 100% !important; max-width: 100% !important; }
.single-post .elementor-element-dce0348 .elementor-heading-title { text-align: left !important; }
.single-post .elementor-widget-post-info .elementor-icon-list-items { justify-content: flex-start !important; }

/* Corps d'article : 760px centré à TOUTES les largeurs (même axe gauche que le hero, lignes lisibles même en tablette) */
.single-post .elementor-element-c206f5a {
    max-width: 760px !important; width: 100% !important;
    margin-left: auto !important; margin-right: auto !important;
}

/* Méta article : émojis/icônes GARDÉS ; bloc décalé à gauche pour que le TEXTE (SOSDEM/date)
   s'aligne sous le titre (l'icône passe en léger retrait dans la marge). */
.single-post .elementor-widget-post-info .elementor-icon-list-items { margin-left: -15px !important; }

/* Méta : auteur et date parfaitement sur la même ligne (alignement vertical) */
.single-post .elementor-widget-post-info .elementor-icon-list-items { align-items: center !important; }
.single-post .elementor-widget-post-info .elementor-icon-list-item { margin: 0 !important; }

/* =============================================
   Pages localité — POLISH UI (2026-06-04)
   ============================================= */
/* 1. Masquer les conteneurs sans aucun widget (barres blanches vides haut/bas) */
.sosdem-localite [data-elementor-type="wp-page"] > .e-con:not(:has(.elementor-widget)) { display: none !important; }

/* 2. Padding vertical resserré + hero un peu plus généreux */
.sosdem-localite [data-elementor-type="wp-page"] > .e-con.e-parent { padding-top: 40px !important; padding-bottom: 40px !important; }
.sosdem-localite [data-elementor-type="wp-page"] > .e-con.e-parent:has(h1) { padding-top: 52px !important; padding-bottom: 52px !important; }

/* 3. Rythme visuel : fond gris clair sur la section services (cartes) */
.sosdem-localite [data-elementor-type="wp-page"] > .e-con:has(.elementor-widget-icon-box) { background: #f8fafc; }

/* 4. "Nos horaires" : rapprocher le titre de ses horaires + encadrer en carte */
.sosdem-localite [data-elementor-type="wp-page"] > .e-con.e-parent:has(.elementor-widget-heading):not(:has(.elementor-widget-text-editor)):not(:has(.elementor-widget-icon-box)):not(:has(.elementor-widget-image)):not(:has(.elementor-widget-button)):not(:has(iframe)) {
    padding-bottom: 4px !important;
}
.sosdem-localite [data-elementor-type="wp-page"] > .e-con.e-parent:has(.elementor-widget-text-editor):not(:has(.elementor-widget-heading)):not(:has(.elementor-widget-icon-box)):not(:has(.elementor-widget-image)):not(:has(.elementor-widget-button)):not(:has(iframe)) > .e-con-inner {
    background: #fff; border: 1px solid #eef0f4; border-radius: 14px;
    padding: 26px 34px !important; box-shadow: 0 4px 14px rgba(17,24,39,.05);
}

/* =============================================
   Page hub "Zones d'intervention" (grille de villes)
   ============================================= */
.zones-hub-intro { max-width: 720px; margin: 0 auto 30px; text-align: center; color: #4b5563; font-size: 1.05rem; line-height: 1.7; }
.zones-hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1000px; margin: 0 auto; }
.zones-hub-card {
    display: flex; flex-direction: column; gap: 6px; padding: 22px 24px;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; text-decoration: none;
    box-shadow: 0 4px 14px rgba(17,24,39,.05); transition: all .2s ease;
}
.zones-hub-card:hover { border-color: #615FFF; box-shadow: 0 14px 30px rgba(17,24,39,.10); transform: translateY(-3px); }
.zones-hub-card strong { color: #111827; font-size: 1.12rem; }
.zones-hub-card span { color: #6b7280; font-size: .92rem; }
@media (max-width: 900px){ .zones-hub-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .zones-hub-grid { grid-template-columns: 1fr; } }

/* Menu (header + footer) : l'item de la page courante ne doit pas être indenté
   (Elementor ajoute un padding-left:30px sur l'item actif -> décalage visible dans le footer vertical) */
.elementor-nav-menu li.current-menu-item > a.elementor-item,
.elementor-nav-menu li.current_page_item > a.elementor-item,
.elementor-nav-menu a.elementor-item.elementor-item-active {
    padding-left: 0 !important;
}
