/* ============================================
   ADES SA — STYLE PRINCIPAL
   ============================================ */

/* === PLACEHOLDER IMAGES === */
.photo-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--charcoal-50) 0%, var(--charcoal-80) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--text-tertiary);
  text-align: center;
  padding: 2rem;
  min-height: 300px;
}

.photo-placeholder .placeholder-icon {
  width: 80px;
  height: 80px;
  color: var(--ades-red);
  opacity: 0.3;
  margin-bottom: 1rem;
}

.photo-placeholder .placeholder-text {
  font-size: var(--fs-sm);
  color: var(--text-tertiary);
  font-style: italic;
}

.gov-photo-large .photo-placeholder {
  min-height: 400px;
}

.modal-photo .photo-placeholder {
  min-height: 240px;
  min-width: 240px;
}

.modal-photo .photo-placeholder .placeholder-icon {
  width: 60px;
  height: 60px;
}

/* === RESET === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; font-size: 16px; }
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-normal);
  color: var(--text-primary);
  background-color: var(--bg-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, picture, video, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--transition-base); }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

/* === TYPOGRAPHIE === */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  color: var(--text-primary);
  letter-spacing: var(--ls-tight);
}
.h-display { font-size: var(--fs-hero); font-weight: var(--fw-bold); }
.h-1 { font-size: clamp(2rem, 4vw, var(--fs-4xl)); }
.h-2 { font-size: clamp(1.75rem, 3.5vw, var(--fs-3xl)); }
.h-3 { font-size: clamp(1.375rem, 2.5vw, var(--fs-2xl)); }
.h-4 { font-size: var(--fs-xl); }
p { line-height: var(--lh-relaxed); color: var(--text-secondary); }
.lead {
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--text-secondary);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--ades-red);
  margin-bottom: var(--space-4);
  padding-left: var(--space-8);
  position: relative;
}
.eyebrow::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 32px;
  height: 1px;
  background-color: var(--ades-red);
  transform: translateY(-50%);
}

/* === ICÔNES LUCIDE === */
.eyebrow-icon {
  width: 14px; height: 14px;
  stroke-width: 2;
  color: var(--ades-red);
  flex-shrink: 0;
}
.sov-card-icon {
  width: 40px; height: 40px;
  stroke-width: 1.5;
  color: var(--ades-red);
  margin-bottom: var(--space-5);
  display: block;
}
.pole-card-icon {
  width: 32px; height: 32px;
  stroke-width: 1.5;
  color: var(--ades-red);
  margin-bottom: var(--space-4);
  display: block;
}
.stat-icon {
  width: 28px; height: 28px;
  stroke-width: 1.5;
  color: var(--ades-red);
  margin: 0 auto var(--space-3);
  display: block;
}
.footer-icon {
  width: 14px; height: 14px;
  stroke-width: 2;
  color: var(--ades-red);
  flex-shrink: 0;
  margin-top: 4px;
}

/* === LAYOUT === */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--content-padding);
  padding-right: var(--content-padding);
}
.container-narrow {
  width: 100%;
  max-width: var(--container-narrow);
  margin: 0 auto;
  padding-left: var(--content-padding);
  padding-right: var(--content-padding);
}

/* === SECTIONS === */
.section { padding-top: var(--space-16); padding-bottom: var(--space-16); }
.section-sm { padding-top: var(--space-10); padding-bottom: var(--space-10); }
.section-lg { padding-top: var(--space-20); padding-bottom: var(--space-20); }
.section-dark { background-color: var(--bg-dark); color: var(--text-inverse); }
.section-dark h1, .section-dark h2, .section-dark h3 { color: var(--ades-white); }
.section-dark p { color: rgba(255, 255, 255, 0.75); }
.section-cream { background-color: var(--bg-secondary); }
.section-pearl { background-color: var(--bg-tertiary); }

/* === HEADER === */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--z-sticky);
  background-color: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
  transition: all var(--transition-base);
}
.site-header.scrolled {
  border-bottom-color: var(--border);
  box-shadow: var(--shadow-sm);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--content-padding);
  padding-right: var(--content-padding);
}
.site-logo { display: flex; align-items: center; gap: var(--space-3); }
.site-logo img { height: 48px; width: auto; }

.site-nav { display: flex; align-items: center; gap: var(--space-8); }
.nav-list { display: flex; align-items: center; gap: var(--space-6); }

.nav-link {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  letter-spacing: var(--ls-wide);
  position: relative;
  padding: var(--space-2) 0;
  transition: color var(--transition-base);
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 2px;
  background-color: var(--ades-red);
  transition: width var(--transition-base);
}
.nav-link:hover, .nav-link.active { color: var(--ades-red); }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }

/* === MEGA MENU (desktop) === */
.nav-dropdown { position: relative; }
/* Bouton dropdown — styles autonomes, ne dérive PAS de .nav-link
   pour éviter le conflit ::after (chevron vs underline rouge). */
.nav-dropdown-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  background: none;
  border: none;
  padding: var(--space-2) 0;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-primary);
  transition: color var(--transition-base);
}
.nav-dropdown-trigger:hover { color: var(--ades-red); }
.nav-dropdown.open .nav-dropdown-trigger { color: var(--ades-red); }

