/*
  Caravane 2026 — CSS consolidé
  Usage SPIP : /squelettes/css/caravane2026.css
  Contient : sommaire + bloc 2026 + carte interactive incluse.
  La carte est scopée sous .carte-spip-embed pour éviter les conflits avec le site.
*/

:root{
            --ct-green-950:#102419;
            --ct-green-900:#183724;
            --ct-green-800:#235338;
            --ct-green-700:#2f744a;
            --ct-green-100:#e8f2eb;
            --ct-sand-50:#fffdf7;
            --ct-sand-100:#f7efd8;
            --ct-earth:#b9823d;
            --ct-water:#2d8aa6;
            --ct-ink:#172018;
            --ct-muted:#627064;
            --ct-white:#fff;
            --ct-border:rgba(24,55,36,.14);
            --ct-shadow:0 22px 60px rgba(16,36,25,.12);
            --ct-radius-xl:30px;
            --ct-radius-lg:22px;
            --ct-container:1180px;
        }

        *{box-sizing:border-box;}
        html{scroll-behavior:smooth;}
        body{
            margin:0;
            color:var(--ct-ink);
            background:
                radial-gradient(circle at 10% 0%, rgba(45,138,166,.11), transparent 30%),
                radial-gradient(circle at 92% 0%, rgba(185,130,61,.12), transparent 32%),
                linear-gradient(180deg,#fffdf8 0%,#fbf7ed 48%,#fff 100%);
            font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
            line-height:1.6;
            overflow-x:hidden;
        }
        body:before{
            content:"";
            position:fixed;
            inset:0;
            z-index:-1;
            pointer-events:none;
            opacity:.28;
            background-image:linear-gradient(rgba(24,55,36,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(24,55,36,.045) 1px,transparent 1px);
            background-size:44px 44px;
        }
        a{color:inherit;text-decoration:none;}
        img,.spip_logo{max-width:100%;height:auto;display:block;}
        .ct-container,.container,.container-fluid{width:min(var(--ct-container),calc(100% - 36px));margin-inline:auto;}
        .ct-shell{min-height:100vh;}

        .ct-nav{
            position:sticky;
            top:0;
            z-index:100;
            background:rgba(255,253,248,.92);
            border-bottom:1px solid rgba(24,55,36,.08);
            backdrop-filter:blur(16px);
        }
        .ct-nav-inner{
            min-height:76px;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:24px;
        }
        .ct-brand{
            display:flex;
            align-items:center;
            gap:12px;
            min-width:240px;
            max-width:420px;
            color:var(--ct-green-950);
            font-weight:900;
            line-height:1.1;
            letter-spacing:-.025em;
        }
        .ct-brand-mark{
            flex:0 0 42px;
            width:42px;
            height:42px;
            display:grid;
            place-items:center;
            border-radius:14px;
            color:#fff;
            background:linear-gradient(135deg,var(--ct-green-800),var(--ct-earth));
            box-shadow:0 10px 24px rgba(24,55,36,.18);
        }
        .ct-brand-title{
            display:block;
            white-space:normal;
            overflow:hidden;
            display:-webkit-box;
            -webkit-line-clamp:2;
            -webkit-box-orient:vertical;
        }
        .ct-brand small{display:block;margin-top:3px;color:var(--ct-muted);font-size:12px;font-weight:700;letter-spacing:normal;}
        .ct-nav-links{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:0;padding:0;list-style:none;flex-wrap:wrap;}
        .ct-nav-links a{
            display:inline-flex;
            align-items:center;
            min-height:38px;
            padding:0 12px;
            border-radius:999px;
            color:var(--ct-green-900);
            font-size:14px;
            font-weight:800;
            transition:background .2s ease,transform .2s ease;
        }
        .ct-nav-links a:hover{background:rgba(47,116,74,.09);transform:translateY(-1px);}
        .ct-nav-links .ct-nav-cta{background:var(--ct-green-900);color:#fff;}

        .ct-2026-top{
            position:relative;
            padding:42px 0 26px;
        }
        .ct-2026-banner{
            position:relative;
            overflow:hidden;
            display:grid;
            grid-template-columns:minmax(0,1fr) 360px;
            gap:26px;
            align-items:stretch;
            min-height:390px;
            padding:clamp(28px,5vw,58px);
            border-radius:36px;
            color:#fff;
            background:
                radial-gradient(circle at 88% 12%, rgba(255,220,41,.28), transparent 20rem),
                radial-gradient(circle at 8% 82%, rgba(255,255,255,.13), transparent 22rem),
                linear-gradient(135deg,#0d381b 0%,#0f6f2e 48%,#118c37 100%);
            box-shadow:0 26px 70px rgba(16,36,25,.22);
        }
        .ct-2026-banner:before{
            content:"";
            position:absolute;
            right:-120px;
            top:-160px;
            width:440px;
            height:440px;
            border-radius:50%;
            border:42px solid rgba(255,221,38,.20);
            pointer-events:none;
        }
        .ct-2026-banner:after{
            content:"";
            position:absolute;
            left:-80px;
            bottom:-100px;
            width:360px;
            height:360px;
            border-radius:50%;
            background:rgba(255,221,38,.13);
            pointer-events:none;
        }
        .ct-2026-content,.ct-2026-card{
            position:relative;
            z-index:2;
        }
        .ct-2026-kicker{
            display:inline-flex;
            align-items:center;
            gap:9px;
            margin-bottom:18px;
            padding:8px 13px;
            border-radius:999px;
            background:rgba(255,255,255,.13);
            border:1px solid rgba(255,255,255,.24);
            color:#ffdf31;
            font-size:12px;
            font-weight:950;
            letter-spacing:.11em;
            text-transform:uppercase;
        }
        .ct-2026-kicker:before{
            content:"";
            width:10px;
            height:10px;
            border-radius:999px;
            background:#ffdf31;
            box-shadow:0 0 0 7px rgba(255,223,49,.16);
        }
        .ct-2026-title{
            margin:0;
            max-width:820px;
            font-family:Georgia,"Times New Roman",serif;
            font-size:clamp(46px,7vw,92px);
            line-height:.92;
            letter-spacing:-.06em;
            color:#fff;
        }
        .ct-2026-title .ct-yellow{
            color:#ffdf31;
        }
        .ct-2026-title .ct-white{
            color:#fff;
        }
        .ct-2026-text{
            max-width:760px;
            margin:22px 0 0;
            color:rgba(255,255,255,.84);
            font-size:clamp(17px,2vw,21px);
            line-height:1.62;
        }
        .ct-2026-text strong{
            color:#ffdf31;
        }
        .ct-2026-actions{
            display:flex;
            flex-wrap:wrap;
            gap:13px;
            margin-top:28px;
        }
        .ct-2026-actions .ct-btn-primary{
            background:#ffdf31;
            color:#102419;
            box-shadow:0 16px 30px rgba(0,0,0,.18);
        }
        .ct-2026-actions .ct-btn-secondary{
            color:#fff;
            background:rgba(255,255,255,.10);
            border-color:rgba(255,255,255,.32);
        }
        .ct-2026-pill-row{
            display:flex;
            flex-wrap:wrap;
            gap:8px;
            margin-top:24px;
        }
        .ct-2026-pill{
            display:inline-flex;
            align-items:center;
            min-height:34px;
            padding:0 12px;
            border-radius:999px;
            background:rgba(255,255,255,.12);
            border:1px solid rgba(255,255,255,.18);
            color:rgba(255,255,255,.90);
            font-size:13px;
            font-weight:850;
        }
        .ct-2026-card{
            align-self:stretch;
            display:flex;
            flex-direction:column;
            justify-content:space-between;
            min-height:310px;
            padding:22px;
            border-radius:28px;
            background:rgba(255,255,255,.12);
            border:1px solid rgba(255,255,255,.25);
            box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
            backdrop-filter:blur(12px);
        }
        .ct-2026-year{
            display:grid;
            place-items:center;
            width:136px;
            height:136px;
            margin-left:auto;
            border-radius:40px;
            background:#ffdf31;
            color:#0f4d25;
            font-size:38px;
            font-weight:1000;
            letter-spacing:-.04em;
            box-shadow:0 18px 40px rgba(0,0,0,.20);
            transform:rotate(3deg);
        }
        .ct-2026-card h2{
            margin:22px 0 8px;
            color:#fff;
            font-size:25px;
            line-height:1.08;
            letter-spacing:-.03em;
        }
        .ct-2026-card p{
            margin:0;
            color:rgba(255,255,255,.78);
            line-height:1.5;
        }
        .ct-2026-mini-grid{
            display:grid;
            grid-template-columns:repeat(2,1fr);
            gap:10px;
            margin-top:18px;
        }
        .ct-2026-mini{
            padding:12px;
            border-radius:16px;
            background:rgba(255,255,255,.10);
            border:1px solid rgba(255,255,255,.16);
        }
        .ct-2026-mini strong{
            display:block;
            color:#ffdf31;
            font-size:18px;
            line-height:1;
        }
        .ct-2026-mini span{
            display:block;
            margin-top:5px;
            color:rgba(255,255,255,.80);
            font-size:12px;
            font-weight:800;
        }

        .ct-map-2026{
            padding:0 0 46px;
            position:relative;
        }
        .ct-map-shell{
            overflow:hidden;
            border:1px solid rgba(24,55,36,.14);
            border-radius:32px;
            background:rgba(255,255,255,.88);
            box-shadow:var(--ct-shadow);
        }
        .ct-map-head{
            display:flex;
            align-items:flex-end;
            justify-content:space-between;
            gap:22px;
            padding:24px 26px 18px;
            border-bottom:1px solid rgba(24,55,36,.10);
            background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,248,219,.74));
        }
        .ct-map-head h2{
            margin:7px 0 0;
            color:var(--ct-green-950);
            font-family:Georgia,"Times New Roman",serif;
            font-size:clamp(31px,4vw,54px);
            line-height:1;
            letter-spacing:-.055em;
        }
        .ct-map-head p{
            max-width:760px;
            margin:10px 0 0;
            color:#4f5d50;
            font-size:16px;
        }
        .ct-map-legend-mini{
            display:flex;
            flex-wrap:wrap;
            justify-content:flex-end;
            gap:8px;
            min-width:260px;
        }
        .ct-map-chip{
            display:inline-flex;
            align-items:center;
            gap:7px;
            padding:7px 10px;
            border-radius:999px;
            background:#fff;
            border:1px solid rgba(24,55,36,.12);
            color:var(--ct-green-950);
            font-size:12px;
            font-weight:900;
            white-space:nowrap;
        }
        .ct-map-chip:before{
            content:"";
            width:24px;
            height:4px;
            border-radius:999px;
            background:var(--chip-color,var(--ct-green-700));
        }
        .ct-map-chip.is-dashed:before{
            background:repeating-linear-gradient(90deg,var(--chip-color,var(--ct-earth)) 0 7px,transparent 7px 12px);
        }
        .ct-map-frame{
            position:relative;
            background:#eaf1ea;
        }
        .ct-map-frame-spip{
            background:#fff;
            overflow:hidden;
        }
        .ct-map-frame-spip .carte-spip-embed{
            width:100%;
        }
        .ct-map-fallback{
            display:flex;
            flex-wrap:wrap;
            align-items:center;
            justify-content:space-between;
            gap:12px;
            padding:14px 18px;
            color:#4f5d50;
            background:#fffdf7;
            border-top:1px solid rgba(24,55,36,.10);
            font-size:14px;
        }
        .ct-map-fallback a{
            color:var(--ct-green-800);
            font-weight:950;
        }

        .ct-hero{padding:74px 0 46px;position:relative;}
        .ct-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:42px;align-items:center;}
        .ct-eyebrow{
            display:inline-flex;
            align-items:center;
            gap:10px;
            padding:8px 13px;
            border:1px solid var(--ct-border);
            border-radius:999px;
            background:rgba(255,255,255,.72);
            color:var(--ct-green-800);
            font-weight:900;
            font-size:13px;
            letter-spacing:.02em;
        }
        .ct-eyebrow:before{content:"";width:9px;height:9px;border-radius:999px;background:var(--ct-earth);box-shadow:0 0 0 6px rgba(185,130,61,.13);}
        .ct-hero h1,.ct-section-title,.ct-card-title,.ct-cta h2{
            color:var(--ct-green-950);
            font-family:Georgia,"Times New Roman",serif;
            letter-spacing:-.055em;
            line-height:1;
        }
        .ct-hero h1{margin:22px 0 18px;font-size:clamp(44px,7vw,86px);max-width:850px;}
        .ct-lead{max-width:720px;margin:0;color:#4f5d50;font-size:clamp(17px,2vw,21px);}
        .ct-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:28px;}
        .ct-btn{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:49px;
            padding:0 21px;
            border-radius:999px;
            border:1px solid transparent;
            font-weight:900;
            transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
        }
        .ct-btn:hover{transform:translateY(-2px);}
        .ct-btn-primary{background:var(--ct-green-900);color:#fff;box-shadow:0 16px 30px rgba(24,55,36,.18);}
        .ct-btn-secondary{background:rgba(255,255,255,.72);border-color:var(--ct-border);color:var(--ct-green-900);}
        .ct-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px;}
        .ct-stat{padding:15px;border:1px solid var(--ct-border);border-radius:19px;background:rgba(255,255,255,.75);}
        .ct-stat strong{display:block;color:var(--ct-green-950);font-size:27px;line-height:1;}
        .ct-stat span{display:block;margin-top:5px;color:var(--ct-muted);font-size:12px;font-weight:800;}
        .ct-hero-card{position:relative;min-height:500px;overflow:hidden;border-radius:var(--ct-radius-xl);background:linear-gradient(135deg,var(--ct-green-950),var(--ct-green-700));box-shadow:var(--ct-shadow);}
        .ct-hero-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(16,36,25,.92) 100%);}
        .ct-hero-card .spip_logo,.ct-hero-card img{width:100%;height:500px;object-fit:cover;animation:ctSlowZoom 18s ease-in-out infinite alternate;}
        .ct-hero-card-content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:28px;color:#fff;}
        .ct-hero-card-content h2{margin:0 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:28px;line-height:1.05;letter-spacing:-.04em;}
        .ct-hero-card-content p{margin:0;color:rgba(255,255,255,.78);}

        .ct-block{padding:52px 0;}
        .ct-section-head{max-width:780px;margin-bottom:25px;}
        .ct-label{color:var(--ct-earth);font-weight:950;font-size:12px;text-transform:uppercase;letter-spacing:.14em;}
        .ct-section-title{margin:8px 0 10px;font-size:clamp(33px,5vw,56px);}
        .ct-section-text{margin:0;color:var(--ct-muted);font-size:18px;}
        .ct-panel,.ct-card,.ct-mini,.ct-cta{
            border:1px solid var(--ct-border);
            border-radius:var(--ct-radius-lg);
            background:rgba(255,255,255,.76);
            box-shadow:0 16px 45px rgba(16,36,25,.08);
        }
        .ct-panel{padding:clamp(22px,5vw,44px);}
        .ct-two{display:grid;grid-template-columns:1fr .72fr;gap:28px;align-items:start;}
        .ct-panel p,.ct-card p,.ct-mini p{color:var(--ct-muted);}
        .ct-side-dark{padding:24px;border-radius:22px;background:linear-gradient(145deg,var(--ct-green-950),var(--ct-green-800));color:#fff;}
        .ct-side-dark h3{margin:0 0 14px;font-size:24px;line-height:1.1;}
        .ct-side-dark ul{margin:0;padding:0;list-style:none;display:grid;gap:11px;}
        .ct-side-dark li{position:relative;padding-left:17px;color:rgba(255,255,255,.82);}
        .ct-side-dark li:before{content:"";position:absolute;left:0;top:.65em;width:7px;height:7px;border-radius:50%;background:var(--ct-sand-100);}
        .ct-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
        .ct-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
        .ct-card,.ct-mini{padding:21px;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;}
        .ct-card:hover,.ct-mini:hover{transform:translateY(-4px);box-shadow:var(--ct-shadow);background:#fff;}
        .ct-icon{width:52px;height:52px;display:grid;place-items:center;margin-bottom:14px;border-radius:17px;background:var(--ct-sand-100);font-size:26px;}
        .ct-card h3,.ct-mini h3{margin:0 0 10px;color:var(--ct-green-950);font-size:20px;line-height:1.18;}
        .ct-card p,.ct-mini p{margin:0 0 15px;}
        .ct-link{color:var(--ct-green-700);font-weight:950;}
        .ct-route{padding:28px;border-radius:var(--ct-radius-xl);background:linear-gradient(135deg,var(--ct-green-950),var(--ct-green-800));color:#fff;box-shadow:var(--ct-shadow);}
        .ct-route-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
        .ct-route-step{min-height:126px;padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(255,255,255,.1);transition:background .2s ease,transform .2s ease;}
        .ct-route-step:hover{background:rgba(255,255,255,.16);transform:translateY(-3px);}
        .ct-route-step strong{display:block;font-size:16px;line-height:1.15;}
        .ct-route-step span{display:block;margin-top:8px;color:rgba(255,255,255,.72);font-size:13px;}
        .ct-edition-tag,.ct-type{display:inline-flex;margin-bottom:13px;padding:6px 11px;border-radius:999px;background:var(--ct-sand-100);color:var(--ct-green-900);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;}
        .ct-news{display:grid;grid-template-columns:1.18fr .82fr;gap:22px;}
        .ct-feature{min-height:350px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(16,36,25,.04),rgba(16,36,25,.88)),var(--ct-green-900);color:#fff;}
        .ct-feature h3,.ct-feature p,.ct-feature .ct-link{color:#fff;}
        .ct-feature p{color:rgba(255,255,255,.76);}
        .ct-feature small,.ct-list-date{color:var(--ct-earth);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;}
        .ct-list{display:grid;gap:13px;}
        .ct-list-item{display:block;padding:17px;border:1px solid var(--ct-border);border-radius:19px;background:rgba(255,255,255,.76);transition:transform .2s ease,background .2s ease;}
        .ct-list-item:hover{transform:translateX(4px);background:#fff;}
        .ct-list-item strong{display:block;color:var(--ct-green-950);line-height:1.25;}
        .ct-doc{display:flex;flex-direction:column;min-height:190px;}
        .ct-cta{overflow:hidden;padding:clamp(32px,6vw,66px);background:linear-gradient(135deg,var(--ct-green-950),var(--ct-green-800));color:#fff;}
        .ct-cta h2{margin:0 0 12px;color:#fff;font-size:clamp(32px,5vw,55px);}
        .ct-cta p{max-width:760px;color:rgba(255,255,255,.78);font-size:18px;}
        .ct-cta .ct-btn-secondary{color:#fff;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);}
        .ct-footer{margin-top:52px;padding:32px 0;border-top:1px solid var(--ct-border);color:var(--ct-muted);}
        .ct-footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;}
        .ct-footer strong{display:block;color:var(--ct-green-950);}

        .ct-reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease;}
        .ct-reveal.is-visible{opacity:1;transform:none;}
        @keyframes ctSlowZoom{from{transform:scale(1.02);}to{transform:scale(1.09);}}

        @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}}
        @media (max-width:1100px){.ct-2026-banner{grid-template-columns:1fr;}.ct-2026-card{min-height:auto;}.ct-2026-year{margin-left:0;}.ct-nav-inner{align-items:flex-start;padding:13px 0;}.ct-nav-links{max-width:58%;}.ct-brand{max-width:360px;}}
        @media (max-width:960px){.ct-nav-links{display:none;}.ct-map-head{align-items:flex-start;flex-direction:column;}.ct-map-legend-mini{justify-content:flex-start;min-width:0;}.ct-map-frame-spip .carte-spip-embed #map{height:78vh;min-height:620px;}.ct-hero{padding-top:42px;}.ct-hero-grid,.ct-two,.ct-news{grid-template-columns:1fr;}.ct-hero-card,.ct-hero-card .spip_logo,.ct-hero-card img{height:auto;min-height:380px;}.ct-stats,.ct-grid-4,.ct-grid-3{grid-template-columns:repeat(2,1fr);}.ct-route-grid{grid-template-columns:repeat(2,1fr);}}
        @media (max-width:620px){.ct-container,.container,.container-fluid{width:min(100% - 24px,var(--ct-container));}.ct-2026-top{padding:24px 0 18px;}.ct-2026-banner{padding:24px;border-radius:26px;min-height:auto;}.ct-2026-title{font-size:44px;}.ct-2026-card{padding:18px;border-radius:22px;}.ct-2026-year{width:112px;height:112px;border-radius:30px;font-size:32px;}.ct-2026-mini-grid{grid-template-columns:1fr;}.ct-map-2026{padding-bottom:26px;}.ct-map-shell{border-radius:24px;}.ct-map-head{padding:18px 18px 14px;}.ct-map-frame-spip .carte-spip-embed #map{height:74vh;min-height:560px;}.ct-map-fallback{font-size:13px;}.ct-hero h1{font-size:42px;}.ct-stats,.ct-grid-4,.ct-grid-3,.ct-route-grid{grid-template-columns:1fr;}.ct-hero-card-content{padding:22px;}.ct-block{padding:35px 0;}.ct-footer-inner{align-items:flex-start;flex-direction:column;}}

/* ==================== CARTE INTERACTIVE — styles scopés ==================== */
.carte-spip-embed{--bg: #f4f1ea;
            --surface: #ffffff;
            --surface-soft: #f8f5ef;
            --ink: #17202a;
            --muted: #5f6b76;
            --line: rgba(23, 32, 42, 0.12);
            --sahel: #b95718;
            --sahel-soft: #f4dfcf;
            --niger: #d98b19;
            --coast: #1d6f9f;
            --coast-soft: #dbeaf2;
            --junction: #9d2f24;
            --central: #6d4c8d;
            --arrival: #24835b;
            --shadow: 0 22px 55px rgba(31, 41, 55, 0.12);
            --radius-xl: 28px;
            --radius-lg: 20px;
            --radius-md: 14px;}
.carte-spip-embed, .carte-spip-embed *{box-sizing: border-box;}
.carte-spip-embed .page-shell{width: min(1380px, 100%);
            margin: 0 auto;
            padding: 24px;}
.carte-spip-embed .map-card{background: rgba(255, 255, 255, 0.92);
            border: 1px solid rgba(255,255,255,0.72);
            border-radius: var(--radius-xl);
            box-shadow: var(--shadow);
            overflow: hidden;}
.carte-spip-embed .hero{display: grid;
            grid-template-columns: minmax(0, 1fr) 360px;
            gap: 24px;
            padding: 28px;
            background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(248,245,239,0.96));
            border-bottom: 1px solid var(--line);}
.carte-spip-embed .eyebrow{display: inline-flex;
            align-items: center;
            gap: 8px;
            width: fit-content;
            margin-bottom: 12px;
            padding: 6px 12px;
            border-radius: 999px;
            background: #efe4d7;
            color: #704118;
            font-size: 0.78rem;
            line-height: 1;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;}
.carte-spip-embed h1{margin: 0;
            max-width: 920px;
            font-family: Georgia, "Times New Roman", serif;
            font-size: clamp(2rem, 4vw, 4.05rem);
            line-height: 0.98;
            letter-spacing: -0.045em;
            color: #111827;}
.carte-spip-embed .lead{max-width: 860px;
            margin: 18px 0 0;
            color: var(--muted);
            font-size: clamp(1rem, 1.35vw, 1.15rem);
            line-height: 1.7;}
.carte-spip-embed .hero-meta{display: grid;
            align-content: start;
            gap: 12px;}
.carte-spip-embed .meta-card{padding: 16px;
            border: 1px solid var(--line);
            border-radius: var(--radius-lg);
            background: rgba(255,255,255,0.78);}
.carte-spip-embed .meta-label{margin: 0 0 6px;
            color: #6b7280;
            font-size: 0.74rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            font-weight: 800;}
.carte-spip-embed .meta-value{margin: 0;
            color: #111827;
            font-size: 0.98rem;
            line-height: 1.45;
            font-weight: 700;}
.carte-spip-embed .summary-row{display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
            padding: 18px 28px;
            background: #fff;
            border-bottom: 1px solid var(--line);}
.carte-spip-embed .stat{min-height: 88px;
            padding: 16px;
            border: 1px solid var(--line);
            border-radius: var(--radius-lg);
            background: var(--surface-soft);}
.carte-spip-embed .stat strong{display: block;
            margin-bottom: 4px;
            font-size: 1.35rem;
            letter-spacing: -0.03em;
            color: #111827;}
.carte-spip-embed .stat span{color: var(--muted);
            font-size: 0.88rem;
            line-height: 1.35;}
.carte-spip-embed .route-panel{display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 14px;
            padding: 20px 28px;
            background: #fcfbf8;
            border-bottom: 1px solid var(--line);}
.carte-spip-embed .route-card{position: relative;
            padding: 18px 18px 16px;
            border: 1px solid var(--line);
            border-radius: var(--radius-lg);
            background: var(--surface);
            overflow: hidden;}
.carte-spip-embed .route-card::before{content: "";
            position: absolute;
            inset: 0 auto 0 0;
            width: 5px;
            background: var(--route-color, var(--sahel));}
.carte-spip-embed .route-card h2{margin: 0 0 10px 0;
            font-size: 1.05rem;
            letter-spacing: -0.02em;}
.carte-spip-embed .route-card p{margin: 0;
            color: var(--muted);
            font-size: 0.92rem;
            line-height: 1.55;}
.carte-spip-embed .chips{display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 14px;}
.carte-spip-embed .chip{display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 7px 10px;
            border-radius: 999px;
            background: #f7f4ef;
            border: 1px solid rgba(23,32,42,0.10);
            color: #344054;
            font-size: 0.8rem;
            line-height: 1;
            font-weight: 650;
            white-space: nowrap;}
.carte-spip-embed .chip::before{content: "";
            width: 8px;
            height: 8px;
            border-radius: 999px;
            background: var(--route-color, var(--sahel));}
.carte-spip-embed button.chip{font: inherit;
            cursor: pointer;
            text-align: left;}
.carte-spip-embed .chip.map-focus-trigger:hover, .carte-spip-embed .chip.map-focus-trigger:focus-visible, .carte-spip-embed .chip.map-focus-trigger.is-active{color: var(--route-color, var(--sahel));
            border-color: color-mix(in srgb, var(--route-color, var(--sahel)) 42%, #ffffff);
            background: color-mix(in srgb, var(--route-color, var(--sahel)) 10%, #ffffff);
            box-shadow: 0 0 0 3px color-mix(in srgb, var(--route-color, var(--sahel)) 12%, transparent);
            outline: none;}
.carte-spip-embed .route-hint{display: inline-flex;
            align-items: center;
            gap: 6px;
            margin: 14px 0 0;
            padding: 7px 10px;
            border-radius: 999px;
            background: #fff7ed;
            color: #8a4b15;
            border: 1px solid rgba(185,87,24,0.18);
            font-size: 0.78rem;
            font-weight: 750;
            line-height: 1.2;}
.carte-spip-embed .route-hint::before{content: "↘";
            display: inline-grid;
            place-items: center;
            width: 17px;
            height: 17px;
            border-radius: 999px;
            background: var(--route-color, var(--sahel));
            color: #fff;
            font-size: 0.72rem;
            line-height: 1;}
.carte-spip-embed .map-section{display: grid;
            grid-template-columns: minmax(0, 1fr) 310px;
            gap: 0;
            min-height: 720px;}
.carte-spip-embed .map-wrap{position: relative;
            min-width: 0;
            padding: 18px;
            background: #ffffff;
            scroll-margin-top: 24px;}
.carte-spip-embed #map{width: 100%;
            height: clamp(620px, 73vh, 820px);
            min-height: 620px;
            border-radius: 24px;
            background: #dfe7ed;
            border: 1px solid rgba(23,32,42,0.12);
            z-index: 1;}
.carte-spip-embed .side-panel{padding: 22px;
            border-left: 1px solid var(--line);
            background: #fbfaf7;}
.carte-spip-embed .side-panel h3{margin: 0 0 12px;
            font-size: 1rem;
            letter-spacing: -0.02em;}
.carte-spip-embed .legend-list{display: grid;
            gap: 10px;
            margin: 0 0 20px;
            padding: 0;
            list-style: none;}
.carte-spip-embed .legend-list li{display: flex;
            align-items: flex-start;
            gap: 10px;
            color: #374151;
            font-size: 0.88rem;
            line-height: 1.35;}
.carte-spip-embed .legend-dot{flex: 0 0 auto;
            width: 14px;
            height: 14px;
            margin-top: 2px;
            border-radius: 999px;
            background: var(--c);
            box-shadow: inset 0 0 0 2px rgba(255,255,255,0.55);}
.carte-spip-embed .legend-section + .legend-section{margin-top: 20px;
            padding-top: 18px;
            border-top: 1px solid var(--line);}
.carte-spip-embed .legend-section-title{display: flex;
            align-items: center;
            gap: 8px;
            margin: 0 0 10px;
            color: #111827;
            font-size: 0.88rem;
            font-weight: 900;
            letter-spacing: -0.01em;}
.carte-spip-embed .legend-section-title::before{content: "";
            width: 8px;
            height: 8px;
            border-radius: 999px;
            background: #111827;}
.carte-spip-embed .legend-item{border-radius: 12px;
            padding: 8px;
            margin-left: -8px;
            cursor: pointer;
            transition: background 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;}
.carte-spip-embed .legend-item:hover, .carte-spip-embed .legend-item.is-active{background: rgba(255,255,255,0.92);
            transform: translateX(3px);
            box-shadow: 0 8px 18px rgba(15,23,42,0.08);}
.carte-spip-embed .legend-line{flex: 0 0 auto;
            width: 34px;
            height: 12px;
            margin-top: 3px;
            border-radius: 999px;
            background: var(--c);
            box-shadow: 0 0 0 1px rgba(255,255,255,0.85), 0 4px 9px rgba(15,23,42,0.12);}
.carte-spip-embed .legend-line.dashed{background: repeating-linear-gradient(90deg, var(--c) 0 7px, transparent 7px 13px);
            box-shadow: none;
            border: 1px solid rgba(15,23,42,0.12);}
.carte-spip-embed .legend-mini-pin, .carte-spip-embed .legend-info-dot, .carte-spip-embed .legend-fsm-dot{flex: 0 0 auto;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-top: 1px;
            color: #fff;
            font-weight: 900;
            border: 2px solid #fff;
            box-shadow: 0 5px 12px rgba(15,23,42,0.18);}
.carte-spip-embed .legend-mini-pin{width: 24px;
            height: 24px;
            border-radius: 999px 999px 999px 4px;
            transform: rotate(-45deg);
            background: var(--c);}
.carte-spip-embed .legend-mini-pin span{transform: rotate(45deg);
            font-size: 10px;
            line-height: 1;}
.carte-spip-embed .legend-info-dot, .carte-spip-embed .legend-fsm-dot{width: 26px;
            height: 26px;
            border-radius: 999px;
            background: var(--c, #17202a);
            font-size: 10px;}
.carte-spip-embed .legend-special-pin{position: relative;
            flex: 0 0 auto;
            width: 28px;
            height: 28px;
            margin-top: 1px;
            border-radius: 999px;
            background: var(--c);
            border: 2px solid #fff;
            box-shadow: 0 0 0 7px var(--halo, rgba(157,47,36,0.14)), 0 7px 14px rgba(15,23,42,0.18);}
.carte-spip-embed .legend-note-mobile{margin: 16px 0 0;
            padding: 12px 13px;
            border-radius: 14px;
            background: #fff7ed;
            border: 1px solid rgba(185,87,24,0.18);
            color: #7c3d12;
            font-size: 0.8rem;
            line-height: 1.5;}
.carte-spip-embed .instruction-box{padding: 14px;
            border-radius: var(--radius-md);
            border: 1px solid rgba(29,111,159,0.18);
            background: #eef7fb;
            color: #24566e;
            font-size: 0.86rem;
            line-height: 1.55;}
.carte-spip-embed .source-note{margin: 16px 0 0;
            color: #6b7280;
            font-size: 0.78rem;
            line-height: 1.5;}
.carte-spip-embed .leaflet-container{font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;}
.carte-spip-embed .leaflet-control-zoom{border: none !important;
            box-shadow: 0 12px 26px rgba(15,23,42,0.18) !important;}
.carte-spip-embed .leaflet-control-zoom a{width: 36px !important;
            height: 36px !important;
            line-height: 36px !important;
            border: none !important;
            color: #111827 !important;}
.carte-spip-embed .leaflet-control-layers{border: none !important;
            border-radius: 16px !important;
            box-shadow: 0 12px 26px rgba(15,23,42,0.16) !important;
            overflow: hidden;}
.carte-spip-embed .leaflet-popup-content-wrapper{border-radius: 18px;
            box-shadow: 0 18px 38px rgba(15,23,42,0.22);}
.carte-spip-embed .leaflet-popup-content{margin: 14px 16px;
            color: #1f2937;
            font-size: 0.9rem;
            line-height: 1.5;}
.carte-spip-embed .leaflet-popup-content .popup-kicker{display: inline-flex;
            margin-bottom: 8px;
            padding: 4px 8px;
            border-radius: 999px;
            background: #f3f4f6;
            color: #4b5563;
            font-size: 0.72rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.05em;}
.carte-spip-embed .leaflet-popup-content b{display: block;
            color: #111827;
            font-size: 1.02rem;
            margin-bottom: 4px;}
.carte-spip-embed .city-pin-icon, .carte-spip-embed .info-pin-icon{background: transparent; border: none;}
.carte-spip-embed .pin{position: relative;
            width: 30px;
            height: 46px;}
.carte-spip-embed .pin-special{width: 38px;
            height: 56px;}
.carte-spip-embed .pin-halo{display: none;}
.carte-spip-embed .pin-special .pin-halo{display: block;
            position: absolute;
            left: -2px;
            top: -1px;
            width: 32px;
            height: 32px;
            border-radius: 999px;
            background: var(--halo-color, rgba(36,131,91,0.18));
            box-shadow: 0 0 0 8px var(--halo-color, rgba(36,131,91,0.18));
            opacity: 0.95;}
.carte-spip-embed .pin-shape{position: absolute;
            left: 5px;
            top: 5px;
            width: 22px;
            height: 22px;
            border-radius: 50% 50% 50% 0;
            transform: rotate(-45deg);
            background: var(--pin-color);
            border: 2px solid #fff;
            box-shadow: 0 8px 18px rgba(15,23,42,0.30);}
.carte-spip-embed .pin-special .pin-shape{left: 6px;
            top: 8px;
            width: 26px;
            height: 26px;
            box-shadow: 0 10px 22px rgba(15,23,42,0.38);}
.carte-spip-embed .pin-shape::after{content: "";
            position: absolute;
            left: 6px;
            top: 6px;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #fff;}
.carte-spip-embed .pin-special .pin-shape::after{left: 8px;
            top: 8px;
            width: 7px;
            height: 7px;}
.carte-spip-embed .step-badge{position: absolute;
            z-index: 4;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 24px;
            height: 24px;
            padding: 0 6px;
            border-radius: 999px;
            background: var(--badge-color, #111827);
            color: #fff;
            border: 2px solid #fff;
            box-shadow: 0 6px 14px rgba(15,23,42,0.22);
            font-size: 11px;
            font-weight: 900;
            line-height: 1;
            letter-spacing: -0.02em;}
.carte-spip-embed .badge-1{top: -2px;
            right: -6px;}
.carte-spip-embed .badge-2{top: 18px;
            right: -10px;}
.carte-spip-embed .pin-special .badge-1{top: -4px;
            right: -8px;}
.carte-spip-embed .pin-special .badge-2{top: 20px;
            right: -12px;}
.carte-spip-embed .pin-label{position: absolute;
            left: 50%;
            top: 34px;
            transform: translateX(-50%);
            padding: 3px 8px;
            border-radius: 999px;
            background: rgba(255,255,255,0.96);
            border: 1px solid rgba(15,23,42,0.10);
            color: #111827;
            font-size: 10px;
            font-weight: 900;
            white-space: nowrap;
            box-shadow: 0 4px 10px rgba(15,23,42,0.14);
            pointer-events: none;}
.carte-spip-embed .pin-special .pin-label{top: 41px;
            padding: 4px 10px;
            font-size: 10px;
            color: #0f172a;}
.carte-spip-embed .pin-label.strong{background: rgba(255,255,255,0.98);
            border-color: rgba(15,23,42,0.14);}
.carte-spip-embed .info-dot{display: grid;
            place-items: center;
            width: 30px;
            height: 30px;
            border-radius: 999px;
            background: #17202a;
            color: #fff;
            border: 2px solid #fff;
            font-size: 14px;
            font-weight: 900;
            box-shadow: 0 8px 16px rgba(15,23,42,0.28);}
.carte-spip-embed .marker-cluster-small, .carte-spip-embed .marker-cluster-medium, .carte-spip-embed .marker-cluster-large{background-color: rgba(29, 111, 159, 0.22);}
.carte-spip-embed .marker-cluster-small div, .carte-spip-embed .marker-cluster-medium div, .carte-spip-embed .marker-cluster-large div{background-color: #1d6f9f;
            color: #fff;
            font-weight: 900;}
.carte-spip-embed .map-touch-toggle{display: none;
            position: absolute;
            z-index: 900;
            right: 30px;
            bottom: 30px;
            border: none;
            border-radius: 999px;
            padding: 11px 15px;
            background: #17202a;
            color: #fff;
            font: inherit;
            font-size: 0.82rem;
            font-weight: 800;
            box-shadow: 0 14px 30px rgba(15,23,42,0.30);}
.carte-spip-embed .mobile-help{display: none;
            margin-top: 12px;
            padding: 12px 14px;
            border-radius: 16px;
            background: #eef7fb;
            color: #24566e;
            font-size: 0.85rem;
            line-height: 1.45;}
.carte-spip-embed .text-sahel{color: var(--sahel);}
.carte-spip-embed .text-niger{color: var(--niger);}
.carte-spip-embed .text-coast{color: var(--coast);}
.carte-spip-embed .text-central{color: var(--central);}
.carte-spip-embed .text-junction{color: var(--junction);}
.carte-spip-embed .text-arrival{color: var(--arrival);}
.carte-spip-embed .lead strong, .carte-spip-embed .instruction-box strong, .carte-spip-embed .route-card strong, .carte-spip-embed .guide-card strong{font-weight: 800;}
.carte-spip-embed .visitor-guide{padding: 22px 28px 24px;
            background: linear-gradient(180deg, #fff 0%, #fcfbf8 100%);
            border-bottom: 1px solid var(--line);}
.carte-spip-embed .guide-title{margin: 0 0 10px;
            font-size: 1.2rem;
            letter-spacing: -0.03em;
            color: #111827;}
.carte-spip-embed .guide-lead{margin: 0;
            max-width: 960px;
            color: var(--muted);
            font-size: 0.98rem;
            line-height: 1.7;}
.carte-spip-embed .guide-grid{display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 14px;
            margin-top: 16px;}
.carte-spip-embed .guide-card{position: relative;
            padding: 16px;
            border-radius: var(--radius-lg);
            background: #fff;
            border: 1px solid var(--line);
            box-shadow: 0 8px 18px rgba(15,23,42,0.06);
            overflow: hidden;
            transition: transform 0.25s ease, box-shadow 0.25s ease;}
.carte-spip-embed .guide-card::before, .carte-spip-embed .stat::before{content: "";
            position: absolute;
            inset: 0 auto 0 0;
            width: 4px;
            background: var(--guide-color, var(--sahel));}
.carte-spip-embed .guide-card:hover, .carte-spip-embed .route-card:hover, .carte-spip-embed .stat:hover{transform: translateY(-4px);
            box-shadow: 0 12px 28px rgba(15,23,42,0.10);}
.carte-spip-embed .guide-card h3{margin: 0 0 8px;
            font-size: 0.98rem;
            letter-spacing: -0.02em;}
.carte-spip-embed .guide-card p{margin: 0;
            color: var(--muted);
            font-size: 0.87rem;
            line-height: 1.55;}
.carte-spip-embed .guide-card .mini-badge{display: inline-flex;
            align-items: center;
            gap: 6px;
            margin-bottom: 10px;
            padding: 6px 10px;
            border-radius: 999px;
            background: color-mix(in srgb, var(--guide-color, var(--sahel)) 12%, #ffffff);
            color: var(--guide-color, var(--sahel));
            font-size: 0.74rem;
            font-weight: 800;
            letter-spacing: 0.04em;
            text-transform: uppercase;}
.carte-spip-embed .guide-card .mini-badge::before{content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--guide-color, var(--sahel));}
.carte-spip-embed .map-focus-trigger{cursor: pointer;}
.carte-spip-embed .guide-card.map-focus-trigger{outline: none;}
.carte-spip-embed .guide-card.map-focus-trigger::after{pointer-events: none;}
.carte-spip-embed .guide-card.map-focus-trigger:hover, .carte-spip-embed .guide-card.map-focus-trigger:focus-visible, .carte-spip-embed .guide-card.map-focus-trigger.is-active{border-color: color-mix(in srgb, var(--guide-color, var(--sahel)) 55%, #ffffff);
            box-shadow: 0 16px 34px rgba(15,23,42,0.13), 0 0 0 4px color-mix(in srgb, var(--guide-color, var(--sahel)) 13%, transparent);}
.carte-spip-embed .map-focus-link{display: inline;
            margin: 0;
            padding: 0 3px;
            border: none;
            border-radius: 6px;
            background: transparent;
            font: inherit;
            font-weight: 850;
            text-decoration: underline;
            text-underline-offset: 3px;
            text-decoration-thickness: 1.5px;
            cursor: pointer;}
.carte-spip-embed .map-focus-link:hover, .carte-spip-embed .map-focus-link:focus-visible{background: rgba(255,255,255,0.82);
            box-shadow: 0 0 0 3px rgba(15,23,42,0.06);
            outline: none;}
.carte-spip-embed .map-focus-hint{display: inline-flex;
            align-items: center;
            gap: 6px;
            margin-top: 12px;
            padding: 8px 11px;
            border-radius: 999px;
            background: #fff7ed;
            color: #8a4b15;
            border: 1px solid rgba(185,87,24,0.18);
            font-size: 0.82rem;
            font-weight: 750;}
.carte-spip-embed .map-focus-hint::before{content: "↘";
            display: inline-grid;
            place-items: center;
            width: 18px;
            height: 18px;
            border-radius: 999px;
            background: #b95718;
            color: #fff;
            font-size: 0.78rem;
            line-height: 1;}
.carte-spip-embed .map-wrap.is-focused{animation: mapFocusGlow 1.4s ease;}
@keyframes mapFocusGlow{0% { box-shadow: 0 0 0 0 rgba(36,131,91,0); }
            28% { box-shadow: 0 0 0 6px rgba(36,131,91,0.16), 0 18px 40px rgba(15,23,42,0.14); }
            100% { box-shadow: 0 0 0 0 rgba(36,131,91,0); }}
.carte-spip-embed .reveal-on-scroll{opacity: 0;
            transform: translateY(22px);
            transition: opacity 0.75s ease, transform 0.75s ease;}
.carte-spip-embed .reveal-on-scroll.is-visible{opacity: 1;
            transform: translateY(0);}
.carte-spip-embed .hero, .carte-spip-embed .summary-row, .carte-spip-embed .visitor-guide, .carte-spip-embed .route-panel, .carte-spip-embed .map-wrap, .carte-spip-embed .side-panel{will-change: transform, opacity;}
.carte-spip-embed .stat, .carte-spip-embed .route-card, .carte-spip-embed .guide-card, .carte-spip-embed .meta-card{position: relative;}
.carte-spip-embed .stat::after, .carte-spip-embed .route-card::after, .carte-spip-embed .guide-card::after{content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,0.38) 45%, transparent 100%);
            transform: translateX(-130%);
            pointer-events: none;}
.carte-spip-embed .stat:hover::after, .carte-spip-embed .route-card:hover::after, .carte-spip-embed .guide-card:hover::after{animation: shimmerSweep 0.9s ease;}
.carte-spip-embed .pin-special .pin-halo{animation: pulseHalo 2.4s ease-in-out infinite;}
.carte-spip-embed .pin-special .pin-label{animation: floatSoft 2.8s ease-in-out infinite;}
@keyframes pulseHalo{0% { box-shadow: 0 0 0 0 var(--halo-color, rgba(36,131,91,0.18)); opacity: 0.95; }
            70% { box-shadow: 0 0 0 12px rgba(255,255,255,0), 0 0 0 22px rgba(255,255,255,0); opacity: 0.45; }
            100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); opacity: 0.95; }}
@keyframes shimmerSweep{0% { transform: translateX(-130%); }
            100% { transform: translateX(130%); }}
@keyframes floatSoft{0%, 100% { transform: translateX(-50%) translateY(0); }
            50% { transform: translateX(-50%) translateY(-2px); }}
@media (max-width: 1100px){.carte-spip-embed .hero{grid-template-columns: 1fr;}
.carte-spip-embed .hero-meta{grid-template-columns: repeat(2, minmax(0, 1fr));}
.carte-spip-embed .route-panel{grid-template-columns: 1fr;}
.carte-spip-embed .map-section{grid-template-columns: 1fr;}
.carte-spip-embed .side-panel{border-left: none;
                border-top: 1px solid var(--line);
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 20px;}}
@media (max-width: 760px){.carte-spip-embed .page-shell{padding: 0;}
.carte-spip-embed .map-card{border-radius: 0; box-shadow: none; border: none;}
.carte-spip-embed .hero{padding: 18px 16px; gap: 16px;}
.carte-spip-embed h1{font-size: clamp(2rem, 12vw, 3rem); line-height: 1.02;}
.carte-spip-embed .lead{font-size: 0.98rem; line-height: 1.6;}
.carte-spip-embed .hero-meta, .carte-spip-embed .summary-row, .carte-spip-embed .route-panel, .carte-spip-embed .side-panel{grid-template-columns: 1fr;}
.carte-spip-embed .summary-row{padding: 14px 16px;}
.carte-spip-embed .stat{min-height: auto; padding: 14px;}
.carte-spip-embed .route-panel{padding: 14px 16px;}
.carte-spip-embed .map-wrap{padding: 10px;}
.carte-spip-embed #map{height: min(72vh, 660px);
                min-height: 520px;
                border-radius: 18px;}
.carte-spip-embed .side-panel{padding: 16px;}
.carte-spip-embed .visitor-guide{padding: 18px 16px 20px;}
.carte-spip-embed .guide-grid{grid-template-columns: 1fr 1fr;}
.carte-spip-embed .legend-list{grid-template-columns: 1fr;
                gap: 8px;}
.carte-spip-embed .legend-list li{font-size: 0.78rem;}
.carte-spip-embed .legend-item{margin-left: 0;}
.carte-spip-embed .map-touch-toggle{display: inline-flex; align-items: center; gap: 8px;}
.carte-spip-embed .mobile-help{display: block;}
.carte-spip-embed .pin-label{display: none;}
.carte-spip-embed .leaflet-control-layers{max-width: 225px; font-size: 12px;}
.carte-spip-embed .leaflet-control-attribution{font-size: 10px;}}
@media (max-width: 420px){.carte-spip-embed .summary-row{gap: 10px;}
.carte-spip-embed .hero-meta{gap: 10px;}
.carte-spip-embed .route-card{padding: 16px;}
.carte-spip-embed .chips{gap: 6px;}
.carte-spip-embed .chip{font-size: 0.74rem; padding: 7px 9px;}
.carte-spip-embed .guide-grid, .carte-spip-embed .legend-list{grid-template-columns: 1fr;}
.carte-spip-embed #map{min-height: 500px;}
.carte-spip-embed .map-touch-toggle{left: 22px; right: 22px; justify-content: center;}}
.carte-spip-embed{--brand-green: #148a2e;
            --brand-green-dark: #07551f;
            --brand-yellow: #f5d21f;
            --brand-brown: #7b3519;}
.carte-spip-embed{background:
                radial-gradient(circle at 8% 10%, rgba(245, 210, 31, 0.24), transparent 20rem),
                radial-gradient(circle at 88% 6%, rgba(20, 138, 46, 0.22), transparent 28rem),
                linear-gradient(180deg, #f6fbf1 0%, #eef8e9 42%, #fffdf1 100%);}
.carte-spip-embed .map-card{border: 1px solid rgba(20, 138, 46, 0.20);}
.carte-spip-embed .hero{background:
                radial-gradient(circle at top right, rgba(245, 210, 31, 0.22), transparent 18rem),
                linear-gradient(135deg, rgba(7, 85, 31, 0.98), rgba(20, 138, 46, 0.90));
            color: #fff;}
.carte-spip-embed .hero h1, .carte-spip-embed .hero .meta-value{color: #fff;}
.carte-spip-embed .hero .lead{color: rgba(255,255,255,0.88);}
.carte-spip-embed .hero .eyebrow{background: rgba(245, 210, 31, 0.96);
            color: #0d3d18;}
.carte-spip-embed .hero .meta-card{background: rgba(255,255,255,0.10);
            border-color: rgba(255,255,255,0.20);
            backdrop-filter: blur(8px);}
.carte-spip-embed .hero .meta-label{color: rgba(255,255,255,0.72);}
.carte-spip-embed .summary-row, .carte-spip-embed .visitor-guide, .carte-spip-embed .route-panel{background:
                linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,253,241,0.96));}
.carte-spip-embed .stat strong:first-child, .carte-spip-embed .guide-title{color: var(--brand-green-dark);}
.carte-spip-embed .route-card{background: linear-gradient(180deg, #fff 0%, #fffdf4 100%);}
.carte-spip-embed .route-hint{color: var(--brand-green-dark) !important;
            font-weight: 800;}
.carte-spip-embed .chip{background: #fff9d9;
            border-color: rgba(245, 210, 31, 0.42);}
.carte-spip-embed .chip:hover, .carte-spip-embed .chip:focus-visible, .carte-spip-embed .chip.is-active{background: var(--brand-yellow);
            color: #0d3d18;
            border-color: rgba(7, 85, 31, 0.34);
            box-shadow: 0 8px 20px rgba(7,85,31,0.16);}
.carte-spip-embed .stage-note{margin: 12px 0 0;
            padding: 12px 14px;
            border-radius: 16px;
            background: #f0f9e8;
            border: 1px solid rgba(20,138,46,0.18);
            color: #285437;
            font-size: 0.88rem;
            line-height: 1.55;}
.carte-spip-embed .stage-note strong{color: var(--brand-green-dark);}
.carte-spip-embed .leaflet-popup-content .popup-kicker{background: #fff7cc;
            color: #0d3d18;}
.carte-spip-embed .page-shell{width:100%;
            max-width:none;
            margin:0;
            padding:0;}
.carte-spip-embed .map-card{border-radius:0;
            border:0;
            box-shadow:none;
            background:#fff;}
.carte-spip-embed #map{min-height:620px;}
.carte-spip-embed .hero{border-top:0;}
@media (max-width:760px){.carte-spip-embed #map{min-height:520px;}}


/* Logo du site dans la barre de navigation SPIP */
.ct-brand.ct-brand-has-logo{
    min-width:auto;
    max-width:280px;
    align-items:center;
}
.ct-brand-logo{
    display:block;
    width:auto;
    max-width:240px;
    max-height:62px;
    object-fit:contain;
}
.ct-brand.ct-brand-has-logo .spip_logo{
    max-width:240px;
    max-height:62px;
    width:auto;
    height:auto;
    object-fit:contain;
}
@media (max-width:760px){
    .ct-brand.ct-brand-has-logo{max-width:190px;}
    .ct-brand-logo,
    .ct-brand.ct-brand-has-logo .spip_logo{max-width:180px;max-height:54px;}
}


/* ---------------- VIDÉOS / APERÇUS YOUTUBE ---------------- */
.ct-medias-block .ct-section-text{
    max-width:780px;
}
.ct-video-grid{
    align-items:stretch;
}
.ct-video{
    padding:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-height:100%;
    background:#fff;
}
.ct-video-img{
    position:relative;
    aspect-ratio:16/9;
    min-height:190px;
    overflow:hidden;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,223,49,.32), transparent 11rem),
        linear-gradient(135deg,#0d381b,#118c37);
}
.ct-video-img img,
.ct-video-thumb{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .45s ease, filter .45s ease;
}
.ct-video:hover .ct-video-thumb,
.ct-video:hover .ct-video-img img{
    transform:scale(1.045);
    filter:saturate(1.05) contrast(1.03);
}
.ct-video-placeholder{
    width:100%;
    height:100%;
    min-height:190px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:8px;
    color:#fff;
    text-align:center;
    background:
        linear-gradient(135deg,rgba(7,85,31,.92),rgba(20,138,46,.78)),
        radial-gradient(circle at 80% 10%,rgba(255,223,49,.33),transparent 12rem);
}
.ct-video-placeholder span{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:#ffdf31;
    color:#0d381b;
    font-size:24px;
    box-shadow:0 16px 34px rgba(0,0,0,.22);
}
.ct-video-placeholder small{
    color:rgba(255,255,255,.78);
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.ct-play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    z-index:3;
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:#0d381b;
    font-size:21px;
    line-height:1;
    padding-left:3px;
    box-shadow:0 18px 40px rgba(0,0,0,.24);
    transition:transform .25s ease, background .25s ease, color .25s ease;
}
.ct-video:hover .ct-play{
    transform:translate(-50%,-50%) scale(1.08);
    background:#ffdf31;
    color:#0d381b;
}
.ct-video-badge{
    position:absolute;
    left:12px;
    top:12px;
    z-index:4;
    padding:6px 10px;
    border-radius:999px;
    background:#ffdf31;
    color:#0d381b;
    border:1px solid rgba(13,61,24,.16);
    box-shadow:0 10px 22px rgba(0,0,0,.18);
    font-size:11px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.ct-video-badge[hidden]{
    display:none!important;
}
.ct-video-body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:18px 20px 21px;
}
.ct-video-body h3{
    margin-bottom:10px;
}
.ct-video-body p{
    margin-bottom:16px;
}
.ct-video-body .ct-link{
    margin-top:auto;
}
.has-youtube-preview .ct-video-img::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.22) 100%);
}

@media (max-width:760px){
    .ct-video-img,
    .ct-video-placeholder{
        min-height:180px;
    }
    .ct-play{
        width:52px;
        height:52px;
        font-size:19px;
    }
}


/* ==========================================================
   Correctif smartphone — bloc carte Caravane 2026
   Objectif : supprimer les marges excessives, éviter les débordements
   horizontaux et rendre la carte plus lisible sur petit écran.
   ========================================================== */
@media (max-width: 760px){
    .ct-map-2026{
        padding:0 0 24px;
    }
    .ct-map-2026 .ct-container{
        width:100%;
        max-width:100%;
        margin:0;
    }
    .ct-map-shell{
        border-left:0;
        border-right:0;
        border-radius:0;
        box-shadow:none;
    }
    .ct-map-head{
        align-items:flex-start;
        padding:18px 16px 14px;
    }
    .ct-map-head h2{
        font-size:clamp(28px,9vw,38px);
        line-height:1.02;
    }
    .ct-map-head p{
        font-size:14px;
        line-height:1.55;
    }
    .ct-map-legend-mini{
        display:grid;
        grid-template-columns:1fr 1fr;
        width:100%;
        min-width:0;
        justify-content:stretch;
        gap:8px;
    }
    .ct-map-chip{
        justify-content:flex-start;
        min-width:0;
        padding:7px 9px;
        font-size:11px;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .ct-map-frame-spip{
        overflow:hidden;
    }

    .carte-spip-embed{
        width:100%;
        max-width:100%;
        overflow:hidden;
    }
    .carte-spip-embed .page-shell{
        width:100%;
        max-width:100%;
        margin:0;
        padding:0;
        overflow:hidden;
    }
    .carte-spip-embed .map-card{
        width:100%;
        border-radius:0;
        border:0;
        box-shadow:none;
        overflow:hidden;
    }
    .carte-spip-embed .hero{
        grid-template-columns:1fr;
        padding:16px;
        gap:14px;
    }
    .carte-spip-embed h1{
        font-size:clamp(1.75rem,9.5vw,2.45rem);
        line-height:1.04;
        letter-spacing:-.035em;
    }
    .carte-spip-embed .lead{
        font-size:.92rem;
        line-height:1.58;
    }
    .carte-spip-embed .summary-row,
    .carte-spip-embed .visitor-guide,
    .carte-spip-embed .route-panel{
        padding-left:12px;
        padding-right:12px;
    }
    .carte-spip-embed .guide-grid{
        grid-template-columns:1fr;
        gap:10px;
    }
    .carte-spip-embed .route-panel{
        gap:12px;
    }
    .carte-spip-embed .route-card{
        padding:15px;
    }
    .carte-spip-embed .chips{
        display:flex;
        flex-wrap:nowrap;
        overflow-x:auto;
        gap:7px;
        padding-bottom:5px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .carte-spip-embed .chips::-webkit-scrollbar{
        display:none;
    }
    .carte-spip-embed .chip{
        flex:0 0 auto;
        white-space:nowrap;
        font-size:.76rem;
        padding:7px 9px;
    }
    .carte-spip-embed .stage-note{
        margin:0;
        padding:12px 14px;
        border-left:0;
        border-right:0;
        border-radius:0;
    }
    .carte-spip-embed .map-section{
        display:block;
        min-height:0;
    }
    .carte-spip-embed .map-wrap{
        padding:0;
        background:#fff;
        overflow:hidden;
        scroll-margin-top:82px;
    }
    .carte-spip-embed #map{
        display:block;
        width:100%;
        height:66vh;
        min-height:440px;
        max-height:610px;
        border-left:0;
        border-right:0;
        border-radius:0;
    }
    .carte-spip-embed .map-touch-toggle{
        left:12px;
        right:12px;
        bottom:14px;
        justify-content:center;
        z-index:950;
    }
    .carte-spip-embed .mobile-help{
        display:block;
        margin:10px 12px 0;
        padding:10px 12px;
    }
    .carte-spip-embed .side-panel{
        display:block;
        padding:14px 14px 18px;
    }
    .carte-spip-embed .legend-list{
        gap:6px;
    }
    .carte-spip-embed .legend-item{
        margin-left:0;
        padding:6px 0;
    }
    .carte-spip-embed .legend-list li{
        font-size:.76rem;
    }
    .carte-spip-embed .instruction-box{
        margin-top:10px;
        font-size:.78rem;
    }
    .carte-spip-embed .source-note{
        display:none;
    }
    .carte-spip-embed .leaflet-control-container .leaflet-top.leaflet-left{
        top:8px;
        left:8px;
    }
    .carte-spip-embed .leaflet-control-container .leaflet-top.leaflet-right{
        top:8px;
        right:8px;
    }
    .carte-spip-embed .leaflet-control-layers{
        max-width:210px;
        font-size:11px;
    }
    .carte-spip-embed .leaflet-popup-content{
        max-width:240px;
        font-size:.82rem;
    }
}

@media (max-width: 420px){
    .ct-map-head,
    .ct-map-fallback{
        padding-left:12px;
        padding-right:12px;
    }
    .ct-map-legend-mini{
        grid-template-columns:1fr;
    }
    .carte-spip-embed .hero-meta{
        grid-template-columns:1fr;
    }
    .carte-spip-embed #map{
        height:62vh;
        min-height:410px;
    }
    .carte-spip-embed .map-touch-toggle{
        left:10px;
        right:10px;
        bottom:12px;
    }
}

/* =========================================================
   Article SPIP 2026 — page article + cartes articles
   ========================================================= */
.ct-article-hero{
    position:relative;
    padding:46px 0 34px;
    overflow:hidden;
}
.ct-article-hero:before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        radial-gradient(circle at 10% 8%, rgba(255,223,49,.22), transparent 20rem),
        radial-gradient(circle at 90% 10%, rgba(47,116,74,.14), transparent 24rem),
        linear-gradient(180deg,#fffdf7 0%,#f7f3e6 100%);
}
.ct-breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:18px;
    color:var(--ct-muted);
    font-size:13px;
    font-weight:800;
}
.ct-breadcrumb a{color:var(--ct-green-800);}
.ct-breadcrumb span{opacity:.72;}
.ct-article-hero-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,.58fr);
    gap:34px;
    align-items:stretch;
}
.ct-article-kicker{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
    margin-bottom:16px;
}
.ct-article-rubrique,
.ct-article-date,
.ct-article-tag{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:0 11px;
    border-radius:999px;
    font-size:12px;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.ct-article-rubrique{
    color:#102419;
    background:#ffdf31;
    box-shadow:0 9px 20px rgba(255,223,49,.24);
}
.ct-article-date,
.ct-article-tag{
    color:var(--ct-green-900);
    background:rgba(255,255,255,.76);
    border:1px solid var(--ct-border);
}
.ct-article-title{
    margin:0;
    max-width:920px;
    color:var(--ct-green-950);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(38px,6.2vw,78px);
    line-height:.96;
    letter-spacing:-.06em;
}
.ct-article-intro{
    max-width:820px;
    margin:22px 0 0;
    color:#4f5d50;
    font-size:clamp(18px,2vw,22px);
    line-height:1.62;
}
.ct-article-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
    margin-top:24px;
    color:var(--ct-muted);
    font-size:14px;
    font-weight:800;
}
.ct-article-meta span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.ct-article-meta span:before{
    content:"";
    width:8px;
    height:8px;
    border-radius:999px;
    background:var(--ct-earth);
}
.ct-article-cover{
    position:relative;
    min-height:390px;
    margin:0;
    overflow:hidden;
    border-radius:var(--ct-radius-xl);
    background:linear-gradient(135deg,var(--ct-green-950),var(--ct-green-700));
    box-shadow:var(--ct-shadow);
}
.ct-article-cover:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 22%,rgba(16,36,25,.46) 100%);
    pointer-events:none;
}
.ct-article-cover img,
.ct-article-cover .spip_logo{
    width:100%;
    height:100%;
    min-height:390px;
    object-fit:cover;
}
.ct-article-cover-fallback{
    min-height:390px;
    display:grid;
    place-items:center;
    padding:34px;
    color:#fff;
    text-align:center;
    background:
        radial-gradient(circle at 75% 20%,rgba(255,223,49,.34),transparent 13rem),
        linear-gradient(135deg,#0d381b,#118c37);
}
.ct-article-cover-fallback strong{
    display:block;
    color:#ffdf31;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(42px,8vw,82px);
    line-height:.9;
    letter-spacing:-.06em;
}
.ct-article-cover-fallback span{
    display:block;
    max-width:300px;
    margin-top:12px;
    color:rgba(255,255,255,.84);
    font-weight:850;
}
.ct-article-main{padding:44px 0 54px;}
.ct-article-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:34px;
    align-items:start;
}
.ct-article-body{
    min-width:0;
    padding:clamp(24px,4vw,44px);
    border:1px solid var(--ct-border);
    border-radius:var(--ct-radius-xl);
    background:rgba(255,255,255,.88);
    box-shadow:0 18px 50px rgba(16,36,25,.08);
}
.ct-chapo{
    margin:0 0 26px;
    padding:20px 22px;
    border-left:5px solid #ffdf31;
    border-radius:18px;
    background:#fff9d9;
    color:#243a2a;
    font-size:1.12rem;
    line-height:1.72;
    font-weight:650;
}
.ct-article-texte{
    color:#26332a;
    font-size:1.07rem;
    line-height:1.82;
}
.ct-article-texte > *:first-child{margin-top:0;}
.ct-article-texte h2,
.ct-article-texte h3,
.ct-article-texte h4{
    color:var(--ct-green-950);
    font-family:Georgia,"Times New Roman",serif;
    letter-spacing:-.035em;
    line-height:1.08;
}
.ct-article-texte h2{margin:42px 0 16px;font-size:clamp(28px,4vw,42px);}
.ct-article-texte h3{margin:34px 0 13px;font-size:clamp(23px,3vw,31px);}
.ct-article-texte h4{margin:28px 0 10px;font-size:21px;}
.ct-article-texte p{margin:0 0 1.15em;}
.ct-article-texte a,
.ct-article-body a{
    color:var(--ct-green-800);
    font-weight:850;
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-thickness:1px;
}
.ct-article-texte ul,
.ct-article-texte ol{margin:0 0 1.25em 1.3em;padding:0;}
.ct-article-texte li{margin:.42em 0;}
.ct-article-texte blockquote{
    margin:30px 0;
    padding:22px 24px;
    border-left:6px solid var(--ct-green-700);
    border-radius:20px;
    background:linear-gradient(135deg,#f0f9e8,#fffdf1);
    color:var(--ct-green-950);
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.25rem;
    line-height:1.55;
}
.ct-article-body img,
.ct-article-body .spip_logo{
    max-width:100%;
    height:auto;
    border-radius:18px;
}
.ct-article-body figure{margin:28px 0;}
.ct-article-body figcaption,
.ct-article-body .spip_doc_titre,
.ct-article-body .spip_doc_descriptif{
    margin-top:8px;
    color:var(--ct-muted);
    font-size:.9rem;
    line-height:1.5;
}
.ct-article-body .spip_documents,
.ct-article-body .spip_documents_center,
.ct-article-body .spip_documents_left,
.ct-article-body .spip_documents_right{
    margin-top:24px;
    margin-bottom:24px;
}
.ct-article-body .spip_documents_center{text-align:center;}
.ct-article-body .spip_documents_left{float:left;margin-right:24px;max-width:45%;}
.ct-article-body .spip_documents_right{float:right;margin-left:24px;max-width:45%;}
.ct-article-body iframe,
.ct-article-body video,
.ct-article-body embed,
.ct-article-body object{
    max-width:100%;
    border:0;
    border-radius:20px;
    box-shadow:0 16px 35px rgba(16,36,25,.12);
}
.ct-article-body iframe[src*="youtube"],
.ct-article-body iframe[src*="youtu.be"],
.ct-article-body iframe[src*="vimeo"]{
    width:100%;
    aspect-ratio:16/9;
    height:auto;
    min-height:360px;
}
.ct-article-notes{
    clear:both;
    margin-top:34px;
    padding-top:22px;
    border-top:1px solid var(--ct-border);
    color:var(--ct-muted);
    font-size:.92rem;
}
.ct-article-documents{
    clear:both;
    margin-top:34px;
    padding-top:24px;
    border-top:1px solid var(--ct-border);
}
.ct-article-documents h2{
    margin:0 0 14px;
    color:var(--ct-green-950);
    font-size:1.05rem;
}
.ct-article-aside{
    display:grid;
    gap:16px;
    position:sticky;
    top:96px;
}
.ct-aside-card{
    padding:20px;
    border:1px solid var(--ct-border);
    border-radius:var(--ct-radius-lg);
    background:rgba(255,255,255,.86);
    box-shadow:0 14px 34px rgba(16,36,25,.07);
}
.ct-aside-card.is-green{
    color:#fff;
    background:linear-gradient(145deg,var(--ct-green-950),var(--ct-green-700));
    border-color:rgba(255,255,255,.16);
}
.ct-aside-card h3{
    margin:0 0 12px;
    color:var(--ct-green-950);
    font-size:1.02rem;
    letter-spacing:-.02em;
}
.ct-aside-card.is-green h3{color:#ffdf31;}
.ct-aside-card p{margin:0;color:var(--ct-muted);font-size:.92rem;line-height:1.55;}
.ct-aside-card.is-green p{color:rgba(255,255,255,.78);}
.ct-aside-list{
    display:grid;
    gap:10px;
    margin:0;
    padding:0;
    list-style:none;
}
.ct-aside-list a{
    display:block;
    padding:12px;
    border-radius:14px;
    background:#fffdf7;
    border:1px solid rgba(24,55,36,.10);
    color:var(--ct-green-950);
    text-decoration:none;
    font-weight:850;
    line-height:1.3;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.ct-aside-list a:hover{transform:translateX(3px);background:#fff;box-shadow:0 8px 18px rgba(16,36,25,.08);}
.ct-aside-list small{
    display:block;
    margin-top:5px;
    color:var(--ct-muted);
    font-size:12px;
    font-weight:800;
}
.ct-share-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.ct-share-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:0 12px;
    border-radius:999px;
    background:#ffdf31;
    color:#102419 !important;
    text-decoration:none !important;
    font-size:13px;
    font-weight:950;
}
.ct-article-related{padding:8px 0 58px;}
.ct-article-related-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.ct-article-tile{
    display:flex;
    flex-direction:column;
    min-height:280px;
    overflow:hidden;
    border:1px solid var(--ct-border);
    border-radius:var(--ct-radius-lg);
    background:#fff;
    box-shadow:0 12px 32px rgba(16,36,25,.08);
    text-decoration:none !important;
    transition:transform .22s ease,box-shadow .22s ease;
}
.ct-article-tile:hover{transform:translateY(-4px);box-shadow:var(--ct-shadow);}
.ct-article-tile-img{
    position:relative;
    height:160px;
    overflow:hidden;
    background:linear-gradient(135deg,var(--ct-green-950),var(--ct-green-700));
}
.ct-article-tile-img img,
.ct-article-tile-img .spip_logo{width:100%;height:100%;object-fit:cover;border-radius:0;}
.ct-article-tile-fallback{height:100%;display:grid;place-items:center;color:#ffdf31;font-size:34px;font-weight:950;}
.ct-article-tile-body{padding:17px;}
.ct-article-tile-date{display:block;margin-bottom:8px;color:var(--ct-earth);font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;}
.ct-article-tile h3{margin:0;color:var(--ct-green-950);font-size:1.08rem;line-height:1.23;}
.ct-article-tile p{margin:9px 0 0;color:var(--ct-muted);font-size:.9rem;line-height:1.5;}
@media (max-width:1020px){
    .ct-article-hero-grid,
    .ct-article-layout{grid-template-columns:1fr;}
    .ct-article-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr));}
    .ct-article-related-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
    .ct-article-hero{padding:28px 0 22px;}
    .ct-breadcrumb{font-size:12px;}
    .ct-article-title{font-size:clamp(34px,11vw,48px);}
    .ct-article-intro{font-size:1rem;line-height:1.6;}
    .ct-article-cover,
    .ct-article-cover img,
    .ct-article-cover .spip_logo,
    .ct-article-cover-fallback{min-height:270px;}
    .ct-article-main{padding:26px 0 36px;}
    .ct-article-body{padding:20px;border-radius:22px;}
    .ct-article-texte{font-size:1rem;line-height:1.72;}
    .ct-article-body .spip_documents_left,
    .ct-article-body .spip_documents_right{float:none;max-width:100%;margin-left:0;margin-right:0;}
    .ct-article-body iframe[src*="youtube"],
    .ct-article-body iframe[src*="youtu.be"],
    .ct-article-body iframe[src*="vimeo"]{min-height:210px;}
    .ct-article-aside,
    .ct-article-related-grid{grid-template-columns:1fr;}
}

/* ==================== FRONT PAGE 2026 — mise à jour extraite du sommaire ==================== */
:root{
            --ct-bg:#f4efe5;
            --ct-paper:#fffdf7;
            --ct-ink:#14261d;
            --ct-muted:#64736b;
            --ct-green-950:#082d1c;
            --ct-green-900:#0b3a24;
            --ct-green-800:#0f4c2f;
            --ct-green-700:#12663d;
            --ct-green-600:#16824b;
            --ct-green-100:#e8f3ea;
            --ct-gold:#f4bf2a;
            --ct-line:rgba(20,38,29,.12);
            --ct-shadow:0 18px 45px rgba(8,45,28,.12);
            --ct-shadow-dark:0 26px 60px rgba(8,45,28,.28);
            --ct-radius:18px;
            --ct-radius-lg:28px;
            --ct-serif:Georgia,"Times New Roman",serif;
            --ct-sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
        }

        html{scroll-behavior:smooth;}
        body{
            margin:0;
            color:var(--ct-ink);
            background:
                radial-gradient(circle at 18% 0%, rgba(22,130,75,.10), transparent 24rem),
                radial-gradient(circle at 86% 4%, rgba(244,191,42,.10), transparent 22rem),
                linear-gradient(180deg,#f7f3ea 0%,var(--ct-bg) 42%,#fbf8f0 100%);
            font-family:var(--ct-sans);
            font-size:16px;
            line-height:1.55;
        }

        a{color:inherit;text-decoration:none;}
        img{max-width:100%;height:auto;display:block;}
        .ct-shell{min-height:100vh;overflow:hidden;}
        .ct-container{width:min(100% - 36px,960px);margin-inline:auto;}

        .ct-nav{
            position:sticky;
            top:0;
            z-index:30;
            background:rgba(244,239,229,.78);
            backdrop-filter:blur(16px);
            border-bottom:1px solid rgba(20,38,29,.08);
        }
        .ct-nav-inner{
            min-height:70px;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:22px;
        }
        .ct-brand{display:flex;align-items:center;gap:10px;min-width:0;}
        .ct-brand-logo{max-width:145px;max-height:52px;object-fit:contain;}
        .ct-brand-mark{
            width:30px;height:30px;border-radius:10px;
            display:grid;place-items:center;
            color:#fff;background:linear-gradient(135deg,var(--ct-green-700),var(--ct-green-950));
            box-shadow:0 8px 22px rgba(8,45,28,.18);
        }
        .ct-brand-title{display:block;font-weight:800;font-size:.96rem;line-height:1.05;}
        .ct-brand small{display:block;color:var(--ct-muted);font-size:.74rem;margin-top:2px;}
        .ct-nav-links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
        .ct-nav-links a{
            display:inline-flex;align-items:center;justify-content:center;
            padding:8px 10px;border-radius:999px;
            color:#29372f;font-size:.82rem;font-weight:700;
        }
        .ct-nav-links a:hover{background:#fff;color:var(--ct-green-800);}
        .ct-nav-cta{
            color:#fff!important;
            background:var(--ct-green-900)!important;
            box-shadow:0 10px 22px rgba(8,45,28,.18);
        }

        .ct-block,.ct-2026-top,.ct-map-2026{padding:34px 0;}
        .ct-2026-top{padding-top:28px;}

        .ct-reveal{opacity:1;transform:none;}
        .js .ct-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease;}
        .js .ct-reveal.is-visible{opacity:1;transform:none;}

        .ct-2026-banner{
            position:relative;
            overflow:hidden;
            display:grid;
            grid-template-columns:minmax(0,1fr) 285px;
            gap:26px;
            min-height:360px;
            padding:44px;
            color:#fff;
            background:
                radial-gradient(circle at 88% 8%, rgba(244,191,42,.38) 0 66px, rgba(244,191,42,.12) 67px 120px, transparent 121px),
                linear-gradient(135deg,#0b3a24 0%,#137541 100%);
            border-radius:var(--ct-radius-lg);
            box-shadow:var(--ct-shadow-dark);
        }
        .ct-2026-banner:before{
            content:"";
            position:absolute;inset:auto -72px -110px auto;
            width:310px;height:310px;border-radius:50%;
            background:rgba(255,255,255,.07);
            border:42px solid rgba(244,191,42,.16);
        }
        .ct-2026-content{position:relative;z-index:2;align-self:center;}
        .ct-2026-kicker,.ct-label,.ct-eyebrow{
            display:inline-flex;align-items:center;gap:8px;
            color:var(--ct-gold);
            font-size:.78rem;
            font-weight:900;
            text-transform:uppercase;
            letter-spacing:.09em;
        }
        .ct-2026-kicker:before,.ct-label:before,.ct-eyebrow:before{
            content:"";width:8px;height:8px;border-radius:50%;background:var(--ct-gold);
            box-shadow:0 0 0 4px rgba(244,191,42,.18);
        }
        .ct-2026-title{
            margin:.35em 0 .2em;
            max-width:680px;
            font-family:var(--ct-serif);
            font-size:clamp(2.55rem,7vw,5.4rem);
            line-height:.88;
            letter-spacing:-.07em;
        }
        .ct-white{color:#fff;}
        .ct-2026-text{max-width:690px;margin:0;color:rgba(255,255,255,.88);font-size:1.06rem;}
        .ct-2026-pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;}
        .ct-2026-pill{
            display:inline-flex;padding:7px 11px;border-radius:999px;
            color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);
            font-size:.78rem;font-weight:800;
        }
        .ct-2026-card{
            position:relative;z-index:2;
            min-height:240px;border-radius:22px;
            background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.06));
            border:1px solid rgba(255,255,255,.22);
            box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
            overflow:hidden;
        }
        .ct-2026-card:before{
            content:"2026";
            position:absolute;left:22px;bottom:14px;
            color:rgba(255,255,255,.16);
            font-family:var(--ct-serif);font-size:4.6rem;font-weight:900;line-height:1;
        }
        .ct-2026-card:after{
            content:"FSM Cotonou";
            position:absolute;left:22px;top:22px;
            padding:8px 12px;border-radius:999px;
            color:#fff;background:rgba(8,45,28,.45);font-weight:900;font-size:.84rem;
        }

        .ct-map-shell,.ct-panel,.ct-card,.ct-cta{
            background:rgba(255,253,247,.94);
            border:1px solid rgba(20,38,29,.10);
            border-radius:var(--ct-radius);
            box-shadow:var(--ct-shadow);
        }
        .ct-map-shell{overflow:hidden;}
        .ct-map-head{
            display:grid;
            grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr);
            gap:24px;
            padding:28px 30px 18px;
        }
        .ct-map-head h2,.ct-section-title,.ct-card-title,.ct-hero h1,.ct-cta h2{
            margin:.1em 0 .2em;
            font-family:var(--ct-serif);
            color:var(--ct-ink);
            line-height:.98;
            letter-spacing:-.045em;
        }
        .ct-map-head h2,.ct-section-title{font-size:clamp(2rem,4vw,3.35rem);}
        .ct-map-head p,.ct-section-text,.ct-lead{margin:0;color:var(--ct-muted);max-width:720px;}
        .ct-map-legend-mini{display:flex;gap:8px;align-content:flex-start;justify-content:flex-end;flex-wrap:wrap;}
        .ct-map-chip{
            --chip-color:var(--ct-green-700);
            display:inline-flex;align-items:center;gap:6px;
            padding:7px 10px;border-radius:999px;background:#fff;border:1px solid rgba(20,38,29,.10);
            font-size:.75rem;font-weight:900;color:#304039;white-space:nowrap;
        }
        .ct-map-chip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--chip-color);}
        .ct-map-chip.is-dashed:before{border-radius:2px;background:transparent;border:2px dashed var(--chip-color);}

        .ct-axis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 30px 28px;}
        .ct-axis-card{
            background:linear-gradient(180deg,#103f28,#092d1c);
            color:#fff;border-radius:16px;padding:18px;min-height:138px;
            box-shadow:0 16px 28px rgba(8,45,28,.16);
        }
        .ct-axis-card h3{margin:0 0 8px;font-size:1rem;color:#fff;}
        .ct-axis-card p{margin:0;color:rgba(255,255,255,.78);font-size:.9rem;}
        .ct-axis-card strong{color:var(--ct-gold);}

        .ct-map-intro{
            display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:24px;
            padding:30px;
            color:#fff;
            background:linear-gradient(135deg,#0b3a24,#16824b);
        }
        .ct-map-intro h2{font-family:var(--ct-serif);font-size:clamp(2rem,4.4vw,3.4rem);line-height:.95;letter-spacing:-.05em;margin:6px 0 10px;color:#fff;}
        .ct-map-intro p{margin:0;color:rgba(255,255,255,.86);}
        .ct-map-notes{display:grid;gap:10px;align-content:center;}
        .ct-map-note{padding:13px 14px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:.82rem;font-weight:800;}
        .ct-map-frame{padding:18px;background:#fff;}
        .ct-map-frame-spip{min-height:390px;}
        .ct-map-fallback{
            display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
            padding:16px 20px;background:#edf7ee;color:#244235;font-size:.9rem;border-top:1px solid rgba(20,38,29,.08);
        }
        .ct-map-fallback a{font-weight:900;color:var(--ct-green-800);}

        .ct-route{background:linear-gradient(135deg,#103f28,#082d1c);border-radius:18px;padding:16px;margin-bottom:18px;}
        .ct-route-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
        .ct-route-step{
            display:block;min-height:70px;padding:14px;border-radius:12px;
            background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
            color:#fff;
        }
        .ct-route-step strong{display:block;font-size:.88rem;line-height:1.1;margin-bottom:5px;color:#fff;}
        .ct-route-step span{display:block;color:rgba(255,255,255,.70);font-size:.76rem;}
        .ct-route-step:hover{background:rgba(255,255,255,.14);transform:translateY(-1px);}

        .ct-panel{padding:30px;}
        .ct-two{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px;align-items:stretch;}
        .ct-card-title{font-size:clamp(1.8rem,3vw,2.65rem);}
        .ct-panel p,.ct-card p,.ct-cta p{color:var(--ct-muted);margin:.4rem 0 0;}
        .ct-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
        .ct-btn{
            display:inline-flex;align-items:center;justify-content:center;
            padding:11px 15px;border-radius:999px;font-weight:900;font-size:.88rem;
            border:1px solid transparent;
        }
        .ct-btn-primary{background:var(--ct-green-900);color:#fff;box-shadow:0 12px 24px rgba(8,45,28,.18);}
        .ct-btn-secondary{background:#fff;color:var(--ct-green-900);border-color:rgba(20,38,29,.12);}
        .ct-side-dark{background:linear-gradient(135deg,#0c3a24,#092d1c);border-radius:18px;color:#fff;padding:20px;}
        .ct-side-dark h3{margin:0 0 10px;color:#fff;}
        .ct-side-dark ul{margin:0;padding-left:18px;display:grid;gap:8px;}
        .ct-side-dark a{color:rgba(255,255,255,.88);font-weight:700;}

        .ct-section-head{margin-bottom:20px;}
        .ct-section-head.center{text-align:center;display:grid;justify-items:center;}
        .ct-section-title{max-width:780px;}
        .ct-grid-4,.ct-grid-3{display:grid;gap:16px;}
        .ct-grid-4{grid-template-columns:repeat(4,1fr);}
        .ct-grid-3{grid-template-columns:repeat(3,1fr);}
        .ct-card{padding:20px;transition:transform .25s ease,box-shadow .25s ease;}
        .ct-card:hover{transform:translateY(-3px);box-shadow:0 22px 48px rgba(8,45,28,.14);}
        .ct-card h3{margin:8px 0 6px;font-size:1rem;line-height:1.18;color:var(--ct-ink);}
        .ct-icon{width:36px;height:36px;border-radius:13px;display:grid;place-items:center;background:#fff4ce;color:var(--ct-green-900);font-weight:900;}
        .ct-link{display:inline-flex;margin-top:12px;color:var(--ct-green-800);font-weight:900;font-size:.88rem;}
        .ct-edition-tag,.ct-type,.ct-list-date{
            display:inline-flex;padding:5px 8px;border-radius:999px;
            background:#f1ead9;color:#805f05;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;
        }

        .ct-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
        .ct-mini-list{display:grid;gap:10px;margin-top:16px;}
        .ct-mini-line{display:flex;gap:10px;align-items:flex-start;color:var(--ct-muted);}
        .ct-mini-line span{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--ct-green-100);color:var(--ct-green-800);font-weight:900;font-size:.78rem;}

        .ct-news{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:stretch;}
        .ct-feature{min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(135deg,#082d1c,#0f4c2f);color:#fff;}
        .ct-feature small{color:var(--ct-gold);font-weight:900;text-transform:uppercase;}
        .ct-feature h3{color:#fff;font-family:var(--ct-serif);font-size:1.65rem;line-height:1.02;letter-spacing:-.03em;}
        .ct-feature p{color:rgba(255,255,255,.78);}
        .ct-feature .ct-link{color:#fff;}
        .ct-list{display:grid;gap:10px;}
        .ct-list-item{display:block;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid rgba(20,38,29,.10);box-shadow:0 10px 22px rgba(8,45,28,.05);}
        .ct-list-item strong{display:block;margin-top:7px;font-size:.92rem;line-height:1.18;}
        .ct-doc{display:block;min-height:160px;}

        .ct-video{display:block;padding:0;overflow:hidden;}
        .ct-video-img{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#0b3a24,#16824b);display:grid;place-items:center;overflow:hidden;}
        .ct-video-thumb{width:100%;height:100%;object-fit:cover;}
        .ct-video-placeholder{color:#fff;text-align:center;font-weight:900;display:grid;gap:6px;justify-items:center;}
        .ct-video-placeholder span,.ct-play{
            width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
            background:var(--ct-gold);color:var(--ct-green-950);box-shadow:0 10px 25px rgba(0,0,0,.18);
        }
        .ct-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
        .ct-video-badge{position:absolute;right:10px;top:10px;background:rgba(8,45,28,.88);color:#fff;border-radius:999px;padding:5px 8px;font-size:.7rem;font-weight:900;}
        .ct-video-body{padding:16px 18px 18px;}

        .ct-cta{padding:28px;background:linear-gradient(135deg,#0b3a24,#082d1c);color:#fff;}
        .ct-cta h2{color:#fff;}
        .ct-cta p{color:rgba(255,255,255,.78);}
        .ct-cta .ct-btn-secondary{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.20);}

        .ct-footer{padding:28px 0 40px;color:#5d6a63;font-size:.88rem;}
        .ct-footer-inner{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(20,38,29,.10);padding-top:18px;}
        .ct-footer strong{display:block;color:var(--ct-ink);}
        .ct-footer span{display:block;}

        @media (max-width:900px){
            .ct-2026-banner,.ct-map-head,.ct-map-intro,.ct-two,.ct-news{grid-template-columns:1fr;}
            .ct-2026-card{display:none;}
            .ct-axis-grid,.ct-grid-4{grid-template-columns:repeat(2,1fr);}
            .ct-route-grid{grid-template-columns:repeat(2,1fr);}
            .ct-map-legend-mini{justify-content:flex-start;}
        }
        @media (max-width:640px){
            .ct-container{width:min(100% - 24px,960px);}
            .ct-nav-inner{align-items:flex-start;flex-direction:column;padding:12px 0;}
            .ct-nav-links{justify-content:flex-start;}
            .ct-2026-banner{padding:28px;min-height:0;}
            .ct-axis-grid,.ct-grid-4,.ct-grid-3,.ct-why-grid{grid-template-columns:1fr;}
            .ct-map-head,.ct-map-intro,.ct-panel{padding:22px;}
            .ct-map-frame{padding:12px;}
        }
