
:root{
 --primary:#2f4935;--primary2:#46644d;--accent:#b88d32;--khaki:#808160;
 --bg:#fff;--surface:#f4f7f4;--ink:#1b281f;--muted:#68746b;--line:rgba(47,73,53,.15);
 --tech:#6ba7b6;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,Arial,sans-serif}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(47,73,53,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(47,73,53,.025) 1px,transparent 1px);background-size:42px 42px}
a{text-decoration:none;color:inherit}.topline{height:5px;background:linear-gradient(90deg,#5ab7df 0 34%,#fff 34% 67%,#58aa6e 67%)}
.header{height:102px;padding:0 4vw;display:flex;align-items:center;gap:30px;position:sticky;top:0;z-index:60;background:rgba(255,255,255,.98);backdrop-filter:blur(15px);border-bottom:1px solid var(--line);box-shadow:0 12px 35px rgba(30,52,36,.08)}
.brand{display:flex;align-items:center;gap:14px;margin-right:auto;min-width:330px}.logo-img{width:72px;height:72px;object-fit:contain}.brand b{display:block;font:800 24px "Barlow Condensed";letter-spacing:1.1px;color:var(--primary)}.brand span{display:block;font-size:10px;color:#758078;letter-spacing:1.4px;margin-top:2px}
.mainnav{display:flex;gap:30px;align-items:center}.mainnav a{font:800 17px "Barlow Condensed";letter-spacing:.8px;color:#2f4235;padding:36px 0 31px;position:relative;white-space:nowrap}.mainnav a:after{content:"";position:absolute;left:0;right:100%;bottom:20px;height:3px;background:var(--accent);transition:.2s}.mainnav a:hover:after{right:0}.mainnav a:hover{color:var(--primary)}
.admin{padding:15px 20px;border-radius:7px;background:var(--primary);color:#fff;font:800 14px "Barlow Condensed";letter-spacing:1px;box-shadow:0 8px 20px rgba(47,73,53,.16)}

.home-hero{padding:40px 4vw 34px;background:linear-gradient(135deg,#f7f9f7,#fff);border-bottom:1px solid var(--line)}
.home-hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:36px;align-items:stretch;min-height:560px}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:28px 0}.eyebrow{display:inline-flex;align-self:flex-start;padding:10px 14px;border:1px solid var(--line);background:#fff;border-radius:999px;font:800 13px "Barlow Condensed";letter-spacing:1.7px;color:var(--primary);box-shadow:0 6px 20px rgba(30,55,37,.05)}
.hero-copy h1{font:800 clamp(72px,7vw,118px)/.84 "Barlow Condensed";letter-spacing:-2.5px;color:var(--primary);margin:24px 0 20px}.hero-copy .lead{font-size:18px;line-height:1.7;color:#56635a;max-width:640px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 23px;border:0;border-radius:7px;font:800 14px "Barlow Condensed";letter-spacing:1px;cursor:pointer}.btn.primary{background:var(--primary);color:#fff;box-shadow:0 10px 24px rgba(47,73,53,.16)}.btn.secondary{background:#fff;color:var(--primary);border:1px solid var(--line)}
.hero-visual{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 55px rgba(31,55,38,.13);background:#edf2ee;min-height:560px}.hero-slides{position:absolute;inset:0}.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease,transform 5s ease}.hero-slide.active{opacity:1;transform:scale(1.025)}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(22,38,27,.52));pointer-events:none}
.hero-ui{position:absolute;z-index:3;left:22px;right:22px;bottom:20px;display:flex;justify-content:space-between;align-items:end;gap:20px}.hero-caption{color:#fff}.hero-caption small{display:block;font:800 10px "Barlow Condensed";letter-spacing:1.5px}.hero-caption b{font:800 30px "Barlow Condensed"}.slide-controls{display:flex;gap:8px}.slide-btn{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.92);color:var(--primary);font-size:24px;cursor:pointer}
.slide-dots{position:absolute;z-index:3;top:18px;right:18px;display:flex;gap:7px}.slide-dot{width:30px;height:5px;border:0;border-radius:99px;background:rgba(255,255,255,.5);cursor:pointer}.slide-dot.active{background:var(--accent)}
.map-floating b{color:var(--primary)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-bottom:1px solid var(--line)}.stats div{padding:22px 4vw;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats b{display:block;font:800 42px "Barlow Condensed";color:var(--accent)}.stats span{font:800 11px "Barlow Condensed";letter-spacing:1.15px;color:#707d73}
.section{padding:72px 4vw;background:#fff}.section.soft{background:#f4f7f4}.kicker{font:800 12px "Barlow Condensed";letter-spacing:1.8px;color:#687455}.section h2{font:800 clamp(50px,5.5vw,80px)/.9 "Barlow Condensed";margin:10px 0 20px;color:var(--primary)}.section p{font-size:16px;line-height:1.68;color:var(--muted)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.media-stack{height:360px;border:1px solid var(--line);border-radius:14px;overflow:hidden;position:relative;background:#eef3ef;box-shadow:0 14px 32px rgba(32,57,39,.08)}.media-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s}.media-stack img.active{opacity:1}.media-stack-label{position:absolute;z-index:3;left:16px;bottom:16px;background:rgba(255,255,255,.94);padding:9px 12px;border-radius:7px;font:800 11px "Barlow Condensed";letter-spacing:1px;color:var(--primary)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 12px 30px rgba(32,57,39,.07);transition:.22s}.card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(32,57,39,.11)}.card img{width:100%;height:190px;object-fit:cover}.card .body{padding:20px}.card h3{font:800 28px "Barlow Condensed";color:var(--primary);margin:0 0 9px}.card p{font-size:14px}.card a{display:inline-block;margin-top:13px;color:var(--accent);font:800 12px "Barlow Condensed"}
.tech-panel{height:340px;border:1px solid var(--line);border-radius:14px;overflow:hidden;position:relative;background:#eef3ef}.tech-panel img{width:100%;height:100%;object-fit:cover}.tech-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(107,167,182,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(107,167,182,.07) 1px,transparent 1px);background-size:36px 36px}.tech-chip{position:absolute;padding:9px 11px;background:rgba(255,255,255,.95);border:1px solid rgba(107,167,182,.3);border-radius:5px;color:#47747f;font:800 10px "Barlow Condensed";letter-spacing:1px}.tech-chip.a{left:18px;top:18px}.tech-chip.b{right:18px;top:48%}.tech-chip.c{left:18px;bottom:18px}
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.value-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:#fff}.value-card b{font:800 26px "Barlow Condensed";color:var(--accent)}.value-card p{font-size:14px}
.news-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}.news-nav{display:flex;gap:8px}.news-viewport{overflow:hidden;margin-top:18px}.news-track{display:flex;gap:16px;transition:transform .55s ease}.news-card{flex:0 0 calc(33.333% - 11px);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 11px 28px rgba(32,57,39,.07)}.news-card img{width:100%;height:225px;object-fit:cover}.news-card.featured{flex-basis:calc(42% - 11px)}.news-card.featured img{height:285px}.news-card .body{padding:20px}.news-card small{font:800 10px "Barlow Condensed";letter-spacing:1px;color:#6f7e73}.news-card h3{font:800 28px/1.04 "Barlow Condensed";color:var(--primary);margin:9px 0}.news-card p{font-size:14px}.readmore{display:inline-block;margin-top:12px;color:var(--accent);font:800 12px "Barlow Condensed"}
.lower-cta{display:grid;grid-template-columns:1.08fr .92fr;background:#edf2ee;border-top:1px solid var(--line);min-height:360px}.lower-cta .copy{padding:48px 4vw}.lower-cta h2{font:800 clamp(48px,5vw,74px)/.9 "Barlow Condensed";color:var(--primary);margin:10px 0 17px}.lower-cta img{width:100%;height:360px;object-fit:cover}
.inner-hero{padding:36px 4vw;background:#f6f8f6;border-bottom:1px solid var(--line)}.inner-hero-grid{min-height:410px;display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:center}.inner-copy h1{font:800 clamp(58px,6.5vw,94px)/.88 "Barlow Condensed";color:var(--primary);margin:9px 0 16px}.inner-copy p{font-size:17px;line-height:1.65;color:#627067}.inner-image{height:410px;border-radius:15px;overflow:hidden;border:1px solid var(--line);box-shadow:0 17px 36px rgba(32,57,39,.09);background:#eef3ef}.inner-image img{width:100%;height:100%;object-fit:cover;opacity:1!important;filter:none!important}
.news-page-feature{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.lead-news{position:relative;min-height:460px;border-radius:14px;overflow:hidden}.lead-news img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.lead-news:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,42,30,.83),transparent 65%)}.lead-news-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:24px;color:#fff}.lead-news-copy h2{color:#fff;font-size:48px}.lead-news-copy p{color:#e9eeea}.news-side{display:grid;gap:13px}.mini-news{display:grid;grid-template-columns:140px 1fr;gap:13px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.mini-news img{width:140px;height:105px;object-fit:cover;border-radius:8px}.mini-news h3{font:800 22px "Barlow Condensed";color:var(--primary);margin:4px 0}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.news-grid .news-card{flex:auto}
.gallery-strip{overflow:hidden;border-radius:12px;border:1px solid var(--line);background:#f1f4f1}.gallery-track{display:flex;gap:12px;width:max-content;animation:galleryMove 28s linear infinite;padding:12px}.gallery-track img{width:330px;height:240px;object-fit:cover;border-radius:9px;flex:0 0 auto}@keyframes galleryMove{to{transform:translateX(-50%)}}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:22px}.gallery-grid img{width:100%;height:245px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-box{padding:22px;border:1px solid var(--line);border-radius:11px;background:#fff}.contact-box h3{font:800 23px "Barlow Condensed";color:var(--primary);margin:0 0 9px}
footer{background:#203228;color:#fff;border-top:6px solid var(--accent)}.footer-cta{padding:42px 4vw;display:flex;justify-content:space-between;align-items:center;gap:25px;background:linear-gradient(120deg,#2d4534,#203228)}.footer-cta h2{font:800 44px "Barlow Condensed";margin:0;color:#fff}.footer-cta p{margin:6px 0 0;color:#c8d1ca}.footer-main{padding:38px 4vw;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:34px}.footer-brand{display:flex;gap:16px}.footer-brand img{width:100px;height:100px;object-fit:contain;background:#fff;border-radius:13px;padding:5px}.footer-brand b{font:800 26px "Barlow Condensed"}.footer-brand p{font-size:13px;color:#c3ccc5;line-height:1.55}.footer-col b{display:block;color:#dfc374;font:800 12px "Barlow Condensed";letter-spacing:1.3px;margin-bottom:13px}.footer-col a{display:block;color:#e0e6e1;font-size:14px;margin:10px 0}.footer-social{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.footer-social a{display:inline-flex;padding:8px 11px;border:1px solid rgba(255,255,255,.17);border-radius:999px;font-size:11px}.footer-bottom{padding:16px 4vw;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;color:#aeb9b1;font-size:11px}
@media(max-width:1100px){.mainnav{gap:18px}.mainnav a{font-size:15px}.brand{min-width:250px}.brand b{font-size:20px}.home-hero-grid,.inner-hero-grid,.two-col,.lower-cta,.news-page-feature{grid-template-columns:1fr}.hero-visual{min-height:520px}.cards,.values-grid{grid-template-columns:1fr 1fr}.news-card{flex-basis:48%}.footer-main{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.header{height:82px}.mainnav{display:none}.logo-img{width:55px;height:55px}.brand{min-width:0}.brand b{font-size:17px}.admin{font-size:11px;padding:11px}.home-hero{padding-top:30px}.hero-copy h1{font-size:64px}.stats{grid-template-columns:1fr 1fr}.cards,.values-grid,.news-grid,.gallery-grid,.contact-grid,.footer-main{grid-template-columns:1fr}.news-card,.news-card.featured{flex-basis:86%}.section{padding:55px 4vw}.footer-cta{flex-direction:column;align-items:flex-start}.footer-bottom{flex-direction:column}}

/* V14 ACTIVE NAV + ARTICLE DETAIL */
.mainnav a.active{
  color:var(--primary)!important;
  background:linear-gradient(to bottom,transparent 72%,rgba(184,141,50,.11) 72%)!important;
}
.mainnav a.active:after{right:0!important;height:4px!important}
.article-detail{background:#fff}
.article-shell{max-width:1360px;margin:auto}
.article-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:25px;align-items:stretch;margin-bottom:30px}
.article-main-image{min-height:500px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#eef3ef;box-shadow:0 18px 42px rgba(32,57,39,.1)}
.article-main-image img{width:100%;height:100%;object-fit:cover;display:block;opacity:1!important;filter:none!important}
.article-meta{display:flex;flex-direction:column;justify-content:center;padding:32px;border:1px solid var(--line);border-radius:16px;background:#f4f7f4}
.article-meta .category{display:inline-flex;align-self:flex-start;padding:8px 11px;border-radius:999px;background:var(--primary);color:#fff;font:800 11px "Barlow Condensed";letter-spacing:1px}
.article-meta h1{font:800 clamp(52px,5vw,78px)/.92 "Barlow Condensed";color:var(--primary);margin:15px 0}
.article-meta .date{font:800 11px "Barlow Condensed";letter-spacing:1px;color:#748078}
.article-lead{font-size:18px!important;line-height:1.7!important;color:#536158!important}
.article-body{max-width:940px;margin:0 auto;padding:20px 0}
.article-body p{font-size:17px!important;line-height:1.82!important;color:#4e5d53!important;margin:0 0 20px}
.article-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:28px 0}
.article-gallery img{width:100%;height:330px;object-fit:cover;border-radius:12px;border:1px solid var(--line);opacity:1!important;filter:none!important}
.related-wrap{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.related-head{display:flex;justify-content:space-between;align-items:end;gap:18px}
.related-viewport{overflow:hidden;margin-top:18px}
.related-track{display:flex;gap:15px;transition:transform .52s ease}
.related-card{flex:0 0 calc(33.333% - 10px);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 10px 25px rgba(32,57,39,.07)}
.related-card img{width:100%;height:190px;object-fit:cover;opacity:1!important;filter:none!important}
.related-card .body{padding:16px}.related-card h3{font:800 24px "Barlow Condensed";color:var(--primary);margin:7px 0}.related-card small{font:800 9px "Barlow Condensed";letter-spacing:1px;color:#728078}.related-card p{font-size:13px}
@media(max-width:900px){.article-hero{grid-template-columns:1fr}.article-gallery{grid-template-columns:1fr}.related-card{flex-basis:48%}}
@media(max-width:600px){.related-card{flex-basis:86%}}

/* V15 visual polish + alignment */
.stats{grid-template-columns:repeat(3,1fr)!important}
.section .two-col > div:first-child{padding-right:18px}
.section .two-col > div:last-child{min-width:0}
.card,.news-card,.related-card,.value-card,.contact-box{height:100%}
.card .body,.news-card .body,.related-card .body{display:flex;flex-direction:column;align-items:flex-start}
.card p,.news-card p,.related-card p{flex:1}
.news-card img,.related-card img,.mini-news img{display:block}
.news-grid,.cards,.values-grid{align-items:stretch}
.dgri-home{
  display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center
}
.dgri-home .visual{
  min-height:360px;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 32px rgba(32,57,39,.08)
}
.dgri-home .visual img{width:100%;height:360px;object-fit:cover;display:block}
.dgri-missions{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:22px}
.dgri-mission{display:grid;grid-template-columns:150px 1fr;gap:14px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}
.dgri-mission img{width:150px;height:100%;min-height:140px;object-fit:cover}
.dgri-mission .body{padding:16px 16px 16px 0}
.dgri-mission h3{font:800 23px "Barlow Condensed";color:var(--primary);margin:0 0 8px}
.page-feature{
  margin-top:24px;padding:24px;border:1px solid var(--line);border-radius:13px;background:#f4f7f4
}
.page-feature h3{font:800 34px "Barlow Condensed";color:var(--primary);margin:0 0 10px}
@media(max-width:900px){.dgri-home{grid-template-columns:1fr}.dgri-missions{grid-template-columns:1fr}}
@media(max-width:600px){.stats{grid-template-columns:1fr!important}.dgri-mission{grid-template-columns:1fr}.dgri-mission img{width:100%;height:180px}.dgri-mission .body{padding:15px}}

/* V16 — inspiration institutionnelle type portail Défense */
.header{overflow:visible!important}
.nav-item{position:relative;height:100%;display:flex;align-items:center}
.nav-trigger{
  display:flex;align-items:center;gap:7px;height:100%;
  font:800 17px "Barlow Condensed";letter-spacing:.8px;color:#2f4235;
  padding:0;border:0;background:transparent;cursor:pointer
}
.nav-trigger .chev{font-size:11px;transition:transform .18s}
.nav-item.open .nav-trigger .chev{transform:rotate(180deg)}
.nav-trigger.active,.nav-link.active{color:var(--primary)!important}
.nav-trigger.active:after,.nav-link.active:after{
  content:"";position:absolute;left:0;right:0;bottom:20px;height:4px;background:var(--accent)
}
.nav-link{font:800 17px "Barlow Condensed";letter-spacing:.8px;color:#2f4235;padding:38px 0 32px;position:relative}
.submenu{
  position:absolute;top:100%;left:-20px;min-width:265px;display:none;
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--accent);
  box-shadow:0 18px 38px rgba(31,52,37,.14);padding:8px;z-index:100;border-radius:0 0 10px 10px
}
.nav-item.open .submenu{display:block}
.submenu a{
  display:flex!important;padding:12px 13px!important;font:800 14px "Barlow Condensed"!important;
  color:#394a3e!important;border-radius:6px;white-space:nowrap
}
.submenu a:after{display:none!important}
.submenu a:hover,.submenu a.active{background:#eef3ef!important;color:var(--primary)!important}
.portal-strip{
  padding:12px 4vw;background:#203228;color:#fff;display:flex;align-items:center;gap:12px;overflow:auto;
  border-bottom:1px solid rgba(255,255,255,.12)
}
.portal-strip b{font:800 11px "Barlow Condensed";letter-spacing:1.3px;color:#dfc374;white-space:nowrap}
.portal-strip a{
  white-space:nowrap;padding:7px 11px;border-left:1px solid rgba(255,255,255,.18);
  font:700 11px "Barlow Condensed";color:#eef3ef
}
.portal-strip a:hover{text-decoration:underline}
.map-floating-head strong{display:block;font:800 12px "Barlow Condensed";color:var(--primary)}
.doctrine-block{
  display:grid;grid-template-columns:.92fr 1.08fr;gap:32px;align-items:stretch
}
.doctrine-copy{
  padding:34px;border-left:6px solid var(--accent);background:#f0f3ed;
  display:flex;flex-direction:column;justify-content:center
}
.doctrine-copy h2{font-size:clamp(48px,5vw,76px)!important}
.doctrine-visual{position:relative;border-radius:14px;overflow:hidden;min-height:390px;border:1px solid var(--line)}
.doctrine-visual img{width:100%;height:100%;min-height:390px;object-fit:cover}
.doctrine-visual:after{
 content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,43,31,.62),transparent 65%)
}
.doctrine-badge{
 position:absolute;z-index:2;left:20px;bottom:18px;max-width:420px;
 padding:13px 15px;background:rgba(255,255,255,.94);border-left:4px solid var(--accent);
 font:800 16px "Barlow Condensed";color:var(--primary)
}
.section.dgri-section{background:#eef3ef!important}
.section.doctrine-section{background:#fff!important}
.section-head-rule{
 display:flex;align-items:center;gap:13px;margin-bottom:10px
}
.section-head-rule:after{content:"";height:1px;background:var(--line);flex:1}
.breadcrumb{
 display:flex;gap:8px;align-items:center;padding:13px 4vw;background:#f4f6f4;border-bottom:1px solid var(--line);
 font:700 11px "Barlow Condensed";color:#68756c
}
.breadcrumb a{color:var(--primary)}
.back-to-top{
 position:fixed;right:24px;bottom:24px;width:54px;height:54px;border-radius:50%;
 border:0;background:var(--primary);color:#fff;z-index:200;cursor:pointer;
 box-shadow:0 12px 26px rgba(31,55,38,.24);font-size:23px;opacity:0;transform:translateY(12px);
 pointer-events:none;transition:.2s
}
.back-to-top.show{opacity:1;transform:none;pointer-events:auto}
.back-to-top:hover{background:var(--accent);color:#1c281f}
@media(max-width:1100px){
 .nav-trigger,.nav-link{font-size:15px}.submenu{left:auto;right:0}
 .doctrine-block{grid-template-columns:1fr}
}
@media(max-width:760px){
 .mainnav{display:none!important}
 .portal-strip{padding-left:4vw}
  }

/* V17 — gallery lightbox, submenu active underline fix, adaptive media */

/* Active indicator for top-level items with submenus:
   attach to nav-item bottom, never to the button itself. */
.nav-trigger.active:after{display:none!important}
.nav-item.active-parent:after{
  content:"";
  position:absolute;
  left:0;right:0;
  bottom:20px;
  height:4px;
  background:var(--accent);
  border-radius:4px;
  pointer-events:none;
}
.nav-item.open:after{
  content:"";
  position:absolute;
  left:0;right:0;
  bottom:20px;
  height:4px;
  background:var(--accent);
  border-radius:4px;
  pointer-events:none;
}

/* Gallery */
.gallery-grid{
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr))!important;
  align-items:start!important;
}
.gallery-item{
  position:relative;
  border:1px solid var(--line);
  border-radius:11px;
  background:#f2f5f2;
  overflow:hidden;
  cursor:zoom-in;
  box-shadow:0 8px 20px rgba(32,57,39,.05);
}
.gallery-item img{
  display:block;
  width:100%;
  height:auto!important;
  max-height:420px;
  object-fit:contain!important;
  background:#eef3ef;
  user-select:none;
  -webkit-user-drag:none;
}
.gallery-item.portrait{grid-row:span 2}
.gallery-item.portrait img{max-height:520px}
.gallery-item.landscape img{aspect-ratio:auto}
.gallery-item:hover{box-shadow:0 14px 28px rgba(32,57,39,.10);transform:translateY(-2px)}

.lightbox{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(13,20,15,.92);
  display:none;
  place-items:center;
  padding:34px;
}
.lightbox.open{display:grid}
.lightbox-inner{
  position:relative;
  max-width:min(94vw,1500px);
  max-height:92vh;
  display:grid;
  place-items:center;
}
.lightbox img{
  max-width:94vw;
  max-height:90vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:10px;
  box-shadow:0 24px 70px rgba(0,0,0,.45);
  user-select:none;
  -webkit-user-drag:none;
}
.lightbox-close{
  position:absolute;
  right:-14px;top:-14px;
  width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:#fff;color:#233429;
  font-size:24px;cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.2)
}

/* Adaptive media helpers */
.adaptive-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);
  gap:30px;
  align-items:center;
}
.adaptive-media{
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.adaptive-media-frame{
  width:100%;
  border:1px solid var(--line);
  border-radius:13px;
  overflow:hidden;
  background:#eef3ef;
  box-shadow:0 12px 28px rgba(32,57,39,.07)
}
.adaptive-media-frame img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain!important;
  opacity:1!important;
  filter:none!important;
  background:#eef3ef;
}
.adaptive-media.portrait .adaptive-media-frame{
  width:min(72%,420px);
}
.adaptive-media.portrait + .adaptive-copy,
.adaptive-row.media-first .adaptive-copy{
  align-self:center;
}
.adaptive-copy{
  min-width:0;
}
.adaptive-copy h2,.adaptive-copy h3,.adaptive-copy p{
  max-width:100%;
}
.news-card img,.related-card img,.mini-news img,.card img,.inner-image img,.lead-news img,.article-main-image img,.article-gallery img{
  object-fit:contain!important;
  background:#eef3ef!important;
  opacity:1!important;
  filter:none!important;
}
.news-card .body,.card .body,.related-card .body{
  min-height:0!important;
}

/* News admin readability */
.news-admin-card{
  align-items:stretch!important;
}
.news-admin-card img{
  object-fit:contain!important;
  background:#eef3ef!important;
}
.news-admin-card .news-admin-actions{
  align-content:start;
}

@media(max-width:900px){
  .adaptive-row{grid-template-columns:1fr}
  .adaptive-media.portrait .adaptive-media-frame{width:min(82%,440px)}
}


/* V17.2 Premium — embellissement visuel et fluidité */
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 10% 10%,rgba(47,73,53,.025),transparent 28%),
    radial-gradient(circle at 90% 20%,rgba(184,141,50,.025),transparent 25%),
    #fff!important;
}
.header{
  transition:box-shadow .25s ease,background .25s ease!important;
}
.header.scrolled{
  box-shadow:0 16px 40px rgba(31,53,37,.12)!important;
  background:rgba(255,255,255,.99)!important;
}
.nav-link,.nav-trigger,.admin,.btn,.card,.news-card,.value-card,.contact-box,.dgri-mission,.gallery-item{
  transition:all .22s ease!important;
}
.nav-link:hover,.nav-trigger:hover{color:var(--accent)!important}
.admin:hover,.btn.primary:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(47,73,53,.18)!important;
}
.btn.secondary:hover{
  background:#f3f6f3!important;
  transform:translateY(-2px)
}
.home-hero{
  padding-top:50px!important;
  padding-bottom:45px!important;
  background:
    linear-gradient(120deg,rgba(248,250,248,.98),rgba(255,255,255,.98)),
    repeating-linear-gradient(135deg,rgba(47,73,53,.02) 0 1px,transparent 1px 12px)!important;
}
.hero-visual{
  box-shadow:0 28px 70px rgba(31,55,38,.14)!important;
  border-color:rgba(47,73,53,.12)!important;
}
.hero-copy h1{
  text-wrap:balance;
  max-width:760px;
}
.hero-copy .lead{
  max-width:670px!important;
}
.stats{
  box-shadow:0 10px 30px rgba(31,55,38,.04) inset
}
.stats div{
  position:relative;
}
.stats div:after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:.22
}
.section{
  position:relative;
  overflow:hidden;
}
.section:before{
  content:"";
  position:absolute;
  width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(47,73,53,.035),transparent 68%);
  right:-100px;top:-120px;pointer-events:none
}
.section.soft{
  background:
    linear-gradient(rgba(244,247,244,.985),rgba(244,247,244,.985)),
    repeating-linear-gradient(45deg,rgba(47,73,53,.018) 0 1px,transparent 1px 10px)!important
}
.kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.kicker:before{
  content:"";
  width:26px;height:2px;background:var(--accent)
}
.section h2,.inner-copy h1,.article-meta h1,.footer-cta h2{
  text-wrap:balance;
}
.card,.news-card,.value-card,.contact-box,.dgri-mission{
  border-color:rgba(47,73,53,.12)!important;
}
.card:hover,.news-card:hover,.value-card:hover,.contact-box:hover,.dgri-mission:hover{
  transform:translateY(-5px)!important;
  box-shadow:0 18px 40px rgba(31,55,38,.10)!important;
}
.card img,.news-card img,.dgri-mission img{
  transition:transform .45s ease!important;
}
.card:hover img,.news-card:hover img,.dgri-mission:hover img{
  transform:scale(1.025)
}
.card .body,.news-card .body{
  padding:22px!important;
}
.card h3,.news-card h3{
  letter-spacing:.1px
}
.tech-panel,.media-stack,.adaptive-media-frame,.inner-image{
  box-shadow:0 18px 42px rgba(31,55,38,.08)!important;
}
.dgri-section{
  background:
    linear-gradient(120deg,#eef3ef 0%,#f4f7f4 100%)!important;
}
.doctrine-section{
  background:
    linear-gradient(120deg,#fff 0%,#fafbf9 100%)!important;
}
.doctrine-copy{
  box-shadow:0 14px 35px rgba(31,55,38,.06)
}
.news-heading{
  margin-bottom:8px
}
.news-card .body p{
  line-height:1.62!important
}
.gallery-item:hover{
  transform:translateY(-4px)!important
}
.inner-hero{
  background:
    linear-gradient(120deg,#f5f8f5,#fff)!important
}
.inner-image,.article-main-image{
  box-shadow:0 22px 52px rgba(31,55,38,.10)!important
}
.article-body{
  max-width:980px!important
}
.article-body p{
  font-size:18px!important;
  line-height:1.82!important
}
.page-feature{
  border-left:5px solid var(--accent)!important;
  box-shadow:0 12px 28px rgba(31,55,38,.05)
}
.portal-strip{
  background:linear-gradient(90deg,#203228,#2d4534)!important
}
.footer-cta{
  background:
    linear-gradient(120deg,#2d4534,#203228 65%,#18261d)!important
}
.footer-main{
  background:
    radial-gradient(circle at 10% 0%,rgba(223,195,116,.07),transparent 25%),
    #203228!important
}
.footer-col a:hover{
  color:#fff!important;
  padding-left:4px
}
.back-to-top{
  transition:all .2s ease!important
}
.back-to-top:hover{
  transform:translateY(-3px)!important
}

/* subtle reveal animation */
.reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s ease,transform .6s ease
}
.reveal.visible{
  opacity:1;
  transform:none
}

/* Better text readability */
.section p,.adaptive-copy p,.article-meta p,.footer-brand p{
  letter-spacing:.01em
}
@media(max-width:900px){
  .home-hero-grid{gap:24px!important}
  .section{padding-top:58px!important;padding-bottom:58px!important}
}

/* V17.3 — CEMGA + mission overview */
.mission-overview-actions{
  display:flex;gap:12px;flex-wrap:wrap;margin-top:22px
}
.mission-slider{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#eef3ef;
  box-shadow:0 16px 38px rgba(31,55,38,.08);
  margin-top:28px
}
.mission-slider-track{
  display:flex;
  gap:12px;
  width:max-content;
  padding:12px;
  animation:missionScroll 30s linear infinite
}
.mission-slider:hover .mission-slider-track{animation-play-state:paused}
.mission-slider-item{
  flex:0 0 auto;
  width:380px;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line)
}
.mission-slider-item img{
  display:block;
  width:100%;
  height:260px;
  object-fit:contain;
  background:#eef3ef
}
@keyframes missionScroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.cemga-intro{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:center
}
.cemga-links{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  margin-top:24px
}
.cemga-link{
  padding:22px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 26px rgba(31,55,38,.06);
  transition:.22s
}
.cemga-link:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(31,55,38,.10)}
.cemga-link b{
  display:block;
  font:800 26px "Barlow Condensed";
  color:var(--primary);
  margin-bottom:7px
}
.cemga-link span{color:var(--muted);font-size:14px;line-height:1.55}
@media(max-width:900px){
  .cemga-intro{grid-template-columns:1fr}
  .cemga-links{grid-template-columns:1fr}
  .mission-slider-item{width:300px}
}

/* V17.4 — rich component pages */
.branch-sections{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin-top:32px;
}
.branch-card{
  display:grid;
  grid-template-columns:180px 1fr;
  min-height:180px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  box-shadow:0 10px 28px rgba(31,55,38,.06);
  transition:.22s;
}
.branch-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(31,55,38,.10)
}
.branch-card img{
  width:180px;
  height:100%;
  min-height:180px;
  object-fit:contain;
  background:#eef3ef;
}
.branch-card .body{
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.branch-card h3{
  font:800 26px "Barlow Condensed";
  color:var(--primary);
  margin:0 0 9px;
}
.branch-card p{font-size:14px;line-height:1.6;margin:0}
.branch-kpis{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:11px;
  margin:30px 0;
}
.branch-kpi{
  padding:20px 14px;
  text-align:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f4f7f4;
}
.branch-kpi b{
  display:block;
  font:800 27px "Barlow Condensed";
  color:var(--accent);
}
.branch-kpi span{
  display:block;
  margin-top:4px;
  font-size:11px;
  color:#657269;
}
.branch-focus{
  margin-top:26px;
  padding:28px;
  border-left:6px solid var(--accent);
  border-radius:0 12px 12px 0;
  background:linear-gradient(120deg,#eef3ef,#f8faf8);
}
.branch-focus h3{
  font:800 34px "Barlow Condensed";
  color:var(--primary);
  margin:0 0 10px
}
.branch-focus p{font-size:15px;line-height:1.7;margin:0}
@media(max-width:950px){
  .branch-sections{grid-template-columns:1fr}
  .branch-kpis{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .branch-card{grid-template-columns:1fr}
  .branch-card img{width:100%;height:200px}
  .branch-kpis{grid-template-columns:1fr}
}

.bio-layout{display:grid;grid-template-columns:320px 1fr;gap:24px}
.bio-box{background:#f5f7f5;border:1px solid var(--line);border-radius:12px;padding:18px;position:sticky;top:110px}
.bio-box img{width:100%;height:260px;object-fit:contain;background:white;border-radius:8px}
.bio-box table{width:100%;font-size:14px}
.bio-box td{padding:8px;border-bottom:1px solid #d8e0d8}
.bio-content{background:#fff;padding:8px}
@media(max-width:900px){.bio-layout{grid-template-columns:1fr}}


/* V17.7 — navigation aux couleurs de la République de Djibouti */
.header{
  position:sticky!important;
  top:0!important;
  background:#ffffff!important;
  border-bottom:0!important;
  box-shadow:0 10px 30px rgba(30,55,75,.08)!important;
}
.header:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:5px;
  background:linear-gradient(90deg,
    #6ab2e3 0%,
    #6ab2e3 38%,
    #ffffff 38%,
    #ffffff 62%,
    #55a868 62%,
    #55a868 100%);
  z-index:5;
}
.header:after{
  content:"";
  position:absolute;
  left:0;
  top:5px;
  width:16px;
  height:16px;
  background:#d9272e;
  clip-path:polygon(0 0,100% 50%,0 100%);
  z-index:6;
}
.mainnav{
  align-items:stretch!important;
}
.nav-link,.nav-trigger{
  color:#25394c!important;
  position:relative!important;
}
.nav-link:hover,.nav-trigger:hover{
  color:#4b8fc3!important;
}
.nav-link.active,
.nav-trigger.active{
  color:#2f6f45!important;
}
.nav-link.active:after,
.nav-item.active-parent:after,
.nav-item.open:after{
  background:linear-gradient(90deg,#6ab2e3 0 36%,#d9272e 36% 50%,#55a868 50% 100%)!important;
  height:4px!important;
}
.submenu{
  border-top:4px solid #6ab2e3!important;
}
.submenu a:hover,
.submenu a.active{
  background:linear-gradient(90deg,rgba(106,178,227,.10),rgba(85,168,104,.10))!important;
  color:#2f6f45!important;
}
.admin{
  background:linear-gradient(135deg,#4b95c7,#2f6f45)!important;
  color:#fff!important;
}
.admin:hover{
  box-shadow:0 12px 26px rgba(75,149,199,.22)!important;
}
.portal-strip{
  background:linear-gradient(90deg,#5ea7d6 0%,#ffffff 48%,#ffffff 52%,#4f9b61 100%)!important;
  border-bottom:1px solid rgba(0,0,0,.06)!important;
}
.portal-strip b{
  color:#203a50!important;
}
.portal-strip a{
  color:#244d37!important;
  border-left:1px solid rgba(32,58,80,.14)!important;
}
.portal-strip a:hover{
  color:#d9272e!important;
}

/* V17.9 — NAVIGATION RECONSTRUITE / DRAPEAU DE DJIBOUTI */
.header{
  height:124px!important;
  min-height:124px!important;
  padding:0 3.2vw!important;
  display:grid!important;
  grid-template-columns:minmax(300px,1fr) auto!important;
  grid-template-rows:72px 52px!important;
  align-items:center!important;
  gap:0 20px!important;
  position:sticky!important;
  top:0!important;
  overflow:visible!important;
  background:#fff!important;
  border-bottom:0!important;
  box-shadow:0 12px 34px rgba(30,55,75,.09)!important;
}
.header:before,.header:after{display:none!important}
.brand{
  grid-column:1!important;
  grid-row:1!important;
  align-self:center!important;
  min-width:0!important;
  margin:0!important;
}
.logo-img{width:58px!important;height:58px!important}
.brand b{font-size:20px!important;line-height:1!important}
.brand span{font-size:9px!important;margin-top:4px!important}
.admin{
  grid-column:2!important;
  grid-row:1!important;
  justify-self:end!important;
  align-self:center!important;
  margin:0!important;
  padding:13px 18px!important;
  font-size:12px!important;
  background:linear-gradient(135deg,#5ba8db,#3e8b55)!important;
  border:1px solid rgba(255,255,255,.7)!important;
  box-shadow:0 8px 18px rgba(41,95,72,.15)!important;
}
.mainnav{
  grid-column:1/-1!important;
  grid-row:2!important;
  width:calc(100% + 6.4vw)!important;
  margin-left:-3.2vw!important;
  height:52px!important;
  min-height:52px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:nowrap!important;
  gap:clamp(7px,1.05vw,17px)!important;
  padding:5px max(22px,3vw)!important;
  position:relative!important;
  overflow:visible!important;
  background:linear-gradient(to bottom,#6bb5e5 0 50%,#56a86b 50% 100%)!important;
  isolation:isolate!important;
}
.mainnav:before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  left:0!important;top:0!important;bottom:0!important;
  width:94px!important;
  background:#fff!important;
  clip-path:polygon(0 0,100% 50%,0 100%)!important;
}
.mainnav:after{
  content:"★"!important;
  position:absolute!important;
  left:21px!important;top:50%!important;
  transform:translateY(-50%)!important;
  color:#d7282f!important;
  font-size:19px!important;
  z-index:1!important;
  line-height:1!important;
}
.nav-item{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  height:40px!important;
  flex:0 0 auto!important;
}
.nav-link,.nav-trigger{
  height:40px!important;
  min-height:40px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 clamp(8px,.75vw,13px)!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.56)!important;
  border-radius:7px!important;
  background:rgba(255,255,255,.88)!important;
  backdrop-filter:blur(5px)!important;
  box-shadow:0 2px 8px rgba(20,55,60,.05)!important;
  color:#203c4b!important;
  font:800 clamp(11px,.8vw,14px) "Barlow Condensed",sans-serif!important;
  letter-spacing:.35px!important;
  white-space:nowrap!important;
  line-height:1!important;
}
.nav-trigger{cursor:pointer!important;gap:5px!important}
.nav-trigger .chev{font-size:9px!important;color:#315c49!important}
.nav-link:hover,.nav-trigger:hover,
.nav-link.active,.nav-trigger.active{
  background:#fff!important;
  color:#1e5e3b!important;
  transform:translateY(-1px)!important;
  box-shadow:0 5px 14px rgba(20,55,60,.14)!important;
}
.nav-link.active:after{display:none!important}
.nav-item.active-parent:after,.nav-item.open:after{
  content:""!important;
  position:absolute!important;
  left:10px!important;right:10px!important;bottom:1px!important;
  height:3px!important;
  background:#d7282f!important;
  border-radius:4px!important;
  z-index:4!important;
}
.submenu{
  top:calc(100% + 5px)!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  min-width:260px!important;
  max-width:340px!important;
  padding:8px!important;
  border:1px solid rgba(60,93,75,.16)!important;
  border-top:4px solid #6bb5e5!important;
  border-radius:9px!important;
  background:#fff!important;
  box-shadow:0 18px 40px rgba(21,51,37,.18)!important;
  z-index:500!important;
}
.submenu a{
  display:block!important;
  padding:11px 12px!important;
  margin:0!important;
  border-radius:6px!important;
  color:#2d4637!important;
  background:#fff!important;
  font:800 13px "Barlow Condensed",sans-serif!important;
  white-space:normal!important;
  line-height:1.15!important;
}
.submenu a:hover,.submenu a.active{
  background:linear-gradient(90deg,rgba(107,181,229,.13),rgba(86,168,107,.12))!important;
  color:#1e5e3b!important;
}
.portal-strip{
  min-height:38px!important;
  height:38px!important;
  padding:0 3.2vw!important;
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  overflow-x:auto!important;
  background:#f7f9f8!important;
  border-bottom:1px solid rgba(47,73,53,.11)!important;
  box-shadow:none!important;
}
.portal-strip b{
  color:#315267!important;
  padding-right:13px!important;
  font-size:10px!important;
}
.portal-strip a{
  min-height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  padding:0 13px!important;
  color:#31543d!important;
  border-left:1px solid rgba(47,73,53,.11)!important;
  font-size:10px!important;
}
.portal-strip a:hover{color:#d7282f!important}
@media(max-width:1180px){
 .header{grid-template-columns:minmax(240px,1fr) auto!important}
 .mainnav{gap:6px!important;padding-left:70px!important;padding-right:14px!important}
 .nav-link,.nav-trigger{font-size:11px!important;padding:0 7px!important}
}
@media(max-width:900px){
 .header{height:82px!important;min-height:82px!important;display:flex!important;padding:0 4vw!important}
 .mainnav{display:none!important}
 .portal-strip{display:none!important}
 .logo-img{width:54px!important;height:54px!important}
}


/* V17.10 — HIGH-TECH MILITAIRE */
:root{
  --primary:#173226!important;
  --primary2:#274d3b!important;
  --accent:#c6a24b!important;
  --khaki:#78805e!important;
  --tech:#50b7c8!important;
  --tech2:#7bd4e1!important;
  --ink:#18221c!important;
  --muted:#607067!important;
  --surface:#f4f7f5!important;
  --line:rgba(23,50,38,.14)!important;
}

/* Aucun trait au simple survol */
.nav-link:hover:after,.nav-trigger:hover:after,.mainnav a:hover:after{display:none!important}
.nav-link:not(.active):after{display:none!important}
.nav-trigger:not(.active):after{display:none!important}
.nav-item:not(.active-parent):not(.open):after{display:none!important}

/* Trait uniquement pour la page active / menu ouvert */
.nav-link.active:after,.nav-item.active-parent:after,.nav-item.open:after{
  display:block!important;
  content:""!important;
  position:absolute!important;
  left:0!important;right:0!important;bottom:0!important;
  height:4px!important;
  background:linear-gradient(90deg,#59aee0 0 34%,#d92c35 34% 45%,#58a96c 45% 100%)!important;
}

body{
  color:var(--ink)!important;
  background:
    radial-gradient(circle at 12% 12%,rgba(80,183,200,.05),transparent 27%),
    radial-gradient(circle at 88% 20%,rgba(120,128,94,.05),transparent 28%),
    #fbfcfb!important;
}
body:before{
  background-image:
    linear-gradient(rgba(23,50,38,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(23,50,38,.025) 1px,transparent 1px)!important;
  background-size:34px 34px!important;
}

.header{
  background:rgba(250,252,251,.985)!important;
  box-shadow:0 12px 32px rgba(12,29,20,.10)!important;
}
.brand b{color:#173226!important}
.brand span{color:#67766d!important}
.nav-link,.nav-trigger{color:#173226!important}
.nav-link:hover,.nav-trigger:hover{
  color:#337d89!important;
  background:rgba(80,183,200,.055)!important;
}
.nav-link.active,.nav-trigger.active{
  color:#173226!important;
  background:rgba(23,50,38,.07)!important;
}
.submenu{
  background:rgba(249,252,250,.985)!important;
  border-color:rgba(23,50,38,.12)!important;
  border-top:3px solid #50b7c8!important;
  box-shadow:0 20px 45px rgba(10,28,18,.16)!important;
  backdrop-filter:blur(14px)!important;
}
.submenu a{color:#203b2e!important}
.submenu a:hover,.submenu a.active{
  background:linear-gradient(90deg,rgba(80,183,200,.10),rgba(23,50,38,.07))!important;
  color:#1d6570!important;
}
.admin,.btn.primary{
  background:linear-gradient(135deg,#173226,#285440)!important;
  color:#fff!important;
  border:1px solid rgba(123,212,225,.18)!important;
  box-shadow:0 10px 24px rgba(17,42,29,.14)!important;
}
.admin:hover,.btn.primary:hover{
  background:linear-gradient(135deg,#214b39,#337d89)!important;
  box-shadow:0 15px 32px rgba(35,105,116,.20)!important;
}
.btn.secondary{
  background:rgba(255,255,255,.96)!important;
  color:#173226!important;
  border:1px solid rgba(23,50,38,.16)!important;
}
.btn.secondary:hover{border-color:rgba(80,183,200,.42)!important;background:#f2f8f8!important}

.home-hero{
  position:relative!important;
  background:
    linear-gradient(115deg,rgba(247,250,248,.98),rgba(255,255,255,.99)),
    radial-gradient(circle at 75% 30%,rgba(80,183,200,.08),transparent 35%)!important;
}
.home-hero:after{
  content:"";
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(80,183,200,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(80,183,200,.035) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(90deg,transparent 0%,#000 48%,#000 100%);
}
.hero-copy,.hero-visual{position:relative;z-index:2}
.eyebrow{
  color:#1d6570!important;
  border-color:rgba(80,183,200,.30)!important;
  background:rgba(255,255,255,.92)!important;
}
.hero-copy h1{color:#173226!important}
.hero-visual{
  border:1px solid rgba(80,183,200,.24)!important;
  box-shadow:0 28px 72px rgba(14,35,24,.16)!important;
}
.hero-visual:before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  border:1px solid rgba(123,212,225,.10);
  background:
    linear-gradient(90deg,transparent 49.8%,rgba(80,183,200,.08) 50%,transparent 50.2%),
    linear-gradient(transparent 49.8%,rgba(80,183,200,.08) 50%,transparent 50.2%);
}

.card,.news-card,.value-card,.contact-box,.branch-card,.dgri-mission,.related-card,.cemga-link{
  background:linear-gradient(145deg,#fff,#f8faf9)!important;
  border:1px solid rgba(23,50,38,.12)!important;
  box-shadow:0 10px 28px rgba(15,35,23,.065)!important;
}
.card:hover,.news-card:hover,.value-card:hover,.contact-box:hover,.branch-card:hover,.dgri-mission:hover,.related-card:hover,.cemga-link:hover{
  border-color:rgba(80,183,200,.30)!important;
  box-shadow:0 18px 42px rgba(13,36,24,.12),0 0 0 1px rgba(80,183,200,.08)!important;
}
.card h3,.news-card h3,.branch-card h3,.cemga-link b{color:#173226!important}
.readmore,.card a{color:#2b7d88!important}

.section h2,.inner-copy h1,.article-meta h1,.branch-focus h3,.page-feature h3{color:#173226!important}
.kicker{color:#537060!important}
.kicker:before{background:linear-gradient(90deg,#50b7c8,#c6a24b)!important}

.section.soft,.dgri-section{
  background:
    linear-gradient(rgba(239,244,241,.97),rgba(239,244,241,.97)),
    linear-gradient(90deg,rgba(80,183,200,.025),rgba(23,50,38,.025))!important;
}
.doctrine-section{background:linear-gradient(135deg,#fff,#f4f8f6)!important}
.doctrine-copy,.branch-focus,.page-feature{
  border-left-color:#50b7c8!important;
  background:linear-gradient(120deg,#eef6f5,#f7faf8)!important;
}
.tech-panel{background:#101c16!important;border-color:rgba(80,183,200,.30)!important}
.tech-grid{
  background-image:
    linear-gradient(rgba(80,183,200,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(80,183,200,.11) 1px,transparent 1px)!important;
}
.tech-chip{
  border-color:rgba(80,183,200,.4)!important;
  color:#286b75!important;
  background:rgba(248,252,251,.94)!important;
}

.stats b,.branch-kpi b{color:#2c7d88!important}
.branch-kpi{
  background:linear-gradient(145deg,#eff6f4,#f8faf8)!important;
  border-color:rgba(23,50,38,.12)!important;
}
.gallery-item{border-color:rgba(23,50,38,.12)!important;background:#eef3f0!important}
.gallery-item:hover{border-color:rgba(80,183,200,.35)!important}
.lightbox{background:rgba(7,15,11,.94)!important;backdrop-filter:blur(8px)!important}

.article-meta{background:linear-gradient(145deg,#eff5f2,#fafcfb)!important}
.article-meta .category{background:#173226!important}

.bio-box{
  background:linear-gradient(145deg,#eff4f1,#f9fbfa)!important;
  border-color:rgba(23,50,38,.14)!important;
  box-shadow:0 12px 30px rgba(14,34,23,.08)!important;
}
.bio-box table td:first-child{color:#356873!important;font-weight:700!important}

footer{background:#0f2118!important;border-top:5px solid #50b7c8!important}
.footer-cta{
  background:
    radial-gradient(circle at 80% 20%,rgba(80,183,200,.13),transparent 28%),
    linear-gradient(120deg,#173226,#0f2118)!important;
}
.footer-main{
  background:linear-gradient(135deg,rgba(80,183,200,.03),transparent 35%),#0f2118!important;
}
.footer-col b{color:#7bd4e1!important}
.footer-col a:hover{color:#7bd4e1!important}
.back-to-top{
  background:linear-gradient(135deg,#173226,#2b7580)!important;
  border:1px solid rgba(123,212,225,.2)!important;
}

.hero-slide,.media-stack img,.news-track,.related-track{will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}


/* ============================================================
   V17.13 — HEADER NOUVEAU
   ============================================================ */
.site-header{
  position:sticky;
  top:0;
  z-index:140;
  background:#ffffff;
  border-bottom:1px solid rgba(23,50,38,.10);
  box-shadow:0 10px 30px rgba(11,28,19,.08);
  backdrop-filter:blur(14px);
}
.header-top{
  min-height:88px;
  padding:0 3.5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:
    linear-gradient(90deg,rgba(23,50,38,.02),transparent 28%,transparent 72%,rgba(80,183,200,.025));
  border-bottom:1px solid rgba(23,50,38,.08);
}
.brand-lockup{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.brand-lockup .logo-img{
  width:62px;
  height:62px;
  object-fit:contain;
  flex:0 0 auto;
}
.brand-copy{
  min-width:0;
}
.brand-copy b{
  display:block;
  color:#173226;
  font:800 24px/1 "Barlow Condensed",sans-serif;
  letter-spacing:1px;
  white-space:nowrap;
}
.brand-copy span{
  display:block;
  margin-top:4px;
  color:#6c7b72;
  font-size:9px;
  letter-spacing:1.5px;
  white-space:nowrap;
}
.header-tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}
.site-search-btn{
  width:44px!important;
  height:44px!important;
  border-radius:10px!important;
  border:1px solid rgba(23,50,38,.12)!important;
  background:#f7faf8!important;
  color:#173226!important;
  box-shadow:none!important;
}
.site-search-btn:hover{
  background:#edf6f5!important;
  border-color:rgba(80,183,200,.35)!important;
}
.admin{
  min-height:44px!important;
  padding:0 17px!important;
  border-radius:10px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#173226!important;
  color:#fff!important;
  border:1px solid rgba(23,50,38,.16)!important;
  box-shadow:none!important;
}
.admin:hover{
  background:#285440!important;
  transform:none!important;
  box-shadow:0 8px 20px rgba(23,50,38,.13)!important;
}

.header-navline{
  min-height:56px;
  padding:0 2.5vw;
  display:flex;
  align-items:center;
  background:
    linear-gradient(90deg,#f9fbfa 0%,#ffffff 45%,#f7faf8 100%);
}
.mainnav{
  width:100%!important;
  height:56px!important;
  min-height:56px!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:4px!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
}
.nav-item{
  height:56px!important;
  display:flex!important;
  align-items:stretch!important;
  position:relative!important;
}
.nav-link,.nav-trigger{
  height:56px!important;
  min-height:56px!important;
  padding:0 13px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font:800 14px "Barlow Condensed",sans-serif!important;
  letter-spacing:.55px!important;
  color:#223a2d!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  white-space:nowrap!important;
  transition:background .16s ease,color .16s ease!important;
}
.nav-link:hover,.nav-trigger:hover{
  color:#2e747d!important;
  background:rgba(80,183,200,.055)!important;
}
.nav-link:hover:after,.nav-trigger:hover:after,.mainnav a:hover:after{
  display:none!important;
}
.nav-link.active,.nav-trigger.active{
  color:#173226!important;
  background:rgba(23,50,38,.045)!important;
}
.nav-link.active:after,
.nav-item.active-parent:after,
.nav-item.open:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:12px!important;
  right:12px!important;
  bottom:0!important;
  height:3px!important;
  border-radius:3px 3px 0 0!important;
  background:#50b7c8!important;
}
.submenu{
  top:56px!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  min-width:260px!important;
  background:#fff!important;
  border:1px solid rgba(23,50,38,.11)!important;
  border-top:3px solid #50b7c8!important;
  border-radius:0 0 12px 12px!important;
  box-shadow:0 18px 38px rgba(14,34,23,.13)!important;
  padding:8px!important;
}
.submenu a{
  display:block!important;
  padding:11px 12px!important;
  border-radius:7px!important;
  color:#2b4034!important;
}
.submenu a:hover,.submenu a.active{
  background:#edf6f4!important;
  color:#246d76!important;
}

@media(max-width:1180px){
  .header-top{
    min-height:80px;
    padding:0 22px;
  }
  .brand-lockup .logo-img{
    width:56px;
    height:56px;
  }
  .brand-copy b{font-size:21px}
  .header-navline{
    padding:0 12px;
  }
  .mainnav{
    justify-content:flex-start!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .mainnav::-webkit-scrollbar{display:none!important}
  .nav-link,.nav-trigger{
    flex:0 0 auto!important;
    font-size:13px!important;
    padding:0 11px!important;
  }
}

/* Smartphone */
@media(max-width:760px){
  .site-header{
    position:sticky;
    top:0;
  }
  .header-top{
    min-height:76px;
    padding:8px 12px;
    gap:10px;
  }
  .brand-lockup{
    gap:9px;
    min-width:0;
    flex:1 1 auto;
  }
  .brand-lockup .logo-img{
    width:46px;
    height:46px;
  }
  .brand-copy{
    min-width:0;
  }
  .brand-copy b{
    font-size:16px;
    line-height:1;
    white-space:normal;
  }
  .brand-copy span{
    font-size:7px;
    line-height:1.2;
    letter-spacing:.9px;
    white-space:normal;
  }
  .header-tools{
    gap:6px;
  }
  .site-search-btn{
    width:38px!important;
    height:38px!important;
    border-radius:8px!important;
    font-size:21px!important;
  }
  .admin{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0!important;
    font-size:0!important;
    border-radius:8px!important;
  }
  .admin:before{
    content:"A";
    font:800 15px "Barlow Condensed",sans-serif;
  }

  .header-navline{
    min-height:48px;
    padding:0 8px;
  }
  .mainnav{
    height:48px!important;
    min-height:48px!important;
    justify-content:flex-start!important;
    gap:5px!important;
  }
  .nav-item{
    position:static!important;
    height:48px!important;
    flex:0 0 auto!important;
  }
  .nav-link,.nav-trigger{
    height:48px!important;
    min-height:48px!important;
    flex:0 0 auto!important;
    padding:0 10px!important;
    font-size:12.5px!important;
  }
  .submenu{
    position:fixed!important;
    top:124px!important;
    left:10px!important;
    right:10px!important;
    transform:none!important;
    min-width:0!important;
    max-width:none!important;
    max-height:55vh!important;
    overflow:auto!important;
  }
  .submenu a{
    white-space:normal!important;
    font-size:13px!important;
    line-height:1.25!important;
  }
}

/* Very small phones */
@media(max-width:390px){
  .header-top{
    padding-left:9px;
    padding-right:9px;
  }
  .brand-lockup .logo-img{
    width:42px;
    height:42px;
  }
  .brand-copy b{font-size:14px}
  .brand-copy span{font-size:6.5px}
  .nav-link,.nav-trigger{font-size:12px!important}
}


/* ============================================================
   V17.14 — HIGH-TECH MILITARY DARK
   ============================================================ */
:root{
  --primary:#dce8e2!important;
  --primary2:#1a3328!important;
  --accent:#65c7d3!important;
  --khaki:#8a9273!important;
  --tech:#65c7d3!important;
  --tech2:#8fe0e8!important;
  --bg:#0a120e!important;
  --surface:#101c16!important;
  --surface2:#14251c!important;
  --ink:#e9f0ec!important;
  --muted:#9eb0a6!important;
  --line:rgba(143,224,232,.13)!important;
}
html{background:#0a120e!important}
body{
  color:var(--ink)!important;
  background:
    radial-gradient(circle at 15% 8%,rgba(101,199,211,.08),transparent 24%),
    radial-gradient(circle at 85% 18%,rgba(92,120,88,.08),transparent 28%),
    linear-gradient(180deg,#0a120e 0%,#0d1712 45%,#09100c 100%)!important;
}
body:before{
  background-image:
    linear-gradient(rgba(101,199,211,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(101,199,211,.035) 1px,transparent 1px)!important;
  background-size:38px 38px!important;
  opacity:.55!important;
}
.topline{display:none!important}

/* -------- New command header -------- */
.command-header{
  position:sticky;
  top:0;
  z-index:150;
  background:rgba(7,15,11,.96);
  border-bottom:1px solid rgba(101,199,211,.16);
  box-shadow:0 14px 34px rgba(0,0,0,.30);
  backdrop-filter:blur(18px);
}
.command-header-inner{
  min-height:96px;
  padding:0 3.2vw;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  position:relative;
}
.command-header-inner:after{
  content:"";
  position:absolute;
  left:3.2vw;right:3.2vw;bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(101,199,211,.30),transparent);
}
.command-brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.command-logo-frame{
  width:68px;height:68px;
  border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(101,199,211,.05));
  border:1px solid rgba(101,199,211,.20);
  box-shadow:inset 0 0 24px rgba(101,199,211,.05),0 8px 20px rgba(0,0,0,.18);
}
.command-logo-frame .logo-img{
  width:58px!important;height:58px!important;object-fit:contain!important;
}
.command-brand-copy{min-width:0}
.command-brand-copy .command-kicker{
  display:block;
  font:700 9px "Barlow Condensed",sans-serif;
  letter-spacing:1.8px;
  color:#65c7d3;
  margin-bottom:3px;
}
.command-brand-copy b{
  display:block;
  color:#eef5f1;
  font:800 24px/1 "Barlow Condensed",sans-serif;
  letter-spacing:1px;
  white-space:nowrap;
}
.command-brand-copy > span:last-child{
  display:block;
  margin-top:4px;
  color:#8fa59a;
  font-size:9px;
  letter-spacing:1.3px;
  white-space:nowrap;
}

.command-status{
  justify-self:center;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(101,199,211,.06);
  border:1px solid rgba(101,199,211,.18);
}
.status-dot{
  width:8px;height:8px;border-radius:50%;
  background:#69d59a;
  box-shadow:0 0 0 4px rgba(105,213,154,.08),0 0 14px rgba(105,213,154,.45);
}
.command-status small{
  display:block;
  color:#71887c;
  font:700 8px "Barlow Condensed",sans-serif;
  letter-spacing:1.2px;
}
.command-status strong{
  display:block;
  color:#bfe7cb;
  font:800 11px "Barlow Condensed",sans-serif;
  letter-spacing:1px;
}
.command-tools{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:10px;
}
.site-search-btn{
  width:44px!important;height:44px!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.045)!important;
  color:#8fe0e8!important;
  border:1px solid rgba(101,199,211,.18)!important;
}
.site-search-btn:hover{
  background:rgba(101,199,211,.10)!important;
}
.admin{
  min-height:44px!important;
  padding:0 17px!important;
  border-radius:10px!important;
  background:linear-gradient(135deg,#1c4436,#23616a)!important;
  color:#fff!important;
  border:1px solid rgba(101,199,211,.22)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.16)!important;
}

/* Navigation */
.command-nav-shell{
  min-height:58px;
  background:linear-gradient(180deg,rgba(13,26,19,.98),rgba(10,20,15,.98));
  border-top:1px solid rgba(255,255,255,.02);
}
.mainnav{
  width:100%!important;
  height:58px!important;
  min-height:58px!important;
  display:flex!important;
  justify-content:center!important;
  align-items:stretch!important;
  gap:4px!important;
  padding:0 2.2vw!important;
  overflow:visible!important;
}
.nav-item{height:58px!important;display:flex!important;align-items:stretch!important}
.nav-link,.nav-trigger{
  height:58px!important;
  min-height:58px!important;
  padding:0 13px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#bdcbc4!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  font:800 14px "Barlow Condensed",sans-serif!important;
  letter-spacing:.55px!important;
  white-space:nowrap!important;
}
.nav-link:hover,.nav-trigger:hover{
  color:#8fe0e8!important;
  background:rgba(101,199,211,.05)!important;
}
.nav-link:hover:after,.nav-trigger:hover:after,.mainnav a:hover:after{display:none!important}
.nav-link.active,.nav-trigger.active{
  color:#eef7f3!important;
  background:rgba(101,199,211,.07)!important;
}
.nav-link.active:after,.nav-item.active-parent:after,.nav-item.open:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:12px!important;right:12px!important;bottom:0!important;
  height:3px!important;
  background:#65c7d3!important;
  border-radius:3px 3px 0 0!important;
}
.submenu{
  top:58px!important;
  min-width:290px!important;
  max-width:390px!important;
  background:rgba(12,24,18,.985)!important;
  border:1px solid rgba(101,199,211,.15)!important;
  border-top:3px solid #65c7d3!important;
  box-shadow:0 22px 48px rgba(0,0,0,.34)!important;
  border-radius:0 0 12px 12px!important;
  padding:8px!important;
}
.submenu a{
  color:#b8c8c0!important;
  background:transparent!important;
  border-radius:7px!important;
  padding:11px 12px!important;
}
.submenu a:hover,.submenu a.active{
  background:rgba(101,199,211,.08)!important;
  color:#9ce7ee!important;
}

/* -------- Page backgrounds -------- */
.home-hero,.inner-hero{
  background:
    radial-gradient(circle at 72% 22%,rgba(101,199,211,.09),transparent 30%),
    linear-gradient(135deg,#0d1913,#0b140f)!important;
  border-color:rgba(101,199,211,.12)!important;
}
.section{
  background:linear-gradient(180deg,#0d1712,#0b140f)!important;
}
.section.soft,.dgri-section{
  background:
    linear-gradient(180deg,rgba(18,34,26,.98),rgba(12,24,18,.98))!important;
}
.doctrine-section{
  background:linear-gradient(135deg,#111f18,#0b1510)!important;
}
.lower-cta{
  background:#0f1d16!important;
  border-color:rgba(101,199,211,.12)!important;
}
.breadcrumb{
  background:#0d1812!important;
  border-color:rgba(101,199,211,.10)!important;
  color:#80958a!important;
}
.breadcrumb a{color:#8fe0e8!important}

.section h2,.inner-copy h1,.hero-copy h1,.article-meta h1,
.card h3,.news-card h3,.branch-card h3,.value-card b,.contact-box h3,
.cemga-link b,.branch-focus h3,.page-feature h3{
  color:#edf5f1!important;
}
.section p,.hero-copy .lead,.inner-copy p,.card p,.news-card p,.value-card p,
.branch-card p,.contact-box p,.article-body p,.article-lead{
  color:#9fb0a7!important;
}
.kicker{color:#65c7d3!important}
.kicker:before{background:#65c7d3!important}
.eyebrow{
  color:#8fe0e8!important;
  background:rgba(101,199,211,.06)!important;
  border-color:rgba(101,199,211,.20)!important;
}

/* Panels/cards */
.card,.news-card,.value-card,.contact-box,.branch-card,.dgri-mission,.related-card,
.cemga-link,.article-meta,.bio-box,.adaptive-media-frame,.inner-image,.page-feature,.branch-focus{
  background:linear-gradient(145deg,#121f19,#0e1914)!important;
  border:1px solid rgba(101,199,211,.12)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.18)!important;
}
.card:hover,.news-card:hover,.branch-card:hover,.related-card:hover,.cemga-link:hover{
  border-color:rgba(101,199,211,.30)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.26),0 0 0 1px rgba(101,199,211,.05)!important;
}
.card img,.news-card img,.branch-card img,.related-card img,.dgri-mission img,
.article-main-image img,.article-gallery img,.adaptive-media-frame img{
  background:#0a120e!important;
}
.btn.primary{
  background:linear-gradient(135deg,#1b4b3a,#256f79)!important;
  border-color:rgba(101,199,211,.20)!important;
}
.btn.secondary{
  background:rgba(255,255,255,.04)!important;
  color:#d6e4dd!important;
  border-color:rgba(101,199,211,.16)!important;
}
.btn.secondary:hover{background:rgba(101,199,211,.08)!important}

.stats{
  background:#0c1711!important;
  border-color:rgba(101,199,211,.10)!important;
}
.stats div{border-color:rgba(101,199,211,.10)!important}
.stats b,.branch-kpi b{color:#65c7d3!important}
.stats span,.branch-kpi span{color:#82978c!important}
.branch-kpi{background:#101d16!important;border-color:rgba(101,199,211,.12)!important}

.tech-panel{
  background:#07100c!important;
  border-color:rgba(101,199,211,.22)!important;
}
.tech-grid{
  background-image:
    linear-gradient(rgba(101,199,211,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(101,199,211,.09) 1px,transparent 1px)!important;
}
.tech-chip{
  background:rgba(11,25,18,.94)!important;
  color:#8fe0e8!important;
  border-color:rgba(101,199,211,.25)!important;
}
.doctrine-copy,.branch-focus,.page-feature{
  background:linear-gradient(120deg,#11241b,#0d1a14)!important;
  border-left-color:#65c7d3!important;
}

/* -------- News alignment -------- */
.news-track,.news-grid{
  align-items:stretch!important;
}
.news-card{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  min-height:100%!important;
}
.news-card > a{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
}
.news-card img{
  width:100%!important;
  height:220px!important;
  object-fit:cover!important;
  flex:0 0 220px!important;
  background:#09110d!important;
}
.news-card.featured img{
  height:270px!important;
  flex-basis:270px!important;
}
.news-card .body{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  padding:20px!important;
}
.news-card .body small{
  min-height:18px!important;
  display:block!important;
}
.news-card .body h3{
  min-height:58px!important;
  margin:8px 0 10px!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
}
.news-card .body p{
  flex:1 1 auto!important;
  margin:0!important;
  display:-webkit-box!important;
  -webkit-line-clamp:4!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
}
.news-card .readmore{
  margin-top:14px!important;
  color:#65c7d3!important;
}

.news-page-feature{
  align-items:stretch!important;
}
.lead-news{
  min-height:500px!important;
}
.lead-news img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.news-side{
  display:grid!important;
  grid-template-rows:repeat(3,1fr)!important;
  align-items:stretch!important;
}
.mini-news{
  height:100%!important;
  min-height:130px!important;
  grid-template-columns:150px minmax(0,1fr)!important;
  align-items:stretch!important;
  background:#101d16!important;
}
.mini-news img{
  width:150px!important;
  height:100%!important;
  min-height:120px!important;
  object-fit:cover!important;
}
.mini-news > div{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding-right:8px!important;
}
.mini-news h3{
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
}

/* article detail alignment */
.article-hero{
  align-items:stretch!important;
}
.article-main-image{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#09110d!important;
}
.article-main-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.article-meta{
  height:100%!important;
}
.article-gallery{
  align-items:stretch!important;
}
.article-gallery img{
  height:320px!important;
  object-fit:cover!important;
}

/* Gallery, footer */
.gallery-item{background:#0d1812!important;border-color:rgba(101,199,211,.12)!important}
footer{
  background:#07100c!important;
  border-top:4px solid #65c7d3!important;
}
.footer-cta{
  background:
    radial-gradient(circle at 80% 20%,rgba(101,199,211,.12),transparent 30%),
    linear-gradient(120deg,#12271d,#07100c)!important;
}
.footer-main{background:#07100c!important}
.footer-col b{color:#65c7d3!important}
.footer-col a{color:#aebdb6!important}
.footer-col a:hover{color:#8fe0e8!important}

/* Mobile */
@media(max-width:760px){
  .command-header-inner{
    min-height:82px;
    padding:8px 12px;
    grid-template-columns:minmax(0,1fr) auto;
  }
  .command-brand{
    gap:9px;
  }
  .command-logo-frame{
    width:52px;height:52px;border-radius:10px;
  }
  .command-logo-frame .logo-img{
    width:45px!important;height:45px!important;
  }
  .command-brand-copy .command-kicker{font-size:7px}
  .command-brand-copy b{
    font-size:16px;
    white-space:normal;
  }
  .command-brand-copy > span:last-child{
    font-size:7px;
    white-space:normal;
  }
  .command-status{display:none}
  .command-tools{gap:6px}
  .site-search-btn{width:38px!important;height:38px!important}
  .admin{
    width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;
    padding:0!important;font-size:0!important;
  }
  .admin:before{
    content:"A";
    font:800 15px "Barlow Condensed",sans-serif;
  }
  .command-nav-shell{min-height:50px}
  .mainnav{
    height:50px!important;min-height:50px!important;
    justify-content:flex-start!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    gap:5px!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
    padding:0 8px!important;
  }
  .mainnav::-webkit-scrollbar{display:none!important}
  .nav-item{
    height:50px!important;
    position:static!important;
    flex:0 0 auto!important;
  }
  .nav-link,.nav-trigger{
    height:50px!important;min-height:50px!important;
    flex:0 0 auto!important;
    padding:0 10px!important;
    font-size:12.5px!important;
  }
  .submenu{
    position:fixed!important;
    top:132px!important;
    left:10px!important;
    right:10px!important;
    transform:none!important;
    min-width:0!important;
    max-width:none!important;
    max-height:55vh!important;
    overflow:auto!important;
  }

  .news-card img,.news-card.featured img{
    height:220px!important;
    flex-basis:220px!important;
  }
  .news-card .body h3{
    min-height:0!important;
  }
  .news-page-feature{
    grid-template-columns:1fr!important;
  }
  .news-side{
    grid-template-rows:none!important;
  }
  .mini-news{
    grid-template-columns:110px minmax(0,1fr)!important;
    min-height:110px!important;
  }
  .mini-news img{
    width:110px!important;
    min-height:110px!important;
  }
  .article-main-image img,.article-gallery img{
    height:auto!important;
    max-height:420px!important;
  }
}


/* ============================================================
   V17.16 — CORRECTION STABLE
   ============================================================ */

/* Hide old compatibility values */
.js-brand-value{display:none!important}

/* Completely remove any obsolete portal/access-strip rendering */
.portal-strip,
#portalStrip{
  display:none!important;
  height:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
}

/* Exact institutional identity */
.command-brand-copy{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:2px!important;
  min-width:0!important;
}
.command-kicker{display:none!important}
.brand-country{
  color:#dce8e2!important;
  font:700 11px/1.1 "Barlow Condensed",sans-serif!important;
  letter-spacing:1.35px!important;
  white-space:nowrap!important;
}
.brand-ministry{
  color:#9bb4a9!important;
  font:700 10px/1.1 "Barlow Condensed",sans-serif!important;
  letter-spacing:1.15px!important;
  white-space:nowrap!important;
}
.brand-forces{
  color:#ffffff!important;
  font:800 25px/1.04 "Barlow Condensed",sans-serif!important;
  letter-spacing:1.05px!important;
  margin-top:3px!important;
  white-space:nowrap!important;
}

/* No operational status */
.command-status,
.status-dot{
  display:none!important;
}
.command-header-inner{
  grid-template-columns:minmax(0,1fr) auto!important;
}

/* Less-dark high-tech palette */
html{background:#142119!important}
body{
  background:
    radial-gradient(circle at 14% 7%,rgba(101,199,211,.10),transparent 26%),
    radial-gradient(circle at 87% 16%,rgba(121,145,112,.10),transparent 30%),
    linear-gradient(180deg,#18271f 0%,#16241c 48%,#131f18 100%)!important;
}
.home-hero,.inner-hero{
  background:
    radial-gradient(circle at 75% 20%,rgba(101,199,211,.12),transparent 34%),
    linear-gradient(135deg,#1d3025,#18271f)!important;
}
.section{
  background:linear-gradient(180deg,#1a2b22,#17251d)!important;
}
.section.soft,.dgri-section{
  background:linear-gradient(180deg,#203429,#1a2a22)!important;
}
.doctrine-section{
  background:linear-gradient(135deg,#203229,#18271f)!important;
}
.breadcrumb{background:#18271f!important}
.lower-cta{background:#1b2b22!important}

/* Header */
.command-header{
  background:linear-gradient(180deg,#13271e,#102019)!important;
  border-bottom:0!important;
  box-shadow:0 14px 34px rgba(0,0,0,.24)!important;
}
.command-header-inner{
  min-height:96px!important;
  padding:0 3.2vw!important;
}
.command-header-inner:after{
  display:none!important;
}
.command-logo-frame{
  background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(101,199,211,.07))!important;
  border-color:rgba(101,199,211,.22)!important;
}

/* Beautiful visible navigation */
.command-nav-shell{
  min-height:58px!important;
  background:
    radial-gradient(circle at 50% -120%,rgba(101,199,211,.18),transparent 55%),
    linear-gradient(90deg,#1e4536 0%,#23503e 46%,#1d4335 100%)!important;
  border:0!important;
  border-top:1px solid rgba(143,224,232,.10)!important;
  box-shadow:
    0 10px 24px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.025)!important;
  position:relative!important;
}
.command-nav-shell:after{
  content:""!important;
  position:absolute!important;
  left:4%!important;
  right:4%!important;
  bottom:0!important;
  height:1px!important;
  background:linear-gradient(90deg,transparent,rgba(101,199,211,.28),transparent)!important;
}
.mainnav{
  position:relative!important;
  z-index:2!important;
  border:0!important;
  box-shadow:none!important;
}
.nav-link,.nav-trigger{
  color:#edf5f1!important;
  font-size:14px!important;
  letter-spacing:.65px!important;
  text-shadow:0 1px 0 rgba(0,0,0,.18)!important;
}
.nav-link:hover,.nav-trigger:hover{
  color:#ffffff!important;
  background:rgba(143,224,232,.08)!important;
}
.nav-link:hover:after,
.nav-trigger:hover:after,
.mainnav a:hover:after{
  display:none!important;
}
.nav-link.active,.nav-trigger.active{
  color:#ffffff!important;
  background:rgba(101,199,211,.11)!important;
}
.nav-link.active:after,
.nav-item.active-parent:after,
.nav-item.open:after{
  display:block!important;
  height:4px!important;
  background:linear-gradient(90deg,#65c7d3,#a2e7eb)!important;
}

/* Submenus */
.submenu{
  background:#1a2d23!important;
  border-color:rgba(101,199,211,.18)!important;
  border-top:3px solid #65c7d3!important;
}
.submenu a{
  color:#d9e7df!important;
}
.submenu a:hover,.submenu a.active{
  color:#fff!important;
  background:rgba(101,199,211,.10)!important;
}

/* Cards lighter than V17.14 */
.card,.news-card,.value-card,.contact-box,.branch-card,.dgri-mission,
.related-card,.cemga-link,.article-meta,.bio-box,.adaptive-media-frame,
.inner-image,.page-feature,.branch-focus{
  background:linear-gradient(145deg,#21342a,#1a2a22)!important;
  border-color:rgba(101,199,211,.16)!important;
}
.branch-kpi,.stats,.mini-news{
  background:#1d3026!important;
}

/* ensure public content is visible and above any decorative layers */
#app,footer{
  position:relative!important;
  z-index:1!important;
}

/* Mobile */
@media(max-width:760px){
  .command-header-inner{
    min-height:82px!important;
    padding:8px 12px!important;
  }
  .command-brand{
    gap:9px!important;
  }
  .command-logo-frame{
    width:50px!important;
    height:50px!important;
  }
  .command-logo-frame .logo-img{
    width:43px!important;
    height:43px!important;
  }
  .brand-country{font-size:8px!important;letter-spacing:.7px!important}
  .brand-ministry{font-size:7.5px!important;letter-spacing:.65px!important}
  .brand-forces{
    font-size:16px!important;
    white-space:normal!important;
  }
}


/* ============================================================
   V17.17 — LISIBILITÉ DES TITRES / SOUS-TITRES
   ============================================================ */
.hero-copy h1,
.inner-copy h1,
.section h2,
.article-meta h1,
.footer-cta h2,
.branch-focus h3,
.page-feature h3,
.card h3,
.news-card h3,
.branch-card h3,
.cemga-link b{
  color:#f4f8f5!important;
  text-shadow:0 1px 0 rgba(0,0,0,.28)!important;
}

.hero-copy .lead,
.inner-copy p,
.section p,
.article-lead,
.article-body p,
.card p,
.news-card p,
.branch-card p,
.value-card p,
.contact-box p{
  color:#c3d0c9!important;
}

.inner-copy .kicker,
.kicker,
.news-card small,
.article-meta .date,
.article-meta .author,
.card .meta{
  color:#7ed4dd!important;
}

.command-brand-copy .brand-country{color:#e9f1ed!important}
.command-brand-copy .brand-ministry{color:#b1c4ba!important}
.command-brand-copy .brand-forces{color:#ffffff!important}

/* Stronger contrast on medium-dark blocks */
.card,.news-card,.branch-card,.value-card,.contact-box,.cemga-link,
.article-meta,.bio-box,.page-feature,.branch-focus{
  background:linear-gradient(145deg,#24382d,#1d3026)!important;
}

/* headings inside light-ish panels must never inherit dark text */
.card h3,.news-card h3,.branch-card h3,.value-card b,.contact-box h3,
.cemga-link b,.article-meta h1,.branch-focus h3,.page-feature h3{
  color:#f5faf7!important;
}

/* News cards perfectly aligned */
.news-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.news-card{
  height:100%!important;
}
.news-card > a{
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
}
.news-card img{
  height:230px!important;
  flex:0 0 230px!important;
  object-fit:cover!important;
}
.news-card .body{
  min-height:260px!important;
  display:flex!important;
  flex-direction:column!important;
}
.news-card .body h3{
  min-height:62px!important;
}
.news-card .body p{
  min-height:92px!important;
  flex:1 1 auto!important;
}
.news-card .readmore{
  margin-top:auto!important;
}

/* Article detail alignment */
.article-hero{
  display:grid!important;
  grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr)!important;
  align-items:stretch!important;
  gap:22px!important;
}
.article-main-image,
.article-meta{
  min-height:460px!important;
}
.article-main-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.article-meta{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}

/* Bio infobox */
.bio-box td:first-child{
  color:#8fe0e8!important;
  font-weight:700!important;
}
.bio-box td:last-child{
  color:#e5eee9!important;
}

/* mobile */
@media(max-width:900px){
  .news-grid{
    grid-template-columns:1fr!important;
  }
  .news-card img{
    height:220px!important;
    flex-basis:220px!important;
  }
  .news-card .body{
    min-height:0!important;
  }
  .news-card .body h3,
  .news-card .body p{
    min-height:0!important;
  }
  .article-hero{
    grid-template-columns:1fr!important;
  }
  .article-main-image,.article-meta{
    min-height:0!important;
  }
}


/* ============================================================
   V17.18 — LISIBILITÉ DU CONTENU / MILIEU PLUS CLAIR
   En-tête et pied de page conservés
   ============================================================ */

/* Search removed: keep tools aligned */
.command-tools{
  justify-self:end!important;
}
.site-search-btn{display:none!important}

/* Central content only: lighter military palette */
#app{
  background:
    linear-gradient(180deg,#e8eee9 0%,#dde7e0 52%,#d4e0d8 100%)!important;
  color:#1b2d23!important;
}

/* Main sections become light, readable military surfaces */
#app .home-hero,
#app .inner-hero{
  background:
    radial-gradient(circle at 78% 16%,rgba(71,130,139,.10),transparent 30%),
    linear-gradient(135deg,#eef3ef,#e4ece6)!important;
  border-color:rgba(23,50,38,.10)!important;
}

#app .section{
  background:linear-gradient(180deg,#edf2ee,#e4ece6)!important;
}
#app .section.soft,
#app .dgri-section{
  background:linear-gradient(180deg,#e2ebe4,#d9e5dc)!important;
}
#app .doctrine-section{
  background:linear-gradient(135deg,#e8eee9,#dde7e0)!important;
}
#app .breadcrumb{
  background:#dbe6de!important;
  color:#53665b!important;
  border-color:rgba(23,50,38,.10)!important;
}
#app .breadcrumb a{
  color:#2f6f78!important;
}

/* Strong readable heading system */
#app .hero-copy h1,
#app .inner-copy h1,
#app .section h2,
#app .article-meta h1,
#app .branch-focus h3,
#app .page-feature h3,
#app .card h3,
#app .news-card h3,
#app .branch-card h3,
#app .cemga-link b,
#app .value-card b,
#app .contact-box h3{
  color:#173226!important;
  text-shadow:none!important;
  opacity:1!important;
  filter:none!important;
}

/* DGRI / Doctrine headings especially */
#app .dgri-section h2,
#app .doctrine-section h2,
#app .dgri-section h3,
#app .doctrine-section h3{
  color:#173226!important;
}

/* Body text readable */
#app .hero-copy .lead,
#app .inner-copy p,
#app .section p,
#app .article-lead,
#app .article-body p,
#app .card p,
#app .news-card p,
#app .branch-card p,
#app .value-card p,
#app .contact-box p{
  color:#44594d!important;
}

/* Kicker/subtitles */
#app .kicker,
#app .inner-copy .kicker,
#app .article-meta .date,
#app .article-meta .author,
#app .news-card small{
  color:#2c7680!important;
}
#app .kicker:before{
  background:#2c7680!important;
}

/* Cards and panels are lighter */
#app .card,
#app .news-card,
#app .value-card,
#app .contact-box,
#app .branch-card,
#app .dgri-mission,
#app .related-card,
#app .cemga-link,
#app .article-meta,
#app .bio-box,
#app .adaptive-media-frame,
#app .inner-image,
#app .page-feature,
#app .branch-focus{
  background:linear-gradient(145deg,#f8faf8,#eef3ef)!important;
  color:#1b2d23!important;
  border-color:rgba(23,50,38,.12)!important;
  box-shadow:0 12px 28px rgba(20,45,31,.08)!important;
}

/* Panels on images stay neutral */
#app .adaptive-media-frame img,
#app .inner-image img,
#app .article-main-image img,
#app .article-gallery img,
#app .card img,
#app .news-card img,
#app .branch-card img,
#app .dgri-mission img{
  background:#dfe8e1!important;
}

/* Buttons remain dark for contrast */
#app .btn.primary{
  background:linear-gradient(135deg,#244f3d,#2f7380)!important;
  color:#fff!important;
}
#app .btn.secondary{
  background:#f8faf8!important;
  color:#173226!important;
  border-color:rgba(23,50,38,.16)!important;
}

/* Stats */
#app .stats,
#app .branch-kpi,
#app .mini-news{
  background:#e8efe9!important;
  border-color:rgba(23,50,38,.10)!important;
}
#app .stats b,
#app .branch-kpi b{
  color:#2e7882!important;
}
#app .stats span,
#app .branch-kpi span{
  color:#617267!important;
}

/* Tech panel can stay dark as a visual contrast island */
#app .tech-panel{
  background:#111d17!important;
  border-color:rgba(101,199,211,.25)!important;
}
#app .tech-chip{
  background:rgba(243,248,245,.96)!important;
  color:#235f69!important;
}

/* Remove white/blank parasite blocks visible under illustration */
#app .hero-ui:empty,
#app .hero-caption:empty,
#app .media-caption:empty,
#app .empty-block,
#app .blank-block{
  display:none!important;
}
#app .hero-visual .hero-ui{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
#app .hero-visual .hero-caption{
  background:linear-gradient(180deg,transparent,rgba(6,13,9,.76))!important;
}

/* Make any accidental white bar inside media dark/transparent */
#app .hero-visual > div:empty,
#app .adaptive-media-frame > div:empty,
#app .inner-image > div:empty{
  display:none!important;
}

/* biography table on light middle */
#app .bio-box td:first-child{
  color:#2d7280!important;
  font-weight:700!important;
}
#app .bio-box td:last-child{
  color:#20352a!important;
}

/* Article cards maintain alignment */
#app .news-card .body h3{
  color:#173226!important;
}
#app .news-card .body p{
  color:#4b5f53!important;
}
#app .news-card .readmore{
  color:#2f7480!important;
}

/* Mobile */
@media(max-width:760px){
  #app{
    background:#e4ece6!important;
  }
  #app .section{
    background:#e9efea!important;
  }
  #app .section.soft,
  #app .dgri-section{
    background:#dde7df!important;
  }
}

/* ============================================================
   V17.19 — CORRECTION FINALE CONTRASTES + MOBILE
   ============================================================ */

/* Explicit labels that were still inheriting the old dark-theme variables */
#app .media-stack-label{
  background:rgba(248,251,249,.96)!important;
  color:#173226!important;
  border:1px solid rgba(23,50,38,.14)!important;
  box-shadow:0 8px 20px rgba(20,45,31,.10)!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Doctrine 2022 title / body: forced high contrast on light middle */
#app .doctrine-copy{
  background:linear-gradient(145deg,#f6f9f6,#e7eee8)!important;
  border-left:6px solid #2f7c87!important;
  color:#173226!important;
}
#app .doctrine-copy h2,
#app .doctrine-copy h3{
  color:#173226!important;
  opacity:1!important;
  -webkit-text-fill-color:#173226!important;
  text-shadow:none!important;
}
#app .doctrine-copy p{
  color:#42574b!important;
  opacity:1!important;
  -webkit-text-fill-color:#42574b!important;
}
#app .doctrine-badge{
  background:rgba(248,251,249,.96)!important;
  color:#173226!important;
  border-left:4px solid #2f7c87!important;
  opacity:1!important;
  -webkit-text-fill-color:#173226!important;
  text-shadow:none!important;
  box-shadow:0 10px 24px rgba(20,45,31,.10)!important;
}

/* Section rules / kickers visible everywhere */
#app .section-head-rule .kicker,
#app .section .kicker,
#app .lower-cta .kicker{
  color:#2c6f79!important;
  opacity:1!important;
  -webkit-text-fill-color:#2c6f79!important;
}
#app .section-head-rule:after{
  background:rgba(23,50,38,.18)!important;
}

/* Value cards: Engagement / Service / Excellence etc. */
#app .value-card{
  background:linear-gradient(145deg,#f8faf8,#eaf1eb)!important;
}
#app .value-card b{
  color:#173226!important;
  opacity:1!important;
  -webkit-text-fill-color:#173226!important;
  text-shadow:none!important;
}
#app .value-card p{
  color:#4a5f53!important;
  opacity:1!important;
}

/* Lower CTA needs light-panel contrast too */
#app .lower-cta{
  background:linear-gradient(135deg,#dde8df,#edf2ee)!important;
}
#app .lower-cta h2{
  color:#173226!important;
  -webkit-text-fill-color:#173226!important;
  text-shadow:none!important;
}
#app .lower-cta p{
  color:#475c50!important;
}

/* Prevent invisible text caused by old dark theme variables in central area */
#app .section:not(.tech-panel) h1,
#app .section:not(.tech-panel) h2,
#app .section:not(.tech-panel) h3,
#app .section:not(.tech-panel) h4,
#app .section:not(.tech-panel) strong,
#app .section:not(.tech-panel) b{
  opacity:1!important;
}

/* But dark media cards keep readable white captions */
#app .hero-caption b,
#app .hero-caption small,
#app .tech-panel h2,
#app .tech-panel h3,
#app .tech-panel p{
  color:#f2f7f4!important;
  -webkit-text-fill-color:#f2f7f4!important;
}

/* Remove the white rectangle/bar occasionally inherited inside hero visual */
#app .hero-visual .hero-ui{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  box-shadow:none!important;
}
#app .hero-visual .hero-ui:empty,
#app .hero-visual .hero-ui > div:empty,
#app .hero-visual .hero-ui > span:empty{
  display:none!important;
}

/* Responsive menu reliability */
@media(max-width:760px){
  html,body{overflow-x:hidden!important}
  .command-header{overflow:visible!important}
  .command-nav-shell{overflow:visible!important}
  .mainnav{
    overflow-x:auto!important;
    overflow-y:visible!important;
    flex-wrap:nowrap!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .mainnav::-webkit-scrollbar{display:none!important}
  .nav-item{position:static!important;flex:0 0 auto!important}
  .nav-link,.nav-trigger{flex:0 0 auto!important;white-space:nowrap!important}
  .submenu{
    position:fixed!important;
    top:132px!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:58vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    transform:none!important;
    z-index:1000!important;
  }
  .submenu a{
    white-space:normal!important;
    line-height:1.3!important;
    font-size:13px!important;
    padding:12px!important;
  }
  #app .doctrine-block{
    grid-template-columns:1fr!important;
  }
  #app .doctrine-copy{
    padding:24px 18px!important;
  }
  #app .doctrine-copy h2{
    font-size:clamp(38px,11vw,54px)!important;
    line-height:.94!important;
    overflow-wrap:anywhere!important;
  }
  #app .doctrine-badge{
    left:12px!important;
    right:12px!important;
    max-width:none!important;
    font-size:14px!important;
  }
  #app .media-stack-label{
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
    width:auto!important;
    text-align:center!important;
    font-size:10px!important;
    white-space:normal!important;
  }
  #app .values-grid{
    grid-template-columns:1fr!important;
  }
  #app .value-card b{font-size:24px!important}
}

@media(max-width:390px){
  .command-brand-copy .brand-forces{font-size:14px!important}
  .command-brand-copy .brand-country{font-size:7.5px!important}
  .command-brand-copy .brand-ministry{font-size:7px!important}
  #app .doctrine-copy h2{font-size:36px!important}
}


/* ============================================================
   V17.20 — MENU SMARTPHONE DÉDIÉ
   ============================================================ */
.mobile-menu-btn,
.mobile-nav-overlay,
.mobile-nav-panel{display:none}

@media(max-width:760px){
  /* On smartphone the PC navigation is no longer shown */
  .command-nav-shell{display:none!important}

  .mobile-menu-btn{
    display:block!important;
    width:40px;height:40px;
    padding:9px;
    border-radius:9px;
    border:1px solid rgba(101,199,211,.18);
    background:rgba(101,199,211,.08);
    cursor:pointer;
  }
  .mobile-menu-btn span{
    display:block;
    width:100%;
    height:2px;
    margin:4px 0;
    border-radius:4px;
    background:#dceae3;
  }

  .mobile-nav-overlay{
    display:block;
    position:fixed;
    inset:0;
    z-index:400;
    opacity:0;
    pointer-events:none;
    background:rgba(4,10,7,.66);
    backdrop-filter:blur(4px);
    transition:opacity .22s ease;
  }
  .mobile-nav-overlay.open{
    opacity:1;
    pointer-events:auto;
  }

  .mobile-nav-panel{
    display:flex;
    position:fixed;
    z-index:410;
    top:0;right:0;bottom:0;
    width:min(88vw,390px);
    flex-direction:column;
    transform:translateX(104%);
    transition:transform .24s ease;
    background:
      radial-gradient(circle at 100% 0%,rgba(101,199,211,.11),transparent 28%),
      linear-gradient(180deg,#173027,#102018);
    border-left:1px solid rgba(101,199,211,.18);
    box-shadow:-22px 0 60px rgba(0,0,0,.38);
  }
  .mobile-nav-panel.open{transform:translateX(0)}
  body.mobile-nav-open{overflow:hidden!important}

  .mobile-nav-head{
    min-height:88px;
    padding:17px 14px 14px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid rgba(101,199,211,.15);
  }
  .mobile-nav-head small{
    display:block;
    color:#8baaa0;
    font:700 8px "Barlow Condensed",sans-serif;
    letter-spacing:1.35px;
  }
  .mobile-nav-head b{
    display:block;
    color:#fff;
    margin-top:3px;
    font:800 25px "Barlow Condensed",sans-serif;
  }
  .mobile-nav-close{
    width:42px;height:42px;
    border-radius:9px;
    border:1px solid rgba(101,199,211,.18);
    background:rgba(255,255,255,.04);
    color:#dceae3;
    font-size:27px;
  }

  .mobile-nav{
    flex:1;
    overflow-y:auto;
    padding:10px 12px 26px;
    -webkit-overflow-scrolling:touch;
  }
  .mobile-nav-link,
  .mobile-nav-parent{
    width:100%;
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 14px;
    margin:3px 0;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#dae7e0;
    font:800 15px "Barlow Condensed",sans-serif;
    letter-spacing:.45px;
    text-decoration:none;
    text-align:left;
  }
  .mobile-nav-link.active,
  .mobile-nav-group.active > .mobile-nav-parent{
    color:#fff;
    background:rgba(101,199,211,.08);
    box-shadow:inset 3px 0 0 #65c7d3;
  }
  .mobile-nav-parent:active,
  .mobile-nav-link:active{
    background:rgba(101,199,211,.12);
  }

  .mobile-chev{
    color:#65c7d3;
    font-size:20px;
    transition:transform .18s ease;
  }
  .mobile-nav-group.open .mobile-chev{transform:rotate(45deg)}

  .mobile-submenu{
    display:none;
    margin:2px 0 8px 12px;
    padding:2px 0 2px 9px;
    border-left:1px solid rgba(101,199,211,.18);
  }
  .mobile-nav-group.open .mobile-submenu{display:block}
  .mobile-submenu a{
    display:block;
    padding:11px 11px;
    color:#a8bbb1;
    border-radius:7px;
    font-size:13px;
    line-height:1.35;
    text-decoration:none;
  }
  .mobile-submenu a:active{
    color:#fff;
    background:rgba(101,199,211,.08);
  }

  /* Header stays compact */
  .command-tools{gap:6px!important}
}

/* Pied de page enrichi sans changement de structure */
.footer-cta{
  background:
    radial-gradient(circle at 85% 15%,rgba(101,199,211,.12),transparent 28%),
    linear-gradient(115deg,#15291f,#0d1d16)!important;
}
.footer-main{
  background:
    radial-gradient(circle at 8% 15%,rgba(101,199,211,.045),transparent 26%),
    #07110d!important;
  border-top:1px solid rgba(255,255,255,.055)!important;
}
.footer-brand{
  padding:14px!important;
  border:1px solid rgba(255,255,255,.065)!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.018)!important;
}
.footer-col a{
  transition:color .16s ease,transform .16s ease!important;
}
.footer-col a:hover{
  transform:translateX(3px)!important;
}
.footer-social-modern{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin-top:15px!important;
}
.footer-social-button{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:39px!important;
  padding:7px 10px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:9px!important;
  color:#eaf2ed!important;
  background:rgba(255,255,255,.035)!important;
  text-decoration:none!important;
  transition:background .16s ease,border-color .16s ease,transform .16s ease!important;
}
.footer-social-button:hover{
  transform:translateY(-2px)!important;
  background:rgba(101,199,211,.10)!important;
  border-color:rgba(101,199,211,.30)!important;
}
.footer-social-button svg{
  width:18px!important;
  height:18px!important;
  fill:currentColor!important;
  flex:0 0 auto!important;
}
.footer-social-button span{
  font:800 10px "Barlow Condensed",sans-serif!important;
  letter-spacing:.25px!important;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.07)!important;
}
@media(max-width:760px){
  .footer-social-modern{width:100%!important}
  .footer-social-button{flex:1 1 30%!important;justify-content:center!important}
}

/* Sous-menus : priorité d'affichage et clic fiables */
.nav-item.open>.submenu{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.mobile-nav-group.open>.mobile-submenu{
  display:block!important;
}

.contact-social-panel{margin-top:28px;padding:28px;border:1px solid rgba(101,199,211,.16);border-radius:16px;background:linear-gradient(135deg,rgba(14,35,29,.055),rgba(101,199,211,.045))}
.contact-social-panel h2{margin:6px 0 8px}.contact-social-panel p{max-width:720px}
.contact-social-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.contact-social-links a{min-width:145px;min-height:58px;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:11px;border:1px solid rgba(25,69,58,.18);text-decoration:none!important;transition:.18s ease}
.contact-social-links a:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.08)}
.contact-social-links svg{width:24px;height:24px;fill:currentColor}.contact-social-links span{font-weight:800}
@media(max-width:650px){.contact-social-links{display:grid;grid-template-columns:1fr}.contact-social-links a{width:100%}}

.page-video-block{margin-top:34px;padding-top:28px;border-top:1px solid rgba(24,64,52,.12)}
.page-video-block h2{margin:7px 0 16px}
.page-video-frame{overflow:hidden;border-radius:16px;background:#050807;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 42px rgba(0,0,0,.15)}
.page-video-frame video{display:block;width:100%;max-height:650px;object-fit:contain;background:#000}
@media(max-width:760px){.page-video-frame{border-radius:10px}.page-video-frame video{max-height:70vh}}

.career-video-section{
  margin-top:38px;
  padding-top:30px;
  border-top:1px solid rgba(24,64,52,.12);
}
.career-video-section h2{
  margin:7px 0 18px;
}
.career-video-section .page-video-frame{
  max-width:1100px;
}


/* Correction finale de lisibilité */
#app .hero-copy .eyebrow,
#app .kicker,
#app .section .kicker,
#app .article-meta .kicker{
  color:#2f7580!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}

#app .hero-copy h1,
#app .section h2,
#app .inner-copy h1,
#app .article-meta h1,
#app .news-card h3,
#app .mini-news h3{
  opacity:1!important;
  filter:none!important;
}

#app .hero-copy h1,
#app .section h2,
#app .inner-copy h1{
  color:#132d22!important;
}

#app .hero-copy .lead,
#app .section p,
#app .inner-copy p,
#app .article-lead,
#app .article-body p{
  color:#41574b!important;
  opacity:1!important;
}

/* Actualités : titres/métadonnées lisibles sur fond clair */
#app .mini-news,
#app .news-card{
  color:#162c22!important;
}
#app .mini-news h3,
#app .news-card h3{
  color:#173226!important;
}
#app .mini-news small,
#app .news-card small,
#app .news-card .meta,
#app .article-meta .date,
#app .article-meta .author{
  color:#4f665a!important;
  opacity:1!important;
}
#app .mini-news p,
#app .news-card p{
  color:#50645a!important;
}
#app .readmore,
#app .news-card .readmore{
  color:#2f7480!important;
}

/* Large news feature overlay: keep text high-contrast over dark image */
#app .lead-news .overlay,
#app .news-feature .overlay,
#app .featured-news .overlay{
  background:linear-gradient(180deg,transparent 20%,rgba(5,12,9,.88) 100%)!important;
}
#app .lead-news .overlay *,
#app .news-feature .overlay *,
#app .featured-news .overlay *{
  color:#fff!important;
  text-shadow:0 2px 8px rgba(0,0,0,.45)!important;
}

/* Article category/date rows visible */
#app .article-meta small,
#app .article-category,
#app .news-category{
  color:#2d6e77!important;
  opacity:1!important;
}

/* Prevent accidental washed-out headings */
#app [style*="opacity"] h1,
#app [style*="opacity"] h2,
#app [style*="opacity"] h3{
  opacity:1!important;
}


/* ==========================================================
   ACCUEIL — PHOTOS TOUJOURS ENTIÈREMENT VISIBLES
   Les photos ne sont ni étirées ni recadrées.
   ========================================================== */
#app .home-hero .hero-visual{
  background:#e4ebe6;
}
#app .home-hero .hero-slide{
  object-fit:contain!important;
  object-position:center center!important;
  background:#e4ebe6;
}
#app .home-hero .hero-slide.active{
  transform:none!important;
}

#app .media-stack{
  background:#e4ebe6;
}
#app .media-stack img{
  object-fit:contain!important;
  object-position:center center!important;
  background:#e4ebe6;
}

/* Les deux autres grandes images de la page d'accueil restent aussi entières. */
#app .dgri-home .visual{
  background:#e4ebe6;
}
#app .dgri-home .visual img,
#app .doctrine-visual img{
  object-fit:contain!important;
  object-position:center center!important;
  background:#e4ebe6;
}


/* ==========================================================
   V2 — ACTUALITÉS : LISIBILITÉ FORCÉE DES TITRES
   ========================================================== */

/* Titre de l'actualité principale sur l'image : toujours blanc. */
#app .news-page-feature .lead-news .lead-news-copy{
  z-index:4!important;
  color:#ffffff!important;
  opacity:1!important;
  visibility:visible!important;
}
#app .news-page-feature .lead-news .lead-news-copy h2{
  color:#ffffff!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  text-shadow:0 2px 12px rgba(0,0,0,.72)!important;
}
#app .news-page-feature .lead-news .lead-news-copy p{
  color:#f4f7f5!important;
  opacity:1!important;
  visibility:visible!important;
  text-shadow:0 1px 8px rgba(0,0,0,.58)!important;
}
#app .news-page-feature .lead-news .lead-news-copy .kicker{
  color:#f0d37c!important;
  opacity:1!important;
  visibility:visible!important;
  text-shadow:0 1px 8px rgba(0,0,0,.65)!important;
}
/* Renforcer le voile sombre derrière le texte de l'actualité principale. */
#app .news-page-feature .lead-news:after{
  background:linear-gradient(0deg,rgba(7,15,11,.92) 0%,rgba(7,15,11,.70) 34%,rgba(7,15,11,.12) 76%,transparent 100%)!important;
  z-index:1!important;
}

/* Titres des cartes « À découvrir aussi » : toujours visibles sur fond clair. */
#app .related-wrap .related-card .body h3{
  color:#173226!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  text-shadow:none!important;
}
#app .related-wrap .related-card .body small{
  color:#52675b!important;
  opacity:1!important;
  visibility:visible!important;
}
#app .related-wrap .related-card .body p{
  color:#4b6054!important;
  opacity:1!important;
  visibility:visible!important;
}

/* ==========================================================
   V2 — DEUXIÈME MÉDIA D'UNE ACTUALITÉ : PHOTO OU VIDÉO
   ========================================================== */
#app .article-secondary-media{
  width:min(1100px,100%);
  margin:28px auto;
  border:1px solid rgba(23,50,38,.12);
  border-radius:16px;
  overflow:hidden;
  background:#0e1813;
  box-shadow:0 16px 38px rgba(20,45,31,.10);
}
#app .article-secondary-media img,
#app .article-secondary-media video{
  display:block;
  width:100%;
  max-height:680px;
  object-fit:contain;
  background:#0e1813;
}
#app .article-secondary-media video{
  aspect-ratio:16/9;
}


/* ==========================================================
   TEXTE RICHE SYNCHRONISÉ DEPUIS L'ADMINISTRATION
   ========================================================== */
.rich-text{
  white-space:pre-wrap;
}
.rich-text p,
.rich-text div{
  margin:0 0 .85em;
}
.rich-text p:last-child,
.rich-text div:last-child{
  margin-bottom:0;
}
.rich-text ul,
.rich-text ol{
  margin:.55em 0 .9em 1.5em;
  padding:0;
}
.rich-text li{margin:.25em 0}
.rich-text strong,
.rich-text b{font-weight:800}
.rich-text u{text-underline-offset:3px}
.rich-text em,
.rich-text i{font-style:italic}

/* Les champs titres acceptent aussi les formats inline issus de l'admin. */
#app h1 u,#app h2 u,#app h3 u,#app b u,#app span u{text-underline-offset:3px}


/* ==========================================================
   TEXTE RICHE PUBLIC — RESPECTER LA MISE EN FORME DE L'ADMIN
   ========================================================== */
#app .rich-text,
#app h1,
#app h2,
#app h3,
#app h4,
#app .eyebrow,
#app .inner-subtitle,
#footer .rich-text,
#siteName,
#subtitle{
  white-space:pre-wrap;
}
#app .rich-text a,
#app h1 a,
#app h2 a,
#app h3 a,
#footer .rich-text a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}
#app .rich-text blockquote{
  margin:1em 0;
  padding:.8em 1em;
  border-left:4px solid rgba(63,101,80,.45);
  background:rgba(234,241,237,.65);
}
#app .rich-text sub,#app h1 sub,#app h2 sub,#app h3 sub,
#app .rich-text sup,#app h1 sup,#app h2 sup,#app h3 sup{
  font-size:.72em;
}
#app .rich-text s,#app .rich-text strike,
#app h1 s,#app h2 s,#app h3 s{
  text-decoration:line-through;
}
#app .rich-text font,
#app h1 font,#app h2 font,#app h3 font,
#siteName font,#subtitle font{
  line-height:inherit;
}


/* ==========================================================
   V18 — FLUIDITÉ, CHARGEMENT PROPRE ET MOBILE COMPACT
   ========================================================== */

html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body{
  overflow-x:hidden;
}
#app{
  min-height:42vh;
}

/* Le pré-rendu serveur ressemble déjà à la vraie page.
   Il disparaît naturellement quand site.js remplit #app. */
.server-page-placeholder{
  animation:serverPlaceholderIn .18s ease-out both;
}
.server-placeholder-visual{
  background:
    linear-gradient(110deg,rgba(255,255,255,.04),rgba(255,255,255,.14),rgba(255,255,255,.04)),
    #dfe8e1!important;
  background-size:220% 100%!important;
  animation:serverPlaceholderShimmer 1.5s ease-in-out infinite;
}
.server-placeholder-visual img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
@keyframes serverPlaceholderIn{
  from{opacity:.88}
  to{opacity:1}
}
@keyframes serverPlaceholderShimmer{
  0%{background-position:120% 0}
  100%{background-position:-120% 0}
}

/* Flèches toujours visibles sur fond clair OU sur photo. */
.slide-btn{
  display:inline-grid!important;
  place-items:center!important;
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  border-radius:50%!important;
  border:1px solid rgba(101,199,211,.72)!important;
  background:rgba(11,31,23,.92)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  font:700 27px/1 Arial,sans-serif!important;
  text-shadow:0 1px 2px rgba(0,0,0,.45)!important;
  box-shadow:0 8px 22px rgba(4,16,10,.26),inset 0 0 0 1px rgba(255,255,255,.05)!important;
  backdrop-filter:blur(8px)!important;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
.slide-btn:hover,
.slide-btn:focus-visible{
  background:#173f32!important;
  border-color:#8de1e8!important;
  transform:translateY(-2px)!important;
  box-shadow:0 11px 26px rgba(4,16,10,.32)!important;
  outline:none!important;
}
.slide-btn:active{
  transform:translateY(0) scale(.96)!important;
}

/* Interactions plus douces. */
.news-track,
.related-track{
  transition:transform .48s cubic-bezier(.22,.61,.36,1)!important;
  will-change:transform;
}
.hero-slide,
.media-stack img{
  transition:opacity .65s ease!important;
}
.card,.news-card,.value-card,.contact-box,.branch-card,.dgri-mission,.related-card{
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important;
}
.reveal{
  transform:translateY(12px)!important;
  transition:opacity .45s ease,transform .45s cubic-bezier(.22,.61,.36,1)!important;
}

/* Tablette : moins de vide sans modifier la structure. */
@media (min-width:761px) and (max-width:1100px){
  #app .section{padding:54px 4vw!important}
  #app .home-hero{padding:30px 4vw 28px!important}
  #app .home-hero-grid{min-height:500px!important;gap:24px!important}
  #app .inner-hero{padding:28px 4vw!important}
  #app .inner-hero-grid{min-height:360px!important;gap:22px!important}
  #app .inner-image{height:360px!important}
}

/* ==========================================================
   SMARTPHONE — VERSION PLUS RESSERRÉE ET PLUS ÉLÉGANTE
   ========================================================== */
@media(max-width:760px){
  :root{
    --mobile-pad:14px;
  }

  /* Header plus fin */
  .command-header-inner{
    min-height:68px!important;
    height:68px!important;
    padding:7px 12px!important;
  }
  .command-brand{gap:8px!important}
  .command-logo-frame{
    width:44px!important;
    height:44px!important;
    border-radius:9px!important;
  }
  .command-logo-frame .logo-img{
    width:38px!important;
    height:38px!important;
  }
  .brand-country{font-size:7.2px!important;letter-spacing:.55px!important}
  .brand-ministry{font-size:6.8px!important;letter-spacing:.5px!important}
  .brand-forces{
    font-size:14px!important;
    line-height:1!important;
  }
  .mobile-menu-btn{
    width:38px!important;
    height:38px!important;
    padding:8px!important;
  }
  .admin{
    min-height:38px!important;
    height:38px!important;
    padding:0 11px!important;
    font-size:10px!important;
  }

  /* Hero accueil */
  #app .home-hero{
    padding:18px var(--mobile-pad) 22px!important;
  }
  #app .home-hero-grid{
    min-height:0!important;
    gap:16px!important;
  }
  #app .hero-copy{
    padding:4px 0 0!important;
  }
  #app .hero-copy .eyebrow{
    padding:7px 10px!important;
    font-size:10px!important;
    letter-spacing:1.15px!important;
  }
  #app .hero-copy h1{
    font-size:clamp(46px,13.5vw,60px)!important;
    line-height:.88!important;
    letter-spacing:-1.1px!important;
    margin:14px 0 11px!important;
  }
  #app .hero-copy .lead{
    font-size:14.5px!important;
    line-height:1.52!important;
  }
  #app .actions{
    gap:8px!important;
    margin-top:15px!important;
  }
  #app .btn{
    min-height:43px!important;
    padding:0 15px!important;
    font-size:11.5px!important;
    border-radius:7px!important;
  }
  #app .hero-visual{
    min-height:0!important;
    height:clamp(260px,72vw,340px)!important;
    border-radius:13px!important;
    box-shadow:0 14px 32px rgba(19,44,30,.12)!important;
  }
  #app .hero-ui{
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
    gap:8px!important;
  }
  #app .hero-caption b{font-size:19px!important}
  #app .hero-caption small{font-size:8px!important}
  #app .slide-controls{gap:6px!important}
  .slide-btn{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    font-size:23px!important;
  }

  /* Sections : réduction générale des espaces */
  #app .section{
    padding:34px var(--mobile-pad)!important;
  }
  #app .section.soft{
    padding-top:32px!important;
    padding-bottom:32px!important;
  }
  #app .section-head-rule{
    margin-bottom:10px!important;
  }
  #app .section h2{
    font-size:clamp(38px,11.5vw,50px)!important;
    line-height:.92!important;
    letter-spacing:-.5px!important;
    margin:6px 0 12px!important;
  }
  #app .section h3{
    margin-top:6px!important;
    margin-bottom:8px!important;
  }
  #app .kicker{
    font-size:10px!important;
    letter-spacing:1.25px!important;
  }
  #app .section p,
  #app .rich-text,
  #app .adaptive-copy p{
    font-size:14.5px!important;
    line-height:1.55!important;
  }
  #app .rich-text p,
  #app .rich-text div{
    margin-bottom:.62em!important;
  }
  #app .two-col,
  #app .adaptive-row,
  #app .dgri-home,
  #app .doctrine-block{
    gap:17px!important;
  }

  /* Statistiques plus compactes en 2 colonnes */
  #app .stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #app .stats div{
    padding:14px var(--mobile-pad)!important;
    min-height:82px!important;
  }
  #app .stats b{font-size:31px!important}
  #app .stats span{
    font-size:9px!important;
    line-height:1.25!important;
    letter-spacing:.75px!important;
  }

  /* Médias */
  #app .media-stack{
    height:clamp(220px,64vw,290px)!important;
    border-radius:12px!important;
  }
  #app .media-stack-label{
    padding:7px 9px!important;
    bottom:8px!important;
    left:8px!important;
    right:8px!important;
  }
  #app .dgri-home .visual img,
  #app .dgri-home .visual{
    height:260px!important;
    min-height:0!important;
  }
  #app .doctrine-visual{
    min-height:280px!important;
  }

  /* Cartes */
  #app .cards,
  #app .values-grid,
  #app .dgri-missions,
  #app .contact-grid,
  #app .branch-sections{
    gap:11px!important;
    margin-top:14px!important;
  }
  #app .card img,
  #app .news-card img{
    height:180px!important;
  }
  #app .card .body,
  #app .news-card .body,
  #app .value-card,
  #app .contact-box,
  #app .branch-card .body{
    padding:15px!important;
  }
  #app .card h3,
  #app .news-card h3{
    font-size:25px!important;
    margin:5px 0 7px!important;
  }

  /* Actualités */
  #app .news-heading{
    align-items:flex-end!important;
    gap:9px!important;
  }
  #app .news-heading h2{
    margin-bottom:0!important;
  }
  #app .news-nav{
    gap:5px!important;
    flex:0 0 auto!important;
  }
  #app .news-viewport{margin-top:13px!important}
  #app .news-track{gap:11px!important}
  #app .news-card,
  #app .news-card.featured{
    flex-basis:88%!important;
  }

  /* Pages internes */
  #app .breadcrumb{
    padding:9px var(--mobile-pad)!important;
    font-size:10px!important;
  }
  #app .inner-hero{
    padding:20px var(--mobile-pad) 22px!important;
  }
  #app .inner-hero-grid{
    min-height:0!important;
    gap:14px!important;
  }
  #app .inner-copy h1{
    font-size:clamp(41px,12vw,54px)!important;
    line-height:.9!important;
    margin:6px 0 10px!important;
  }
  #app .inner-copy p,
  #app .inner-subtitle{
    font-size:14.5px!important;
    line-height:1.5!important;
  }
  #app .inner-image{
    height:clamp(230px,65vw,300px)!important;
    border-radius:12px!important;
  }
  #app .adaptive-media-frame{
    min-height:230px!important;
    border-radius:12px!important;
  }
  #app .branch-kpis{
    gap:8px!important;
    margin-top:18px!important;
  }
  #app .branch-kpi{
    padding:14px!important;
  }
  #app .branch-focus,
  #app .page-feature{
    margin-top:18px!important;
    padding:18px!important;
  }

  /* Articles */
  #app .article-shell{padding:0!important}
  #app .article-hero{
    gap:13px!important;
    margin-bottom:18px!important;
  }
  #app .article-main-image{
    min-height:230px!important;
  }
  #app .article-meta{
    padding:17px!important;
    border-radius:12px!important;
  }
  #app .article-meta h1{
    font-size:clamp(39px,11.5vw,52px)!important;
    margin:10px 0!important;
  }
  #app .article-body{
    padding:12px 0!important;
  }
  #app .article-body p{
    font-size:15px!important;
    line-height:1.62!important;
    margin-bottom:13px!important;
  }
  #app .article-secondary-media{
    margin:17px auto!important;
    border-radius:11px!important;
  }
  #app .article-gallery{
    gap:8px!important;
    margin:17px 0!important;
  }
  #app .related-wrap{
    margin-top:27px!important;
    padding-top:19px!important;
  }
  #app .related-track{gap:10px!important}

  /* Galerie */
  #app .gallery-track{
    gap:8px!important;
    padding:8px!important;
  }
  #app .gallery-track img{
    width:255px!important;
    height:185px!important;
  }
  #app .gallery-grid{
    gap:8px!important;
    margin-top:13px!important;
  }
  #app .gallery-grid img{
    height:210px!important;
  }

  /* Contact / vidéo */
  .contact-social-panel{
    margin:17px var(--mobile-pad) 0!important;
    padding:19px!important;
  }
  .contact-social-links{
    gap:8px!important;
    margin-top:13px!important;
  }
  .page-video-block,
  .career-video-section{
    margin-top:20px!important;
    padding-top:17px!important;
  }

  /* Footer beaucoup moins haut */
  .footer-cta{
    padding:25px var(--mobile-pad)!important;
    gap:13px!important;
  }
  .footer-cta h2{
    font-size:34px!important;
    line-height:.94!important;
  }
  .footer-cta p{
    font-size:13px!important;
    line-height:1.45!important;
  }
  .footer-main{
    padding:22px var(--mobile-pad)!important;
    gap:17px!important;
  }
  .footer-brand{
    padding:10px!important;
    gap:10px!important;
  }
  .footer-brand img{
    width:70px!important;
    height:70px!important;
  }
  .footer-brand b{font-size:21px!important}
  .footer-brand p{font-size:12px!important}
  .footer-col b{margin-bottom:8px!important}
  .footer-col a{margin:7px 0!important}
  .footer-bottom{
    padding:11px var(--mobile-pad)!important;
    gap:5px!important;
  }
}