/* Chevron — vraie icône Lucide en SVG, taille fixe, rotation propre */
.dropdown-chevron {
  width: 14px;
  height: 14px;
  stroke-width: 2;
  flex-shrink: 0;
  opacity: 0.7;
  transition: transform 250ms ease, opacity 250ms ease;
}
.nav-dropdown-trigger:hover .dropdown-chevron,
.nav-dropdown:hover .dropdown-chevron,
.nav-dropdown.open .dropdown-chevron {
  transform: rotate(180deg);
  opacity: 1;
}

.mega-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  width: min(960px, calc(100vw - 32px));
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
  padding: var(--space-6);
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-base);
}
.nav-dropdown:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.mega-menu-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--space-6);
}
.mega-menu-column h4 {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--text-muted);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-3);
  border-bottom: 1px solid var(--border);
}
.mega-menu-column a {
  display: block;
  padding: var(--space-3) var(--space-3);
  border-left: 2px solid transparent;
  transition: all var(--transition-base);
  margin-bottom: 2px;
}
.mega-menu-column a:hover {
  background-color: var(--bg-secondary);
  border-left-color: var(--ades-red);
}
.mega-menu-column a strong {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: 2px;
}
.mega-menu-column a:hover strong { color: var(--ades-red); }
.mega-menu-column a small {
  display: block;
  font-size: var(--fs-xs);
  color: var(--text-muted);
  font-weight: var(--fw-regular);
}

/* === HAMBURGER === */
.menu-toggle {
  display: none;
  width: 32px;
  height: 32px;
  position: relative;
  z-index: var(--z-modal);
}
.menu-toggle span {
  display: block;
  position: absolute;
  left: 4px;
  width: 24px;
  height: 2px;
  background-color: var(--ades-black);
  transition: all var(--transition-base);
}
.menu-toggle span:nth-child(1) { top: 10px; }
.menu-toggle span:nth-child(2) { top: 16px; }
.menu-toggle span:nth-child(3) { top: 22px; }
.menu-toggle.active span:nth-child(1) { top: 16px; transform: rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { top: 16px; transform: rotate(-45deg); }

/* === BUTTONS === */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: all var(--transition-base);
  white-space: nowrap;
}
.btn::after {
  content: '→';
  font-size: var(--fs-base);
  transition: transform var(--transition-base);
  display: inline-block;
}
.btn:hover::after { transform: translateX(4px); }
.btn-primary { background-color: var(--ades-red); color: var(--ades-white); border-color: var(--ades-red); }
.btn-primary:hover { background-color: var(--ades-red-dark); border-color: var(--ades-red-dark); }
.btn-outline { background-color: transparent; color: var(--ades-black); border-color: var(--ades-black); }
.btn-outline:hover { background-color: var(--ades-black); color: var(--ades-white); }
.btn-outline-light { background-color: transparent; color: var(--ades-white); border-color: var(--ades-white); }
.btn-outline-light:hover { background-color: var(--ades-white); color: var(--ades-black); }

/* === HERO CAROUSEL === */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background: linear-gradient(135deg, var(--ades-black) 0%, var(--ades-charcoal) 60%, #2a0a0d 100%);
  color: var(--text-inverse);
  overflow: hidden;
  padding-top: var(--header-height);
}
.hero-slider { position: absolute; inset: 0; z-index: 1; }
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.hero-slide.active { opacity: 1; }
.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.hero-overlay-dark {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(10,10,10,0.65) 0%, rgba(10,10,10,0.85) 100%);
  pointer-events: none;
}
.hero-overlay-red {
  position: absolute;
  inset: 0;
  z-index: 3;
  background: radial-gradient(ellipse at bottom right, rgba(227,6,19,0.30) 0%, transparent 60%);
  pointer-events: none;
}

.hero-content { position: relative; z-index: 4; width: 100%; padding: var(--space-12) 0; }

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--ades-red);
  margin-bottom: var(--space-6);
  padding-left: var(--space-8);
  position: relative;
}
.hero-eyebrow::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 32px;
  height: 1px;
  background-color: var(--ades-red);
  transform: translateY(-50%);
}

.hero-title {
  font-family: var(--font-serif);
  font-size: var(--fs-hero);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  color: var(--ades-white);
  max-width: 18ch;
  margin-bottom: var(--space-6);
}
.hero-title .accent { color: var(--ades-red); }

.hero-subtitle {
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: rgba(255, 255, 255, 0.85);
  max-width: 56ch;
  margin-bottom: var(--space-8);
}

.hero-actions { display: flex; gap: var(--space-4); flex-wrap: wrap; }

.hero-dots {
  position: absolute;
  bottom: var(--space-12);
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  gap: var(--space-3);
}
.hero-dot {
  width: 36px;
  height: 3px;
  background-color: rgba(255, 255, 255, 0.3);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all var(--transition-base);
}
.hero-dot:hover { background-color: rgba(255, 255, 255, 0.6); }
.hero-dot.active { background-color: var(--ades-red); width: 48px; }

.hero-signature {
  position: absolute;
  bottom: var(--space-5);
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  align-items: center;
  gap: var(--space-4);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}
.hero-signature .divider {
  width: 24px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.3);
}

