/* NEW GEN CONSULTING — design system
   Navy / brass editorial theme for a West African financial consulting firm. */

:root{
  --navy-950:#0B0B24;
  --navy-900:#12123A;
  --navy-800:#1B1B4D;
  --ink:#0A0A1F;
  --paper:#FBFAF6;
  --ivory:#F5F2E9;
  --line-dark:#E4E0D2;
  --brass:#B8923F;
  --brass-light:#DAB979;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background:var(--paper);
  color:#1E1B3A;
  font-family:'Inter', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.font-display{ font-family:'Fraunces', Georgia, serif; }
.font-mono{ font-family:'IBM Plex Mono', ui-monospace, monospace; }

em{ font-style:italic; color:var(--brass); }

/* ============ HEADER ============ */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(11,11,36,0.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,0.08);
}

.seal{ object-fit:cover; box-shadow:0 0 0 1px rgba(218,185,121,0.35); }

.nav-link{
  position:relative;
  font-size:0.875rem;
  color:#C7C4E3;
  transition:color .2s ease;
}
.nav-link:hover{ color:#F7F5EE; }
.nav-link::after{
  content:'';
  position:absolute;
  left:0; bottom:-6px;
  width:0; height:1px;
  background:var(--brass-light);
  transition:width .25s ease;
}
.nav-link:hover::after{ width:100%; }

/* Ticker tape */
.ticker-wrap{
  overflow:hidden;
  white-space:nowrap;
  background:var(--navy-950);
  border-top:1px solid rgba(255,255,255,0.06);
  padding:7px 0;
}
.ticker-track{
  display:inline-flex;
  gap:2.5rem;
  padding-left:2.5rem;
  animation:ticker-scroll 38s linear infinite;
  font-size:0.72rem;
  letter-spacing:0.04em;
  color:#9C99C4;
}
.ticker-wrap:hover .ticker-track{ animation-play-state:paused; }
.ticker-track .tk-up{ color:#5FCB8F; }
.ticker-track .tk-down{ color:#E37B7B; }
.ticker-track .tk-sym{ color:#F7F5EE; font-weight:600; margin-right:.35em; }

@keyframes ticker-scroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}

/* ============ HERO ============ */
.hero{
  position:relative;
  background:linear-gradient(160deg, var(--navy-950) 0%, var(--navy-900) 55%, var(--navy-800) 100%);
  color:#F5F2E9;
  overflow:hidden;
}
.page-hero{
  position:relative;
  background:linear-gradient(160deg, var(--navy-950) 0%, var(--navy-900) 100%);
  color:#F5F2E9;
  overflow:hidden;
}

.hero-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(218,185,121,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(218,185,121,0.08) 1px, transparent 1px);
  background-size:56px 56px;
  pointer-events:none;
}

.hero-glow{
  position:absolute;
  top:-20%; right:-10%;
  width:60%; height:80%;
  background:radial-gradient(ellipse at center, rgba(184,146,63,0.28) 0%, rgba(184,146,63,0) 65%);
  pointer-events:none;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass-light);
}
.eyebrow::before{
  content:'';
  width:20px; height:1px;
  background:var(--brass-light);
}

.stat-num{ font-family:'Fraunces', serif; font-weight:500; }

.breadcrumb{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.04em;
  color:#8A87B8;
}
.breadcrumb a{ color:#8A87B8; transition:color .2s ease; }
.breadcrumb a:hover{ color:var(--brass-light); }

/* ============ SECTION HEADERS ============ */
.section-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass);
}
.divider-brass{ width:44px; height:2px; background:var(--brass); }

/* ============ BUTTONS ============ */
.btn-brass{
  display:inline-block;
  background:linear-gradient(135deg, var(--brass-light), var(--brass));
  color:var(--navy-950);
  font-weight:600;
  letter-spacing:0.01em;
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
  box-shadow:0 1px 2px rgba(0,0,0,0.15);
}
.btn-brass:hover{ transform:translateY(-1px); filter:brightness(1.06); box-shadow:0 8px 20px -6px rgba(184,146,63,0.55); }

.btn-ghost{
  display:inline-block;
  border:1px solid rgba(247,245,238,0.35);
  color:#F5F2E9;
  font-weight:500;
  transition:background .2s ease, border-color .2s ease;
}
.btn-ghost:hover{ background:rgba(247,245,238,0.08); border-color:rgba(247,245,238,0.6); }