@media(max-width:390px){
  #app .home-hero{padding-left:12px!important;padding-right:12px!important}
  #app .section{padding-left:12px!important;padding-right:12px!important}
  #app .hero-copy h1{font-size:46px!important}
  #app .inner-copy h1{font-size:40px!important}
  #app .hero-visual{height:255px!important}
  #app .inner-image{height:225px!important}
  #app .stats div{padding:12px!important}
}

/* Respect du choix utilisateur et stabilité sur téléphone. */
@media(prefers-reduced-motion:reduce){
  .server-page-placeholder,
  .server-placeholder-visual{
    animation:none!important;
  }
}


/* ==========================================================
   MOBILE V19 — STABILITÉ BIOGRAPHIE / INDICATEURS / ESPACE ADMIN
   ========================================================== */
@media(max-width:760px){
  /* En-tête : laisser une vraie place au bouton ESPACE ADMIN. */
  .command-header-inner{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .command-brand{
    min-width:0!important;
    gap:7px!important;
  }
  .command-logo-frame{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
  }
  .command-logo-frame .logo-img{
    width:36px!important;
    height:36px!important;
  }
  .command-brand-copy{
    min-width:0!important;
    overflow:hidden!important;
  }
  .command-brand-copy .brand-forces{
    font-size:12.5px!important;
    line-height:1.02!important;
    letter-spacing:.55px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .command-brand-copy .brand-country{
    font-size:6.8px!important;
    letter-spacing:.45px!important;
    white-space:nowrap!important;
  }
  .command-brand-copy .brand-ministry{
    font-size:6.3px!important;
    letter-spacing:.4px!important;
    white-space:nowrap!important;
  }
  .command-tools{
    gap:5px!important;
    flex:0 0 auto!important;
  }
  .mobile-menu-btn{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
  }
  .admin{
    width:auto!important;
    min-width:72px!important;
    max-width:none!important;
    height:38px!important;
    min-height:38px!important;
    padding:0 8px!important;
    font:800 9.2px/1 "Barlow Condensed",sans-serif!important;
    letter-spacing:.55px!important;
    white-space:nowrap!important;
    overflow:visible!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
  }
  .admin:before{
    content:none!important;
    display:none!important;
  }

  /* Les trois indicateurs restent sur UNE seule ligne. */
  #app .stats{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  #app .stats div{
    min-width:0!important;
    min-height:86px!important;
    padding:13px 7px!important;
    text-align:center!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:center!important;
  }
  #app .stats div:last-child{
    grid-column:auto!important;
  }
  #app .stats b{
    font-size:29px!important;
    line-height:1!important;
    margin-bottom:7px!important;
  }
  #app .stats span{
    font-size:8.1px!important;
    line-height:1.2!important;
    letter-spacing:.55px!important;
    overflow-wrap:anywhere!important;
  }

  /* Biographie : supprimer le grand hero dupliqué sur téléphone.
     Le fil d'Ariane reste affiché puis la fiche commence immédiatement. */
  .bio-page-hero .inner-hero{
    display:none!important;
  }
  .bio-page-hero .breadcrumb{
    margin:0!important;
  }
  #app .bio-page-section{
    padding-top:18px!important;
    padding-bottom:30px!important;
  }
  #app .bio-layout{
    display:flex!important;
    flex-direction:column!important;
    gap:18px!important;
    width:100%!important;
    min-width:0!important;
    align-items:stretch!important;
  }
  #app .bio-box{
    position:static!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:14px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    align-self:stretch!important;
  }
  #app .bio-box img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:460px!important;
    object-fit:contain!important;
    margin:0 auto 13px!important;
    border-radius:9px!important;
  }
  #app .bio-box h3{
    font-size:25px!important;
    line-height:1.02!important;
    margin:5px 0 13px!important;
    overflow-wrap:anywhere!important;
  }
  #app .bio-box table{
    width:100%!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    font-size:13.5px!important;
  }
  #app .bio-box td{
    padding:10px 8px!important;
    vertical-align:top!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  #app .bio-box td:first-child{
    width:43%!important;
  }
  #app .bio-box td:last-child{
    width:57%!important;
  }
  #app .bio-content{
    position:static!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    clear:both!important;
  }
  #app .bio-content h2{
    font-size:clamp(36px,10.5vw,47px)!important;
    line-height:.92!important;
    margin:0 0 14px!important;
    overflow-wrap:anywhere!important;
  }
  #app .bio-content .rich-text{
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  #app .bio-content .rich-text p,
  #app .bio-content .rich-text div{
    margin:0 0 .72em!important;
  }
}

