/* ============================================================
   SIKEWA GROUPE HOLDING — Charte du site institutionnel
   Palette : vert forêt / papier manioc / latérite / bronze
   Typo : Fraunces (titres) · Archivo (texte) · IBM Plex Mono (données)
   ============================================================ */

:root{
  --vert:#23477E;
  --vert-2:#2C5796;
  --vert-clair:#3D74C7;
  --papier:#F7F5F0;
  --ivoire:#FCFBF7;
  --laterite:#C6423A;
  --laterite-pale:#F7E2E0;
  --bronze:#C99A1F;
  --encre:#20242B;
  --gris:#5B6169;
  --ligne:#E2E0D8;
  --succes:#2F7A47;
  --succes-clair:#3E9E5C;
  --ligne-vert:rgba(255,255,255,.16);
  --radius:14px;
  --maxw:1120px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

body{
  font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--papier);
  color:var(--encre);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}

img,svg{max-width:100%;display:block}
a{color:var(--vert-2)}
a:focus-visible,button:focus-visible{outline:3px solid var(--bronze);outline-offset:3px;border-radius:4px}

h1,h2,h3,.display{
  font-family:"Fraunces",Georgia,serif;
  font-weight:560;
  line-height:1.12;
  letter-spacing:-.01em;
  color:var(--vert);
}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem)}
h2{font-size:clamp(1.6rem,3vw,2.3rem)}
h3{font-size:1.22rem;line-height:1.3}

.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}

.eyebrow{
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bronze);display:block;margin-bottom:.9rem;
}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
section{padding:72px 0}
.section-head{max-width:680px;margin-bottom:44px}
.section-head p{margin-top:14px;color:var(--gris)}

/* ---------- Bandeau conformité ---------- */
.legal-strip{
  background:var(--laterite);color:#fff;
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.72rem;letter-spacing:.06em;
  text-align:center;padding:8px 16px;
}

