*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
img{max-width:100%}
section[id]{scroll-margin-top:16px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #52AEF8;outline-offset:3px}

/* bannière de consentement (loi 25) */
.o5-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:100;max-width:760px;margin:0 auto;background:#FFFFFF;color:#01014D;border-radius:18px;box-shadow:0 20px 60px rgba(1,1,77,0.35);padding:20px 22px;display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.55}
.o5-consent p{margin:0;flex:1 1 320px}
.o5-consent a{color:#1A6DAE}
.o5-consent .o5-cbtns{display:flex;gap:10px;flex-wrap:wrap}
.o5-consent button{min-height:44px;padding:0 18px;border-radius:999px;font:600 14px Inter,system-ui,sans-serif;cursor:pointer}
.o5-consent .o5-ok{background:#020179;color:#FFFFFF;border:0}
.o5-consent .o5-no{background:transparent;color:#020179;border:1px solid #020179}

/* pages simples (politique, merci) */
.o5-doc{margin:0;background:#F6F8FB;color:#01014D;font-family:Inter,system-ui,sans-serif;line-height:1.65}
.o5-doc header{background:#0F1438;color:#EEF2F8}
.o5-doc header .in{max-width:860px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.o5-doc header a{color:#EEF2F8;text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:600}
.o5-doc header img{width:40px;height:40px}
.o5-doc main{max-width:860px;margin:0 auto;padding:48px 24px 80px}
.o5-doc h1{font-family:Outfit,Inter,sans-serif;font-size:40px;line-height:1.1;margin:0 0 8px}
.o5-doc h2{font-family:Outfit,Inter,sans-serif;font-size:22px;margin:36px 0 8px}
.o5-doc a{color:#1A6DAE}
.o5-doc .meta{color:#4A5468;font-size:14px;margin:0 0 24px}
.o5-doc .box{background:#FFFFFF;border:1px solid #DDE3EC;border-radius:16px;padding:20px 22px}
.o5-doc .btn{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border-radius:999px;background:#020179;color:#FFFFFF;text-decoration:none;font-weight:600}

/* Mobile : titres adaptés à l'écran, aucun débordement horizontal */
html,body{overflow-x:clip}
h1,h2,h3{overflow-wrap:break-word}
@media (max-width:640px){
  span[aria-hidden="true"][style*="pointer-events: none"][style*="top: 0"][style*="right: 0"]{display:none!important}
  h1[style*="font-size: 64px"]{font-size:40px!important;line-height:1.05!important}
  h2[style*="font-size: 60px"]{font-size:38px!important;line-height:1.02!important}
  h2[style*="font-size: 44px"]{font-size:30px!important;line-height:1.12!important}
  h2[style*="font-size: 34px"]{font-size:27px!important}
  h3[style*="font-size: 28px"]{font-size:23px!important}
  div[style*="background: rgb(2, 1, 121)"][style*="padding"]{padding-left:24px!important;padding-right:24px!important}
}

/* Contenu pré-rendu (pour Google) : masqué le temps que la page interactive démarre */
.o5-js #o5-app[data-pre]{visibility:hidden;animation:o5-show 0s 2.5s forwards}
@keyframes o5-show{to{visibility:visible}}

/* Pages Nouvelles, Publications et Services */
.o5-art header nav{display:flex;gap:20px;flex-wrap:wrap;align-items:center;font-size:15px}
.o5-art header nav a{font-weight:500;color:#C9D2E6}
.o5-art header nav a:hover{color:#FFFFFF}
.o5-art header nav .lang{border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 12px;font-size:13px;letter-spacing:.06em}
.o5-art main{max-width:900px}
.o5-art h1{font-size:44px;letter-spacing:-.015em;margin:6px 0 14px;text-wrap:balance}
.o5-art h2{font-size:24px;margin:44px 0 12px}
.o5-art p,.o5-art li{font-size:17px;color:#2A3350}
.o5-art ul{padding-left:20px}
.o5-art li{margin:6px 0}
.o5-art .crumbs{font-size:14px;color:#4A5468;margin:0 0 28px}
.o5-art .crumbs a{text-decoration:none}
.o5-art .kicker{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#1A6DAE;margin:0}
.o5-art .lede{font-size:19px;max-width:720px}
.o5-art figure{margin:0}
.o5-art figure.lead{margin:28px 0 24px}
.o5-art figure img{width:100%;height:auto;display:block;border-radius:16px;background:#DDE3EC}
.o5-art figcaption{font-size:14px;color:#4A5468;margin-top:8px;line-height:1.45}
.o5-art .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:32px 0}
.o5-art .facts div{background:#020179;color:#FFFFFF;border-radius:16px;padding:20px}
.o5-art .facts strong{display:block;font-family:Outfit,Inter,sans-serif;font-size:30px;color:#6EEDBE;line-height:1.1;margin-bottom:6px}
.o5-art .facts span{font-size:14px;line-height:1.45;color:#E6E6F7}
.o5-art .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.o5-art .gallery img{aspect-ratio:3/2;object-fit:cover}
.o5-art .acts{display:flex;flex-wrap:wrap;gap:12px;margin:40px 0 8px}
.o5-art .btn.ghost{background:transparent;color:#020179;border:1px solid #020179}
.o5-art .more a{font-weight:600;text-decoration:none}
.o5-art .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.o5-art .card{background:#FFFFFF;border:1px solid #DDE3EC;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:8px}
.o5-art .card img{width:calc(100% + 40px);margin:-20px -20px 8px;border-radius:16px 16px 0 0;aspect-ratio:16/9;object-fit:cover;height:auto}
.o5-art .card h3{font-family:Outfit,Inter,sans-serif;font-size:20px;line-height:1.25;margin:0}
.o5-art .card h3 a{color:#01014D;text-decoration:none}
.o5-art .card h3 a:hover{text-decoration:underline}
.o5-art .card p{font-size:15px;margin:0}
.o5-art-foot{border-top:1px solid #DDE3EC;background:#FFFFFF;font-size:14px;color:#4A5468}
.o5-art-foot .in{max-width:900px;margin:0 auto;padding:22px 24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.o5-art-foot a{color:#1A6DAE}
@media (max-width:640px){.o5-art h1{font-size:32px}.o5-art header nav{gap:14px;font-size:14px}}
