/* =========================================================
   CRASC — COOPÉRATION
   Identité visuelle commune : page mère + listes
   ========================================================= */

:root{
    --coop-navy:#073b66;
    --coop-blue:#075b93;
    --coop-blue-2:#0878b8;
    --coop-cyan:#45b8e8;
    --coop-ink:#102f52;
    --coop-text:#425f7d;
    --coop-muted:#73869a;
    --coop-line:#dce6ef;
    --coop-line-soft:#eaf0f5;
    --coop-soft:#f4f8fb;
    --coop-soft-blue:#eef7fc;
    --coop-white:#fff;
    --coop-success-bg:#dcf5e3;
    --coop-success:#23814e;
    --coop-ended-bg:#eef1f4;
    --coop-ended:#647484;
    --coop-shadow:0 10px 30px rgba(9,51,88,.08);
    --coop-radius:10px;
}

.coop-site{
    background:#fff;
    color:var(--coop-ink);
    font-family:inherit;
    overflow:hidden;
}
.coop-site *{box-sizing:border-box}
.coop-site a{text-decoration:none}
.coop-shell{
    width:min(1200px,calc(100% - 48px));
    margin-inline:auto;
}
.coop-section{padding:46px 0}
.coop-meta,.coop-kicker{color:var(--coop-muted)}
.coop-empty{
    margin:25px 0 45px;
    padding:22px;
    border:1px dashed var(--coop-line);
    border-radius:var(--coop-radius);
    background:var(--coop-soft);
    color:var(--coop-muted);
}

/* ---------- Page mère : HERO ---------- */
.coop-home-hero{
    position:relative;
    min-height:390px;
    display:flex;
    align-items:stretch;
    color:#fff;
    background:
        linear-gradient(90deg,rgba(4,53,88,.98) 0%,rgba(4,60,98,.94) 42%,rgba(5,65,104,.62) 68%,rgba(5,56,91,.52) 100%),
        radial-gradient(circle at 75% 30%,rgba(82,174,224,.25),transparent 30%),
        linear-gradient(135deg,#0a5d8b,#173f63);
}
.coop-home-hero::before{
    content:"";
    position:absolute;
    inset:0;
    opacity:.21;
    background-image:
        linear-gradient(120deg,transparent 50%,rgba(255,255,255,.11) 50%),
        radial-gradient(circle at 83% 26%,rgba(255,255,255,.18) 0 2px,transparent 3px);
    background-size:100% 100%,24px 24px;
}
.coop-home-hero-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,rgba(2,45,77,.2),transparent 70%),
        linear-gradient(0deg,rgba(3,47,78,.12),transparent 60%);
}
.coop-home-hero-inner{
    position:relative;
    z-index:1;
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);
    gap:80px;
    align-items:center;
    padding:62px 0;
}
.coop-home-hero-copy{max-width:675px}
.coop-home-hero h1{
    margin:0 0 10px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(3.2rem,5vw,5.1rem);
    line-height:.96;
    letter-spacing:-.03em;
    font-weight:700;
}
.coop-home-hero h2{
    max-width:590px;
    margin:0 0 18px;
    color:#fff;
    font-size:clamp(1.35rem,2.2vw,1.85rem);
    line-height:1.28;
    font-weight:750;
}
.coop-home-hero-copy>p{
    max-width:650px;
    margin:0;
    font-size:1.04rem;
    line-height:1.7;
    color:rgba(255,255,255,.92);
}
.coop-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:48px;
    padding:0 26px;
    border-radius:999px;
    font-weight:800;
    transition:.2s ease;
}
.coop-btn-light{
    margin-top:25px;
    background:#fff;
    color:var(--coop-navy);
    box-shadow:0 7px 24px rgba(0,0,0,.13);
}
.coop-btn-light:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.coop-home-quote{
    position:relative;
    margin:0;
    padding:35px 35px 30px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(4,55,90,.46);
    backdrop-filter:blur(4px);
    box-shadow:0 15px 45px rgba(0,0,0,.11);
}
.coop-home-quote p{
    margin:4px 0 24px;
    font-size:1.08rem;
    line-height:1.6;
    color:#fff;
}
.coop-quote-mark{
    display:block;
    height:30px;
    font-family:Georgia,serif;
    font-size:3.3rem;
    line-height:1;
}
.coop-quote-line{
    display:block;
    width:90px;
    height:2px;
    background:rgba(255,255,255,.88);
}