@media(max-width:390px){
  .command-header-inner{
    padding-left:8px!important;
    padding-right:8px!important;
    gap:5px!important;
  }
  .command-logo-frame{
    width:39px!important;
    height:39px!important;
    min-width:39px!important;
  }
  .command-logo-frame .logo-img{
    width:34px!important;
    height:34px!important;
  }
  .command-brand-copy .brand-forces{
    font-size:11.5px!important;
  }
  .command-brand-copy .brand-country{font-size:6.3px!important}
  .command-brand-copy .brand-ministry{font-size:5.9px!important}
  .mobile-menu-btn{
    width:36px!important;
    min-width:36px!important;
    height:36px!important;
  }
  .admin{
    min-width:66px!important;
    height:36px!important;
    min-height:36px!important;
    padding:0 6px!important;
    font-size:8.6px!important;
    letter-spacing:.35px!important;
  }
  #app .stats div{padding:12px 5px!important}
  #app .stats b{font-size:27px!important}
  #app .stats span{font-size:7.6px!important;letter-spacing:.4px!important}
  #app .bio-box{padding:12px!important}
  #app .bio-box h3{font-size:23px!important}
  #app .bio-box td{padding:9px 6px!important;font-size:13px!important}
}


/* ==========================================================
   MOBILE V20 — BIOGRAPHIE : RESTAURER LE GRAND TITRE + 1re IMAGE
   ========================================================== */
