/* =========================================================
   CONTEC — POLISH SYSTEM v3
   Objectif: rendu institutionnel premium, lumineux et fluide.
   Les effets sont conserves. Les transitions de rideau / wipes
   sont supprimees au profit de reveals courts et elegants.
   ========================================================= */
:root{
  --contec-royal:#40529a;
  --contec-royal-dark:#2d3f82;
  --contec-cobalt:#5875d9;
  --contec-ice:#eef4fb;
  --contec-mist:#f7f9fc;
  --contec-line:#d8e1ee;
  --contec-text:#17224b;
  --contec-muted:#66738a;
  --contec-shadow:0 22px 60px rgba(32,55,112,.10);
  --contec-shadow-hover:0 28px 70px rgba(32,55,112,.16);
  --contec-ease:cubic-bezier(.22,1,.36,1);
}

/* 1. Elimine les transitions de type rideau sur TOUT le site. */
.section-transition,
.page-wipe{display:none!important;animation:none!important;transition:none!important}
.page-transitioning main{opacity:1!important;transform:none!important}

/* Loader plus discret, pas de sensation de coupure entre pages. */
.site-loader{background:#fff!important;color:var(--contec-text)!important}
.site-loader::before,.site-loader::after{display:none!important}
.site-loader-track{background:#e8edf6!important;height:2px!important}
.site-loader-track span{background:var(--contec-royal)!important}
.site-loader-brand span{color:var(--contec-royal)!important}

/* 2. Mouvement coherent partout: entree douce, pas de grand saut. */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .68s var(--contec-ease) var(--reveal-delay,0ms),transform .68s var(--contec-ease) var(--reveal-delay,0ms)!important}
.reveal.revealed{opacity:1;transform:translateY(0)}
.image-reveal{clip-path:none!important;opacity:0;transform:translateY(18px) scale(.988);transition:opacity .75s var(--contec-ease),transform .85s var(--contec-ease)!important}
.image-reveal.revealed{opacity:1;transform:none}

/* 3. Palette generale: bleu logo + blanc + bleu tres clair. */
body{background:#fff;color:var(--contec-text)}
body:not(.home-page) main{background:#fff}
body:not(.home-page) .surface-light{background:var(--contec-mist)}
body:not(.home-page) .surface-blue{background:var(--contec-ice)}
body:not(.home-page) .section-dark{background:linear-gradient(135deg,var(--contec-royal-dark),#354b94 58%,#4761b1);color:#fff}
body:not(.home-page) .section-dark p{color:rgba(255,255,255,.76)}
body:not(.home-page) .technical-grid{opacity:.22;background-size:84px 84px}

h1,h2,h3,h4{color:var(--contec-text)}
p{color:var(--contec-muted)}
.eyebrow{color:var(--contec-royal)}
.btn-primary{background:var(--contec-royal);border-color:var(--contec-royal);box-shadow:0 12px 30px rgba(64,82,154,.16)}
.btn-primary:hover{background:var(--contec-royal-dark);transform:translateY(-2px);box-shadow:0 18px 38px rgba(64,82,154,.22)}

/* 4. Rythme vertical plus professionnel. */
.section{padding:96px 0}
.section-heading{margin-bottom:44px}
.split-heading{gap:56px}

/* 5. Header plus net et premium. */
.site-header{box-shadow:0 1px 0 rgba(36,54,104,.08)}
.site-header.is-sticky{box-shadow:0 14px 42px rgba(27,42,83,.10);backdrop-filter:blur(16px)}
.primary-nav>ul>li>a::after{height:2px;background:var(--contec-royal)}
.submenu{border:1px solid rgba(64,82,154,.08);box-shadow:0 22px 55px rgba(24,42,91,.13)}
.mega-intro{background:linear-gradient(145deg,var(--contec-royal-dark),var(--contec-royal))}

/* 6. Pages internes: hero clair/bleu, animations conservees mais contenues. */
.inner-hero{background:linear-gradient(120deg,var(--contec-royal-dark),var(--contec-royal))!important}
.inner-hero::after{background:linear-gradient(90deg,rgba(30,45,98,.93) 0%,rgba(47,64,132,.78) 45%,rgba(47,64,132,.24) 100%)!important}
.inner-hero-scan{opacity:.22!important;animation-duration:9s!important}
.inner-hero-media img{filter:saturate(.88) contrast(1.02)!important;transform:scale(1.025)!important}

/* 7. HOME: harmonise les sections et evite le "tout blanc vide". */
body.home-page{background:#fff}
body.home-page .section{padding:92px 0}
body.home-page .credibility-strip{padding-top:0;padding-bottom:0}
body.home-page .credibility-grid{padding:34px 0}
body.home-page .premium-editorial{background:#fff}
body.home-page .editorial-layout{gap:64px;align-items:center}
body.home-page .editorial-copy{max-width:580px}
body.home-page .engineering-universe{background:linear-gradient(180deg,#f4f8fd 0%,#edf4fb 100%)!important;min-height:auto!important}
body.home-page .engineering-universe-inner{min-height:720px!important;padding:90px 0!important}
body.home-page .engineering-copy{max-width:560px}
body.home-page .engineering-visual{filter:none!important;box-shadow:0 24px 72px rgba(43,67,132,.10)}
body.home-page .engineering-ticker{opacity:.65}
body.home-page .digital-twin-lab{background:#fff!important;min-height:auto!important;padding:92px 0!important}
body.home-page .digital-twin-inner{gap:60px!important;align-items:center}
body.home-page .digital-twin-copy{max-width:540px}
body.home-page .twin-viewport{min-height:590px!important;border:1px solid rgba(64,82,154,.13);background:linear-gradient(145deg,#f7faff,#eef4fb)!important;box-shadow:var(--contec-shadow)}
body.home-page .premium-services{background:#fff}
body.home-page .method-section{background:linear-gradient(180deg,#edf4fb 0%,#f6f9fd 100%)!important}
body.home-page .method-experience{box-shadow:0 22px 60px rgba(41,61,116,.10)}
body.home-page .africa-section{background:#fff}
body.home-page .partners-section{background:linear-gradient(180deg,#f7faff,#eef4fb)}

/* Services cards: contraste meilleur, photos moins lavees. */
.service-card{border:1px solid rgba(64,82,154,.10)!important;background:#fff!important;box-shadow:0 10px 30px rgba(33,55,108,.06);border-radius:2px;overflow:hidden}
.service-card:hover{transform:translateY(-7px)!important;box-shadow:var(--contec-shadow-hover)!important;border-color:rgba(64,82,154,.25)!important}
.service-card .service-card-media img,.service-card img{filter:saturate(.92) contrast(1.02)!important}

/* Images / cartes / realisations: profondeur sobre. */
.project-card,.value-card,.principle-cards article,.admin-list,.org-chart,.story-visual,.method-detail-list li{transition:transform .4s var(--contec-ease),box-shadow .4s var(--contec-ease),border-color .4s ease}
.project-card:hover,.value-card:hover,.principle-cards article:hover{transform:translateY(-5px);box-shadow:var(--contec-shadow-hover)}
.project-image{background:var(--contec-ice)}
.project-image img{filter:saturate(.94) contrast(1.02)}

/* DG: composition plus dense et institutionnelle. */
body.home-page .dg-section{background:linear-gradient(180deg,#f4f8fd,#eef4fb)!important}
body.home-page .dg-layout{max-width:1180px;margin-inline:auto;gap:72px;align-items:center}
body.home-page .dg-portrait{box-shadow:0 24px 65px rgba(31,52,106,.14);background:#fff}
body.home-page .dg-message{max-width:640px}
body.home-page .dg-message h2{font-size:clamp(2.2rem,3.8vw,4rem)}
body.home-page .dg-message p{line-height:1.72}

/* Partners: plus marque, plus net. */
.partner-logo-card{border-radius:6px!important;box-shadow:0 10px 28px rgba(34,55,110,.07)!important}
.partner-logo-card:hover{transform:translateY(-5px)!important;box-shadow:0 20px 46px rgba(34,55,110,.13)!important}

/* 8. Transitions interactives: courtes, simples, coherentes. */
.btn,.service-card,.project-card,.sector-row,.partner-logo-card,.primary-nav a,.text-link .link-icon,.image-frame img,.project-image img{transition-duration:.38s!important;transition-timing-function:var(--contec-ease)!important}

/* 9. Evite les zones "brutes" sur pages internes. */
.story-section,.values-section,.organization-section,.services-intro,.projects-section,.contact-section{background:#fff}
.mission-vision{margin:0}
.values-grid,.services-grid,.project-grid{gap:22px}
.value-card,.principle-cards article{background:#fff;border:1px solid rgba(64,82,154,.10);box-shadow:0 10px 30px rgba(33,55,108,.05)}
.admin-section,.methodology-detail{border-top:1px solid rgba(64,82,154,.08);border-bottom:1px solid rgba(64,82,154,.08)}

/* Responsive. */
@media(max-width:980px){
  .section,body.home-page .section{padding:76px 0}
  .split-heading{gap:28px}
  body.home-page .engineering-universe-inner{min-height:auto!important;padding:76px 0!important}
  body.home-page .digital-twin-lab{padding:76px 0!important}
  body.home-page .twin-viewport{min-height:520px!important}
  body.home-page .dg-layout{gap:40px}
}
@media(max-width:700px){
  .section,body.home-page .section{padding:62px 0}
  .section-heading{margin-bottom:34px}
  body.home-page .twin-viewport{min-height:460px!important}
}

@media(prefers-reduced-motion:reduce){
  .reveal,.image-reveal{opacity:1!important;transform:none!important;transition:none!important}
}


/* =========================================================
   CONTEC — PARTENARIATS + BLEU IDENTITAIRE v4
   ========================================================= */
:root{
  --contec-logo-blue:#173f8f;
  --contec-logo-blue-2:#2455ad;
  --contec-logo-blue-soft:#eaf1fb;
}

/* Toutes les zones sombres utilisent des bleus directement issus de la charte CONTEC. */
.section-dark,
.site-footer,
.prefooter-cta,
.contact-info,
.project-detail-hero,
.project-facts,
.error-page,
.mission-grid article,
.org-root,
.mega-intro{
  background:linear-gradient(135deg,var(--contec-logo-blue) 0%,#12377f 62%,var(--contec-logo-blue-2) 100%)!important;
}
.site-footer{background:var(--contec-logo-blue)!important}
.inner-hero{background:linear-gradient(120deg,var(--contec-logo-blue),var(--contec-logo-blue-2))!important}
.inner-hero::after{background:linear-gradient(90deg,rgba(23,63,143,.94),rgba(36,85,173,.74) 56%,rgba(36,85,173,.20))!important}
.hero-overlay{background:linear-gradient(90deg,rgba(23,63,143,.92) 0%,rgba(20,55,125,.74) 45%,rgba(18,49,112,.38) 76%,rgba(18,49,112,.22) 100%)!important}
body:not(.home-page) .section-dark{background:linear-gradient(135deg,var(--contec-logo-blue),var(--contec-logo-blue-2))!important}
.whatsapp-button{box-shadow:0 14px 36px rgba(23,63,143,.18)}

/* CTA partenariat sur l'accueil. */
.partnership-home-cta{padding:76px 0!important;background:linear-gradient(135deg,var(--contec-logo-blue),var(--contec-logo-blue-2));color:#fff;overflow:hidden;position:relative}
.partnership-home-cta::before{content:"";position:absolute;right:-12%;top:-85%;width:520px;height:520px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.025)}
.partnership-home-inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:center}
.partnership-home-inner>div{max-width:780px}
.partnership-home-inner .eyebrow{color:#dbe7ff}
.partnership-home-inner h2{margin:8px 0 16px;color:#fff;font-size:clamp(2rem,4vw,4.3rem);line-height:.99;letter-spacing:-.05em}
.partnership-home-inner p{max-width:700px;margin:0;color:rgba(255,255,255,.82);font-size:1rem;line-height:1.75}

/* Page Devenir partenaire. */
.partner-intro-section{background:linear-gradient(180deg,#fff 0%,#f5f8fd 100%)}
.partner-intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:86px;align-items:center}
.partner-intro-copy h2{margin:10px 0 24px;font-size:clamp(2.4rem,4.5vw,5rem);line-height:.94;letter-spacing:-.055em}
.partner-intro-copy h2 em{color:var(--contec-logo-blue);font-style:normal}
.partner-intro-copy .lead{font-size:1.08rem;line-height:1.75;color:#35446d}
.partner-pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.partner-pill-row span{padding:10px 14px;border:1px solid rgba(23,63,143,.15);border-radius:999px;background:#fff;color:var(--contec-logo-blue);font-size:.72rem;font-weight:800}
.partner-value-stack{display:grid;gap:14px}
.partner-value-stack article{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:28px;border:1px solid rgba(23,63,143,.10);background:#fff;box-shadow:0 14px 38px rgba(23,63,143,.06);transition:transform .38s var(--contec-ease),box-shadow .38s var(--contec-ease),border-color .38s ease}
.partner-value-stack article:hover{transform:translateY(-5px);border-color:rgba(23,63,143,.22);box-shadow:0 24px 52px rgba(23,63,143,.11)}
.partner-value-stack article>span{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:var(--contec-logo-blue-soft);color:var(--contec-logo-blue);font:800 .74rem Manrope,sans-serif}
.partner-value-stack h3{margin:0 0 7px;color:#17224b;font-size:1.08rem}
.partner-value-stack p{margin:0;line-height:1.65}

.partner-form-section{background:#fff}
.partner-form-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:0;align-items:stretch;box-shadow:0 28px 80px rgba(23,63,143,.10);border:1px solid rgba(23,63,143,.09)}
.partner-form-aside{padding:58px;background:linear-gradient(155deg,var(--contec-logo-blue),#123477 70%,#204faa);color:#fff;position:relative;overflow:hidden}
.partner-form-aside::after{content:"";position:absolute;right:-130px;bottom:-130px;width:340px;height:340px;border:1px solid rgba(255,255,255,.15);border-radius:50%;box-shadow:0 0 0 60px rgba(255,255,255,.035),0 0 0 120px rgba(255,255,255,.02)}
.partner-form-aside .eyebrow{color:#dbe7ff}
.partner-form-aside h2{position:relative;z-index:1;margin:10px 0 22px;color:#fff;font-size:clamp(2rem,3.3vw,3.4rem);line-height:1.02;letter-spacing:-.045em}
.partner-form-aside>p{position:relative;z-index:1;color:rgba(255,255,255,.80);line-height:1.75}
.partner-contact-card{position:relative;z-index:1;display:grid;gap:7px;margin-top:38px;padding-top:28px;border-top:1px solid rgba(255,255,255,.20)}
.partner-contact-card strong{font:800 .88rem Manrope,sans-serif;letter-spacing:.04em}
.partner-contact-card span,.partner-contact-card a{color:rgba(255,255,255,.82);font-size:.86rem}
.partner-form-card{padding:58px;background:#fff}
.partner-form-card h2{margin:8px 0 32px;font-size:clamp(2rem,3vw,3.4rem);line-height:1;letter-spacing:-.045em}
.partner-whatsapp-form .form-field input,.partner-whatsapp-form .form-field select,.partner-whatsapp-form .form-field textarea{border-color:#dbe3ef;background:#f9fbfe}
.partner-whatsapp-form .form-field input:focus,.partner-whatsapp-form .form-field select:focus,.partner-whatsapp-form .form-field textarea:focus{border-color:var(--contec-logo-blue);box-shadow:0 0 0 3px rgba(23,63,143,.08);background:#fff}
.partner-submit{margin-top:8px}
.partner-form-note{margin:14px 0 0;font-size:.76rem;line-height:1.55;color:#7c879b}

.partner-standards{background:linear-gradient(180deg,#edf4fc,#f8fbff)}
.partner-standards .split-heading{align-items:end}
.partner-standards .section-heading{margin-bottom:0}
.partner-standards .section-heading h2{font-size:clamp(2.2rem,4vw,4.4rem);line-height:.98;letter-spacing:-.05em}
.partner-standards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(23,63,143,.16);border-left:1px solid rgba(23,63,143,.16)}
.partner-standards-grid div{min-height:140px;padding:26px;border-right:1px solid rgba(23,63,143,.16);border-bottom:1px solid rgba(23,63,143,.16);display:flex;flex-direction:column;justify-content:space-between}
.partner-standards-grid strong{color:var(--contec-logo-blue);font:800 .74rem Manrope,sans-serif}
.partner-standards-grid span{color:#17224b;font:800 1rem Manrope,sans-serif}

@media(max-width:980px){
  .partner-intro-grid,.partner-form-layout{grid-template-columns:1fr}
  .partner-intro-grid{gap:45px}
  .partner-form-aside,.partner-form-card{padding:40px}
  .partnership-home-inner{grid-template-columns:1fr;gap:28px}
}
@media(max-width:650px){
  .partner-form-aside,.partner-form-card{padding:28px 22px}
  .partner-value-stack article{grid-template-columns:48px 1fr;padding:22px 18px}
  .partner-standards-grid{grid-template-columns:1fr}
}

/* =========================================================
   CONTEC — CONTRASTE DES ZONES BLEUES v5
   Texte clair sur le bleu de marque, avec contraste WCAG
   et conservation des cartes claires internes.
   ========================================================= */
:root{
  --contec-blue-bg:#173f8f;
  --contec-blue-bg-2:#2455ad;
  --contec-on-blue:#ffffff;
  --contec-on-blue-soft:#dce7ff;
  --contec-on-blue-muted:#b9c9ea;
  --contec-on-blue-accent:#9bb7ff;
}

/* Repères / chiffres clés */
body.home-page .credibility-strip.section-dark{
  background:linear-gradient(105deg,var(--contec-blue-bg) 0%,#1c489b 50%,var(--contec-blue-bg-2) 100%)!important;
}
body.home-page .credibility-strip .credibility-grid > div{
  border-color:rgba(255,255,255,.34)!important;
}
body.home-page .credibility-strip .credibility-grid strong,
body.home-page .credibility-strip .credibility-grid strong b{
  color:var(--contec-on-blue)!important;
  text-shadow:0 1px 0 rgba(0,0,0,.06);
}
body.home-page .credibility-strip .credibility-grid span{
  color:var(--contec-on-blue-soft)!important;
  opacity:1!important;
}
body.home-page .credibility-strip .credibility-marquee,
body.home-page .credibility-strip .credibility-marquee div{
  color:rgba(255,255,255,.20)!important;
}
body.home-page .credibility-strip .credibility-marquee i{
  background:var(--contec-on-blue-accent)!important;
}

/* Méthode CONTEC : vrai bleu de marque + texte blanc */
body.home-page .premium-methodology.section-dark{
  background:linear-gradient(120deg,var(--contec-blue-bg) 0%,#1b4698 58%,var(--contec-blue-bg-2) 100%)!important;
  color:var(--contec-on-blue)!important;
}
body.home-page .premium-methodology.section-dark::after{
  border-color:rgba(255,255,255,.12)!important;
  box-shadow:inset 0 0 0 6vw rgba(7,26,68,.52),inset 0 0 0 calc(6vw + 1px) rgba(155,183,255,.16)!important;
}
body.home-page .premium-methodology.section-dark .section-heading h2,
body.home-page .premium-methodology.section-dark .split-heading h2,
body.home-page .premium-methodology.section-dark > .container > * h2{
  color:var(--contec-on-blue)!important;
}
body.home-page .premium-methodology.section-dark .section-heading p,
body.home-page .premium-methodology.section-dark .split-heading p,
body.home-page .premium-methodology.section-dark > .container > * > p{
  color:var(--contec-on-blue-soft)!important;
}
body.home-page .premium-methodology.section-dark .eyebrow,
body.home-page .premium-methodology.section-dark .eyebrow-light{
  color:var(--contec-on-blue-accent)!important;
}
body.home-page .premium-methodology .technical-grid{
  opacity:.28!important;
  background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px)!important;
}

/* La timeline reste claire pour faciliter la lecture. */
body.home-page .premium-methodology .method-timeline{
  background:rgba(255,255,255,.96)!important;
  border-color:rgba(255,255,255,.55)!important;
  box-shadow:0 24px 58px rgba(6,24,66,.20)!important;
}
body.home-page .premium-methodology .method-timeline button,
body.home-page .premium-methodology .method-timeline h3{
  color:#17224b!important;
}
body.home-page .premium-methodology .method-timeline p{
  color:#66738a!important;
}
body.home-page .premium-methodology .method-timeline li span{
  color:var(--contec-blue-bg)!important;
  border-color:rgba(23,63,143,.24)!important;
  background:#f5f8fd!important;
}
body.home-page .premium-methodology .method-timeline li.is-active span,
body.home-page .premium-methodology .method-timeline button:hover span{
  background:var(--contec-blue-bg)!important;
  color:#fff!important;
}
body.home-page .premium-methodology .method-timeline li.is-active button{
  background:#eef4ff!important;
}

/* Lisibilité du panneau photo / readout de la méthode. */
body.home-page .premium-methodology .method-readout strong{color:#fff!important}
body.home-page .premium-methodology .method-readout small{color:#a9c2ff!important}
body.home-page .premium-methodology .method-coordinate{color:rgba(255,255,255,.82)!important}

/* Les autres zones réellement bleues utilisent le même principe. */
body:not(.home-page) .section-dark > .container > .section-heading h2,
body:not(.home-page) .section-dark > .container > .split-heading h2,
body:not(.home-page) .section-dark > .container > h2{
  color:#fff!important;
}
body:not(.home-page) .section-dark > .container > .section-heading p,
body:not(.home-page) .section-dark > .container > .split-heading p,
body:not(.home-page) .section-dark > .container > p{
  color:var(--contec-on-blue-soft)!important;
}

/* Améliore légèrement la séparation visuelle sans assombrir. */
body.home-page .credibility-strip,
body.home-page .premium-methodology.section-dark{
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(10,37,89,.18);
}

/* V5.1 — bandeau de mots défilants : contraste corrigé */
body.home-page .credibility-strip .credibility-marquee{
  background:linear-gradient(90deg,#f2f6fd 0%,#eaf1fb 50%,#f2f6fd 100%)!important;
  border-top:1px solid #d8e3f3!important;
  border-bottom:1px solid #d8e3f3!important;
}
body.home-page .credibility-strip .credibility-marquee > div,
body.home-page .credibility-strip .credibility-marquee div{
  color:rgba(35,67,145,.28)!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.home-page .credibility-strip .credibility-marquee i{
  background:#7ea2ff!important;
  box-shadow:0 0 0 5px rgba(126,162,255,.10)!important;
}
@media (max-width:760px){
  body.home-page .credibility-strip .credibility-marquee > div{
    color:rgba(35,67,145,.34)!important;
  }
}
