:root{
    --vert:#0F7A3D;
    --vert-dark:#0B5C2D;
    --orange:#F58220;
    --blanc:#FFFFFF;
    --gris-clair:#F5F6F8;
    --gris-fonce:#333333;
    --radius:16px;
    --shadow: 0 4px 20px rgba(15,122,61,0.08);
  }
  *{box-sizing:border-box;}
  body{margin:0;font-family:'Inter',sans-serif;color:var(--gris-fonce);background:var(--blanc);}
  h1,h2,h3,.font-display{font-family:'Poppins',sans-serif;font-weight:700;}
  a{text-decoration:none;color:inherit;}
  img{max-width:100%;display:block;}
  .container{max-width:1240px;margin:0 auto;padding:0 24px;}
  .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:10px;font-weight:600;font-size:14px;transition:.25s;border:none;cursor:pointer;}
  .btn-orange{background:var(--orange);color:#fff;}
  .btn-orange:hover{background:#d96f14;transform:translateY(-2px);}
  .btn-vert{background:var(--vert);color:#fff;}
  .btn-vert:hover{background:var(--vert-dark);transform:translateY(-2px);}
  .btn-outline{background:#fff;color:var(--gris-fonce);border:1px solid #e2e4e8;}
  .btn-outline:hover{border-color:var(--vert);color:var(--vert);}
  .card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);transition:.25s;}
  .card:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(15,122,61,0.14);}
  .eyebrow{color:var(--vert);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;}
  .skip-link{position:absolute;left:-999px;top:0;background:var(--vert);color:#fff;padding:10px 16px;z-index:100;}
  .skip-link:focus{left:8px;top:8px;}
  :focus-visible{outline:3px solid var(--orange);outline-offset:2px;}

  /* Top identity band (armoiries + nom du ministère + réseaux sociaux) */
  .id-band{
    position:relative;
    background:
      linear-gradient(100deg, var(--vert-dark) 0%, var(--vert) 42%, var(--vert) 58%, #fff 58%, #fff 100%);
    overflow:hidden;
  }
  .id-band::before{
    content:"";position:absolute;inset:0;width:62%;
    background-image:
      radial-gradient(circle at 30% 20%, rgba(255,255,255,.08) 0, transparent 45%),
      repeating-linear-gradient(115deg, rgba(255,255,255,.05) 0 2px, transparent 2px 26px);
    pointer-events:none;
  }
  .id-band-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;}
  .id-left{display:flex;align-items:center;gap:16px;}
  .id-left img.armoirie{width:64px;height:auto;flex-shrink:0;}
  .id-left .ministere-nom{color:#fff;}
  .id-left .ministere-nom .titre{font-family:'Poppins',sans-serif;font-weight:700;font-size:17px;line-height:1.25;text-transform:uppercase;}
  .id-left .ministere-nom .devise{font-size:11.5px;color:#cfe9d8;letter-spacing:.05em;margin-top:4px;}
  .id-right{display:flex;align-items:center;gap:10px;padding-right:4px;}
  .id-social{width:38px;height:38px;border-radius:8px;background:var(--gris-clair);display:flex;align-items:center;justify-content:center;color:var(--gris-fonce);font-size:15px;transition:.2s;}
  .id-social:hover{background:var(--vert);color:#fff;transform:translateY(-2px);}

  /* Header / navigation bar */
  header.main{position:sticky;top:0;z-index:50;background:var(--orange);box-shadow:0 2px 12px rgba(0,0,0,0.12);}
  .nav-desktop{display:flex;gap:2px;align-items:stretch;}
  .nav-link{font-weight:700;font-size:13.5px;color:#fff;padding:16px 16px;border-bottom:3px solid transparent;display:flex;align-items:center;gap:5px;white-space:nowrap;}
  .nav-link .caret{font-size:9px;opacity:.85;}
  .nav-link:hover, .nav-link.active{background:rgba(0,0,0,.12);border-bottom-color:var(--vert-dark);}
  .nav-search-box{width:52px;background:var(--vert);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex-shrink:0;cursor:pointer;transition:.2s;}
  .nav-search-box:hover{background:var(--vert-dark);}

  @media (max-width:960px){
    .id-band-inner{padding:10px 16px;}
    .id-left img.armoirie{width:46px;}
    .id-left .ministere-nom .titre{font-size:13px;}
    .id-left .ministere-nom .devise{font-size:9.5px;}
    .id-right{display:none;}
  }

  /* HERO — split 70% slider / 30% bloc institutionnel fixe */
  .hero-split{display:flex;align-items:stretch;min-height:560px;background:var(--gris-clair);}
  .hero-slider-col{flex:0 0 70%;position:relative;overflow:hidden;}
  .hero-minister-col{flex:0 0 30%;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:var(--gris-clair);}

  /* Swiper slides */
  .hero-slider-col .swiper{height:560px;}
  .hero-slide{position:relative;height:100%;color:#fff;display:flex;align-items:center;}
  .hero-slide img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .hero-slide::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg, rgba(11,54,26,.90) 15%, rgba(11,54,26,.45) 55%, rgba(11,54,26,.12));z-index:1;}
  .hero-slide-content{position:relative;z-index:2;padding:0 48px;max-width:600px;}
  .hero-slide-content .eyebrow-light{color:#ffd9ad;font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;display:block;}
  .hero-slide-content h1{font-size:38px;line-height:1.16;margin:0 0 16px;}
  .hero-slide-content p{font-size:16px;opacity:.92;margin-bottom:26px;line-height:1.5;}

  /* Swiper nav / pagination overrides */
  .hero-slider-col .swiper-button-next, .hero-slider-col .swiper-button-prev{
    color:#fff;background:rgba(0,0,0,.28);width:44px;height:44px;border-radius:50%;backdrop-filter:blur(4px);
  }
  .hero-slider-col .swiper-button-next:after, .hero-slider-col .swiper-button-prev:after{font-size:16px;font-weight:700;}
  .hero-slider-col .swiper-pagination-bullet{background:#fff;opacity:.55;width:9px;height:9px;}
  .hero-slider-col .swiper-pagination-bullet-active{opacity:1;background:var(--orange);width:22px;border-radius:5px;}

  /* Institutional fixed card */
  .minister-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;text-align:center;max-width:280px;}
  .minister-card img.photo{width:112px;height:112px;object-fit:cover;object-position:top;border-radius:50%;margin:0 auto 16px;border:4px solid var(--gris-clair);box-shadow:0 4px 14px rgba(0,0,0,.1);}
  .minister-card .nom{font-family:'Poppins';font-weight:700;font-size:16px;color:var(--vert-dark);margin-bottom:2px;}
  .minister-card .fonction{font-size:12.5px;color:#777;margin-bottom:14px;line-height:1.4;}
  .minister-card .texte{font-size:13.5px;color:var(--gris-fonce);line-height:1.55;margin-bottom:18px;}

  @media (max-width:960px){
    .hero-split{flex-direction:column;min-height:auto;}
    .hero-slider-col, .hero-minister-col{flex:1 1 auto;width:100%;}
    .hero-slider-col .swiper{height:420px;}
    .hero-slide-content{padding:0 26px;}
    .hero-slide-content h1{font-size:26px;}
    .hero-minister-col{padding:28px 20px;}
    .minister-card{max-width:100%;}
  }

  /* Sections spacing */
  .section{padding:64px 0;}
  .section-alt{background:var(--gris-clair);}

  /* quick access */
  .qa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .qa-card{padding:28px 18px;text-align:center;}
  .qa-icon{width:56px;height:56px;border-radius:14px;background:#EAF6EE;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--vert);}

  /* stats */
  .stats-band{background:linear-gradient(90deg,#FFF3E8,#F5F6F8);border-radius:var(--radius);padding:36px;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
  .stat-num{font-family:'Poppins',sans-serif;font-weight:800;font-size:34px;color:var(--vert-dark);}

  /* news */
  .news-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;}
  .news-side{display:grid;gap:16px;}
  .news-tile{position:relative;border-radius:var(--radius);overflow:hidden;min-height:340px;}
  .news-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .news-tile .overlay{position:absolute;inset:0;background:linear-gradient(0deg, rgba(0,0,0,.75), rgba(0,0,0,0));display:flex;align-items:flex-end;padding:22px;color:#fff;z-index:2;}
  .news-mini{display:flex;gap:14px;background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow);}
  .news-mini img{width:88px;height:70px;object-fit:cover;border-radius:8px;flex-shrink:0;}

  /* minister */
  .minister{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
  .minister-text{background:var(--vert-dark);color:#fff;padding:48px;position:relative;}
  .minister-text::before{content:"“";font-family:Georgia,serif;font-size:110px;color:var(--orange);position:absolute;top:-6px;left:20px;opacity:.5;}

  /* Section Ministre — onglets + vignette latérale */
  .ministre-section{display:grid;grid-template-columns:260px 1fr;gap:36px;}
  .ministre-vignette{text-align:center;}
  .ministre-vignette img{width:100%;max-width:230px;border-radius:var(--radius);box-shadow:var(--shadow);margin:0 auto 16px;object-fit:cover;aspect-ratio:3/4;}
  .ministre-vignette .nom{font-family:Poppins;font-weight:700;color:var(--vert-dark);font-size:16px;}
  .ministre-vignette .fonction{font-size:12.5px;color:#777;margin-top:4px;line-height:1.4;}
  .tabs-nav{display:flex;flex-wrap:wrap;gap:8px;border-bottom:2px solid #eee;margin-bottom:24px;}
  .tab-btn{background:none;border:none;cursor:pointer;font-family:Inter;font-weight:600;font-size:14px;padding:12px 18px;color:#777;border-bottom:3px solid transparent;margin-bottom:-2px;transition:.2s;display:flex;align-items:center;gap:8px;}
  .tab-btn:hover{color:var(--vert-dark);}
  .tab-btn.active{color:var(--vert-dark);border-bottom-color:var(--orange);}
  .tab-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
  .tab-panel{display:none;font-size:15px;line-height:1.7;color:var(--gris-fonce);}
  .tab-panel.active{display:block;}
  .tab-panel h3{font-size:18px;margin:18px 0 8px;}
  .discours-item, .declaration-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;background:var(--gris-clair);margin-bottom:10px;}
  .discours-item .meta, .declaration-item .meta{font-size:12px;color:#888;}

  @media (max-width:900px){
    .ministre-section{grid-template-columns:1fr;}
    .ministre-vignette img{max-width:160px;}
  }

  /* Résultats & Espaces */
  .results-highlight{background:linear-gradient(120deg, var(--vert-dark), var(--vert));border-radius:var(--radius);padding:38px;color:#fff;margin-bottom:28px;box-shadow:0 10px 30px rgba(15,122,61,.25);}
  .results-highlight h2{color:#fff;font-size:22px;margin:0 0 4px;}
  .results-highlight p{color:#dff2e6;font-size:13.5px;margin:0 0 22px;}
  .results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
  .result-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:14px;padding:22px;display:flex;align-items:center;gap:16px;transition:.25s;color:#fff;}
  .result-card:hover{background:#fff;color:var(--vert-dark);transform:translateY(-3px);}
  .result-card .r-icon{font-size:30px;}
  .result-card .r-title{font-weight:700;font-size:16px;}
  .result-card .r-sub{font-size:12px;opacity:.85;}
  .spaces-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .space-card{padding:24px 16px;text-align:center;}
  .space-icon{width:52px;height:52px;border-radius:12px;background:#EAF6EE;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:20px;}

  @media (max-width:900px){
    .results-grid{grid-template-columns:1fr;}
    .spaces-grid{grid-template-columns:repeat(2,1fr);}
  }

  /* projects */
  .proj-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
  .proj-card img{height:120px;width:100%;object-fit:cover;}

  /* dashboard */
  .dash-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:20px;}
  .dash-card{padding:22px;}

  /* services */
  .serv-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
  .serv-card{padding:24px 18px;}

  /* partners marquee */
  .partners-band{background:#fff;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:36px 0;overflow:hidden;}
  .partners-track{display:flex;gap:48px;width:max-content;animation:scroll-partners 28s linear infinite;align-items:flex-start;}
  .partners-track:hover{animation-play-state:paused;}
  .partner-logo{display:flex;flex-direction:column;align-items:center;gap:10px;width:112px;flex-shrink:0;transition:.25s;opacity:.9;}
  .partner-logo:hover{opacity:1;transform:translateY(-3px);}
  .partner-badge{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Poppins';font-weight:800;font-size:14px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.08);}
  .partner-label{font-size:10.5px;font-weight:700;color:#777;text-align:center;letter-spacing:.02em;line-height:1.3;}
  @keyframes scroll-partners{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  @media (prefers-reduced-motion: reduce){
    .partners-track{animation:none;overflow-x:auto;}
  }

  /* footer */
  footer{background:var(--vert-dark);color:#e7f2ea;}
  footer h4{color:#fff;font-family:'Poppins';font-size:15px;margin-bottom:16px;}
  footer a{color:#cfe3d5;font-size:14px;}
  footer a:hover{color:#fff;}
  .social-ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;}

  /* mobile */
  .hamburger{display:none;}
  @media (max-width:960px){
    .nav-desktop{display:none;flex-direction:column;width:100%;position:absolute;top:100%;left:0;background:var(--orange);box-shadow:0 8px 16px rgba(0,0,0,.15);}
    .nav-desktop.open{display:flex;}
    .nav-link{border-bottom:1px solid rgba(255,255,255,.15);padding:14px 20px;}
    header.main{position:sticky;}
    .hamburger{display:flex;align-items:center;justify-content:center;}
    .hero-content h1{font-size:28px !important;}
    .qa-grid{grid-template-columns:repeat(2,1fr);}
    .stats-band{grid-template-columns:repeat(2,1fr);}
    .news-grid{grid-template-columns:1fr;}
    .minister{grid-template-columns:1fr;}
    .proj-grid{grid-template-columns:repeat(2,1fr);}
    .dash-grid{grid-template-columns:1fr;}
    .serv-grid{grid-template-columns:repeat(2,1fr);}
  }
  .reveal{opacity:0;transform:translateY(16px);transition:.6s ease;}
  .reveal.in{opacity:1;transform:none;}

/* ---------------------------------------------------------------
 * Composants additionnels pour les pages internes
 * --------------------------------------------------------------- */

/* Bandeau de titre de page interne */
.page-banner{background:linear-gradient(100deg, var(--vert-dark), var(--vert));color:#fff;padding:44px 0;}
.page-banner h1{color:#fff;font-size:28px;margin:0 0 6px;}
.page-banner p{color:#dff2e6;font-size:14px;margin:0;max-width:640px;}

/* Accordéon (FAQ) */
.accordion-item{border:1px solid #eee;border-radius:12px;margin-bottom:12px;overflow:hidden;}
.accordion-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;cursor:pointer;font-weight:600;font-size:14.5px;background:#fff;}
.accordion-head .chevron{transition:.25s;color:var(--vert);}
.accordion-item.open .accordion-head .chevron{transform:rotate(180deg);}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .3s ease;background:var(--gris-clair);}
.accordion-item.open .accordion-body{max-height:400px;}
.accordion-body-inner{padding:4px 18px 18px;font-size:14px;line-height:1.6;color:#555;}

/* Formulaires */
.form-field{margin-bottom:18px;}
.form-field label{display:block;font-weight:600;font-size:13.5px;margin-bottom:6px;}
.form-field input, .form-field select, .form-field textarea{
  width:100%;padding:12px 14px;border:1px solid #dde1e6;border-radius:10px;font-family:'Inter';font-size:14px;color:var(--gris-fonce);background:#fff;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{border-color:var(--vert);outline:none;box-shadow:0 0 0 3px rgba(15,122,61,.12);}

/* Galerie médiathèque */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.gallery-item{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.35s;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);color:#fff;font-size:22px;}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:32px;}
.pagination a{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13.5px;background:#fff;border:1px solid #e2e4e8;}
.pagination a.active, .pagination a:hover{background:var(--vert);color:#fff;border-color:var(--vert);}

/* Badges catégorie */
.badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;background:var(--orange);color:#fff;}
.badge-outline{background:transparent;border:1px solid var(--vert);color:var(--vert-dark);}

/* Filtres catégories (pills) */
.filter-pills{display:flex;flex-wrap:wrap;gap:10px;}
.filter-pill{padding:8px 16px;border-radius:20px;background:#fff;border:1px solid #e2e4e8;font-size:13px;font-weight:600;cursor:pointer;transition:.2s;}
.filter-pill.active, .filter-pill:hover{background:var(--vert);color:#fff;border-color:var(--vert);}

/* Table simple (organigramme / textes législatifs) */
.simple-table{width:100%;border-collapse:collapse;font-size:14px;}
.simple-table th{text-align:left;background:var(--gris-clair);padding:12px 14px;font-family:Poppins;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;}
.simple-table td{padding:12px 14px;border-bottom:1px solid #eee;}

/* Sidebar (établissement / statistiques) */
.with-sidebar{display:grid;grid-template-columns:2.2fr 1fr;gap:32px;}
.sidebar-card{padding:22px;margin-bottom:20px;}

@media (max-width:900px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .with-sidebar{grid-template-columns:1fr;}
}
