:root{--navy:#092b5c;--blue:#24538e;--light:#f6f8fb;--ink:#16243a;--muted:#5d6b7d;--line:#dfe5ed}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:white;line-height:1.55}.wrap{width:min(1380px,calc(100% - 80px));margin:auto}.site-header{height:92px;background:#fff;border-bottom:1px solid #edf0f4;position:sticky;top:0;z-index:100}.nav-shell{width:min(1460px,calc(100% - 60px));height:100%;margin:auto;display:flex;align-items:center;gap:26px}.brand img,.brand .custom-logo{width:220px;height:auto;display:block}.main-nav{margin-left:auto}.main-nav ul{display:flex;gap:29px;list-style:none;margin:0;padding:0}.main-nav a{font-size:11px;font-weight:700;text-decoration:none;color:#1b2c43;white-space:nowrap}.main-nav a:hover{color:var(--blue)}.nav-tools{display:flex;gap:22px;align-items:center}.search{font-size:23px}.contact-btn{background:#102d58;color:#fff;text-decoration:none;padding:14px 24px;font-size:11px;font-weight:800;letter-spacing:.06em}.mobile-toggle{display:none;background:none;border:0;font-size:25px}
.hero{background:linear-gradient(105deg,#fff 0%,#fff 45%,#edf3fa 100%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:46% 54%;min-height:650px}.hero-copy{padding:95px 20px 70px 0;position:relative;z-index:2}.kicker,.eyebrow{font-size:12px;line-height:1.25;font-weight:800;letter-spacing:.02em;color:#36577f;margin-bottom:16px;text-transform:uppercase}.hero h1,h2{font-family:Montserrat,Inter,sans-serif;letter-spacing:.01em;line-height:1.04}.hero h1{font-size:clamp(56px,5.2vw,92px);margin:0 0 14px;font-weight:900}.hero h1::first-line{color:#16243a}.hero h2{font-size:18px;color:#233e64;margin:0 0 18px;line-height:1.45}.hero-copy>p{font-size:13px;color:#405269;max-width:650px}.hero-actions{display:flex;gap:16px;margin-top:30px}.button{display:inline-flex;align-items:center;gap:15px;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.04em;padding:14px 22px;border:1px solid var(--navy);color:var(--navy)}.primary{background:var(--navy);color:#fff}.ghost{background:#fff}.white{background:#fff;color:var(--navy);border-color:#fff}.hero-photo{position:relative;min-height:650px}.hero-photo img,.why-photo img,.mission-photo img{width:100%;height:100%;object-fit:cover}.admin-photo{height:100%;min-height:400px;background:linear-gradient(135deg,#dce7f2,#9fb9d3);display:flex;align-items:center;justify-content:center;text-align:center;color:#31506f;font-weight:800;letter-spacing:.08em}.dark{background:linear-gradient(135deg,#071d36,#234f7d);color:#fff}.hero-quote{position:absolute;right:8%;bottom:70px;width:250px;font-family:cursive;font-size:27px;line-height:1.4;color:#26364d;transform:rotate(-5deg)}
.partner-strip{background:#f8fafc;border-bottom:1px solid var(--line)}.strip-grid{min-height:105px;display:grid;grid-template-columns:160px 140px 180px 1fr;align-items:center;gap:28px}.strip-grid>span{font-size:10px;font-weight:800;color:#34465f}.founder{font-size:32px;letter-spacing:.09em}.founder small{display:block;font-size:7px;letter-spacing:.15em;color:#77859a}.uccas{font-size:20px;letter-spacing:.02em}.audiences{font-size:11px;font-weight:800;letter-spacing:.05em;text-align:right}.audiences i{font-style:normal;color:#9ba7b5;margin:0 14px}
.why{background:#fff}.why-grid{display:grid;grid-template-columns:47% 53%;min-height:580px}.why-photo{min-height:580px}.why-copy{padding:58px 0 30px 55px}.why-copy .eyebrow{font-size:16px;color:#1f2e43}.why-copy h2{font-size:clamp(42px,4vw,67px);margin:10px 0 18px;color:#2c548e}.why-copy p{max-width:650px;font-size:14px;color:#4c5a6d}.why-copy strong{font-size:13px}.four-pillars{display:grid;grid-template-columns:repeat(4,1fr);margin-top:30px;border-top:1px solid var(--line)}.four-pillars>div{text-align:center;padding:20px 8px;border-right:1px solid var(--line)}.four-pillars>div:last-child{border-right:0}.four-pillars b{font-size:35px;color:#2c548e}.four-pillars h4{font-size:11px;margin:6px 0}.four-pillars span{font-size:10px;color:#66758a}
.complement{padding:25px 0;background:#fff}.complement-grid{display:grid;grid-template-columns:38% 31% 31%;gap:18px}.complement-copy{padding:35px 0}.complement-copy h2{font-size:clamp(40px,3.8vw,63px);color:#2b548e;margin:15px 0}.complement-copy p{font-size:13px;color:#526176;max-width:430px}.complement-copy .button{margin-top:20px}.domain-card{height:335px;display:flex;align-items:flex-end;padding:30px;color:#fff;background:linear-gradient(135deg,#09233e,#2f6aa0);position:relative;overflow:hidden}.domain-card:before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,17,31,.9),rgba(5,17,31,.08))}.domain-card>div{position:relative;z-index:1}.domain-card b{font-size:14px}.domain-card p{font-size:18px;font-weight:800;margin:20px 0 5px}.domain-card span{font-size:12px}.intelligence{background:linear-gradient(135deg,#203d5d,#607e9f)}
.mission{padding:70px 0}.mission-grid{display:grid;grid-template-columns:50% 50%;min-height:430px}.mission-copy{padding:30px 65px 30px 0}.mission-copy h2{font-size:clamp(39px,3.7vw,63px);color:#2a548e;margin:10px 0 18px}.mission-copy p{font-size:13px;color:#526176;max-width:630px}.mission-copy .button{margin-top:15px}.mission-photo{min-height:430px}
.approach{padding:60px 0;background:#f7f9fc;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.center-head{text-align:center}.center-head h2{font-size:clamp(34px,3.3vw,54px);margin:4px 0 35px}.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.steps article{text-align:center;position:relative;padding:8px}.steps span{display:inline-flex;width:48px;height:48px;border:2px solid #d6dfe9;border-radius:50%;align-items:center;justify-content:center;font-weight:800;color:#31517b}.steps i{position:absolute;right:-10px;top:21px;font-size:23px;color:#416ca0;font-style:normal}.steps h4{font-size:11px;margin:13px 0 5px}.steps p{font-size:10px;color:#637187;line-height:1.35}
.programs{padding:70px 0}.program-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.program-card{border:1px solid var(--line);background:#fff}.program-card img,.program-placeholder{width:100%;height:145px;object-fit:cover;display:block}.program-placeholder{background:linear-gradient(135deg,#173d66,#8aa9c7)}.program-card>div:last-child{padding:14px;min-height:160px;position:relative}.program-card h3{font-size:13px;line-height:1.25;margin:0 0 8px}.program-card p{font-size:10px;color:#637187;margin:0}.program-card a{position:absolute;right:15px;bottom:10px;color:#2b548e;text-decoration:none;font-size:20px}.all-programs{text-align:center;margin-top:18px}
.impact{background:#eef3f8}.impact-bg{background:linear-gradient(90deg,rgba(12,40,75,.03),rgba(12,40,75,.07))}.impact-grid{display:grid;grid-template-columns:66% 34%;min-height:390px}.impact-left{padding:55px 0}.impact-left h2{font-size:clamp(30px,3vw,48px);color:#fff;text-shadow:0 1px 2px #30445c;margin:0 0 50px}.stats{display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.9)}.stats>div{text-align:center;padding:20px 8px;border-right:1px solid #e0e5eb}.stats>div:last-child{border:0}.stats b{display:block;font-size:26px;color:#31547e}.stats strong{display:block;font-size:18px;color:#254b7d}.stats span{font-size:9px;color:#627086}.impact-support{background:#17365f;color:#fff;padding:45px 45px}.impact-support h2{font-size:32px;margin:0 0 20px}.impact-support p{font-size:13px;color:#e4ebf4}.impact-support .button{margin-top:14px}
.partners{padding:55px 0}.partners-head{display:grid;grid-template-columns:29% 71%;gap:30px;align-items:center}.partners h2{font-size:30px;margin:0;color:#1c2d45}.partner-logos{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.partner-logos>div{height:105px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center;color:#31425a;font-size:13px}.partner-logos img{max-width:80%;max-height:65px;object-fit:contain}
.site-footer{border-top:1px solid var(--line);background:#fff}.footer-top{display:grid;grid-template-columns:2fr 1fr 1.3fr 1.7fr;gap:45px;padding:45px 0}.footer-brand img{width:190px;height:auto}.footer-brand p,.footer-top p,.footer-top a{font-size:10px;color:#536176;text-decoration:none;display:block;margin:6px 0}.footer-top h4{font-size:10px;margin:0 0 12px}.social{font-size:18px;letter-spacing:7px;margin-top:14px}.newsletter{display:flex;margin-top:10px}.newsletter input{height:40px;border:1px solid var(--line);padding:0 12px;flex:1}.newsletter button{width:45px;border:0;background:#163860;color:#fff;font-size:18px}.footer-top em{font-size:11px;color:#526176;display:block;text-align:right;margin-top:18px}.footer-bottom{border-top:1px solid var(--line);padding:16px 0;font-size:9px;color:#687487;display:flex;justify-content:space-between}.standard-page{padding:90px 0;min-height:60vh}
@media(max-width:1100px){.main-nav ul{gap:15px}.main-nav a{font-size:9px}.hero-grid,.why-grid,.mission-grid{grid-template-columns:1fr}.hero-photo{min-height:500px}.why-copy{padding:55px 0}.strip-grid{grid-template-columns:1fr 1fr}.audiences{text-align:left}.program-grid{grid-template-columns:repeat(3,1fr)}.impact-grid{grid-template-columns:1fr}.impact-support{min-height:300px}.partners-head{grid-template-columns:1fr}.partner-logos{grid-template-columns:repeat(3,1fr)}} 
@media(max-width:760px){.wrap,.nav-shell{width:min(100% - 32px,1380px)}.site-header{height:72px}.brand img{width:170px}.main-nav{display:none}.main-nav.open{display:block;position:absolute;top:72px;left:0;right:0;background:#fff;padding:20px}.main-nav.open ul{display:block}.main-nav.open li{padding:10px 0}.mobile-toggle{display:block;margin-left:auto}.nav-tools{display:none}.hero-copy{padding:60px 0 35px}.hero h1{font-size:47px}.hero-photo{min-height:420px}.hero-quote{font-size:20px}.strip-grid{grid-template-columns:1fr 1fr;padding:20px 0}.audiences{grid-column:1/-1;font-size:9px}.four-pillars{grid-template-columns:repeat(2,1fr)}.complement-grid{grid-template-columns:1fr}.domain-card{height:260px}.steps{grid-template-columns:repeat(2,1fr)}.program-grid{grid-template-columns:1fr 1fr}.impact-left{padding:45px 0}.stats{grid-template-columns:1fr 1fr}.stats>div{border-bottom:1px solid #e0e5eb}.impact-support{padding:40px 25px}.partner-logos{grid-template-columns:1fr 1fr}.footer-top{grid-template-columns:1fr 1fr}.footer-bottom{display:block}.footer-bottom span{display:block;margin:4px 0}} 
@media(max-width:480px){.hero h1{font-size:39px}.hero-actions{flex-direction:column}.program-grid,.partner-logos,.footer-top{grid-template-columns:1fr}.strip-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.why-copy h2,.mission-copy h2{font-size:38px}}


/* FINAL V3 – photographic direction */
.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(237,243,250,.08),rgba(5,30,61,.06));pointer-events:none}
.hero-photo img{filter:saturate(.92) contrast(1.03)}
.why-photo{position:relative;overflow:hidden}
.why-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(7,30,60,.12),rgba(17,79,130,.08))}
.mission-photo{position:relative;overflow:hidden}
.mission-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(12,42,82,.08),transparent 65%)}
.program-card{overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.program-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px rgba(20,49,84,.12)}
.program-card img{transition:transform .5s ease}
.program-card:hover img{transform:scale(1.04)}
.impact-bg{background:
linear-gradient(90deg,rgba(8,35,67,.82),rgba(17,61,105,.72)),
url('../images/maquette/handshake-maquette.jpg') center/cover no-repeat}
.impact-left h2{text-shadow:none}
.impact-support{position:relative;overflow:hidden;min-height:390px;display:flex;flex-direction:column;justify-content:center}
.support-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.support-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,30,59,.94),rgba(20,66,108,.78))}
.support-content{position:relative;z-index:2}
.partner-strip{position:relative}
@media(max-width:760px){
  .hero-photo{min-height:460px}
  .impact-bg{background:
  linear-gradient(180deg,rgba(8,35,67,.88),rgba(17,61,105,.78)),
  url('../images/maquette/handshake-maquette.jpg') center/cover no-repeat}
}


/* SACIA V4.1 — images issues de la maquette validée */
.hero{background:linear-gradient(90deg,#ffffff 0%,#f9fafc 55%,#edf3f9 100%)}
.hero-grid{min-height:610px}
.hero-copy h1{font-size:clamp(50px,5.3vw,86px);line-height:.98;letter-spacing:-.04em}
.hero-photo{background:#eef3f8;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.why-photo,.mission-photo{overflow:hidden}
.why-photo img,.mission-photo img{width:100%;height:100%;object-fit:cover;display:block}
.program-card{background:#fff;border:1px solid #dfe7f0;border-radius:3px;overflow:hidden}
.program-card img{width:100%;height:160px;object-fit:cover;display:block}
.impact-bg{background:linear-gradient(90deg,rgba(10,40,75,.88),rgba(18,69,115,.72)),url('../images/maquette/handshake-maquette.jpg') center/cover no-repeat}
.impact-support{position:relative;overflow:hidden;min-height:390px;display:flex;align-items:center}
.support-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.support-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,39,72,.94),rgba(25,63,108,.72))}
.support-content{position:relative;z-index:2;padding:55px}
@media(max-width:900px){
  .hero-grid{min-height:auto}
  .hero-photo{min-height:430px}
  .hero-copy h1{font-size:52px}
}


/* =========================================================
   SACIA V5 — PHOTOS EXACTES DE LA MAQUETTE APPROUVÉE
   ========================================================= */

.hero {
  background: linear-gradient(90deg, #ffffff 0%, #fafbfd 56%, #eef3f8 100%);
}

.hero-photo {
  background: #edf2f7;
}

.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.why-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.domain-card.security {
  background-image:
    linear-gradient(to top, rgba(5,17,31,.88), rgba(5,17,31,.05)),
    url('../images/photos-maquette/cybersecurity.jpg');
  background-size: cover;
  background-position: center;
}

.domain-card.intelligence {
  background-image:
    linear-gradient(to top, rgba(5,17,31,.88), rgba(5,17,31,.05)),
    url('../images/photos-maquette/cyber-analysis.jpg');
  background-size: cover;
  background-position: center;
}

.mission-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.program-card {
  overflow: hidden;
}

.program-card img {
  width: 100%;
  height: 145px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.impact-bg {
  background:
    linear-gradient(90deg, rgba(12,40,75,.42), rgba(12,40,75,.10)),
    url('../images/photos-maquette/impact-city.jpg') center/cover no-repeat;
}

@media (max-width: 900px) {
  .hero-photo {
    min-height: 430px;
  }

  .hero-photo img {
    object-position: 58% center;
  }

  .program-card img {
    height: 165px;
  }
}


/* =========================================================
   SACIA V5.2 — PROPORTIONS FINALES SELON LA MAQUETTE VALIDÉE
   ========================================================= */

/* HERO: same visual balance as the approved mock-up */
.hero { overflow: hidden; }
.hero-grid {
  grid-template-columns: 46% 54%;
  min-height: 0;
  align-items: stretch;
}
.hero-copy {
  min-height: 610px;
  padding: clamp(52px, 6vw, 92px) 28px clamp(46px, 5vw, 76px) 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-copy h1 {
  font-size: clamp(48px, 5.1vw, 86px);
  line-height: .99;
  letter-spacing: -.035em;
  margin: 0 0 14px;
}
.hero-copy h2 {
  font-size: clamp(16px, 1.25vw, 20px);
  line-height: 1.42;
}
.hero-photo {
  min-height: 0 !important;
  height: auto;
  aspect-ratio: 1.45 / 1;
  align-self: stretch;
  overflow: hidden;
}
.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top !important;
  display: block;
}
.hero-quote {
  right: 7%;
  bottom: 7%;
  width: min(44%, 300px);
}

/* Keep the same large-title hierarchy throughout the site */
.why-copy h2,
.complement-copy h2,
.mission-copy h2 {
  line-height: 1.02;
  letter-spacing: -.025em;
}

/* Desktop/tablet: do not collapse the hero too early */
@media (max-width: 1100px) and (min-width: 761px) {
  .hero-grid {
    grid-template-columns: 46% 54% !important;
  }
  .hero-copy {
    min-height: 520px;
    padding: 55px 22px 45px 0;
  }
  .hero-copy h1 {
    font-size: clamp(42px, 5.8vw, 64px);
  }
  .hero-photo {
    min-height: 520px !important;
    aspect-ratio: auto;
  }
}

/* Mobile: preserve the strong typography of the approved visual */
@media (max-width: 760px) {
  .hero-grid {
    grid-template-columns: 1fr !important;
  }
  .hero-copy {
    min-height: auto;
    padding: 48px 0 30px;
    display: block;
  }
  .hero-copy h1 {
    font-size: clamp(42px, 11vw, 58px) !important;
    line-height: 1.0;
    letter-spacing: -.035em;
  }
  .hero-copy h2 {
    font-size: 18px;
    line-height: 1.42;
  }
  .hero-photo {
    min-height: 0 !important;
    height: auto;
    aspect-ratio: 1.18 / 1;
  }
  .hero-photo img {
    object-position: center top !important;
  }
  .hero-quote {
    right: 6%;
    bottom: 6%;
    width: 48%;
    font-size: clamp(16px, 4.8vw, 22px);
  }

  /* Main section titles remain visually powerful on phones */
  .why-copy h2,
  .complement-copy h2,
  .mission-copy h2 {
    font-size: clamp(36px, 9vw, 48px) !important;
    line-height: 1.04;
  }

  .why-photo {
    min-height: 0;
    aspect-ratio: 1.15 / 1;
  }
  .why-photo img {
    object-position: center center !important;
  }

  .mission-photo {
    min-height: 0;
    aspect-ratio: 1.55 / 1;
  }
  .mission-photo img {
    object-position: center center !important;
  }
}

@media (max-width: 480px) {
  .hero-copy h1 {
    font-size: clamp(40px, 11.5vw, 52px) !important;
  }
  .hero-actions .button {
    width: 100%;
    justify-content: center;
  }
}

/* =========================================================
   SACIA V5.3 — HERO EXACT MAQUETTE / CADRAGE FINAL
   Cette couche finale évite tout recadrage du visuel principal.
   ========================================================= */
.hero {
  background: linear-gradient(90deg,#fff 0%,#fafbfd 55%,#edf3f8 100%);
}

/* Le ratio de la photographie originale est conservé : 1800 × 1240. */
.hero-grid {
  grid-template-columns: 45% 55% !important;
  align-items: start !important;
  min-height: 0 !important;
}
.hero-copy {
  min-height: 0 !important;
  padding: clamp(54px,7.2vw,118px) 34px clamp(48px,6vw,92px) 0 !important;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}
.hero-copy h1 {
  font-size: clamp(58px,5.85vw,104px) !important;
  line-height: .94 !important;
  letter-spacing: -.045em !important;
  max-width: 8.8em;
  margin: 0 0 20px !important;
}
.hero-copy h2 {
  font-size: clamp(18px,1.3vw,22px) !important;
  line-height: 1.38 !important;
  margin-bottom: 18px !important;
}
.hero-copy > p {
  max-width: 600px;
}
.hero-actions {
  margin-top: 28px !important;
}

/* L'image ne doit jamais être agrandie par object-fit: cover dans le hero. */
.hero-photo {
  width: 100%;
  min-height: 0 !important;
  height: auto !important;
  aspect-ratio: 1800 / 1240 !important;
  align-self: start !important;
  overflow: hidden;
  background: #edf2f7;
}
.hero-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  object-position: center center !important;
  display: block;
}
.hero-quote {
  right: 7% !important;
  bottom: 8% !important;
  width: min(42%,300px) !important;
}

/* La copie occupe la même hauteur visuelle que la photo sur grands écrans. */
@media (min-width: 1500px) {
  .hero-copy { min-height: 0 !important; }
}

@media (max-width: 1100px) and (min-width: 761px) {
  .hero-grid { grid-template-columns: 45% 55% !important; }
  .hero-copy {
    padding: clamp(42px,5vw,70px) 24px clamp(38px,4vw,58px) 0 !important;
  }
  .hero-copy h1 {
    font-size: clamp(50px,6vw,72px) !important;
    line-height: .96 !important;
  }
  .hero-photo { aspect-ratio: 1800 / 1240 !important; }
}

/* Mobile : même force typographique, image entière et non coupée. */
@media (max-width: 760px) {
  .hero-grid {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .hero-copy {
    padding: 42px 0 30px !important;
    display: block !important;
  }
  .hero-copy h1 {
    font-size: clamp(52px,14.2vw,72px) !important;
    line-height: .93 !important;
    letter-spacing: -.05em !important;
    max-width: 100%;
    margin-bottom: 18px !important;
  }
  .hero-copy h2 {
    font-size: clamp(18px,5.1vw,23px) !important;
    line-height: 1.34 !important;
  }
  .hero-copy > p {
    font-size: 13px;
  }
  .hero-photo {
    width: 100% !important;
    aspect-ratio: 1800 / 1240 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .hero-photo img {
    object-fit: fill !important;
    object-position: center center !important;
  }
  .hero-quote {
    right: 5% !important;
    bottom: 6% !important;
    width: 48% !important;
    font-size: clamp(16px,4.6vw,22px) !important;
  }
}

@media (max-width: 480px) {
  .hero-copy h1 {
    font-size: clamp(48px,14vw,62px) !important;
  }
}

/* =========================================================
   SACIA V5.4 — CORRECTION GLOBALE MAQUETTE / HERO / TYPOGRAPHIE
   ========================================================= */

/* Une seule identité typographique forte pour tous les titres. */
h1,h2,h3,h4,h5,h6,
.kicker,.eyebrow,
.main-nav a,.contact-btn,.button,
.program-card h3,.steps h4,.footer-top h4 {
  font-family:Montserrat,Inter,Arial,sans-serif !important;
  font-weight:800;
}

/* HERO : la composition de référence est reconstruite avec un cadrage dédié.
   L'ancienne image complète contenait déjà des éléments de maquette sur la gauche,
   ce qui expliquait les fragments de texte visibles dans la photographie. */
.hero{background:linear-gradient(90deg,#fff 0%,#fafbfd 58%,#edf3f8 100%) !important}
.hero-grid{
  grid-template-columns:44% 56% !important;
  min-height:660px !important;
  align-items:stretch !important;
}
.hero-copy{
  min-height:660px !important;
  padding:70px 40px 68px 0 !important;
  justify-content:center !important;
}
.hero-copy h1{
  display:block !important;
  color:#182b45 !important;
  font-size:clamp(64px,5.9vw,108px) !important;
  line-height:.93 !important;
  letter-spacing:-.055em !important;
  max-width:7.7em !important;
  text-transform:uppercase;
  margin:0 0 22px !important;
}
.hero-copy h2{
  font-family:Montserrat,Inter,sans-serif !important;
  font-size:clamp(19px,1.35vw,23px) !important;
  font-weight:700 !important;
  line-height:1.38 !important;
  margin:0 0 20px !important;
}
.hero-copy>p{font-size:13px;line-height:1.7;max-width:590px;margin:0}
.hero-actions{margin-top:28px !important}
.hero-photo{
  min-height:660px !important;
  height:660px !important;
  aspect-ratio:auto !important;
  background:#edf2f7 !important;
  overflow:hidden !important;
}
.hero-photo picture{display:block;width:100%;height:100%}
.hero-photo img{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  filter:none !important;
  transform:none !important;
}
.hero-photo:after{display:none !important}
.hero-quote{display:none !important}

/* Hiérarchie des grands titres : même caractère et même présence sur tout le site. */
.why-copy h2,.complement-copy h2,.mission-copy h2,
.center-head h2,.partners h2,.impact-left h2,.impact-support h2{
  font-family:Montserrat,Inter,sans-serif !important;
  font-weight:800 !important;
  letter-spacing:-.04em !important;
  line-height:.98 !important;
}
.why-copy h2{font-size:clamp(46px,4.2vw,74px) !important}
.complement-copy h2{font-size:clamp(46px,4.1vw,70px) !important}
.mission-copy h2{font-size:clamp(46px,4vw,70px) !important}
.center-head h2{font-size:clamp(38px,3.5vw,60px) !important}
.partners h2{font-size:clamp(34px,3.1vw,52px) !important}
.impact-left h2{font-size:clamp(34px,3.4vw,56px) !important}
.impact-support h2{font-size:clamp(34px,2.8vw,48px) !important}

/* Les cartes conservent leurs photographies sans déformation. */
.why-photo img,.mission-photo img,.program-card img{
  object-fit:cover !important;
  object-position:center center !important;
}

@media(max-width:1100px) and (min-width:761px){
  .hero-grid{grid-template-columns:46% 54% !important;min-height:570px !important}
  .hero-copy{min-height:570px !important;padding:52px 28px 52px 0 !important}
  .hero-copy h1{font-size:clamp(54px,6vw,76px) !important}
  .hero-photo{min-height:570px !important;height:570px !important}
}

/* Mobile : le grand titre garde son impact et utilise une image spécifiquement cadrée. */
@media(max-width:760px){
  .hero-grid{grid-template-columns:1fr !important;min-height:0 !important}
  .hero-copy{min-height:0 !important;padding:46px 0 34px !important}
  .hero-copy h1{
    font-size:clamp(48px,13vw,72px) !important;
    line-height:.94 !important;
    letter-spacing:-.055em !important;
    max-width:100% !important;
    margin-bottom:18px !important;
  }
  .hero-copy h2{font-size:clamp(18px,5vw,24px) !important}
  .hero-photo{min-height:0 !important;height:auto !important;aspect-ratio:10/11 !important}
  .hero-photo picture{height:100%}
  .hero-photo img{width:100% !important;height:100% !important;object-fit:cover !important;object-position:center center !important}

  .why-copy h2,.complement-copy h2,.mission-copy h2{
    font-size:clamp(42px,11vw,58px) !important;
    line-height:.98 !important;
  }
  .center-head h2{font-size:clamp(34px,9vw,50px) !important}
  .impact-left h2,.impact-support h2{font-size:clamp(34px,10vw,52px) !important}
  .partners h2{font-size:clamp(32px,9vw,48px) !important}
}

@media(max-width:480px){
  .hero-copy h1{font-size:clamp(46px,13.2vw,62px) !important}
  .hero-actions{gap:12px !important}
  .hero-actions .button{width:100%;justify-content:center}
}


/* =========================================================
   SACIA V5.5 — ALIGNEMENT STRICT SUR LA MAQUETTE DE RÉFÉRENCE
   ========================================================= */
/* Cette couche remplace les dimensions trop agressives de V5.4. */
.hero-grid{
  grid-template-columns:45% 55% !important;
  min-height:570px !important;
  align-items:stretch !important;
}
.hero-copy{
  min-height:570px !important;
  padding:58px 34px 52px 0 !important;
  overflow:hidden;
}
.hero-copy h1{
  font-size:clamp(56px,4.35vw,78px) !important;
  line-height:.96 !important;
  letter-spacing:-.045em !important;
  max-width:620px !important;
  margin:0 0 18px !important;
}
.hero-copy h2{
  font-size:clamp(17px,1.1vw,20px) !important;
  line-height:1.38 !important;
  margin-bottom:14px !important;
}
.hero-copy>p{
  font-size:12px !important;
  line-height:1.62 !important;
  max-width:520px !important;
}
.hero-actions{margin-top:20px !important}
.hero-photo{
  min-height:570px !important;
  height:570px !important;
  aspect-ratio:auto !important;
  overflow:hidden !important;
}
.hero-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  /* cadrage fidèle à la composition approuvée : visage à droite, Afrique visible */
  object-position:52% center !important;
}
/* L'image contient déjà la signature manuscrite de la maquette : aucune citation HTML superposée. */
.hero-quote{display:none !important}

/* Tous les grands titres utilisent désormais la même famille et le même caractère visuel,
   sans devenir disproportionnés par rapport à la maquette. */
h1,h2,h3,h4,h5,h6,.eyebrow,.kicker{
  font-family:Montserrat,Inter,Arial,sans-serif !important;
  font-weight:800 !important;
}
.why-copy h2,.complement-copy h2,.mission-copy h2,
.center-head h2,.partners h2,.impact-left h2,.impact-support h2{
  letter-spacing:-.035em !important;
  line-height:1.02 !important;
}
.why-copy h2{font-size:clamp(40px,3.45vw,62px) !important}
.complement-copy h2{font-size:clamp(40px,3.45vw,62px) !important}
.mission-copy h2{font-size:clamp(40px,3.35vw,60px) !important}
.center-head h2{font-size:clamp(34px,2.8vw,50px) !important}
.partners h2{font-size:clamp(30px,2.5vw,44px) !important}
.impact-left h2{font-size:clamp(30px,2.7vw,46px) !important}
.impact-support h2{font-size:clamp(30px,2.4vw,42px) !important}

/* Section cyberintelligence : hauteur et photographie équilibrées comme la référence. */
.why-grid{min-height:520px !important;align-items:stretch}
.why-photo{min-height:520px !important;overflow:hidden}
.why-photo img{width:100% !important;height:100% !important;object-fit:cover !important;object-position:center center !important}
.why-copy{padding:48px 0 34px 55px !important}
.why-copy .eyebrow{font-size:15px !important;margin-bottom:10px !important}
.why-copy p{font-size:13px !important;margin:12px 0 !important}
.why-copy strong{display:block;margin-top:12px !important;font-size:13px !important}
.four-pillars{margin-top:22px !important}

/* Mobile : même identité, mais une composition réellement dédiée au téléphone. */
@media(max-width:760px){
  .hero-grid{grid-template-columns:1fr !important;min-height:0 !important}
  .hero-copy{min-height:0 !important;padding:38px 0 28px !important;overflow:visible}
  .hero-copy h1{
    font-size:clamp(46px,12.2vw,62px) !important;
    line-height:.97 !important;
    max-width:100% !important;
    letter-spacing:-.045em !important;
  }
  .hero-copy h2{font-size:18px !important}
  .hero-copy>p{font-size:12px !important;max-width:100% !important}
  .hero-photo{
    min-height:0 !important;
    height:auto !important;
    aspect-ratio:1 / 1 !important;
  }
  .hero-photo picture{width:100%;height:100%;display:block}
  .hero-photo img{
    width:100% !important;height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
  .why-grid{min-height:0 !important}
  .why-photo{min-height:380px !important}
  .why-copy{padding:38px 0 !important}
  .why-copy h2,.complement-copy h2,.mission-copy h2{
    font-size:clamp(38px,10vw,52px) !important;
    line-height:1.02 !important;
  }
}
@media(max-width:480px){
  .hero-copy h1{font-size:clamp(42px,12vw,56px) !important}
  .hero-photo{aspect-ratio:4/5 !important}
}