/* === SECTION HEADER === */
.section-header { margin-bottom: var(--space-12); max-width: 720px; }
.section-header.center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.section-header.center .eyebrow { padding-left: var(--space-8); }
.section-title { margin-bottom: var(--space-5); }
.section-subtitle {
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
  color: var(--text-secondary);
}
.section-divider {
  width: 60px;
  height: 3px;
  background-color: var(--ades-red);
  margin-bottom: var(--space-6);
}
.section-header.center .section-divider { margin-left: auto; margin-right: auto; }

/* === GRIDS === */
.grid { display: grid; gap: var(--space-6); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-12);
  align-items: center;
}

/* === CARDS SOUVERAINETÉS === */
.sov-card {
  background-color: var(--ades-white);
  padding: var(--space-8) var(--space-6);
  border: 1px solid var(--border);
  position: relative;
  transition: all var(--transition-smooth);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.sov-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 0; height: 3px;
  background-color: var(--ades-red);
  transition: width var(--transition-smooth);
}
.sov-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: var(--border-strong);
}
.sov-card:hover::before { width: 100%; }
.sov-card-number {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-light);
  color: var(--ades-red);
  margin-bottom: var(--space-4);
  line-height: 1;
}
.sov-card-title {
  font-size: var(--fs-xl);
  margin-bottom: var(--space-4);
}
.sov-card-text {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  flex-grow: 1;
}

/* === POLE CARDS === */
.pole-group-title {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: var(--space-6);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--border);
}
.pole-card {
  display: flex;
  flex-direction: column;
  padding: var(--space-6);
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  transition: all var(--transition-smooth);
  height: 100%;
  position: relative;
  overflow: hidden;
}
.pole-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background-color: var(--ades-red);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform var(--transition-smooth);
}
.pole-card:hover {
  border-color: var(--border-strong);
  background-color: var(--bg-secondary);
}
.pole-card:hover::before { transform: scaleY(1); }
.pole-card-title {
  font-size: var(--fs-lg);
  font-family: var(--font-serif);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-3);
  line-height: var(--lh-snug);
}
.pole-card-desc {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
  margin-bottom: var(--space-4);
  flex-grow: 1;
}
.pole-card-link {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--ades-red);
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: auto;
}
.pole-card-link::after {
  content: '→';
  transition: transform var(--transition-base);
}
.pole-card:hover .pole-card-link::after { transform: translateX(4px); }

/* === APPROCHE === */
.approche-image {
  position: relative;
  background: linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);
  min-height: 400px;
}
.approche-image::before {
  content: '';
  position: absolute;
  top: -20px; left: -20px;
  width: 80px; height: 80px;
  border-top: 3px solid var(--ades-red);
  border-left: 3px solid var(--ades-red);
  z-index: 2;
}
.approche-image::after {
  content: '';
  position: absolute;
  bottom: -20px; right: -20px;
  width: 80px; height: 80px;
  border-bottom: 3px solid var(--ades-red);
  border-right: 3px solid var(--ades-red);
  z-index: 2;
}
.approche-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 1;
}
.approche-list { margin-top: var(--space-6); }
.approche-list li {
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  font-size: var(--fs-base);
  color: var(--text-primary);
}
.approche-list li:last-child { border-bottom: none; }
.approche-list li::before {
  content: '';
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background-color: var(--ades-red);
  margin-top: 8px;
}

/* === STATS === */
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.stat-item {
  padding: var(--space-8) var(--space-5);
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
}
.stat-item:last-child { border-right: none; }
.stat-number {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 5vw, var(--fs-5xl));
  font-weight: var(--fw-bold);
  color: var(--ades-white);
  line-height: 1;
  margin-bottom: var(--space-3);
  display: block;
}
.stat-number .plus { color: var(--ades-red); }
.stat-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

/* === GOUVERNANCE === */
.gov-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.gov-card {
  background-color: var(--ades-white);
  padding: var(--space-5);
  text-align: center;
  border: 1px solid var(--border);
  transition: all var(--transition-smooth);
}
.gov-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.gov-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  background-color: var(--ades-charcoal);
  margin-bottom: var(--space-4);
  position: relative;
  overflow: hidden;
}
.gov-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%) contrast(1.05) brightness(0.95);
  transition: filter var(--transition-smooth);
}
.gov-card:hover .gov-photo img { filter: grayscale(0%) contrast(1) brightness(1); }
.gov-name {
  font-family: var(--font-serif);
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-1);
  line-height: var(--lh-snug);
}
.gov-role {
  font-size: var(--fs-xs);
  color: var(--ades-red);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  font-weight: var(--fw-medium);
}

/* === CTA SECTION === */
.cta-section {
  background-color: var(--bg-dark);
  position: relative;
  overflow: hidden;
}
.cta-section::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(135deg, transparent 0%, rgba(227, 6, 19, 0.08) 100%);
}
.cta-content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: var(--space-12) 0;
}
.cta-title {
  font-size: clamp(2rem, 4vw, var(--fs-3xl));
  color: var(--ades-white);
  margin-bottom: var(--space-5);
  max-width: 24ch;
  margin-left: auto;
  margin-right: auto;
}
.cta-text {
  font-size: var(--fs-md);
  color: rgba(255, 255, 255, 0.8);
  max-width: 56ch;
  margin: 0 auto var(--space-8);
}

