/* ═══════════════════════════════════════════════════════════════
   Plateforme Investissement Touristique — DIDDS / Côte d'Ivoire
   Design : Institutionnel, élégant, diplomatique
   Palette : Vert Émeraude CI + Or institutionnel + Bleu marine
═══════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:ital,wght@0,600;0,700;1,400&display=swap');

:root {
  --orange-ci:   #f77f00;
  --blanc-ci:    #ffffff;
  --vert-ci:     #009a44;
  --emeraude:    #057a45;
  --emeraude-l:  #10a868;
  --emeraude-ll: #d1fae5;
  --or:          #b8860b;
  --or-l:        #d4a017;
  --or-ll:       #fef9e7;
  --bleu-nuit:   #1a2744;
  --bleu-marine: #1e3a5f;
  --bleu-acier:  #2563eb;
  --fond:        #fdf9f6;
  --fond2:       #f5ede4;
  --surface:     #ffffff;
  --texte:       #0f172a;
  --texte2:      #334155;
  --gris:        #64748b;
  --gris2:       #94a3b8;
  --border:      rgba(247,127,0,.15);
  --border2:     rgba(247,127,0,.28);
  --shadow-sm:   0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow:      0 4px 16px rgba(0,0,0,.1);
  --shadow-lg:   0 12px 40px rgba(0,0,0,.14);
  --shadow-xl:   0 24px 60px rgba(0,0,0,.18);
  --nav-h:       96px;
  --radius:      12px;
  --radius-sm:   8px;
  --radius-lg:   20px;
  --max-w:       1280px;
  --font:        'Inter', 'Segoe UI', sans-serif;
  --font-serif:  'Playfair Display', Georgia, serif;
}

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: var(--font); background: var(--fond); color: var(--texte); line-height: 1.6; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; }

/* ── NAVBAR ──────────────────────────────────────────────── */
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--nav-h);
  background: #fff;
  border-bottom: 2px solid var(--orange-ci);
  box-shadow: 0 2px 16px rgba(247,127,0,.1);
  display: flex; flex-direction: column;
  overflow: visible !important;
}
.navbar-topbar {
  background: linear-gradient(90deg, #f77f00, #e06d00); height: 34px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 2rem;
}
.navbar-topbar-left {
  flex: 1; overflow: hidden;
  font-size: .68rem; font-weight: 700; color: #fff;
  letter-spacing: .05em; text-transform: uppercase;
}
.navbar-topbar-left span { color: #fff; font-weight: 900; letter-spacing:.02em; }
.navbar-lang-pill {
  display: flex; gap: 2px; background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2); border-radius: 100px; padding: 2px 3px;
}
.navbar-lang-btn {
  font-size: .68rem; font-weight: 700; padding: 2px 9px;
  border-radius: 100px; color: rgba(255,255,255,.55);
  cursor: pointer; text-decoration: none; transition: all .15s;
}
.navbar-lang-btn.active, .navbar-lang-btn:hover { background: rgba(255,255,255,.25); color: #fff; font-weight:900; }
.navbar-main {
  height: 62px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 2rem; border-bottom: 1px solid #f3f4f6;
  overflow: visible !important;
}

.navbar-sub      { display: none; }
.navbar-sub-link { display: none; }
.navbar-sub-tag  { display: none; }

.nav-inner {
  max-width: var(--max-w); margin: 0 auto;
  height: 100%; display: flex; align-items: center;
  justify-content: space-between; padding: 0 2rem;
}
.nav-brand {
  display: flex; align-items: center; gap: .85rem;
  text-decoration: none; flex-shrink: 0;
}
.nav-logo {
  width: 44px; height: 44px; border-radius: 10px;
  background: linear-gradient(135deg, var(--orange-ci) 0%, #fff 50%, var(--vert-ci) 100%);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(247,127,0,.3);
  border: 1.5px solid rgba(247,127,0,.2);
}
.nav-brand-text .brand-title {
  font-size: .82rem; font-weight: 800; color: #0a1628;
  letter-spacing: -.01em; line-height: 1.25;
}
.nav-brand-text .brand-sub {
  font-size: .68rem; font-weight: 700; color: #374151;
  letter-spacing: .04em; text-transform: uppercase; margin-top: 3px;
}
.nav-links {
  display: flex; align-items: center; gap: .05rem; flex: 1;
  justify-content: center; margin: 0 1.5rem;
}
.nav-link {
  padding: .45rem .55rem; border-radius: var(--radius-sm);
  font-size: .82rem; font-weight: 500; color: var(--texte2);
  transition: all .18s; text-decoration: none; white-space: nowrap;
  position: relative;
}
.nav-link:hover { background: var(--fond2); color: var(--orange-ci); }
.nav-link.active { color: var(--orange-ci); font-weight: 700; }
.nav-link.active::after {
  content: ''; position: absolute; bottom: -1px; left: 10px; right: 10px;
  height: 2px; background: var(--orange-ci); border-radius: 2px;
}
.nav-actions {
  display: flex; align-items: center; gap: .35rem; flex-shrink: 0;
  overflow: visible; position: relative;
}
.lang-switcher {
  display: flex; gap: .2rem; align-items: center;
  border: 1px solid var(--border); border-radius: 8px;
  padding: .2rem .3rem; background: var(--fond2);
}
.lang-btn {
  padding: .22rem .52rem; border-radius: 6px; font-size: .75rem; font-weight: 600;
  color: var(--gris); cursor: pointer; transition: all .15s; text-decoration: none;
}
.lang-btn:hover { color: var(--orange-ci); }
.lang-btn.active { background: var(--orange-ci); color: #111827; font-weight:800; }

/* ── MEGA MENU ───────────────────────────────────────────── */
.nav-item { position: relative; }

.mega-panel {
  position: fixed;
  top: var(--nav-h, 96px);
  left: 0; right: 0;
  background: #fff;
  border-top: 2px solid var(--orange-ci, #f77f00);
  box-shadow: 0 12px 48px rgba(0,0,0,.15);
  z-index: 999;
  padding: 2rem 0;
  margin-top: -6px;
  padding-top: calc(2rem + 6px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .3s;
  pointer-events: none;
}

.mega-panel.dropdown-sm {
  position: absolute;
  top: calc(100% + 8px);
  left: auto; right: 0;
  width: 290px;
  padding: 1rem 0;
  margin-top: 0;
  padding-top: 1rem;
  z-index: 1100;
}

.nav-item::after {
  content: '';
  position: absolute;
  top: 100%; left: -20px; right: -20px;
  height: 12px;
  background: transparent;
  display: none;
}
.nav-item:hover::after { display: block; }

.nav-item:hover .mega-panel,
.mega-panel:hover {
  opacity: 1; visibility: visible;
  transform: translateY(0); pointer-events: auto;
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear 0s;
}

.mega-inner { max-width: 1280px; margin: 0 auto; padding: 0 2.5rem; display: grid; gap: 1.5rem; }
.mega-inner.cols-3 { grid-template-columns: repeat(3,1fr); }

.mega-col-head {
  font-size: .62rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: #94a3b8; margin-bottom: .75rem;
  padding-bottom: .5rem; border-bottom: 1px solid #f1f5f9;
}

.mega-link {
  display: flex; align-items: flex-start; gap: .85rem;
  padding: .75rem .85rem; border-radius: 10px;
  text-decoration: none; color: #0d1117;
  transition: background .15s; margin-bottom: .25rem;
}
.mega-link:hover { background: #f8fafc; }
.mega-link-ico { width: 38px; height: 38px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; background: #f1f5f9; }
.mega-link-body { flex: 1; }
.mega-link-title { font-size: .88rem; font-weight: 700; color: #0d1117; margin-bottom: .18rem; line-height: 1.3; }
.mega-link:hover .mega-link-title { color: var(--orange-ci, #f77f00); }
.mega-link-desc { font-size: .73rem; color: #64748b; line-height: 1.5; }

.mega-dd-head { padding: .5rem 1rem .25rem; font-size: .62rem; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: .1em; }
.mega-dd-sep { height: 1px; background: #f1f5f9; margin: 4px 12px; }

.nav-link-has-mega::after { content: '▾'; font-size: .55rem; margin-left: .3rem; opacity: .55; display: inline-block; transition: transform .2s; }
.nav-item:hover .nav-link-has-mega::after { transform: rotate(-180deg); opacity: 1; }
.nav-item button.nav-link-has-mega::after { content: none; }

.mega-featured { background: linear-gradient(135deg, #021a0e, #061a2e); border-radius: 14px; padding: 1.5rem; color: #fff; }
.mega-featured-tag { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: #D4AF37; margin-bottom: .6rem; }
.mega-featured-title { font-family: var(--font-serif, serif); font-size: 1.1rem; font-weight: 700; color: #fff; margin-bottom: .5rem; line-height: 1.3; }
.mega-featured-desc { font-size: .78rem; color: rgba(255,255,255,.65); line-height: 1.6; }
.mega-featured-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: 1rem; padding: .5rem 1rem;
  background: var(--orange-ci, #f77f00); color: #111827;
  border-radius: 7px; font-size: .8rem; font-weight: 700;
  text-decoration: none; transition: filter .2s;
}
.mega-featured-btn:hover { filter: brightness(1.1); }

/* ── BOUTONS ─────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .6rem 1.25rem; border-radius: var(--radius-sm);
  font-size: .88rem; font-weight: 600; font-family: var(--font);
  border: none; cursor: pointer; transition: all .18s; text-decoration: none;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); filter: brightness(1.06); }
.btn-primary   { background: var(--orange-ci); color: #111827; font-weight:800; box-shadow: 0 4px 14px rgba(247,127,0,.35); }
.btn-secondary { background: var(--bleu-nuit); color: #fff; box-shadow: 0 4px 14px rgba(26,39,68,.25); }
.btn-or        { background: linear-gradient(135deg, var(--or), var(--or-l)); color: #fff; box-shadow: 0 4px 14px rgba(184,134,11,.3); }
.btn-outline   { background: transparent; color: var(--orange-ci); border: 2px solid var(--orange-ci); }
.btn-outline:hover { background: var(--orange-ci); color: #111827; font-weight:800; filter: none; }
.btn-white     { background: #fff; color: var(--orange-ci); font-weight:800; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.btn-ghost     { background: rgba(255,255,255,.15); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.btn-ghost:hover { background: rgba(255,255,255,.25); filter: none; }
.btn-sm { padding: .42rem .9rem; font-size: .82rem; }
.btn-lg { padding: .82rem 1.75rem; font-size: .95rem; }
.btn-xl { padding: 1rem 2.2rem; font-size: 1rem; font-weight: 700; }

/* ── HERO ────────────────────────────────────────────────── */
.hero {
  min-height: 100vh; position: relative; display: flex; align-items: center;
  background: linear-gradient(135deg, var(--bleu-nuit) 0%, var(--bleu-marine) 60%, #0d3020 100%);
  overflow: hidden;
}
.hero::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(247,127,0,.2) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 30%, rgba(247,127,0,.08) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 90%, rgba(0,154,68,.15) 0%, transparent 50%),
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'%3E%3Cpath d='M0 30 L60 30 M30 0 L30 60'/%3E%3C/g%3E%3C/svg%3E");
}
.hero-inner {
  max-width: var(--max-w); margin: 0 auto; padding: calc(var(--nav-h) + 4rem) 2rem 4rem;
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  border-radius: 100px; padding: .4rem .85rem;
  font-size: .78rem; font-weight: 600; color: rgba(255,255,255,.85);
  margin-bottom: 1.4rem;
}
.hero-badge span { width: 8px; height: 8px; border-radius: 50%; background: var(--vert-ci); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.5} }

.hero-title {
  font-family: var(--font-serif); font-size: 3.2rem; font-weight: 700; line-height: 1.15;
  color: #fff; margin-bottom: 1.2rem;
}
.hero-title em { font-style: italic; color: var(--or-l); }
.hero-desc { font-size: 1.05rem; color: rgba(255,255,255,.75); line-height: 1.7; margin-bottom: 2rem; }
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-stats {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 2rem; margin-top: 3rem; padding-top: 2.5rem;
  border-top: 1px solid rgba(255,255,255,.15);
}
.hero-stat-val  { font-family: var(--font-serif); font-size: 2rem; font-weight: 700; color: var(--orange-ci); white-space: nowrap; }
.hero-stat-lbl  { font-size: .78rem; color: rgba(255,255,255,.6); margin-top: .2rem; }
.hero-visual { display: flex; flex-direction: column; gap: 1rem; }
.hero-card {
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--radius-lg); backdrop-filter: blur(10px); padding: 1.4rem;
}
.hero-card-title { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: .5rem; }
.hero-card-stat  { font-family: var(--font-serif); font-size: 2.2rem; font-weight: 700; color: var(--orange-ci); }
.hero-card-sub   { font-size: .78rem; color: rgba(255,255,255,.6); margin-top: .2rem; }
.hero-flags { display: flex; gap: .5rem; margin-top: 1rem; }
.hero-flag  { padding: .3rem .7rem; border-radius: 6px; background: rgba(255,255,255,.1); font-size: .78rem; color: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.15); }

/* ── SECTIONS ────────────────────────────────────────────── */
.section { padding: 5rem 0; }
.section-alt  { background: var(--fond2); }
.section-dark { background: var(--bleu-nuit); color: #fff; }
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 2rem; }
.section-header { text-align: center; margin-bottom: 3.5rem; }
.section-badge {
  display: inline-flex; align-items: center; gap: .45rem;
  background: rgba(247,127,0,.08); color: var(--orange-ci);
  border-radius: 100px; padding: .35rem .85rem;
  font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  margin-bottom: 1rem;
}
.section-title  { font-family: var(--font-serif); font-size: 2.4rem; color: var(--texte); margin-bottom: .75rem; }
.section-title.light { color: #fff; }
.section-sub    { font-size: 1rem; color: var(--gris); max-width: 560px; margin: 0 auto; }
.section-sub.light { color: rgba(255,255,255,.7); }

/* ── FILTRES PROJETS ─────────────────────────────────────── */
.filtres-bar {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 1.4rem 1.8rem;
  display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-end;
  box-shadow: var(--shadow-sm); margin-bottom: 2.5rem;
}
.filtre-group { display: flex; flex-direction: column; gap: .38rem; flex: 1; min-width: 160px; }
.filtre-group label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--gris); }
.filtre-group select, .filtre-group input {
  padding: .6rem .9rem; border: 1px solid var(--border2);
  border-radius: var(--radius-sm); font-size: .88rem;
  background: var(--fond); color: var(--texte); outline: none;
  font-family: var(--font); transition: border .15s, box-shadow .15s;
}
.filtre-group select:focus, .filtre-group input:focus {
  border-color: var(--orange-ci); box-shadow: 0 0 0 3px rgba(247,127,0,.1);
}

/* ── CARTES PROJETS ──────────────────────────────────────── */
.projets-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.8rem; }
.projet-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-sm); transition: all .28s;
  display: flex; flex-direction: column;
}
.projet-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: rgba(247,127,0,.3); }
.projet-img {
  height: 200px; background: linear-gradient(135deg, var(--bleu-marine), #c94a00);
  position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center;
  font-size: 4rem;
}
.projet-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .35s ease;
}

.projet-img:hover img {
    transform: scale(1.05);
}
.projet-img .badge-avant {
  position: absolute; top: 1rem; left: 1rem;
  background: var(--or); color: #fff;
  padding: .25rem .65rem; border-radius: 6px;
  font-size: .7rem; font-weight: 800; letter-spacing: .05em;
}
.projet-cat {
  position: absolute; top: 1rem; right: 1rem;
  background: rgba(0,0,0,.6); color: #fff;
  padding: .28rem .7rem; border-radius: 100px;
  font-size: .72rem; font-weight: 600; backdrop-filter: blur(6px);
}
.projet-body { padding: 1.4rem 1.5rem; flex: 1; display: flex; flex-direction: column; }
.projet-phase-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .22rem .65rem; border-radius: 100px;
  font-size: .7rem; font-weight: 700; margin-bottom: .75rem;
}
.phase-idee          { background: #fef9c3; color: #854d0e; }
.phase-etude         { background: #dbeafe; color: #1e40af; }
.phase-faisabilite   { background: #fce7f3; color: #9d174d; }
.phase-developpement { background: #dcfce7; color: #14532d; }
.phase-operationnel  { background: rgba(247,127,0,.1); color: var(--orange-ci); }
.projet-nom    { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 600; color: var(--texte); margin-bottom: .5rem; line-height: 1.3; }
.projet-lieu   { font-size: .8rem; color: var(--gris); display: flex; align-items: center; gap: .3rem; margin-bottom: .85rem; }
.projet-resume { font-size: .85rem; color: var(--texte2); line-height: 1.6; margin-bottom: 1.1rem; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.projet-financials {
  display: grid; grid-template-columns: 1fr 1fr; gap: .75rem;
  padding: 1rem; background: var(--fond2); border-radius: var(--radius-sm); margin-bottom: 1.1rem;
}
.fin-item label { font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; color: var(--gris); display: block; margin-bottom: .18rem; }
.fin-item .val  { font-size: .95rem; font-weight: 700; color: var(--texte); }
.fin-item .val.green { color: var(--vert-ci); }
.fin-item .val.or    { color: var(--or); }
.projet-actions { display: flex; gap: .6rem; }

/* ── FICHE PROJET ────────────────────────────────────────── */
.projet-hero {
  background: linear-gradient(135deg, var(--bleu-nuit), var(--bleu-marine));
  padding: calc(var(--nav-h) + 3rem) 0 3rem; color: #fff;
}
.projet-breadcrumb { font-size: .82rem; color: rgba(255,255,255,.6); margin-bottom: 1.2rem; display: flex; gap: .5rem; align-items: center; }
.projet-breadcrumb a { color: rgba(255,255,255,.7); }
.projet-titre { font-family: var(--font-serif); font-size: 2.5rem; font-weight: 700; line-height: 1.2; margin-bottom: 1rem; }
.projet-meta  { display: flex; flex-wrap: wrap; gap: .85rem; margin-bottom: 1.8rem; }
.projet-meta-item { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: rgba(255,255,255,.8); }
.projet-ctas  { display: flex; gap: 1rem; flex-wrap: wrap; }
.fiche-layout { display: grid; grid-template-columns: 1fr 380px; gap: 2.5rem; align-items: start; }
.fiche-main .section-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 2rem; margin-bottom: 1.5rem; box-shadow: var(--shadow-sm);
}
.section-card h3 {
  font-family: var(--font-serif); font-size: 1.25rem; color: var(--texte);
  margin-bottom: 1.2rem; padding-bottom: .75rem;
  border-bottom: 2px solid rgba(247,127,0,.2);
  display: flex; align-items: center; gap: .5rem;
}
.fiche-sidebar .sidebar-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.5rem; margin-bottom: 1.2rem;
  box-shadow: var(--shadow-sm); position: sticky; top: calc(var(--nav-h) + 1.5rem);
}
.kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem; }
.kpi-item { background: var(--fond2); border-radius: var(--radius-sm); padding: 1rem; text-align: center; }
.kpi-val  { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 700; color: var(--orange-ci); }
.kpi-lbl  { font-size: .7rem; color: var(--gris); text-transform: uppercase; letter-spacing: .08em; margin-top: .2rem; }
.proj-table { width: 100%; border-collapse: collapse; }
.proj-table th { background: var(--bleu-nuit); color: #fff; padding: .65rem .9rem; font-size: .78rem; text-align: left; }
.proj-table td { padding: .65rem .9rem; border-bottom: 1px solid var(--border); font-size: .88rem; }
.proj-table tr:hover td { background: var(--fond2); }

/* ── ESPACE INVESTISSEUR ─────────────────────────────────── */
.espace-header {
  background: linear-gradient(135deg, var(--bleu-nuit) 0%, #8a3800 100%);
  padding: calc(var(--nav-h) + 3rem) 0 3rem; color: #fff;
}
.dashboard-grid { display: grid; grid-template-columns: 280px 1fr; gap: 2rem; margin-top: 2.5rem; }
.dashboard-nav  { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.2rem; box-shadow: var(--shadow-sm); height: fit-content; }
.d-nav-item {
  display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem;
  border-radius: var(--radius-sm); font-size: .88rem; font-weight: 500;
  color: var(--texte2); cursor: pointer; transition: all .15s; text-decoration: none;
  border-left: 3px solid transparent;
}
.d-nav-item:hover  { background: var(--fond2); color: var(--orange-ci); }
.d-nav-item.active { background: rgba(247,127,0,.08); color: var(--orange-ci); border-left-color: var(--orange-ci); font-weight: 600; }

/* ── FORMULAIRE LEAD ─────────────────────────────────────── */
.lead-form-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 2.5rem; box-shadow: var(--shadow-lg);
}
.form-group { margin-bottom: 1.2rem; }
.form-group label { display: block; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--gris); margin-bottom: .45rem; }
.form-group label .req { color: #dc2626; }
.form-control {
  width: 100%; padding: .72rem 1rem; background: var(--fond);
  border: 1.5px solid var(--border2); border-radius: var(--radius-sm);
  color: var(--texte); font-size: .9rem; outline: none; font-family: var(--font);
  transition: border .16s, box-shadow .16s;
}
.form-control:focus { border-color: var(--orange-ci); box-shadow: 0 0 0 3px rgba(247,127,0,.1); background: #fff; }
textarea.form-control { resize: vertical; min-height: 100px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }

/* ── BACK-OFFICE ─────────────────────────────────────────── */
.bo-sidebar {
  position: fixed; top: 0; left: 0; bottom: 0; width: 260px;
  background: var(--bleu-nuit); z-index: 200;
  display: flex; flex-direction: column; overflow-y: auto;
}
.bo-brand { padding: 1.2rem 1.4rem; border-bottom: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; gap: .75rem; }
.bo-brand-name { font-size: 1rem; font-weight: 800; color: #fff; letter-spacing: -.01em; }
.bo-brand-sub  { font-size: .6rem; color: rgba(255,255,255,.45); letter-spacing: .08em; text-transform: uppercase; }
.bo-user { padding: .9rem 1.4rem; border-bottom: 1px solid rgba(255,255,255,.06); display: flex; align-items: center; gap: .65rem; }
.bo-avatar { width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, var(--orange-ci), var(--vert-ci)); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .8rem; color: #fff; flex-shrink: 0; }
.bo-user-name { font-size: .83rem; font-weight: 600; color: #fff; }
.bo-user-role { font-size: .65rem; color: rgba(255,255,255,.45); }
.bo-nav-section { padding: .85rem 1.4rem .25rem; font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.3); }
.bo-nav-item {
  display: flex; align-items: center; gap: .6rem;
  padding: .6rem 1.4rem; font-size: .86rem; font-weight: 500;
  color: rgba(255,255,255,.65); transition: all .16s; cursor: pointer;
  text-decoration: none; border-left: 3px solid transparent;
}
.bo-nav-item:hover  { background: rgba(255,255,255,.06); color: #fff; }
.bo-nav-item.active { background: rgba(247,127,0,.18); color: #fff; border-left-color: var(--orange-ci); font-weight: 600; }
.bo-nav-badge { margin-left: auto; background: var(--orange-ci); color: #fff; border-radius: 100px; padding: .04rem .42rem; font-size: .62rem; font-weight: 800; }
.bo-main { margin-left: 260px; min-height: 100vh; background: var(--fond); }
.bo-topbar {
  position: sticky; top: 0; z-index: 100;
  background: rgba(248,250,252,.94); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  padding: 0 2rem; height: 64px;
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 1px 8px rgba(0,0,0,.05);
}
.bo-page-title { font-size: 1.1rem; font-weight: 800; color: var(--texte); letter-spacing: -.01em; }
.bo-content { padding: 2rem; }
.bo-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; margin-bottom: 2rem; }
.bo-stat {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.3rem 1.5rem;
  box-shadow: var(--shadow-sm); position: relative; overflow: hidden;
}
.bo-stat::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.bo-stat.vert::before   { background: linear-gradient(90deg, var(--orange-ci), var(--orange-ci)); }
.bo-stat.orange::before { background: linear-gradient(90deg, var(--orange-ci), #ff9a2e); }
.bo-stat.or::before     { background: linear-gradient(90deg, var(--or), var(--or-l)); }
.bo-stat.bleu::before   { background: linear-gradient(90deg, var(--bleu-acier), #60a5fa); }
.bo-stat-val   { font-family: var(--font-serif); font-size: 2rem; font-weight: 700; color: var(--texte); }
.bo-stat-label { font-size: .78rem; color: var(--gris); margin-top: .25rem; }
.bo-stat-icon  { position: absolute; top: 1.2rem; right: 1.3rem; font-size: 1.8rem; opacity: .2; }
.bo-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); margin-bottom: 1.5rem; overflow: hidden; }
.bo-card-header { padding: 1rem 1.4rem; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; background: var(--fond2); }
.bo-card-title  { font-size: .95rem; font-weight: 700; color: var(--texte); display: flex; align-items: center; gap: .5rem; }
.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; }
table.tbl th { padding: .7rem 1rem; font-size: .72rem; font-weight: 700; color: var(--gris); text-transform: uppercase; letter-spacing: .08em; text-align: left; border-bottom: 2px solid var(--border); background: var(--fond2); white-space: nowrap; }
table.tbl td { padding: .82rem 1rem; font-size: .88rem; border-bottom: 1px solid var(--border); color: var(--texte); vertical-align: middle; }
table.tbl tr:hover td { background: var(--fond2); }
table.tbl tr:last-child td { border-bottom: none; }
.tbl-actions { display: flex; gap: .35rem; }

/* ── BADGES ──────────────────────────────────────────────── */
.badge          { display: inline-flex; align-items: center; padding: .2rem .65rem; border-radius: 100px; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.badge-success  { background: #dcfce7; color: #15803d; }
.badge-warning  { background: #fef9c3; color: #854d0e; }
.badge-danger   { background: #fee2e2; color: #b91c1c; }
.badge-info     { background: #dbeafe; color: #1e40af; }
.badge-emeraude { background: rgba(247,127,0,.1); color: var(--orange-ci); }
.badge-orange-ci { background: rgba(247,127,0,.1); color: var(--orange-ci); }
.badge-or       { background: #fef3c7; color: #92400e; }
.badge-gray     { background: var(--fond2); color: var(--gris); }
.statut-nouveau     { background: #dbeafe; color: #1e40af; }
.statut-en_cours    { background: #fef9c3; color: #854d0e; }
.statut-qualifie    { background: #dcfce7; color: #15803d; }
.statut-rencontre   { background: var(--emeraude-ll); color: var(--emeraude); }
.statut-converti    { background: #065f46; color: #fff; }
.statut-perdu       { background: #fee2e2; color: #b91c1c; }

/* ── FLASH ───────────────────────────────────────────────── */
.flash          { padding: 1rem 1.25rem; border-radius: var(--radius-sm); margin-bottom: 1.5rem; font-size: .9rem; font-weight: 500; display: flex; align-items: center; gap: .6rem; }
.flash-success  { background: #dcfce7; border: 1px solid #86efac; color: #15803d; }
.flash-error    { background: #fee2e2; border: 1px solid #fca5a5; color: #b91c1c; }
.flash-warning  { background: #fef9c3; border: 1px solid #fde047; color: #854d0e; }
.flash-info     { background: #dbeafe; border: 1px solid #93c5fd; color: #1e40af; }

/* ── PAGINATION ──────────────────────────────────────────── */
.pag-wrap { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-top: 1px solid var(--border); }
.pag-info { font-size: .82rem; color: var(--gris); }
.pag      { display: flex; gap: .3rem; }
.pag-btn  { padding: .38rem .72rem; border-radius: var(--radius-sm); background: var(--surface); color: var(--texte2); font-size: .84rem; border: 1px solid var(--border); text-decoration: none; font-weight: 500; transition: all .15s; }
.pag-btn:hover  { border-color: var(--orange-ci); color: var(--orange-ci); }
.pag-btn.active { background: var(--orange-ci); color: #111827; font-weight:800; border-color: var(--orange-ci); }

/* ── FOOTER ──────────────────────────────────────────────── */
.footer { background: var(--bleu-nuit); color: rgba(255,255,255,.75); padding: 4rem 0 2rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
.footer-brand .brand-name { font-family: var(--font-serif); font-size: 1.25rem; color: #fff; margin-bottom: .4rem; }
.footer-brand p { font-size: .85rem; line-height: 1.7; max-width: 300px; }
.footer-section h4 { color: #fff; font-size: .88rem; font-weight: 700; margin-bottom: 1rem; letter-spacing: .02em; }
.footer-section ul { list-style: none; }
.footer-section li { margin-bottom: .55rem; }
.footer-section a  { font-size: .85rem; color: rgba(255,255,255,.6); transition: color .15s; }
.footer-section a:hover { color: var(--orange-ci); }
.footer-bottom {
  border-top: 1px solid rgba(247,127,0,.25); padding-top: 1.5rem;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
}
.footer-bottom p { font-size: .82rem; color: rgba(255,255,255,.45); }
.footer-flags    { display: flex; gap: .5rem; }
.ci-flag         { display: flex; width: 36px; height: 22px; border-radius: 3px; overflow: hidden; }
.ci-flag span    { flex: 1; }

/* ── BANDEAU FLASH INFO (topbar) ─────────────────────────── */
.flash-info {
  width: 100%; height: 32px; overflow: hidden;
  background: #f57c00;
  display: flex; align-items: center;
  border: none !important; outline: none !important; box-shadow: none !important;
}
.scroll-track {
  display: flex; width: max-content;
  animation: scroll 18s linear infinite;
}
.scroll-text {
  white-space: nowrap; font-size: 0.95rem; font-weight: 900;
  color: #ffffff; letter-spacing: 0.5px; text-transform: uppercase;
  padding-right: 80px;
}
.scroll-text strong { color: #fff3b0; font-weight: 900; }
.flash-badge {
  background: #d50000; color: #fff;
  font-size: 0.75rem; font-weight: 900;
  padding: 2px 8px; border-radius: 3px; margin-right: 10px;
  text-transform: uppercase; animation: blinkFlash 1.2s infinite;
}

/* ══ KPI BAND ════════════════════════════════════════════════ */
.kpi-band {
  background: linear-gradient(180deg, #052b14 0%, #083d1e 100%);
  border-top: 1px solid rgba(212,175,55,.2);
  border-bottom: 1px solid rgba(0,154,68,.15);
  position: relative;
}
.kpi-band::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,#D4AF37 30%,#009A44 70%,transparent);
}
.kpi-inn {
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns:repeat(5,1fr); padding:0 2.5rem;
}
.kpi-it {
  padding:2rem 1rem; text-align:center;
  border-right:1px solid rgba(255,255,255,.08);
  transition:background .25s; position:relative;
}
.kpi-it:last-child { border-right:none; }
.kpi-it:hover { background:rgba(255,255,255,.05); }
.kpi-it:hover .kpi-v { transform:scale(1.05); }
.kpi-ic { font-size:1.5rem; margin-bottom:.5rem; display:block; line-height:1; }
.kpi-v {
  font-family:var(--font-serif,serif);
  font-size:2.2rem; font-weight:700; line-height:1;
  margin-bottom:.35rem; transition:transform .2s; letter-spacing:-.01em;
}
.kpi-l {
  font-size:.65rem; color:rgba(255,255,255,.55);
  text-transform:uppercase; letter-spacing:.1em; font-weight:500;
}

/* ══ SECTIONS PREMIUM ════════════════════════════════════════ */
.s-alt { background:#fff; padding:5.5rem 0; position:relative; }
.s-wh  { background:#f8fafc; padding:5.5rem 0; position:relative; }
.s-wh::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 50% at 10% 20%, rgba(0,154,68,.04) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 90% 80%, rgba(212,175,55,.04) 0%, transparent 60%);
  pointer-events:none;
}
.s-dk {
  background:linear-gradient(160deg,#021a0e 0%,#061a2e 50%,#04120e 100%);
  padding:5.5rem 0; position:relative; overflow:hidden;
}
.s-dk::before {
  content:''; position:absolute; top:-40%; left:-10%;
  width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle,rgba(0,154,68,.08) 0%,transparent 70%);
  pointer-events:none;
}
.s-dk::after {
  content:''; position:absolute; bottom:-30%; right:-5%;
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle,rgba(212,175,55,.06) 0%,transparent 70%);
  pointer-events:none;
}
.s-c   { max-width:1280px; margin:0 auto; padding:0 2.5rem; }
.s-hd  { text-align:center; margin-bottom:3.5rem; }
.s-hd::after {
  content:''; display:block; width:48px; height:2px;
  background:linear-gradient(90deg,#009A44,#D4AF37);
  margin:.85rem auto 0; border-radius:2px;
}
.s-tag {
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(0,154,68,.08); border:1px solid rgba(0,154,68,.2);
  border-radius:100px; padding:.3rem 1rem;
  font-size:.7rem; font-weight:700; letter-spacing:.12em;
  color:#007A36; text-transform:uppercase; margin-bottom:1rem;
}
.s-tag.lt {
  background:rgba(212,175,55,.1); border-color:rgba(212,175,55,.25); color:#D4AF37;
}
.s-ti {
  font-family:var(--font-serif,serif);
  font-size:clamp(1.7rem,3vw,2.5rem); font-weight:700;
  color:#0d1117; line-height:1.2; margin-bottom:.7rem;
}
.s-ti.lt { color:#fff; }
.s-su  { font-size:.95rem; color:#6b7280; max-width:520px; margin:0 auto; line-height:1.7; }
.s-su.lt { color:rgba(255,255,255,.58); }

/* ══ SECTEURS PREMIUM ════════════════════════════════════════ */
.sg { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1.2rem; }
.sc {
  background:#fff; border:1.5px solid #e2e8f0; border-radius:16px;
  padding:1.8rem 1.2rem 1.4rem; text-align:center; text-decoration:none;
  display:flex; flex-direction:column; align-items:center;
  transition:all .28s cubic-bezier(.25,.46,.45,.94);
  position:relative; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.sc::before {
  content:''; position:absolute; inset:0;
  background:var(--sc-bg,rgba(0,154,68,.05)); opacity:0; transition:opacity .28s;
}
.sc::after {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--cat-color,#009A44);
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s cubic-bezier(.25,.46,.45,.94);
}
.sc:hover { transform:translateY(-6px); box-shadow:0 16px 36px rgba(0,0,0,.1); border-color:transparent; }
.sc:hover::before { opacity:1; }
.sc:hover::after  { transform:scaleX(1); }
.sc-ico-wrap {
  width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto .9rem;
  background:var(--sc-bg,rgba(0,154,68,.08)); transition:all .28s;
  border:1.5px solid var(--sc-border,rgba(0,154,68,.15));
}
.sc:hover .sc-ico-wrap { transform:scale(1.1); box-shadow:0 6px 20px var(--sc-shadow,rgba(0,154,68,.2)); }
.sc-ico { font-size:2rem; display:block; line-height:1; }
.sc-nom { font-size:.9rem; font-weight:700; color:#0d1117; margin-bottom:.3rem; line-height:1.3; }
.sc-cnt { font-size:.72rem; color:#94a3b8; font-weight:500; margin-bottom:.9rem; }
.sc-bar { display:none; }

/* ══ WHY INVEST PREMIUM ══════════════════════════════════════ */
.wg { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; position:relative; z-index:1; }
.wc {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09);
  border-radius:16px; padding:2.2rem 1.6rem; text-align:center;
  transition:all .3s; position:relative; overflow:hidden;
}
.wc::before {
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:60%; height:1px;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,.4),transparent);
}
.wc:hover {
  background:rgba(255,255,255,.08); transform:translateY(-4px);
  border-color:rgba(212,175,55,.2); box-shadow:0 16px 40px rgba(0,0,0,.25);
}
.wi { font-size:2.6rem; margin-bottom:1.1rem; display:block; filter:drop-shadow(0 2px 8px rgba(0,0,0,.3)); }
.wt { font-size:1rem; font-weight:700; color:#fff; margin-bottom:.65rem; letter-spacing:.01em; }
.wd { font-size:.82rem; color:rgba(255,255,255,.55); line-height:1.65; }

/* ══ CTA FINAL PREMIUM ═══════════════════════════════════════ */
.ctaf {
  background:linear-gradient(135deg,#071420 0%,#0a2010 40%,#12180a 100%);
  border-radius:20px; padding:3.8rem;
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:2.5rem;
  position:relative; overflow:hidden;
  border:1px solid rgba(212,175,55,.15); box-shadow:0 24px 60px rgba(0,0,0,.25);
}
.ctaf::before {
  content:''; position:absolute; top:-60%; right:-5%;
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle,rgba(0,154,68,.1) 0%,transparent 65%);
  pointer-events:none;
}
.ctaf::after {
  content:''; position:absolute; bottom:-40%; left:20%;
  width:400px; height:400px; border-radius:50%;
  background:radial-gradient(circle,rgba(212,175,55,.06) 0%,transparent 65%);
  pointer-events:none;
}
.ctaf-top-line {
  position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,#D4AF37 30%,#009A44 70%,transparent);
}

/* ══ HERO BOUTONS PREMIUM ════════════════════════════════════ */
.btn-hprim {
  display:inline-flex; align-items:center; gap:.6rem;
  background:linear-gradient(135deg,#009A44,#00b84f);
  color:#fff; padding:1rem 2.2rem; border-radius:10px;
  font-weight:700; font-size:.95rem; text-decoration:none;
  box-shadow:0 6px 24px rgba(0,154,68,.45),0 1px 0 rgba(255,255,255,.15) inset;
  transition:all .22s; pointer-events:auto; letter-spacing:.01em;
}
.btn-hprim:hover {
  transform:translateY(-2px); box-shadow:0 12px 36px rgba(0,154,68,.55);
  color:#fff; background:linear-gradient(135deg,#00b84f,#00d45a);
}
.btn-hsec {
  display:inline-flex; align-items:center; gap:.6rem;
  background:rgba(255,255,255,.1); border:1.5px solid rgba(255,255,255,.45);
  color:#fff; padding:1rem 1.8rem; border-radius:10px;
  font-weight:600; font-size:.95rem; text-decoration:none;
  backdrop-filter:blur(8px); transition:all .22s; pointer-events:auto;
}
.btn-hsec:hover {
  background:rgba(255,255,255,.2); border-color:rgba(255,255,255,.8);
  color:#fff; transform:translateY(-2px);
}

/* ══ HAMBURGER MOBILE ════════════════════════════════════════ */
.nav-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: .4rem;
  flex-shrink: 0;
}
.nav-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--texte, #0f172a);
  border-radius: 2px;
  transition: all .25s;
}

/* ══ DRAWER MOBILE ═══════════════════════════════════════════
   CORRECTIF CLÉ : on utilise transform+visibility au lieu de
   display:none, ce qui permet à la transition CSS de fonctionner.
   pointer-events:none bloque tout clic quand le drawer est fermé.
══════════════════════════════════════════════════════════════ */
.nav-mobile-drawer {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: var(--nav-h, 96px);
  left: 0; right: 0; bottom: 0;
  background: #fff;
  z-index: 998;
  overflow-y: auto;
  padding: 1.5rem;
  border-top: 2px solid var(--orange-ci, #f77f00);
  transform: translateX(100%);
  transition: transform .28s ease, visibility 0s linear .28s;
  pointer-events: none;
  visibility: hidden;
}
.nav-mobile-drawer.open {
  transform: translateX(0);
  pointer-events: auto;
  visibility: visible;
  transition: transform .28s ease, visibility 0s linear 0s;
}

.nav-mob-link {
  display: flex; align-items: center; gap: .6rem;
  padding: .85rem .5rem;
  border-bottom: 1px solid #f1f5f9;
  font-size: .95rem; font-weight: 600;
  color: #0d1117; text-decoration: none;
}
.nav-mob-link:hover { color: var(--orange-ci, #f77f00); }
.nav-mob-section {
  font-size: .62rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .12em;
  color: #94a3b8; margin: 1.2rem 0 .5rem;
}
.nav-mob-actions {
  display: flex; flex-direction: column;
  gap: .65rem; margin-top: 1.5rem;
}

/* ══ RTL ARABE ═══════════════════════════════════════════════ */
html[dir="rtl"] body            { font-family: 'Segoe UI', Tahoma, Arial, sans-serif; }
html[dir="rtl"] .navbar-main    { flex-direction: row-reverse; }
html[dir="rtl"] .nav-links      { flex-direction: row-reverse; }
html[dir="rtl"] .nav-brand      { flex-direction: row-reverse; }
html[dir="rtl"] .nav-actions    { flex-direction: row-reverse; }
html[dir="rtl"] .mega-panel.dropdown-sm { left: 0; right: auto; }
html[dir="rtl"] .navbar-topbar  { flex-direction: row-reverse; }
html[dir="rtl"] .nav-mob-link   { flex-direction: row-reverse; text-align: right; }
html[dir="rtl"] .mega-link      { flex-direction: row-reverse; text-align: right; }
html[dir="rtl"] .mega-link-body { text-align: right; }
html[dir="rtl"] .footer-grid    { direction: rtl; }
html[dir="rtl"] .s-c            { direction: rtl; }
html[dir="rtl"] .hci-content    { direction: rtl; }
html[dir="rtl"] .bo-sidebar     { left: auto; right: 0; }
html[dir="rtl"] .bo-main        { margin-left: 0; margin-right: 260px; }
html[dir="rtl"] .projet-body    { direction: rtl; text-align: right; }
html[dir="rtl"] .ctaf           { direction: rtl; }
html[dir="rtl"] .projet-financials { direction: rtl; }
html[dir="rtl"] .navbar-topbar > div:last-child { direction: ltr; }
html[dir="rtl"] .navbar-lang-pill               { direction: ltr; }
html[dir="rtl"] .navbar-topbar-left             { direction: rtl; text-align: right; }

/* ══ KEYFRAMES ═══════════════════════════════════════════════ */
@keyframes pulse      { 0%,100%{opacity:1}  50%{opacity:.5}  }
@keyframes fadeUp     { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
@keyframes navpulse   { 0%,100%{opacity:1}  50%{opacity:.3}  }
@keyframes scroll     { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes blinkFlash { 0%,100%{opacity:1}  50%{opacity:.25} }

.fade-up { animation: fadeUp .4s ease; }

/* ══ RESPONSIVE ══════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-visual { display: none; }
  .projets-grid { grid-template-columns: 1fr 1fr; }
  .fiche-layout { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .bo-stats { grid-template-columns: 1fr 1fr; }
  .kpi-inn { grid-template-columns: repeat(3,1fr); }
  .wg { grid-template-columns: 1fr 1fr; }
  .ctaf { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  /* Liens desktop masqués */
  .navbar-main .nav-links { display: none; }

  /* Hamburger visible */
  .nav-hamburger { display: flex; }

  /* Drawer géré par transform/visibility — ne pas ajouter display:none ici */

  .bo-sidebar { transform: translateX(-100%); transition: transform .3s; }
  .bo-sidebar.open { transform: translateX(0); }
  .bo-main { margin-left: 0; }
  .footer-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .hci-content { padding: 0 1.5rem !important; }
  .hci-title { font-size: clamp(2rem, 8vw, 3.5rem) !important; }
  .hci-sub { font-size: 1rem !important; }
  .hci-ctas { flex-direction: column; align-items: center; }
  .hci-btn-main, .hci-btn-sec { width: 100%; justify-content: center; }
  .projets-grid { grid-template-columns: 1fr; }
  .kpi-inn { grid-template-columns: 1fr 1fr; }
  .ctaf { grid-template-columns: 1fr; padding: 2rem; }
  .wg { grid-template-columns: 1fr 1fr; }
  .fiche-layout { grid-template-columns: 1fr; }

  .navbar-main { padding: 0 1rem; justify-content: space-between; }
  .nav-brand { flex-shrink: 1; min-width: 0; overflow: hidden; }
  .nav-brand-text .brand-sub { display: none; }
  .nav-actions { display: flex !important; flex-shrink: 0; gap: .3rem; align-items: center; }
  .nav-actions .btn { padding: .42rem .7rem; font-size: .78rem; white-space: nowrap; }
  .lang-switcher { display: none; }
}

@media (max-width: 768px) {
  .hero-title { font-size: 2.2rem; }
  .projets-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .kpi-inn { grid-template-columns: 1fr 1fr; }
  .wg { grid-template-columns: 1fr 1fr; }
  .ctaf { padding: 2rem; }
}

@media (max-width: 480px) {
  .wg { grid-template-columns: 1fr; }
  .kpi-inn { grid-template-columns: 1fr 1fr; }
  .navbar-topbar { padding: 0 .75rem; }
  .navbar-main { padding: 0 .6rem; }
  .nav-brand-text { display: none; }
  .nav-actions .btn { padding: .38rem .55rem; font-size: .74rem; }
}

