/******************************************************************
 * FICHIER : perso.css
 * ORGANISATION : 13 BLOCS LOGIQUES
 * PARTIE 1 : FONDATIONS
 ******************************************************************/

/* =================================================================
   BLOC 01 : BASES & RESET
   ================================================================= */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { height: 100%; }

body {
	font: normal 1em arial, sans-serif;
	background-color: #F8F8F8; color: #333; line-height: 1.6;
	display: flex; flex-direction: column; min-height: 100vh;
}

/* Fond Sommaire (Parallaxe) */
body:has(> #main > main.page-sommaire) {
    background-attachment: fixed; 
    background-size: cover; 
    background-position: center;
    position: relative; 
    background-color: transparent !important;
}
body:has(> #main > main.page-sommaire)::before {
	content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
	background-color: rgba(255, 255, 255, 0.90); z-index: -1;
}

article, aside, figure, footer, header, hgroup, section { display: block; }
a, a:hover { outline: none; text-decoration: none; color: #2E7777; }
img { border: 0; max-width: 100%; height: auto; }
hr { border: none; border-top: 1px solid #E0E0E0; height: 0; margin: 25px 0; clear: both; }

/* =================================================================
   BLOC 02 : TYPOGRAPHIE
   ================================================================= */
/* Titres : News Cycle */
h1, h2, h3, h4, h5, h6, .site-title, .site-slogan, .carte-titre, .item-titre,
.section-grille h2, .section-liste h2, .section-syndication h2, .sidebar h3,
.contenu > h1, .contact-form-container .formulaire_ecrire_auteur legend {
	font-family: 'News Cycle', arial, sans-serif; font-weight: bold;
}

/* Paragraphes */
p { padding: 0 0 12px 0; line-height: 1.3em; }
p.breves { padding: 0 0 12px 93px; line-height: 1.3em; }
p.uppercase { text-transform: uppercase; }

/* --- H1 à H6 Génériques --- */
.contenu > h1 { padding: 0 0 5px 10px; font-size: 2.0em; text-shadow: none; color: #2c3e50; margin-bottom: 20px; border-bottom: 2px solid #EAEAEA; }

/* Titres de niveau 2 */
.contenu h2 { font-size: 1.6em; color: #2E7777; margin-top: 1.8em; margin-bottom: 1em; padding-bottom: 5px; border-bottom: 1px solid #E0E0E0; }

/* Titres de Sections (Articles récents, etc.) avec Icônes */
.breves-header h2, 
.header-section h2, 
.section-nouveautes-web .breves-header h2 {
    font-size: 1.6em; 
    color: #333; 
    margin-bottom: 30px; 
    display: flex;          
    align-items: flex-start;
    gap: 15px;              
    border-bottom: none; 
    line-height: 1.3;
    padding-left: 20px;     
}

.breves-header h2 i, 
.header-section h2 i, 
.section-nouveautes-web .breves-header h2 i { 
    color: #f39c12;         
    flex-shrink: 0;         
    margin-top: 4px;        
}

.contenu h3 { font-size: 1.3em; color: #333; margin-top: 1.5em; margin-bottom: 0.8em; }
h4 { font-size: 1.5em; margin: 1em 0 0.5em 10px; line-height: 1.3; color: #000; border-left: 6px solid #ccd; padding-left: 1em; }
h5 { font-size: 1.0em; margin: 0.8em 0 0.4em 14px; line-height: 2.0; color: #000; border-left: 2px solid #ccd; padding-left: 1em; }
h6 { font-size: 1em; margin: 0.7em 0 0.3em 0; line-height: 1.5; font-weight: normal; color: #777; padding-left: 1em; }

/* --- Typo Contenu --- */
.contenu .paragraphe, .contenu .texte, .contenu .paragraphe p, .contenu .texte p { font-family: arial, sans-serif !important; line-height: 1.5em !important; }
.contenu .paragraphe h1, .contenu .texte h1 { font-family: arial, sans-serif !important; font-size: 2.2em; font-weight: bold; color: #1a1a1a; margin-top: 1.5em; margin-bottom: 0.8em; border-bottom: none; line-height: 1.3; padding-left: 0.5em; }
.contenu .paragraphe h2, .contenu .texte h2 { font-family: arial, sans-serif !important; font-size: 1.8em; font-weight: bold; color: #1a1a1a; margin-top: 1.5em; margin-bottom: 0.8em; border-bottom: none; line-height: 1.3; padding-left: 0.5em; }

h3.black, .contenu .paragraphe h3, .contenu .texte h3 {
	clear: both; font-family: arial, sans-serif !important; font-size: 1.2em; font-weight: normal; color: #FFFFFF; letter-spacing: 0em; line-height: 1.4; padding: 10px 0 10px 0.5em;
	margin-top: 1.4em; margin-bottom: 1.4em; background: linear-gradient(#000, #585858); box-shadow: rgba(0, 0, 0, 0.2) 0 2px 2px; border: 1px solid #eee; border-radius: 7px;
}

.contenu .paragraphe h4, .contenu .texte h4 { font-family: arial, sans-serif !important; font-size: 1.7em; font-weight: bold; color: #333; margin-top: 1.3em; margin-bottom: 0.6em; border-left: none; padding-left: 0.8em; margin-left: 0; }
.contenu .paragraphe h5, .contenu .texte h5 { font-family: arial, sans-serif !important; font-size: 1.2em; font-weight: bold; color: #333; margin-top: 1.2em; margin-bottom: 0.5em; border-left: none; padding-left: 1em; margin-left: 0; }
.contenu .paragraphe h6, .contenu .texte h6 { font-family: arial, sans-serif !important; font-size: 1em; font-weight: normal; color: #555; margin-top: 1.1em; margin-bottom: 0.4em; border-left: none; padding-left: 1.2em; margin-left: 0; }

/* --- Listes --- */
ul:not(.liste-articles-grand):not(.liste-syndication):not(.menu-principal):not(.spip) { margin: 2px 0 22px 17px; }
ul:not(.liste-articles-grand):not(.liste-syndication):not(.menu-principal):not(.spip) li { list-style-type: none; margin: 0; padding: 0; line-height: 1.5em; }
ol { margin: 8px 0 22px 20px; }
ol li { margin: 0 0 11px 0; }
.contenu .paragraphe ul, .contenu .texte ul { margin: 2px 0 22px 17px !important; }
.contenu .paragraphe ul li, .contenu .texte ul li { list-style: disc !important; margin: 0 0 10px 30px !important; padding: 0 !important; background: none !important; display: list-item !important; line-height: 1.5em !important; }

/* Puces personnalisées */
ul.bulletvert li { background: url(../images/bullet_vert.jpg) no-repeat; }
ul.bulletbleu li { background: url(../images/bullet_bleu.jpg) no-repeat; }
ul.bulletsang li { background: url(../images/bullet_redsang.jpg) no-repeat; }
ul.bulletvert li, ul.bulletbleu li, ul.bulletsang li { list-style: none; background-position: left -1px bottom 45%; line-height: 1.3em; text-align: justify; margin: 0 0 15px 15px; padding: 15px 0 0 30px; }

.page-rubrique .texte, .page-breves .texte, .page-auteur .texte, .page-plan .texte, .page-recherche .texte { margin-bottom: 40px; }

/* =================================================================
   BLOC 03 : STRUCTURE & LAYOUT
   ================================================================= */
#main, #container, #logo { margin-left: auto; margin-right: auto; }

#main { 
    width: 100%; max-width: 950px; margin-top: 30px; padding-bottom: 30px; 
    position: relative; z-index: 1; flex-grow: 1;
    padding-left: 0; padding-right: 0;
}

.contenu { 
    text-align: left; max-width: 950px; margin: 0; float: left; font-size: 1.0em; 
    background: transparent; padding: 0 20px; box-sizing: border-box;
}
.contenu.sommaire { margin: 0; }

.content-wrapper { 
    background: transparent; font-family: arial, sans-serif;
    padding: 0 20px; box-sizing: border-box;
}

#sidebar_container { float: right; width: 224px; margin: 10px 0 0 0; }
.sidebar {
	float: right; width: 200px; padding: 0 19px; margin: 0 0 17px 0;
	background: linear-gradient(#fff, #ddd); box-shadow: rgba(0, 0, 0, 0.2) 0 2px 2px;
	border: 1px solid #eee; border-radius: 7px;
}
.sidebar h3 { padding: 0 15px 5px 0; font-size: 2.5em; color: #444; }
.sidebar ul { margin: 15px 0 10px 0; }
.sidebar ul li { list-style-type: none; margin: 0; padding: 0; line-height: 1.5em; background-position: 0; }
.sidebar li a { color: #555; }
.sidebar li a:hover { text-decoration: underline; }
.sidebar_item, .content_item { padding: 15px 0; }

.site-footer {
	background-color: #2c3e50; color: #bdc3c7; border-top: 1px solid #3e5169;
	padding: 30px 0; margin-top: 60px; font-size: 0.9em; font-family: arial, sans-serif; clear: both;
}
.footer-wrapper {
	max-width: 950px; margin: 0 auto; padding: 0 20px;
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; 
	gap: 15px 30px;
}
.footer-copyright p { margin: 0; padding: 0; line-height: 1.5; }
.footer-nav { display: flex; align-items: center; gap: 25px; }
.footer-nav a { color: #bdc3c7; transition: color 0.2s ease, transform 0.2s ease; display: inline-flex; align-items: center; } 
.footer-nav a:hover { color: #ffffff; transform: translateY(-2px); }
.footer-nav .fa { font-size: 20px; vertical-align: middle; margin: 0; line-height: 1; }
.footer-separator { display: none; }

/* =================================================================
   BLOC 04 : NAVIGATION (MENU)
   ================================================================= */
.menu-indic {
	background-color: #394555; opacity: 1; width: 100%; height: 70px; position: sticky; top: 0; z-index: 9999;
	border-bottom: 1px solid rgba(43, 53, 67, 0.5); transition: transform 0.4s ease;
}
.menu-indic.menu-hidden { transform: translateY(-100%); }
.menu-indic input[type="checkbox"] { display: none; }
.menu-indic label {
	display: none; float: right; width: 70px; height: 70px; align-items: center;
	justify-content: center; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.menu-home-icon { display: none; }
.menu-indic label i.fa-bars { font-size: 1.5em; color: #dadcdf; transition: color 0.2s, transform 0.2s; }
.menu-indic label:hover i.fa-bars { color: #fff; transform: scale(1.1); }
.menu-indic label .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

.menu-indic > ul.menu-principal {
	list-style: none; padding: 0; margin: 0; display: flex;
	height: 100%; width: 100%; max-width: 950px; margin-left: auto; margin-right: auto; 
}
.menu-indic > ul > li { position: relative; display: flex; align-items: center; }
.menu-indic > ul > li > a {
	display: flex; align-items: center; height: 100%; padding: 0 15px;
	text-decoration: none; color: #dadcdf; font-size: 15px; position: relative;
	transition: color 0.2s ease; font-family: arial, sans-serif; font-weight: normal; 
}
.menu-indic > ul.menu-principal > li:not(.menu-items__item_accueil):not(.recherche) > a > i.fa { margin-right: 8px; width: 20px; text-align: center; }
.menu-indic > ul > li > a::after {
	content: ''; position: absolute; bottom: 0; left: 10px; right: 10px; height: 3px;
	background-color: #2E7777; transform: scaleX(0); transition: transform 0.3s ease;
}
.menu-indic > ul > li > a:hover { color: #FFFFFF; }
.menu-indic > ul > li > a.on::after { transform: scaleX(1); }

.menu-indic a.on { color: #f39c12 !important; font-weight: normal !important; }
.menu-indic li.on > a, .menu-indic li.active > a, .menu-indic li.on-parent > a, .menu-indic li.ancestor > a { color: #f39c12 !important; font-weight: normal !important; }
.menu-indic li.nav_loupe.on > a, .menu-indic li.nav_loupe.on, body.page_recherche .menu-indic li.nav_loupe > a,
.menu-indic li.nav_breves.on > a, body.page_breves .menu-indic li.nav_breves > a, body.rubrique_breves .menu-indic li.nav_breves > a,
.menu-indic li.nav_plan.on > a, body.page_plan .menu-indic li.nav_plan > a,
.menu-indic li.nav_contact.on > a, body.page_contact .menu-indic li.nav_contact > a,
body.page_contact .menu-indic li.nav_apropos > a, body.page_plan .menu-indic li.nav_apropos > a,
body.page_auteur .menu-indic li.nav_apropos > a, body.page_mapage .menu-indic li.nav_apropos > a,
body.page_sommaire .menu-items__item_accueil > a,
body.page_plan .menu-items__item_page-speciale.plan > a,
body.page_contact .menu-items__item_page-speciale.contact > a,
body.page_mapage .menu-items__item_mapage > a { color: #f39c12 !important; font-weight: normal !important; }

.menu-indic ul ul {
	list-style: none; padding: 0; margin: 0; position: absolute; top: 100%; left: 0;
	background-color: #29323d; border-radius: 0 0 8px 8px; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
	min-width: 220px; opacity: 0; visibility: hidden; transform: translateY(10px);
	transition: opacity 0.3s, transform 0.3s, visibility 0.3s; border: 1px solid #2b3543; border-top: none;
}
.menu-indic > ul > li:hover ul { opacity: 1; visibility: visible; transform: translateY(0); }
.menu-indic ul ul li a {
	display: block; padding: 12px 20px; text-decoration: none; color: #dadcdf;
	transition: background-color 0.2s, color 0.2s; font-family: arial, sans-serif; font-size: 14px; font-weight: normal; 
}
.menu-indic ul ul li a:hover, .menu-indic ul ul li a.on { background-color: #1b2129; color: #FFFFFF; }

/* =================================================================
   BLOC 05 : ÉLÉMENTS SPIP & CORE
   ================================================================= */
span.spip_surligne { background-color: rgba(243, 156, 18, 0.4); color: inherit; padding: 1px 4px; border-radius: 3px; border-bottom: 2px solid #f39c12; box-decoration-break: clone; }
.spip_logo { float: right; margin: 0; padding: 0; border: none; }
.spip_logo_left { float: left; margin-right: 0.5em; margin-bottom: 0; }
.chapeau { padding: 15px; margin: 1.5em 0; text-align: justify; background: linear-gradient(#F3E2A9, #E6E2AF); box-shadow: rgba(0, 0, 0, 0.1) 0 2px 5px; border: 1px solid #EAEAEA; border-radius: 8px; }
.chapeau p { padding: 0; margin-bottom: 0; }

.contenu_ps, .contenu_notes { background-color: #FFFFFF; text-align: justify; border: 1px solid #EAEAEA; padding: 1.5em; margin: 2em 0; border-radius: 8px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); }
.contenu_ps .label, .contenu_notes .label { display: block; font-family: 'News Cycle', arial, sans-serif; font-size: 1.2em; font-weight: 700; color: #1a1a1a; margin-bottom: 1em; padding-bottom: 0.8em; border-bottom: 1px solid #E0E0E0; background: none; }
.contenu_ps .label hr, .contenu_notes .label hr { display: none; }
.contenu_notes .notes { padding-left: 0; margin-top: 0; }
.contenu_ps p:last-child, .contenu_notes .notes div:last-child p { padding-bottom: 0; margin-bottom: 0; }
.contenu_notes .notes div[id^="nb"] { position: relative; padding-left: 2.5em; margin-bottom: 1em; }
.contenu_notes .spip_note_ref { position: absolute; left: 0; top: 0; display: inline-block; width: 2em; text-align: left; font-size: 80%; vertical-align: baseline; font-family: arial, sans-serif; }
.contenu_notes .spip_note_ref a { color: #4780AD; text-decoration: none; font-weight: normal; }
.contenu_notes .notes p { padding: 0; margin: 0; line-height: 1.6; }

blockquote { background: none; padding-left:15px; margin: 20px 30px; border-left: 5px solid #2E7777; text-align: justify; hyphens: auto; word-break: break-word; }
blockquote p { padding: 0; text-indent: 0; margin-bottom: 12px; }
blockquote p:first-child { margin-top: 0; }
cite { display: inline; margin: 0; padding: 0; font-style: normal; font-weight: initial; font-size: 90%; color: #2E7777; line-height: 116%; }
cite::before { content: "—"; color: black; margin-right: 5px; }
.spip_poesie { padding: 0 50px; font-style: italic; margin: 10px 0 20px 0; border: 0; }
.spip_code, .spip_cadre { font-family: 'Courier New', Courier, monospace; font-size: 1em; margin:0 .2em; }
.spip_code { border: 0 solid #dfdfcd; background-color: transparent; color: #1560BD; text-shadow: 0 1px 0 #fdfdfc; }
.spip_cadre { background:#333; color:#fff; border-radius:0.5em; border:0; }
textarea.spip_code, textarea.spip_cadre { padding: 1em; width:98%; }

/* Hyperlien (Voir en ligne) */
.hyperlien { 
    display: block; padding: 1em 1.5em 1em 50px; margin: 2em 0; 
    background-color: #f7f9f9; border-left: 5px solid #2E7777; border-radius: 0 5px 5px 0; 
    font-weight: normal; position: relative; 
}
.hyperlien a { font-weight: 600; text-decoration: none; word-break: break-word; }
.hyperlien a:hover { text-decoration: underline; }
.hyperlien:visited::before, .hyperlien::before { 
    font-family: FontAwesome; position: absolute; left: 15px; top: 1em; 
    font-size: 1.1em; font-weight: normal; content: "\f0c1"; color: #2E7777; 
}

.spip_out:visited::before, .spip_out::before { font-family: FontAwesome; margin-right: 4px; color: #000; padding-left: 2px; }
a.cite .spip_out, .cite .spip_out:visited  { max-width: 200px; overflow: hidden; color:green; border-bottom: 1px dotted black; margin-bottom: -3px; }

/* Tableaux */
body table { width: 100%; border-collapse: collapse; margin: 20px auto; table-layout: auto; font-family: arial, sans-serif; }
body table caption { padding: 10px 15px; text-align: left; font-size: 1.1em; font-style: italic; background-color: #2E7777; color: #FFFFFF; border-bottom: none; caption-side: top; }
body table th { padding: 10px 15px; text-align: center; background-color: #F0F0F0; color: #2E7777; font-weight: bold; border-bottom: 2px solid #2E7777; border-right: 1px solid #E0E0E0; }
body table td { padding: 12px 15px; text-align: left; border-bottom: 1px solid #EEEEEE; border-right: 1px solid #F4F4F4; }
body table tr.row_even td, body table tr.even td { background-color: #FAFAFA; }
body table th:last-child, body table tr td:last-child { border-right: none; }
body table tr:last-child td { border-bottom: none; }

.spip_documents { margin: .6em auto .5em; padding: 5px; background-color: #fff; border: 1px solid #e5e5cc; max-width: 50%; }
.spip_documents_center { margin-right: auto; margin-left: auto; text-align: center; }
.spip_documents_left { float: left; margin-right: .9em; max-width: 30%; }
.spip_documents_right { float: right; margin-left: .9em; max-width: 30%; }
.spip_doc_titre, .spip_doc_descriptif { margin-right: auto; margin-left: auto; text-align: center; font-size:small; line-height: 1.3em; }
.spip_document img, .spip_document svg { max-width: 100%; height: auto; margin-bottom: 5px; }
.cartouche .responsive_off { float: right; margin-left: 15px; margin-bottom: 10px; }
.cartouche .responsive_off img { border-radius: 8px; display: block; max-width: 100px; height: auto; }
.cartouche h1 { overflow: hidden; }

/* =================================================================
   BLOC 06 : FORMULAIRES
   ================================================================= */
.formulaire_recherche { margin: 2px 0; }
.inscription p, .form_settings p { padding: 0 0 10px 0; }
.inscription span, .form_settings span { float: left; width: 200px; text-align: left; }
.inscription input, .inscription textarea, .form_settings input, .form_settings textarea { padding: 5px; font: 100% arial; border: 1px solid #D5D5D5; background: #FFF; color: #47433F; border-radius: 7px; }
.inscription input, .inscription textarea { width: 93%; margin: 0 0 15px 0; }
.form_settings input, .form_settings textarea { width: 450px; }
.inscription .submit, .form_settings .submit { font: 140% 'Yanone Kaffeesatz', arial, sans-serif; border: 1px solid #ddd; height: 33px; padding: 2px 0 3px 0; cursor: pointer; background: linear-gradient(#fff, #ddd); box-shadow: rgba(0, 0, 0, 0.2) 0 2px 2px; border-radius: 7px; color: #000000; text-shadow: 1px 1px #FFF; }
.inscription .submit { width: 99%; margin: 0; }
.form_settings .submit { width: 420px; margin: 0 0 0 212px; }
.inscription textarea, .inscription select, .form_settings textarea, .form_settings select { font: 100% arial; }
.inscription select, .form_settings select { width: 310px; }
.inscription .checkbox, .form_settings .checkbox { margin: 4px 0; padding: 0; width: 14px; border: 0; background: none; }

.areponse_formulaire { margin-bottom: 1.5em; padding: 1.75em; border: 2px solid #ddd; }
.areponse_formulaire_ok { background: #e6efc2; color: #264409; border-color: #c6d880; }
.areponse_formulaire_erreur { background: #fbe3e4; color: #8a1f11; border-color: #fbc2c4; }
.areponse_formulaire_ok a { color: #264409; }
.areponse_formulaire_erreur a { color: #8a1f11; }

.zone-recherche-haut { font-family: arial, sans-serif; background-color: #f8f8f8; border: 1px solid #eaeaea; border-radius: 8px; padding: 40px; margin: 40px auto; width: 100%; max-width: 850px; box-shadow: 0 5px 15px rgba(0,0,0,0.03); box-sizing: border-box; }
.zone-recherche-haut .formulaire_spip, .zone-recherche-haut form { width: 100%; margin: 0; padding: 0; border: none; background: transparent; }
.zone-recherche-haut .editer-groupe { display: flex; align-items: stretch; gap: 15px; width: 100%; margin: 0; padding: 0; }
.zone-recherche-haut input.text.search { flex-grow: 1; width: auto; padding: 15px 20px; font-size: 1.2em; border: 2px solid #e0e0e0; border-radius: 6px; background-color: #fff; transition: all 0.3s ease; margin: 0; }
.zone-recherche-haut input.text.search:focus { border-color: #2E7777; box-shadow: 0 0 0 4px rgba(46, 119, 119, 0.15); outline: none; }
.zone-recherche-haut .submit { flex-shrink: 0; background-color: #2E7777; color: #fff; border: none; padding: 0 35px; font-size: 1.2em; font-weight: bold; border-radius: 6px; cursor: pointer; transition: background-color 0.2s, transform 0.2s; margin: 0; width: auto !important; }
.zone-recherche-haut .submit:hover { background-color: #245d5d; transform: translateY(-1px); }

.contact-form-container { font-family: arial, sans-serif; max-width: 750px; margin: 0 auto 40px auto; padding: 30px 40px; background-color: #fff; border: 1px solid #eaeaea; border-radius: 10px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08); }
.contact-form-container .cartouche { display: none; }
.contact-form-container .formulaire_ecrire_auteur fieldset { border: none; padding: 0; margin: 0; }
.contact-form-container .formulaire_ecrire_auteur legend { display: none; }
.contact-form-container .formulaire_ecrire_auteur .editer { margin-bottom: 25px; }
.contact-form-container .formulaire_ecrire_auteur label { display: block; font-weight: 600; margin-bottom: 8px; color: #333; }
.contact-form-container .formulaire_ecrire_auteur input[type="text"], .contact-form-container .formulaire_ecrire_auteur input[type="email"], .contact-form-container .formulaire_ecrire_auteur textarea { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 5px; font-size: 1em; font-family: inherit; box-sizing: border-box; transition: border-color 0.2s, box-shadow 0.2s; background: #fff; }
.contact-form-container .formulaire_ecrire_auteur input:focus, .contact-form-container .formulaire_ecrire_auteur textarea:focus { border-color: #2E7777; box-shadow: 0 0 0 3px rgba(46, 119, 119, 0.15); outline: none; }
.contact-form-container .formulaire_ecrire_auteur textarea { min-height: 150px; resize: vertical; }
.contact-form-container .formulaire_ecrire_auteur .boutons { text-align: right; margin-top: 20px; }
.contact-form-container .formulaire_ecrire_auteur .submit, .contact-form-container .formulaire_ecrire_auteur input.submit, .contact-form-container .formulaire_ecrire_auteur button.submit { background-color: #2E7777 !important; color: #fff !important; border: none !important; padding: 12px 30px !important; font-size: 1.1em !important; font-weight: bold !important; border-radius: 5px !important; cursor: pointer; transition: background-color 0.2s, transform 0.2s; text-shadow: none !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1); display: inline-block; width: auto !important; }
.contact-form-container .formulaire_ecrire_auteur .submit:hover, .contact-form-container .formulaire_ecrire_auteur input.submit:hover { background-color: #245d5d !important; transform: translateY(-2px); }

/* =================================================================
   PARTIE 2 : MODULES & CONTENU
   ================================================================= */

/* =================================================================
   BLOC 07 : CARTES & LISTES
   ================================================================= */
.grille-responsive { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; margin-bottom: 50px; }

.carte-article { background-color: #FFF; border: 1px solid #EAEAEA; border-radius: 10px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; font-family: arial, sans-serif; }
.carte-article:hover { box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15); transform: translateY(-5px); }
.carte-lien { text-decoration: none; color: inherit; display: contents; }
.carte-media { width: 100%; overflow: hidden; background-color: #F8F8F8; position: relative; line-height: 0; }
.carte-media picture, .item-media picture { display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; }
.carte-media img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }

.img-placeholder { display: flex; width: 100%; height: 110px; background-color: #f4f4f4; align-items: center; justify-content: center; font-size: 3em; color: #d0d0d0; transition: color 0.3s ease, background-color 0.3s ease; }
.item-liste:hover .img-placeholder { background-color: #e8e8e8; color: #bbb; }
.item-media.item-media-vide { box-shadow: none; border-radius: 0; background-color: transparent; }

.carte-corps { padding: 15px; flex-grow: 1; display: flex; flex-direction: column; }
.carte-titre { font-size: initial; font-weight: bold; margin: 0 0 10px 0; color: #2c3e50; line-height: 1.4; word-break: break-word; hyphens: auto; }
.carte-description { font-size: 0.95em; color: #555; margin: 15px 10px 10px 10px; flex-grow: 1; word-break: break-word; hyphens: auto; }
.carte-description p { line-height: 1.5em; }

/* Logique Date & Catégorie */
.carte-date, .item-date {
	font-size: 0.9em; color: #888; margin-top: 10px; display: flex; align-items: center;
	justify-content: space-between; padding: 12px 0 0 0; width: 100%; gap: 10px; overflow: hidden;
    border-top: 1px solid #e0e0e0; 
}
.carte-date .date-seule, .item-date .date-seule { white-space: nowrap; flex-shrink: 0; }
.carte-date .fa, .item-date .fa, .breve-date .fa, .date-article-flottant-v5 .fa { color: #f39c12; margin-right: 5px; }
.carte-article .carte-date { padding-bottom: 5px; }
.carte-date .separateur-date, .item-date .separateur-date { display: none; }

.carte-categorie { font-size: 0.8em; font-weight: 600; color: #2E7777; background-color: #eaf2f2; padding: 4px 8px; border-radius: 5px; text-decoration: none; transition: background-color 0.2s, color 0.2s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; flex-shrink: 1; min-width: 0; text-align: right; }
.carte-categorie:hover { background-color: #2E7777; color: #fff; }
.categorie-inactive { font-size: 0.8em; font-weight: 600; color: #888; background-color: #f0f0f0; border: 1px solid #ddd; padding: 3px 8px; border-radius: 5px; cursor: default; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; flex-shrink: 1; min-width: 0; text-align: right; }

.liste-articles-grand { list-style: none; padding: 0; margin: 0; border-top: none; }
.page-sommaire .item-liste, .page-rubrique .item-liste, .page-recherche .item-liste, .page-mot .item-liste, .page-auteur .item-liste, .page-breves .item-liste, .page-site .item-liste { 
	display: flex; align-items: flex-start; padding: 30px 15px; transition: background-color 0.2s ease, box-shadow 0.3s ease;
	border-radius: 5px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); border-bottom: none; margin-bottom: 20px; background-color: #fff !important; font-family: arial, sans-serif;
}
.page-sommaire .item-liste:hover, .page-rubrique .item-liste:hover, .page-recherche .item-liste:hover, .page-mot .item-liste:hover, .page-auteur .item-liste:hover, .page-breves .item-liste:hover, .page-site .item-liste:hover { background-color: #F2F2F2 !important; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); }

.item-media { flex-shrink: 0; margin-right: 30px; width: 150px; border: none; padding: 0; background-color: transparent; display: flex; justify-content: center; align-items: center; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); border-radius: 5px; line-height: 0; }
.item-media img { display: block; width: 100%; height: auto; object-fit: cover; margin: 0; padding: 0; }
.item-corps { flex-grow: 1; display: flex; flex-direction: column; }
.item-titre { font-size: initial; font-weight: bold; margin: 0 0 8px 0; line-height: 1.2; word-break: break-word; hyphens: auto; }
.item-titre a { color: #2c3e50; text-decoration: none; }
.item-titre a:hover { color: #2E7777; }
.item-description { font-size: 1em; line-height: 1.5; color: #444; word-break: break-word; hyphens: auto; margin-bottom: 0; }
.item-rubrique-lien { font-weight: 500; color: #777; transition: color 0.2s ease; }
.item-rubrique-lien:hover { color: #2E7777; text-decoration: none; }

.section-syndication { background-color: rgba(255, 255, 255, 0.45); border-radius: 10px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08); padding: 25px 30px; margin-top: 50px; border: 1px solid #EAEAEA; font-family: arial, sans-serif; }
.liste-syndication { list-style: none; padding: 0; margin: 0; }
.item-syndication { padding: 20px 0; border-bottom: 1px solid #F0F0F0; position: relative; }
.item-syndication:last-child { border-bottom: none; padding-bottom: 0; }
.syndic-meta { font-size: 0.9em; color: #888; margin-bottom: 5px; padding: 0; }
.syndic-site { font-weight: 600; color: #555; margin-left: 10px; }
.syndic-titre { font-size: 1em; margin: 0 0 8px 0; padding: 0; line-height: 1.4; }
.syndic-titre a.spip_out { color: #2c3e50; text-decoration: none; font-weight: 500; transition: color 0.2s ease; }
.syndic-titre a.spip_out::before { font-family: FontAwesome; content: "\f08e"; margin-right: 10px; color: #2E7777; font-size: 0.9em; font-weight: normal; }
.syndic-titre a.spip_out:hover { color: #2E7777; }
.syndic-auteur { font-size: 0.9em; font-style: italic; color: #777; padding: 0 0 8px 0; margin: 0; margin-left: 26px; }
.syndic-descriptif { font-size: 0.95em; color: #444; line-height: 1.5; padding: 0; margin: 0; margin-left: 26px; }
.item-syndication .item-media { width: 50px; height: 50px; overflow: hidden; margin-right: 15px; }

.pagination-items { text-align: center; margin: 40px auto; list-style: none; padding: 0; display: inline-flex; flex-wrap: wrap; justify-content: center; }
.pagination-items .pagination-item { margin: 2px !important; }
.pagination-item-label { display: block; padding: 8px 14px; border: 1px solid #ddd; border-radius: 5px; text-decoration: none; color: #333; transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
.pagination-item a.pagination-item-label:hover { background-color: #f0f0f0; border-color: #ccc; color: #333; }
.pagination-item.on .pagination-item-label { background-color: #2E7777; color: #fff; border-color: #2E7777; font-weight: bold; cursor: default; }
.pagination-item.tbc .pagination-item-label { border: none; background: none; padding: 8px 4px; }
.page-sommaire .section-liste-articles .pagination-items { margin-bottom: 0; }

/* =================================================================
   BLOC 08 : MÉDIAS & WIDGETS
   ================================================================= */
ul.images { max-width: 950px; height:300px; overflow:hidden; position:relative; margin:0; padding:0; }
ul.images li { position:absolute; margin:0; padding:0; left:0; right:0; list-style:none; }
ul.images li.show { z-index:500; }
ul#images { margin: 0 15px 10px 0; padding: 0; list-style: none; position: relative; }
ul#images li { display: block; overflow: hidden; padding: 0; float: left; width: 155px; height: 300px; }
div.gallery { border: 1px solid #ccc; padding: 10px; border-radius: 5px; }
div.gallery:hover { border: 1px solid #777; }
div.gallery h2 { padding: 10px 0 0 0; margin: 0; font: normal 140% arial, sans-serif; }
div.gallery img { width: 100%; height: auto; }
div.desc { padding-top: 8px; padding-left: 8px; text-align: left; }
div.desc p { padding: 0; }

.video_youtube, .oembed_youtube { clear: both; text-align:center; max-width: 100%; }
.oembed_youtube { max-width: 600px; margin-left: auto; margin-right: auto; }
.spip_documents.spip_document_video, .oembed_youtube { display: block !important; width: 100% !important; max-width: 850px !important; margin: 50px auto !important; background: #ffffff; border-radius: 16px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15); border: 1px solid rgba(0,0,0,0.05); overflow: hidden; clear: both; float: none !important; }
.spip_documents .oembed.oe-video, .spip_documents .oembed.oe-video[style] { max-width: 100% !important; width: 100% !important; margin: 0 !important; }
.rwd-video-container { border-radius: 16px 16px 0 0; background-color: #000; }
.spip_documents.spip_document_video .spip_doc_legende { padding: 20px 25px; background: linear-gradient(to bottom, #fff, #fcfcfc); border-top: 1px solid #f0f0f0; text-align: left; font-family: 'News Cycle', arial, sans-serif; width: 100% !important; max-width: none !important; min-width: 100% !important; }
.spip_documents.spip_document_video .spip_doc_titre, .spip_documents.spip_document_video .spip_doc_titre[style] { width: 100% !important; max-width: 100% !important; display: block; margin-bottom: 5px; }
.spip_doc_titre a.oe-title { font-size: 1.2em; font-weight: bold; color: #2c3e50; text-decoration: none; line-height: 1.3; transition: color 0.2s ease; display: block; }
.spip_doc_titre a.oe-title:hover { color: #2E7777; }
.oe-author { font-size: 0.9em; color: #888; display: block; margin-bottom: 10px; }
.oembed-source, .spip_doc_titre.oembed-source { display: none !important; }
.rwd-video-container:hover { opacity: 0.95; cursor: pointer; }

.button-mot { background-color: #fff; border: 1px solid #d5d9d9; border-radius: 8px; box-shadow: rgba(213, 217, 217, .5) 0 2px 5px 0; box-sizing: border-box; color: #0f1111; cursor: pointer; display: inline-block; font-family: arial, sans-serif; font-size: 13px; line-height: 29px; padding: 0 10px 0 11px; margin: 3px 0; position: relative; text-align: center; text-decoration: none; user-select: none; touch-action: manipulation; vertical-align: middle; }
.button-mot:hover { background-color: #f7fafa; }
.button-mot:focus { border-color: #008296; box-shadow: rgba(213, 217, 217, .5) 0 2px 5px 0; outline: 0; }
.cadre_biblique { font-family: arial, sans-serif; font-size: 1.0em; line-height: 1.5em; background-color: #eeeeee; color: #000000; padding: 15px 15px 15px 25px; margin: 20px 0; border: 1px solid #ddd; border-left: 0px solid #2E7777; border-radius: 7px; white-space: normal; }

.resultats-secondaires { margin-top: 50px; padding-top: 30px; border-top: 1px solid #E0E0E0; }
.resultats-secondaires-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; }
.resultats-secondaires-grille .liste-resultats { background-color: #fff; padding: 20px; border-radius: 8px; border: 1px solid #eaeaea; box-shadow: 0 2px 8px rgba(0,0,0,0.05); }
.resultats-secondaires-grille .liste-resultats h2 { font-size: 1.4em; margin-bottom: 15px; border-bottom: none; padding-bottom: 0; }
.resultats-secondaires-grille .liste-resultats ul { list-style: none; padding-left: 0; }
.resultats-secondaires-grille .liste-resultats li a::before { font-family: FontAwesome; margin-right: 10px; color: #2E7777; }
.resultats-secondaires-grille .liste-rubriques li a::before { content: "\f07c"; }
.resultats-secondaires-grille .liste-mots li a::before { content: "\f02b"; }
.resultats-secondaires-grille .liste-breves li a::before { content: "\f1ea"; }
.aucun-resultat { text-align: center; padding: 50px 20px; background-color: #fdfdfd; border: 1px dashed #ddd; border-radius: 10px; margin-top: 30px; }
.aucun-resultat h2 { font-size: 1.5em; color: #333; }
.aucun-resultat h2 i { color: #f39c12; }
.aucun-resultat p { color: #666; margin-top: 10px; }

/* =================================================================
   BLOC 09 : MODULES SPÉCIFIQUES (AVEC SOUS-RUBRIQUES INTÉGRÉES)
   ================================================================= */
/* Rotateur */
.sync-card-grid .sync-media-container { height: 170px; background: #f4f4f4; position: relative; border-radius: 10px 10px 0 0; overflow: hidden; }
.sync-card-grid .sync-media-container iframe { width: 100%; height: 100%; border: 0 !important; display: block; }
.sync-card-grid .sync-card-corps { padding: 15px !important; position: relative; min-height: 280px; display: flex; flex-direction: column; }
.sync-card-grid .rotator-container { position: relative; height: 100%; display: flex; flex-direction: column; flex-grow: 1; }
.sync-card-grid .rotator-item { display: none; flex-direction: column; height: 100%; animation: fadeEffect 0.5s; }
.sync-card-grid .rotator-item.active { display: flex; flex-grow: 1; }
@keyframes fadeEffect { from {opacity: 0;} to {opacity: 1;} }
.sync-card-grid .rotator-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.sync-card-grid .rotator-item .carte-titre { margin: 0; font-size: inherit; font-weight: bold; line-height: 1.4; color: #2c3e50; padding-right: 10px; }
.sync-card-grid .rotator-logo { flex-shrink: 0; margin-left: 10px; }
.sync-card-grid .rotator-logo img { display: block; width: 40px !important; height: auto !important; border-radius: 3px; object-fit: contain; }
.sync-card-grid .rotator-item .carte-description { margin: 0 0 15px 0; font-size: 0.95em; line-height: 1.5; color: #555; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.sync-card-grid .rotator-spacer { flex-grow: 1; min-height: 40px; }
.sync-card-grid .rotator-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid #eee; width: 100%; }
.sync-card-grid .rotator-footer .carte-date { margin: 0; padding: 0; border: 0; }
.sync-card-grid .rotator-controls { position: absolute; bottom: 90px; right: 15px; display: flex; gap: 8px; z-index: 10; background-color: #fff; padding-left: 10px; }
.sync-card-grid .rotator-btn { background: #fff; color: #999; border: 1px solid #ddd; border-radius: 50%; width: 30px; height: 30px; font-size: 0.85em; line-height: 28px; text-align: center; cursor: pointer; transition: all 0.2s ease; padding: 0; }
.sync-card-grid .rotator-btn:hover { background: #2E7777; color: #fff; border-color: #2E7777; }

/* Auteurs */
.auteur-profile { background-color: #fff; padding: 30px; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: 50px; font-family: arial, sans-serif; }
.auteur-header { display: flex; align-items: flex-start; gap: 30px; }
.auteur-logo { flex: 0 0 150px; width: 150px; margin: 0; }
.auteur-logo img { display: block; width: 100%; height: auto; border-radius: 5px; object-fit: cover; }
.auteur-details { flex-grow: 1; }
.auteur-details .hyperlien { margin: 15px 0 0 0; padding: 0; background: none; border: none; font-weight: normal; }
.auteur-details .hyperlien::before { content: none; }
.auteurs-section { margin-top: 50px; padding-top: 30px; border-top: 1px solid #E0E0E0; }
.auteurs-section h2 { font-size: 1.6em; color: #2E7777; margin-bottom: 25px; padding-bottom: 10px; border-bottom: 1px solid #E0E0E0; }
.auteurs-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 20px; margin-bottom: 30px; }
.auteur-carte { background-color: #fff; border: 1px solid #eaeaea; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.07); text-align: center; padding: 15px; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.auteur-carte:hover { transform: translateY(-4px); box-shadow: 0 6px 12px rgba(0,0,0,0.12); }
.auteur-carte-lien { text-decoration: none; color: inherit; display: block; }
.auteur-carte-logo { width: 80px; max-height: 135px; min-height: 80px; height: auto; margin: 0 auto 10px auto; overflow: hidden; border-radius: 5px; display: flex; align-items: center; justify-content: center; }
.auteur-carte-logo img { display: block; width: 100%; height: auto; max-height: 135px; object-fit: contain; }
.auteur-carte-nom { font-family: arial, sans-serif; font-size: 1em; font-weight: 600; color: #333; margin: 0; line-height: 1.3; border-left: none; padding-left: 0; }
.auteur-carte-lien.on { pointer-events: none; }
.auteur-carte-lien.on .auteur-carte-nom { color: #2E7777; font-weight: bold; }

/* Plan du Site */
.plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; margin: 40px 0; }
.plan-card { background-color: #fff; border: 1px solid #eaeaea; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; display: flex; flex-direction: column; height: 100%; }
.plan-card:hover { transform: translateY(-5px); box-shadow: 0 12px 20px rgba(0,0,0,0.1); }
.plan-card-header { background-color: #394555; padding: 15px 20px; border-bottom: 1px solid #2b3543; }
.plan-card-header h2 { margin: 0; padding: 0; font-size: 1.4em; color: #fff; border: none; }
.plan-card-header h2 a { color: #fff; text-decoration: none; }
.plan-card-body { padding: 20px; }
.plan-rubrique-soustitre { font-size: 1.15em; color: #2E7777; margin: 15px 0 10px 0; padding-bottom: 5px; border-bottom: 1px solid #eee; font-weight: bold; display: flex; align-items: center; text-transform: uppercase; letter-spacing: 0.5px; }
.plan-rubrique-soustitre i { margin-right: 10px; opacity: 0.7; font-size: 0.9em; }
.plan-sous-titre-rubrique { font-size: 1em; color: #666; margin: 10px 0 5px 0; font-weight: bold; }
.plan-intertitre { font-size: 1.4em; color: #333; margin: 25px 0 15px 0; font-weight: bold; border-bottom: 2px solid #eee; padding-bottom: 5px; }
.plan-list-rubriques, .plan-list-articles { list-style: none !important; padding-left: 0 !important; margin: 0 !important; }
.plan-list-rubriques > li { margin-bottom: 15px; }
.rubrique-link { font-weight: bold; color: #333; display: flex; align-items: center; margin-bottom: 5px; font-size: 1.1em; text-decoration: none; }
.rubrique-link i { color: #394555; margin-right: 8px; opacity: 0.8; flex-shrink: 0; }
.plan-list-articles { padding-left: 15px !important; border-left: 2px solid #f0f0f0; margin-left: 9px !important; }
.plan-list-articles li { margin-bottom: 12px; font-size: 0.95em; line-height: 1.4; }
.plan-list-articles li a { color: #555; text-decoration: none; transition: color 0.2s; display: flex; align-items: flex-start; }
.plan-list-articles li a:hover { color: #394555; text-decoration: underline; }
.plan-list-articles li a i { margin-right: 6px; margin-top: 3px; font-size: 0.9em; color: #999; width: 14px; text-align: center; flex-shrink: 0; }
.plan-list-articles li a span { display: block; }
hr.plan-sep { border: 0; border-top: 1px dashed #ccc; margin: 20px 0; }
hr.plan-sep-light { border: 0; border-top: 1px dotted #eee; margin: 10px 0 20px 0; }
.plan-hero { height: 250px; }

/* --- SOUS-RUBRIQUES (Design Moderne) --- */
.section-sous-rubriques { margin-bottom: 50px; }
.grille-sous-rubriques { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.card-sous-rubrique { border-style: solid; border-width: 1px; border-radius: 8px; overflow: hidden; text-decoration: none; transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease; display: flex; flex-direction: column; height: 100%; }
.card-sous-rubrique:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); filter: brightness(98%); }
.card-sr-media { width: 100%; aspect-ratio: 2 / 1; overflow: hidden; background-color: rgba(0,0,0,0.05); position: relative; border-bottom: 1px solid rgba(0,0,0,0.05); }
.card-sr-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.card-sous-rubrique:hover .card-sr-media img { transform: scale(1.05); }
.card-sr-media .img-placeholder { height: 100%; font-size: 2.5em; background-color: transparent; }
.card-sr-content { padding: 15px; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
.card-sr-titre { font-family: 'News Cycle', arial, sans-serif; font-size: 1.1em; font-weight: bold; margin: 0; line-height: 1.3; }

/* =================================================================
   BLOC 10 : BRÈVES & WEB V5
   ================================================================= */
.section-breves { margin-top: 60px; padding-top: 20px; border-top: 1px solid #eee; }
.page-sommaire .section-grille, .page-sommaire .section-liste-articles, .page-sommaire .section-nouveautes-web { margin-top: 40px; padding-top: 20px; border-top: 1px solid #eee; }
.page-sommaire .section-nouveautes-web { margin-top: 0px; padding-top: 0px; border-top: none; }
.breves-header h2, .header-section h2, .section-nouveautes-web .breves-header h2 { font-size: 1.6em; color: #333; margin-bottom: 30px; display: flex; align-items: center; gap: 10px; border-bottom: none; }
.breves-header h2 i, .header-section h2 i, .section-nouveautes-web .breves-header h2 i { color: #f39c12; }
.breves-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 25px; }
.breve-card { border: 1px solid #eaeaea; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.03); transition: transform 0.3s ease, box-shadow 0.3s ease, border-left-color 0.3s; overflow: hidden; background-color: #fff; }
.breve-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.08); }
.breve-lien { text-decoration: none; color: inherit; display: block; height: 100%; padding: 20px; }
.breve-img-float { float: right; width: 150px; height: auto; margin-left: 20px; margin-bottom: 10px; border-radius: 5px; overflow: hidden; }
.breve-img-float img { display: block; width: 100%; height: auto; border: 0; }
.breve-meta { margin-bottom: 8px; display: block; font-size: 0.85em; color: #888; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; overflow: hidden; }
.breve-date { display: inline-flex; align-items: center; gap: 6px; }
.breve-meta .carte-categorie { margin-left: 5px; font-size: 1em; padding: 3px 6px; }
.breve-meta .separateur-date { display: inline-block; margin: 0 8px; color: #ccc; }
.breve-meta object, .breve-meta object a { display: inline; }
.breve-titre { font-family: 'News Cycle', arial, sans-serif; font-size: initial; font-weight: bold; line-height: 1.3; margin: 0 0 8px 0; color: #2c3e50; transition: color 0.2s; display: block; }
.breve-card:hover .breve-titre { color: #2E7777; }
.breve-intro { font-size: 0.95em; color: #666; line-height: 1.5; display: block; }
.breve-footer { clear: both; margin-top: 15px; padding-top: 15px; border-top: 1px dashed #f0f0f0; display: flex; justify-content: space-between; align-items: center; }
.breve-footer .carte-categorie { font-size: 0.85em; font-weight: 600; color: #2E7777; text-decoration: none; background-color: rgba(255, 255, 255, 0.6); padding: 3px 8px; border-radius: 4px; transition: background-color 0.2s, color 0.2s; }
.breve-footer .carte-categorie:hover { background-color: #2E7777; color: #fff; }
.breve-read-more { font-size: 0.9em; font-weight: 700; color: #2E7777; text-transform: uppercase; display: inline-flex; align-items: center; gap: 5px; }
.breve-card:hover .breve-read-more { color: #f39c12; gap: 10px; }

/* Carrousel Web V5 */
.syndic-full-width-test { margin-bottom: 25px; grid-column: 1 / -1; }
.section-nouveautes-web .breve-card { padding: 0; }
.carousel-v5-padding { padding: 20px; display: flex; flex-direction: column; height: 100%; box-sizing: border-box; position: relative; }
.section-nouveautes-web .rotator-content-wrapper { position: relative; display: block; flex-grow: 1; min-height: 120px; }
.section-nouveautes-web .rotator-item { display: none; }
.section-nouveautes-web .rotator-item.active { display: block !important; }
.logo-flottant-v5 { float: right; width: 50px; height: 50px; margin-left: 15px; margin-bottom: 10px; border-radius: 4px; object-fit: contain; }
.titre-site-flottant-v5 { font-size: 1.1em; font-weight: bold; color: #2c3e50; margin: 0 0 10px 0; padding: 0; line-height: 1.4; overflow: hidden; }
.titre-site-flottant-v5 a { text-decoration: none; color: #fff; background-color: #f39c12; padding: 3px 8px; border-radius: 4px; font-size: 0.9em; display: inline-block; }
.titre-site-flottant-v5 a:hover { background-color: #e67e22; }
.section-nouveautes-web h4.titre-article-flottant-v5 { font-family: 'News Cycle', arial, sans-serif; font-size: initial; font-weight: bold; line-height: 1.3; margin: 0 0 8px 0; color: #2c3e50; padding: 0; overflow: hidden; border-left: none; padding-left: 0; }
h4.titre-article-flottant-v5 a { text-decoration: none; color: inherit; }
h4.titre-article-flottant-v5 a:hover { color: #2E7777; }
p.desc-article-flottant-v5 { font-size: 0.95em; color: #666; line-height: 1.5; margin: 0 0 10px 0; padding: 0; }
p.date-article-flottant-v5 { font-size: 0.85em; color: #888; font-weight: 600; text-transform: uppercase; padding: 0; margin: 0; display: inline-flex; align-items: center; gap: 6px; margin-top: 5px; padding-top: 10px; }
.footer-flottant-v5 { clear: both; margin-top: 15px; padding-top: 10px; border-top: 3px solid; position: relative; min-height: 60px; }
.footer-flottant-v5 .rotator-controls { position: absolute; right: 20px; top: 30px; display: flex; gap: 8px; }
.footer-flottant-v5 .rotator-btn { background: #fff; color: #ccc; border: 1px solid #ddd; border-radius: 50%; width: 26px; height: 26px; font-size: 0.8em; line-height: 24px; text-align: center; cursor: pointer; transition: all 0.2s ease; padding: 0; }
.footer-flottant-v5 .rotator-btn:hover { background: #2E7777; color: #fff; border-color: #2E7777; }

/* =================================================================
   PARTIE 3 : HERO & RESPONSIVE
   ================================================================= */

/* =================================================================
   BLOC 11 : HERO & EN-TÊTES
   ================================================================= */
header.sommaire-hero, header.article-hero-pure {
    position: relative; width: 100%; display: flex; align-items: center; justify-content: center;
    background-repeat: no-repeat; overflow: hidden; margin-bottom: 0; background-size: cover;
}
header.sommaire-hero { min-height: 65vh; background-position: 50% 50%; }
header.sommaire-hero .hero-bg-span.adapt-img-background {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;
}
header.article-hero-pure { height: 500px; border-radius: 10px 10px 0 0; margin-top: 0; background-position: 50% 0%; }
header.article-hero-pure .hero-bg-span.adapt-img-background {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; background-size: cover; background-repeat: no-repeat; border-radius: 10px 10px 0 0; background-position: 50% 0%;
}
.hero-content {
    position: relative; z-index: 10; background: transparent; padding: 2rem; text-align: center; max-width: 900px; width: 90%; animation: heroFadeIn 1s ease-out forwards;
}
.sommaire-hero .titre-site { font-family: 'News Cycle', arial, sans-serif; font-size: 4.5rem; font-weight: 700; color: #FFFFFF; text-shadow: 0 2px 10px rgba(0,0,0,0.8); margin: 0 0 15px 0; line-height: 1.1; letter-spacing: -1px; }
.article-hero-pure .titre-article { font-family: 'News Cycle', arial, sans-serif; font-size: 2.5rem; font-weight: 700; color: #FFFFFF; text-shadow: 0 2px 10px rgba(0,0,0,0.8); margin: 0 0 15px 0; line-height: 1.2; letter-spacing: 0; }
.slogan-site { font-family: arial, sans-serif; font-size: 1.8rem; font-weight: 300; color: #FFFFFF; text-shadow: 0 2px 8px rgba(0,0,0,0.8); margin: 0; letter-spacing: 1px; text-transform: uppercase; }
.article-logo-zone { position: absolute; bottom: 20px; right: 20px; z-index: 20; }
.article-logo-container { position: relative; display: inline-block; }
.zoom-trigger {
    display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; 
    background: rgba(0, 0, 0, 0.35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); 
    border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 50%; cursor: zoom-in; text-decoration: none; 
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); transition: background-color 0.3s, transform 0.3s;
}
.zoom-icon { font-size: 1.2em; color: white; margin: 0; }
.zoom-trigger:hover { background-color: rgba(0, 0, 0, 0.5); transform: scale(1.05); }
.hero-logo-inline { display: inline-block; vertical-align: middle; height: 1.2em; width: auto; margin-right: 15px; margin-top: -8px; border-radius: 4px; box-shadow: 0 2px 5px rgba(0,0,0,0.3); background-color: #fff; }
body.has-bg-image::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.90); z-index: -1; display: block; }
body:not(.has-bg-image)::before { display: none; }
@keyframes heroFadeIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }

/* =================================================================
   BLOC 12 : UTILITAIRES & FIXES
   ================================================================= */
.left { float: left; width: auto; margin-right: 10px; }
.right { float: right; width: auto; margin-left: 10px; }
.center { display: block; text-align: center; margin: 20px auto; }
.clearfix:after { content: ""; display: table; clear: both; }
.separator { width: 100%; height: 0; border-top: 1px solid #D9D5CF; border-bottom: 1px solid #FFF; margin: 0 0 20px 0; }
span.corner { border: 1px solid; border-radius: 6px; padding: 0 5px; }
span a, span a:hover { color: #444; }

p.arbo { font-size: 0.85em; color: #777; padding: 0; margin: 25px 0 25px 0; }
p.arbo a:first-child { display: inline-flex; align-items: center; font-weight: 600; }
p.arbo a:first-child::before { font-family: FontAwesome; content: "\f015"; margin-right: 7px; font-size: 1.1em; color: #2E7777; }

.info-publi {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 15px;
	font-family: arial, sans-serif; font-size: 0.95em; color: #666; border-top: 1px solid #eee; padding-top: 20px; margin-top: 30px; margin-bottom: 20px;
}
.info-publi .auteurs { display: inline-flex; align-items: center; font-weight: 500; }
.info-publi .published { display: inline-flex; align-items: center; font-style: normal; color: #555; }
.info-publi .auteurs a { color: #333; font-weight: 600; text-decoration: none; margin-left: 5px; }
.info-publi .auteurs a:hover { color: #2E7777; text-decoration: underline; }
.info-publi .fa { margin-right: 8px; color: #2E7777; font-size: 1.2em; }
.info-publi .sep { display: none; }
.label { clear: both; color:#888; }
.label hr { display: none; }

.conteneur-bouton-retour { text-align: center; margin-top: 40px; }
.arbo-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px; margin-bottom: 20px; }
.arbo-actions .arbo { padding-bottom: 0; margin-bottom: 0; flex-grow: 1; }
.button-retour-breves {
	display: inline-block; background-color: #f39c12; color: #fff; padding: 10px 18px;
	border-radius: 5px; font-size: 1em; font-weight: bold; text-decoration: none; transition: all 0.2s;
	gap: 8px; margin-top: 30px; margin-bottom: 20px; text-align: center;
}
.button-retour-breves:hover { background-color: #e67e22; color: #fff; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.section-breves.section-connexe { margin-top: 40px; border-top: 1px solid #eee; padding-top: 30px; }
.page-site .item-date .fa-clock-o { margin-right: 5px; }

#scroll-to-top {
    position: fixed; bottom: 20px; right: 20px; z-index: 20000 !important;
    width: 40px; height: 40px; border-radius: 8px; border: 2px solid #bdc3c7;
    background-color: transparent; color: #bdc3c7; display: none;
    align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; text-decoration: none;
}
#scroll-to-top:hover { background-color: #bdc3c7; color: #2c3e50; transform: translateY(-3px); }
#scroll-to-top.visible { display: flex; }
#scroll-to-top .fa { margin: 0; font-size: 1.5em; }

#spip-admin { position: fixed !important; top: 0; right: 0; z-index: 2147483647 !important; }
.menu-indic.lity-hidden { z-index: 0 !important; }
@keyframes pulse-red-attention {
	0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(217, 83, 79, 0.7); }
	70% { transform: scale(1.15); box-shadow: 0 0 0 15px rgba(217, 83, 79, 0); }
	100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(217, 83, 79, 0); }
}
.lity-close {
	margin: 10px !important; background: #D9534F !important; border: 1px solid #D43F3A !important;
	opacity: 0.9 !important; border-radius: 50% !important; width: 32px !important; height: 32px !important;
	display: flex !important; align-items: center !important; justify-content: center !important; transition: all 0.3s ease;
}
.lity-close b { color: #FFFFFF !important; font-weight: bold !important; font-size: 24px !important; text-shadow: none !important; line-height: 1 !important; margin: 0 !important; padding: 0 !important; }
.lity-close:hover { opacity: 1 !important; transform: scale(1.1); background: #C9302C !important; }
.lity-ready .lity-close { animation: pulse-red-attention 2.4s ease-out 1; }

/* =================================================================
   BLOC 13 : RESPONSIVE DESIGN
   ================================================================= */

/* --- Tablettes et écrans moyens (< 980px) --- */
@media screen and (max-width: 980px) {
	
	.contenu, .contenu.sommaire, .page-site .content-wrapper { 
		margin: 0 !important; width: 100%; padding: 0 20px !important; box-sizing: border-box; 
	}
    .breves-header h2, .header-section h2, .section-nouveautes-web .breves-header h2, .contenu h2 { padding-left: 0 !important; margin-left: 0 !important; }
	.sommaire-hero { min-height: 50vh; background-attachment: scroll; }
	.sommaire-hero .hero-content, .article-hero-pure .hero-content { padding: 2rem; background: transparent; backdrop-filter: none; }
	.sommaire-hero .titre-site { font-size: 3rem; }
	.article-hero-pure .titre-article { font-size: 2.0rem; }
	.sommaire-hero .slogan-site { font-size: 1.4rem; }
	#main { margin-top: 0 !important; width: 100% !important; max-width: 100% !important; padding-bottom: 0; }
	.article-hero-pure { border-radius: 0 !important; width: 100% !important; margin: 0 !important; }
	.article-hero-pure .hero-bg-span.adapt-img-background { border-radius: 0 !important; }
}

/* --- Autres règles (< 800px) --- */
@media screen and (max-width: 800px) {
	.contener_slideshow { height: 255px; }
	.contenu { margin: 10px 0 0 0; }
	#content.hentry .spip_logo { display: none; }
	#main { padding-bottom: 0px; margin-top: 0; }
}

/* --- Pied de page et Scroll (< 768px) --- */
@media (max-width: 768px) {
	.footer-wrapper { flex-direction: column; justify-content: center; }
	#scroll-to-top.visible, #scroll-to-top { display: none !important; }
}

/* --- Mobiles et Menu (< 700px) --- */
@media screen and (max-width: 700px) {
	/* Menu Burger */
	.menu-indic label { display: flex; float: right; }
	.menu-home-icon { display: flex; align-items: center; justify-content: center; width: 70px; height: 70px; font-size: 1.5em; color: #dadcdf; text-decoration: none; float: left; transition: color 0.2s ease, transform 0.2s ease; }
	.menu-home-icon:hover { color: #fff; transform: scale(1.1); }
	.menu-home-icon .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
	
	.menu-indic > ul.menu-principal { display: block; position: absolute; top: 70px; left: 0; width: 100%; height: calc(100vh - 70px); background-color: #29323d; overflow-y: auto; transform: translateX(-100%); transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1); clear: both; }
	.menu-indic input:checked ~ ul.menu-principal { transform: translateX(0); }
	.menu-indic > ul > li { display: block; width: 100%; }
	.menu-indic > ul > li > a { height: auto; padding: 20px; border-bottom: 1px solid #394555; font-weight: 600; }
	.menu-indic > ul.menu-principal .sr-only { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; border: 0; }
	.menu-indic > ul.menu-principal a > i.fa { margin-right: 12px; width: 20px; text-align: center; }
	.menu-indic > ul > li > a::after { display: none; }
	.menu-indic ul ul { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border-radius: 0; padding: 0; background-color: rgba(0,0,0,0.15); border: none; }
	.menu-indic ul ul li a { padding-left: 40px; font-weight: normal; border-bottom: 1px solid #394555; padding-top: 15px; padding-bottom: 15px; }
	.menu-indic ul ul li:last-child a { border-bottom: none; }

	/* --- LISTES ET CARTES : HABILLAGE DU TEXTE (WRAPPING) --- */
	.page-sommaire .item-liste, .page-rubrique .item-liste, .page-recherche .item-liste, .page-mot .item-liste, .page-auteur .item-liste, .page-breves .item-liste, .page-site .item-liste { display: block !important; padding: 20px 10px; }
	.item-media { float: right !important; width: 110px !important; margin: 0 0 10px 15px !important; height: auto !important; }
    .item-media img, .img-placeholder { width: 100% !important; height: auto !important; }
    .item-corps { display: block !important; width: auto !important; overflow: visible !important; }
	.breve-img-float { width: 100px; margin-left: 15px; }
	.logo-flottant-v5 { width: 50px; height: 50px; margin-left: 10px; }
	.titre-site-flottant-v5 { overflow: visible; }
    .item-titre { font-size: 1.1em; font-weight: 600; margin-top: 0; }
	.item-description { max-width: 100%; font-size: 1em; line-height: 1.4; }
    .carte-titre { font-size: 1.3em; line-height: 1.3; }
    .item-date, .carte-date { clear: both; margin-top: 15px !important; padding-top: 10px !important; display: flex !important; }
	
	/* Utilitaires */
	.responsive { width: 100%; }
	.menu_articles.articles_grand { display: none; }
	.menu_articles.articles_responsive { display: block; }
	.image_principal, .responsive_off .spip_logo { display: none; }
	.contenu .paragraphe ul li, .contenu .texte ul li { margin: 0 0 10px 20px !important; }
	blockquote { padding-left: 10px; margin-left: 10px; }
	.spip_documents { margin: 20px auto; max-width: fit-content; }
	.spip_documents_right { float: none; max-width: fit-content; margin-left: auto; margin-right: auto; }
	.page_breve .spip_documents { padding: 0; max-width: 100%; }
	.site-presentation { flex-direction: column; }
	.site-logo-container { max-width: 100%; margin: 0 auto; }
}

/* --- SOUS-RUBRIQUES : Ajustement Grille Mobile (< 600px) --- */
@media screen and (max-width: 600px) {
    .sommaire-hero { min-height: 400px; }
	.article-hero-pure { height: 300px; } 
	.sommaire-hero .hero-content, .article-hero-pure .hero-content { width: 95%; padding: 1.5rem 1rem; }
	.sommaire-hero .titre-site { font-size: 2.4rem; }
	.article-hero-pure .titre-article { font-size: 1.6rem; }
	.sommaire-hero .slogan-site { font-size: 1.1rem; line-height: 1.4; }
	.hero-logo-inline { height: 1em; margin-right: 10px; margin-top: -4px; }

    /* FORCE L'AFFICHAGE COTE-A-COTE (2 Colonnes) */
    .grille-sous-rubriques {
        grid-template-columns: repeat(2, 1fr) !important; 
        gap: 10px !important;
    }
    .card-sr-content { padding: 10px; }
    .card-sr-media { aspect-ratio: 4 / 3; } /* Ratio ajusté pour petit écran */
    .card-sr-titre { font-size: 1em; }
}

/* --- Très petits écrans (< 480px) --- */
@media (max-width: 480px) {
	.zone-recherche-haut { padding: 10px !important; width: 100% !important; }
	.zone-recherche-haut .formulaire_recherche .editer-groupe { display: flex !important; flex-wrap: nowrap !important; align-items: stretch; gap: 5px; width: 100%; }
	.zone-recherche-haut .formulaire_recherche input.text { flex-grow: 1 !important; flex-shrink: 1 !important; min-width: 0 !important; width: auto !important; margin: 0 !important; }
	.zone-recherche-haut .formulaire_recherche input.submit { flex-shrink: 0 !important; margin: 0 !important; width: auto !important; }
}