/* Service-Public local. Couleurs modifiables par le thème : --spl-accent, --spl-accent-fonce. */
.spl-contenu, .spl-page { --spl-accent: #6796C9; --spl-accent-fonce: #4f7fb2; --spl-fond: #f5f7fa; --spl-bord: #e2e6ea; --spl-texte-doux: #6b7280; }
.spl-page { max-width: 1100px; margin: 0 auto; padding: 1em; }
.spl-contenu { line-height: 1.6; }
.spl-contenu .screen-reader-text, .spl-ariane .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* En-tête, fil d'Ariane */
.spl-ariane ol { display: flex; flex-wrap: wrap; gap: .3em; list-style: none; margin: 0 0 1em; padding: 0; font-size: .9em; }
.spl-ariane li + li::before { content: "›"; margin-right: .3em; color: var(--spl-texte-doux); }
.spl-surtitre { margin: 0; text-transform: uppercase; letter-spacing: .06em; font-size: .8em; color: var(--spl-texte-doux); }
.spl-verifie { font-size: .85em; color: var(--spl-texte-doux); margin: 0 0 1.2em; }

/* Portail et accueil d'un espace */
.spl-intro { font-size: 1.05em; }
.spl-espaces { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2em; margin: 1.5em 0; }
.spl-espace { display: flex; flex-direction: column; align-items: center; gap: .4em; padding: 1.6em 1.2em; text-align: center; text-decoration: none; color: inherit; background: #fff; border: 1px solid var(--spl-bord); border-top: 5px solid var(--spl-accent); transition: box-shadow .15s, transform .15s; }
.spl-espace:hover, .spl-espace:focus { box-shadow: 0 6px 18px rgba(0,0,0,.1); transform: translateY(-2px); }
.spl-espace .spl-icone { font-size: 2.6em; color: var(--spl-accent); }
.spl-icone { vertical-align: -.125em; flex: none; }
.spl-espace-titre { font-size: 1.3em; font-weight: 600; }
.spl-espace-texte { color: var(--spl-texte-doux); font-size: .95em; }
.spl-themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.2em; margin: 1.5em 0; align-items: start; }
.spl-themes-seul { grid-template-columns: minmax(0, 640px); }
.spl-contenu .spl-theme { display: flex; flex-direction: column; padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--spl-bord); border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.05); transition: box-shadow .2s; }
.spl-contenu .spl-theme:hover { box-shadow: 0 6px 20px rgba(0,0,0,.09); }
.spl-contenu .spl-theme-tete { display: flex; align-items: center; justify-content: space-between; gap: .8em; padding: 1em 1.2em; background: linear-gradient(135deg, var(--spl-accent), var(--spl-accent-fonce)); color: #fff; text-decoration: none !important; }
.spl-contenu .spl-theme-tete h2 { margin: 0; font-size: 1.25em; line-height: 1.25; color: #fff !important; }
.spl-contenu a.spl-theme-tete:hover h2, .spl-contenu a.spl-theme-tete:focus h2 { text-decoration: underline; text-underline-offset: 3px; }
.spl-theme-nombre { flex: none; padding: .15em .65em; border-radius: 1em; background: rgba(255,255,255,.22); font-size: .78em; white-space: nowrap; }
.spl-contenu .spl-theme-liens { list-style: none; margin: 0; padding: .5em; }
.spl-contenu .spl-theme-liens li { margin: 0; padding: 0; border: 0; }
.spl-contenu .spl-theme-liens li::before { content: none; }
.spl-contenu .spl-theme-liens a { display: flex; align-items: center; justify-content: space-between; gap: .6em; padding: .55em .7em; border-radius: 6px; color: #333; text-decoration: none !important; border: 0; transition: background .15s, color .15s; }
.spl-contenu .spl-theme-liens a:hover, .spl-contenu .spl-theme-liens a:focus { background: #eef4fa; color: var(--spl-accent-fonce); }
.spl-contenu .spl-theme-liens .spl-icone { color: var(--spl-accent); opacity: .5; transition: transform .15s, opacity .15s; }
.spl-contenu .spl-theme-liens a:hover .spl-icone, .spl-contenu .spl-theme-liens a:focus .spl-icone { opacity: 1; transform: translateX(3px); }

/* Recherche */
.spl-recherche { display: flex; gap: .5em; margin: 1em 0 1.5em; padding: 1em; background: var(--spl-fond); border: 1px solid var(--spl-bord); }
.spl-recherche input[type=search] { flex: 1; min-width: 0; padding: .6em .8em; border: 1px solid #c9cfd6; font-size: 1em; }
.spl-recherche button, .spl-bouton { display: inline-block; padding: .6em 1em; border: 0; background: var(--spl-accent); color: #fff !important; text-decoration: none; cursor: pointer; font-weight: 600; line-height: 1.3; }
.spl-recherche button:hover, .spl-bouton:hover { background: var(--spl-accent-fonce); }
.spl-resultats { padding-left: 1.4em; }
.spl-resultats li { margin: 0 0 1em; }
.spl-resultats a { font-weight: 600; font-size: 1.05em; }
.spl-resultats p { margin: .2em 0 0; color: var(--spl-texte-doux); font-size: .92em; }
.spl-resultat-type { margin-left: .6em; padding: 0 .5em; background: var(--spl-fond); border: 1px solid var(--spl-bord); font-size: .75em; text-transform: uppercase; letter-spacing: .04em; vertical-align: middle; }
.spl-compte, .spl-vide { color: var(--spl-texte-doux); }
.spl-vide { padding: 1em; background: var(--spl-fond); }

/* Corps des fiches */
.spl-introduction { font-size: 1.05em; }
.spl-chapitre { margin: 1.8em 0 1em; }
.spl-souschapitre { margin: 1.2em 0; }
.spl-liste { margin: .5em 0 1em; padding-left: 1.4em; }
.spl-liste li { margin: .25em 0; }
.spl-valeur { white-space: nowrap; }
.spl-terme { border-bottom: 1px dotted currentColor; text-decoration: none; }
.spl-contenu abbr[title] { text-decoration: underline dotted; cursor: help; }
.spl-externe::after { content: "\2197"; font-size: .8em; margin-left: .15em; }
.spl-titre { margin: 1em 0 .4em; }
.spl-complement { color: var(--spl-texte-doux); }

/* Encadrés */
.spl-encart, .spl-avertissement { margin: 1.2em 0; padding: .9em 1.1em; background: var(--spl-fond); border-left: 5px solid var(--spl-accent); }
.spl-encart > :last-child, .spl-avertissement > :last-child { margin-bottom: 0; }
.spl-encart-titre { margin: 0 0 .4em; font-weight: 700; }
.spl-attention, .spl-avertissement { background: #fdf3e7; border-left-color: #E69A1C; }
.spl-asavoir { border-left-color: #9BC434; background: #f4f9ea; }
.spl-exemple { border-left-color: #a0a7b0; }
.spl-date { font-weight: 400; color: var(--spl-texte-doux); }

/* Cas et situations */
.spl-cas { margin: 1.2em 0; }
.spl-cas-consigne { margin: 0 0 .5em; font-weight: 600; }
.spl-cas-item { margin: 0 0 .5em; border: 1px solid var(--spl-bord); background: #fff; }
.spl-cas-item > summary { cursor: pointer; padding: .8em 1em; font-weight: 600; background: var(--spl-fond); list-style-position: inside; }
.spl-cas-item > summary:hover { background: #eaf1f9; }
.spl-cas-item[open] > summary { border-bottom: 1px solid var(--spl-bord); color: var(--spl-accent-fonce); }
.spl-cas-contenu { padding: .4em 1.1em 1em; }

/* Tableaux */
.spl-tableau { overflow-x: auto; margin: 1em 0; }
.spl-tableau table { width: 100%; border-collapse: collapse; font-size: .95em; }
.spl-tableau caption { text-align: left; font-weight: 600; padding: .4em 0; }
.spl-tableau th, .spl-tableau td { padding: .55em .7em; border: 1px solid var(--spl-bord); text-align: left; vertical-align: top; }
.spl-tableau th { background: var(--spl-accent); color: #fff; }
.spl-tableau tbody tr:nth-child(even) { background: #fafbfc; }

/* Sections de fin de fiche */
.spl-section { margin: 2em 0 1em; padding-top: 1em; border-top: 2px solid var(--spl-bord); }
.spl-section > h2 { margin: 0 0 .7em; font-size: 1.3em; }
.spl-services, .spl-contacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .8em; }
.spl-service, .spl-contact { display: flex; flex-direction: column; gap: .3em; padding: .9em 1em; background: #fff; border: 1px solid var(--spl-bord); border-top: 4px solid var(--spl-accent); margin: .6em 0; }
.spl-services .spl-service, .spl-contacts .spl-contact { margin: 0; }
.spl-service-type { font-size: .75em; text-transform: uppercase; letter-spacing: .05em; color: var(--spl-texte-doux); }
.spl-service-titre { font-weight: 600; }
.spl-service-cerfa, .spl-service-source { font-size: .85em; color: var(--spl-texte-doux); }
.spl-service .spl-bouton { align-self: flex-start; margin-top: .3em; font-size: .9em; }
.spl-bouton-info { font-weight: 400; opacity: .85; font-size: .9em; }
.spl-boutons { display: flex; flex-wrap: wrap; gap: .6em; margin: 1em 0; }
.spl-bouton:not(.spl-bouton-principal) { background: #fff; color: var(--spl-accent-fonce) !important; border: 2px solid var(--spl-accent); }
.spl-contact-titre { margin: 0; font-weight: 700; }
.spl-contact p { margin: .2em 0; }
.spl-ressources, .spl-liens { padding-left: 1.2em; }
.spl-ressources li, .spl-liens li { margin: .35em 0; }
.spl-ressource-complement, .spl-ressource-source { display: block; font-size: .88em; color: var(--spl-texte-doux); }
.spl-source { font-size: .85em; color: var(--spl-texte-doux); }
.spl-groupe { margin: 1.5em 0; }
.spl-groupe h2 { font-size: 1.2em; margin-bottom: .4em; }
.spl-glossaire dt { font-weight: 700; margin-top: .8em; }
.spl-glossaire dd { margin: .2em 0 0; }
.spl-glossaire dt:target { color: var(--spl-accent-fonce); }
.spl-infos { display: grid; grid-template-columns: max-content 1fr; gap: .3em 1em; }
.spl-infos dt { font-weight: 600; }
.spl-infos dd { margin: 0; }
.spl-cerfa { font-weight: 600; }

/* Services locaux (Annuaire) */
.spl-commune { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; margin: 0 0 1.2em; padding: .7em 1em; background: #eef4fa; border: 1px solid #cfdff0; }
.spl-commune label { font-weight: 600; }
.spl-commune .spl-icone { color: var(--spl-accent); }
.spl-commune-aide { font-size: .88em; color: var(--spl-texte-doux); }
.spl-local { margin: .4em 0; }
.spl-local-service { padding: .6em .8em; margin: .4em 0; background: var(--spl-fond); border-left: 4px solid #9BC434; }
.spl-local-service p { margin: .15em 0; }
.spl-local-horaires summary { cursor: pointer; font-size: .9em; }
.spl-local-horaires ul { margin: .3em 0 0; padding-left: 1.2em; font-size: .9em; }
.spl-local-fiche, .spl-contact-lien { font-size: .88em; }

/* Images */
.spl-image { margin: 1em 0; }
.spl-image img { max-width: 100%; height: auto; }
.spl-image figcaption { font-size: .88em; color: var(--spl-texte-doux); }

/* Mention de la source */
.spl-credit { margin-top: 2.5em; padding-top: .8em; border-top: 1px solid var(--spl-bord); font-size: .82em; color: var(--spl-texte-doux); }

@media (max-width: 600px) {
    .spl-recherche { flex-direction: column; }
    .spl-infos { grid-template-columns: 1fr; }
}

/* Intégration dans un thème (gabarit service-public.php du thème) */
.spl-theme-corps { margin: 0 .5em; }
#pageCategorie .spl-ariane { margin: .6em .5em; }
#pageCategorie .spl-surtitre-theme { margin: .3em .5em 0; text-align: center; }
.spl-variable { background: #fff8d6; font-style: normal; }
.spl-espace-nombre { font-size: .85em; color: var(--spl-texte-doux); }
.spl-espace-bouton { margin-top: .6em; padding: .45em 1.1em; background: var(--spl-accent); color: #fff; font-weight: 600; }
.spl-espace:hover .spl-espace-bouton { background: var(--spl-accent-fonce); }

/* Listes de fiches (dossiers, Voir aussi, Questions-réponses…) : lignes cliquables comme les cartes de thèmes */
.spl-contenu .spl-liens-bloc { margin: 1.2em 0; background: #fff; border: 1px solid var(--spl-bord); border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.spl-contenu .spl-liens { list-style: none; margin: 0; padding: .5em; }
.spl-contenu .spl-section .spl-liens { padding: 0; }
.spl-contenu .spl-liens li { margin: 0; padding: 0; border-bottom: 1px solid #f0f2f4; }
.spl-contenu .spl-liens li:last-child { border-bottom: 0; }
.spl-contenu .spl-liens li::before, .spl-contenu .spl-liens li::marker { content: none; }
.spl-contenu .spl-liens a { display: flex; align-items: center; justify-content: space-between; gap: .6em; padding: .65em .7em; border-radius: 6px; color: #333; text-decoration: none !important; transition: background .15s, color .15s; }
.spl-contenu .spl-liens a:hover, .spl-contenu .spl-liens a:focus { background: #eef4fa; color: var(--spl-accent-fonce); }
.spl-contenu .spl-liens .spl-icone { color: var(--spl-accent); opacity: .5; transition: transform .15s, opacity .15s; }
.spl-contenu .spl-liens a:hover .spl-icone, .spl-contenu .spl-liens a:focus .spl-icone { opacity: 1; transform: translateX(3px); }

/* Textes de référence, Pour en savoir plus : liens sans soulignement, une ligne par ressource */
.spl-contenu .spl-ressources { list-style: none; margin: 0; padding: 0; }
.spl-contenu .spl-ressources li { margin: 0; padding: .6em 0 .6em 1.1em; border-bottom: 1px solid #f0f2f4; position: relative; }
.spl-contenu .spl-ressources li:last-child { border-bottom: 0; }
.spl-contenu .spl-ressources li::before { content: "›"; position: absolute; left: .1em; top: .55em; color: var(--spl-accent); font-weight: 700; }
.spl-contenu .spl-ressources a { color: var(--spl-accent-fonce); text-decoration: none !important; font-weight: 600; }
.spl-contenu .spl-ressources a:hover, .spl-contenu .spl-ressources a:focus { text-decoration: underline !important; }

/* Liens dans le texte des fiches : discrets, soulignés au survol */
.spl-contenu p a:not(.spl-bouton), .spl-contenu .spl-liste li a, .spl-contenu td a { color: var(--spl-accent-fonce); text-decoration: none; border-bottom: 1px solid rgba(79,127,178,.3); }
.spl-contenu p a:not(.spl-bouton):hover, .spl-contenu .spl-liste li a:hover, .spl-contenu td a:hover { border-bottom-color: currentColor; }
.spl-contenu .spl-liens a, .spl-contenu .spl-theme-liens a, .spl-contenu .spl-ressources a, .spl-contenu p a.spl-bouton { border-bottom: 0; }
.spl-retour a { text-decoration: none; font-weight: 600; }
.spl-contenu a.spl-service-titre { color: #333; text-decoration: none !important; border-bottom: 0; }
.spl-contenu a.spl-service-titre:hover, .spl-contenu a.spl-service-titre:focus { color: var(--spl-accent-fonce); }
.spl-contenu .spl-contact-lien a, .spl-contenu .spl-local-fiche a, .spl-contenu .spl-local-liens a { text-decoration: none; border-bottom: 0; color: var(--spl-accent-fonce); }
.spl-contenu .spl-contact-lien a:hover, .spl-contenu .spl-local-fiche a:hover, .spl-contenu .spl-local-liens a:hover { text-decoration: underline; }