/* ---------- Navigation ---------- */
header.site{
  background:var(--papier);
  border-bottom:1px solid var(--ligne);
  position:sticky;top:0;z-index:50;
}
.nav{
  max-width:var(--maxw);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.logo{
  font-family:"Fraunces",serif;font-weight:640;font-size:1.3rem;
  color:var(--vert);text-decoration:none;letter-spacing:.01em;
  display:flex;align-items:baseline;gap:8px;
}
.logo small{
  font-family:"IBM Plex Mono",monospace;font-size:.62rem;
  letter-spacing:.12em;color:var(--bronze);text-transform:uppercase;
}
.nav-links{display:flex;gap:6px;list-style:none;flex-wrap:wrap}
.nav-links a{
  text-decoration:none;color:var(--encre);font-size:.92rem;
  padding:8px 12px;border-radius:8px;
}
.nav-links a:hover{background:#EAECF2}
.nav-links a[aria-current="page"]{background:var(--vert);color:#fff}
.nav-toggle{
  display:none;background:none;border:1px solid var(--ligne);
  border-radius:8px;padding:8px 12px;font-size:1rem;cursor:pointer;color:var(--vert);
}
@media (max-width:920px){
  .nav-toggle{display:block}
  .nav-links{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--papier);border-bottom:1px solid var(--ligne);
    flex-direction:column;padding:12px 24px 20px;gap:2px;
  }
  .nav-links.open{display:flex}
}

/* ---------- Boutons ---------- */
.btn{
  display:inline-block;text-decoration:none;font-weight:600;font-size:.95rem;
  padding:13px 26px;border-radius:999px;border:1.5px solid transparent;
  transition:transform .15s ease,box-shadow .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-vert{background:var(--vert);color:#fff}
.btn-vert:hover{box-shadow:0 6px 18px rgba(23,56,41,.25)}
.btn-ghost{border-color:var(--vert);color:var(--vert);background:transparent}
.btn-blanc{background:#fff;color:var(--vert)}
.btn-bronze{background:var(--bronze);color:#fff}

/* ---------- Badges statut ---------- */
.badge{
  display:inline-block;font-family:"IBM Plex Mono",monospace;
  font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 12px;border-radius:999px;white-space:nowrap;
}
.badge-encours{background:var(--laterite-pale);color:var(--laterite);border:1px solid var(--laterite)}
.badge-2027{background:#E4F2E8;color:var(--succes);border:1px solid var(--succes-clair)}
.badge-2028{background:#F7EFD9;color:var(--bronze);border:1px solid var(--bronze)}
.badge-2029{background:#EFEFEF;color:var(--gris);border:1px solid #BDBDB5}

/* ---------- Hero ---------- */
.hero{padding:84px 0 72px}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center}
@media (max-width:880px){.hero-grid{grid-template-columns:1fr}}
.hero h1 em{font-style:italic;color:var(--laterite)}
.hero .sub{font-size:1.15rem;color:var(--gris);margin:20px 0 26px;max-width:560px}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* Téléphone USSD (signature) */
.phone{margin:0 auto;width:min(290px,100%)}
.phone figcaption{
  font-family:"IBM Plex Mono",monospace;font-size:.7rem;color:var(--gris);
  text-align:center;margin-top:12px;letter-spacing:.06em;
}

/* ---------- Bandeau statistiques (fond vert) ---------- */
.stats-band{background:var(--vert);color:#fff;padding:54px 0}
.stats-band .eyebrow{color:#E8C96B}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;margin-top:8px}
@media (max-width:980px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.stats-grid{grid-template-columns:1fr 1fr}}
.stat .n{
  font-family:"Fraunces",serif;font-size:clamp(1.7rem,3vw,2.4rem);
  font-weight:600;color:#fff;line-height:1.05;
}
.stat .n span{color:#E3B23C}
.stat .l{font-size:.85rem;color:rgba(255,255,255,.75);margin-top:6px;line-height:1.45}

/* ---------- Cartes ---------- */
.cards-2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media (max-width:780px){.cards-2{grid-template-columns:1fr}}
.card{
  background:var(--ivoire);border:1px solid var(--ligne);
  border-radius:var(--radius);padding:32px 30px;
}
.card .badge{margin-bottom:16px}
.card h3{margin-bottom:10px}
.card p{color:var(--gris);font-size:.97rem}
.card ul{margin:14px 0 0 18px;color:var(--gris);font-size:.95rem}
.card ul li{margin-bottom:6px}

/* Grille filiales */
.filiales{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.filiales{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.filiales{grid-template-columns:1fr}}
.filiale{
  background:var(--ivoire);border:1px solid var(--ligne);border-radius:var(--radius);
  padding:22px;display:flex;flex-direction:column;gap:10px;
}
.filiale h3{font-size:1.02rem}
.filiale p{font-size:.88rem;color:var(--gris)}
.filiale .badge{align-self:flex-start}

/* ---------- Section formule 1€ = 15€ ---------- */
.formule{background:var(--ivoire);border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);text-align:center}
.formule .eq{
  font-family:"Fraunces",serif;font-weight:600;
  font-size:clamp(2.4rem,7vw,4.6rem);color:var(--vert);line-height:1.1;
}
.formule .eq b{color:var(--laterite);font-weight:600}
.formule .eq .egal{color:var(--bronze);padding:0 .2em}
.formule p{max-width:620px;margin:18px auto 0;color:var(--gris)}

/* ---------- Timeline phases ---------- */
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:840px){.timeline{grid-template-columns:1fr}}
.phase{background:var(--ivoire);border:1px solid var(--ligne);border-radius:var(--radius);padding:28px;border-top:5px solid var(--bronze)}
.phase:nth-child(2){border-top-color:var(--succes)}
.phase:first-child{border-top-color:var(--vert)}
.phase:last-child{border-top-color:var(--laterite)}
.phase .annee{font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.12em;color:var(--bronze)}
.phase h3{margin:8px 0 12px}
.phase ul{margin-left:18px;color:var(--gris);font-size:.93rem}
.phase ul li{margin-bottom:7px}

/* ---------- Tableaux / répartition ---------- */
.repartition{display:flex;flex-direction:column;gap:14px}
.ligne-budget{display:grid;grid-template-columns:220px 1fr 90px;gap:16px;align-items:center}
@media (max-width:640px){.ligne-budget{grid-template-columns:1fr 80px}.ligne-budget .barre{grid-column:1/-1}}
.ligne-budget .nom{font-weight:600;font-size:.95rem}
.ligne-budget .montant{font-family:"IBM Plex Mono",monospace;font-size:.9rem;text-align:right;color:var(--vert-2)}
.barre{background:#E9E7DF;border-radius:999px;height:14px;overflow:hidden}
.barre i{display:block;height:100%;background:linear-gradient(90deg,var(--vert-2),var(--bronze));border-radius:999px}

/* ---------- ODD chips ---------- */
.odd-list{display:flex;flex-wrap:wrap;gap:10px}
.odd{
  background:var(--ivoire);border:1px solid var(--ligne);border-radius:999px;
  padding:8px 16px;font-size:.88rem;display:flex;gap:8px;align-items:center;
}
.odd b{font-family:"IBM Plex Mono",monospace;color:var(--laterite);font-weight:600}

/* ---------- Bloc CTA bailleurs ---------- */
.cta-band{background:var(--vert);color:#fff;border-radius:var(--radius)}
.cta-inner{padding:54px 48px;display:grid;grid-template-columns:1.4fr .6fr;gap:32px;align-items:center}
@media (max-width:780px){.cta-inner{grid-template-columns:1fr;padding:40px 28px}}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.8);margin-top:12px}
.cta-band .actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
@media (max-width:780px){.cta-band .actions{flex-direction:row;flex-wrap:wrap}}

/* ---------- Encadrés ---------- */
.note-legale{
  background:var(--laterite-pale);border:1px solid var(--laterite);
  border-radius:var(--radius);padding:20px 24px;font-size:.9rem;color:#8F2F28;
}
.note-legale b{color:var(--laterite)}
.encadre{
  background:var(--ivoire);border-left:5px solid var(--bronze);
  border-radius:0 var(--radius) var(--radius) 0;padding:24px 28px;margin:28px 0;
}

/* ---------- Prose des pages internes ---------- */
.page-head{padding:64px 0 28px;border-bottom:1px solid var(--ligne)}
.page-head p{max-width:660px;color:var(--gris);margin-top:16px;font-size:1.08rem}
.prose{max-width:760px}
.prose h2{margin:44px 0 14px}
.prose h3{margin:30px 0 10px}
.prose p{margin-bottom:16px}
.prose ul{margin:0 0 16px 20px}
.prose ul li{margin-bottom:8px}

/* ---------- Formulaire ---------- */
.form{display:grid;gap:18px;max-width:640px}
.form label{font-weight:600;font-size:.92rem;display:block;margin-bottom:6px}
.form input,.form select,.form textarea{
  width:100%;padding:13px 14px;border:1px solid var(--ligne);border-radius:10px;
  background:#fff;font:inherit;font-size:.95rem;color:var(--encre);
}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid rgba(156,122,60,.35);border-color:var(--bronze)}

/* ---------- Footer ---------- */
footer.site{background:var(--encre);color:#CFCCC2;margin-top:72px}
.footer-grid{
  max-width:var(--maxw);margin:0 auto;padding:56px 24px 32px;
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;
}
@media (max-width:780px){.footer-grid{grid-template-columns:1fr}}
footer .logo{color:#fff}
footer h4{font-family:"IBM Plex Mono",monospace;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#E3B23C;margin-bottom:14px}
footer ul{list-style:none}
footer ul li{margin-bottom:9px}
footer a{color:#CFCCC2;text-decoration:none;font-size:.92rem}
footer a:hover{color:#fff;text-decoration:underline}
.footer-disclaimer{
  border-top:1px solid rgba(255,255,255,.14);
  max-width:var(--maxw);margin:0 auto;padding:22px 24px 36px;
  font-size:.78rem;color:#9A978D;line-height:1.7;
}
.footer-disclaimer b{color:#E3B23C}

/* ---------- Apparition douce ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* ============================================================
   V2 — Logos, sélecteur de langue, bouton remonter, vignettes
   ============================================================ */

/* Logo dans l'en-tête */
.logo{align-items:center}
.logo-img{
  width:46px;height:46px;border-radius:10px;object-fit:cover;
  background:#fff;border:1px solid var(--ligne);padding:2px;flex:none;
}
@media (max-width:520px){.logo-img{width:38px;height:38px}}

/* Sélecteur de langue */
.lang-switch a{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.78rem;
  letter-spacing:.08em;border:1.5px solid var(--vert);border-radius:999px;
  padding:6px 14px !important;color:var(--vert);
}
.lang-switch a:hover{background:var(--vert);color:#fff}

/* Bouton remonter en haut */
#topBtn{
  position:fixed;right:18px;bottom:18px;z-index:80;
  width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;
  background:var(--vert);color:#fff;font-size:1.25rem;line-height:1;
  box-shadow:0 6px 18px rgba(23,56,41,.35);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .25s ease,transform .25s ease,visibility .25s;
}
#topBtn.visible{opacity:1;visibility:visible;transform:none}
#topBtn:hover{background:var(--vert-2)}
@media (max-width:520px){#topBtn{width:44px;height:44px;right:14px;bottom:14px}}

/* Logo de filiale dans une carte */
.card-logo{
  width:64px;height:64px;border-radius:50%;object-fit:cover;
  border:1px solid var(--ligne);background:#fff;float:right;margin:0 0 10px 14px;
}

/* Vignettes illustrées — populations rurales */
.vignettes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:840px){.vignettes{grid-template-columns:1fr}}
.vignette{
  background:var(--ivoire);border:1px solid var(--ligne);
  border-radius:var(--radius);overflow:hidden;
}
.vignette svg{width:100%;height:auto;display:block}
.vignette figcaption{padding:14px 18px;font-size:.88rem;color:var(--gris)}

/* Sous-titre de pilier */
.soustitre{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.72rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--bronze);
  margin:-4px 0 10px;
}

/* Affinages responsives tablette / mobile */
@media (max-width:920px){
  section{padding:52px 0}
  .hero{padding:56px 0 48px}
  .cards-2{gap:18px}
}
@media (max-width:520px){
  body{font-size:16px}
  .wrap{padding:0 18px}
  .hero-cta .btn{width:100%;text-align:center}
  .stats-grid{gap:20px}
  .cta-band .actions{width:100%}
  .cta-band .actions .btn{width:100%;text-align:center}
  .ligne-budget{grid-template-columns:1fr 84px}
  .ligne-budget .barre{grid-column:1/-1}
}


/* V4 — Photo réelle dans les vignettes */
.vignette.photo{padding:0}
.vignette.photo img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}

/* ============================================================
   V5 — Bandeaux photo et cartouches illustrés
   ============================================================ */

/* Bandeau photo pleine largeur avec texte superposé */
.bandeau-photo{
  position:relative;border-radius:var(--radius);overflow:hidden;
  min-height:280px;display:flex;align-items:center;
}
.bandeau-photo img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
}
.bandeau-photo .voile{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(35,71,126,.94) 0%,rgba(35,71,126,.86) 45%,rgba(35,71,126,.30) 100%);
}
.bandeau-photo .contenu{position:relative;z-index:2;padding:44px 40px;max-width:620px;color:#fff}
.bandeau-photo h2,.bandeau-photo h3{color:#fff}
.bandeau-photo p{color:rgba(255,255,255,.86);margin-top:12px}
.bandeau-photo .eyebrow{color:#E8C96B}
@media (max-width:640px){
  .bandeau-photo .contenu{padding:32px 24px}
  .bandeau-photo .voile{background:linear-gradient(180deg,rgba(35,71,126,.92),rgba(35,71,126,.86))}
}

/* Illustration d'accompagnement à côté d'un texte */
.duo-illustre{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
@media (max-width:840px){.duo-illustre{grid-template-columns:1fr;gap:26px}}
.duo-illustre figure{margin:0}
.duo-illustre img{
  width:100%;height:auto;border-radius:var(--radius);
  border:1px solid var(--ligne);background:#fff;
}
.duo-illustre figcaption{
  font-size:.84rem;color:var(--gris);margin-top:10px;font-style:italic;
}

/* Illustration compacte en tête de section */
.illus-section{
  width:100%;max-width:420px;height:auto;border-radius:var(--radius);
  border:1px solid var(--ligne);background:#fff;margin:0 auto 32px;display:block;
}

/* ============================================================
   V8 — Hero avec fond photo et voile blanc léger
   ============================================================ */

.hero--photo{position:relative;overflow:hidden;isolation:isolate}

/* Couche 1 : les deux images de fond, pleinement visibles */
.hero-bg{position:absolute;inset:0;z-index:0;display:grid;grid-template-columns:1.05fr .95fr}
.hero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.hero-bg .bg-carte{object-position:center 45%}
.hero-bg .bg-productrice{object-position:center 25%}

/* Couche 2 : voile blanc léger — assez dense derrière le texte, quasi nul à droite */
.hero-film{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,
    rgba(255,255,255,.90) 0%,
    rgba(255,255,255,.84) 32%,
    rgba(255,255,255,.55) 55%,
    rgba(255,255,255,.24) 78%,
    rgba(255,255,255,.16) 100%);
}
/* Léger halo blanc supplémentaire sous la colonne de texte, pour la lisibilité */
.hero-film::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(120% 90% at 8% 50%, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 62%);
}

/* Couche 3 : le contenu */
.hero--photo .wrap{position:relative;z-index:2}

/* Texte en bleu foncé sur voile clair */
.hero--photo h1{color:var(--vert)}
.hero--photo h1 em{color:var(--laterite);font-style:italic}
.hero--photo .eyebrow{color:var(--bronze)}
.hero--photo .sub{color:var(--encre)}
.hero--photo .sub strong{color:var(--vert)}
.hero--photo .phone figcaption{color:var(--vert-2);font-weight:600}

/* Téléphone USSD posé sur un panneau blanc pour se détacher de la photo */
.hero--photo .phone{
  background:none;border:none;padding:0;box-shadow:none;
  width:min(272px,100%);
}
.hero--photo .phone svg{
  width:100%;height:auto;display:block;
  filter:drop-shadow(0 16px 30px rgba(14,28,51,.38));
}
/* Halo blanc doux derrière le téléphone, pour détacher la légende de la photo */
.hero--photo .phone figcaption{
  background:rgba(255,255,255,.72);
  border-radius:10px;padding:8px 12px;display:inline-block;
}

/* Mobile / tablette : photo seule, voile vertical clair */
@media (max-width:880px){
  .hero-bg{grid-template-columns:1fr}
  .hero-bg .bg-carte{display:none}
  .hero-bg .bg-productrice{object-position:center 20%}
  .hero-film{
    background:linear-gradient(180deg,
      rgba(255,255,255,.93) 0%,
      rgba(255,255,255,.88) 55%,
      rgba(255,255,255,.72) 100%);
  }
  .hero-film::after{background:none}
}

/* ============================================================
   V9 — Page À propos : sections illustrées en alternance
   ============================================================ */

.bloc-illustre{
  display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;
  margin-bottom:64px;
}
.bloc-illustre:last-child{margin-bottom:0}
.bloc-illustre .texte h2{margin:0 0 14px}
.bloc-illustre .texte p{margin-bottom:14px}
.bloc-illustre .texte ul{margin:0 0 14px 20px}
.bloc-illustre .texte ul li{margin-bottom:9px}
.bloc-illustre figure{margin:0}
.bloc-illustre img{
  width:100%;height:auto;display:block;border-radius:var(--radius);
  border:1px solid var(--ligne);box-shadow:0 10px 28px rgba(20,40,74,.10);
}
.bloc-illustre figcaption{
  font-size:.84rem;color:var(--gris);font-style:italic;margin-top:12px;
}
/* Alternance : image à gauche */
.bloc-illustre.inverse figure{order:-1}
@media (max-width:840px){
  .bloc-illustre{grid-template-columns:1fr;gap:24px;margin-bottom:48px}
  .bloc-illustre.inverse figure{order:0}
}

/* Bandeau large pour une section pleine largeur */
.figure-large{margin:0 0 40px}
.figure-large img{
  width:100%;height:auto;display:block;border-radius:var(--radius);
  border:1px solid var(--ligne);
}
.figure-large figcaption{
  font-size:.86rem;color:var(--gris);font-style:italic;margin-top:12px;text-align:center;
}