/* === FOOTER === */
.site-footer {
  background-color: var(--bg-charcoal);
  color: rgba(255, 255, 255, 0.7);
  padding-top: var(--space-12);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: var(--space-8);
  margin-bottom: var(--space-10);
}
.footer-brand-logo {
  display: inline-block;
  background-color: var(--ades-white);
  padding: 12px 16px;
  margin-bottom: var(--space-5);
}
.footer-brand-logo img { height: 48px; width: auto; }
.footer-brand-tagline {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.65);
  line-height: var(--lh-relaxed);
  max-width: 36ch;
  margin-bottom: var(--space-5);
}
.footer-signature {
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--ades-red);
  font-weight: var(--fw-semibold);
}
.footer-title {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--ades-white);
  margin-bottom: var(--space-5);
}
.footer-list li { margin-bottom: var(--space-3); font-size: var(--fs-sm); }
.footer-list a {
  color: rgba(255, 255, 255, 0.65);
  transition: color var(--transition-base);
}
.footer-list a:hover { color: var(--ades-red); }
.footer-contact-item {
  display: flex;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
}
.footer-contact-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.footer-contact-label {
  font-weight: var(--fw-bold);
  color: var(--ades-white);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}
.footer-contact-value { color: rgba(255, 255, 255, 0.7); }
.footer-bottom {
  padding: var(--space-6) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: var(--ls-wide);
}

/* === ANIMATIONS === */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 800ms cubic-bezier(0.4, 0, 0.2, 1), transform 800ms cubic-bezier(0.4, 0, 0.2, 1);
}
.fade-in.visible { opacity: 1; transform: translateY(0); }
.fade-in.delay-1 { transition-delay: 100ms; }
.fade-in.delay-2 { transition-delay: 200ms; }
.fade-in.delay-3 { transition-delay: 300ms; }
.fade-in.delay-4 { transition-delay: 400ms; }
.fade-in.delay-5 { transition-delay: 500ms; }

/* === UTILITAIRES === */
.text-center { text-align: center; }
.text-red { color: var(--ades-red); }
.text-white { color: var(--ades-white); }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--bg-tertiary); }
::-webkit-scrollbar-thumb { background: var(--ades-fog); }
::-webkit-scrollbar-thumb:hover { background: var(--ades-graphite); }
::selection { background-color: var(--ades-red); color: var(--ades-white); }

/* ============================================
   ============ V2 — PAGES INTERNES ============
   ============================================ */

/* === HERO SECONDAIRE (pages V2 et pôles) === */
.hero-secondary {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: center;
  background: linear-gradient(135deg, var(--ades-black) 0%, var(--ades-charcoal) 60%, #2a0a0d 100%);
  color: var(--text-inverse);
  overflow: hidden;
  padding-top: calc(var(--header-height) + var(--space-8));
  padding-bottom: var(--space-10);
}
.hero-secondary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at bottom right, rgba(227,6,19,0.20) 0%, transparent 60%);
  pointer-events: none;
}
.hero-secondary .container { position: relative; z-index: 2; }
.hero-secondary h1 {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 5vw, var(--fs-4xl));
  font-weight: var(--fw-bold);
  color: var(--ades-white);
  line-height: var(--lh-tight);
  margin-bottom: var(--space-4);
  max-width: 24ch;
}
.hero-secondary .lead {
  color: rgba(255, 255, 255, 0.85);
  max-width: 64ch;
}
.hero-secondary .eyebrow { color: var(--ades-red); }

/* === BREADCRUMB === */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  margin-bottom: var(--space-6);
}
.breadcrumb a {
  color: rgba(255, 255, 255, 0.7);
  transition: color var(--transition-base);
}
.breadcrumb a:hover { color: var(--ades-red); }
.breadcrumb-sep { color: rgba(255, 255, 255, 0.3); }
.breadcrumb span:last-child { color: var(--ades-white); font-weight: var(--fw-medium); }

/* === ENTITY CARDS (page À propos) === */
.entity-list { display: flex; flex-direction: column; gap: var(--space-3); }
.entity-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  border-left: 3px solid transparent;
  transition: all var(--transition-base);
  position: relative;
}
.entity-card:hover { border-left-color: var(--ades-red); background-color: var(--bg-secondary); }
.entity-card.current {
  border-left-color: var(--ades-red);
  background-color: var(--bg-secondary);
}
.entity-card-icon {
  width: 32px; height: 32px;
  stroke-width: 1.5;
  color: var(--ades-red);
  flex-shrink: 0;
}
.entity-card-content { flex-grow: 1; }
.entity-card-name {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-1);
}
.entity-card-desc {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  margin: 0;
}
.entity-card-badge {
  display: inline-block;
  background-color: var(--ades-red);
  color: var(--ades-white);
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  padding: 4px 10px;
  margin-top: var(--space-2);
}

/* === POSITION CARDS (À propos, section dark) === */
.position-card {
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  transition: all var(--transition-base);
}
.position-card:hover { background-color: rgba(255, 255, 255, 0.06); border-color: var(--ades-red); }
.position-card-icon {
  width: 32px; height: 32px;
  stroke-width: 1.5;
  color: var(--ades-red);
}
.position-card-text {
  font-size: var(--fs-base);
  color: rgba(255, 255, 255, 0.85);
  line-height: var(--lh-relaxed);
}

