
:root {
  --green:#006b4f;
  --green-dark:#064e3b;
  --red:#c5163a;
  --yellow:#f3cc2d;
  --ink:#14213d;
  --muted:#5b6475;
  --line:#e6e9ef;
  --soft:#f7faf8;
  --max:1120px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.68;
}
a { color:var(--green); text-decoration:none; }
a:hover { text-decoration:underline; }
.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.topbar {
  width:max-content;
  max-width:calc(100vw - 32px);
  margin-left:auto;
  margin-right:auto;
  padding:12px 16px 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  flex-wrap:wrap;
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:21px;
  font-weight:900;
  color:#10233f;
}
.brand img {
  width:40px;
  height:40px;
  object-fit:contain;
}
.langs {
  display:flex;
  gap:14px;
  font-weight:800;
}
.langs a { color:#111827; }
.main-nav {
  max-width:var(--max);
  margin:0 auto;
  padding:0 18px 12px;
  display:flex;
  justify-content:center;
  gap:15px;
  flex-wrap:wrap;
  font-weight:700;
}
.hero {
  max-width:var(--max);
  margin:24px auto 0;
  padding:0 18px;
}
.hero-picture {
  display:block;
  width:100%;
}
.hero-picture img {
  width:100%;
  height:auto;
  max-width:960px;
  margin:0 auto;
  display:block;
  border-radius:18px;
  box-shadow:0 8px 30px rgba(16,33,63,.10);
}
.hero h1 {
  font-size:clamp(30px,5vw,50px);
  line-height:1.12;
  margin:20px auto 8px;
  max-width:900px;
}
.hero .lead {
  max-width:900px;
  margin:0 auto;
  font-size:20px;
  color:var(--muted);
}
.wrap {
  max-width:var(--max);
  margin:0 auto;
  padding:24px 18px 46px;
}
.article {
  max-width:860px;
  margin:0 auto;
}
.breadcrumb {
  font-size:14px;
  color:var(--muted);
  margin-bottom:14px;
}
.article h2,.article h3,.article h4,.article h5 {
  line-height:1.25;
  margin-top:30px;
  color:#17324f;
}
.article h2 { font-size:28px; }
.article h3 { font-size:23px; }
.article h4 { font-size:20px; }
.article h5 { font-size:18px; }
.article p { margin:14px 0; }
.source {
  margin:32px 0;
  padding:16px 18px;
  border-left:4px solid var(--green);
  background:#f3faf7;
  border-radius:10px;
}
.related {
  max-width:var(--max);
  margin:0 auto;
  padding:0 18px 52px;
}
.related h2 { font-size:26px; }
.link-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;
}
.link-grid a {
  display:block;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  color:#17324f;
  font-weight:700;
  background:#fff;
}
.link-grid a:hover {
  background:#f3faf7;
  border-color:#9dd8c4;
  text-decoration:none;
}
.home-groups {
  max-width:var(--max);
  margin:0 auto;
  padding:0 18px 48px;
}
.home-group { margin:30px 0; }
.home-group h2 {
  color:var(--green-dark);
  font-size:28px;
}
.home-links {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;
}
.home-links a {
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  color:#17324f;
  font-weight:800;
}
.site-footer {
  background:#073b2e;
  color:#d9eee7;
  padding:30px 18px;
}
.footer-inner {
  max-width:var(--max);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
}
.site-footer a { color:#fff; }
[dir="rtl"] .source {
  border-left:0;
  border-right:4px solid var(--green);
}
@media (max-width:760px) {
  .topbar {
    width:100%;
    max-width:none;
    gap:10px;
  }
  .brand { font-size:17px; }
  .main-nav { gap:9px; font-size:14px; }
  .hero { padding:0 12px; margin-top:14px; }
  .hero-picture img {
    width:100%;
    max-width:100%;
    height:auto;
    border-radius:12px;
  }
  .link-grid,.home-links { grid-template-columns:1fr; }
}

.press-directory {
  max-width:1120px;
  margin:0 auto;
  padding:8px 18px 44px;
}
.press-directory h2 {
  margin:0 0 16px;
  color:#064e3b;
  font-size:27px;
}
.press-media-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.press-media-grid a {
  display:block;
  padding:12px 14px;
  border:1px solid #e6e9ef;
  border-radius:10px;
  background:#ffffff;
  color:#17324f;
  font-weight:700;
}
.press-media-grid a:hover {
  background:#f3faf7;
  border-color:#9dd8c4;
  text-decoration:none;
}
@media (max-width:900px) {
  .press-media-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:560px) {
  .press-media-grid {
    grid-template-columns:1fr;
  }
}


/* Projet Nabil Web 25 — sélecteur de langues très visible */
.topbar {
  width:max-content;
  max-width:calc(100vw - 32px);
  margin-left:auto;
  margin-right:auto;
  justify-content:center;
  gap:30px;
}

.langs {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:5px;
  border:2px solid #d9e5df;
  border-radius:14px;
  background:#f8fbfa;
  box-shadow:0 3px 12px rgba(16,33,63,.08);
}

.langs a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:8px 15px;
  border-radius:10px;
  color:#10233f;
  font-size:18px;
  font-weight:900;
  line-height:1;
  letter-spacing:.1px;
  text-decoration:none;
  white-space:nowrap;
}

.langs a:hover,
.langs a:focus {
  color:#ffffff;
  background:#006b4f;
  text-decoration:none;
  outline:none;
}

@media (min-width:901px) {
  .site-header .topbar {
    display:flex !important;
    width:max-content !important;
    max-width:calc(100vw - 40px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    justify-content:center !important;
    align-items:center !important;
    gap:30px !important;
    float:none !important;
    transform:none !important;
  }

  .site-header .brand {
    font-size:21px;
    font-weight:900;
  }

  .site-header .langs a {
    font-size:19px;
    font-weight:900;
  }
}

@media (max-width:900px) {
  .topbar {
    width:100%;
    max-width:none;
    gap:10px;
  }

  .langs {
    width:100%;
    max-width:430px;
    gap:5px;
  }

  .langs a {
    flex:1 1 0;
    min-width:0;
    padding:9px 8px;
    font-size:16px;
  }
}
