/* ==========================================================
   France Démarches — Styles publics v2.1
   Design épuré, fond blanc, police héritée du thème WordPress
   ========================================================== */

/* ---- Reset & base ---- */
.spd-wrapper {
    box-sizing: border-box;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    /* Couleur de base foncée plutôt qu'héritée : certains thèmes
       appliquent un texte très clair qui rend le contenu officiel
       illisible. Les éléments ayant leur propre couleur (gris atténués,
       liens en couleur de charte, boutons) ne sont pas affectés. */
    color: #1e2a3a;
    width: 100%;
    background: transparent;
}
.spd-wrapper *, .spd-wrapper *::before, .spd-wrapper *::after {
    box-sizing: inherit;
}

/* =====================================================
   HEADER — bandeau bleu marine
   ===================================================== */
.spd-header {
    background: #f2f3f5;
    padding: 32px 36px 0;
    border-radius: 8px 8px 0 0;
    border: 0.5px solid #e2e5ea;
    border-bottom: none;
}

.spd-titre {
    font-size: 1.4em;
    font-weight: 600;
    color: #1e1e1e;
    margin: 0 0 6px;
    line-height: 1.3;
}

.spd-sous-titre {
    font-size: 0.85em;
    color: #6b7280;
    margin: 0 0 26px;
}

.spd-sous-titre strong {
    color: #1e1e1e;
    font-weight: 600;
}

/* ---- Barre de recherche ---- */
.spd-search-bar {
    display: flex;
    margin-bottom: 30px;
    background: #c7ccd2;
    border-radius: 12px;
    padding: 10px 12px;
    align-items: center;
    gap: 10px;
}

.spd-search-input {
    flex: 1;
    padding: 12px 18px;
    border: none;
    font-size: 0.9em;
    font-family: inherit;
    background: #fff;
    color: #1e1e1e;
    border-radius: 8px;
    outline: none;
    min-width: 0;
    box-shadow: none;
}