/* === MODÈLE GOUVERNANCE (3 cards) === */
.model-card {
  background-color: var(--ades-white);
  padding: var(--space-6);
  border: 1px solid var(--border);
  text-align: center;
  height: 100%;
}
.model-card-icon {
  width: 48px; height: 48px;
  stroke-width: 1.5;
  color: var(--ades-red);
  margin: 0 auto var(--space-4);
}
.model-card-title {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--space-3);
}
.model-card-desc {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}

/* === GOUVERNANCE DETAILED (page gouvernance) === */
.gov-detailed-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}
.gov-card-detailed {
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  transition: all var(--transition-smooth);
}
.gov-card-detailed:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
  border-color: var(--border-strong);
}
.gov-photo-large {
  width: 100%;
  aspect-ratio: 4 / 5;
  background-color: var(--ades-charcoal);
  overflow: hidden;
}
.gov-photo-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%) contrast(1.05) brightness(0.95);
  transition: filter var(--transition-smooth);
}
.gov-card-detailed:hover .gov-photo-large img { filter: grayscale(0%) contrast(1) brightness(1); }
.gov-info { padding: var(--space-5); flex-grow: 1; display: flex; flex-direction: column; }
.gov-info .gov-pole {
  font-size: var(--fs-xs);
  color: var(--ades-red);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  margin-bottom: var(--space-2);
}
.gov-info .gov-name {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-2);
  line-height: var(--lh-snug);
}
.gov-info .gov-title {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  font-style: italic;
  margin-bottom: var(--space-3);
}
.gov-info .gov-mini-bio {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
  margin-bottom: var(--space-4);
  flex-grow: 1;
}
.gov-info .btn-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--ades-red);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  align-self: flex-start;
}
.gov-info .btn-link::after {
  content: '→';
  transition: transform var(--transition-base);
}
.gov-info .btn-link:hover::after { transform: translateX(4px); }

/* === MODALES === */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  background-color: rgba(10, 10, 10, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  animation: fadeBackdrop 250ms ease;
}
.modal.active { display: flex; }
.modal-content {
  background-color: var(--ades-white);
  width: 100%;
  max-width: 720px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  animation: scaleIn 350ms cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}
.modal-close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  font-size: 20px;
  color: var(--text-primary);
  z-index: 2;
  transition: all var(--transition-base);
}
.modal-close:hover { background-color: var(--ades-red); color: var(--ades-white); border-color: var(--ades-red); }
.modal-header {
  display: flex;
  gap: var(--space-5);
  padding: var(--space-8) var(--space-6) var(--space-5);
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.modal-photo {
  width: 120px;
  height: 120px;
  background-color: var(--ades-charcoal);
  flex-shrink: 0;
  overflow: hidden;
}
.modal-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.modal-header-info { flex-grow: 1; }
.modal-pole {
  font-size: var(--fs-xs);
  color: var(--ades-red);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  font-weight: var(--fw-semibold);
  margin-bottom: var(--space-2);
}
.modal-name {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--space-2);
  line-height: var(--lh-snug);
}
.modal-title {
  font-size: var(--fs-base);
  color: var(--text-secondary);
  font-style: italic;
}
.modal-body { padding: var(--space-6); }
.modal-body h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--ades-red);
  margin-bottom: var(--space-3);
  margin-top: var(--space-5);
}
.modal-body h3:first-child { margin-top: 0; }
.modal-body p {
  font-size: var(--fs-base);
  line-height: var(--lh-relaxed);
  color: var(--text-secondary);
  margin-bottom: var(--space-4);
}
.modal-contacts { list-style: none; padding: 0; }
.modal-contacts li {
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--fs-sm);
}
.modal-contacts li:last-child { border-bottom: none; }
.modal-contacts strong {
  display: inline-block;
  min-width: 100px;
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}
.modal-contacts a { color: var(--ades-red); }
.modal-contacts a:hover { text-decoration: underline; }

/* === CONTACT CARDS === */
.contact-cards { display: flex; flex-direction: column; gap: var(--space-5); }
.contact-card {
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  border-left: 3px solid var(--ades-red);
  padding: var(--space-6);
  display: flex;
  gap: var(--space-4);
}
.contact-card-icon {
  width: 32px; height: 32px;
  stroke-width: 1.5;
  color: var(--ades-red);
  flex-shrink: 0;
}
.contact-card-content { flex-grow: 1; }
.contact-card-title {
  font-family: var(--font-serif);
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-2);
}
.contact-card-text {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
  margin: 0;
}
.contact-card-text a { color: var(--ades-red); }
.contact-card-text a:hover { text-decoration: underline; }
.contact-card-meta {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  font-style: italic;
  margin-top: var(--space-2);
}