/* ---------- KPI ---------- */
.coop-kpi-strip{
    position:relative;
    z-index:3;
    background:#fff;
    border-bottom:1px solid var(--coop-line-soft);
    box-shadow:0 7px 22px rgba(23,64,99,.04);
}
.coop-kpi-grid{display:grid;grid-template-columns:repeat(6,1fr)}
.coop-kpi-grid>a{
    position:relative;
    min-height:126px;
    padding:18px 13px 16px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:var(--coop-ink);
    border-right:1px solid var(--coop-line-soft);
    transition:.2s ease;
}
.coop-kpi-grid>a:first-child{border-left:1px solid var(--coop-line-soft)}
.coop-kpi-grid>a:hover{background:var(--coop-soft-blue);transform:translateY(-3px)}
.coop-kpi-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    height:34px;
    margin-bottom:5px;
    color:#0788ca;
    font-size:1.9rem;
}
.coop-kpi-grid strong{
    display:block;
    margin:2px 0 1px;
    color:#073f70;
    font-size:1.75rem;
    line-height:1;
}
.coop-kpi-grid>a>span:last-child{
    max-width:150px;
    margin-top:5px;
    font-size:.83rem;
    line-height:1.25;
    color:#294b6e;
}

/* ---------- Domaines + carte ---------- */
.coop-domains-section{
    padding:48px 0 50px;
    background:linear-gradient(90deg,#fff 0%,#fbfdff 55%,#f5faff 100%);
}
.coop-domains-layout{
    display:grid;
    grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
    gap:65px;
    align-items:center;
}
.coop-section-eyebrow{
    display:block;
    margin-bottom:8px;
    color:#1b7db2;
    font-size:.74rem;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.coop-domains-copy h2,.coop-section-head h2{
    margin:0;
    font-family:Georgia,"Times New Roman",serif;
    color:#073d6b;
    font-size:clamp(1.9rem,3vw,2.45rem);
    line-height:1.15;
}
.coop-title-rule{
    display:block;
    width:46px;
    height:3px;
    margin:15px 0 20px;
    background:#1685c4;
}
.coop-domains-copy>p{
    max-width:570px;
    margin:0;
    color:var(--coop-text);
    line-height:1.7;
}
.coop-domain-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-top:26px;
}
.coop-domain-item{
    min-height:112px;
    padding:18px 12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:12px;
    text-align:center;
    border:1px solid var(--coop-line);
    border-radius:8px;
    background:#fff;
    box-shadow:0 5px 16px rgba(12,64,105,.04);
}
.coop-domain-item i{font-size:1.8rem;color:#0a83bf}
.coop-domain-item span{font-size:.82rem;line-height:1.25;color:#16466f}
.coop-world-card{
    position:relative;
    min-height:325px;
    padding:15px 10px 15px 0;
}
.coop-world-copy{
    position:relative;
    z-index:2;
    max-width:390px;
}
.coop-world-copy h3{
    margin:0 0 5px;
    color:#073d6b;
    font-size:1.28rem;
}
.coop-world-copy p{
    margin:0;
    color:var(--coop-text);
    font-size:.9rem;
    line-height:1.5;
}
.coop-world-map{
    margin-top:-4px;
    color:#9ecfe9;
}
.coop-world-map svg{display:block;width:100%;height:auto}
.coop-world-map .map-shape path{
    fill:url(#coopDots);
    stroke:#8fc9e7;
    stroke-width:.8;
}
.coop-world-map .map-pin circle{
    fill:#0687ce;
    stroke:#fff;
    stroke-width:2;
    filter:drop-shadow(0 2px 3px rgba(0,92,145,.25));
}
.coop-outline-link{
    position:absolute;
    right:0;
    bottom:0;
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:10px 18px;
    border:1px solid #1080bc;
    border-radius:999px;
    color:#075b93;
    font-size:.82rem;
    font-weight:800;
    background:#fff;
}

/* ---------- Actualités ---------- */
.coop-news-section{
    padding:44px 0 48px;
    border-top:1px solid var(--coop-line-soft);
    background:#fff;
}
.coop-section-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:20px;
}
.coop-section-head>a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#075c96;
    font-size:.84rem;
    font-weight:800;
}
.coop-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.coop-news-card{
    overflow:hidden;
    border:1px solid var(--coop-line);
    border-radius:8px;
    background:#fff;
    box-shadow:0 7px 20px rgba(10,54,91,.07);
    transition:.2s ease;
}
.coop-news-card:hover{transform:translateY(-4px);box-shadow:0 13px 28px rgba(10,54,91,.11)}
.coop-news-visual{
    height:175px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:rgba(255,255,255,.95);
    font-size:3.1rem;
    background:
        linear-gradient(135deg,rgba(3,70,112,.8),rgba(20,137,195,.4)),
        linear-gradient(145deg,#0c679a,#91c6df);
}
.coop-news-visual-2{background:linear-gradient(135deg,#526b76,#bdd1d8)}
.coop-news-visual-3{background:linear-gradient(135deg,#3f6076,#a8c7d8)}
.coop-news-content{padding:15px 17px 18px}
.coop-news-meta{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:9px;
    color:#8090a0;
    font-size:.74rem;
}
.coop-news-kind{color:#075c96;font-weight:800}
.coop-news-content h3{
    margin:0 0 8px;
    color:#0c3d69;
    font-size:1.02rem;
    line-height:1.35;
}
.coop-news-content p{
    margin:0 0 14px;
    color:#64798e;
    font-size:.84rem;
    line-height:1.52;
}
.coop-news-content>a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#075c96;
    font-size:.8rem;
    font-weight:800;
}

/* ---------- Partenaires ---------- */
.coop-partners-section{
    padding:34px 0 45px;
    background:#fbfdff;
    border-top:1px solid var(--coop-line-soft);
}
.coop-logo-line{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    border:1px solid var(--coop-line);
    border-radius:8px;
    overflow:hidden;
    background:#fff;
}
.coop-logo-line>a{
    min-height:110px;
    padding:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-right:1px solid var(--coop-line-soft);
    color:#173f66;
    text-align:center;
}
.coop-logo-line>a:last-child{border-right:0}
.coop-logo-line img{max-width:118px;max-height:68px;object-fit:contain}
.coop-partner-fallback{font-size:.8rem;font-weight:800;line-height:1.35}

/* ---------- CTA ---------- */
.coop-contact-band{
    position:relative;
    overflow:hidden;
    background:linear-gradient(90deg,#147c9f 0%,#08668f 40%,#073d68 100%);
    color:#fff;
}
.coop-contact-band::after{
    content:"";
    position:absolute;
    inset:0 0 0 52%;
    opacity:.11;
    background:
        radial-gradient(circle at 20% 50%,#fff 0 2px,transparent 3px) 0 0/23px 23px,
        linear-gradient(135deg,transparent 45%,#fff 46% 47%,transparent 48%);
}
.coop-contact-inner{
    position:relative;
    z-index:1;
    min-height:128px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
    padding:25px 0;
}
.coop-contact-inner h2{
    margin:0 0 6px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.55rem;
}
.coop-contact-inner p{margin:0;color:rgba(255,255,255,.88);font-size:.9rem}
.coop-contact-inner .coop-btn{margin:0;min-width:190px}

/* =========================================================
   PAGES INTERNES — héros, outils, listes
   ========================================================= */
.coop-list-hero,.coop-hero.coop-hero-small{
    position:relative;
    overflow:hidden;
    padding:38px 0 34px;
    color:#fff;
    background:
        linear-gradient(90deg,rgba(5,59,96,.98),rgba(7,99,144,.88)),
        linear-gradient(135deg,#073b66,#0d7ab1);
}
.coop-list-hero::after,.coop-hero.coop-hero-small::after{
    content:"";
    position:absolute;
    right:-100px;
    top:-120px;
    width:440px;
    height:440px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.025);
}
.coop-list-hero>.coop-shell,.coop-hero.coop-hero-small>.coop-shell{position:relative;z-index:1}
.coop-list-hero p,.coop-kicker{margin:0 0 7px;color:rgba(255,255,255,.75);font-size:.8rem;font-weight:700;letter-spacing:.03em}
.coop-list-hero h1,.coop-hero.coop-hero-small h1{
    margin:0;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.08;
}
.coop-list-hero span,.coop-hero.coop-hero-small .coop-lead{display:block;margin-top:8px;color:rgba(255,255,255,.88)}
.coop-back{
    display:inline-flex;
    margin-bottom:14px;
    color:#fff!important;
    font-size:.85rem;
    font-weight:700;
}

.coop-toolbar,.coop-search-bar,.coop-live-search{
    display:flex;
    align-items:center;
    gap:10px;
    margin:26px 0 24px;
}
.coop-search-bar,.coop-live-search{
    max-width:620px;
    overflow:hidden;
    border:1px solid #cfdce7;
    border-radius:8px;
    background:#fff;
    box-shadow:0 3px 12px rgba(11,56,92,.04);
}
.coop-search-bar i{padding-left:14px;color:#7a90a4}
.coop-search-bar input,.coop-live-search input{
    flex:1;
    min-width:0;
    border:0;
    outline:0;
    padding:12px 14px;
    font:inherit;
    color:var(--coop-ink);
}
.coop-search-bar button,.coop-toolbar button{
    border:0;
    background:var(--coop-navy);
    color:#fff;
    padding:12px 20px;
    font-weight:800;
    cursor:pointer;
}

/* Partenaires */
.coop-partner-list-section{padding-bottom:50px}
.coop-partner-grid-v5{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}
.coop-partner-card-v5{
    min-height:175px;
    padding:18px;
    display:flex;
    gap:15px;
    border:1px solid var(--coop-line);
    border-radius:var(--coop-radius);
    background:#fff;
    box-shadow:0 5px 18px rgba(10,55,92,.05);
    transition:.2s ease;
}
.coop-partner-card-v5:hover{transform:translateY(-3px);box-shadow:var(--coop-shadow)}
.coop-partner-logo-v5{width:70px;flex:0 0 70px}
.coop-partner-logo-v5 img{width:70px;height:70px;object-fit:contain}
.coop-partner-card-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.coop-partner-card-body h2{margin:0 0 7px;color:#103f6b;font-size:1.02rem;line-height:1.35}
.coop-partner-type{margin:0;color:#71869a;font-size:.8rem}
.coop-partner-card-body>a{margin-top:auto;padding-top:16px;color:#075c96;font-weight:800;font-size:.82rem}

/* Conventions */
.coop-conv-layout{
    display:grid;
    grid-template-columns:245px minmax(0,1fr);
    gap:28px;
    padding:34px 0 54px;
}
.coop-conv-filters{
    align-self:start;
    position:sticky;
    top:22px;
    padding:20px;
    border:1px solid var(--coop-line);
    border-radius:10px;
    background:#f5f9fc;
}
.coop-conv-filters h2{margin:0 0 18px;color:#0a4877;font-size:1.1rem}
.coop-conv-filters label{display:block;margin:13px 0 6px;color:#385b79;font-size:.76rem;font-weight:800}
.coop-conv-filters input,.coop-conv-filters select{
    width:100%;
    padding:10px;
    border:1px solid #cfdce7;
    border-radius:6px;
    background:#fff;
    font:inherit;
    color:#284e70;
}
.coop-conv-filters button{
    width:100%;
    margin-top:18px;
    padding:11px;
    border:0;
    border-radius:6px;
    background:#084d7d;
    color:#fff;
    font-weight:800;
}
.coop-reset{display:block;margin-top:12px;text-align:center;color:#0c659d;font-size:.78rem}
.coop-conv-results-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.coop-conv-results-head h2{margin:0;font-family:Georgia,serif;font-size:2rem;color:#083f6f}
.coop-conv-results-head span{color:#778a9b;font-size:.8rem}
.coop-conv-list{display:grid;gap:12px}
.coop-conv-card{
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    overflow:hidden;
    border:1px solid var(--coop-line);
    border-radius:9px;
    background:#fff;
    box-shadow:0 4px 14px rgba(10,55,92,.055);
}
.coop-conv-icon{display:flex;align-items:center;justify-content:center;background:#eef6fb;color:#2f7fb0;font-size:2rem}
.coop-conv-body{padding:17px 19px 16px}
.coop-conv-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.coop-conv-title-row h3{margin:0;color:#0b4c80;font-size:1.04rem;line-height:1.35}
.coop-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 11px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}
.coop-badge.is-active{background:var(--coop-success-bg);color:var(--coop-success)}
.coop-badge.is-finished{background:var(--coop-ended-bg);color:var(--coop-ended)}
.coop-conv-partners,.coop-conv-period{margin:8px 0;color:#62778d;font-size:.82rem;line-height:1.4}
.coop-conv-object{margin:9px 0 12px;color:#556d84;font-size:.84rem;line-height:1.52}
.coop-conv-body>a{float:right;color:#075c96;font-size:.82rem;font-weight:800}

/* Projets / manifestations / mobilités */
.coop-list-cards{display:grid;gap:14px;margin-bottom:50px}
.coop-row-card{
    display:grid;
    grid-template-columns:100px minmax(0,1fr);
    overflow:hidden;
    border:1px solid var(--coop-line);
    border-radius:10px;
    background:#fff;
    box-shadow:0 4px 15px rgba(10,55,92,.05);
}
.coop-row-year{
    min-height:160px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:14px;
    color:#0b689e;
    background:#eef6fb;
    font-size:1.2rem;
    font-weight:800;
}
.coop-row-body{padding:18px 20px}
.coop-row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.coop-row-top h2,.coop-row-top h3{margin:0;color:#0b4778;font-size:1.08rem;line-height:1.35}
.coop-partners-line{margin:10px 0;color:#647b90;font-size:.84rem;line-height:1.5}
.coop-card-link{display:inline-flex;margin-top:9px;color:#075c96;font-size:.82rem;font-weight:800}

/* Helpers utilisés ailleurs */
.coop-info-card{border:1px solid var(--coop-line);border-radius:10px;background:#fff;box-shadow:0 5px 18px rgba(10,55,92,.05)}
.coop-richtext{color:#425e79;line-height:1.75}
.coop-partner-chips{display:flex;flex-wrap:wrap;gap:9px}
.coop-partner-chips a,.coop-partner-chips span{padding:8px 11px;border-radius:999px;background:#eef6fb;color:#175e8d;font-size:.78rem;font-weight:700}