/* ============ EXPERTISE CARDS ============ */
.expertise-card{
  position:relative;
  transition:background .25s ease, transform .25s ease;
}
.expertise-card:hover{ background:var(--ivory) !important; transform:translateY(-2px); }

.rubric-num{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.78rem;
  color:var(--brass);
  letter-spacing:0.05em;
}

/* ============ GLASS CARDS (dark sections) ============ */
.glass-card{
  background:rgba(255,255,255,0.045);
  border:1px solid rgba(255,255,255,0.09);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:border-color .2s ease, background .2s ease;
}
.glass-card:hover{ border-color:rgba(218,185,121,0.4); background:rgba(255,255,255,0.07); }

.tick-up{ color:#5FCB8F; }
.tick-down{ color:#E37B7B; }
.tick-sym{ color:#F7F5EE; font-weight:600; }
.row-hover{ transition:background .15s ease; border-radius:3px; }
.row-hover:hover{ background:rgba(255,255,255,0.05); padding-left:.5rem; padding-right:.5rem; }

/* ============ VALUE / NUMBERED / CHIPS ============ */
.value-card{
  border-top:2px solid var(--brass);
  padding-top:1.1rem;
}

.numbered{
  flex-shrink:0;
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  color:var(--brass);
  border:1px solid var(--line-dark);
  border-radius:2px;
}

.chip{
  display:inline-block;
  padding:.45rem .9rem;
  font-size:0.78rem;
  color:#3A3760;
  background:var(--ivory);
  border:1px solid var(--line-dark);
  border-radius:2px;
  transition:border-color .2s ease, color .2s ease;
}
.chip:hover{ border-color:var(--brass); color:var(--navy-900); }

.chip-dark{
  display:inline-block;
  padding:.45rem .9rem;
  font-size:0.78rem;
  color:#C7C4E3;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:2px;
  transition:border-color .2s ease, color .2s ease;
}
.chip-dark:hover{ border-color:var(--brass-light); color:#F7F5EE; }

/* ============ RDV FORM (contact / WhatsApp) ============ */
.rdv-form label{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#9C99C4;
  margin-bottom:.45rem;
}
.rdv-form input,
.rdv-form textarea{
  width:100%;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.16);
  color:#F5F2E9;
  padding:.7rem .9rem;
  border-radius:3px;
  font-family:'Inter', sans-serif;
  font-size:0.9rem;
  transition:border-color .2s ease, background .2s ease;
}
.rdv-form textarea{ resize:vertical; }
.rdv-form input::placeholder,
.rdv-form textarea::placeholder{ color:#716DA0; }
.rdv-form input:focus,
.rdv-form textarea:focus{
  outline:none;
  border-color:var(--brass-light);
  background:rgba(255,255,255,0.09);
}
.rdv-form input[type="date"]::-webkit-calendar-picker-indicator,
.rdv-form input[type="time"]::-webkit-calendar-picker-indicator{
  filter:invert(1) opacity(0.65);
  cursor:pointer;
}
.rdv-form .form-success{
  border:1px solid rgba(95,203,143,0.4);
  background:rgba(95,203,143,0.08);
  color:#8FE0B4;
  padding:.9rem 1.1rem;
  border-radius:3px;
  font-size:0.85rem;
}

/* ============ TEAM ============ */
.team-card{
  background:var(--paper);
  border-radius:3px;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,0.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.team-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px -12px rgba(0,0,0,0.35); }

.team-photo{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--navy-950);
}
.team-photo img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(0.1) contrast(1.03);
  transition:transform .5s ease, filter .5s ease;
}
.team-card:hover .team-photo img{ transform:scale(1.06); filter:grayscale(0) contrast(1.05); }
.team-photo::after{
  content:'';
  position:absolute; inset:0;
  box-shadow:inset 0 -2px 0 var(--brass);
}

.team-avatar{
  aspect-ratio:4/5;
  position:relative;
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(circle at 28% 22%, rgba(218,185,121,0.16), transparent 55%),
    linear-gradient(135deg, var(--navy-900), var(--navy-950));
  box-shadow:inset 0 -2px 0 var(--brass);
}
.team-avatar::before{
  content:'';
  position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,0.07) 1px, transparent 1px);
  background-size:16px 16px;
}
.team-avatar span{
  position:relative; z-index:1;
  width:58px; height:58px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(218,185,121,0.45);
  border-radius:50%;
  font-family:'Fraunces', serif;
  font-size:1.3rem;
  color:var(--brass-light);
}