/* === FORMULAIRE === */
.contact-form {
  background-color: var(--ades-white);
  padding: var(--space-8);
  border: 1px solid var(--border);
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.form-group { margin-bottom: var(--space-5); }
.form-label {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-primary);
  margin-bottom: var(--space-2);
}
.form-label-icon {
  width: 14px; height: 14px;
  stroke-width: 2;
  color: var(--text-muted);
}
.form-label .req { color: var(--ades-red); }
.form-input, .form-select, .form-textarea {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  color: var(--text-primary);
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  border-radius: 0;
  transition: all var(--transition-base);
  -webkit-appearance: none;
  appearance: none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  outline: none;
  border-color: var(--ades-red);
  box-shadow: 0 0 0 3px rgba(227, 6, 19, 0.1);
}
.form-textarea { resize: vertical; min-height: 140px; line-height: var(--lh-relaxed); }
.form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B6B6B' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-4) center;
  padding-right: var(--space-10);
  cursor: pointer;
}
.form-checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.form-checkbox input { margin-top: 4px; flex-shrink: 0; }
.form-success {
  display: none;
  padding: var(--space-4);
  background-color: #E8F5E9;
  border-left: 3px solid #2E7D32;
  color: #1B5E20;
  font-size: var(--fs-sm);
  margin-bottom: var(--space-5);
}
.form-success.active { display: block; }

/* === SECTION POLES CONNEXES === */
.related-poles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.related-pole {
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  transition: all var(--transition-base);
}
.related-pole:hover {
  border-color: var(--ades-red);
  background-color: var(--bg-secondary);
}
.related-pole-icon {
  width: 24px; height: 24px;
  stroke-width: 1.5;
  color: var(--ades-red);
}
.related-pole-name {
  font-family: var(--font-serif);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  line-height: var(--lh-snug);
}

/* === DOMAINES INTERVENTION (pages pôles) === */
.domain-card {
  background-color: var(--ades-white);
  padding: var(--space-6);
  border: 1px solid var(--border);
  border-top: 3px solid var(--ades-red);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.domain-card-icon {
  width: 36px; height: 36px;
  stroke-width: 1.5;
  color: var(--ades-red);
  margin-bottom: var(--space-4);
}
.domain-card-title {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-3);
  line-height: var(--lh-snug);
}
.domain-card-list { list-style: none; padding: 0; }
.domain-card-list li {
  padding: var(--space-2) 0;
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  line-height: var(--lh-relaxed);
}
.domain-card-list li::before {
  content: '';
  flex-shrink: 0;
  width: 5px;
  height: 5px;
  background-color: var(--ades-red);
  margin-top: 9px;
}

/* === CHEF DE POLE BLOC === */
.chef-pole-block {
  background-color: var(--bg-secondary);
  padding: var(--space-8);
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: var(--space-6);
  align-items: center;
}
.chef-pole-photo {
  width: 200px;
  height: 200px;
  background-color: var(--ades-charcoal);
  overflow: hidden;
}
.chef-pole-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
}
.chef-pole-info .eyebrow { padding-left: 0; }
.chef-pole-info .eyebrow::before { display: none; }
.chef-pole-name {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-semibold);
  margin: var(--space-2) 0 var(--space-2);
}
.chef-pole-title {
  font-size: var(--fs-base);
  color: var(--ades-red);
  font-weight: var(--fw-medium);
  margin-bottom: var(--space-3);
}
.chef-pole-bio {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}

/* === ENGAGEMENT/AMBITION === */
.ambition-block {
  background-color: var(--bg-dark);
  color: var(--text-inverse);
  padding: var(--space-12);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.ambition-block::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 50%; height: 100%;
  background: linear-gradient(135deg, transparent 0%, rgba(227, 6, 19, 0.10) 100%);
}
.ambition-block-content { position: relative; z-index: 2; max-width: 720px; margin: 0 auto; }
.ambition-block h2 {
  color: var(--ades-white);
  font-size: clamp(1.5rem, 3vw, var(--fs-2xl));
  margin-bottom: var(--space-5);
}
.ambition-block p {
  color: rgba(255, 255, 255, 0.85);
  font-size: var(--fs-md);
  line-height: var(--lh-relaxed);
}