@media(max-width:760px){

  /* On garde la première partie complète de la biographie. */
  .bio-page-hero .inner-hero{
    display:block!important;
    padding:18px var(--mobile-pad) 20px!important;
    margin:0!important;
    min-height:0!important;
    overflow:visible!important;
  }

  .bio-page-hero .inner-hero-grid{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:none!important;
    min-height:0!important;
    height:auto!important;
    gap:14px!important;
    align-items:stretch!important;
  }

  .bio-page-hero .inner-copy{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  .bio-page-hero .inner-copy .kicker{
    margin:0 0 7px!important;
  }

  .bio-page-hero .inner-copy h1{
    font-size:clamp(42px,12vw,56px)!important;
    line-height:.90!important;
    letter-spacing:-.6px!important;
    margin:5px 0 10px!important;
    overflow-wrap:anywhere!important;
  }

  .bio-page-hero .inner-copy .inner-subtitle{
    font-size:14px!important;
    line-height:1.48!important;
    margin:0!important;
  }

  /* Première image de la page : entièrement visible, sans grand vide. */
  .bio-page-hero .inner-image{
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:clamp(240px,69vw,325px)!important;
    min-height:0!important;
    max-height:325px!important;
    margin:0!important;
    padding:0!important;
    border-radius:12px!important;
    overflow:hidden!important;
    background:#eef3ef!important;
    align-self:stretch!important;
  }

  .bio-page-hero .inner-image img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0!important;
  }

  /* Puis la fiche CEMGA vient normalement juste en dessous. */
  #app .bio-page-section{
    padding-top:16px!important;
  }

  #app .bio-layout{
    position:relative!important;
    isolation:isolate!important;
  }

  #app .bio-box,
  #app .bio-content{
    z-index:auto!important;
    float:none!important;
  }
}

