
:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --surface-alt:#eef4fb;
  --text:#0f172a;
  --muted:#475569;
  --border:#dbe4f0;
  --accent:#2563eb;
  --accent-dark:#1d4ed8;
  --accent-soft:#dbeafe;
  --shadow:0 10px 30px rgba(15,23,42,.08);
  --radius:20px;
  --container:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 2rem), var(--container)); margin:0 auto}
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  min-height:74px;
}
.brand{
  display:flex; flex-direction:column; gap:.1rem;
}
.brand strong{font-size:1.2rem; letter-spacing:.01em}
.brand span{font-size:.9rem; color:var(--muted)}
.nav{display:flex; gap:1.25rem; align-items:center; flex-wrap:wrap}
.nav a{
  font-size:.95rem; color:#334155; padding:.5rem 0; position:relative; font-weight:500;
}
.nav a.active, .nav a:hover{color:var(--accent)}
.nav a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-1.05rem; height:2px; background:var(--accent);
}
.menu-btn{
  display:none; border:1px solid var(--border); background:#fff; border-radius:12px; padding:.55rem .75rem; font-weight:600;
}
.hero{
  background:linear-gradient(135deg,#eff6ff 0%, #ffffff 60%, #eef2ff 100%);
  padding:4.5rem 0;
}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:2rem; align-items:center}
.badge{
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--accent-soft); color:#1e40af; font-size:.9rem;
  padding:.5rem .9rem; border-radius:999px; font-weight:600; margin-bottom:1rem;
}
.hero h1,.page-hero h1{
  font-size:clamp(2.1rem, 4vw, 3.4rem);
  line-height:1.12; margin:0 0 1rem;
}
.hero p,.page-hero p{font-size:1.08rem; color:var(--muted); margin:0 0 1.2rem}
.hero-image, .featured-image{
  border-radius:28px; overflow:hidden; box-shadow:var(--shadow); background:#fff; border:1px solid var(--border);
}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.6rem}
.button{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.92rem 1.25rem; border-radius:14px; border:1px solid transparent; font-weight:700;
  transition:.2s ease; cursor:pointer;
}
.button-primary{background:var(--accent); color:#fff}
.button-primary:hover{background:var(--accent-dark)}
.button-secondary{background:#fff; border-color:var(--accent); color:var(--accent)}
.button-secondary:hover{background:var(--accent-soft)}
.button-muted{background:#fff; border-color:var(--border); color:var(--text)}
.page-hero{padding:3.6rem 0 2rem}
.section{padding:4.2rem 0}
.section.alt{background:#fff}
.section.soft{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.section-title{
  font-size:clamp(1.7rem,2.6vw,2.6rem); line-height:1.15; margin:0 0 .8rem;
}
.section-intro{max-width:860px; color:var(--muted); font-size:1.04rem; margin:0 0 2rem}
.cards{display:grid; gap:1.25rem}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:1.3rem; box-shadow:var(--shadow);
}
.card h3{font-size:1.15rem; margin:.2rem 0 .65rem; line-height:1.25}
.card p, .card li{color:var(--muted)}
.card ul{margin:.75rem 0 0; padding-left:1.2rem}
.kpis{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem}
.kpi{
  background:#fff; border:1px solid var(--border); border-radius:20px; padding:1.5rem 1rem; text-align:center; box-shadow:var(--shadow)
}
.kpi strong{display:block; color:var(--accent); font-size:2.15rem; line-height:1}
.kpi span{display:block; font-size:.95rem; color:var(--muted); margin-top:.6rem}
.split{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start}
.split-37{display:grid; grid-template-columns:1.08fr .92fr; gap:2rem; align-items:center}
.info-box{
  background:#fff; border:1px solid var(--border); border-radius:22px; padding:1.5rem; box-shadow:var(--shadow)
}
.info-box.alt{background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%)}
.timeline{display:grid; gap:1rem; position:relative}
.timeline-item{
  background:#fff; border:1px solid var(--border); border-left:6px solid var(--accent);
  border-radius:18px; padding:1rem 1.1rem 1rem 1.2rem; box-shadow:var(--shadow)
}
.timeline-item strong{display:block; color:var(--accent); margin-bottom:.2rem}
.list-check{display:grid; gap:.8rem}
.list-check .item{
  background:#fff; border:1px solid var(--border); border-radius:16px; padding:1rem 1.1rem; display:flex; gap:.8rem; align-items:flex-start
}
.list-check .item::before{
  content:"✓"; width:1.6rem; height:1.6rem; flex:0 0 1.6rem; display:grid; place-items:center;
  background:var(--accent-soft); color:var(--accent); border-radius:999px; font-weight:700; margin-top:.1rem
}
.gallery{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem}
.gallery figure{
  margin:0; overflow:hidden; border-radius:20px; background:#fff; border:1px solid var(--border); box-shadow:var(--shadow)
}
.gallery figcaption{padding:.85rem 1rem; color:var(--muted); font-size:.94rem}
.docs-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem}
.doc-card{
  background:#fff; border:1px solid var(--border); border-radius:22px; overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column
}
.doc-card .preview{background:#f8fafc; border-bottom:1px solid var(--border); aspect-ratio:4/5; display:grid; place-items:center; overflow:hidden}
.doc-card .preview img{width:100%; height:100%; object-fit:contain}
.doc-card .content{padding:1.1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.6rem; height:100%}
.meta{font-size:.92rem; color:#64748b}
.note{
  background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; border-radius:18px; padding:1rem 1.1rem
}
.download-row{margin-top:auto; padding-top:.5rem; display:flex; gap:.75rem; flex-wrap:wrap}
.table{
  width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--border); border-radius:18px; overflow:hidden; box-shadow:var(--shadow)
}
.table th,.table td{padding:1rem; text-align:left; border-bottom:1px solid var(--border); vertical-align:top}
.table th{background:#f8fbff; font-size:.96rem}
.status{
  display:inline-flex; align-items:center; gap:.45rem; padding:.3rem .65rem; border-radius:999px; font-size:.84rem; font-weight:700
}
.status.en-cours{background:#dbeafe; color:#1d4ed8}
.status.a-letude{background:#ede9fe; color:#6d28d9}
.status.engagee{background:#dcfce7; color:#166534}
.status.non-retenue{background:#fee2e2; color:#991b1b}
.cta-band{
  background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 55%,#1e3a8a 100%);
  color:#fff; border-radius:30px; padding:2rem; box-shadow:var(--shadow)
}
.cta-band p{color:#dbeafe}
.faq{display:grid; gap:1rem}
.faq .item{background:#fff; border:1px solid var(--border); border-radius:18px; padding:1.15rem 1.2rem; box-shadow:var(--shadow)}
.form{
  background:#fff; border:1px solid var(--border); border-radius:22px; padding:1.25rem; box-shadow:var(--shadow)
}
.form-row{display:grid; gap:1rem; grid-template-columns:1fr 1fr}
label{display:block; font-weight:700; margin-bottom:.4rem}
input, textarea{
  width:100%; padding:.9rem 1rem; border:1px solid #cbd5e1; border-radius:14px; font:inherit; color:var(--text); background:#fff
}
textarea{min-height:170px; resize:vertical}
.small{font-size:.92rem; color:var(--muted)}
.footer{
  background:#fff; border-top:1px solid var(--border); margin-top:4rem
}
.footer-grid{
  display:grid; grid-template-columns:1.3fr .8fr .9fr; gap:1.5rem; padding:2.2rem 0
}
.footer h3{margin:.2rem 0 .75rem; font-size:1.04rem}
.footer p,.footer li,.footer a{color:var(--muted)}
.footer ul{list-style:none; padding:0; margin:0; display:grid; gap:.45rem}
.footer-bottom{padding:1rem 0 2rem; border-top:1px solid var(--border); color:var(--muted); font-size:.95rem}
.mt-0{margin-top:0}
.mb-0{margin-bottom:0}
.center{text-align:center}
@media (max-width: 1080px){
  .hero-grid,.split,.split-37,.footer-grid,.docs-grid,.gallery,.cards.three,.cards.four,.kpis{grid-template-columns:1fr 1fr}
  .cards.two{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .menu-btn{display:block}
  .nav{
    display:none; position:absolute; left:1rem; right:1rem; top:74px; flex-direction:column; align-items:flex-start;
    padding:1rem; background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow)
  }
  .nav.open{display:flex}
  .nav a.active::after{display:none}
  .hero,.section,.page-hero{padding:2.8rem 0}
  .hero-grid,.split,.split-37,.footer-grid,.docs-grid,.gallery,.cards.two,.cards.three,.cards.four,.kpis,.form-row{grid-template-columns:1fr}
  .header-inner{min-height:68px}
}


.gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.featured-image + .gallery{margin-top:1rem}
.gallery figure img{width:100%;height:100%;object-fit:cover}
.wide-media{margin-bottom:1.2rem}
.wide-media img{width:100%;height:auto}
.doc-card .preview.is-landscape{aspect-ratio:16/10}
.doc-card .preview.is-square{aspect-ratio:1/1}
.image-caption{margin-top:.75rem;color:var(--muted);font-size:.95rem}


.theme-list{display:grid;gap:4rem}
.theme-panel + .theme-panel{padding-top:4rem;border-top:1px solid var(--border)}
.theme-panel h2{margin:0 0 .9rem;font-size:clamp(1.6rem,2.3vw,2.35rem);line-height:1.15}
.theme-panel p{margin:.2rem 0 1rem;color:var(--muted);max-width:980px}
.theme-list-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.25rem;list-style:none;padding:0;margin:1.2rem 0 0}
.theme-list-points li{position:relative;padding-left:1.15rem;color:var(--muted)}
.theme-list-points li::before{content:"";position:absolute;left:0;top:.7rem;width:.42rem;height:.42rem;border-radius:999px;background:var(--accent)}
.theme-conclusion{margin-top:1rem;padding:1rem 1.15rem;border-radius:18px;background:var(--surface-alt);color:var(--muted)}
.visual-flow{margin:1.4rem 0 0}
.visual-flow img{width:100%;height:auto;border:none;border-radius:0;box-shadow:none;background:transparent}
.visual-note{margin-top:.8rem;color:var(--muted);font-size:.95rem}
.link-inline{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--accent)}
@media (max-width: 760px){
  .theme-list-points{grid-template-columns:1fr}
  .theme-panel + .theme-panel{padding-top:3rem}
}


.section-heading-inline{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}
.press-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:1.5rem;align-items:start}
.press-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.press-grid-featured{grid-template-columns:repeat(3,minmax(0,1fr))}
.press-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:1.35rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.8rem}
.press-card h2,.press-card h3{margin:0;font-size:1.2rem;line-height:1.28}
.press-card p{margin:0;color:var(--muted)}
.press-source{display:inline-flex;align-self:flex-start;padding:.38rem .72rem;border-radius:999px;background:var(--accent-soft);color:#1e40af;font-size:.88rem;font-weight:700}
@media (max-width: 1080px){
  .press-hero,.press-grid,.press-grid-featured,.section-heading-inline{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .section-heading-inline{display:grid;align-items:start}
  .press-hero,.press-grid,.press-grid-featured{grid-template-columns:1fr}
}