/* === RESPONSIVE V2 === */
@media (max-width: 1024px) {
  .gov-detailed-grid { grid-template-columns: repeat(2, 1fr); }
  .related-poles { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .hero-secondary { min-height: 40vh; padding-top: calc(var(--header-height-mobile) + var(--space-6)); }
  .modal-content { max-height: 95vh; }
  .modal-header { flex-direction: column; padding: var(--space-6) var(--space-5) var(--space-4); }
  .modal-photo { width: 80px; height: 80px; }
  .modal-body { padding: var(--space-5); }
  .gov-detailed-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .contact-form { padding: var(--space-5); }
  .related-poles { grid-template-columns: 1fr; }
  .chef-pole-block { grid-template-columns: 1fr; text-align: center; }
  .chef-pole-photo { margin: 0 auto; }
  .ambition-block { padding: var(--space-8) var(--space-5); }
  .breadcrumb { flex-wrap: wrap; }
}

/* ============================================
   ============ V3 — PARALLAX + BREADCRUMBS RICHES =====
   ============================================ */

/* === PARALLAX BACKGROUND === */
.parallax-bg {
  background-color: var(--ades-black);
  background-image:
    linear-gradient(135deg, rgba(10,10,10,0.90) 0%, rgba(31,31,31,0.78) 60%, rgba(42,10,13,0.92) 100%),
    var(--bg-image, none);
  background-size: cover, cover;
  background-position: center, center;
  background-attachment: fixed, fixed;
  background-repeat: no-repeat, no-repeat;
}
.parallax-bg.no-overlay {
  background-image: var(--bg-image, none);
}
/* Fallback mobile : iOS ne gère pas bien fixed */
@media (hover: none) and (pointer: coarse), (max-width: 768px) {
  .parallax-bg {
    background-attachment: scroll, scroll;
  }
}

/* === WATERMARK ICON DANS HERO === */
.hero-secondary { overflow: hidden; }
.hero-mark {
  position: absolute;
  right: -100px;
  bottom: -100px;
  width: 520px;
  height: 520px;
  opacity: 0.045;
  pointer-events: none;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-mark svg {
  width: 100% !important;
  height: 100% !important;
  stroke-width: 0.5 !important;
  color: var(--ades-white);
}
@media (max-width: 768px) {
  .hero-mark {
    width: 320px;
    height: 320px;
    right: -60px;
    bottom: -60px;
    opacity: 0.06;
  }
}

/* === BREADCRUMB RICHE === */
.breadcrumb-rich {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  margin-bottom: var(--space-6);
  color: rgba(255, 255, 255, 0.55);
}
.breadcrumb-rich a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.75);
  transition: all var(--transition-base);
  padding: 4px 0;
  position: relative;
}
.breadcrumb-rich a:hover { color: var(--ades-red); }
.breadcrumb-rich a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background-color: var(--ades-red);
  transition: width var(--transition-base);
}
.breadcrumb-rich a:hover::after { width: 100%; }
.breadcrumb-rich .breadcrumb-sep {
  color: rgba(255, 255, 255, 0.25);
  font-size: 14px;
}
.breadcrumb-rich .breadcrumb-current {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ades-white);
  font-weight: var(--fw-semibold);
  padding: 4px 10px;
  background-color: rgba(227, 6, 19, 0.18);
  border-left: 2px solid var(--ades-red);
}
.breadcrumb-rich .breadcrumb-icon {
  width: 13px;
  height: 13px;
  stroke-width: 2;
}

/* === AMBITION PARALLAX === */
.ambition-block.parallax-bg {
  background-color: var(--ades-black);
  background-image:
    linear-gradient(135deg, rgba(10,10,10,0.92) 0%, rgba(31,31,31,0.82) 60%, rgba(42,10,13,0.92) 100%),
    var(--bg-image, none);
}
.ambition-block.parallax-bg::before {
  display: none; /* on retire le gradient rouge décoratif quand il y a une image */
}

/* === NAV PRECEDENT/SUIVANT POLE === */
.pole-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border);
}
.pole-nav-link {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-4) var(--space-5);
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  transition: all var(--transition-base);
  text-decoration: none;
}
.pole-nav-link:hover { border-color: var(--ades-red); background-color: var(--ades-white); }
.pole-nav-link.next { text-align: right; }
.pole-nav-direction {
  font-size: 11px;
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: var(--fw-semibold);
  display: flex;
  align-items: center;
  gap: 6px;
}
.pole-nav-link.next .pole-nav-direction { justify-content: flex-end; }
.pole-nav-name {
  font-family: var(--font-serif);
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  line-height: var(--lh-snug);
}
@media (max-width: 768px) {
  .pole-nav { grid-template-columns: 1fr; }
}

/* ============================================
   ============ V4 — FIX MENU MOBILE + UX =====
   ============================================ */

/* Indicateur de page courante (.active sur lien correspondant) */
.nav-link.active {
  color: var(--ades-red);
  font-weight: var(--fw-semibold);
}
.nav-link.active::after { width: 100% !important; }


/* ============================================
   ============ V5 — IMAGES BG (chemins CSS) =====
   ============================================ */
/* Note importante : ces URLs sont relatives à style.css (assets/css/),
   donc on remonte d'un niveau avec ../img/...
   Si on les avait laissés inline en HTML avec var(--bg-image), le browser
   les résoudrait relativement au CSS quand même → bug doublé "assets/css/assets/..." */

/* Heros de pages */
.bg-hero-about        { --bg-image: url('../img/heroes/about.jpg'); }
.bg-hero-governance   { --bg-image: url('../img/heroes/governance.jpg'); }
.bg-hero-contact      { --bg-image: url('../img/heroes/contact.jpg'); }

/* Heros de pôles */
.bg-hero-pole-defense                    { --bg-image: url('../img/heroes/pole-defense.jpg'); }
.bg-hero-pole-gendarmerie                { --bg-image: url('../img/heroes/pole-gendarmerie.jpg'); }
.bg-hero-pole-police                     { --bg-image: url('../img/heroes/pole-police.jpg'); }
.bg-hero-pole-administrations-assimilees { --bg-image: url('../img/heroes/pole-administrations-assimilees.jpg'); }
.bg-hero-pole-administrations-publiques  { --bg-image: url('../img/heroes/pole-administrations-publiques.jpg'); }
.bg-hero-pole-institutions-strategiques  { --bg-image: url('../img/heroes/pole-institutions-strategiques.jpg'); }
.bg-hero-pole-securite-privee            { --bg-image: url('../img/heroes/pole-securite-privee.jpg'); }
.bg-hero-pole-capital-humain             { --bg-image: url('../img/heroes/pole-capital-humain.jpg'); }
.bg-hero-pole-ingenierie-strategique     { --bg-image: url('../img/heroes/pole-ingenierie-strategique.jpg'); }
.bg-hero-pole-partenariats-internationaux{ --bg-image: url('../img/heroes/pole-partenariats-internationaux.jpg'); }

