/*
Theme Name: Sahel Presse
Theme URI: https://www.lesahel.org
Author: Refonte Le Sahel
Description: Thème WordPress gratuit « news magazine » pour site d'actualité : Une en 3 colonnes, bandeaux par rubrique, espace vidéo YouTube (chaîne ou playlist), caricature de la semaine, Une du journal avec PDF, couleurs personnalisables, outil de réorganisation des rubriques. Léger, sans page builder ni police externe.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sahel-presse
Tags: news, blog, two-columns, custom-logo, custom-menu, custom-colors, featured-images, threaded-comments, translation-ready, accessibility-ready
*/
:root{--accent:#e05206;--accent-text:#fff;--secondary:#0b6b3a;--secondary-text:#fff;--nav-bg:#fff;--nav-text:#0b6b3a;--topbar-bg:#0b6b3a;--topbar-text:#fff;--bg:#fbf8f2;--card:#fbf8f2;--text:#1a1a1a;--muted:#66625a;--line:#e2dccf;--footer-bg:#0a3d24;--footer-text:#fff;--video-bg:#0a3d24;--video-text:#fff;--r:3px;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1240px;margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-text);padding:8px 14px;z-index:999}
.skip:focus{left:8px;top:8px}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Barre supérieure */
.topbar{background:var(--topbar-bg);color:var(--topbar-text);font-size:12px;letter-spacing:.3px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:32px}
.topbar a{color:var(--topbar-text);opacity:.85}.topbar a:hover{opacity:1;color:var(--topbar-text)}
.top-right{display:flex;gap:16px}
/* Masthead */
.masthead{background:var(--bg)}
.masthead-grid{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px;padding-bottom:18px}
.brand{text-align:left}
.brand img{max-height:76px;width:auto}
.mh-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.mh-actions{display:flex;align-items:center;gap:10px}
.brand-name{font:900 clamp(34px,5vw,58px)/1 var(--serif);margin:0;letter-spacing:-1.5px;color:var(--secondary)}
.brand-name a:hover{color:var(--accent)}
.brand-tag{margin:6px 0 0;color:var(--muted);font-size:13px;letter-spacing:.4px}
.btn-sub{display:inline-block;background:var(--accent);color:var(--accent-text);padding:9px 16px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.6px;border-radius:var(--r)}
.btn-sub:hover{color:var(--accent-text);filter:brightness(1.1)}
.search-form{display:flex;max-width:230px}
.search-form input[type=search]{flex:1;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:8px 10px;border-radius:var(--r) 0 0 var(--r)}
.search-form button,.search-submit{background:var(--text);color:var(--bg);border:0;padding:8px 13px;border-radius:0 var(--r) var(--r) 0;cursor:pointer}
/* Navigation */
.mainnav{background:var(--nav-bg);border-top:3px solid var(--secondary);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.mainnav .wrap{display:flex;align-items:center}
.nav-toggle{display:none;background:none;border:0;color:var(--nav-text);font-weight:700;font-size:15px;padding:12px 0;cursor:pointer}
.menu,.menu ul{list-style:none;margin:0;padding:0}
.menu{display:flex;flex-wrap:wrap;width:100%;justify-content:space-between}
.menu>li{position:relative}
.menu>li>a{display:block;color:var(--nav-text);padding:13px 10px;font-weight:700;font-size:13.5px;text-transform:uppercase;letter-spacing:.4px;box-shadow:inset 0 -3px 0 transparent}
.menu>li>a:hover,.menu>li.current-menu-item>a,.menu>li.current-cat>a,.menu>li.current-cat-parent>a{color:var(--nav-text);box-shadow:inset 0 -3px 0 var(--accent)}
.menu .sub-menu{display:none;position:absolute;left:0;top:100%;min-width:230px;background:var(--bg);border:1px solid var(--line);border-top:3px solid var(--accent);box-shadow:0 10px 24px rgba(0,0,0,.15)}
.menu li:hover>.sub-menu,.menu li:focus-within>.sub-menu{display:block}
.menu .sub-menu a{display:block;padding:9px 14px;font-size:14px;border-bottom:1px solid var(--line)}
.sub-toggle{display:none}
/* Barre secondaire */
.subnav{border-bottom:1px solid var(--line);background:var(--bg);font-size:13px}
.subnav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px;overflow-x:auto;white-space:nowrap}
.subnav a{display:block;padding:9px 0;color:var(--muted);font-weight:600}
.subnav a:hover{color:var(--accent)}
/* Bandeau « à suivre » */
.ticker{display:flex;border-bottom:1px solid var(--line);overflow:hidden;background:var(--bg)}
.ticker-label{background:var(--accent);color:var(--accent-text);font-weight:700;padding:8px 14px;white-space:nowrap;text-transform:uppercase;font-size:12px;letter-spacing:.5px;z-index:1}
.ticker-track{overflow:hidden;flex:1;display:flex;align-items:center}
.ticker-inner{display:inline-flex;gap:40px;white-space:nowrap;padding-left:20px;animation:tick 70s linear infinite}
.ticker-track:hover .ticker-inner{animation-play-state:paused}
.ticker-inner a{font-size:14px;font-weight:600}.ticker-inner a::before{content:"● ";color:var(--accent)}
@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-inner{animation:none;overflow-x:auto}}
/* Titres de section */
main{padding:0 0 40px}
.section-title{font:800 13px/1.2 var(--sans);text-transform:uppercase;letter-spacing:1px;color:var(--secondary);margin:0 0 12px;padding-top:9px;border-top:2px solid var(--secondary)}
.section-title::before,.band-head h2::before{content:"";display:inline-block;width:9px;height:9px;background:var(--accent);margin-right:8px;vertical-align:baseline}
.section-title a{color:inherit}
.band{margin-top:34px}
.band-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 20px;border-top:2px solid var(--secondary);padding-top:9px;margin-bottom:14px}
.band-head h2{margin:0;font:800 14px/1.2 var(--sans);text-transform:uppercase;letter-spacing:1px;color:var(--secondary)}
.band-head nav{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;font-weight:600;color:var(--muted)}
.band-head nav a:hover{color:var(--accent)}
/* Cartes */
.card{background:var(--card)}
.card-img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--line)}
.card-img.free{aspect-ratio:auto}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.card:hover .card-img img{transform:scale(1.03)}
.card-body{padding:10px 0 0}
.card-title{font:700 18px/1.28 var(--serif);margin:3px 0 5px}
.card-ex{color:var(--muted);font-size:14px;margin:6px 0 0}
.cat-label{display:inline-block;color:var(--accent);font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}
.meta{color:var(--muted);font-size:12.5px}
.band-grid{display:grid;gap:22px;grid-template-columns:repeat(4,1fr)}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
/* Une en 3 colonnes */
.top-grid{display:grid;gap:0;grid-template-columns:minmax(0,5fr) minmax(0,3.2fr) minmax(0,2.8fr);padding-top:22px}
.tg-lead{padding-right:22px}
.tg-mid{padding:0 22px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.tg-right{padding-left:22px}
.lead-story .card-img{margin-bottom:12px}
.lead-title{font:800 clamp(26px,3.2vw,40px)/1.12 var(--serif);margin:4px 0 10px;letter-spacing:-.5px}
.lead-ex{font-size:17px;color:var(--muted);margin:0 0 8px}
.mid-item{display:grid;grid-template-columns:1fr 104px;gap:12px;padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.mid-item:last-child{border:0;margin:0;padding:0}
.mid-item h3{font:700 17px/1.28 var(--serif);margin:3px 0 5px}
.mid-item .card-img{aspect-ratio:1/1;align-self:start}
/* Mise en page courante */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:30px;margin-top:34px}
.row{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.row .card-title{font-size:18px;margin:2px 0 4px}
.sidebar .widget,.tg-right .widget{margin-bottom:26px}
.popular{list-style:none;margin:0;padding:0;counter-reset:p}
.popular li{counter-increment:p;display:grid;grid-template-columns:34px 1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);font:700 16px/1.35 var(--serif)}
.popular li:last-child{border:0}
.popular li::before{content:counter(p);color:var(--accent);font:800 26px/1 var(--serif)}
.mini{list-style:none;margin:0;padding:0}
.mini li{padding:9px 0;border-bottom:1px solid var(--line)}
.mini li:last-child{border:0}
.mini a{font:700 15px/1.3 var(--serif);display:block}
/* La Une du journal */
.une-journal .cover img,.edition .cover img{width:100%;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.une-journal .cover{display:block;max-width:230px;margin:0 auto 12px}
.une-journal .num{text-align:center;margin:0 0 10px}
.btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}
.btn{display:inline-block;background:var(--accent);color:var(--accent-text);padding:8px 14px;font-weight:700;font-size:13px;border-radius:var(--r)}
.btn:hover{color:var(--accent-text);filter:brightness(1.1)}
.btn-alt{background:transparent;color:var(--text);border:1px solid var(--text)}
.btn-alt:hover{color:var(--text);background:var(--line)}
.editions-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.edition{text-align:center}
.edition h3{font:700 18px var(--serif);margin:12px 0 2px}
.edition .cover{display:block;max-width:240px;margin:0 auto}
.edition-single{display:grid;grid-template-columns:minmax(0,380px) 1fr;gap:34px}
.edition-single .cover img{box-shadow:0 8px 24px rgba(0,0,0,.3)}
.edition-single .btns{justify-content:flex-start}
/* Caricature */
.caricature img{width:100%;border:1px solid var(--line)}
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:200;align-items:center;justify-content:center;padding:20px}
.lightbox:target{display:flex}
.lightbox img{max-width:95vw;max-height:92vh;width:auto;height:auto}
.lightbox .close{position:absolute;top:10px;right:18px;color:#fff;font-size:40px;line-height:1}
/* Espace vidéo */
.videos{background:var(--video-bg);color:var(--video-text);margin-top:36px;padding:6px 0 30px}
.videos .band-head{border-top-color:var(--video-text)}
.videos .band-head h2{color:var(--video-text)}
.videos .band-head h2::before{background:var(--accent)}
.videos .band-head nav a{color:var(--video-text);opacity:.8}
.video-grid{display:grid;gap:22px;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.yt-player{position:relative;aspect-ratio:16/9;background:#000}
.yt-player iframe,.yt-play,.yt-play img{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-play img{object-fit:cover}
.yt-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:30px;padding-left:5px;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.video-title{font:700 clamp(18px,2vw,24px)/1.3 var(--serif);margin:12px 0 0}
.video-list{list-style:none;margin:0;padding:0;max-height:430px;overflow-y:auto}
.yt-item{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:8px;border-radius:var(--r);color:var(--video-text)}
.yt-item:hover,.yt-item.active{background:rgba(128,128,128,.25);color:var(--video-text)}
.yt-item img{aspect-ratio:16/9;object-fit:cover;width:100%}
.yt-item strong{display:block;font:600 14px/1.3 var(--sans)}
.yt-item small{opacity:.7;font-size:12px}
.videos-page{margin-top:22px}
.admin-note{background:#fff8dc;border:1px dashed #c9a400;color:#333;padding:10px 14px;margin-top:20px;font-size:14px}
/* Archives, article */
.archive-head{margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid var(--secondary)}
.archive-head h1{font:800 clamp(26px,3.5vw,38px)/1.15 var(--serif);margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chips a{border:1px solid var(--line);padding:4px 12px;border-radius:999px;font-size:13.5px;font-weight:600}
.chips a:hover{border-color:var(--accent)}
.breadcrumb{font-size:12.5px;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
.single-head{padding-top:22px}
.single-head h1{font:800 clamp(28px,3.8vw,44px)/1.12 var(--serif);margin:6px 0 12px;letter-spacing:-.5px}
.chapo{font:italic 20px/1.5 var(--serif);color:var(--muted);margin:0 0 12px}
.single-fig{margin:16px 0}
.single-fig img{width:100%}
.single-fig figcaption{font-size:13px;color:var(--muted);margin-top:6px}
.entry{font:18px/1.75 var(--serif)}
.entry p{margin:0 0 1.2em}
.entry h2,.entry h3{font-family:var(--serif);line-height:1.3;margin:1.6em 0 .6em}
.entry a{color:var(--accent);text-decoration:underline}
.entry blockquote{border-left:4px solid var(--accent);margin:1.4em 0;padding:4px 18px;color:var(--muted);font-style:italic}
.entry table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}
.entry td,.entry th{border:1px solid var(--line);padding:6px 10px}
.share{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.share a{padding:7px 14px;border-radius:999px;color:#fff;font-size:13.5px;font-weight:700}
.share .wa{background:#1fa855}.share .fb{background:#1877f2}.share .tw{background:#111}.share .mail{background:#6b7280}
.share a:hover{color:#fff;filter:brightness(1.1)}
.tags a{display:inline-block;border:1px solid var(--line);padding:2px 10px;border-radius:999px;font-size:13px;margin:0 6px 6px 0}
.related{margin-top:30px}
.pagination{margin:26px 0;display:flex;justify-content:center}
.pagination .nav-links{display:flex;gap:6px;flex-wrap:wrap}
.pagination a,.pagination span{padding:7px 13px;border:1px solid var(--line);border-radius:var(--r)}
.pagination .current{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}
.comments-area{margin-top:30px}
.comment-list{list-style:none;padding:0}
.comment-body{border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:10px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:8px;border-radius:var(--r)}
.comment-form .submit{background:var(--accent);color:var(--accent-text);border:0;padding:10px 18px;border-radius:var(--r);cursor:pointer}
/* Pied de page */
.site-footer{background:var(--footer-bg);color:var(--footer-text);margin-top:20px;opacity:1}
.site-footer p,.site-footer li{opacity:.85}
.site-footer a{color:var(--footer-text)}.site-footer a:hover{color:var(--accent)}
.footer-cols{display:grid;gap:26px;grid-template-columns:repeat(3,1fr);padding:34px 18px}
.footer-cols h2,.footer-cols h3{font:700 17px var(--serif);margin:0 0 10px}
.footer-cols ul{list-style:none;margin:0;padding:0}
.footer-cols li{margin-bottom:6px}
.copyright{border-top:1px solid rgba(128,128,128,.35);font-size:13px;text-align:center;padding:14px 16px;opacity:.8}
/* Responsive */
@media(max-width:1050px){
.top-grid{grid-template-columns:1fr 1fr}
.tg-lead{grid-column:1/-1;padding:0 0 18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.tg-mid{border-left:0;padding-left:0}
.layout{grid-template-columns:1fr}
.band-grid{grid-template-columns:repeat(2,1fr)}
.video-grid{grid-template-columns:1fr}.video-list{max-height:none}
.menu>li>a{padding:13px 7px;font-size:12.5px}
}
@media(max-width:760px){
.masthead-grid{grid-template-columns:1fr}.mh-left,.mh-right{display:none}
.nav-toggle{display:block}
.menu{display:none;flex-direction:column;justify-content:flex-start}
.nav-open .menu{display:flex}
.menu>li{display:flex;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line)}
.menu>li>a{flex:1;padding:12px 4px}
.menu .sub-menu{position:static;display:none;flex-basis:100%;box-shadow:none;border:0;background:rgba(128,128,128,.08)}
.menu li.open>.sub-menu{display:block}.menu li:hover>.sub-menu{display:none}.menu li.open:hover>.sub-menu{display:block}
.sub-toggle{display:block;background:none;border:0;color:var(--nav-text);font-size:18px;padding:8px 14px;cursor:pointer}
.top-grid{grid-template-columns:1fr}
.tg-mid,.tg-right{padding:0;border:0}
.tg-mid{margin-bottom:18px}
.band-grid{grid-template-columns:1fr 1fr;gap:16px}
.footer-cols{grid-template-columns:1fr}
.row{grid-template-columns:110px 1fr}.row .card-title{font-size:16px}
.edition-single{grid-template-columns:1fr}
.topbar .date{display:none}.topbar .wrap{justify-content:flex-end}
}
@media(max-width:480px){.band-grid{grid-template-columns:1fr}}

/* ===== v2.1 : identité « quotidien » – papier chaud, bande tricolore, heure & météo ===== */
.flag-bar{height:5px;background:linear-gradient(90deg,var(--accent) 0 33.33%,#fff 33.33% 66.66%,var(--secondary) 66.66% 100%)}
.hdr-info{display:flex;align-items:center;gap:14px;font-size:14px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 16px;white-space:nowrap}
.hi-city{font-weight:800;text-transform:uppercase;letter-spacing:.8px;font-size:12px;color:var(--secondary)}
.hi-clock{font:700 19px/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--text)}
.hi-wx{display:inline-flex;align-items:center;gap:6px;padding-left:14px;border-left:1px solid var(--line)}
.hi-wx strong{font:700 17px/1 var(--serif);color:var(--accent)}
.hi-icon{font-size:20px;line-height:1}
.hi-label{color:var(--muted);font-size:13px}
.hi-range{color:var(--muted);font-size:12.5px}
/* Une façon quotidien : filets fins, gros titres serif */
.lead-title{font-size:clamp(28px,3.6vw,46px);line-height:1.08}
.card-title,.mid-item h3,.list a,.popular li{font-family:var(--serif)}
.top-grid{padding-top:26px}
.band-5{grid-template-columns:2fr 1fr 1fr;gap:20px 24px}
.band-5>.card:first-child{grid-row:span 2;padding-right:24px;border-right:1px solid var(--line)}
.band-5>.card:first-child .card-title{font-size:clamp(22px,2.4vw,30px);line-height:1.15}
.band-5>.card:first-child .card-img{aspect-ratio:3/2}
.band-5>.card:not(:first-child){padding-bottom:14px;border-bottom:1px solid var(--line)}
.cta-band{background:var(--secondary);color:var(--secondary-text);margin-top:36px}
.cta-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:20px;padding-bottom:20px}
.cta-band p{margin:0;font:700 clamp(18px,2.2vw,24px)/1.3 var(--serif)}
.cta-band .btn{background:var(--accent);color:var(--accent-text)}
@media(max-width:1050px){
.masthead-grid{flex-wrap:wrap}
.band-5{grid-template-columns:1fr 1fr}
.band-5>.card:first-child{grid-column:1/-1;grid-row:auto;padding-right:0;border-right:0}
}
@media(max-width:760px){
.masthead-grid{flex-direction:column;align-items:flex-start;gap:12px}
.mh-right{align-items:stretch;width:100%}
.mh-actions{display:none}
.hdr-info{gap:10px;padding:6px 12px;justify-content:space-between}
.hi-label,.hi-range{display:none}
.band-5{grid-template-columns:1fr}
}
