* { box-sizing: border-box; }
:root { --primary:#123b5d; --primary-dark:#0b2941; --accent:#e8b339; --text:#17212b; --muted:#657482; --border:#d9e0e6; --surface:#fff; --soft:#f1f5f8; }
body { min-height:100vh; margin:0; padding-top:270px; background-color:#eceff1; background-position:center top; background-size:cover; background-attachment:fixed; background-repeat:no-repeat; color:var(--text); font-family:Georgia, 'Times New Roman', serif; }
body.has-background-ad { background-position:center top !important; background-size:cover !important; background-repeat:no-repeat !important; }
body.no-background-ad { padding-top:0; background-image:none !important; }
a { color:inherit; text-decoration:none; }
.container { width:min(1180px, calc(100% - 32px)); margin:auto; }
.site-header { background:var(--surface); border-bottom:1px solid var(--border); }
.site-header { width:min(1180px, 100%); margin:0 auto; }
.header-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; }
.brand { color:var(--primary); font-size:clamp(2rem, 5vw, 3rem); font-weight:900; letter-spacing:-1px; }
.brand-logo { display:block; height:clamp(42px, 6vw, 56px); width:auto; }
.tagline { display:block; color:var(--muted); font:600 .7rem Arial,sans-serif; letter-spacing:2px; text-transform:uppercase; }
.search-form { display:flex; }
.search-form input { width:220px; height:38px; padding:0 11px; border:1px solid var(--border); font:14px Arial,sans-serif; }
.button, .search-form button { border:0; background:var(--primary); color:#fff; cursor:pointer; font:bold 14px Arial,sans-serif; padding:11px 18px; }
.search-form button { height:38px; padding:0 14px; }
.nav { background:transparent; padding:0 0 12px; }
.nav-top { padding:10px 0 0; }
.nav-top .nav-inner { background:var(--primary-dark); }
.nav-inner { display:flex; align-items:center; gap:2px; overflow:auto; background:var(--primary); border-radius:6px; }
.nav a { color:#fff; padding:13px 15px; white-space:nowrap; font:bold 12px Arial,sans-serif; text-transform:uppercase; letter-spacing:.5px; }
.nav a:hover, .nav a.active { background:rgba(255,255,255,.16); }
.nav-search { margin-left:auto; display:inline-flex; align-items:center; }
.header-search { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; color:var(--primary); border:1px solid var(--line, #e3e6e9); border-radius:50%; background:#fff; }
.header-search:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.header-socials { display:flex; align-items:center; gap:8px; margin-left:auto; margin-right:12px; }
.header-weather { display:flex; align-items:center; gap:9px; margin-left:auto; margin-right:14px; color:var(--primary); }
.header-weather > svg { color:var(--accent); }
.header-weather > svg.w-cloud { color:#8fa9bd; }
.header-weather > svg.w-rain { color:#5b8ec4; }
.header-weather .hw-info { display:flex; flex-direction:column; line-height:1.25; }
.header-weather strong { font:bold .95rem Arial,sans-serif; }
.header-weather small { color:var(--muted); font:11px Arial,sans-serif; }
.header-weather + .header-socials { margin-left:0; }
.header-social { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; color:var(--primary); border:1px solid var(--line, #e3e6e9); border-radius:50%; background:#fff; }
.header-social:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.nav-top .nav-cat-ledakaroisquotidien,
.nav-top .nav-cat-le-dakarois-quotidien { margin-left:auto; color:#ff4d4d; font-weight:900; }
.nav-top .nav-cat-ledakaroisquotidien:hover,
.nav-top .nav-cat-le-dakarois-quotidien:hover { color:#ff4d4d; }
.flash { background:transparent; padding:0; font:14px Arial,sans-serif; }
.flash .container { display:flex; align-items:center; gap:14px; background:rgba(248,250,251,.97); border:0; border-bottom:1px solid var(--border); padding:9px 16px; }
.flash strong { flex-shrink:0; background:#c8102e; color:#fff; padding:5px 8px; font-size:11px; text-transform:uppercase; }
.flash-ticker { flex:1; min-width:0; overflow:hidden; }
.flash-track { display:inline-flex; align-items:center; white-space:nowrap; animation:flash-scroll var(--fd,30s) linear infinite; }
.flash-track a { color:var(--text); text-decoration:none; margin-right:56px; position:relative; }
.flash-track a::before { content:''; position:absolute; left:-30px; top:50%; width:6px; height:6px; margin-top:-3px; border-radius:50%; background:#c8102e; }
.flash-track a:hover { text-decoration:underline; }
.flash-ticker:hover .flash-track { animation-play-state:paused; }
@keyframes flash-scroll { to { transform:translateX(-50%); } }
.content-main { min-width:0; padding:14px 16px 44px; background:rgba(248,250,251,.97); }
.layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:34px; }
.section-title { border-bottom:3px solid var(--primary); margin:0 0 18px; }
.section-title span { display:inline-block; background:var(--primary); color:#fff; padding:8px 12px; font:bold 13px Arial,sans-serif; text-transform:uppercase; letter-spacing:.5px; }
.carousel-slug-le-dakarois-quotidien .section-title { border-bottom:0; margin-bottom:0; }
.carousel-slug-le-dakarois-quotidien .section-title span { background:#c8102e; }
.listen-player { display:flex; align-items:center; gap:14px; margin:14px 0 16px; padding:8px 16px 8px 12px; background:#f4f5f7; border-left:4px solid #c8102e; border-radius:10px; }
.listen-brand { display:flex; align-items:center; gap:8px; color:#c8102e; font-weight:800; font-size:.95rem; white-space:nowrap; }
.listen-play { flex:none; display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:50%; background:#fff; color:#17212b; font-size:13px; cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.15); }
.listen-play:hover { background:#c8102e; color:#fff; }
.listen-time { font-size:.8rem; color:#657482; white-space:nowrap; font-variant-numeric:tabular-nums; }
.listen-progress { flex:1; min-width:60px; height:5px; background:#dfe4ea; border-radius:3px; overflow:hidden; }
.listen-progress-fill { display:block; width:0; height:100%; background:#c8102e; transition:width .3s linear; }
.listen-vol { border:0; background:none; font-size:16px; padding:4px; cursor:pointer; }
.listen-rate { border:1px solid var(--border); background:#fff; font:12px Arial,sans-serif; padding:5px; border-radius:6px; }
.listen-count { margin-left:auto; font-size:.8rem; color:#657482; white-space:nowrap; }
@media (max-width:700px) { .listen-player { flex-wrap:wrap; } .listen-progress { flex-basis:100%; order:5; } .listen-count { margin-left:0; } }
.partners-wrap { margin-bottom:30px; }
.partners-marquee { overflow:hidden; }
.partners-track { display:flex; width:max-content; animation:partners-scroll 35s linear infinite; }
.partners-marquee:hover .partners-track { animation-play-state:paused; }
.partners-set { display:flex; align-items:center; }
.partners-set .partner-logo { margin-right:14px; }
@keyframes partners-scroll { to { transform:translateX(-50%); } }
.partner-logo { display:inline-flex; align-items:center; background:#fff; border:1px solid var(--border); border-radius:6px; padding:8px 14px; transition:box-shadow .15s; }
a.partner-logo:hover { box-shadow:0 4px 14px rgba(5,20,31,.12); }
.partner-logo img { display:block; height:76px; width:auto; object-fit:contain; }
.carousel-slug-partenaires .cc-thumb { flex:0 1 auto; background:#fff; border:1px solid var(--border); border-radius:6px; }
.carousel-slug-partenaires .cc-thumb img { aspect-ratio:auto; height:60px; width:auto; object-fit:contain; padding:8px 14px; }
.carousel-slug-partenaires .cc-thumb span { display:none; }
.carousel-slug-le-dakarois-quotidien .presse-quotidien { background:#c8102e; }
.carousel-slug-le-dakarois-quotidien .presse-item.presse-quotidien .presse-cap h3, .carousel-slug-le-dakarois-quotidien .presse-feature.presse-quotidien .presse-cap h3 { background:#c8102e; color:#fff; padding:8px 10px; margin:0; }
.card { background:var(--surface); border:1px solid var(--border); }
.card-image { display:block; width:100%; height:190px; object-fit:cover; }
.card-large .card-image { height:290px; }
.card-body { padding:16px; }
.card h2, .card h3 { margin:0 0 9px; line-height:1.15; }
.card h2 { font-size:clamp(1.3rem, 3vw, 2.05rem); }
.card h3 { font-size:1.15rem; }
.card p { margin:0; color:var(--muted); line-height:1.5; }
.card-large { margin-bottom:18px; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card-grid.two { grid-template-columns:repeat(2,1fr); }
.meta { color:var(--muted); font:12px Arial,sans-serif; margin-top:10px; }
.sidebar-box { background:var(--surface); border:1px solid var(--border); padding:16px; margin-bottom:22px; }
.sidebar-box h2 { border-bottom:2px solid var(--primary); padding-bottom:9px; margin:0 0 8px; font:bold 14px Arial,sans-serif; text-transform:uppercase; }
.ranked { display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--border); }
.ranked img { flex:none; width:90px; aspect-ratio:16/9; border-radius:4px; object-fit:cover; }
.ranked:last-child { border:0; }
.most-read-cards { display:flex; flex-direction:column; gap:12px; }
.most-read-cards .cc-card { flex:none; }
.pagination { display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 4px; }
.page-link { display:inline-block; padding:7px 13px; border:1px solid var(--border); border-radius:4px; background:var(--surface); color:inherit; text-decoration:none; font:bold 13px Arial,sans-serif; }
.page-link:hover { border-color:var(--primary); color:var(--primary); }
.page-link.active { background:var(--primary); border-color:var(--primary); color:#fff; }
.carousel-presse { display:grid; grid-template-columns:1.8fr 1fr 1fr; align-items:start; gap:8px; }
.presse-feature { grid-row:1 / -1; grid-column:1; display:flex; flex-direction:column; overflow:hidden; border-radius:4px; color:#fff; }
.presse-feature img { display:block; width:100%; height:auto; flex:1; object-fit:cover; min-height:0; }
.presse-feature .presse-cap { padding:12px 6px; }
.presse-feature .presse-cap h3 { margin:6px 0 0; font-size:.95rem; line-height:1.2; color:#fff; }
.presse-item { position:relative; display:flex; flex-direction:column; overflow:hidden; border-radius:4px; text-decoration:none; color:#fff; }
.presse-item > img { display:block; width:100%; height:auto; }
.presse-item .presse-cap { position:relative; padding:10px 6px; }
.presse-item.presse-red { background:#c8102e; }
.presse-item.presse-dark { background:var(--primary-dark); }
.presse-item.presse-light { background:#fff; border:1px solid var(--border); }
.presse-item:not(.presse-img) .presse-cap { flex:1; display:flex; flex-direction:column; padding:12px; }
.presse-item:not(.presse-img) .presse-cap h3 { margin:auto 0; font-size:1.05rem; text-transform:uppercase; letter-spacing:.3px; }
.presse-item.presse-img .presse-cap h3, .presse-feature .presse-cap h3 { color:var(--text); }
.presse-item .presse-cap h3 { margin:6px 0 0; font-size:1.02rem; line-height:1.2; color:#fff; }
.presse-item.presse-light .presse-cap h3 { color:var(--text); }
.carousel-presse.presse-vertical .presse-feature { grid-column:1/-1; grid-row:auto; min-height:320px; }
.carousel-right .carousel-presse { grid-template-columns:1fr; }
.carousel-right .carousel-presse .presse-feature { grid-column:1; grid-row:auto; }
.rank { color:var(--primary); font:bold 25px Arial,sans-serif; opacity:.45; }
.ranked a { font-weight:bold; line-height:1.3; }
.rubrique-list { display:flex; flex-direction:column; }
.rubrique-item { display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--border); color:inherit; text-decoration:none; }
.rubrique-item:last-child { border-bottom:0; }
.rubrique-item img { flex:none; width:180px; aspect-ratio:16/9; border-radius:6px; object-fit:cover; }
.rubrique-item .meta { margin-top:0; }
.rubrique-item .meta-rubrique { color:#ff4d4d; font-weight:bold; text-transform:uppercase; letter-spacing:.5px; }
.rubrique-item h3 { margin:4px 0 6px; font-size:1.2rem; line-height:1.25; }
.rubrique-item p { margin:0; color:var(--muted); font-size:.97rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.empty { background:var(--surface); border:1px dashed var(--border); padding:80px 24px; text-align:center; }
.empty h1 { margin:0 0 12px; }
.empty p { color:var(--muted); font:16px Arial,sans-serif; }
.article h1 { font-size:clamp(1.6rem, 3.8vw, 2.6rem); line-height:1.1; margin:14px 0; }
.article .lead { color:var(--muted); font-size:1.15rem; line-height:1.55; }
.article-meta { border-block:1px solid var(--border); color:var(--muted); font:14px Arial,sans-serif; padding:12px 0; margin:18px 0; }
.article-image { display:block; width:100%; height:auto; margin:20px 0; }
.article-content { font-size:1.15rem; line-height:1.75; text-align:justify; }
.article-content .is-justified { text-align:justify !important; }
.article-content p { margin:0 0 20px; }
.article-content img { max-width:100%; height:auto; }
.article-content iframe, .article-content video, .article-content embed, .article-content object { max-width:100%; }
.article-content figure { max-width:100%; margin:0 0 20px; }
.article-content table { max-width:100%; }
.video-embed { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:8px; margin:20px 0; }
.video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.article-video { display:block; width:100%; border-radius:8px; margin:20px 0; background:#000; }
.badge { display:inline-block; background:var(--primary); color:#fff; padding:5px 8px; font:bold 11px Arial,sans-serif; text-transform:uppercase; }
.share { margin:20px 0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; font:14px Arial,sans-serif; }
.share a { border:1px solid var(--border); padding:8px 12px; background:#fff; }
.search-panel { background:#fff; border:1px solid var(--border); padding:16px; display:flex; gap:10px; margin-bottom:22px; }
.search-panel input, .search-panel select { height:42px; border:1px solid var(--border); padding:0 10px; font:14px Arial,sans-serif; }
.search-panel input { flex:1; }
.site-footer { padding:0 0 28px; font:14px Arial,sans-serif; }
.site-footer .container { background:var(--primary-dark); border-radius:8px; color:#cfdae4; padding:0; overflow:hidden; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:28px; padding:30px 26px; }
.footer-col h3 { margin:0 0 12px; color:#fff; font:bold 12px Arial,sans-serif; text-transform:uppercase; letter-spacing:1px; }
.footer-col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.footer-col ul a { color:#cfdae4; }
.footer-col ul a:hover { color:var(--accent); }
.footer-logo img { display:block; height:38px; width:auto; background:#fff; border-radius:6px; padding:6px 10px; }
.footer-brand p { margin:12px 0 14px; color:#9fb0bf; font-size:.85rem; line-height:1.5; }
.footer-socials { display:flex; flex-wrap:wrap; gap:8px; }
.footer-social { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; }
.footer-social:hover { background:var(--accent); color:#12263a; }
.footer-contact-item { display:flex; gap:8px; align-items:flex-start; line-height:1.45; }
.footer-contact-item svg { flex:none; margin-top:2px; opacity:.7; }
.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; padding:14px 26px; border-top:1px solid rgba(255,255,255,.14); font-size:12px; color:#8fa2b3; }
.footer-bottom a { color:#cfdae4; font-weight:bold; }
.footer-bottom a:hover { color:var(--accent); }
.comments { margin-top:34px; border-top:2px solid var(--primary); padding-top:18px; }
.comments h2 { font-size:20px; margin:0 0 14px; }
.comment { background:#f4f6f8; border-radius:8px; padding:12px 14px; margin-bottom:10px; }
.comment strong { color:var(--primary); }
.comment-date { color:var(--muted); font-size:12px; margin-left:8px; }
.comment p { margin:6px 0 0; }
.comment-empty { color:var(--muted); font-style:italic; }
.comment-notice { background:#e8f5e9; border-left:4px solid #2e7d32; padding:10px 12px; border-radius:4px; }
.comment-notice-error { background:#fdecea; border-left-color:#c62828; }
.comment-form { margin-top:18px; background:#f4f6f8; border-radius:8px; padding:16px; }
.comment-form .field { margin-bottom:12px; }
.comment-form label { display:block; font:bold 13px Arial,sans-serif; margin-bottom:4px; }
.comment-form input:not(.comment-hp), .comment-form textarea { width:100%; box-sizing:border-box; padding:10px; border:1px solid var(--line, #e3e6e9); border-radius:6px; font:inherit; }
.comment-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.comment-form .button { background:var(--primary); color:#fff; border:0; padding:10px 20px; border-radius:6px; font-weight:bold; cursor:pointer; }
.article-tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:24px; }
.article-tags strong { font-size:13px; text-transform:uppercase; color:var(--muted); }
.article-tags a { background:#eef1f4; color:var(--primary); padding:6px 14px; border-radius:20px; font:bold 12px Arial,sans-serif; text-decoration:none; }
.article-tags a:hover { background:var(--primary); color:#fff; }
@media (max-width:800px) { body { padding-top:0; background-attachment:scroll; background-position:center top; background-size:auto 100%; } .header-top { align-items:flex-start; flex-direction:column; } .search-form { width:100%; } .search-form input { flex:1; width:auto; } .layout { grid-template-columns:1fr; } .card-grid, .card-grid.two { grid-template-columns:1fr; } .under-une-grid { grid-template-columns:1fr; } .nav-inner { width:100%; } .search-panel { flex-direction:column; } .rubrique-item img { width:110px; } .footer-grid { grid-template-columns:1fr; gap:22px; } .carousel-presse { grid-template-columns:1fr 1fr; } .presse-feature { grid-column:1/-1; grid-row:auto; min-height:220px; } .carousel-list.has-cols, .carousel-cards.has-cols, .carousel-thumbs.has-cols { grid-template-columns:1fr; } }
.home-carousel { margin:0 0 30px; }
.under-une-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; align-items:start; }
.under-une-col { min-width:0; }
.under-une-grid .ad-banner { margin-bottom:30px; }
.carousel-frame { position:relative; overflow:hidden; background:#102f47; border-radius:6px; }
.carousel-slide { display:none; position:relative; }
.carousel-slide.active { display:block; }
.carousel-slide img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.carousel-caption { position:absolute; right:0; bottom:0; left:0; padding:28px 30px 34px; background:linear-gradient(transparent,rgba(5,20,31,.9)); color:#fff; }
.carousel-caption span { color:#fff; font:bold 11px Arial,sans-serif; letter-spacing:1px; text-transform:uppercase; }
.carousel-caption h2 { max-width:720px; margin:7px 0 0; font-size:clamp(1.2rem,2.6vw,2rem); line-height:1.15; }
.carousel-caption a { color:#fff; }
.carousel-caption p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; max-width:720px; margin:6px 0 0; color:rgba(255,255,255,.88); font-size:.92rem; line-height:1.4; }
.cc-badge { display:inline-block; padding:4px 9px; border-radius:3px; background:#c8102e; color:#fff; font:bold 10px Arial,sans-serif; letter-spacing:1px; text-transform:uppercase; }
.cc-imgwrap { position:relative; display:block; }
.cc-imgwrap .cc-badge { position:absolute; bottom:10px; left:10px; z-index:2; }
.carousel-slide > .cc-badge { position:absolute; bottom:16px; left:16px; z-index:2; }
.carousel-caption .cc-badge { margin-bottom:5px; }
.cc-thumb .cc-badge { position:absolute; top:8px; right:auto; bottom:auto; left:8px; z-index:2; padding:4px 8px; background:#c8102e; color:#fff; font:bold 9px Arial,sans-serif; letter-spacing:1px; text-transform:uppercase; }
.cc-body p, .cc-item p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:5px 0 0; color:#5b6b7c; font-size:.92rem; line-height:1.45; }
.carousel-control { position:absolute; top:50%; z-index:2; width:38px; height:38px; border:0; border-radius:50%; background:rgba(0,0,0,.45); color:#fff; cursor:pointer; font-size:28px; line-height:1; transform:translateY(-50%); }
.carousel-control:hover { background:var(--primary); }
.carousel-prev { left:12px; }
.carousel-next { right:12px; }
.carousel-dots { position:absolute; right:0; bottom:12px; left:0; z-index:2; display:flex; justify-content:center; gap:6px; }
.carousel-dots button { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; }
.carousel-dots button.active { background:var(--accent); }
.carousel-right { margin-bottom:22px; }
.carousel-right .carousel-caption { padding:18px 14px 28px; }
.carousel-right .carousel-caption h2 { font-size:1.18rem; }
.carousel-right .carousel-control { width:30px; height:30px; font-size:22px; }
.carousel-bottom-wrap { padding:0 16px 24px; background:rgba(248,250,251,.97); }
.carousel-bottom .carousel-slide img { max-height:560px; }
.carousel-cards { display:flex; gap:14px; overflow-x:auto; padding-bottom:10px; scroll-snap-type:x mandatory; }
.carousel-cards.has-rows, .carousel-thumbs.has-rows { display:grid; grid-template-rows:repeat(var(--lignes,1),auto); grid-auto-flow:column; grid-auto-columns:220px; overflow-x:auto; }
.carousel-cards.has-rows .cc-card, .carousel-thumbs.has-rows .cc-thumb { flex:none; }
.carousel-right .carousel-cards.has-rows, .carousel-right .carousel-thumbs.has-rows { grid-auto-columns:150px; }
.carousel-list.has-rows { display:grid; grid-template-rows:repeat(var(--lignes,1),auto); grid-auto-flow:column; grid-auto-columns:100%; overflow-x:auto; scroll-snap-type:x mandatory; }
.carousel-list.has-rows .cc-item { scroll-snap-align:start; }
.carousel-list.has-cols, .carousel-cards.has-cols, .carousel-thumbs.has-cols { display:grid; grid-template-columns:repeat(var(--cols,2),minmax(0,1fr)); gap:14px; overflow-x:visible; scroll-snap-type:none; }
.carousel-cards.has-cols .cc-card, .carousel-thumbs.has-cols .cc-thumb { flex:none; }
.has-rows.has-cols { grid-auto-flow:row; overflow-x:visible; scroll-snap-type:none; }
.carousel-list.has-cols .cc-item { flex-direction:column; align-items:stretch; gap:8px; padding:0 0 12px; border-bottom:1px solid #eef1f5; }
.carousel-list.has-cols .cc-item img { width:100%; }
.cc-card { flex:1 0 200px; scroll-snap-align:start; background:#fff; border:1px solid #e8edf3; border-radius:6px; overflow:hidden; color:inherit; text-decoration:none; }
.cc-card img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.cc-body { padding:10px 12px 14px; }
.cc-body span, .cc-item span { color:var(--accent); font:bold 10px Arial,sans-serif; letter-spacing:1px; text-transform:uppercase; }
.cc-body h3 { margin:5px 0 0; font-size:1.08rem; line-height:1.3; }
.carousel-thumbs { display:flex; flex-wrap:wrap; gap:10px; }
.cc-thumb { position:relative; display:block; flex:1 1 110px; border-radius:6px; overflow:hidden; }
.cc-thumb img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.carousel-right .cc-card { flex-basis:150px; }
.carousel-right .cc-item img { width:120px; }
.cc-thumb span { position:absolute; right:0; bottom:0; left:0; padding:16px 8px 8px; background:linear-gradient(transparent,rgba(5,20,31,.85)); color:#fff; font-size:.82rem; line-height:1.25; }
.carousel-list .cc-item { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #eef1f5; color:inherit; text-decoration:none; }
.carousel-list .cc-item:last-child { border-bottom:0; }
.cc-item img { flex:none; width:140px; aspect-ratio:16/9; border-radius:4px; object-fit:cover; }
.cc-item .cc-imgwrap { flex:none; overflow:hidden; }
.cc-item > div:last-child:not(.cc-imgwrap) { flex:1; min-width:0; }
.cc-item h3, .cc-item p, .cc-body h3, .cc-body p { overflow-wrap:break-word; }
.cc-item h3 { margin:3px 0 0; font-size:1.05rem; line-height:1.3; }
.carousel-noimg .carousel-caption { position:static; background:#102f47; }
.carousel-noimg .carousel-slide > .cc-badge { position:static; margin:14px 16px; }
.carousel-noimg .cc-thumb { background:#102f47; }
.carousel-noimg .cc-thumb .cc-badge { position:static; margin:10px 10px 0; }
.carousel-noimg .cc-thumb span { position:static; display:block; padding:12px 10px 14px; background:none; }
.cc-body .cc-badge { margin-bottom:4px; }
.notif-popup { position:fixed; top:50%; left:50%; z-index:1000; display:flex; flex-direction:column; gap:12px; width:min(380px, calc(100vw - 40px)); padding:18px; background:#fff; border:1px solid var(--border); border-radius:10px; box-shadow:0 10px 34px rgba(11,41,65,.18); font-family:Arial,sans-serif; opacity:0; transform:translate(-50%,-50%) scale(.96); pointer-events:none; transition:opacity .3s, transform .3s; }
.notif-popup.visible { opacity:1; transform:translate(-50%,-50%) scale(1); pointer-events:auto; }

.notif-popup .notif-logo { position:absolute; top:18px; left:18px; width:44px; height:44px; border-radius:50%; }
.notif-popup .notif-text { padding-left:56px; }
.notif-popup .notif-text strong { display:block; color:var(--primary); font-size:15px; }
.notif-popup .notif-text span { display:block; margin-top:3px; color:var(--muted); font-size:13px; }
.notif-popup .notif-actions { display:flex; justify-content:flex-end; gap:22px; }
.notif-popup button { border:0; background:none; cursor:pointer; font:bold 14px Arial,sans-serif; }
.notif-popup .notif-refuse { color:var(--muted); }
.notif-popup .notif-accept { color:#1a73e8; }
.ad-banner { display:block; margin:0 0 22px; }
.ad-banner img { display:block; width:100%; height:auto; border-radius:6px; }
.ad-code { text-align:center; overflow:hidden; }
.ad-code ins, .ad-code iframe { margin:0 auto; }
.ad-in-article { margin:24px 0; text-align:center; clear:both; }
.ad-top { padding-top:12px; text-align:center; }
.ad-top img { display:inline-block; width:auto; max-width:100%; height:auto; border-radius:6px; }
@media (max-width:700px) { .cc-card { flex-basis:170px; } .cc-thumb span { font-size:.68rem; } .carousel-list.has-cols, .carousel-cards.has-cols { grid-template-columns:1fr; } .carousel-list.has-rows { display:block; overflow-x:visible; scroll-snap-type:none; } .cc-item { min-width:0; } .cc-item img, .carousel-right .cc-item img { width:105px; } .cc-item h3 { font-size:1.02rem; } .cc-body h3 { font-size:1.05rem; } .cc-body p, .cc-item p { font-size:.92rem; } .cc-thumb span { font-size:.78rem; } .carousel-caption h2 { font-size:1.35rem; } .carousel-caption p { font-size:.95rem; } .listen-player { gap:10px; padding:8px 12px; } .listen-brand { font-size:.85rem; } .article-meta { font-size:13.5px; } .rubrique-item h3 { font-size:1.15rem; } .rubrique-item p { font-size:.95rem; } .partner-logo img { height:56px; } }
@media (max-width:700px) { .carousel-caption { padding:20px 16px 30px; } }
@media (max-width:800px) {
  .under-une-grid,
  .carousel-list.has-cols,
  .carousel-cards.has-cols,
  .carousel-thumbs.has-cols { grid-template-columns:1fr !important; }
  .under-une-grid .under-une-col:last-child { order:-1; }
  .carousel-list.has-rows { display:block !important; overflow-x:visible !important; scroll-snap-type:none; }
  /* Réordonnancement mobile : la colonne droite remonte avant les blocs "Sous À la une" */
  .layout { display:flex !important; flex-direction:column; }
  .layout > section, .layout > aside { display:contents; }
  .layout aside > * { order:10; }
  .layout section > .under-une-grid { order:20; }
  .layout section > .under-une-grid ~ * { order:30; }
}
@media (max-width:700px) {
  .carousel-presse { grid-template-columns:1fr !important; }
}

/* Fausses UNE — bande de cartes sous la section « À la une » (réutilise les styles cc-card) */
.fausse-une-band { margin:16px 0 18px; }

/* Vente du journal — Wave */
.journal-buy { margin:18px 0 20px; padding:0; background:linear-gradient(135deg,#f0faff 0%,#ffffff 55%); border:1px solid #d6ecf7; border-radius:16px; box-shadow:0 4px 20px rgba(18,59,93,.09); overflow:hidden; }
.journal-buy-head { display:flex; align-items:center; gap:14px; padding:16px 18px 12px; }
.journal-buy-head > div { flex:1; min-width:0; }
.journal-buy-head strong { display:block; color:var(--primary); font-size:1.05rem; line-height:1.25; }
.journal-buy-head span { display:block; margin-top:2px; color:var(--muted); font-size:.85rem; }
.journal-buy-icon { flex:none; display:grid; place-items:center; width:52px; height:52px; background:linear-gradient(135deg,#1dc4f2,#0d9ad4); border-radius:14px; font-size:26px; box-shadow:0 4px 12px rgba(29,196,242,.4); }
.journal-buy-tag { display:inline-block !important; margin:0 0 4px !important; background:#1dc4f2; color:#fff !important; font:bold .68rem Arial,sans-serif; text-transform:uppercase; letter-spacing:.6px; padding:3px 9px; border-radius:20px; }
.journal-buy-price { flex:none; color:var(--primary); font-weight:900; font-size:1.9rem; line-height:1; }
.journal-buy-price small { font-size:.9rem; font-weight:700; color:#7c8b99; }
.journal-buy-perks { display:flex; flex-wrap:wrap; gap:6px 14px; padding:0 18px 12px; }
.journal-buy-perks span { font-size:.8rem; color:#445566; }
.journal-buy-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; padding:14px 18px; background:rgba(29,196,242,.07); border-top:1px dashed #c9e7f5; }
.journal-buy-btn { position:relative; display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg,#1dc4f2,#0e9cd8); color:#fff; font-weight:800; font-size:.95rem; padding:12px 24px; border-radius:10px; text-decoration:none; box-shadow:0 4px 14px rgba(29,196,242,.4); transition:transform .15s, box-shadow .15s; overflow:hidden; }
.journal-buy-btn::after { content:''; position:absolute; top:0; left:-80%; width:50%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-20deg); animation:jb-shine 3.2s ease-in-out infinite; }
@keyframes jb-shine { 0%,60% { left:-80%; } 100% { left:130%; } }
.journal-buy-btn:hover { transform:translateY(-1px); box-shadow:0 6px 18px rgba(29,196,242,.5); }
.jb-wave { font-weight:900; font-size:1.15em; }
.journal-buy-sub { display:inline-flex; align-items:center; background:#fff; color:var(--primary); border:2px solid #1dc4f2; font-weight:800; font-size:.92rem; padding:10px 20px; border-radius:10px; text-decoration:none; transition:transform .15s, box-shadow .15s, background .15s; }
.journal-buy-sub small { font-weight:600; color:#7c8b99; margin-left:3px; }
.journal-buy-sub:hover { transform:translateY(-1px); background:#eaf8fe; box-shadow:0 4px 12px rgba(29,196,242,.25); }
.journal-buy-owned .journal-buy-icon { background:linear-gradient(135deg,#1a9e5c,#137a45); box-shadow:0 4px 12px rgba(26,158,92,.4); }
.journal-buy-dl { background:linear-gradient(135deg,#1a9e5c,#12804a); box-shadow:0 4px 14px rgba(26,158,92,.4); margin:0 18px 16px; justify-content:center; display:flex; }
.journal-buy-dl:hover { box-shadow:0 6px 18px rgba(26,158,92,.5); }
.jb-dl-icon { font-size:1.1em; }
.presse-pdf { display:inline-block; margin-top:5px; background:#fff; color:#c8102e; font:bold .72rem Arial,sans-serif; padding:3px 8px; border-radius:20px; }
@media (max-width:700px) { .journal-buy-head { flex-wrap:wrap; } .journal-buy-actions { flex-direction:column; align-items:stretch; text-align:center; } }