/* ============ TIMELINE ============ */
.timeline{ position:relative; padding-left:28px; }
.timeline::before{
  content:'';
  position:absolute; left:5px; top:6px; bottom:6px;
  width:1px;
  background:var(--line-dark);
}
.timeline-item{ position:relative; padding-bottom:2rem; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:'';
  position:absolute; left:-28px; top:4px;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--paper);
  border:2px solid var(--brass);
}

/* ============ FORMATIONS: FILTERS & PRICE CARDS ============ */
.filter-btn{
  padding:.55rem 1.1rem;
  font-size:0.8rem;
  color:#5B5878;
  background:var(--paper);
  border:1px solid var(--line-dark);
  border-radius:999px;
  cursor:pointer;
  transition:all .2s ease;
}
.filter-btn:hover{ border-color:var(--brass); color:var(--navy-900); }
.filter-btn.active{
  background:var(--navy-900);
  border-color:var(--navy-900);
  color:#F7F5EE;
}

.price-card{
  background:var(--paper);
  border:1px solid var(--line-dark);
  border-radius:4px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.price-card:hover{
  transform:translateY(-3px);
  border-color:var(--brass);
  box-shadow:0 16px 32px -16px rgba(11,11,36,0.25);
}

.badge-brass{
  display:inline-block;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.65rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--navy-950);
  background:var(--brass-light);
  padding:.3rem .6rem;
  border-radius:2px;
}

/* ============ INSCRIPTION MODAL (formations) ============ */
.inscription-modal{
  position:fixed; inset:0;
  z-index:200;
  display:flex; align-items:center; justify-content:center;
  padding:1.25rem;
}
.inscription-modal.hidden{ display:none; }
.inscription-backdrop{
  position:absolute; inset:0;
  background:rgba(10,10,31,0.72);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.inscription-dialog{
  position:relative;
  width:100%; max-width:560px;
  max-height:88vh;
  overflow-y:auto;
  background:linear-gradient(160deg, var(--navy-900), var(--navy-950));
  border:1px solid rgba(218,185,121,0.25);
  border-radius:4px;
  padding:2rem;
  box-shadow:0 30px 80px -20px rgba(0,0,0,0.6);
  opacity:0;
  transform:scale(0.96) translateY(8px);
  transition:opacity .2s ease, transform .2s ease;
}
.inscription-modal.is-open .inscription-dialog{ opacity:1; transform:scale(1) translateY(0); }
.inscription-close{
  position:absolute; top:1.1rem; right:1.1rem;
  width:32px; height:32px;
  display:flex; align-items:center; justify-content:center;
  color:#9C99C4;
  border:1px solid rgba(255,255,255,0.15);
  border-radius:50%;
  background:none;
  transition:color .2s ease, border-color .2s ease;
}
.inscription-close:hover{ color:#F7F5EE; border-color:var(--brass-light); }

/* ============ BRVM SECTION background ============ */
.brvm-section{
  background:linear-gradient(160deg, var(--navy-950) 0%, var(--navy-900) 100%);
}

.brvm-export-btn{
  transition:transform .15s ease, box-shadow .15s ease;
}
.brvm-export-btn:hover{ transform:translateY(-1px); }
.brvm-export-btn:disabled{ opacity:.5; cursor:not-allowed; transform:none; }

/* ============ PRINT / PDF EXPORT (BRVM section only) ============
 * Triggered by the "Télécharger en PDF" button calling window.print() —
 * the user picks "Save as PDF" in their browser's print destination list.
 */
@media print{
  body *{ visibility:hidden; }
  #brvmSection, #brvmSection *{ visibility:visible; }
  #brvmSection{
    position:absolute; inset:0;
    padding:24px !important;
    background:linear-gradient(160deg, var(--navy-950) 0%, var(--navy-900) 100%) !important;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
  .brvm-export-buttons{ display:none !important; }
}

/* ============ SCROLL REVEAL ============ */
.reveal{ opacity:0; transform:translateY(24px); }
.reveal.is-visible{ opacity:1; transform:translateY(0); transition:opacity .7s ease, transform .7s ease; }

/* ============ MISC ============ */
::selection{ background:var(--brass-light); color:var(--navy-950); }

img{ max-width:100%; }

@media (max-width:767px){
  .ticker-track{ font-size:0.68rem; }
}