@media(max-width:390px){
  .bio-page-hero .inner-hero{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .bio-page-hero .inner-copy h1{
    font-size:40px!important;
  }

  .bio-page-hero .inner-image{
    height:235px!important;
  }
}


/* ==========================================================
   MOBILE V21 — CONTENU IMMÉDIAT, AUCUN BLOC EN ATTENTE DU SCROLL
   ========================================================== */
@media(max-width:760px){
  #app .reveal,
  #app .reveal.visible{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
    visibility:visible!important;
  }

  /* Les sections déjà rendues restent immédiatement visibles. */
  #app .section > *,
  #app .stats > div,
  #app .card,
  #app .news-card,
  #app .value-card,
  #app .dgri-mission,
  #app .contact-box{
    content-visibility:visible!important;
  }
}


/* ==========================================================
   V22 — PAGES INTERNES : IMAGES MULTIPLES À DROITE DU TEXTE
   Accueil et Biographie ne sont pas concernés.
   ========================================================== */

/* L'image commence au même niveau que le début du bloc texte,
   au lieu de rester centrée verticalement si le texte est long. */
#app .adaptive-row{
  align-items:start!important;
}
#app .adaptive-media{
  align-items:flex-start!important;
  justify-content:flex-start!important;
  align-self:start!important;
}