.spd-search-btn {
    padding: 12px 24px;
    background: var(--spd-accent, #1a3a6b);
    color: #fff;
    border: none;
    font-size: 0.85em;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border-radius: 8px;
    white-space: nowrap;
    transition: background 0.15s;
    flex-shrink: 0;
}

.spd-search-btn:hover {
    background: var(--spd-accent-dk, #132e57);
}

/* ---- Résultats de recherche ---- */
.spd-search-results {
    background: #fff;
    border: 0.5px solid #e2e5ea;
    border-top: none;
    border-radius: 0 0 4px 4px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.10);
}

.spd-search-results[hidden] { display: none; }

.spd-search-result-item {
    display: block;
    padding: 12px 18px;
    text-decoration: none;
    color: #1e1e1e;
    border-bottom: 0.5px solid #e2e5ea;
    transition: background 0.1s;
}

.spd-search-result-item:last-child { border-bottom: none; }
.spd-search-result-item:hover { background: #f0f4ff; }
.spd-search-result-item strong { display: block; color: var(--spd-accent, #1a3a6b); font-weight: 600; font-size: 0.9em; }
.spd-search-result-item span { font-size: 0.8em; color: #6b7280; }

/* =====================================================
   ONGLETS Particuliers / Associations / Pro
   ===================================================== */
.spd-category-tabs {
    display: flex;
    background: #e8eaed;
    border-left: 0.5px solid #e2e5ea;
    border-right: 0.5px solid #e2e5ea;
}

.spd-tab {
    padding: 13px 22px;
    font-size: 0.85em;
    font-family: inherit;
    color: #6b7280;
    border-bottom: 2px solid transparent;
    text-decoration: none;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.spd-tab:hover { color: #1e1e1e; }
.spd-tab.active { color: var(--spd-accent, #1a3a6b); border-bottom-color: var(--spd-accent, #1a3a6b); font-weight: 600; }

/* =====================================================
   GRILLE DES THÈMES
   ===================================================== */
.spd-themes-grid {
    list-style: none !important;
    padding: 16px 0;
    margin: 0;
    background: transparent;
    border: none;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}

.spd-theme-card { margin: 0; }

.spd-theme-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 16px;
    padding: 28px 16px 24px;
    background: #fff;
    border: 0.5px solid #e2e5ea;
    border-top: 2px solid transparent;
    border-radius: 0;
    text-decoration: none;
    color: #1e1e1e;
    font-weight: 500;
    font-size: 0.9em;
    line-height: 1.45;
    transition: border-top-color 0.2s, box-shadow 0.2s, color 0.2s;
    min-height: 130px;
}

.spd-theme-link:hover {
    border-top-color: var(--spd-hover, #a0bd50);
    box-shadow: 0 2px 14px rgba(0,0,0,0.07);
    color: var(--spd-hover, #a0bd50);
}

/* Icône SVG dans la card thème */
.spd-theme-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.spd-theme-icon svg {
    width: 36px;
    height: 36px;
}

/* =====================================================
   FIL D'ARIANE
   ===================================================== */
.spd-breadcrumb {
    font-size: 0.82em;
    color: #6b7280;
    margin-bottom: 20px;
    padding: 12px 0;
    border-bottom: 0.5px solid #e2e5ea;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.spd-breadcrumb a {
    color: var(--spd-accent, #1a3a6b);
    text-decoration: none;
    font-weight: 500;
}

.spd-breadcrumb a:hover { text-decoration: underline; }

/* =====================================================
   TITRE DE PAGE THÈME / FICHE
   ===================================================== */
.spd-fiche-titre {
    font-size: 1.4em;
    font-weight: 600;
    color: var(--spd-accent, #1a3a6b);
    margin: 0 0 24px;
    padding-bottom: 16px;
    border-bottom: 0.5px solid #e2e5ea;
    line-height: 1.3;
}

/* =====================================================
   PAGE THÈME — liste des dossiers
   ===================================================== */
.spd-sous-dossier { margin-bottom: 32px; }

.spd-sd-titre {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--spd-accent, #1a3a6b);
    margin: 0 0 10px;
    padding: 10px 14px;
    background: #f5f6f8;
    border-left: 3px solid var(--spd-accent, #1a3a6b);
}

.spd-fiches-list {
    list-style: none;
    padding: 0;
    margin: 0 0 8px;
    border: 0.5px solid #e2e5ea;
    border-radius: 4px;
    overflow: hidden;
}

.spd-fiches-list li {
    margin: 0;
    border-bottom: 0.5px solid #e2e5ea;
}

.spd-fiches-list li:last-child { border-bottom: none; }

.spd-fiche-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    text-decoration: none;
    color: #1e1e1e;
    font-size: 0.9em;
    background: #fff;
    transition: background 0.12s, color 0.12s;
}

.spd-fiche-link:hover {
    background: #f0f4ff;
    color: var(--spd-accent, #1a3a6b);
}

.spd-fiche-link .spd-theme-icon {
    width: auto;
    height: auto;
    color: var(--spd-accent, #1a3a6b);
    font-size: 10px;
    opacity: 0.5;
    flex-shrink: 0;
}

.spd-dossier-link { font-weight: 500; }

/* =====================================================
   FICHE — contenu
   ===================================================== */
.spd-introduction {
    background: #f0f4ff;
    border-left: 3px solid var(--spd-accent, #1a3a6b);
    padding: 16px 20px;
    margin-bottom: 28px;
    font-size: 0.95em;
    line-height: 1.65;
    color: #1e2a3a;
}

.spd-para { margin: 0 0 14px; }

.spd-chapitre-titre {
    font-size: 1.05em;
    font-weight: 600;
    color: var(--spd-accent, #1a3a6b);
    margin: 28px 0 12px;
    padding-bottom: 8px;
    border-bottom: 0.5px solid #e2e5ea;
}

.spd-situation {
    margin-bottom: 28px;
    border: 0.5px solid #e2e5ea;
    border-radius: 6px;
    overflow: hidden;
}

.spd-situation-titre {
    background: var(--spd-accent, #1a3a6b);
    color: #fff;
    padding: 12px 20px;
    margin: 0;
    font-size: 0.95em;
    font-weight: 600;
}

.spd-situation-body { padding: 20px; }

.spd-liste { margin: 0 0 14px; padding-left: 22px; }
.spd-liste li { margin-bottom: 6px; }

.spd-tableau-wrapper { overflow-x: auto; margin-bottom: 20px; }

.spd-tableau {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88em;
    border: 0.5px solid #e2e5ea;
}

.spd-tableau th {
    background: var(--spd-accent, #1a3a6b);
    color: #fff;
    font-weight: 600;
    text-align: left;
    padding: 10px 14px;
    border: 0.5px solid rgba(255,255,255,0.15);
}

.spd-tableau td {
    padding: 9px 14px;
    border: 0.5px solid #e2e5ea;
}

.spd-tableau tr:nth-child(even) td { background: #f9f9fb; }

.spd-attention, .spd-anoter {
    border-radius: 4px;
    padding: 14px 18px;
    margin: 16px 0;
    font-size: 0.9em;
}

.spd-attention { background: #fffbeb; border-left: 3px solid #f59e0b; }
.spd-anoter   { background: #f0fdf4; border-left: 3px solid #22c55e; }

.spd-attention strong, .spd-anoter strong {
    display: block;
    margin-bottom: 6px;
    font-size: 0.8em;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ---- Services en ligne ---- */
.spd-teleservices {
    background: #f0f4ff;
    border: 0.5px solid #c7d4f0;
    border-radius: 6px;
    padding: 20px 24px;
    margin: 24px 0;
}

.spd-teleservices h3,
.spd-liens-ext h3,
.spd-references h3 {
    margin: 0 0 14px;
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--spd-accent, #1a3a6b);
}

.spd-teleservices ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.spd-btn-service {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: var(--spd-accent, #1a3a6b);
    color: #fff !important;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.88em;
    font-weight: 500;
    font-family: inherit;
    transition: opacity 0.15s;
}

.spd-btn-service:hover { opacity: 0.88; }

/* ---- Liens externes commentés ---- */
.spd-liens-ext {
    background: #f5f6f8;
    border: 0.5px solid #e2e5ea;
    border-radius: 6px;
    padding: 20px 24px;
    margin: 24px 0;
}

.spd-liens-ext ul,
.spd-references ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.spd-liens-ext li,
.spd-references li {
    padding: 10px 0;
    border-bottom: 0.5px solid #e2e5ea;
    font-size: 0.9em;
}

.spd-liens-ext li:last-child,
.spd-references li:last-child { border-bottom: none; }

.spd-lien-ext {
    color: var(--spd-accent, #1a3a6b);
    font-weight: 500;
    text-decoration: none;
}

.spd-lien-ext:hover { text-decoration: underline; }

.spd-lien-source {
    display: block;
    font-size: 0.8em;
    color: #6b7280;
    margin-top: 2px;
}

/* ---- Références juridiques ---- */
.spd-references {
    background: #f5f6f8;
    border: 0.5px solid #e2e5ea;
    border-radius: 6px;
    padding: 20px 24px;
    margin: 24px 0;
    font-size: 0.85em;
}

.spd-references a { color: var(--spd-accent, #1a3a6b); }
.spd-ref-complement { color: #6b7280; }

/* ---- Couleur du contenu officiel ----
   Le contenu de co-marquage doit rester lisible quel que soit le thème
   du site. Approche : on fixe une couleur foncée sur le conteneur, et on
   force TOUS ses descendants à en hériter (certains thèmes imposent un
   gris très clair). On ré-affirme ensuite les seules couleurs voulues :
   liens, et titres blancs sur fond de charte. */
.spd-contenu {
    color: #1e2a3a;
}
.spd-contenu * {
    color: inherit;
}
.spd-contenu h2,
.spd-contenu h3,
.spd-contenu h4 {
    color: #14202e;
}
/* Liens : couleur de charte, pour rester identifiables. */
.spd-contenu a {
    color: var(--spd-accent, #1a3a6b);
}
/* Titre à fond coloré : texte blanc conservé. */
.spd-contenu .spd-situation-titre {
    color: #fff;
}
/* En-têtes de tableau : fond de charte, texte blanc conservé. */
.spd-contenu .spd-tableau th {
    color: #fff;
}
/* Titre de chapitre : couleur de charte (fond clair). */
.spd-contenu .spd-chapitre-titre,
.spd-contenu .spd-complement-titre,
.spd-contenu .spd-organisme-titre {
    color: var(--spd-accent, #1a3a6b);
}
.spd-local-info {
    background: #f0f4ff;
    border: 0.5px solid #c7d4f0;
    border-left: 3px solid var(--spd-accent, #1a3a6b);
    padding: 20px 24px;
    margin: 28px 0;
}

.spd-local-titre {
    margin: 0 0 14px;
    font-size: 0.95em;
    font-weight: 600;
    color: var(--spd-accent, #1a3a6b);
}

.spd-organisme {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 0.5px solid #c7d4f0;
    font-size: 0.9em;
}

.spd-organisme:last-of-type { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.spd-organisme strong { color: var(--spd-accent, #1a3a6b); }
.spd-organisme a { color: var(--spd-accent, #1a3a6b); }

/* ---- Mentions légales ---- */
.spd-footer-legal {
    margin-top: 24px;
    padding-top: 0;
    border-top: none;
    font-size: 0.75em;
    color: #9ca3af;
}

.spd-footer-legal a { color: #9ca3af; }
.spd-footer-legal a:hover { color: var(--spd-accent, #1a3a6b); }

/* ---- Notices ---- */
.spd-notice-setup {
    background: #fffbeb;
    border: 0.5px solid #fde68a;
    border-radius: 6px;
    padding: 20px 24px;
    font-size: 0.9em;
}

.spd-error {
    background: #fef2f2;
    border: 0.5px solid #fecaca;
    border-radius: 6px;
    padding: 20px 24px;
    font-size: 0.9em;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width: 640px) {
    .spd-header { padding: 20px 16px 0; }
    .spd-search-btn { padding: 12px 16px; font-size: 0.8em; }
    .spd-themes-grid { padding: 16px; gap: 10px; grid-template-columns: repeat(2, 1fr); }
    .spd-theme-link { min-height: 110px; padding: 20px 12px 16px; gap: 12px; }
    .spd-theme-icon { width: 36px; height: 36px; }
    .spd-theme-icon svg { width: 28px; height: 28px; }
    .spd-category-tabs { overflow-x: auto; }
    .spd-tab { padding: 11px 16px; }
    .spd-fiche-titre { font-size: 1.2em; }
    .spd-teleservices, .spd-liens-ext, .spd-references, .spd-local-info { padding: 14px 16px; }
    .spd-situation-body { padding: 14px 16px; }
}

@media (max-width: 380px) {
    .spd-themes-grid { grid-template-columns: 1fr; }
}

/* ---- Corrections ciblées v2.1.1 ---- */

/* Puces supprimées — renforcement contre les thèmes qui overrident */
.spd-themes-grid,
.spd-themes-grid li {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
.spd-themes-grid li::before,
.spd-themes-grid li::marker {
    display: none !important;
    content: none !important;
}

/* Icône SVG prend aussi la couleur verte au survol de la card */
.spd-theme-link:hover 

/* Largeur 100% — renforcement */
.spd-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    background: transparent !important;
}

/* Fond grille transparent */
.spd-themes-grid {
    background: transparent !important;
}

/* Espacement entre onglets et grille */
.spd-category-tabs {
    margin-bottom: 0;
}

/* ---- Corrections v2.1.2 ---- */

/* Header : flex pour aligner titre et logo */
.spd-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

/* Mention de source, à droite du titre */
.spd-source-credit {
    display: inline-block;
    text-align: left;
    line-height: 1.4;
    white-space: nowrap;
    padding-left: 14px;
    border-left: 3px solid var(--spd-source-rule, #1766d2);
    border-radius: 0;
}
.spd-source-credit .spd-source-label {
    display: block;
    font-size: 10.5px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: #6b7684;
}
.spd-source-credit .spd-source-name {
    display: block;
    font-size: 17px;
    font-weight: 500;
    text-decoration: none;
    color: var(--spd-accent, #1a3a6b);
}
.spd-source-credit .spd-source-name:hover {
    text-decoration: underline;
}
.spd-source-credit .spd-source-licence {
    display: block;
    font-size: 11.5px;
    color: #6b7684;
    margin-top: 3px;
}
@media (max-width: 560px) {
    .spd-source-credit { white-space: normal; }
}

/* Header arrondi seulement en haut */
.spd-header {
    border-radius: 8px 8px 0 0 !important;
}

/* Grille : pas d'arrondi */
.spd-themes-grid {
    border-radius: 0 !important;
    border-top: 1px solid #d0d4da !important;
    padding-top: 20px !important;
}

/* Cards : angles droits partout */
.spd-theme-link {
    border-radius: 0 !important;
}
.spd-theme-link:hover {
    border-top-color: var(--spd-hover, #a0bd50) !important;
}

/* Onglet actif couleur accent */
.spd-tab.active {
    background: #fff;
}

/* ---- Corrections v2.1.3 ---- */

/* Pictos SVG — couleurs définies dans le SVG via PHP, pas de surcharge CSS */
.spd-theme-icon svg {
    transition: opacity 0.2s;
}

.spd-theme-link:hover .spd-theme-icon svg {
    opacity: 0.8;
}

/* Texte des cards */
.spd-theme-link {
    color: #6b7280 !important;
}

.spd-theme-link:hover {
    color: #111827 !important;
}

/* Logo officiel : taille généreuse, bien aligné à droite */
.spd-logo-sp {
    flex-shrink: 0;
    /* Alignée en haut et remontée, pour ne pas se coller à la
       barre de recherche. Reste dans le padding du header (32px). */
    align-self: flex-start;
    margin-top: -30px;
}

@media (max-width: 768px) {
    /* En colonne, la mention passe sous le titre : plus de décalage. */
    .spd-logo-sp {
        align-self: auto;
        margin-top: 0;
    }
}

/* Mention de source — remplace l'ancien logo */

/* ---- Corrections v2.1.4 ---- */

/* Espace sous la barre de recherche — forcé contre Divi */
.spd-wrapper .spd-search-bar {
    margin-bottom: 30px !important;
    display: flex !important;
}

/* Bouton Rechercher : couleur accent (bleu) et non la couleur du thème Divi */
.spd-wrapper .spd-search-btn {
    /* couleurs gérées via style inline par PHP */
}

.spd-wrapper .spd-search-btn:hover {
    opacity: 0.88;
}

/* ---- Corrections v2.1.5 ---- */

/* Header sans fond — transparent comme la page */
.spd-wrapper .spd-header {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ---- Nouveaux blocs v2.1.6 ---- */

/* Où s'adresser */
.spd-ou-sadresser {
    background: #f5f6f8;
    border: 0.5px solid #e2e5ea;
    border-radius: 6px;
    padding: 20px 24px;
    margin: 24px 0;
}
.spd-ou-sadresser h3 {
    margin: 0 0 14px;
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--spd-accent, #1a3a6b);
}
.spd-organisme-item {
    padding: 14px 0;
    border-bottom: 0.5px solid #e2e5ea;
}
.spd-organisme-item:last-child { border-bottom: none; }
.spd-organisme-titre {
    font-size: 0.92em;
    font-weight: 600;
    color: var(--spd-accent, #1a3a6b);
    margin: 0 0 8px;
}
.spd-organisme-texte {
    font-size: 0.88em;
    line-height: 1.6;
    color: #444;
}
.spd-organisme-texte p { margin: 4px 0; }

/* Voir aussi */
.spd-voir-aussi {
    margin: 24px 0;
}
.spd-voir-aussi h3 {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--spd-accent, #1a3a6b);
    margin: 0 0 10px;
    padding: 10px 14px;
    background: #f5f6f8;
    border-left: 3px solid var(--spd-accent, #1a3a6b);
}

/* Compléments DOM-TOM */
.spd-complement {
    background: #fff8f0;
    border: 0.5px solid #fde68a;
    border-radius: 6px;
    padding: 16px 20px;
    margin: 16px 0;
    font-size: 0.9em;
}
.spd-complement-titre {
    font-size: 0.95em;
    font-weight: 600;
    margin: 0 0 10px;
    color: #92400e;
}

/* ---- Corrections v2.1.8 ---- */

/* Suppression totale des puces Divi sur TOUS les ul/li du plugin */
.spd-wrapper ul,
.spd-wrapper ol,
.spd-wrapper li {
    list-style: none !important;
    list-style-type: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.spd-wrapper ul li::before,
.spd-wrapper ul li::marker,
.spd-wrapper ol li::before,
.spd-wrapper ol li::marker {
    content: none !important;
    display: none !important;
}

/* Sauf les listes de contenu de fiche (spd-liste) qui ont besoin de puces */
.spd-wrapper .spd-liste {
    list-style: disc !important;
    padding-left: 22px !important;
}

.spd-wrapper .spd-liste li::marker {
    content: unset !important;
    display: unset !important;
}

/* Icône SVG inline dans les liens de fiche — remplace le ▶ texte */
.spd-fiche-link .spd-theme-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    opacity: 0.4;
    font-size: 0;  /* cache le caractère texte ▶ */
    width: 14px;
    height: 14px;
    background-color: var(--spd-accent, #1a3a6b);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center / contain;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center / contain;
}

.spd-fiche-link:hover .spd-theme-icon {
    background-color: var(--spd-hover, var(--spd-accent, #1a3a6b));
    opacity: 1;
}

/* ---- Date de vérification ---- */
.spd-meta-verif {
    font-size: 0.8em;
    color: #6b7280;
    margin: -12px 0 20px;
    padding-bottom: 16px;
    border-bottom: 0.5px solid #e2e5ea;
    font-style: italic;
}

.spd-meta-verif strong {
    font-weight: 600;
    font-style: normal;
    color: #444;
}

/* ---- Icônes SVG inline (services, références, adresses) ---- */
.spd-ico {
    display: inline-block;
    width: 16px;
    height: 16px;
    vertical-align: middle;
    flex-shrink: 0;
    margin-right: 6px;
    stroke: currentColor;
    position: relative;
    top: -1px;
}

/* Icône dans les boutons de service — hérite du blanc */
.spd-btn-service .spd-ico {
    stroke: #fff;
    width: 15px;
    height: 15px;
}

/* Icône dans les références — couleur accent */
.spd-ico-ref {
    stroke: var(--spd-accent, #1a3a6b);
    opacity: 0.7;
    width: 15px;
    height: 15px;
}

/* Icône pin organisme */
.spd-ico-pin {
    stroke: var(--spd-accent, #1a3a6b);
    width: 15px;
    height: 15px;
}

/* Icône carte complement */
.spd-ico-map {
    stroke: #92400e;
    width: 15px;
    height: 15px;
}

/* Références : alignement icône + lien */
.spd-references li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.spd-references li .spd-ico-ref {
    margin-top: 3px;
    margin-right: 0;
    flex-shrink: 0;
}

/* ---- Cards sommaire enrichies avec sous-thèmes ---- */

/* La card devient un bloc vertical complet */
.spd-theme-card {
    display: flex;
    flex-direction: column;
}

/* Le lien principal (icône + titre) reste en haut */
.spd-theme-link {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 22px 16px 16px;
    min-height: auto;
    border-bottom: none !important;
    border-radius: 0 !important;
    border-top: 2px solid transparent;
}

.spd-theme-link:hover {
    border-top-color: var(--spd-hover, #a0bd50) !important;
}

.spd-theme-label {
    font-weight: 600;
    font-size: 0.9em;
    line-height: 1.4;
    color: inherit;
}

/* Liste des sous-thèmes en aperçu sous le titre */
.spd-theme-apercu {
    list-style: none !important;
    padding: 0 12px 14px !important;
    margin: 0 !important;
    background: #fff;
    border: 0.5px solid #e2e5ea;
    border-top: 0.5px solid #f0f0f0;
    flex: 1;
}

.spd-theme-apercu li {
    display: inline !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.spd-theme-apercu li::before,
.spd-theme-apercu li::marker {
    content: none !important;
    display: none !important;
}

.spd-theme-apercu a {
    font-size: 0.78em;
    color: #6b7280;
    text-decoration: none;
    transition: color 0.15s;
    line-height: 1.8;
}

.spd-theme-apercu a:hover {
    color: var(--spd-hover, #a0bd50);
    text-decoration: underline;
}

/* Responsive : 2 colonnes sur mobile */
@media (max-width: 640px) {
    .spd-theme-apercu {
        display: none; /* Caché sur mobile pour garder des cards compactes */
    }
}

/* ---- Cards sommaire v2.2.2 ---- */

/* Titre en gras majuscules */
.spd-theme-label {
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.82em !important;
    color: #1e1e1e;
}

/* Le lien principal ne prend plus toute la hauteur — juste icône + titre */
.spd-theme-link {
    min-height: auto !important;
    padding: 20px 14px 12px !important;
    border: 0.5px solid #e2e5ea !important;
    border-top: 2px solid transparent !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    background: #fff;
}

/* Aperçu des sous-thèmes : dans le bloc, petit, gris */
.spd-theme-apercu {
    background: #fff !important;
    border: 0.5px solid #e2e5ea !important;
    border-top: none !important;
    padding: 0 14px 14px !important;
    margin: 0 !important;
}

.spd-theme-apercu li {
    display: inline !important;
}

.spd-theme-apercu a {
    font-size: 0.75em !important;
    color: #9ca3af !important;
    text-decoration: none !important;
    line-height: 1.7 !important;
}

.spd-theme-apercu a:hover {
    color: var(--spd-hover, #a0bd50) !important;
    text-decoration: none !important;
}

/* ---- Cards sommaire v2.2.3 ---- */

/* Grille : 3 colonnes max, blocs plus larges */
.spd-wrapper .spd-themes-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 16px !important;
}

/* Logo service-public plus grand */
.spd-logo-sp img {
    max-width: 300px !important;
    width: 300px !important;
}

/* Picto plus grand et plus épais */
.spd-theme-icon svg {
    width: 48px !important;
    height: 48px !important;
}

/* Titre en bleu marine, plus grand */
.spd-theme-label {
    font-size: 0.95em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #1a3a6b !important;
    line-height: 1.4 !important;
}

/* Lien du thème : plus de padding vertical */
.spd-theme-link {
    padding: 28px 18px 16px !important;
    gap: 14px !important;
}

/* Sous-titres : gris foncé et plus grands */
.spd-theme-apercu a {
    font-size: 0.85em !important;
    color: #555 !important;
    line-height: 1.9 !important;
}

.spd-theme-apercu a:hover {
    color: var(--spd-hover, #a0bd50) !important;
}

/* ---- Cards sommaire v2.2.4 ---- */

/* Sous-titres centrés avec espace autour */
.spd-theme-apercu {
    text-align: center !important;
    padding: 10px 18px 20px !important;
}

.spd-theme-apercu a {
    line-height: 2 !important;
}

/* ---- Logo v2.3.2 ---- */
.spd-wrapper .spd-logo-sp img {
    max-width: 380px !important;
    width: 380px !important;
}

/* ---- Hover v3.0.7 : couleur de survol = couleur de la catégorie ---- */

/* Par défaut --spd-hover hérite de --spd-accent si non défini */
.spd-wrapper .spd-theme-card {
    --spd-hover: var(--spd-accent, #1a3a6b);
}

/* Survol : liseré + texte + icône dans la couleur de la catégorie */
.spd-wrapper .spd-theme-link:hover {
    border-top-color: var(--spd-hover) !important;
    color: var(--spd-hover) !important;
}

.spd-wrapper .spd-theme-link:hover 

/* Sous-liens aperçu au survol */
.spd-wrapper .spd-theme-apercu a:hover {
    color: var(--spd-hover, var(--spd-accent, #1a3a6b)) !important;
}

/* Liens de fiches au survol */
.spd-wrapper .spd-fiche-link:hover {
    color: var(--spd-accent, #1a3a6b) !important;
}

/* ---- Services en avant ---- */
.spd-services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
    margin: 32px 0;
}

.spd-service-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 24px 26px;
    text-decoration: none;
    transition: box-shadow .2s, transform .15s, border-color .2s;
    position: relative;
    overflow: hidden;
}

.spd-service-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: currentColor;
    opacity: 0;
    transition: opacity .2s;
}

.spd-service-card:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,.10);
    transform: translateY(-3px);
    border-color: #d1d5db;
    text-decoration: none;
}

.spd-service-card:hover::before {
    opacity: 1;
}

.spd-service-card-title {
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 8px;
    line-height: 1.35;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.spd-service-card-title::after {
    content: '→';
    font-size: .9rem;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .2s, transform .2s;
    flex-shrink: 0;
}

.spd-service-card:hover .spd-service-card-title::after {
    opacity: 1;
    transform: translateX(0);
}

.spd-service-card-desc {
    font-size: .875rem;
    color: #6b7280;
    line-height: 1.55;
    margin: 0;
    flex: 1;
}

@media (max-width: 600px) {
    .spd-services-grid {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   WIDGETS COMPLÉMENTAIRES
   ================================================================ */

/* Titre commun */
.spd-widget { margin: 24px 0 32px; }
.spd-widget-titre {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid currentColor;
    display: inline-block;
}
.spd-widget-source {
    margin-top: 16px;
    font-size: 13px;
    text-align: right;
}
.spd-widget-source a { text-decoration: none; font-weight: 500; }
.spd-widget-source a:hover { text-decoration: underline; }

/* ---- Événements de vie ---- */
.spd-evenements-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
}

.spd-evenements-item {
    list-style: none !important;
}

.spd-evenements-item::before {
    display: none !important;
    content: none !important;
}

.spd-evenements-item {
    border-bottom: 1px solid #f3f4f6;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
.spd-evenements-item:last-child { border-bottom: none; }

.spd-evenements-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    text-decoration: none;
    color: #1f2937;
    font-size: .95rem;
    font-weight: 500;
    transition: background .15s, color .15s;
}

.spd-evenements-link:hover {
    background: #f9fafb;
    color: var(--spd-color, #1a3a6b);
    text-decoration: none;
}

.spd-evenements-arrow {
    color: var(--spd-color, #1a3a6b);
    font-size: 1rem;
    flex-shrink: 0;
    transition: transform .2s;
}

.spd-evenements-link:hover .spd-evenements-arrow {
    transform: translateX(4px);
}

/* ---- Thèmes principaux ---- */
.spd-wthemes-cards {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.spd-wthemes-cards .spd-wtheme-card {
    flex: 1 1 calc(25% - 16px) !important;
    min-width: 200px !important;
    box-sizing: border-box !important;
}

.spd-wtheme-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid var(--spd-color, #1a3a6b);
    border-radius: 0 8px 8px 0;
    padding: 18px 20px;
    text-decoration: none;
    transition: box-shadow .2s, transform .15s;
}

.spd-wtheme-card:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,.10);
    transform: translateY(-2px);
    text-decoration: none;
}

.spd-wtheme-card-titre {
    font-weight: 700;
    font-size: .95rem;
    color: var(--spd-color, #1a3a6b);
    margin-bottom: 6px;
    line-height: 1.3;
}

.spd-wtheme-card-sous {
    font-size: .82rem;
    color: #6b7280;
    line-height: 1.5;
    flex: 1;
    margin-bottom: 10px;
}

.spd-wtheme-card-more {
    font-size: .8rem;
    color: var(--spd-color, #1a3a6b);
    font-weight: 600;
    opacity: 0;
    transition: opacity .2s;
}

.spd-wtheme-card:hover .spd-wtheme-card-more { opacity: 1; }

/* ---- Actualités RSS ---- */
.spd-actualites-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
}

.spd-actualites-item {
    list-style: none !important;
}

.spd-actualites-item::before {
    display: none !important;
    content: none !important;
}

.spd-actualites-item {
    border-bottom: 1px solid #f3f4f6;
}
.spd-actualites-item:last-child { border-bottom: none; }

.spd-actualites-link {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 20px;
    text-decoration: none;
    transition: background .15s;
}

.spd-actualites-link:hover {
    background: #f9fafb;
    text-decoration: none;
}

.spd-actualites-titre {
    font-size: .92rem;
    font-weight: 500;
    color: #1f2937;
    line-height: 1.4;
    flex: 1;
    transition: color .15s;
}

.spd-actualites-link:hover .spd-actualites-titre {
    color: var(--spd-color, #1a3a6b);
}

.spd-actualites-date {
    font-size: .78rem;
    color: #9ca3af;
    white-space: nowrap;
    flex-shrink: 0;
}

@media (max-width: 600px) {
    .spd-wthemes-cards { grid-template-columns: 1fr; }
    .spd-actualites-link { flex-direction: column; gap: 4px; }
    .spd-actualites-date { align-self: flex-end; }
}

/* ================================================================
   SOMMAIRE — BAS DE PAGE : 2 colonnes événements + actualités
   ================================================================ */
.spd-sommaire-bottom {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
    margin-top: 48px !important;
    padding-top: 0 !important;
    border-top: none !important;
}

.spd-sommaire-col-titre {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin-bottom: 14px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid currentColor !important;
    line-height: 1.3 !important;
}

@media (max-width: 700px) {
    .spd-sommaire-bottom {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
}

/* ================================================================
   BLOC FRANCE SERVICES
   ================================================================ */
.spd-france-services {
    margin-top: 32px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    padding: 24px 28px;
}

.spd-france-services-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.spd-france-services-text {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    flex: 1;
    min-width: 200px;
}

.spd-france-services-logo {
    color: var(--spd-color, #1a3a6b);
    flex-shrink: 0;
    margin-top: 2px;
}

.spd-france-services-text strong {
    display: block;
    font-size: .95rem;
    color: #111827;
    margin-bottom: 4px;
}

.spd-france-services-text p {
    font-size: .85rem;
    color: #6b7280;
    margin: 0;
    line-height: 1.4;
}

.spd-france-services-form {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.spd-france-services-input {
    padding: 10px 14px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: .9rem;
    font-family: inherit;
    width: 160px;
    outline: none;
    transition: border-color .15s;
}

.spd-france-services-input:focus {
    border-color: var(--spd-color, #1a3a6b);
    box-shadow: 0 0 0 3px rgba(26,58,107,.1);
}

.spd-france-services-btn {
    padding: 10px 18px;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: .85rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity .15s;
}

.spd-france-services-btn:hover { opacity: .85; }

@media (max-width: 600px) {
    .spd-france-services-inner { flex-direction: column; }
    .spd-france-services-form { width: 100%; }
    .spd-france-services-input { flex: 1; }
}

/* Autocomplétion France Services */
.spd-fs-autocomplete { position: relative; flex: 1; min-width: 200px; }
.spd-fs-suggestions {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: #fff;
    border: 1px solid #d1d5db;
    border-top: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,.10);
    z-index: 100;
    overflow: hidden;
}
.spd-fs-sugg-item {
    padding: 10px 14px;
    font-size: .88rem;
    color: #374151;
    cursor: pointer;
    border-bottom: 1px solid #f3f4f6;
    transition: background .1s;
}
.spd-fs-sugg-item:last-child { border-bottom: none; }
.spd-fs-sugg-item:hover { background: #f0f4ff; color: #1a3a6b; }

/* Événements de vie — toggle */
.spd-ev-hidden {
    display: none !important;
}

.spd-ev-toggle:hover {
    text-decoration: underline;
}