/* Sections parallax générales */
.bg-parallax-stats          { --bg-image: url('../img/parallax/stats.jpg'); }
.bg-parallax-positionnement { --bg-image: url('../img/parallax/positionnement.jpg'); }
.bg-parallax-plateforme     { --bg-image: url('../img/parallax/plateforme.jpg'); }

/* Sections "ambition" des pôles */
.bg-ambition-defense                    { --bg-image: url('../img/parallax/ambition-defense.jpg'); }
.bg-ambition-gendarmerie                { --bg-image: url('../img/parallax/ambition-gendarmerie.jpg'); }
.bg-ambition-police                     { --bg-image: url('../img/parallax/ambition-police.jpg'); }
.bg-ambition-administrations-assimilees { --bg-image: url('../img/parallax/ambition-administrations-assimilees.jpg'); }
.bg-ambition-administrations-publiques  { --bg-image: url('../img/parallax/ambition-administrations-publiques.jpg'); }
.bg-ambition-institutions-strategiques  { --bg-image: url('../img/parallax/ambition-institutions-strategiques.jpg'); }
.bg-ambition-securite-privee            { --bg-image: url('../img/parallax/ambition-securite-privee.jpg'); }
.bg-ambition-capital-humain             { --bg-image: url('../img/parallax/ambition-capital-humain.jpg'); }
.bg-ambition-ingenierie-strategique     { --bg-image: url('../img/parallax/ambition-ingenierie-strategique.jpg'); }
.bg-ambition-partenariats-internationaux{ --bg-image: url('../img/parallax/ambition-partenariats-internationaux.jpg'); }


/* ============================================
   ============ V5 — MEGA MENU REFACTORED =====
   ============================================ */

/* Note : on garde la classe .mega-menu existante (animation hover/open)
   et on remplace seulement la mise en page intérieure. */

/* === LARGEUR DU MEGA-MENU (desktop) === */
.mega-menu {
  /* surcharge la largeur de l'ancien CSS pour accueillir 4 colonnes confortables */
  width: min(1080px, calc(100vw - 32px));
  padding: 0;
  background:
    radial-gradient(ellipse at top right, rgba(227, 6, 19, 0.05) 0%, transparent 60%),
    linear-gradient(135deg, #FFFFFF 0%, #FAFAF8 100%);
}

/* === SECTION (groupe de pôles) === */
.mega-menu-section {
  padding: var(--space-5) var(--space-6);
}
.mega-menu-section + .mega-menu-section,
.mega-menu-row {
  border-top: 1px solid var(--border);
}

/* === TÊTE DE SECTION === */
.mega-menu-section-head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-4);
  border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
}
.mega-menu-section-icon {
  width: 28px;
  height: 28px;
  background-color: var(--ades-red);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mega-menu-section-icon svg {
  width: 16px !important;
  height: 16px !important;
  color: white;
  stroke-width: 2;
}
.mega-menu-section-title {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0;
  flex-grow: 1;
}
.mega-menu-section-count {
  font-size: 11px;
  color: var(--text-muted);
  font-style: italic;
  font-weight: var(--fw-regular);
}

/* === LIGNE FLEX (Capital Humain + Transversaux côte à côte) === */
.mega-menu-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.mega-menu-row > .mega-menu-section + .mega-menu-section {
  border-top: none;
  border-left: 1px solid var(--border);
}

/* === GRILLE D'ITEMS === */
.mega-menu-items {
  display: grid;
  gap: var(--space-2);
}
.mega-menu-items-4col { grid-template-columns: repeat(4, 1fr); }
.mega-menu-items-2col { grid-template-columns: repeat(2, 1fr); }
.mega-menu-items-1col { grid-template-columns: 1fr; }

/* === ITEM (carte par pôle) === */
.mega-menu-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--space-3) var(--space-3);
  background-color: var(--ades-white);
  border: 1px solid var(--border);
  border-left: 2px solid transparent;
  text-decoration: none;
  transition: all var(--transition-base);
  position: relative;
  min-height: 70px;
}
.mega-menu-item:hover {
  border-color: rgba(227, 6, 19, 0.3);
  border-left-color: var(--ades-red);
  background-color: var(--bg-secondary);
  transform: translateY(-1px);
}
.mega-menu-item.active {
  border-left-color: var(--ades-red);
  background-color: rgba(227, 6, 19, 0.04);
}

/* Icône du pôle */
.mega-menu-item-icon {
  width: 18px !important;
  height: 18px !important;
  color: var(--ades-red);
  stroke-width: 2;
  margin-bottom: 2px;
}

/* Nom du pôle (lecture rapide) */
.mega-menu-item-name {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
}
.mega-menu-item:hover .mega-menu-item-name { color: var(--ades-red); }

/* Description (sous-titre) */
.mega-menu-item-desc {
  font-size: 11px;
  color: var(--text-muted);
  font-weight: var(--fw-regular);
  line-height: 1.4;
}

/* Case vide pour aligner la grille à 4 colonnes (7 items + 1 placeholder) */
.mega-menu-item-empty {
  background-color: transparent;
  border: 1px dashed rgba(0, 0, 0, 0.05);
  min-height: 70px;
}