/* Plusieurs photos à droite : une colonne verticale régulière. */
#app .adaptive-media-stack{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:18px!important;
  width:100%!important;
  align-content:start!important;
}
#app .adaptive-media-stack .presentation-media-frame{
  width:100%!important;
  margin:0!important;
}
#app .adaptive-media-stack .presentation-media-frame img{
  width:100%!important;
  height:auto!important;
  max-height:520px!important;
  object-fit:contain!important;
  object-position:center top!important;
}

/* Si aucune photo n'est choisie, le texte prend toute la largeur. */
#app .adaptive-row.no-side-media{
  grid-template-columns:1fr!important;
}

/* Sur mobile, la colonne d'images vient naturellement sous le texte
   et garde un espace clair entre chaque photo. */
@media(max-width:760px){
  #app .adaptive-media-stack{
    gap:12px!important;
    margin-top:2px!important;
  }
  #app .adaptive-media-stack .presentation-media-frame img{
    max-height:none!important;
  }
}


/* ==========================================================
   V24 — FONDS D'IMAGES ÉLÉGANTS SANS CASSER LES DIAPORAMAS
   ========================================================== */

/* Fond discret uniquement sur le conteneur.
   Aucun pseudo-élément ni changement de position des enfants. */
#app .hero-visual,
#app .media-stack,
#app .inner-image,
#app .adaptive-media-frame,
#app .article-main-image,
#app .article-secondary-media,
#app .dgri-home .visual,
#app .doctrine-visual,
#app .bio-photo-frame{
  background:
    radial-gradient(circle at 50% 42%,
      rgba(255,255,255,.99) 0%,
      rgba(245,249,247,.95) 58%,
      rgba(235,242,238,.90) 100%)!important;
  border-color:rgba(30,78,58,.09)!important;
  box-shadow:
    0 9px 24px rgba(24,55,40,.07),
    inset 0 0 0 1px rgba(255,255,255,.44)!important;
}

/* Restaurer explicitement le fonctionnement des diaporamas Accueil. */
#app .hero-visual .hero-slides{
  position:absolute!important;
  inset:0!important;
}
#app .hero-visual .hero-slide{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}
#app .hero-visual .hero-ui{
  position:absolute!important;
  z-index:4!important;
  left:22px!important;
  right:22px!important;
  bottom:20px!important;
}
#app .hero-visual .slide-dots{
  position:absolute!important;
  z-index:5!important;
  top:18px!important;
  right:18px!important;
}

/* Les photos défilantes Mission / Rejoignez-nous restent superposées. */
#app .media-stack img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}
#app .media-stack .media-stack-label{
  position:absolute!important;
  z-index:4!important;
  left:16px!important;
  right:auto!important;
  bottom:16px!important;
}

/* Flèches de navigation nettement visibles, sans masquer la photo. */
#app .slide-btn{
  display:inline-grid!important;
  place-items:center!important;
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.72)!important;
  background:rgba(15,55,42,.88)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-family:Arial,sans-serif!important;
  font-size:27px!important;
  font-weight:700!important;
  line-height:1!important;
  text-shadow:0 1px 2px rgba(0,0,0,.4)!important;
  box-shadow:0 6px 18px rgba(10,34,25,.22)!important;
  backdrop-filter:blur(6px)!important;
}
#app .slide-btn:hover,
#app .slide-btn:focus-visible{
  background:rgba(20,78,59,.96)!important;
  border-color:#fff!important;
  outline:none!important;
}

/* Les points du grand diaporama restent visibles. */
#app .slide-dot{
  position:relative!important;
  width:30px!important;
  height:5px!important;
  border-radius:99px!important;
  background:rgba(255,255,255,.66)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.22)!important;
}
#app .slide-dot.active{
  background:var(--accent)!important;
}

/* Mobile : mêmes règles, avec commandes légèrement plus compactes. */
@media(max-width:760px){
  #app .hero-visual .hero-ui{
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
  }
  #app .hero-visual .slide-dots{
    top:12px!important;
    right:12px!important;
  }
  #app .slide-btn{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    font-size:24px!important;
  }
  #app .media-stack .media-stack-label{
    left:8px!important;
    bottom:8px!important;
  }
}
