/* ===== TOKENS ===== */
:root{
  --gold:#C9A84C; --glt:#E8C97A; --gdk:#8B6914;
  --or:#E8661A;   --ork:#B84D10;
  --nv:#07111F;   --nv2:#0D1A2D; --nv3:#132235;
  --tx:#F0EBE0;   --tx2:#A8B4C8; --tx3:#C8C0AF;
  --bd:rgba(201,168,76,.2); --bd2:rgba(201,168,76,.45);
  --H_BK:54px; --H_BK_TOTAL:108px; --H_NV:62px;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Montserrat',sans-serif; background:var(--nv); color:var(--tx); overflow-x:hidden; }
img  { display:block; max-width:100%; }
a    { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:inherit; border:none; background:none; }
/* bilingual — full system defined below at line ~1140 */

/* ===== PROJECTS TICKER ===== */

.tk { position:relative; overflow:hidden; }
.tk::before, .tk::after {
  content:''; position:absolute; top:0; bottom:0; width:80px; z-index:2; pointer-events:none;
}
.tk::before { left:0; background:linear-gradient(90deg,#020A16,transparent); }
.tk::after  { right:0; background:linear-gradient(270deg,#020A16,transparent); }



@keyframes blink { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.12; transform:scale(.65); } }



















/* ===== NAV ===== */
.nav {
  position: fixed;
  top: var(--H_BK_TOTAL);
  left: 0; right: 0;
  z-index: 300;
  height: 68px;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  padding: 0 3.2%;
  gap: 1.75rem;
  background: linear-gradient(180deg, rgba(6,13,26,.98) 0%, rgba(5,11,22,.96) 100%);
  backdrop-filter: blur(28px) saturate(1.7);
  -webkit-backdrop-filter: blur(28px) saturate(1.7);
  border-bottom: 1px solid rgba(201,168,76,.22);
  box-shadow: 0 1px 0 rgba(201,168,76,.06) inset, 0 8px 32px rgba(0,0,0,.35);
  transition: border-color .35s, box-shadow .35s, height .3s;
}
.nav::after {
  content: ''; position: absolute;
  left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,168,76,.45) 25%, rgba(232,102,26,.45) 50%, rgba(201,168,76,.45) 75%, transparent 100%);
  opacity: .7; pointer-events: none;
}
.nav.scrolled {
  height: 60px;
  border-bottom-color: rgba(232,102,26,.35);
  box-shadow: 0 4px 48px rgba(0,0,0,.7);
}

/* Brand — left, no shrink */
.nav-brand {
  display: flex;
  align-items: center;
  gap: .9rem;
  flex-shrink: 0;
  text-decoration: none;
  padding-right: 1.25rem;
  border-right: 1px solid rgba(201,168,76,.15);
}
.nav-logo {
  height: 36px; width: 36px;
  object-fit: contain;
  filter: drop-shadow(0 2px 10px rgba(232,102,26,.55));
  flex-shrink: 0;
  transition: filter .3s, transform .3s;
}
.nav-brand:hover .nav-logo {
  filter: drop-shadow(0 3px 14px rgba(232,102,26,.8));
  transform: scale(1.05);
}
.nav-nm {
  font-size: .78rem; font-weight: 700;
  letter-spacing: .11em; text-transform: uppercase;
  color: var(--tx); line-height: 1.15; white-space: nowrap;
}
.nav-nm em {
  font-style: normal;
  background: linear-gradient(135deg, #e8661a 0%, #f59e0b 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.nav-sub {
  font-size: .42rem; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); margin-top: 3px; white-space: nowrap;
  opacity: .78;
}

/* nav-row — single flex row containing links + lang + cta */
.nav-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  gap: 1.1rem;
  justify-content: flex-end;
}

/* Links */
.nav-links {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0; padding: 0;
  height: 68px;
  flex-shrink: 1;
  min-width: 0;
  gap: 0;
}
.nav-links li {
  height: 100%;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.nl {
  display: flex; align-items: center;
  height: 100%; padding: 0 .9rem;
  font-size: .62rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--tx2); white-space: nowrap;
  position: relative;
  transition: color .28s cubic-bezier(.4,0,.2,1);
  text-decoration: none;
}
.nl::before {
  content: ''; position: absolute;
  top: 50%; left: 50%;
  width: 4px; height: 4px;
  background: var(--gold); border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  transition: transform .35s cubic-bezier(.4,0,.2,1), opacity .25s;
}
.nl::after {
  content: ''; position: absolute;
  bottom: 16px; left: 50%;
  width: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 20%, var(--or) 50%, var(--gold) 80%, transparent 100%);
  transform: translateX(-50%);
  transition: width .45s cubic-bezier(.4,0,.2,1);
}
.nl:hover { color: var(--gold); }
.nl:hover::after, .nl.on::after { width: 75%; }
.nl:hover::before { transform: translate(-50%, calc(-50% - 14px)) scale(1); opacity: .9; }
.nl.on { color: var(--gold); }
.nsep {
  width: 1px; height: 14px;
  background: linear-gradient(180deg, transparent 0%, rgba(201,168,76,.28) 50%, transparent 100%);
  flex-shrink: 0;
}

/* Lang switcher — Premium pill */
.nav-lang {
  display: flex; align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid rgba(201,168,76,.35);
  border-radius: 2px;
  flex-shrink: 0;
  min-width: fit-content;
  background: linear-gradient(180deg, rgba(201,168,76,.04) 0%, rgba(201,168,76,.09) 100%);
  box-shadow: 0 0 0 1px rgba(201,168,76,.04) inset;
}
.nlb {
  font-size: .62rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--tx2); background: rgba(255,255,255,.02); border: 1px solid transparent;
  padding: .42rem .65rem; cursor: pointer;
  transition: all .28s cubic-bezier(.4,0,.2,1);
  font-family: 'Montserrat', sans-serif;
  flex-shrink: 0;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  min-width: 2.6rem;
  box-sizing: border-box;
  position: relative;
  border-radius: 2px;
}
/* Each button gets its own color border for easy identification */
#nlFR { border-color: rgba(100,160,255,.35); }
#nlEN { border-color: rgba(255,255,255,.18); }
#nlHU { border-color: rgba(210,80,80,.4); }

.nlb.on {
  background: linear-gradient(135deg, rgba(232,102,26,.22) 0%, rgba(201,168,76,.32) 100%);
  color: var(--gold);
  text-shadow: 0 0 14px rgba(201,168,76,.45);
  border-color: var(--gold) !important;
  box-shadow: 0 0 12px rgba(201,168,76,.3);
}
.nlb:hover:not(.on) {
  color: var(--tx);
  background: rgba(255,255,255,.06);
}
.nld { display: none; } /* Plus besoin des séparateurs, les bordures suffisent */

/* CTA — Luxury with glow */
.nav-cta {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .6rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: #fff;
  background: linear-gradient(135deg, #e8661a 0%, #d85610 100%);
  padding: .62rem 1.25rem;
  white-space: nowrap;
  flex-shrink: 0; text-decoration: none;
  border-radius: 2px;
  box-shadow: 0 4px 16px rgba(232,102,26,.32), 0 0 0 1px rgba(245,158,11,.25) inset;
  transition: all .32s cubic-bezier(.4,0,.2,1);
  position: relative;
  overflow: hidden;
}
.nav-cta::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f59e0b 0%, #e8661a 100%);
  opacity: 0;
  transition: opacity .32s;
  z-index: 0;
}
.nav-cta > * { position: relative; z-index: 1; }
.nav-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(232,102,26,.5), 0 0 0 1px rgba(245,158,11,.45) inset;
}
.nav-cta:hover::before { opacity: 1; }
.nav-cta svg { flex-shrink: 0; transition: transform .32s; }
.nav-cta:hover svg { transform: translateX(3px); }

/* Responsive */
@media (max-width: 1280px) {
  .nav-links li:nth-child(n+7) { display: none; } /* Hide overflow links on smaller screens */
}
@media (max-width: 1100px) { .nav-links, .nsep { display: none; } }
@media (max-width: 640px)  { .nav-nm, .nav-sub { display: none; } }

/* ===== HERO ===== */
.hero {
  min-height:100vh;
  padding-top: calc(var(--H_BK_TOTAL) + var(--H_NV) + 1.5rem);
  padding-left:8%; padding-right:8%; padding-bottom:5rem;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; overflow:hidden;
}
/* ═══════════════════════════════════════════════════════
   HERO PRINCIPAL - LUMINEUX ET PERCUTANT
═══════════════════════════════════════════════════════ */
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img {
  width:100%; height:100%;
  object-fit:cover; object-position:center 40%;
  opacity:.35;
  filter:grayscale(3%) brightness(.75) saturate(1.1) contrast(1.05);
}
.hero-bg-ov {
  position:absolute; inset:0;
  background:
    linear-gradient(120deg, rgba(7,17,31,.92) 0%, rgba(7,17,31,.65) 55%, rgba(13,26,45,.85) 100%),
    radial-gradient(ellipse 50% 60% at 30% 40%, rgba(232,102,26,.08), transparent 70%);
}
.hero-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(201,168,76,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,.04) 1px, transparent 1px);
  background-size: 72px 72px;
}

/* Halo orange/doré en haut à droite - plus lumineux */
.hero-glow {
  position:absolute;
  top:-15%; right:-8%;
  width:55vw; height:55vw;
  border-radius:50%;
  background: radial-gradient(circle,
    rgba(232,102,26,.1) 0%,
    rgba(201,168,76,.05) 35%,
    transparent 70%);
  pointer-events:none;
  opacity: 0;
  animation: heroGlowFadeIn 1.2s ease-out .3s forwards, heroGlowPulse 8s ease-in-out 1.5s infinite;
}
@keyframes heroGlowFadeIn {
  from { opacity: 0; }
  to   { opacity: .7; }
}
@keyframes heroGlowPulse {
  0%, 100% { opacity: .7; transform: scale(1); }
  50%      { opacity: .95; transform: scale(1.05); }
}

/* Halo doré en bas à gauche - nouveau */
.hero-glow::after {
  content: '';
  position: absolute;
  bottom: -80%; left: -30%;
  width: 60vw; height: 60vw;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(201,168,76,.06) 0%,
    transparent 65%);
  pointer-events: none;
}

#pc { position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.9; }
.hero-inner { position:relative; z-index:2; }

/* Eyebrow (logo + nom) */
.hero-ey {
  display:flex; align-items:center; gap:1rem;
  margin-bottom:1.8rem;
  animation:fup .7s .15s both;
}
.hero-ey-logo {
  height:56px; width:56px;
  object-fit:contain;
  filter: drop-shadow(0 4px 22px rgba(232,102,26,.7)) drop-shadow(0 0 12px rgba(232,102,26,.4));
  flex-shrink:0;
}
.hero-ey-vr {
  width:1px; height:42px;
  background: linear-gradient(to bottom, transparent, var(--gold), transparent);
}
.hero-ey-nm {
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  line-height:1.15;
  color: #F5F0E4;
  text-shadow: 0 2px 10px rgba(0,0,0,.5);
}
.hero-ey-nm em {
  font-style:normal;
  color: var(--or);
  text-shadow: 0 0 16px rgba(232,102,26,.5);
}
.hero-ey-tag {
  font-size:.52rem;
  font-weight:500;
  letter-spacing:.26em;
  text-transform:uppercase;
  color: rgba(201,168,76,.85);
  margin-top:3px;
}

/* Label "Projets Industriels..." */
.hero-lbl {
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.32em;
  text-transform:uppercase;
  color: var(--or);
  margin-bottom:1.3rem;
  display:flex; align-items:center;
  gap:.9rem;
  animation:fup .7s .3s both;
  text-shadow: 0 0 20px rgba(232,102,26,.5);
}
.hero-lbl::before {
  content:'';
  width:36px; height:1px;
  background: linear-gradient(to right, transparent, var(--or));
  box-shadow: 0 0 8px rgba(232,102,26,.5);
}

/* Titre H1 - PLUS GROS, avec "Ambition" en dégradé doré éclatant */
.hero h1 {
  font-family:'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(3.2rem, 7vw, 7.5rem);
  font-weight: 400;
  line-height:1.04;
  letter-spacing:-.015em;
  max-width:900px;
  margin-bottom:.8rem;
  color: #FFFFFF;
  text-shadow:
    0 4px 20px rgba(0,0,0,.6),
    0 0 40px rgba(7,17,31,.8);
  animation:fup .7s .45s both;
}
.hero h1 em {
  font-style:italic;
  font-weight: 500;
  background: linear-gradient(135deg,
    #FFE9A0 0%,
    #F5D97A 25%,
    #E8C15F 50%,
    #D4AE5A 75%,
    #F5D97A 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter:
    drop-shadow(0 4px 16px rgba(245,217,122,.4))
    drop-shadow(0 0 24px rgba(232,193,95,.3));
}
.hero h1 .bl { display:block; }

/* Sous-titre - plus clair et lisible */
.hero-sub {
  font-family:'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1rem, 1.9vw, 1.4rem);
  font-weight: 300;
  font-style: italic;
  color: rgba(240,235,224,.92);
  line-height: 1.75;
  letter-spacing: .02em;
  max-width: 620px;
  margin-bottom: 2.5rem;
  animation: fup .7s .6s both;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}

/* Ponts - plus élégants et lumineux */
.hero-bridges {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:2.8rem;
  animation: fup .7s .75s both;
  gap: .4rem;
}
.bn {
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color: rgba(245,217,122,.9);
  padding:.42rem .95rem;
  border:1px solid rgba(201,168,76,.25);
  background: rgba(13,26,45,.4);
  backdrop-filter: blur(6px);
  border-radius: 2px;
  transition: all .3s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.bn:hover {
  color: #F5D97A;
  border-color: rgba(245,217,122,.6);
  background: rgba(245,217,122,.08);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,.3), 0 0 18px rgba(245,217,122,.25);
}
.bdash {
  font-size:.5rem;
  color: rgba(201,168,76,.4);
  padding: 0 .35rem;
}

/* CTAs - bouton orange plus premium */
.hero-ctas {
  display:flex;
  gap:1.2rem;
  align-items:center;
  margin-bottom:3rem;
  animation: fup .7s .9s both;
}
.btn-p {
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#fff;
  background: linear-gradient(135deg, #E8661A 0%, #D15500 50%, #E8661A 100%);
  padding: 1.05rem 2.4rem;
  transition: all .3s ease;
  border-radius: 2px;
  position: relative;
  box-shadow:
    0 6px 20px rgba(232,102,26,.4),
    inset 0 1px 0 rgba(255,255,255,.15);
  overflow: hidden;
}
.btn-p::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,.25) 50%,
    transparent 100%);
  transition: left .6s ease;
}
.btn-p:hover {
  background: linear-gradient(135deg, #F5772D 0%, #E8661A 50%, #F5772D 100%);
  transform: translateY(-3px);
  box-shadow:
    0 10px 28px rgba(232,102,26,.55),
    0 0 24px rgba(232,102,26,.35),
    inset 0 1px 0 rgba(255,255,255,.2);
}
.btn-p:hover::before { left: 100%; }
.btn-p svg { flex-shrink:0; }

.btn-g {
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: rgba(245,217,122,.85);
  border-bottom: 1px solid rgba(245,217,122,.3);
  padding-bottom: 3px;
  transition: all .3s ease;
}
.btn-g:hover {
  color: #F5D97A;
  border-color: #F5D97A;
  text-shadow: 0 0 12px rgba(245,217,122,.5);
}

/* KPI du bas - plus gros et lumineux */
.hero-kpis {
  display:flex;
  gap: 3rem;
  padding-top: 2.2rem;
  border-top: 1px solid rgba(201,168,76,.2);
  animation: fup .7s 1.05s both;
  position: relative;
}
.hero-kpis::before {
  content: '';
  position: absolute;
  top: -1px; left: 0;
  width: 120px; height: 1px;
  background: linear-gradient(to right, var(--or), transparent);
  box-shadow: 0 0 8px rgba(232,102,26,.4);
}
.kv {
  font-family:'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1;
  background: linear-gradient(135deg, #F5D97A 0%, #E8C15F 50%, #F5D97A 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 10px rgba(245,217,122,.3));
}
.kl {
  font-size:.56rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color: rgba(245,217,122,.7);
  margin-top:5px;
}

/* ═══════════════════════════════════════════════════════
   Scroll indicator — Luxe premium (centré en bas)
═══════════════════════════════════════════════════════ */
.hero-scr {
  position: absolute;
  bottom: 1.8rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .55rem;
  padding: .3rem .2rem;
  text-decoration: none;
  cursor: pointer;
  transition: transform .3s cubic-bezier(.4,0,.2,1), opacity .3s;
  opacity: .85;
}
.hero-scr:hover {
  opacity: 1;
  transform: translateX(-50%) translateY(-3px);
}
.hero-scr-txt {
  font-family: 'Montserrat', sans-serif;
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  text-shadow: 0 0 12px rgba(201,168,76,.35);
  transition: color .3s, text-shadow .3s;
}
.hero-scr:hover .hero-scr-txt {
  color: #f5d97a;
  text-shadow: 0 0 18px rgba(245,217,122,.6);
}
.hero-scr-line {
  display: block;
  width: 1px;
  height: 34px;
  background: linear-gradient(to bottom, rgba(201,168,76,.1) 0%, var(--gold) 50%, var(--or) 100%);
  box-shadow: 0 0 8px rgba(201,168,76,.5);
  position: relative;
  overflow: hidden;
}
.hero-scr-line::after {
  content: '';
  position: absolute;
  top: -100%;
  left: -1px;
  width: 3px;
  height: 14px;
  background: linear-gradient(to bottom, transparent, #fff, transparent);
  box-shadow: 0 0 8px #fff, 0 0 14px var(--or);
  animation: scrBeam 2.2s cubic-bezier(.5,0,.5,1) infinite;
}
@keyframes scrBeam {
  0%   { top: -100%; opacity: 0; }
  10%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { top: 110%; opacity: 0; }
}
.hero-scr-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(201,168,76,.4);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,.12) 0%, rgba(232,102,26,.06) 70%, transparent 100%);
  color: var(--gold);
  transition: all .35s cubic-bezier(.4,0,.2,1);
  animation: scrFloat 2.8s ease-in-out infinite;
  box-shadow: 0 0 0 0 rgba(201,168,76,.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
@keyframes scrFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(4px); }
}
.hero-scr:hover .hero-scr-arrow {
  border-color: var(--or);
  color: var(--or);
  box-shadow: 0 0 0 4px rgba(232,102,26,.12), 0 0 20px rgba(232,102,26,.3);
  transform: scale(1.08);
  animation-play-state: paused;
}
.hero-scr:hover .hero-scr-arrow svg {
  transform: translateY(2px);
}
.hero-scr-arrow svg {
  transition: transform .3s;
}

/* Masquer sur très petits écrans (pour laisser la place aux KPI) */
@media (max-height: 640px) {
  .hero-scr { display: none; }
}

@keyframes fup { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }

/* ===== CLOCKS ===== */
.clocks { background:var(--nv); padding:5rem 8%; border-bottom:1px solid var(--bd); }
.clocks-hdr { display:flex; justify-content:space-between; align-items:center; margin-bottom:2.8rem; }
.clocks-g { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.ck { display:flex; flex-direction:column; align-items:center; padding:2rem 1.2rem 1.8rem; background:linear-gradient(160deg,#0D1A2D 0%,#07111F 100%); border:1px solid var(--bd); position:relative; overflow:hidden; transition:border-color .35s,transform .3s; }
.ck::after { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); opacity:0; transition:opacity .35s; }
.ck:hover { border-color:var(--bd2); transform:translateY(-5px); }
.ck:hover::after { opacity:1; }
.ck-fl { display:flex; align-items:center; justify-content:center; margin-bottom:.75rem; font-size:1.7rem; }
.ck-wr { position:relative; width:116px; height:116px; margin-bottom:1.1rem; }
.ck-bz { position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg,#120f04 0%,#c9a84c 7%,#f5e49c 13%,#c9a84c 20%,#2e2204 33%,#c9a84c 48%,#f5e49c 55%,#c9a84c 62%,#120f04 75%,#c9a84c 84%,#f5e49c 90%,#c9a84c 96%,#120f04 100%); box-shadow:0 0 0 2px rgba(201,168,76,.2),0 6px 28px rgba(0,0,0,.75); }
.ck-fc { position:absolute; inset:6px; border-radius:50%; background:radial-gradient(circle at 36% 32%,#1a2438 0%,#07111F 55%,#030C17 100%); overflow:hidden; }
.ck-fc::before { content:''; position:absolute; inset:0; border-radius:50%; background:repeating-conic-gradient(rgba(201,168,76,.55) 0deg 1.5deg,transparent 1.5deg 30deg); mask:radial-gradient(circle,transparent 81%,black 82%); -webkit-mask:radial-gradient(circle,transparent 81%,black 82%); }
.ck-fc::after { content:''; position:absolute; inset:0; border-radius:50%; background:repeating-conic-gradient(rgba(201,168,76,.2) 0deg .5deg,transparent .5deg 6deg); mask:radial-gradient(circle,transparent 86%,black 87%); -webkit-mask:radial-gradient(circle,transparent 86%,black 87%); }
.ck-br { position:absolute; top:27%; left:50%; transform:translateX(-50%); font-size:5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:rgba(201,168,76,.55); white-space:nowrap; pointer-events:none; }
.ck-cf { position:absolute; top:36%; left:50%; transform:translateX(-50%); font-size:4px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:rgba(200,192,175,.32); white-space:nowrap; pointer-events:none; }
.ck-ct { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 2px #07111F,0 0 0 3px rgba(201,168,76,.5); z-index:10; }
.hand { position:absolute; bottom:50%; left:50%; transform-origin:bottom center; border-radius:2px 2px 1px 1px; }
.hh { width:3px; height:27%; margin-left:-1.5px; background:linear-gradient(to top,var(--gold),#f5e49c 55%,var(--gold)); }
.hm { width:2px; height:37%; margin-left:-1px; background:linear-gradient(to top,var(--glt),#fff 65%,var(--glt)); }
.hs { width:1px; height:41%; margin-left:-.5px; background:#FF3B30; box-shadow:0 0 5px rgba(255,59,48,.9); }
.hst { position:absolute; top:50%; left:50%; transform-origin:top center; width:1px; height:10%; margin-left:-.5px; background:#FF3B30; }
/* ═══════════════════════════════════════════════════════
   HORLOGE DIGITALE LUXUEUSE - 24H Format
═══════════════════════════════════════════════════════ */
.ck-dig {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'lnum', 'tnum';
  margin-bottom: .3rem;
  margin-top: .4rem;
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  padding: .2rem .75rem;
  background:
    linear-gradient(180deg, rgba(10,18,35,.6) 0%, rgba(5,10,22,.8) 100%);
  border-radius: 3px;
  border: 1px solid rgba(201,168,76,.15);
  box-shadow:
    inset 0 1px 0 rgba(201,168,76,.1),
    inset 0 -1px 0 rgba(0,0,0,.4),
    0 2px 8px rgba(0,0,0,.3);
  position: relative;
}

/* Heures et minutes - typographie luxueuse Cormorant, dégradé or */
.ck-hr, .ck-mn {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: .02em;
  background: linear-gradient(180deg,
    #FFF4D6 0%,
    #F5D97A 35%,
    #C9A84C 70%,
    #8B6A2C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.5)) drop-shadow(0 0 8px rgba(245,217,122,.3));
  transition: filter .3s ease;
}

/* Deux-points animé (blink subtil) */
.ck-col {
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--gold);
  opacity: .9;
  margin: 0 .08em;
  animation: colBlink 2s ease-in-out infinite;
  filter: drop-shadow(0 0 4px rgba(245,217,122,.4));
}
@keyframes colBlink {
  0%, 100% { opacity: .9; }
  50%      { opacity: .45; }
}

/* Secondes - plus petites, dorées subtiles */
.ck-sc {
  font-size: .95rem;
  font-weight: 400;
  color: var(--gold);
  opacity: .7;
  letter-spacing: .02em;
  margin-left: .28em;
  align-self: baseline;
  filter: drop-shadow(0 0 3px rgba(245,217,122,.2));
}

/* Hover sur la carte horloge → intensifie le glow */
.ck:hover .ck-hr,
.ck:hover .ck-mn {
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.5)) drop-shadow(0 0 14px rgba(245,217,122,.55));
}

/* Ville - serif classique */
.ck-city {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: .08em;
  color: #F5E9C8;
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
  margin-top: .2rem;
}

/* Fuseau horaire */
.ck-tz {
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: .7;
  margin-top: 3px;
  font-family: 'Montserrat', 'Inter', sans-serif;
}

/* Date */
.ck-dt {
  font-size: .58rem;
  letter-spacing: .12em;
  color: var(--tx2);
  margin-top: 4px;
  font-family: 'Montserrat', 'Inter', sans-serif;
  text-transform: lowercase;
  opacity: .8;
}
.ck-dt::first-letter { text-transform: uppercase; }

/* ===== BUDAPEST ===== */
.buda-div { display:flex; align-items:center; gap:1.5rem; padding:2.5rem 8%; background:var(--nv); border-top:1px solid rgba(201,168,76,.07); border-bottom:1px solid rgba(201,168,76,.07); }
.buda-div-ln { flex:1; height:1px; background:var(--bd); }
.buda-div-ic { color:var(--gold); font-size:.9rem; opacity:.4; user-select:none; }
.buda-sec { position:relative; background:#020810; overflow:hidden; }


.buda-fl { font-size:3.2rem; margin-bottom:1.1rem; animation:fbob 3s ease-in-out infinite; }
@keyframes fbob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }
.buda-tt { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,5vw,5rem); font-weight:300; letter-spacing:.07em; color:var(--tx); line-height:1.05; text-align:center; margin-bottom:.4rem; }
.buda-tt em { font-style:italic; color:var(--gold); }
.buda-su { font-family:'Cormorant Garamond',serif; font-size:clamp(.95rem,1.8vw,1.3rem); font-weight:300; font-style:italic; color:var(--tx2); letter-spacing:.08em; margin-bottom:2.2rem; text-align:center; }
.buda-ln { width:70px; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:0 auto 2.2rem; }
.buda-btn { position:relative; width:84px; height:84px; border-radius:50%; background:rgba(232,102,26,.12); border:1.5px solid rgba(232,102,26,.5); display:flex; align-items:center; justify-content:center; transition:all .35s; margin-bottom:1.6rem; cursor:pointer; }
.buda-btn::before { content:''; position:absolute; inset:-9px; border-radius:50%; border:1px solid rgba(201,168,76,.22); animation:ring 2.2s ease-out infinite; }
.buda-btn::after  { content:''; position:absolute; inset:-20px; border-radius:50%; border:1px solid rgba(201,168,76,.1); animation:ring 2.2s .55s ease-out infinite; }
@keyframes ring { 0% { transform:scale(1); opacity:.7; } 100% { transform:scale(1.38); opacity:0; } }
.buda-btn:hover { background:rgba(232,102,26,.26); border-color:var(--or); transform:scale(1.08); }
.buda-tri { width:0; height:0; border:solid transparent; border-width:14px 0 14px 26px; border-left-color:var(--gold); margin-left:6px; }
.buda-pl { font-size:.56rem; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--tx2); margin-bottom:2rem; }
.buda-tags { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }
.buda-tag { font-size:.54rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(201,168,76,.24); padding:.3rem .8rem; }
.buda-vw { position:relative; width:100%; padding-top:56.25%; background:#000; }
.buda-vw iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.bvsel { display:none; background:#040C18; border-top:1px solid rgba(201,168,76,.15); padding:1rem 8%; flex-wrap:wrap; gap:.8rem; align-items:center; }
.vb { font-size:.55rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--tx2); background:rgba(201,168,76,.06); border:1px solid rgba(201,168,76,.2); padding:.35rem .85rem; cursor:pointer; transition:all .25s; font-family:'Montserrat',sans-serif; }
.vb:hover, .vb.on { color:var(--or); border-color:rgba(232,102,26,.5); background:rgba(232,102,26,.08); }
.buda-ib { background:var(--nv2); border-top:1px solid var(--bd); padding:2.5rem 8%; display:grid; grid-template-columns:1fr auto 1fr; gap:3rem; align-items:center; }
.buda-stats { display:flex; gap:0; }
.buda-sv { font-family:'Cormorant Garamond',serif; font-size:2rem; font-weight:300; color:var(--gold); line-height:1; }
.buda-sl { font-size:.55rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase; color:var(--tx2); margin-top:3px; }
.buda-stat { padding:0 2rem; border-right:1px solid var(--bd); text-align:center; }
.buda-stat:first-child { padding-left:0; } .buda-stat:last-child { border-right:none; }
.buda-ctr { text-align:center; }
.buda-desc { font-size:.78rem; font-weight:300; line-height:1.88; color:var(--tx2); }







/* ===== SECTION HELPERS ===== */
.stag { font-size:.56rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase; color:var(--or); margin-bottom:.85rem; display:flex; align-items:center; gap:.6rem; }
.stag::before { content:''; width:20px; height:1px; background:var(--or); flex-shrink:0; }
.stag-c { justify-content:center; } .stag-c::before { display:none; }
.stitle { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,3.8vw,3.5rem); font-weight:300; line-height:1.1; margin-bottom:1.1rem; }
.stitle em { font-style:italic; color:var(--gold); }
.slead { font-size:.83rem; font-weight:300; line-height:1.95; color:var(--tx2); max-width:570px; }
/* reveal — always visible, animate as enhancement */
.rv, .rvl, .rvr { opacity:1; transform:none; transition:opacity .65s,transform .65s; }
body.js-ready .rv  { opacity:0; transform:translateY(20px); }
body.js-ready .rvl { opacity:0; transform:translateX(-24px); }
body.js-ready .rvr { opacity:0; transform:translateX(24px); }
body.js-ready .rv.on, body.js-ready .rvl.on, body.js-ready .rvr.on { opacity:1; transform:none; }

/* FORCE la visibilité du formulaire contact dans tous les cas — fix v111 */
body.js-ready #cForm,
body.js-ready .cnt .rvr,
#cForm {
  opacity: 1 !important;
  transform: none !important;
}

/* ===== SLIDESHOW ===== */
.ss { background:var(--nv); padding:5rem 0; overflow:hidden; position:relative; }
.ss::before, .ss::after { content:''; position:absolute; top:0; bottom:0; width:100px; z-index:2; pointer-events:none; }
.ss::before { left:0;  background:linear-gradient(90deg,var(--nv) 30%,transparent); }
.ss::after  { right:0; background:linear-gradient(270deg,var(--nv) 30%,transparent); }
.ss-hdr { padding:0 8%; margin-bottom:3rem; display:flex; justify-content:space-between; align-items:flex-end; }
.ss-hdr-r { font-size:.58rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--tx2); display:flex; align-items:center; gap:.7rem; }
.ss-hdr-r::before { content:''; width:18px; height:1px; background:var(--bd); }
.ss-wrap { overflow:hidden; cursor:grab; user-select:none; }
.ss-wrap:active { cursor:grabbing; }
.ss-track { display:flex; gap:1.5rem; padding:0 8%; transition:transform .5s cubic-bezier(.4,0,.2,1); will-change:transform; }
.sc { flex-shrink:0; width:380px; background:var(--nv2); border:1px solid var(--bd); overflow:hidden; position:relative; transition:border-color .35s,transform .35s; }
.sc:hover { border-color:var(--bd2); transform:translateY(-5px); }
.sc::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--or),var(--gold)); opacity:0; transition:opacity .35s; }
.sc:hover::before { opacity:1; }
.sc-img { height:240px; overflow:hidden; position:relative; }
.sc-img img { width:100%; height:100%; object-fit:cover; filter:brightness(.92) saturate(.95); transition:transform .7s,filter .5s; }
.sc:hover .sc-img img { transform:scale(1.06); filter:brightness(1) saturate(1.05); }
.sc-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(7,17,31,.85) 0%,transparent 55%); }
.sc-cb { position:absolute; top:1rem; left:1rem; font-size:.5rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; padding:.28rem .72rem; backdrop-filter:blur(8px); }
.sc-en { background:rgba(232,102,26,.85); color:#fff; }
.sc-co { background:rgba(201,168,76,.85); color:#07111F; }
.sc-fi { background:rgba(26,212,200,.85); color:#07111F; }
.sc-inf { background:rgba(147,112,219,.85); color:#fff; }
.sc-af { background:rgba(74,222,128,.85); color:#07111F; }
.sc-val { position:absolute; bottom:1rem; right:1rem; font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:300; color:var(--gold); letter-spacing:.05em; }
.sc-body { padding:1.5rem; }
.sc-meta { display:flex; align-items:center; gap:.6rem; margin-bottom:.65rem; }
.sc-fl { font-size:.9rem; }
.sc-co { font-size:.55rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--or); }
.sc-st { margin-left:auto; font-size:.5rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:.2rem .55rem; }
.ss-live { background:rgba(74,222,128,.1); color:#4ADE80; }
.ss-dev  { background:rgba(232,102,26,.1); color:var(--or); }
.ss-sign { background:rgba(201,168,76,.1); color:var(--gold); }
.ss-close { background:rgba(147,112,219,.1); color:#9370DB; }
.sc-name { font-family:'Cormorant Garamond',serif; font-size:1.22rem; font-weight:400; line-height:1.2; color:var(--tx); margin-bottom:.6rem; }
.sc-desc { font-size:.73rem; font-weight:300; line-height:1.8; color:var(--tx2); margin-bottom:1rem; }
.sc-foot { display:flex; justify-content:space-between; align-items:center; padding-top:.9rem; border-top:1px solid var(--bd); }
.sc-par { font-size:.56rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--tx2); }
.sc-arr { width:28px; height:28px; border-radius:50%; border:1px solid var(--bd); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:.9rem; transition:all .25s; }
.sc:hover .sc-arr { background:var(--or); border-color:var(--or); color:#fff; }
.ss-ctrl { display:flex; justify-content:center; align-items:center; gap:1rem; margin-top:2.5rem; padding:0 8%; }
.ss-btn { width:42px; height:42px; border-radius:50%; border:1px solid var(--bd); background:none; color:var(--tx2); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .25s; }
.ss-btn:hover { border-color:var(--gold); color:var(--gold); background:rgba(201,168,76,.06); }
.ss-dots { display:flex; gap:.5rem; }
.dot { width:6px; height:6px; border-radius:50%; background:rgba(201,168,76,.25); cursor:pointer; transition:all .3s; border:none; }
.dot-on { background:var(--or); width:22px; border-radius:3px; }

/* ===== ABOUT ===== */
.about { background:var(--nv2); padding:8rem 8%; position:relative; overflow:hidden; }
.about-g { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
@media(max-width:1024px){ .about-g { grid-template-columns:1fr; gap:3rem; } }.about-q { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300; font-style:italic; line-height:1.55; color:var(--tx3); border-left:2px solid var(--or); padding-left:1.4rem; margin-top:2.2rem; }

.sb { padding:1.6rem 1.4rem; border:1px solid var(--bd); position:relative; overflow:hidden; transition:border-color .3s; }
.sb::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--or),var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.sb:hover { border-color:var(--bd2); } .sb:hover::before { transform:scaleX(1); }
.sb-n { font-family:'Cormorant Garamond',serif; font-size:2.8rem; font-weight:300; color:var(--gold); line-height:1; margin-bottom:.3rem; }
.sb-l { font-size:.6rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--tx2); }
.about-vis { position:relative; height:520px; }
.aimg-a { position:absolute; top:0; left:0; right:55px; bottom:105px; overflow:hidden; border:1px solid var(--bd); }
.aimg-a img { width:100%; height:100%; object-fit:cover; filter:brightness(.92) saturate(.95); transition:transform 7s; }
.aimg-a:hover img { transform:scale(1.04); }
.aimg-b { position:absolute; bottom:0; right:0; width:54%; height:47%; overflow:hidden; border:1px solid var(--bd); }
.aimg-b img { width:100%; height:100%; object-fit:cover; filter:brightness(.9) saturate(.95); }
.abt-badge { position:absolute; top:1.2rem; right:1.2rem; background:var(--or); color:#fff; font-size:.54rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; padding:.42rem .88rem; }

/* ===== KPIS ===== */
.kpis { background:var(--nv); padding:5rem 8%; position:relative; overflow:hidden; }
.kpis::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(232,102,26,.022) 50%,transparent); }
.kpis-g { display:grid; grid-template-columns:repeat(4,1fr); position:relative; z-index:1; }
.ki { padding:3rem 2rem; border-right:1px solid var(--bd); text-align:center; }
.ki:last-child { border-right:none; }
.ki-ic { margin:0 auto .9rem; width:46px; height:46px; display:flex; align-items:center; justify-content:center; }
.ki-v { font-family:'Cormorant Garamond',serif; font-size:3.2rem; font-weight:300; color:var(--gold); line-height:1; margin-bottom:.4rem; }
.ki-l { font-size:.6rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--tx2); }

/* ===== SERVICES ===== */
.srv { background:var(--nv2); padding:8rem 8%; }
.srv-hdr { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3.5rem; gap:2rem; }
.srv-g { display:grid; grid-template-columns:repeat(3,1fr); gap: 28px; background: transparent; }

/* ===== CARTES SERVICES — DESIGN LUXE INSTITUTIONNEL ===== */
.scard {
  background: linear-gradient(180deg, #0a1a2e 0%, #030C18 100%);
  padding: 0;
  position: relative;
  overflow: hidden;
  border-radius: 2px;
  border: 1px solid rgba(201,168,76,.12);
  box-shadow:
    0 8px 24px rgba(0,0,0,.35),
    0 2px 6px rgba(0,0,0,.2),
    inset 0 1px 0 rgba(255,255,255,.04);
  transition: transform .55s cubic-bezier(.4,0,.2,1),
              border-color .55s ease,
              box-shadow .55s ease;
  display: flex;
  flex-direction: column;
  min-height: 480px;
}

.scard:hover {
  transform: translateY(-8px);
  border-color: rgba(232,102,26,.45);
  box-shadow:
    0 24px 50px rgba(0,0,0,.55),
    0 8px 20px rgba(232,102,26,.18),
    inset 0 1px 0 rgba(255,255,255,.08);
}

/* --- Image du haut de carte --- */
.scard-bg {
  position: relative;
  width: 100%;
  height: 230px;
  overflow: hidden;
  opacity: 1; /* toujours visible */
  margin: 0;
  flex-shrink: 0;
}
.scard-bg::after {
  /* Dégradé pour fondre l'image avec le fond bas */
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, transparent 50%, rgba(10,26,46,.4) 80%, rgba(3,12,24,.95) 100%),
    linear-gradient(to top, rgba(0,0,0,.3) 0%, transparent 30%);
  pointer-events: none;
  z-index: 2;
}
.scard-bg::before {
  /* Liseré doré en bas de l'image */
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.4), transparent);
  z-index: 3;
  pointer-events: none;
}
.scard-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.9) saturate(1) contrast(1.05);
  transition: transform .9s cubic-bezier(.4,0,.2,1), filter .55s ease;
}
.scard:hover .scard-bg img {
  transform: scale(1.08);
  filter: brightness(1.05) saturate(1.1) contrast(1.08);
}

/* Petite barre décorative en haut à gauche */
.scard::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 40px; height: 3px;
  background: linear-gradient(90deg, var(--or), var(--gold));
  z-index: 10;
  transition: width .5s ease;
}
.scard:hover::before {
  width: 80px;
}

/* Ligne dorée en bas qui s'anime */
.scard::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--or), var(--gold));
  transition: right .55s cubic-bezier(.4,0,.2,1);
  z-index: 10;
}
.scard:hover::after { right: 0; }

/* --- Numéro (en haut à droite sur l'image) --- */
.scard-n {
  position: absolute;
  top: 1.4rem; right: 1.6rem;
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.8rem;
  font-weight: 300;
  color: rgba(240,235,224,.35);
  line-height: 1;
  z-index: 5;
  letter-spacing: -.01em;
  text-shadow: 0 4px 20px rgba(0,0,0,.8);
  transition: color .5s ease, transform .5s ease;
}
.scard:hover .scard-n {
  color: var(--or);
  transform: scale(1.05);
}

/* --- Contenu texte (en bas) --- */
.scard-nm {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.45rem;
  font-weight: 500;
  line-height: 1.2;
  margin: 2rem 2.2rem 1rem;
  position: relative;
  z-index: 1;
  color: #F5F0E4;
  letter-spacing: .005em;
}

.scard-ds {
  font-size: .82rem;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(240,235,224,.68);
  padding: 0 2.2rem 2.4rem;
  position: relative;
  z-index: 1;
  flex: 1;
}

/* ===== REGIONS ===== */





.reg-ci img { width:100%; height:100%; object-fit:cover; filter:saturate(.9) brightness(.88); transition:transform .6s,filter .4s; }







/* ═══════════════════════════════════════════════════════
   MÉTHODE UNICOM — Premium percutant (v121+)
═══════════════════════════════════════════════════════ */
.mth {
  background: linear-gradient(180deg, var(--nv2) 0%, #07111f 50%, var(--nv2) 100%);
  padding: 8rem 8%;
  position: relative;
  overflow: hidden;
}
/* Halos décoratifs */
.mth::before {
  content: '';
  position: absolute;
  top: 10%; left: -5%;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(232,102,26,.08) 0%, transparent 70%);
  pointer-events: none;
  animation: mthFloat 14s ease-in-out infinite;
}
.mth::after {
  content: '';
  position: absolute;
  bottom: 10%; right: -5%;
  width: 450px; height: 450px;
  background: radial-gradient(circle, rgba(201,168,76,.06) 0%, transparent 70%);
  pointer-events: none;
  animation: mthFloat 16s ease-in-out infinite reverse;
}
@keyframes mthFloat {
  0%, 100% { transform: translate(0,0); }
  50% { transform: translate(30px, -20px); }
}

.mth-g {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 4rem;
  position: relative;
}
/* Ligne timeline lumineuse dorée plus visible */
.mth-g::before {
  content: '';
  position: absolute;
  top: 40px;
  left: 10%;
  right: 10%;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(201,168,76,.35) 12%,
    rgba(232,102,26,.6) 50%,
    rgba(201,168,76,.35) 88%,
    transparent 100%);
  box-shadow: 0 0 12px rgba(245,217,122,.3);
  z-index: 0;
}
/* Pulse qui voyage sur la ligne */
.mth-g::after {
  content: '';
  position: absolute;
  top: 37px;
  left: 10%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #fff 0%, #f5d97a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px #f5d97a, 0 0 30px rgba(232,102,26,.6);
  z-index: 1;
  animation: mthPulse 6s cubic-bezier(.5,0,.5,1) infinite;
}
@keyframes mthPulse {
  0%   { left: 10%; opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { left: 90%; opacity: 0; }
}

.mth-s {
  padding: 0 1rem;
  position: relative;
  z-index: 2;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.mth-s:hover { transform: translateY(-6px); }

/* ═══ ICÔNE : Grosse carte glass avec numéro ═══ */
.mth-d,
.mth-d-icon {
  width: 84px !important;
  height: 84px !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, rgba(232,102,26,.15), rgba(201,168,76,.08)) !important;
  border: 1.5px solid rgba(201,168,76,.35) !important;
  color: #f5d97a !important;
  margin-bottom: 1.8rem !important;
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 10px 30px rgba(0,0,0,.4),
    0 0 30px rgba(232,102,26,.15),
    0 0 0 1px rgba(245,217,122,.08) inset;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
/* Numéro en badge */
.mth-s::before {
  content: counter(mth-num);
  counter-increment: mth-num;
  position: absolute;
  top: -8px; left: calc(50% + 24px);
  width: 26px; height: 26px;
  background: linear-gradient(135deg, #e8661a 0%, #c9a84c 100%);
  color: #fff;
  border-radius: 50%;
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(232,102,26,.5), 0 0 0 2px var(--nv2);
  z-index: 3;
  transition: all .4s;
}
.mth-g { counter-reset: mth-num; }

/* Icône SVG plus grande */
.mth-d svg,
.mth-d-icon svg {
  width: 40px !important;
  height: 40px !important;
  filter: drop-shadow(0 0 8px rgba(245,217,122,.4));
  transition: all .4s;
}

/* Cercle décoratif pulsant derrière */
.mth-d::before,
.mth-d-icon::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(232,102,26,.3), rgba(201,168,76,.2));
  opacity: 0;
  z-index: -1;
  filter: blur(12px);
  transition: opacity .4s;
}

/* Au hover : l'icône s'illumine */
.mth-s:hover .mth-d,
.mth-s:hover .mth-d-icon {
  background: linear-gradient(135deg, rgba(232,102,26,.35), rgba(201,168,76,.2)) !important;
  border-color: var(--or) !important;
  color: #fff !important;
  transform: scale(1.06);
  box-shadow:
    0 15px 40px rgba(232,102,26,.4),
    0 0 40px rgba(245,217,122,.3);
}
.mth-s:hover .mth-d::before,
.mth-s:hover .mth-d-icon::before { opacity: 1; }
.mth-s:hover .mth-d svg,
.mth-s:hover .mth-d-icon svg {
  transform: rotate(-6deg) scale(1.1);
  filter: drop-shadow(0 0 16px rgba(245,217,122,.9));
}
.mth-s:hover::before {
  transform: scale(1.15);
  box-shadow: 0 6px 18px rgba(232,102,26,.7), 0 0 0 2px var(--nv2);
}

/* ═══ TITRE : Plus gros, doré, Cormorant ═══ */
.mth-t {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.8rem !important;
  font-weight: 600 !important;
  margin-bottom: .9rem !important;
  background: linear-gradient(135deg, #f5d97a 0%, #c9a84c 40%, #e8661a 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: .01em;
  line-height: 1.1;
  transition: all .35s;
  position: relative;
}
.mth-t::after {
  content: '';
  display: block;
  width: 30px;
  height: 2px;
  background: linear-gradient(90deg, var(--or), transparent);
  margin-top: .6rem;
  border-radius: 2px;
  transition: width .35s;
}
.mth-s:hover .mth-t::after { width: 60px; }

/* ═══ PARAGRAPHE : Plus lisible ═══ */
.mth-p {
  font-size: .85rem !important;
  line-height: 1.65 !important;
  color: var(--tx) !important;
  font-weight: 400 !important;
  opacity: .88;
  transition: opacity .35s;
}
.mth-s:hover .mth-p { opacity: 1; }

/* Responsive */
@media (max-width: 900px) {
  .mth-g { grid-template-columns: 1fr 1fr; gap: 3rem 1.5rem; }
  .mth-g::before, .mth-g::after { display: none; }
  .mth-t { font-size: 1.5rem !important; }
}
@media (max-width: 500px) {
  .mth-g { grid-template-columns: 1fr; gap: 2.5rem; }
  .mth { padding: 5rem 6%; }
}

/* ===== TESTIMONIALS ===== */
/* ═══════════════════════════════════════════════════════
   TÉMOIGNAGES — CADRES LUMINEUX PREMIUM (v120+)
═══════════════════════════════════════════════════════ */
.tst {
  background: var(--nv);
  padding: 7rem 8% 8rem;
  position: relative;
  overflow: hidden;
}
.tst-bg { position: absolute; inset: 0; z-index: 0; }
.tst-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .08;
  filter: grayscale(70%) brightness(.85);
}
.tst-ov {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(to bottom, var(--nv) 0%, rgba(7,17,31,.85) 40%, rgba(7,17,31,.92) 60%, var(--nv) 100%),
    radial-gradient(ellipse at 50% 30%, rgba(232,102,26,.06) 0%, transparent 60%);
  z-index: 0;
}

/* Halos décoratifs animés */
.tst-halo {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(90px);
}
.tst-halo-1 {
  top: -100px; left: -100px;
  width: 450px; height: 450px;
  background: radial-gradient(circle, rgba(232,102,26,.12) 0%, transparent 70%);
  animation: tstHalo 14s ease-in-out infinite;
}
.tst-halo-2 {
  bottom: -100px; right: -100px;
  width: 550px; height: 550px;
  background: radial-gradient(circle, rgba(201,168,76,.1) 0%, transparent 70%);
  animation: tstHalo 16s ease-in-out infinite reverse;
}
@keyframes tstHalo {
  0%, 100% { transform: translate(0,0) scale(1); opacity: .85; }
  50%      { transform: translate(40px, -30px) scale(1.2); opacity: 1; }
}

/* Lead sous le titre */
.tst-lead {
  position: relative;
  z-index: 1;
  max-width: 700px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem;
  font-style: italic;
  color: var(--tx2);
  margin-top: 1rem;
  line-height: 1.6;
}

/* Grille 3 colonnes en desktop, 2 en tablette, 1 en mobile */
.tst-g {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 3.5rem;
  position: relative;
  z-index: 1;
}

/* ══════════════════════════════════════════════════
   CARTE TÉMOIGNAGE : cadre lumineux animé
═══════════════════════════════════════════════════════ */
.tcard {
  position: relative;
  padding: 2.4rem 2rem 2rem;
  background: linear-gradient(135deg, 
    rgba(13,26,45,.65) 0%, 
    rgba(7,17,31,.75) 100%);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 4px;
  overflow: hidden;
  transition: all .45s cubic-bezier(.4,0,.2,1);
  isolation: isolate;
}

/* Bordure dorée lumineuse animée (gradient qui tourne) */
.tcard::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 4px;
  padding: 1px;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    transparent 60deg,
    rgba(245,217,122,.4) 90deg,
    rgba(232,102,26,.6) 120deg,
    rgba(245,217,122,.4) 150deg,
    transparent 180deg,
    transparent 360deg
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0;
  transition: opacity .5s;
  pointer-events: none;
  animation: tcardBorderRotate 5s linear infinite;
  z-index: 2;
}
@keyframes tcardBorderRotate {
  to { transform: rotate(360deg); }
}

/* Coin doré subtil en permanence (top-left + bottom-right) */
.tcard::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 4px;
  background: 
    linear-gradient(135deg, rgba(245,217,122,.12) 0%, transparent 25%) top left / 60px 60px no-repeat,
    linear-gradient(315deg, rgba(232,102,26,.12) 0%, transparent 25%) bottom right / 60px 60px no-repeat;
  pointer-events: none;
  transition: opacity .4s;
  z-index: 1;
}

/* Halo doré qui suit le curseur (via radial gradient fixe pour l'effet de survol) */
.tcard-glow {
  position: absolute;
  top: 50%; left: 50%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(232,102,26,.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform .5s cubic-bezier(.4,0,.2,1), opacity .5s;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  filter: blur(20px);
}

.tcard:hover {
  border-color: transparent;
  transform: translateY(-6px);
  box-shadow: 
    0 15px 45px rgba(0,0,0,.4),
    0 0 40px rgba(232,102,26,.15),
    0 0 80px rgba(232,102,26,.08);
  background: linear-gradient(135deg, 
    rgba(19,34,53,.8) 0%, 
    rgba(13,26,45,.85) 100%);
}
.tcard:hover::before { opacity: 1; }

/* Drapeau en haut à gauche */
.tcard-flag {
  position: absolute;
  top: 1.2rem; left: 1.4rem;
  font-size: 1.3rem;
  line-height: 1;
  z-index: 3;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.5));
  transition: transform .35s;
}
.tcard:hover .tcard-flag {
  transform: scale(1.15) rotate(-5deg);
}

/* Badge secteur en haut à droite */
.tcard-sector {
  position: absolute;
  top: 1.3rem; right: 1.4rem;
  padding: .3rem .7rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--or);
  background: rgba(232,102,26,.1);
  border: 1px solid rgba(232,102,26,.35);
  border-radius: 30px;
  z-index: 3;
  transition: all .3s;
}
.tcard:hover .tcard-sector {
  background: rgba(232,102,26,.2);
  border-color: rgba(232,102,26,.6);
  color: #f5d97a;
}

/* Guillemet décoratif */
.tcard-q {
  font-family: 'Cormorant Garamond', serif;
  font-size: 4.5rem;
  line-height: .6;
  color: rgba(232,102,26,.2);
  font-weight: 700;
  margin: 1.8rem 0 .4rem;
  transition: color .4s;
  position: relative;
  z-index: 2;
}
.tcard:hover .tcard-q {
  color: rgba(245,217,122,.4);
  text-shadow: 0 0 15px rgba(232,102,26,.3);
}

/* Texte du témoignage */
.tcard-tx {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem;
  font-weight: 300;
  font-style: italic;
  line-height: 1.7;
  color: var(--tx);
  margin-bottom: 1.6rem;
  position: relative;
  z-index: 2;
  transition: color .3s;
}
.tcard:hover .tcard-tx {
  color: #f0f2f6;
}

/* Trait doré avant signature */
.tcard-hr {
  width: 36px;
  height: 1px;
  background: linear-gradient(90deg, var(--or) 0%, var(--gold) 100%);
  margin-bottom: 1rem;
  position: relative;
  z-index: 2;
  transition: width .45s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 0 8px rgba(232,102,26,.3);
}
.tcard:hover .tcard-hr {
  width: 65px;
  box-shadow: 0 0 12px rgba(245,217,122,.5);
}

/* Nom */
.tcard-nm {
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  position: relative;
  z-index: 2;
}

/* Rôle / Titre */
.tcard-rl {
  font-family: 'Montserrat', sans-serif;
  font-size: .62rem;
  font-weight: 400;
  color: var(--gold);
  margin-top: 4px;
  letter-spacing: .04em;
  position: relative;
  z-index: 2;
}

/* ══════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .tst-g { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .tst { padding: 5rem 6%; }
}
@media (max-width: 680px) {
  .tst-g { grid-template-columns: 1fr; gap: 1.2rem; }
  .tcard { padding: 2.2rem 1.6rem 1.8rem; }
  .tcard-tx { font-size: .98rem; line-height: 1.6; }
  .tcard-q { font-size: 3.5rem; }
  .tst-lead { font-size: .95rem; }
}

/* ═══════════════════════════════════════════════════
   AFRICA HERO — LUXE ORANGE + VERT PREMIUM
═══════════════════════════════════════════════════ */
.af-hero {
  position: relative;
  overflow: hidden;
  min-height: 580px;
  display: flex;
  align-items: center;
  margin: 2rem 2.5rem;
  border-radius: 3px;
  background: #020A16;
}

/* Encadrement lumineux animé — mélange orange + vert (Afrique thématique) */
.af-hero::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 4px;
  background: linear-gradient(135deg,
    rgba(232,102,26,.85) 0%,
    rgba(201,168,76,1) 30%,
    rgba(74,222,128,.9) 55%,
    rgba(201,168,76,1) 80%,
    rgba(232,102,26,.85) 100%);
  background-size: 300% 300%;
  animation: afHeroGlow 9s linear infinite;
  z-index: 0;
  filter: blur(1px);
}

/* Halo externe pulsant bicolore */
.af-hero::after {
  content: '';
  position: absolute;
  inset: -18px;
  border-radius: 8px;
  background:
    radial-gradient(ellipse at 25% 50%, rgba(232,102,26,.22) 0%, transparent 60%),
    radial-gradient(ellipse at 75% 50%, rgba(74,222,128,.2) 0%, transparent 60%);
  z-index: -1;
  animation: afHeroPulse 5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes afHeroGlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes afHeroPulse {
  0%, 100% { opacity: .55; transform: scale(1); }
  50%      { opacity: .95; transform: scale(1.02); }
}

.af-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 2px;
  overflow: hidden;
}
.af-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 35%;
  filter: brightness(.75) saturate(1.05) contrast(1.05);
  transform: scale(1.02);
  transition: transform 12s ease, filter 1s ease;
}
.af-hero:hover .af-hero-bg img {
  transform: scale(1);
  filter: brightness(.85) saturate(1.15) contrast(1.08);
}

/* Overlay plus subtil pour voir l'image */
.af-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg,
      rgba(2,10,22,.85) 0%,
      rgba(2,10,22,.55) 45%,
      rgba(2,10,22,.3) 70%,
      rgba(2,10,22,.5) 100%),
    linear-gradient(180deg,
      rgba(2,10,22,.25) 0%,
      transparent 50%,
      rgba(2,10,22,.55) 100%);
}

.af-in {
  position: relative;
  z-index: 2;
  padding: 5rem 6%;
  max-width: 780px;
}

/* Globe icon stylisé — dégradé orange → vert */
.af-fl {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg,
    rgba(232,102,26,.2) 0%,
    rgba(201,168,76,.15) 50%,
    rgba(74,222,128,.2) 100%);
  border: 1px solid rgba(201,168,76,.35);
  margin-bottom: 1.4rem;
  font-size: 1.6rem;
  box-shadow: 0 0 28px rgba(232,102,26,.2), 0 0 40px rgba(74,222,128,.12);
  backdrop-filter: blur(8px);
}

.af-tt {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2.5rem, 5vw, 5rem);
  font-weight: 400;
  line-height: 1.05;
  margin-bottom: 1.2rem;
  color: #F5F0E4;
  letter-spacing: -.01em;
  text-shadow: 0 4px 20px rgba(0,0,0,.85), 0 0 40px rgba(2,10,22,.7);
}
/* "Afrique" en dégradé doré → vert pour l'accent thématique */
.af-tt em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(135deg,
    var(--gold) 0%,
    #F5D97A 35%,
    #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 12px rgba(74,222,128,.25));
}

.af-su {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 300;
  font-style: italic;
  color: rgba(240,235,224,.85);
  line-height: 1.7;
  margin-bottom: 2.5rem;
  max-width: 640px;
  text-shadow: 0 2px 12px rgba(0,0,0,.7);
}

/* KPIs ligne — dégradé vert/orange avec séparateur animé */
.af-kpis {
  display: flex;
  gap: 0;
  padding-top: 2rem;
  position: relative;
  flex-wrap: wrap;
}
/* Ligne décorative au-dessus, orange → vert */
.af-kpis::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 180px;
  height: 2px;
  background: linear-gradient(90deg, var(--or), var(--gold), #4ADE80);
  box-shadow: 0 0 16px rgba(74,222,128,.5);
}

.af-kpis > div {
  flex: 1 1 auto;
  min-width: 130px;
  padding: 0 1.8rem 0 0;
  margin-right: 1.8rem;
  position: relative;
}
/* Séparateurs verticaux dorés entre KPIs */
.af-kpis > div:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 10%; right: 0;
  width: 1px; height: 80%;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,.35), transparent);
}
.af-kpis > div:last-child {
  padding-right: 0;
  margin-right: 0;
}

/* Grands chiffres KPI — dégradé métallique doré→vert (alternance) */
.af-kv {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.02em;
  background: linear-gradient(135deg, var(--gold) 0%, var(--or) 50%, var(--gold) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  display: inline-block;
  filter: drop-shadow(0 2px 10px rgba(232,102,26,.3));
}
/* KPIs alternent or/vert pour identité Afrique */
.af-kpis > div:nth-child(2) .af-kv,
.af-kpis > div:nth-child(4) .af-kv {
  background: linear-gradient(135deg, #4ADE80 0%, #86EFAC 50%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  filter: drop-shadow(0 2px 10px rgba(74,222,128,.3));
}

.af-kl {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(240,235,224,.7);
  margin-top: 8px;
  text-shadow: 0 2px 8px rgba(0,0,0,.6);
}

/* ════ TAGS (sub-titles of tabs) ════ */
.af-stag {
  font-size: .58rem; font-weight: 700;
  letter-spacing: .3em; text-transform: uppercase;
  color: var(--or);
  margin-bottom: .9rem;
  display: flex; align-items: center; gap: .7rem;
}
.af-stag::before {
  content: '';
  width: 22px; height: 1px;
  background: linear-gradient(to right, transparent, var(--or), #4ADE80);
  flex-shrink: 0;
}

.af-stitle {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.8rem, 3.2vw, 3rem);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: 1rem;
  color: #F5F0E4;
  letter-spacing: -.005em;
}
.af-stitle em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(135deg, var(--gold) 0%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

/* ════ ONGLETS (Education / Infra / Solar / Santé / Eau) ════ */
.af-tabs-w {
  background: linear-gradient(180deg, #020A16 0%, #07111f 100%);
  border-bottom: 1px solid rgba(201,168,76,.15);
  position: relative;
}
.af-tabs-w::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232,102,26,.4), rgba(74,222,128,.4), transparent);
}
.af-tabs {
  display: flex;
  padding: 0 8%;
  overflow-x: auto;
  scrollbar-width: none;
  gap: 2px;
}
.af-tabs::-webkit-scrollbar { display: none; }
.af-tab {
  flex-shrink: 0;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(240,235,224,.5);
  padding: 1.3rem 1.8rem;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all .35s ease;
  white-space: nowrap;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  font-family: 'Montserrat', sans-serif;
  position: relative;
}
.af-tab:hover {
  color: rgba(240,235,224,.85);
  background: linear-gradient(180deg, transparent, rgba(232,102,26,.05));
}
/* Onglets actifs alternent or/vert selon position */
.af-tab.on {
  color: #F5F0E4;
  background: linear-gradient(180deg,
    transparent,
    rgba(232,102,26,.08) 60%,
    rgba(232,102,26,.12));
  border-bottom-color: var(--or);
  box-shadow: 0 -2px 16px rgba(232,102,26,.15) inset;
}
.af-tab.on::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--or), transparent);
  box-shadow: 0 0 12px rgba(232,102,26,.5);
}

/* Onglets 2 et 4 : vert pour diversifier (Infrastructure + Santé) */
.af-tab:nth-child(2).on,
.af-tab:nth-child(4).on {
  background: linear-gradient(180deg,
    transparent,
    rgba(74,222,128,.08) 60%,
    rgba(74,222,128,.12));
  border-bottom-color: #4ADE80;
  box-shadow: 0 -2px 16px rgba(74,222,128,.15) inset;
}
.af-tab:nth-child(2).on::after,
.af-tab:nth-child(4).on::after {
  background: linear-gradient(90deg, transparent, #4ADE80, transparent);
  box-shadow: 0 0 12px rgba(74,222,128,.5);
}

@media (max-width: 900px) {
  .af-hero { margin: 1rem; min-height: 440px; }
  .af-in { padding: 3rem 6%; }
  .af-kv { font-size: 2rem; }
  .af-kpis > div { min-width: 110px; padding-right: 1.2rem; margin-right: 1.2rem; }
}
.af-panel { display:none; padding:5rem 8%; background:var(--nv); }
.af-panel.on { display:block; }
.af-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; margin-bottom:5rem; }
.af-ld { font-size:.83rem; font-weight:300; line-height:1.95; color:var(--tx2); }
.af-dv { width:34px; height:1px; background:#4ADE80; margin:1.8rem 0; }
.af-img-st { position:relative; height:440px; }
.afia { position:absolute; top:0; left:0; right:60px; bottom:80px; overflow:hidden; border:1px solid rgba(74,222,128,.25); }
.afia img { width:100%; height:100%; object-fit:cover; filter:brightness(.92); transition:transform 7s; }
.afia:hover img { transform:scale(1.04); }
.afib { position:absolute; bottom:0; right:0; width:55%; height:44%; overflow:hidden; border:1px solid rgba(74,222,128,.2); }
.afib img { width:100%; height:100%; object-fit:cover; filter:brightness(.9); }
.af-bge { position:absolute; top:1rem; right:1rem; background:#1a6e2e; color:#a8f0c0; font-size:.54rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; padding:.4rem .85rem; }
/* ═══════════════════════════════════════════════════
   CARTES ECOLES/PROJETS (schc) - Luxe orange + vert
═══════════════════════════════════════════════════ */
.sc-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}

.schc {
  border: 1px solid rgba(201,168,76,.2);
  background: linear-gradient(135deg, rgba(13,26,45,.75) 0%, rgba(7,17,31,.55) 100%);
  border-radius: 2px;
  overflow: hidden;
  transition: all .45s cubic-bezier(.4,0,.2,1);
  position: relative;
  box-shadow: 0 6px 20px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.03);
}

/* Barre en haut - alternance or/vert */
.schc::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--or) 50%, transparent);
  box-shadow: 0 0 12px rgba(232,102,26,.5);
  opacity: 0;
  transition: opacity .4s ease;
  z-index: 3;
}
.schc:nth-child(even)::before {
  background: linear-gradient(90deg, transparent, #4ADE80 50%, transparent);
  box-shadow: 0 0 12px rgba(74,222,128,.5);
}

/* Coins décoratifs */
.schc::after {
  content: '';
  position: absolute;
  bottom: -1px; right: -1px;
  width: 28px; height: 28px;
  border-bottom: 1.5px solid rgba(201,168,76,.4);
  border-right: 1.5px solid rgba(201,168,76,.4);
  pointer-events: none;
  transition: all .45s ease;
  z-index: 3;
}

.schc:hover {
  transform: translateY(-6px);
  border-color: rgba(232,102,26,.5);
  box-shadow: 0 18px 44px rgba(0,0,0,.5), 0 0 32px rgba(232,102,26,.2);
}
.schc:nth-child(even):hover {
  border-color: rgba(74,222,128,.5);
  box-shadow: 0 18px 44px rgba(0,0,0,.5), 0 0 32px rgba(74,222,128,.2);
}
.schc:hover::before { opacity: 1; }
.schc:hover::after {
  width: 38px; height: 38px;
  border-color: rgba(232,102,26,.7);
}
.schc:nth-child(even):hover::after {
  border-color: rgba(74,222,128,.7);
}

/* Image — plus lumineuse */
.schc-ci {
  height: 200px;
  overflow: hidden;
  position: relative;
}
.schc-ci img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.92) saturate(1) contrast(1.02);
  transition: transform 1s ease, filter .5s ease;
}
.schc:hover .schc-ci img {
  transform: scale(1.08);
  filter: brightness(1.05) saturate(1.15) contrast(1.05);
}
/* Overlay dégradé subtil en bas pour meilleure transition */
.schc-ci::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    transparent 0%,
    transparent 65%,
    rgba(2,10,22,.4) 100%);
  pointer-events: none;
}

.schc-body {
  padding: 1.6rem 1.5rem 1.4rem;
  position: relative;
}

/* Badge pays/icône - style premium rond */
.schc-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: .8rem;
  line-height: 1;
}

/* Style spécial pour les codes pays (SN, CD, ML) */
.schc-ic-flag {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: .08em;
  padding: .35rem .9rem;
  border: 1px solid rgba(232,102,26,.35);
  background: linear-gradient(135deg, rgba(232,102,26,.12), rgba(201,168,76,.08));
  border-radius: 2px;
  color: transparent;
  background-clip: padding-box;
  position: relative;
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
/* Texte du code pays en dégradé doré ou vert selon position */
.schc-ic-flag::before {
  content: attr(data-flag, '');
}
.schc-ic-flag {
  background-image: linear-gradient(135deg, rgba(232,102,26,.12), rgba(201,168,76,.08));
}
/* On met directement la couleur via le gradient du texte */
.schc:nth-child(odd) .schc-ic-flag {
  color: var(--gold);
  text-shadow: 0 0 12px rgba(232,102,26,.4);
}
.schc:nth-child(even) .schc-ic-flag {
  color: #4ADE80;
  border-color: rgba(74,222,128,.35);
  background: linear-gradient(135deg, rgba(74,222,128,.12), rgba(201,168,76,.08));
  text-shadow: 0 0 12px rgba(74,222,128,.4);
}

.schc-nm {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.25rem;
  font-weight: 500;
  margin-bottom: .6rem;
  color: #F5F0E4;
  letter-spacing: -.005em;
  line-height: 1.3;
}

.schc-ds {
  font-size: .76rem;
  font-weight: 300;
  line-height: 1.85;
  color: rgba(240,235,224,.7);
}

/* Stats en bas - nouveaux styles luxe */
.schc-st {
  display: flex;
  gap: 1.2rem;
  margin-top: 1.4rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(201,168,76,.15);
}

.schc-st > div {
  flex: 1;
  text-align: left;
}

.ssv {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.015em;
  background: linear-gradient(135deg, var(--gold) 0%, var(--or) 50%, var(--gold) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 8px rgba(232,102,26,.25));
  margin-bottom: 4px;
}
/* Pour cartes paires, stats en vert */
.schc:nth-child(even) .ssv {
  background: linear-gradient(135deg, #4ADE80 0%, #86EFAC 50%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  filter: drop-shadow(0 2px 8px rgba(74,222,128,.25));
}

.ssl {
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(240,235,224,.6);
}

@media (max-width: 900px) {
  .sc-grid { grid-template-columns: 1fr; gap: 1.2rem; }
}
/* ═══════════════════════════════════════════════════
   INFRASTRUCTURES - Cartes premium alternance or/vert
═══════════════════════════════════════════════════ */
.inf-g {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 1rem;
}

.infc {
  padding: 2.2rem 2rem;
  border: 1px solid rgba(201,168,76,.2);
  background: linear-gradient(135deg, rgba(13,26,45,.75) 0%, rgba(7,17,31,.6) 100%);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
  transition: all .45s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 6px 20px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.03);
}

/* Barre lumineuse en haut (style onglet actif) - alterne or/vert */
.infc::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--or) 30%, var(--gold) 50%, var(--or) 70%, transparent);
  box-shadow: 0 0 12px rgba(232,102,26,.5);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .5s ease;
}
.infc:nth-child(even)::before {
  background: linear-gradient(90deg, transparent, #4ADE80 30%, #86EFAC 50%, #4ADE80 70%, transparent);
  box-shadow: 0 0 12px rgba(74,222,128,.5);
}

/* Coins décoratifs dorés */
.infc::after {
  content: '';
  position: absolute;
  bottom: -1px; right: -1px;
  width: 28px; height: 28px;
  border-bottom: 1.5px solid rgba(201,168,76,.4);
  border-right: 1.5px solid rgba(201,168,76,.4);
  pointer-events: none;
  transition: all .45s ease;
}

.infc:hover {
  border-color: rgba(232,102,26,.45);
  background: linear-gradient(135deg, rgba(232,102,26,.08) 0%, rgba(201,168,76,.04) 100%);
  transform: translateY(-5px);
  box-shadow: 0 14px 36px rgba(0,0,0,.5), 0 0 28px rgba(232,102,26,.2);
}
.infc:nth-child(even):hover {
  border-color: rgba(74,222,128,.45);
  background: linear-gradient(135deg, rgba(74,222,128,.08) 0%, rgba(201,168,76,.04) 100%);
  box-shadow: 0 14px 36px rgba(0,0,0,.5), 0 0 28px rgba(74,222,128,.2);
}
.infc:hover::before { transform: scaleX(1); }
.infc:hover::after {
  width: 38px; height: 38px;
  border-color: rgba(232,102,26,.7);
}
.infc:nth-child(even):hover::after {
  border-color: rgba(74,222,128,.7);
}

/* Icône ronde - dégradé et glow */
.infc-ic {
  width: 54px; height: 54px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(232,102,26,.18) 0%, rgba(201,168,76,.1) 100%);
  border: 1px solid rgba(201,168,76,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  color: var(--or);
  transition: all .4s ease;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 2px 12px rgba(0,0,0,.2);
}
.infc:nth-child(even) .infc-ic {
  background: linear-gradient(135deg, rgba(74,222,128,.18) 0%, rgba(201,168,76,.1) 100%);
  border-color: rgba(74,222,128,.35);
  color: #4ADE80;
}

.infc:hover .infc-ic {
  transform: scale(1.1) rotate(-5deg);
  background: linear-gradient(135deg, rgba(232,102,26,.35) 0%, rgba(201,168,76,.2) 100%);
  border-color: var(--or);
  box-shadow: 0 0 24px rgba(232,102,26,.45), inset 0 1px 0 rgba(255,255,255,.1);
}
.infc:nth-child(even):hover .infc-ic {
  background: linear-gradient(135deg, rgba(74,222,128,.35) 0%, rgba(201,168,76,.2) 100%);
  border-color: #4ADE80;
  box-shadow: 0 0 24px rgba(74,222,128,.45), inset 0 1px 0 rgba(255,255,255,.1);
}

/* Les SVG dans l'icône - force la couleur à héritier via currentColor */
.infc-ic svg { stroke: currentColor; }
/* Force override du stroke "#4ADE80" en inline vers currentColor au hover */
.infc-ic svg path,
.infc-ic svg rect,
.infc-ic svg circle,
.infc-ic svg line,
.infc-ic svg polyline {
  transition: stroke .4s ease;
}

.infc-t {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.4rem;
  font-weight: 500;
  margin-bottom: .7rem;
  color: #F5F0E4;
  letter-spacing: -.005em;
}

.infc-d {
  font-size: .78rem;
  font-weight: 300;
  line-height: 1.85;
  color: rgba(240,235,224,.75);
  margin-bottom: 1.5rem;
}

/* ── Barres de progression - plus lumineuses ── */
.pb-w {
  margin-top: 1rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(201,168,76,.12);
}

.pb-lbl {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(240,235,224,.7);
  margin-bottom: .6rem;
}
.pb-lbl span:last-child {
  color: var(--or);
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: .95rem;
  font-weight: 500;
  letter-spacing: -.01em;
  text-transform: none;
}
.infc:nth-child(even) .pb-lbl span:last-child {
  color: #4ADE80;
}

.pb-bar {
  height: 6px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.12);
  border-radius: 3px;
  overflow: hidden;
  position: relative;
}

.pb-fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg,
    var(--or) 0%,
    var(--gold) 50%,
    var(--or) 100%);
  background-size: 200% 100%;
  animation: pbShimmer 3s linear infinite;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.6s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 0 12px rgba(232,102,26,.5), 0 0 20px rgba(232,102,26,.25);
  position: relative;
}

.infc:nth-child(even) .pb-fill {
  background: linear-gradient(90deg,
    #4ADE80 0%,
    #86EFAC 50%,
    #4ADE80 100%);
  background-size: 200% 100%;
  box-shadow: 0 0 12px rgba(74,222,128,.5), 0 0 20px rgba(74,222,128,.25);
}

/* Animation du shimmer dans la barre */
@keyframes pbShimmer {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Animation au scroll (quand .an est ajoutée) */
.pb-fill.an { transform: scaleX(1); }

/* Fallback : si .an n'est jamais ajoutée par JS, afficher quand même */
.infc.rv:not(.in) .pb-fill,
.pb-fill:not(.an) {
  /* Par défaut laisse à scaleX(0), mais on force à scaleX(1) après délai */
}

@media (max-width: 900px) {
  .inf-g { grid-template-columns: 1fr; gap: 1rem; }
}
/* ═══════════════════════════════════════════════════
   NOS PAYS PARTENAIRES — Cartes luxe orange + vert
═══════════════════════════════════════════════════ */
.af-partners {
  background: linear-gradient(180deg, #020A16 0%, #07111f 50%, #020A16 100%);
  padding: 5rem 8%;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(201,168,76,.08);
}
.af-partners::before {
  content: '';
  position: absolute;
  top: -40%; right: -10%;
  width: 550px; height: 550px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,102,26,.06) 0%, transparent 60%);
  animation: afPartGlow 11s ease-in-out infinite;
  pointer-events: none;
}
.af-partners::after {
  content: '';
  position: absolute;
  bottom: -40%; left: -10%;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74,222,128,.06) 0%, transparent 60%);
  animation: afPartGlow 13s ease-in-out infinite reverse;
  pointer-events: none;
}
@keyframes afPartGlow {
  0%, 100% { transform: scale(1); opacity: .7; }
  50%      { transform: scale(1.15); opacity: 1; }
}
.af-partners > * { position: relative; z-index: 1; }

.af-cg {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 14px;
  margin-top: 2.8rem;
}

.ac {
  padding: 1.8rem 1.4rem;
  border: 1px solid rgba(201,168,76,.2);
  background: linear-gradient(135deg, rgba(13,26,45,.7) 0%, rgba(7,17,31,.55) 100%);
  text-align: center;
  border-radius: 2px;
  transition: all .4s cubic-bezier(.4,0,.2,1);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.03);
}

/* Coins décoratifs style institutionnel */
.ac::before {
  content: '';
  position: absolute;
  top: -1px; left: -1px;
  width: 24px; height: 24px;
  border-top: 1.5px solid var(--or);
  border-left: 1.5px solid var(--or);
  transition: all .4s ease;
  pointer-events: none;
}
.ac::after {
  content: '';
  position: absolute;
  bottom: -1px; right: -1px;
  width: 24px; height: 24px;
  border-bottom: 1.5px solid #4ADE80;
  border-right: 1.5px solid #4ADE80;
  transition: all .4s ease;
  pointer-events: none;
}

/* Alternance or / vert pour donner du rythme */
.ac:nth-child(even)::before {
  border-top-color: #4ADE80;
  border-left-color: #4ADE80;
}
.ac:nth-child(even)::after {
  border-bottom-color: var(--or);
  border-right-color: var(--or);
}

.ac:hover {
  transform: translateY(-5px);
  border-color: rgba(232,102,26,.5);
  background: linear-gradient(135deg, rgba(232,102,26,.1) 0%, rgba(201,168,76,.05) 100%);
  box-shadow: 0 12px 32px rgba(0,0,0,.45), 0 0 28px rgba(232,102,26,.2);
}
.ac:nth-child(even):hover {
  border-color: rgba(74,222,128,.5);
  background: linear-gradient(135deg, rgba(74,222,128,.1) 0%, rgba(201,168,76,.05) 100%);
  box-shadow: 0 12px 32px rgba(0,0,0,.45), 0 0 28px rgba(74,222,128,.2);
}
.ac:hover::before,
.ac:hover::after {
  width: 32px; height: 32px;
}

/* Code pays stylisé (SN, CD, MA...) - remplace le drapeau emoji */
.ac-fl {
  display: inline-block;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 2.2rem;
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1;
  margin-bottom: .7rem;
  background: linear-gradient(135deg, var(--gold) 0%, var(--or) 50%, var(--gold) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 10px rgba(232,102,26,.3));
  transition: all .4s ease;
}

/* Chaque 2e carte : code pays en vert */
.ac:nth-child(even) .ac-fl {
  background: linear-gradient(135deg, #4ADE80 0%, #86EFAC 50%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  filter: drop-shadow(0 2px 10px rgba(74,222,128,.3));
}

.ac:hover .ac-fl { transform: scale(1.08); }

.ac-nm {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.15rem;
  font-weight: 500;
  color: #F5F0E4;
  margin-bottom: .4rem;
  letter-spacing: -.005em;
}

.ac-fo {
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--or);
  padding-top: .6rem;
  border-top: 1px solid rgba(201,168,76,.15);
  margin-top: .4rem;
}
.ac:nth-child(even) .ac-fo { color: #4ADE80; }

/* ═══════════════════════════════════════════════════
   IMPACT STATS BAND - 5 compteurs premium
═══════════════════════════════════════════════════ */
.af-imp {
  background: linear-gradient(180deg, #020A16 0%, #07111f 50%, #020A16 100%);
  padding: 5rem 8%;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(201,168,76,.12);
  border-bottom: 1px solid rgba(201,168,76,.12);
}

/* Orbes lumineux décoratifs */
.af-imp::before {
  content: '';
  position: absolute;
  top: -30%; left: -5%;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,102,26,.08) 0%, transparent 60%);
  animation: afImpGlow 10s ease-in-out infinite;
  pointer-events: none;
}
.af-imp::after {
  content: '';
  position: absolute;
  bottom: -30%; right: -5%;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74,222,128,.08) 0%, transparent 60%);
  animation: afImpGlow 12s ease-in-out infinite reverse;
  pointer-events: none;
}
@keyframes afImpGlow {
  0%, 100% { transform: scale(1); opacity: .6; }
  50%      { transform: scale(1.2); opacity: 1; }
}

.af-imp-g {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 0;
  position: relative;
  z-index: 1;
}

.ai-b {
  padding: 2.5rem 1.5rem;
  text-align: center;
  position: relative;
  transition: all .4s ease;
}

/* Séparateurs verticaux dorés qui s'estompent */
.ai-b:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 15%; right: 0;
  width: 1px; height: 70%;
  background: linear-gradient(to bottom,
    transparent,
    rgba(201,168,76,.3) 20%,
    rgba(232,102,26,.3) 50%,
    rgba(74,222,128,.3) 80%,
    transparent);
}

.ai-b:hover { transform: translateY(-4px); }

/* Grand chiffre - alternance or / vert / or / vert / or */
.ai-v {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2.6rem, 4vw, 3.4rem);
  font-weight: 500;
  line-height: 1;
  margin-bottom: .5rem;
  letter-spacing: -.02em;
  background: linear-gradient(135deg, var(--gold) 0%, var(--or) 50%, var(--gold) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 3px 14px rgba(232,102,26,.35));
  display: inline-block;
  transition: all .4s ease;
}

/* Alternance : positions 2 et 4 en vert (pour l'accent Afrique) */
.ai-b:nth-child(2) .ai-v,
.ai-b:nth-child(4) .ai-v {
  background: linear-gradient(135deg, #4ADE80 0%, #86EFAC 50%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  filter: drop-shadow(0 3px 14px rgba(74,222,128,.35));
}

.ai-b:hover .ai-v { transform: scale(1.06); }

.ai-l {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(240,235,224,.75);
  margin-top: .3rem;
}

/* ═══════════════════════════════════════════════════
   CTA "Rejoignez le Programme"
═══════════════════════════════════════════════════ */
.af-cta {
  background:
    radial-gradient(ellipse at 30% 50%, rgba(232,102,26,.1) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 50%, rgba(74,222,128,.1) 0%, transparent 55%),
    linear-gradient(135deg, #020A16 0%, #07111f 50%, #020A16 100%);
  padding: 5rem 8%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  border-top: 1px solid rgba(201,168,76,.25);
  border-bottom: 1px solid rgba(201,168,76,.25);
  position: relative;
}

.af-cta-tt {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.6rem, 2.8vw, 2.6rem);
  font-weight: 400;
  line-height: 1.2;
  color: #F5F0E4;
  max-width: 560px;
  letter-spacing: -.005em;
}
.af-cta-tt em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(135deg, var(--gold) 0%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

.btn-af {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #020A16;
  background: linear-gradient(135deg, var(--or) 0%, var(--gold) 50%, #4ADE80 100%);
  padding: 1.15rem 2.5rem;
  white-space: nowrap;
  transition: all .4s ease;
  flex-shrink: 0;
  text-decoration: none;
  border: none;
  border-radius: 2px;
  box-shadow: 0 6px 20px rgba(232,102,26,.25), 0 0 28px rgba(74,222,128,.15);
  position: relative;
  overflow: hidden;
}

.btn-af::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,.3),
    transparent);
  transition: left .6s ease;
}

.btn-af:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(232,102,26,.4), 0 0 40px rgba(74,222,128,.25);
}
.btn-af:hover::before { left: 100%; }

@media (max-width: 900px) {
  .af-cg { grid-template-columns: repeat(2,1fr); }
  .af-imp-g { grid-template-columns: repeat(2,1fr); gap: 2rem 0; }
  .ai-b:not(:last-child)::after { display: none; }
  .af-cta { flex-direction: column; text-align: center; gap: 2rem; }
  .af-cta-tt { max-width: none; }
}
@media (max-width: 500px) {
  .af-cg { grid-template-columns: 1fr; }
}

/* ===== CONTACT ===== */
.cnt { background:var(--nv2); padding:8rem 8%; }
.cnt-g { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.ci-it { margin-bottom:1.4rem; }
.ci-l { font-size:.54rem; font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--or); margin-bottom:.28rem; }
.ci-v { font-size:.82rem; font-weight:300; line-height:1.6; color:var(--tx3); }
.ci-v a { color:var(--tx3); transition:color .25s; } .ci-v a:hover { color:var(--gold); }
.c-dv { width:34px; height:1px; background:var(--or); margin:1.8rem 0; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.fg { margin-bottom:.85rem; }
.fg label { display:block; font-size:.53rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--tx2); margin-bottom:.38rem; }
.fg input, .fg select, .fg textarea { width:100%; padding:.82rem 1rem; background:rgba(13,26,45,.85); border:1px solid rgba(201,168,76,.17); font-family:'Montserrat',sans-serif; font-size:.78rem; font-weight:300; color:var(--tx); outline:none; transition:border-color .25s,background .25s; resize:none; -webkit-appearance:none; }
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color:rgba(232,102,26,.55); background:rgba(19,34,53,.9); }
.fg select { cursor:pointer; } .fg select option { background:var(--nv2); }
.f-req { color:var(--or); margin-left:2px; }
.f-note { font-size:.56rem; color:var(--tx2); margin-bottom:.9rem; }
.f-note span { color:var(--or); }
.btn-sub { display:inline-flex; align-items:center; gap:.65rem; font-size:.65rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#fff; background:var(--or); border:none; padding:.95rem 2.2rem; cursor:pointer; transition:background .25s,transform .2s; margin-top:.5rem; }
.btn-sub:hover { background:var(--ork); transform:translateY(-2px); }
.btn-sub:disabled { opacity:.7; cursor:not-allowed; transform:none; }
.f-st { display:none; font-size:.73rem; font-weight:500; line-height:1.5; letter-spacing:.04em; padding:.78rem 1rem; margin-top:.9rem; border-left:3px solid; border-radius:0 2px 2px 0; }
.f-st.ok  { display:block; border-color:#4ADE80; color:#a8f0c0; background:rgba(74,222,128,.08); }
.f-st.err { display:block; border-color:#F87171; color:#fca5a5; background:rgba(248,113,113,.08); }

/* ===== FOOTER ===== */
.f-nm { font-size:.72rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; line-height:1.2; }
.f-nm em { font-style:normal; color:var(--or); }
.f-nav { display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; }
.f-nav a { font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; color:var(--tx2); transition:color .25s; }
.f-nav a:hover { color:var(--gold); }
.f-copy { font-size:.62rem; color:var(--tx2); line-height:1.75; }
.f-copy a { color:var(--gold); }

/* ===== RESPONSIVE ===== */
@media(max-width:1024px) {
  .about-g, .cnt-g { grid-template-columns:1fr; gap:3rem; }
  .srv-g { grid-template-columns:1fr 1fr; }
  
  .mth-g { grid-template-columns:1fr 1fr; }
  .kpis-g { grid-template-columns:1fr 1fr; }
  .tst-g { grid-template-columns:1fr; }
  .clocks-g { grid-template-columns:repeat(2,1fr); }
  .buda-ib { grid-template-columns:1fr; text-align:center; gap:2rem; }
  .buda-stats { justify-content:center; }
  .af-grid { grid-template-columns:1fr; gap:2.5rem; }
  .af-img-st { display:none; }
  .af-cg { grid-template-columns:repeat(2,1fr); }
  .af-imp-g { grid-template-columns:repeat(3,1fr); }
  .af-cta { flex-direction:column; text-align:center; }
  .inf-g { grid-template-columns:1fr; }
}
@media(max-width:640px) {
  .srv-g, 
  .mth-g, .kpis-g { grid-template-columns:1fr 1fr; }
  .clocks-g { grid-template-columns:1fr 1fr; gap:.8rem; }
  .frow { grid-template-columns:1fr; }
  .hero-kpis { gap:1.5rem; flex-wrap:wrap; }
  .sc-grid { grid-template-columns:1fr; }
  .footer-in { flex-direction:column; align-items:flex-start; gap:1.5rem; }
  .f-copy { text-align:left; }
  .about-vis { display:none; }
}
@media(max-width:400px) {
  .clocks-g { grid-template-columns: 1fr 1fr; gap:.5rem; }
  .ck-wr { width:90px; height:90px; }
  .ck { padding:1.4rem .8rem 1.4rem; }
  .ck-city { font-size:.85rem; }
}

/* ══════════════════════════════════════════
   MARQUEE IMAGES STRIP — REDESIGN LUXE INSTITUTIONNEL
══════════════════════════════════════════ */
.img-strip {
  background: linear-gradient(180deg, #020A16 0%, #030C18 100%);
  padding: 2rem 0;
  overflow: hidden;
  position: relative;
  border-top: 1px solid rgba(201,168,76,.18);
  border-bottom: 1px solid rgba(201,168,76,.18);
}
.img-strip::before, .img-strip::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 180px; z-index: 3;
  pointer-events: none;
}
.img-strip::before { left:0;  background: linear-gradient(90deg, #020A16 20%, rgba(2,10,22,.4) 80%, transparent); }
.img-strip::after  { right:0; background: linear-gradient(270deg, #020A16 20%, rgba(2,10,22,.4) 80%, transparent); }

.img-strip-inner {
  display: flex;
  animation: mq 60s linear infinite;
  width: max-content;
}
.img-strip-inner:hover { animation-play-state: paused; }
.img-strip-inner.rev { animation-direction: reverse; }
@keyframes mq { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.img-strip-row { display: flex; gap: 18px; padding: 0 9px; }

.iscard {
  position: relative;
  width: 340px; height: 220px;
  overflow: hidden;
  flex-shrink: 0;
  cursor: pointer;
  border-radius: 4px;
  border: 1px solid rgba(201,168,76,.12);
  box-shadow:
    0 8px 24px rgba(0,0,0,.35),
    0 2px 6px rgba(0,0,0,.2),
    inset 0 1px 0 rgba(255,255,255,.04);
  transition:
    transform .5s cubic-bezier(.4,0,.2,1),
    border-color .5s ease,
    box-shadow .5s ease;
}
.iscard::after {
  /* Liseré doré intérieur au survol */
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  pointer-events: none;
  transition: border-color .5s ease;
  z-index: 5;
  border-radius: 4px;
}
.iscard:hover {
  transform: translateY(-6px);
  border-color: rgba(201,168,76,.45);
  box-shadow:
    0 18px 40px rgba(0,0,0,.5),
    0 6px 14px rgba(232,102,26,.15),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.iscard:hover::after {
  border-color: rgba(232,102,26,.35);
}
.iscard.tall { height: 280px; }

.iscard img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.82) saturate(.92) contrast(1.02);
  transition: transform .9s cubic-bezier(.4,0,.2,1), filter .5s;
}
.iscard:hover img {
  transform: scale(1.1);
  filter: brightness(1) saturate(1.1) contrast(1.05);
}

/* Dégradé sombre en bas pour lisibilité du texte */
.iscard-ov {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(2,10,22,.92) 0%, rgba(2,10,22,.65) 20%, rgba(2,10,22,.15) 45%, transparent 60%),
    linear-gradient(to bottom, rgba(2,10,22,.25) 0%, transparent 25%);
  transition: opacity .4s;
  z-index: 2;
}
.iscard:hover .iscard-ov {
  background:
    linear-gradient(to top, rgba(2,10,22,.95) 0%, rgba(2,10,22,.75) 25%, rgba(2,10,22,.2) 50%, transparent 65%);
}

.iscard-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 1.1rem 1.1rem 1.2rem;
  transform: translateY(6px);
  transition: transform .45s cubic-bezier(.4,0,.2,1);
  z-index: 4;
}
.iscard:hover .iscard-label { transform: translateY(0); }

.iscard-cat {
  font-size: .48rem; font-weight: 700; letter-spacing: .28em;
  text-transform: uppercase; margin-bottom: .45rem;
  display: inline-block;
  padding: .25rem .6rem;
  background: rgba(2,10,22,.6);
  border: 1px solid rgba(201,168,76,.18);
  border-radius: 2px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.iscard-cat.ec { color: #FFA96B; border-color: rgba(232,102,26,.3); }
.iscard-cat.cc { color: #E8C976; border-color: rgba(201,168,76,.3); }
.iscard-cat.fc { color: #7FEEE5; border-color: rgba(26,212,200,.3); }
.iscard-cat.ac { color: #86F1A7; border-color: rgba(74,222,128,.3); }
.iscard-cat.ic { color: #B696EB; border-color: rgba(147,112,219,.3); }

.iscard-name {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 1.25;
  color: #F5F0E4;
  letter-spacing: .005em;
  text-shadow: 0 2px 8px rgba(0,0,0,.7);
}

/* Drapeau du pays — plus raffiné */
.iscard-flag {
  position: absolute; top: .9rem; right: 1rem;
  font-size: 1.25rem;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.75));
  z-index: 4;
  transition: transform .4s ease;
}
.iscard:hover .iscard-flag {
  transform: scale(1.12);
}

/* Badge montant — design luxe */
.iscard-val {
  position: absolute; top: .85rem; left: 1rem;
  font-family: 'Courier New', 'Courier', monospace;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .18em;
  color: #E8C976;
  background: rgba(2,10,22,.78);
  padding: .35rem .7rem;
  border: 1px solid rgba(201,168,76,.28);
  border-radius: 2px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 10px rgba(0,0,0,.4);
  z-index: 4;
  transition: all .4s ease;
}
.iscard:hover .iscard-val {
  background: rgba(232,102,26,.92);
  border-color: rgba(255,255,255,.35);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(232,102,26,.4);
}

/* Two-row variant */
.img-strip-2rows {
  display: flex;
  flex-direction: column;
  gap: 18px;
  overflow: hidden;
}
.img-strip-2rows .img-strip-inner { animation-duration: 75s; }
.img-strip-2rows .img-strip-inner:last-child { animation-duration: 68s; animation-direction: reverse; }

/* ══════════════════════════════════════════
   FULL-BLEED SECTION DIVIDER BANNERS — LUXE PREMIUM
══════════════════════════════════════════ */
.sec-banner {
  position: relative;
  min-height: 480px;
  overflow: hidden;
  background: #020A16;
  margin: 2rem 2.5rem;
  border-radius: 3px;
}

/* Encadrement lumineux animé autour de la bannière */
.sec-banner::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 4px;
  background: linear-gradient(135deg,
    rgba(232,102,26,.85) 0%,
    rgba(201,168,76,1) 25%,
    rgba(232,102,26,.85) 50%,
    rgba(201,168,76,1) 75%,
    rgba(232,102,26,.85) 100%);
  background-size: 300% 300%;
  opacity: 0;
  animation: secBannerFadeIn 1s ease-out .4s forwards, secBannerGlow 8s linear 1.4s infinite;
  z-index: 0;
  filter: blur(1px);
}

/* Halo externe pulsant */
.sec-banner::after {
  content: '';
  position: absolute;
  inset: -16px;
  border-radius: 8px;
  background: radial-gradient(ellipse at center,
    rgba(232,102,26,.22) 0%,
    rgba(201,168,76,.14) 35%,
    transparent 70%);
  z-index: -1;
  opacity: 0;
  animation: secBannerFadeIn 1s ease-out .4s forwards, secBannerPulse 5s ease-in-out 1.4s infinite;
  pointer-events: none;
}

@keyframes secBannerFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes secBannerGlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes secBannerPulse {
  0%, 100% { opacity: .5; transform: scale(1); }
  50%      { opacity: .9; transform: scale(1.02); }
}

/* Conteneur intérieur de la bannière (pour contenir l'image dans le cadre) */
.sec-banner > * {
  position: relative;
  z-index: 1;
}

.sec-banner img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(.78) saturate(1.05) contrast(1.05);
  transform: scale(1.02);
  transition: transform 10s ease, filter 1s ease;
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 2px;
}
.sec-banner:hover img {
  transform: scale(1);
  filter: brightness(.88) saturate(1.15) contrast(1.08);
}

.sec-banner-ov {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg,
      rgba(2,10,22,.35) 0%,
      rgba(2,10,22,.15) 40%,
      rgba(2,10,22,.55) 100%),
    radial-gradient(ellipse 60% 80% at center,
      rgba(2,10,22,.15) 0%,
      rgba(2,10,22,.55) 100%);
  z-index: 2;
  border-radius: 2px;
}

.sec-banner-content {
  position: relative; z-index: 3;
  min-height: 480px;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: .8rem;
  text-align: center;
  padding: 5rem 2rem;
}

.sec-banner-tag {
  font-size: .58rem; font-weight: 700; letter-spacing: .35em;
  text-transform: uppercase; color: var(--or);
  display: flex; align-items: center; gap: .9rem;
  margin-bottom: .4rem;
  text-shadow: 0 2px 10px rgba(0,0,0,.8);
}
.sec-banner-tag::before,
.sec-banner-tag::after {
  content: ''; width: 40px; height: 1px;
  background: linear-gradient(to right, transparent, var(--or));
}
.sec-banner-tag::after {
  background: linear-gradient(to left, transparent, var(--or));
}

.sec-banner-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 400;
  line-height: 1.12;
  color: #F5F0E4;
  letter-spacing: -.005em;
  text-shadow: 0 4px 20px rgba(0,0,0,.95), 0 0 40px rgba(2,10,22,.7);
  margin: 0;
}
.sec-banner-title em {
  font-style: italic;
  color: var(--gold);
  font-weight: 500;
  text-shadow: 0 4px 20px rgba(0,0,0,.95), 0 0 30px rgba(201,168,76,.3);
}

.sec-banner-sub {
  font-size: .78rem; font-weight: 300; letter-spacing: .14em;
  color: rgba(245,240,228,.9);
  max-width: 580px; line-height: 1.75;
  margin-top: .6rem;
  text-shadow: 0 2px 10px rgba(0,0,0,.8);
}

.sec-banner-line {
  width: 70px; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), var(--or), var(--gold), transparent);
  margin-top: 1.2rem;
  box-shadow: 0 0 20px rgba(201,168,76,.5);
}

@media (max-width: 900px) {
  .sec-banner { min-height: 280px; margin: 1rem; }
  .sec-banner-content { min-height: 280px; padding: 3rem 1.5rem; }
}

/* ═══════════════════════════════════════════════
   KPIS BAND — style premium amélioré
═══════════════════════════════════════════════ */
.kpis {
  background: linear-gradient(180deg, #020A16 0%, #030C18 60%, #020A16 100%);
  padding: 5rem 8%;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(201,168,76,.12);
}
.kpis::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(232,102,26,.05) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 50%, rgba(201,168,76,.04) 0%, transparent 50%);
  pointer-events: none;
}
.kpis::after {
  /* Petites lignes décoratives haut/bas */
  content: '';
  position: absolute;
  left: 50%; top: 1rem;
  transform: translateX(-50%);
  width: 60px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--or), transparent);
}

.kpis-g {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  position: relative;
  z-index: 1;
  gap: 0;
}

.ki {
  padding: 2rem 2rem;
  border-right: 1px solid rgba(201,168,76,.1);
  text-align: center;
  position: relative;
  transition: all .45s ease;
}
.ki:last-child { border-right: none; }
.ki::before {
  /* Séparateur vertical décoratif doré au centre */
  content: '';
  position: absolute;
  top: 50%; right: -1px;
  transform: translateY(-50%);
  width: 1px; height: 40%;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,.3), transparent);
}
.ki:last-child::before { display: none; }

.ki:hover {
  transform: translateY(-4px);
}

.ki-ic {
  margin: 0 auto 1.2rem;
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(232,102,26,.08);
  border: 1px solid rgba(201,168,76,.15);
  border-radius: 50%;
  transition: all .4s ease;
}
.ki:hover .ki-ic {
  background: rgba(232,102,26,.15);
  border-color: rgba(232,102,26,.4);
  box-shadow: 0 0 24px rgba(232,102,26,.25);
  transform: scale(1.05);
}
.ki-ic svg { width: 30px; height: 30px; }

.ki-v {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2.6rem, 4vw, 3.6rem);
  font-weight: 400;
  color: transparent;
  background: linear-gradient(135deg, var(--gold) 0%, var(--or) 50%, var(--gold) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  line-height: 1;
  margin-bottom: .5rem;
  letter-spacing: -.015em;
  display: inline-block;
}

.ki-l {
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(240,235,224,.6);
  margin-top: .2rem;
}

@media (max-width: 900px) {
  .sec-banner { min-height: 280px; }
  .sec-banner-content { min-height: 280px; padding: 3rem 1.5rem; }
  .kpis { padding: 3rem 6%; }
  .kpis-g { grid-template-columns: 1fr 1fr; gap: 2rem 0; }
  .ki { padding: 1.5rem 1rem; }
  .ki:nth-child(even) { border-right: none; }
}


/* ══ BILINGUAL DISPLAY FIX — see top of stylesheet ══ */









/* ══════════════════════════════════════════
   BANK TICKER — TOP BAR
══════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════
   DOUBLE LIVE MARKET TICKER - PREMIUM (US + CAC 40)
═══════════════════════════════════════════════════════ */

/* Conteneur stack pour les 2 lignes */
.bk-stack {
  position: fixed;
  top: 0; left: 0; right: 0; z-index: 500;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #010710 0%, #020c18 100%);
  box-shadow:
    0 6px 24px rgba(0,0,0,.7),
    inset 0 -1px 0 rgba(201,168,76,.15);
}

/* Chaque ligne du ticker */
.bk-row {
  position: relative;
  height: var(--H_BK);
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border-bottom: 1px solid rgba(201,168,76,.15);
}
.bk-row:last-child { border-bottom: 1px solid rgba(201,168,76,.3); }

/* Variante US — un peu plus sombre */
.bk-row-us {
  background: linear-gradient(180deg, #010710 0%, #020c18 50%, #010710 100%);
}
/* Variante FR — légère touche bleue plus profonde */
.bk-row-fr {
  background: linear-gradient(180deg, #010812 0%, #021022 50%, #010812 100%);
}

/* Compatibilité ancien sélecteur .bk pour legacy */
.bk:not(.bk-row) {
  position: fixed;
  top: 0; left: 0; right: 0; z-index: 500;
  height: var(--H_BK);
  background: linear-gradient(180deg, #010710 0%, #020c18 50%, #010710 100%);
  border-bottom: 1px solid rgba(201,168,76,.3);
  display: flex;
  align-items: stretch;
  overflow: hidden;
  box-shadow:
    0 4px 20px rgba(0,0,0,.6),
    inset 0 -1px 0 rgba(201,168,76,.1),
    inset 0 1px 0 rgba(201,168,76,.05);
}

/* Badge LIVE - gauche */
.bk-badge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: 0 1.2rem 0 1.1rem;
  background: linear-gradient(135deg, #010710 0%, #020c18 100%);
  border-right: 1px solid rgba(201,168,76,.35);
  box-shadow:
    inset -1px 0 0 rgba(0,0,0,.5),
    2px 0 8px rgba(0,0,0,.5);
  z-index: 4;
  min-width: 160px;
  position: relative;
}
.bk-badge::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232,102,26,.6), transparent);
}
.bk-badge-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bk-badge-top {
  font-size: .5rem;
  font-weight: 800;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--or);
  white-space: nowrap;
  text-shadow: 0 0 10px rgba(232,102,26,.4);
}
.bk-badge-sub {
  font-size: .42rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(245,217,122,.6);
  white-space: nowrap;
}
.bk-live-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #4ADE80;
  box-shadow:
    0 0 8px rgba(74,222,128,1),
    0 0 12px rgba(74,222,128,.6);
  animation: liveblink 1.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes liveblink {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .3; transform: scale(.85); }
}

/* Fade edges */
.bk-fade-l, .bk-fade-r {
  position: absolute;
  top: 0; bottom: 0;
  width: 70px;
  z-index: 3;
  pointer-events: none;
}
.bk-fade-l {
  left: 160px;
  background: linear-gradient(90deg, #010710 0%, rgba(2,12,24,.6) 60%, transparent);
}
.bk-fade-r {
  right: 0;
  background: linear-gradient(270deg, #010710 0%, rgba(2,12,24,.6) 60%, transparent);
}

/* Scroll container */
.bk-scroll-wrap {
  flex: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  position: relative;
}
.bk-scroll {
  display: flex;
  align-items: center;
  white-space: nowrap;
  animation: bkscroll 220s linear infinite;
  will-change: transform;
}
.bk-scroll:hover { animation-play-state: paused; }
@keyframes bkscroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Item individuel - beaucoup plus premium */
.bki {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  padding: 0 1.6rem;
  height: var(--H_BK);
  border-right: 1px solid rgba(201,168,76,.1);
  flex-shrink: 0;
  transition: all .3s ease;
  cursor: default;
  position: relative;
}

.bki:hover {
  background: linear-gradient(180deg, rgba(245,217,122,.06), transparent);
}
.bki:hover::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  box-shadow: 0 0 8px rgba(245,217,122,.5);
}

/* Logo premium (monogramme dans cercle dégradé) */
.bki-logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
  transition: transform .3s ease, filter .3s ease;
}
.bki:hover .bki-logo {
  transform: scale(1.08) rotate(-2deg);
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.5)) drop-shadow(0 0 8px rgba(245,217,122,.3));
}
.bki-logo svg { display: block; }

/* Nom complet + symbole */
.bki-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.1;
  min-width: 0;
}
.bki-name {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #F5F0E4;
  white-space: nowrap;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
}
.bki-sym {
  font-size: .46rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(245,217,122,.65);
  font-variant-numeric: tabular-nums;
}
.bki-sym em {
  font-style: normal;
  font-weight: 500;
  letter-spacing: .08em;
  color: rgba(168,180,200,.7);
  text-transform: lowercase;
}

/* Couleurs spéciales par catégorie pour les noms */
.bki-oil .bki-name  { color: #F5B88A; }
.bki-gas .bki-name  { color: #95C6FF; }
.bki-gold .bki-name { color: #F5D97A; }

/* Hover effect color per category */
.bki-oil:hover  .bki-logo { filter: drop-shadow(0 3px 8px rgba(232,102,26,.5)) drop-shadow(0 0 10px rgba(232,102,26,.4)); }
.bki-gas:hover  .bki-logo { filter: drop-shadow(0 3px 8px rgba(74,159,255,.5)) drop-shadow(0 0 10px rgba(74,159,255,.4)); }
.bki-gold:hover .bki-logo { filter: drop-shadow(0 3px 8px rgba(245,217,122,.6)) drop-shadow(0 0 10px rgba(245,217,122,.5)); }

/* Séparateur - doré lumineux */
.bki-sep {
  width: 1px;
  height: 24px;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,.4), transparent);
  flex-shrink: 0;
}

/* Bloc prix */
.bki-data {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-variant-numeric: tabular-nums;
}
.bki-price {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .02em;
  color: #FFFFFF;
  line-height: 1;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}
.bki-change {
  font-size: .54rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
  display: flex;
  align-items: center;
  gap: .22rem;
}
.bki-change.up {
  color: #4ADE80;
  text-shadow: 0 0 6px rgba(74,222,128,.35);
}
.bki-change.dn {
  color: #FF5F6D;
  text-shadow: 0 0 6px rgba(255,95,109,.35);
}
.bki-arrow {
  font-size: .52rem;
  line-height: 1;
}
.bki-pct {
  opacity: .85;
  font-weight: 600;
}

/* Market status pill */
.bk-status {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: 0 1rem;
  border-left: 1px solid rgba(201,168,76,.15);
  margin-left: auto;
  background: #010710;
}
.bk-status-txt {
  font-size: .44rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #4ADE80;
  white-space: nowrap;
}


/* ══════════════════════════════════════════
   PROJECTS MARQUEE — STATIC SECTION
══════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════
   BANDEAU PROJETS MONDIAUX — VERSION LUMINEUSE PREMIUM (v128)
═══════════════════════════════════════════════════════ */
.proj-band {
  background: 
    linear-gradient(180deg, rgba(7,17,31,.3) 0%, rgba(232,102,26,.05) 50%, rgba(7,17,31,.3) 100%),
    linear-gradient(90deg, #030a16 0%, #07111f 20%, #0a1628 50%, #07111f 80%, #030a16 100%);
  border-top: 1px solid rgba(232,102,26,.4);
  border-bottom: 1px solid rgba(232,102,26,.4);
  overflow: hidden;
  position: relative;
  padding: 0;
  box-shadow: 
    0 0 30px rgba(232,102,26,.1) inset,
    0 10px 40px rgba(0,0,0,.4);
}

/* Lignes dorées lumineuses haut et bas */
.proj-band::before, .proj-band::after {
  content: '';
  position: absolute; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(201,168,76,.3) 10%,
    rgba(232,102,26,.7) 35%,
    rgba(245,217,122,.95) 50%,
    rgba(232,102,26,.7) 65%,
    rgba(201,168,76,.3) 90%,
    transparent 100%);
  box-shadow: 0 0 12px rgba(245,217,122,.5);
  z-index: 5;
  pointer-events: none;
}
.proj-band::before { top: 0; }
.proj-band::after  { bottom: 0; }

/* Dégradés de fade sur les bords */
.proj-band-rows {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.proj-band-rows::before, .proj-band-rows::after {
  content: '';
  position: absolute; top: 0; bottom: 0;
  width: 160px; z-index: 3; pointer-events: none;
}
.proj-band-rows::before {
  left: 0;
  background: linear-gradient(90deg, #07111f 0%, rgba(7,17,31,.9) 30%, transparent 100%);
}
.proj-band-rows::after {
  right: 0;
  background: linear-gradient(-90deg, #07111f 0%, rgba(7,17,31,.9) 30%, transparent 100%);
}

/* Header row — PREMIUM LUMINEUX */
.proj-band-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 8% 1.2rem;
  border-bottom: 1px solid rgba(232,102,26,.25);
  background: 
    radial-gradient(ellipse at 50% 0%, rgba(232,102,26,.15) 0%, transparent 60%),
    rgba(7,17,31,.6);
  position: relative;
  z-index: 2;
}
.proj-band-hdr-l {
  display: flex;
  align-items: center;
  gap: 1.3rem;
}

/* TITRE "PROJETS MONDIAUX EN DIRECT" — BIEN VISIBLE */
.proj-band-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .32em;
  text-transform: uppercase;
  background: linear-gradient(135deg, #f5d97a 0%, #e8661a 50%, #f5d97a 100%);
  background-size: 200% auto;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  text-shadow: 0 0 20px rgba(245,217,122,.2);
  animation: pbTitleShimmer 3.5s linear infinite;
}
@keyframes pbTitleShimmer {
  0%   { background-position: 0% center; }
  100% { background-position: 200% center; }
}

/* Sous-titre "20 projets actifs..." */
.proj-band-subtitle {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  font-weight: 400;
  font-style: italic;
  color: var(--tx);
  letter-spacing: .02em;
  text-shadow: 0 0 10px rgba(201,168,76,.15);
}

/* Séparateur vertical lumineux */
.proj-band-vr {
  width: 1px; height: 32px;
  background: linear-gradient(180deg, transparent 0%, rgba(232,102,26,.6) 50%, transparent 100%);
  box-shadow: 0 0 8px rgba(232,102,26,.4);
}

/* Catégories à droite — plus visibles */
.proj-band-hdr-r {
  font-family: 'Montserrat', sans-serif;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: .8rem;
  text-shadow: 0 0 8px rgba(201,168,76,.3);
}
.proj-band-hdr-r::before {
  content: '';
  width: 28px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--or), var(--gold));
  box-shadow: 0 0 6px rgba(245,217,122,.4);
}

/* Point "live" rouge/orange qui clignote */
.proj-band-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: radial-gradient(circle, #ff6b2c 0%, #e8661a 60%, #d95610 100%);
  box-shadow: 
    0 0 10px rgba(232,102,26,.9),
    0 0 20px rgba(232,102,26,.5);
  animation: pbLiveBlink 1.2s ease-in-out infinite;
  flex-shrink: 0;
  position: relative;
}
.proj-band-dot::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1.5px solid rgba(232,102,26,.5);
  animation: pbLivePulse 1.8s ease-out infinite;
}
@keyframes pbLiveBlink {
  0%, 100% { opacity: 1;   transform: scale(1);   box-shadow: 0 0 10px rgba(232,102,26,.9), 0 0 20px rgba(232,102,26,.5); }
  50%      { opacity: .55; transform: scale(.85); box-shadow: 0 0 6px rgba(232,102,26,.5), 0 0 10px rgba(232,102,26,.2); }
}
@keyframes pbLivePulse {
  0%   { transform: scale(1);   opacity: 1; }
  100% { transform: scale(2.6); opacity: 0; }
}

/* ══════════════════════════════════════════════════
   SCROLLING ROWS — ANIMATIONS LUMINEUSES
═══════════════════════════════════════════════════════ */
.proj-band-row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid rgba(232,102,26,.08);
  overflow: hidden;
  position: relative;
}
.proj-band-row:last-child { border-bottom: none; }

.proj-band-scroll {
  display: flex;
  align-items: center;
  white-space: nowrap;
  animation: pbscroll 60s linear infinite;
}
.proj-band-row:last-child .proj-band-scroll {
  animation-direction: reverse;
  animation-duration: 55s;
}
.proj-band-scroll:hover { animation-play-state: paused; }
@keyframes pbscroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ═══ CARTE PROJET : plus lumineuse ═══ */
.pj {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 2.2rem;
  border-right: 1px solid rgba(201,168,76,.1);
  flex-shrink: 0;
  transition: all .35s cubic-bezier(.4,0,.2,1);
  min-width: 0;
  position: relative;
}
.pj::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(232,102,26,.08) 50%, transparent 100%);
  opacity: 0;
  transition: opacity .35s;
  pointer-events: none;
}
.pj:hover {
  background: rgba(232,102,26,.05);
}
.pj:hover::before { opacity: 1; }

/* Icône catégorie — plus brillante */
.pj-icon {
  width: 38px; height: 38px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  position: relative;
  transition: all .35s;
}
.pj:hover .pj-icon {
  transform: scale(1.1);
}
.pj-icon svg { display: block; width: 20px; height: 20px; }
.pj-ic-en { 
  background: linear-gradient(135deg, rgba(232,102,26,.2) 0%, rgba(232,102,26,.08) 100%);  
  border: 1px solid rgba(232,102,26,.5);
  box-shadow: 0 0 12px rgba(232,102,26,.2);
}
.pj-ic-co { 
  background: linear-gradient(135deg, rgba(201,168,76,.2) 0%, rgba(201,168,76,.08) 100%);
  border: 1px solid rgba(201,168,76,.5);
  box-shadow: 0 0 12px rgba(201,168,76,.2);
}
.pj-ic-fi { 
  background: linear-gradient(135deg, rgba(26,212,200,.2) 0%, rgba(26,212,200,.06) 100%);
  border: 1px solid rgba(26,212,200,.5);
  box-shadow: 0 0 12px rgba(26,212,200,.2);
}
.pj-ic-af { 
  background: linear-gradient(135deg, rgba(74,222,128,.2) 0%, rgba(74,222,128,.06) 100%);
  border: 1px solid rgba(74,222,128,.5);
  box-shadow: 0 0 12px rgba(74,222,128,.2);
}
.pj-ic-in { 
  background: linear-gradient(135deg, rgba(147,112,219,.2) 0%, rgba(147,112,219,.06) 100%);
  border: 1px solid rgba(147,112,219,.5);
  box-shadow: 0 0 12px rgba(147,112,219,.2);
}

/* Info projet */
.pj-info { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.pj-meta {
  display: flex; align-items: center; gap: .6rem;
}

/* Catégorie — plus visible */
.pj-cat {
  font-family: 'Montserrat', sans-serif;
  font-size: .55rem; font-weight: 800; letter-spacing: .25em;
  text-transform: uppercase; flex-shrink: 0;
  text-shadow: 0 0 8px currentColor;
  filter: drop-shadow(0 0 4px currentColor);
}
.pj-cat-en  { color: #ff7a3a; }
.pj-cat-co  { color: #f5d97a; }
.pj-cat-fi  { color: #3ee0d4; }
.pj-cat-af  { color: #6ef598; }
.pj-cat-in  { color: #b394f0; }

.pj-flag { font-size: 1.1rem; flex-shrink: 0; filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); }

.pj-country {
  font-family: 'Montserrat', sans-serif;
  font-size: .55rem; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: #c2c7d0; flex-shrink: 0;
}

.pj-name-row {
  display: flex; align-items: center; gap: .9rem;
}

/* NOM DU PROJET — bien visible */
.pj-name {
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem; font-weight: 700; letter-spacing: .02em;
  color: #fff; white-space: nowrap;
  text-shadow: 0 0 12px rgba(255,255,255,.1);
}

/* VALEUR $ — mise en valeur forte */
.pj-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem; font-weight: 600;
  letter-spacing: .03em;
  flex-shrink: 0;
  background: linear-gradient(135deg, #f5d97a 0%, #e8661a 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  filter: drop-shadow(0 0 6px rgba(245,217,122,.3));
}

/* STATUT — badge plus marqué */
.pj-status {
  font-family: 'Montserrat', sans-serif;
  font-size: .48rem; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase; padding: .25rem .65rem;
  flex-shrink: 0;
  border-radius: 2px;
  border: 1px solid transparent;
}
.pjs-live  { 
  background: rgba(74,222,128,.15);  
  color: #6ef598;
  border-color: rgba(74,222,128,.4);
  box-shadow: 0 0 8px rgba(74,222,128,.15);
}
.pjs-sign  { 
  background: rgba(245,217,122,.15);  
  color: #f5d97a;
  border-color: rgba(245,217,122,.4);
  box-shadow: 0 0 8px rgba(245,217,122,.15);
}
.pjs-dev   { 
  background: rgba(232,102,26,.15);  
  color: #ff7a3a;
  border-color: rgba(232,102,26,.4);
  box-shadow: 0 0 8px rgba(232,102,26,.15);
}
.pjs-close { 
  background: rgba(147,112,219,.15); 
  color: #b394f0;
  border-color: rgba(147,112,219,.4);
  box-shadow: 0 0 8px rgba(147,112,219,.15);
}

/* Separator between cards */
.pj-card-sep {
  width: 1px; height: 32px;
  background: linear-gradient(180deg, transparent, rgba(232,102,26,.3), transparent);
  flex-shrink: 0;
  margin: 0 .5rem;
}

/* Responsive */
@media (max-width: 900px) {
  .proj-band-hdr { padding: 1rem 5% .9rem; flex-direction: column; gap: .6rem; align-items: flex-start; }
  .proj-band-hdr-r { font-size: .52rem; }
  .proj-band-title { font-size: .68rem; letter-spacing: .22em; }
  .proj-band-subtitle { font-size: .95rem; }
}


/* ══════════════════════════════════════════
   BILINGUAL SYSTEM — SMART DISPLAY
   Uses element-aware selectors to avoid
   breaking flex/grid/inline contexts
══════════════════════════════════════════ */

/* Default state: show FR, hide EN */
/* Block-level bilingual elements */
div.fr, h1.fr, h2.fr, h3.fr, h4.fr, p.fr,
blockquote.fr, section.fr, article.fr,
.stag.fr, .stitle.fr, .slead.fr,
.af-stag.fr, .af-stitle.fr,
.hero-lbl.fr, .hero-sub.fr,
.sec-banner-tag.fr, .sec-banner-title.fr, .sec-banner-sub.fr,
.buda-tt > .fr, .buda-cs > .fr, .buda-pl.fr,
.proj-band-title.fr, .proj-band-subtitle.fr, .proj-band-hdr-r.fr,
.nav-sub.fr, .about-ld.fr, .af-ld.fr,
.buda-sv + .fr, .buda-sl.fr,
div[class*="fr"], h2[class*=" fr"],
.ci-l.fr, .ci-v.fr {
  display: block;
}
/* Inline bilingual spans */
span.fr { display: inline; }

/* EN versions: hidden by default */
div.en, h1.en, h2.en, h3.en, h4.en, p.en,
blockquote.en, section.en, article.en,
.stag.en, .stitle.en, .slead.en,
.af-stag.en, .af-stitle.en,
.hero-lbl.en, .hero-sub.en,
.sec-banner-tag.en, .sec-banner-title.en, .sec-banner-sub.en,
.buda-pl.en, .proj-band-title.en, .proj-band-subtitle.en, .proj-band-hdr-r.en,
.nav-sub.en, .about-ld.en, .af-ld.en {
  display: none;
}
span.en { display: none; }

/* EN mode: flip all */
body.is-en div.fr, body.is-en h1.fr, body.is-en h2.fr, body.is-en h3.fr,
body.is-en h4.fr, body.is-en p.fr, body.is-en blockquote.fr,
body.is-en .stag.fr, body.is-en .stitle.fr, body.is-en .slead.fr,
body.is-en .af-stag.fr, body.is-en .af-stitle.fr,
body.is-en .hero-lbl.fr, body.is-en .hero-sub.fr,
body.is-en .sec-banner-tag.fr, body.is-en .sec-banner-title.fr, body.is-en .sec-banner-sub.fr,
body.is-en .buda-pl.fr, body.is-en .proj-band-title.fr, body.is-en .proj-band-subtitle.fr,
body.is-en .proj-band-hdr-r.fr, body.is-en .nav-sub.fr, body.is-en .about-ld.fr,
body.is-en .af-ld.fr {
  display: none;
}
body.is-en span.fr { display: none; }

body.is-en div.en, body.is-en h1.en, body.is-en h2.en, body.is-en h3.en,
body.is-en h4.en, body.is-en p.en, body.is-en blockquote.en,
body.is-en .stag.en, body.is-en .stitle.en, body.is-en .slead.en,
body.is-en .af-stag.en, body.is-en .af-stitle.en,
body.is-en .hero-lbl.en, body.is-en .hero-sub.en,
body.is-en .sec-banner-tag.en, body.is-en .sec-banner-title.en, body.is-en .sec-banner-sub.en,
body.is-en .buda-pl.en, body.is-en .proj-band-title.en, body.is-en .proj-band-subtitle.en,
body.is-en .proj-band-hdr-r.en, body.is-en .nav-sub.en, body.is-en .about-ld.en,
body.is-en .af-ld.en {
  display: block;
}
body.is-en span.en { display: inline; }

/* Override for flex containers (stag, proj-band-hdr-r) */
.stag.fr, .stag.en,
.proj-band-hdr-r.fr, .proj-band-hdr-r.en,
.af-stag.fr, .af-stag.en { display: flex; }
.stag.en, .proj-band-hdr-r.en, .af-stag.en { display: none; }
body.is-en .stag.fr, body.is-en .proj-band-hdr-r.fr, body.is-en .af-stag.fr { display: none; }
body.is-en .stag.en, body.is-en .proj-band-hdr-r.en, body.is-en .af-stag.en { display: flex; }

/* Inline-block elements */
.fri { display: inline; }
.eni { display: none;   }
body.is-en .fri { display: none;   }
body.is-en .eni { display: inline; }

/* Method dot enhancement */
.mth-d {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  letter-spacing: .05em;
}


/* ══════════════════════════════════════════
   HERO LAYOUT — TWO COLUMNS
══════════════════════════════════════════ */
.hero-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
  width: 100%;
}
@media(max-width:1024px) { .hero-layout { grid-template-columns: 1fr; } }
@media(max-width:1024px) { .hero-right-panel { display:none; } }

/* Right panel */
.hero-right-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  height: 520px;
}

/* Central globe */
.globe-wrap {
  position: relative;
  width: 320px;
  height: 320px;
  flex-shrink: 0;
}
.globe-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  animation: ring-spin linear infinite;
}
.globe-ring-1 {
  width: 220px; height: 220px;
  border-color: rgba(232,102,26,.35);
  animation-duration: 18s;
}
.globe-ring-2 {
  width: 280px; height: 280px;
  border-color: rgba(201,168,76,.2);
  animation-duration: 26s;
  animation-direction: reverse;
  border-style: dashed;
}
.globe-ring-3 {
  width: 320px; height: 320px;
  border-color: rgba(201,168,76,.1);
  animation-duration: 35s;
}
@keyframes ring-spin {
  from { transform: translate(-50%,-50%) rotate(0deg); }
  to   { transform: translate(-50%,-50%) rotate(360deg); }
}

/* Central core */
.globe-core {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 140px; height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 35%,
    rgba(232,102,26,.18) 0%,
    rgba(201,168,76,.06) 45%,
    rgba(7,17,31,.9) 100%
  );
  border: 1px solid rgba(232,102,26,.3);
  box-shadow:
    0 0 40px rgba(232,102,26,.12),
    0 0 80px rgba(201,168,76,.05),
    inset 0 0 30px rgba(232,102,26,.06);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pulse-core 3s ease-in-out infinite;
}
@keyframes pulse-core {
  0%,100% { box-shadow: 0 0 40px rgba(232,102,26,.12), 0 0 80px rgba(201,168,76,.05), inset 0 0 30px rgba(232,102,26,.06); }
  50%      { box-shadow: 0 0 60px rgba(232,102,26,.22), 0 0 100px rgba(201,168,76,.1),  inset 0 0 40px rgba(232,102,26,.1); }
}
.globe-core-inner {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.8rem;
  font-weight: 300;
  color: var(--gold);
  text-align: center;
  line-height: 1;
}
.globe-core-inner small {
  display: block;
  font-size: .45rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--or);
  margin-top: 4px;
}

/* Orbiting dots */
.orbit-dot {
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
}
.orbit-dot::after {
  content: '';
  position: absolute;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--or);
  box-shadow: 0 0 8px rgba(232,102,26,.8);
  transform: translate(-50%,-50%);
  animation: dot-pulse 2s ease-in-out infinite;
}
.orbit-dot-1 { animation: orbit1 12s linear infinite; }
.orbit-dot-2 { animation: orbit2 16s linear infinite; }
.orbit-dot-3 { animation: orbit3 20s linear infinite; }
.orbit-dot-4 { animation: orbit4 14s linear infinite; }
.orbit-dot-4::after { background: var(--gold); box-shadow: 0 0 8px rgba(201,168,76,.8); }
.orbit-dot-5 { animation: orbit5 22s linear infinite; }
.orbit-dot-5::after { background: var(--gold); box-shadow: 0 0 8px rgba(201,168,76,.8); }

@keyframes orbit1 { from { transform: rotate(0deg)   translateX(110px); } to { transform: rotate(360deg)  translateX(110px); } }
@keyframes orbit2 { from { transform: rotate(72deg)  translateX(140px); } to { transform: rotate(432deg) translateX(140px); } }
@keyframes orbit3 { from { transform: rotate(144deg) translateX(110px); } to { transform: rotate(504deg) translateX(110px); } }
@keyframes orbit4 { from { transform: rotate(216deg) translateX(140px); } to { transform: rotate(576deg) translateX(140px); } }
@keyframes orbit5 { from { transform: rotate(288deg) translateX(160px); } to { transform: rotate(648deg) translateX(160px); } }
@keyframes dot-pulse { 0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1} 50%{transform:translate(-50%,-50%) scale(1.6);opacity:.6} }

/* Continent labels around globe */
.globe-label {
  position: absolute;
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tx2);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: .4rem;
  animation: label-float 4s ease-in-out infinite;
}
.globe-label::before {
  content: '';
  width: 16px; height: 1px;
  background: rgba(201,168,76,.4);
  flex-shrink: 0;
}
.gl-europe  { top: 10%;  left: 55%; }
.gl-asia    { top: 28%;  right: 5%; }
.gl-usa     { top: 40%;  left: 2%;  }
.gl-mena    { bottom: 32%; right: 8%; }
.gl-africa  { bottom: 15%; left: 8%; color: #4ADE80; }
.gl-africa::before { background: rgba(74,222,128,.4); }
@keyframes label-float {
  0%,100% { transform: translateY(0); opacity:.65; }
  50%     { transform: translateY(-3px); opacity:1; }
}

/* Stats cards flying around */
.hero-stat-card {
  position: absolute;
  background: rgba(13,26,45,.92);
  border: 1px solid rgba(201,168,76,.25);
  padding: .6rem .9rem;
  backdrop-filter: blur(8px);
  animation: stat-float linear infinite;
}
.hero-stat-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--or), var(--gold));
}
.hsc-1 { top:  5%; right: 8%;  animation-duration: 5s; animation-delay: 0s; }
.hsc-2 { top: 50%; right: 2%;  animation-duration: 7s; animation-delay: 1.5s; }
.hsc-3 { bottom: 8%; right: 20%; animation-duration: 6s; animation-delay: 3s; }
@keyframes stat-float {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-8px); }
}
.hsc-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
}
.hsc-lbl {
  font-size: .48rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tx2);
  margin-top: 2px;
}

/* Projet Sénégal card in right panel */
.hero-project-card {
  position: absolute;
  bottom: 5%;
  left: 2%;
  background: rgba(10,22,38,.94);
  border: 1px solid rgba(74,222,128,.25);
  padding: .8rem 1rem;
  width: 220px;
  backdrop-filter: blur(10px);
  animation: stat-float 8s ease-in-out infinite;
  animation-delay: 2s;
}
.hero-project-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, #4ADE80, rgba(74,222,128,.2));
}
.hpc-flag { font-size: 1rem; margin-bottom: .3rem; }
.hpc-name {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tx);
  line-height: 1.3;
  margin-bottom: .25rem;
}
.hpc-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-weight: 300;
  color: #4ADE80;
}
.hpc-status {
  font-size: .46rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #4ADE80;
  background: rgba(74,222,128,.1);
  padding: .15rem .45rem;
  display: inline-block;
  margin-top: .2rem;
}


/* ══════════════════════════════════════════
   PROJET SÉNÉGAL
══════════════════════════════════════════ */
.sen-sec {
  background:
    radial-gradient(ellipse at 80% 20%, rgba(232,102,26,.08) 0%, transparent 55%),
    radial-gradient(ellipse at 20% 80%, rgba(74,222,128,.06) 0%, transparent 50%),
    linear-gradient(160deg, #020A16 0%, #07111f 50%, #020A16 100%);
  padding: 7rem 8%;
  border-top: 1px solid rgba(201,168,76,.18);
  border-bottom: 1px solid rgba(201,168,76,.18);
  position: relative;
  overflow: hidden;
}
.sen-sec::before {
  content: '';
  position: absolute;
  top: -30%; right: -10%;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,102,26,.1) 0%, rgba(201,168,76,.05) 40%, transparent 70%);
  pointer-events: none;
  animation: senGlow 12s ease-in-out infinite;
}
.sen-sec::after {
  content: '';
  position: absolute;
  bottom: -30%; left: -10%;
  width: 550px; height: 550px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74,222,128,.08) 0%, rgba(201,168,76,.04) 40%, transparent 70%);
  pointer-events: none;
  animation: senGlow 14s ease-in-out infinite reverse;
}
@keyframes senGlow {
  0%, 100% { transform: scale(1); opacity: .7; }
  50%      { transform: scale(1.12); opacity: 1; }
}

.sen-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
  position: relative; z-index: 1;
}
.sen-badge-row {
  display: flex; align-items: center; gap: 1rem;
  margin-bottom: 1.5rem;
}
/* Badge pays — dégradé orange → vert (symbolisant l'Afrique) */
.sen-country-badge {
  display: flex; align-items: center; gap: .6rem;
  padding: .45rem 1.1rem;
  border: 1px solid rgba(201,168,76,.35);
  background: linear-gradient(135deg,
    rgba(232,102,26,.12) 0%,
    rgba(201,168,76,.08) 50%,
    rgba(74,222,128,.1) 100%);
  font-size: .54rem; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: var(--gold);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.04);
}
/* Pastille SN — dégradé orange vers vert */
.sen-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--or), var(--gold) 50%, #4ADE80);
  color: #020A16;
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .05em;
  box-shadow: 0 0 16px rgba(232,102,26,.4), 0 0 24px rgba(74,222,128,.2);
}
.sen-stag {
  font-size: .58rem; font-weight: 700; letter-spacing: .32em;
  text-transform: uppercase; color: var(--or);
  margin-bottom: .9rem;
  display: flex; align-items: center; gap: .8rem;
}
.sen-stag::before {
  content:'';
  width:26px; height:1px;
  background: linear-gradient(to right, transparent, var(--or));
  flex-shrink:0;
}
.sen-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2rem, 3.5vw, 3.4rem);
  font-weight: 400; line-height: 1.1;
  margin-bottom: 1.4rem;
  color: #F5F0E4;
  letter-spacing: -.005em;
}
/* "Intégré" en dégradé doré → vert pour l'accent Afrique */
.sen-title em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(135deg, var(--gold) 0%, #F5D97A 40%, #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
.sen-lead {
  font-size: .82rem; font-weight: 300;
  line-height: 1.95;
  color: rgba(240,235,224,.75);
  margin-bottom: 2.5rem;
}

/* GRAND chiffre +€900M — dégradé orange → doré → vert (trinité Afrique luxe) */
.sen-val-big {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(3rem, 5vw, 4.5rem);
  font-weight: 500;
  line-height: 1;
  margin-bottom: .4rem;
  letter-spacing: -.02em;
  background: linear-gradient(135deg,
    var(--or) 0%,
    var(--gold) 35%,
    #F5D97A 55%,
    #4ADE80 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 4px 24px rgba(232,102,26,.35));
  display: inline-block;
  position: relative;
}
.sen-val-big::before {
  content: '';
  position: absolute;
  top: 50%; left: 0;
  width: 100%; height: 150%;
  transform: translateY(-50%);
  background: radial-gradient(ellipse at center,
    rgba(232,102,26,.12) 0%,
    rgba(74,222,128,.08) 60%,
    transparent 80%);
  z-index: -1;
  filter: blur(16px);
  pointer-events: none;
}
.sen-val-lbl {
  font-size: .6rem; font-weight: 700;
  letter-spacing: .26em; text-transform: uppercase;
  color: rgba(240,235,224,.65);
  margin-bottom: 2rem;
}
.sen-divider {
  width:34px; height:2px;
  background: linear-gradient(90deg, var(--or), var(--gold), #4ADE80);
  margin: 1.5rem 0;
  box-shadow: 0 0 12px rgba(232,102,26,.5);
}

/* Milestones — Phases du projet (orange dominant, vert en accent) */
.sen-milestones { display: flex; flex-direction: column; gap: 1.1rem; }
.sen-ms {
  display: flex; gap: 1.3rem; align-items: flex-start;
  padding: 1.4rem 1.6rem;
  background: linear-gradient(135deg, rgba(13,26,45,.75) 0%, rgba(7,17,31,.55) 100%);
  border: 1px solid rgba(201,168,76,.15);
  border-left: 3px solid rgba(232,102,26,.5);
  border-radius: 2px;
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
  transition: all .4s cubic-bezier(.4,0,.2,1);
  position: relative;
  overflow: hidden;
}
/* Chaque 2e milestone a une bordure verte pour varier et thématiser "Afrique durable" */
.sen-ms:nth-child(even) {
  border-left-color: rgba(74,222,128,.5);
}
.sen-ms::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(232,102,26,.12) 50%,
    transparent 100%);
  transition: left .7s ease;
  pointer-events: none;
}
.sen-ms:nth-child(even)::before {
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(74,222,128,.12) 50%,
    transparent 100%);
}
.sen-ms:hover {
  border-color: rgba(232,102,26,.4);
  border-left-color: var(--or);
  background: linear-gradient(135deg, rgba(232,102,26,.1) 0%, rgba(201,168,76,.05) 100%);
  transform: translateX(4px);
  box-shadow: 0 8px 24px rgba(0,0,0,.4), 0 0 24px rgba(232,102,26,.15);
}
.sen-ms:nth-child(even):hover {
  border-color: rgba(74,222,128,.4);
  border-left-color: #4ADE80;
  background: linear-gradient(135deg, rgba(74,222,128,.1) 0%, rgba(201,168,76,.05) 100%);
  box-shadow: 0 8px 24px rgba(0,0,0,.4), 0 0 24px rgba(74,222,128,.15);
}
.sen-ms:hover::before { left: 100%; }

.sen-ms-icon {
  width: 42px; height: 42px; flex-shrink: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(232,102,26,.15), rgba(201,168,76,.1));
  border: 1px solid rgba(201,168,76,.3);
  display: flex; align-items: center; justify-content: center;
  color: var(--or);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  transition: all .4s ease;
}
.sen-ms:nth-child(even) .sen-ms-icon {
  background: linear-gradient(135deg, rgba(74,222,128,.15), rgba(201,168,76,.1));
  border-color: rgba(74,222,128,.3);
  color: #4ADE80;
}
.sen-ms:hover .sen-ms-icon {
  border-color: var(--or);
  background: linear-gradient(135deg, rgba(232,102,26,.3), rgba(201,168,76,.2));
  box-shadow: 0 0 20px rgba(232,102,26,.4), inset 0 1px 0 rgba(255,255,255,.08);
}
.sen-ms:nth-child(even):hover .sen-ms-icon {
  border-color: #4ADE80;
  background: linear-gradient(135deg, rgba(74,222,128,.3), rgba(201,168,76,.2));
  box-shadow: 0 0 20px rgba(74,222,128,.4), inset 0 1px 0 rgba(255,255,255,.08);
}
.sen-ms-body {}
.sen-ms-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.15rem; font-weight: 500;
  color: #F5F0E4; margin-bottom: .3rem;
  letter-spacing: -.005em;
}
.sen-ms-desc {
  font-size: .74rem; font-weight: 300;
  line-height: 1.75;
  color: rgba(240,235,224,.7);
}

/* Stats row — 3 indicateurs alternent or / vert */
.sen-stats {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
  margin-bottom: 2rem;
  background: transparent;
}
.sen-stat {
  background: linear-gradient(135deg, rgba(13,26,45,.8) 0%, rgba(7,17,31,.6) 100%);
  border: 1px solid rgba(201,168,76,.2);
  padding: 1.6rem 1.2rem;
  text-align: center;
  border-radius: 2px;
  position: relative;
  transition: all .35s ease;
  box-shadow: 0 4px 14px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.03);
}
.sen-stat::before {
  content: '';
  position: absolute;
  top: -1px; left: -1px;
  width: 24px; height: 24px;
  border-top: 1.5px solid var(--or);
  border-left: 1.5px solid var(--or);
  pointer-events: none;
  transition: all .4s ease;
}
.sen-stat::after {
  content: '';
  position: absolute;
  bottom: -1px; right: -1px;
  width: 24px; height: 24px;
  border-bottom: 1.5px solid var(--gold);
  border-right: 1.5px solid var(--gold);
  pointer-events: none;
  transition: all .4s ease;
}
/* La stat du milieu en vert (impact Afrique) */
.sen-stat:nth-child(2) {
  border-color: rgba(74,222,128,.22);
}
.sen-stat:nth-child(2)::before {
  border-top-color: #4ADE80;
  border-left-color: #4ADE80;
}
.sen-stat:nth-child(2)::after {
  border-bottom-color: #4ADE80;
  border-right-color: #4ADE80;
}
.sen-stat:hover {
  border-color: rgba(232,102,26,.4);
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0,0,0,.4), 0 0 24px rgba(232,102,26,.15);
}
.sen-stat:nth-child(2):hover {
  border-color: rgba(74,222,128,.4);
  box-shadow: 0 10px 24px rgba(0,0,0,.4), 0 0 24px rgba(74,222,128,.2);
}
.sen-stat:hover::before,
.sen-stat:hover::after {
  width: 34px; height: 34px;
}
.sen-stat-v {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 2rem; font-weight: 400;
  background: linear-gradient(135deg, var(--gold), var(--or), var(--gold));
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  line-height: 1;
  letter-spacing: -.015em;
}
/* La valeur centrale (∞ impact) en vert */
.sen-stat:nth-child(2) .sen-stat-v {
  background: linear-gradient(135deg, #4ADE80, #86EFAC, #4ADE80);
  -webkit-background-clip: text;
          background-clip: text;
}
.sen-stat-l {
  font-size: .55rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(240,235,224,.65);
  margin-top: 6px;
}

/* Tags infrastructure — moitié orange, moitié vert pour la diversité thématique */
.sen-tags {
  display: flex; flex-wrap: wrap; gap: .65rem;
  margin-top: 1.5rem;
}
.sen-tag {
  font-size: .54rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(240,235,224,.85);
  border: 1px solid rgba(201,168,76,.25);
  background: linear-gradient(135deg, rgba(13,26,45,.7) 0%, rgba(7,17,31,.5) 100%);
  padding: .5rem 1rem;
  border-radius: 2px;
  display: flex; align-items: center; gap: .5rem;
  transition: all .35s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.sen-tag svg { color: var(--or); transition: color .35s ease; }
/* Alterne : tags pairs en vert pour différencier */
.sen-tag:nth-child(even) svg { color: #4ADE80; }
.sen-tag:hover {
  border-color: rgba(232,102,26,.55);
  color: #F5F0E4;
  background: linear-gradient(135deg, rgba(232,102,26,.15), rgba(201,168,76,.08));
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,.35), 0 0 16px rgba(232,102,26,.2);
}
.sen-tag:nth-child(even):hover {
  border-color: rgba(74,222,128,.55);
  background: linear-gradient(135deg, rgba(74,222,128,.15), rgba(201,168,76,.08));
  box-shadow: 0 6px 16px rgba(0,0,0,.35), 0 0 16px rgba(74,222,128,.2);
}

/* "Phases du projet" title for right column */
.sen-phases-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.8rem, 2.8vw, 2.4rem);
  font-weight: 400;
  color: #F5F0E4;
  margin-bottom: 2rem;
  letter-spacing: -.005em;
}
.sen-phases-title em {
  font-style: italic;
  background: linear-gradient(135deg, var(--gold), #4ADE80);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  font-weight: 500;
}

/* Status bar en bas — vert doux pour évoquer la croissance */
.sen-status {
  margin-top: 2rem;
  padding: 1.4rem 1.8rem;
  background: linear-gradient(135deg, rgba(13,26,45,.8) 0%, rgba(7,17,31,.6) 100%);
  border: 1px solid rgba(74,222,128,.3);
  border-left: 3px solid #4ADE80;
  border-radius: 2px;
  box-shadow: 0 6px 20px rgba(0,0,0,.3), 0 0 24px rgba(74,222,128,.08);
  position: relative;
}
.sen-status::before {
  content: '';
  position: absolute;
  top: 50%; right: 1.5rem;
  transform: translateY(-50%);
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #4ADE80;
  box-shadow: 0 0 12px #4ADE80, 0 0 24px rgba(74,222,128,.5);
  animation: senStatusPulse 2s ease-in-out infinite;
}
@keyframes senStatusPulse {
  0%, 100% { opacity: 1; transform: translateY(-50%) scale(1); }
  50%      { opacity: .5; transform: translateY(-50%) scale(1.3); }
}
.sen-status-lbl {
  font-size: .55rem; font-weight: 700;
  letter-spacing: .26em; text-transform: uppercase;
  color: #4ADE80;
  margin-bottom: .35rem;
}
.sen-status-val {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.1rem; font-weight: 400;
  color: #F5F0E4;
}
.sen-status-val strong {
  color: #4ADE80;
  font-weight: 500;
  font-style: italic;
}

@media(max-width:1024px) {
  .sen-grid { grid-template-columns: 1fr; gap: 3rem; }
}
@media(max-width:640px) {
  .sen-sec { padding: 4rem 5%; }
  .sen-stats { grid-template-columns: repeat(3,1fr); gap: 6px; }
  .sen-stat { padding: 1rem .5rem; }
  .sen-stat-v { font-size: 1.4rem; }
  .sen-stat-l { font-size: .48rem; letter-spacing: .12em; }
}


/* Broken image fallback */
img[src] {
  min-height: 1px;
}
.bgi img, .reg-ci img, .aimg-a img, .aimg-b img,
.sc-img img, .schc-ci img {
  background: linear-gradient(135deg, #0D1A2D 0%, #07111F 100%);
}


/* Video load error handler */
.buda-vw iframe {
  background: #010810;
}
.video-note {
  display: none;
  text-align: center;
  padding: 1rem;
  font-size: .65rem;
  color: rgba(201,168,76,.6);
  letter-spacing: .1em;
  background: #010810;
  border-top: 1px solid rgba(201,168,76,.1);
}


/* Gallery image loading state */


.bgi img[src=''] {
  opacity: 0;
}


/* ══════════════════════════════════════════
   BUDAPEST PLAYER
══════════════════════════════════════════ */
.buda-player {
  background: #010810;
  border-top: 1px solid rgba(201,168,76,.1);
}

/* Main display */
.buda-player-main { position: relative; }

.buda-player-thumb {
  position: relative;
  width: 100%; padding-top: 56.25%;
  overflow: hidden; cursor: pointer;
  background: #010810;
}
.buda-player-thumb img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.95) saturate(.95);
  transition: filter .5s;
}
.buda-player-thumb:hover img { filter: brightness(1) saturate(1.05); }

.buda-player-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center,
    rgba(7,17,31,.2) 0%, rgba(7,17,31,.65) 100%);
}

.buda-player-center {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: .8rem;
}

.buda-play-ring {
  position: absolute;
  width: 100px; height: 100px;
  border-radius: 50%;
  border: 1px solid rgba(232,102,26,.2);
  animation: ring 2.5s ease-out infinite;
  pointer-events: none;
}

.buda-play-big {
  background: none; border: none; cursor: pointer;
  position: relative; z-index: 1;
  transition: transform .3s;
  filter: drop-shadow(0 4px 20px rgba(232,102,26,.5));
}
.buda-play-big:hover { transform: scale(1.1); }
.buda-play-big:hover svg circle {
  stroke: rgba(232,102,26,.9);
}

.buda-play-cta {
  font-size: .6rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: rgba(201,168,76,.8);
  background: rgba(7,17,31,.7);
  padding: .4rem 1rem;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(201,168,76,.2);
}

.buda-current-title {
  position: absolute;
  bottom: 1rem; left: 1.2rem;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem; font-weight: 300; font-style: italic;
  color: rgba(240,235,224,.75);
  letter-spacing: .04em;
  text-shadow: 0 1px 8px rgba(0,0,0,.8);
}

/* Iframe wrap (shown after click) */
.buda-iframe-wrap {
  position: relative;
  padding-top: 56.25%;
  background: #000;
}
.buda-iframe-wrap iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%; border: none;
}
.buda-close-btn {
  position: absolute; top: .75rem; right: .75rem;
  z-index: 10;
  display: flex; align-items: center; gap: .4rem;
  background: rgba(7,17,31,.85);
  border: 1px solid rgba(201,168,76,.25);
  color: var(--tx2);
  font-size: .52rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  padding: .35rem .7rem; cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  transition: all .25s;
}
.buda-close-btn:hover { border-color: var(--or); color: var(--or); }

/* Thumbnails row */
.buda-vthumbs {
  padding: 1.2rem 8% 1.4rem;
  background: #040C18;
  border-top: 1px solid rgba(201,168,76,.1);
}
.buda-vthumbs-label {
  font-size: .5rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .85rem;
}
.buda-vthumbs-row {
  display: flex; gap: .75rem; flex-wrap: wrap;
}
.vt {
  display: flex; flex-direction: column; gap: .4rem;
  cursor: pointer; width: 140px; flex-shrink: 0;
  transition: transform .25s;
}
.vt:hover { transform: translateY(-3px); }
.vt-thumb {
  position: relative; height: 79px;
  overflow: hidden;
  border: 1px solid rgba(201,168,76,.15);
  background: #07111F;
  transition: border-color .25s;
}
.vt-on .vt-thumb,
.vt:hover .vt-thumb { border-color: var(--or); }
.vt-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.9) saturate(.88);
  transition: filter .3s;
}
.vt:hover .vt-thumb img,
.vt-on .vt-thumb img { filter: brightness(1) saturate(1.05); }
.vt-play-ico {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
}
.vt-label {
  font-size: .5rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--tx2); text-align: center;
  transition: color .25s;
}
.vt-on .vt-label,
.vt:hover .vt-label { color: var(--gold); }


/* ══ BUDAPEST COVER — YouTube links ══ */
.buda-yt-btn {
  display: inline-flex; align-items: center; gap: .8rem;
  background: rgba(232,102,26,.12);
  border: 1.5px solid rgba(232,102,26,.6);
  color: var(--tx); padding: .9rem 2rem;
  font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  text-decoration: none; margin-bottom: .5rem;
  transition: all .3s; cursor: pointer;
}
.buda-yt-btn:hover {
  background: rgba(232,102,26,.25); border-color: var(--or);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(232,102,26,.3);
}
.buda-vlinks { margin-top: 1.8rem; text-align: center; }
.buda-vlinks-lbl {
  font-size: .52rem; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .85rem;
}
.buda-vlinks-row { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
.vb-link {
  display: flex; flex-direction: column; gap: .35rem;
  width: 130px; text-decoration: none; cursor: pointer;
  transition: transform .25s;
}
.vb-link:hover { transform: translateY(-3px); }
.vbl-thumb {
  position: relative; height: 73px;
  overflow: hidden; background: #07111F;
  border: 1px solid rgba(201,168,76,.15);
  transition: border-color .25s;
}
.vb-link:hover .vbl-thumb,
.vb-link.on .vbl-thumb { border-color: var(--or); }
.vbl-thumb img { width:100%; height:100%; object-fit:cover; filter:brightness(.7); transition:filter .3s; }
.vb-link:hover .vbl-thumb img { filter:brightness(.9); }
.vbl-icon {
  position: absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size: 1.1rem; color: rgba(232,102,26,.8);
  text-shadow: 0 0 10px rgba(232,102,26,.6);
}
.vbl-lbl {
  font-size: .48rem; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--tx2); text-align: center;
  transition: color .25s;
}
.vb-link:hover .vbl-lbl { color: var(--gold); }


/* ══════════════════════════════════════════════
   DIAPORAMA BUDAPEST — FULLSCREEN PROFESSIONAL
══════════════════════════════════════════════ */
.buda-diapo {
  position: relative;
  background: #010810;
  overflow: hidden;
  border-top: 1px solid rgba(201,168,76,.1);
}

/* Slides container */
.bd-track {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  width: 100%;
  transition: transform .85s cubic-bezier(.77, 0, .175, 1);
  will-change: transform;
  cursor: grab;
  user-select: none;
}
.bd-track:active { cursor: grabbing; }
.bd-slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  position: relative;
  height: 520px;
  overflow: hidden;
}
@media(max-width:768px) { .bd-slide { height: 320px; } }
@media(max-width:640px) {
  .bd-caption { padding: 1.2rem 1.2rem 1.4rem; flex-direction: column; align-items: flex-start; gap: .6rem; }
  .bd-cap-right { align-items: flex-start; }
  .bd-title { font-size: 1.1rem; }
}

/* Slide image */
.bd-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(1) saturate(1);
  transform: scale(1);
  transition: transform 8s ease;
}
.bd-slide.bd-active .bd-img { transform: scale(1.04); }

/* Gradient overlays */
.bd-ov-b {
  position: absolute; inset: 0;
  background: linear-gradient(
    to top,
    rgba(7,17,31,.88) 0%,
    rgba(7,17,31,.22) 45%,
    rgba(7,17,31,.03) 75%,
    transparent 100%
  );
}
.bd-ov-l {
  position: absolute; inset: 0;
  background: linear-gradient(
    to right,
    rgba(7,17,31,.4) 0%,
    transparent 50%
  );
}

/* Caption */
.bd-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 2rem 3.5rem 2.2rem;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.bd-cap-left { max-width: 540px; }
.bd-cat {
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--or);
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .6rem;
}
.bd-cat::before {
  content: '';
  width: 22px; height: 1px;
  background: var(--or);
  flex-shrink: 0;
}
.bd-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.6rem, 3.2vw, 2.8rem);
  font-weight: 300;
  color: var(--tx);
  line-height: 1.1;
  letter-spacing: -.01em;
  text-shadow: 0 2px 20px rgba(0,0,0,.5);
}
.bd-cap-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .35rem;
  padding-bottom: .2rem;
}

/* Progress dots */
.bd-dots {
  display: flex;
  gap: .4rem;
  align-items: center;
}
.bd-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: rgba(201,168,76,.25);
  cursor: pointer;
  transition: all .4s;
  border: none;
  padding: 0;
}
.bd-dot.on {
  background: var(--gold);
  width: 20px;
  border-radius: 2.5px;
}

/* Counter */
.bd-counter {
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .18em;
  color: rgba(201,168,76,.5);
  font-variant-numeric: tabular-nums;
}

/* Prev / Next arrows */
.bd-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,.3);
  background: rgba(7,17,31,.65);
  backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: all .3s;
  color: var(--gold);
}
.bd-arrow:hover {
  background: rgba(232,102,26,.2);
  border-color: var(--or);
  transform: translateY(-50%) scale(1.08);
}
.bd-prev { left: 1.5rem; }
.bd-next { right: 1.5rem; }
@media(max-width:640px) {
  .bd-prev { left: .5rem; }
  .bd-next { right: .5rem; }
  .bd-arrow { width: 36px; height: 36px; }
}

/* Thumbnail strip */
.bd-strip {
  background: #020A16;
  padding: .9rem 0;
  overflow: hidden;
  border-top: 1px solid rgba(201,168,76,.1);
  position: relative;
}
/* Dégradés de bord — uniquement à gauche pour l'effet visuel, 
   pas à droite pour ne pas cacher la dernière miniature */
.bd-strip::before {
  content: '';
  position: absolute; top: 0; bottom: 0; left: 0;
  width: 40px; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, #020A16, transparent);
}
.bd-thumbs {
  display: flex;
  gap: 6px;
  padding: 0 3rem 0 3rem;
  transition: transform .4s ease;
}
.bd-thumb {
  flex-shrink: 0;
  width: 100px; height: 64px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  border: 1px solid rgba(201,168,76,.1);
  transition: border-color .3s, transform .3s, box-shadow .3s;
  box-sizing: border-box;
}
.bd-thumb:hover { transform: translateY(-2px); border-color: rgba(201,168,76,.4); }
.bd-thumb.on {
  border-color: var(--or);
  box-shadow: 0 0 0 2px var(--or), 0 4px 18px rgba(232,102,26,.35);
  transform: translateY(-2px);
}
.bd-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(.65) saturate(.85);
  transition: filter .3s;
}
.bd-thumb:hover img { filter: brightness(.95) saturate(1); }
.bd-thumb.on img { filter: brightness(1.05) saturate(1.1); }
.bd-thumb-ov {
  position: absolute; inset: 0;
  background: rgba(7,17,31,.0);
  transition: background .3s;
}
.bd-thumb.on .bd-thumb-ov { background: transparent; }

/* Progress bar */
.bd-progress {
  position: absolute;
  bottom: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--or), var(--gold));
  width: 0;
  transition: width linear;
}

/* Auto-play indicator */
.bd-autoplay-btn {
  position: absolute;
  top: 1rem; right: 1.2rem;
  z-index: 10;
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,.2);
  background: rgba(7,17,31,.6);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: rgba(201,168,76,.5);
  transition: all .3s;
  font-size: .7rem;
}
.bd-autoplay-btn:hover { border-color: var(--gold); color: var(--gold); }
.bd-autoplay-btn.playing { color: var(--or); border-color: rgba(232,102,26,.4); }

/* Section header */
.buda-diapo-hdr {
  padding: 2.5rem 3.5rem 1.5rem;
  background: #020A16;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(201,168,76,.08);
}
@media(max-width:640px) {
  .buda-diapo-hdr { padding: 1.5rem 5% 1rem; flex-direction: column; align-items: flex-start; gap: .6rem; }
  .bdh-right { display: none; }
}
.bdh-left {
  display: flex; align-items: center; gap: 1rem;
}
.bdh-flag { font-size: 1.5rem; }
.bdh-label {
  font-size: .52rem; font-weight: 700;
  letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold);
}
.bdh-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1rem, 1.8vw, 1.4rem);
  font-weight: 300; font-style: italic;
  color: var(--tx2); letter-spacing: .04em;
}
.bdh-vr { width: 1px; height: 28px; background: rgba(201,168,76,.18); }
.bdh-right {
  font-size: .52rem; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--tx2);
  display: flex; align-items: center; gap: .6rem;
}
.bdh-right::before { content: ''; width: 18px; height: 1px; background: var(--bd); }


/* ══ BUDAPEST SECTION HEADER — LUXE HONGROIS TRICOLORE ══ */
.buda-hero-strip {
  position: relative;
  min-height: 480px;
  overflow: hidden;
  background: #020810;
  margin: 2rem 2.5rem;
  border-radius: 3px;
}

/* Encadrement lumineux tricolore (rouge-blanc-vert + doré) */
.buda-hero-strip::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 4px;
  background: linear-gradient(135deg,
    #CE2939 0%,           /* Rouge Hongrie */
    #F5D97A 15%,          /* Doré */
    #FFFFFF 30%,          /* Blanc */
    #F5D97A 45%,          /* Doré */
    #436F4D 60%,          /* Vert Hongrie */
    #F5D97A 75%,          /* Doré */
    #CE2939 100%);        /* Rouge */
  background-size: 400% 400%;
  animation: budaHeroGlow 10s linear infinite;
  z-index: 0;
  filter: blur(1px);
}

/* Halo externe pulsant tricolore */
.buda-hero-strip::after {
  content: '';
  position: absolute;
  inset: -16px;
  border-radius: 8px;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(206,41,57,.25) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.08) 0%, transparent 40%),
    radial-gradient(ellipse at 80% 50%, rgba(67,111,77,.25) 0%, transparent 55%);
  z-index: -1;
  animation: budaHeroPulse 5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes budaHeroGlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes budaHeroPulse {
  0%, 100% { opacity: .55; transform: scale(1); }
  50%      { opacity: .95; transform: scale(1.02); }
}

/* Image bien visible */
.buda-hero-strip img {
  width: 100%; height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  object-position: center 45%;
  filter: brightness(.85) saturate(1.1) contrast(1.05);
  transform: scale(1.02);
  transition: transform 10s ease, filter 1s ease;
  z-index: 1;
  border-radius: 2px;
}
.buda-hero-strip:hover img {
  transform: scale(1);
  filter: brightness(.95) saturate(1.2) contrast(1.08);
}

/* Overlay plus léger pour voir l'image + dégradé tricolore subtil */
.buda-hero-ov {
  position: absolute; inset: 0;
  z-index: 2;
  background:
    linear-gradient(
      to bottom,
      rgba(2,8,16,.2) 0%,
      rgba(2,8,16,.1) 40%,
      rgba(2,8,16,.6) 85%,
      rgba(2,8,16,.92) 100%),
    linear-gradient(90deg,
      rgba(206,41,57,.08) 0%,
      transparent 30%,
      transparent 70%,
      rgba(67,111,77,.08) 100%);
}

.buda-hero-content {
  position: absolute;
  z-index: 3;
  bottom: 2.5rem; left: 6%; right: 6%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
}

.buda-hero-left {
  max-width: 60%;
}

/* Badge HU - écu hongrois stylisé en rouge-blanc-vert */
.buda-hero-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .1em;
  padding: .5rem 1.1rem;
  margin-bottom: 1rem;
  color: #FFFFFF;
  background:
    linear-gradient(180deg,
      rgba(206,41,57,.95) 0%,
      rgba(206,41,57,.95) 33%,
      rgba(255,255,255,.95) 33%,
      rgba(255,255,255,.95) 66%,
      rgba(67,111,77,.95) 66%,
      rgba(67,111,77,.95) 100%);
  border: 1px solid rgba(245,217,122,.6);
  border-radius: 2px;
  box-shadow:
    0 4px 16px rgba(0,0,0,.5),
    0 0 24px rgba(245,217,122,.3),
    inset 0 1px 0 rgba(255,255,255,.2);
  text-shadow: 0 1px 3px rgba(0,0,0,.8);
  position: relative;
  letter-spacing: .15em;
}

.buda-hero-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 400;
  color: #F5F0E4;
  line-height: 1.05;
  letter-spacing: -.01em;
  text-shadow:
    0 4px 24px rgba(0,0,0,.95),
    0 0 40px rgba(2,10,22,.8);
  margin: 0;
}
/* "Cœur de l'Europe" en dégradé doré comme l'image */
.buda-hero-title em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(135deg,
    #F5D97A 0%,
    #E8C15F 30%,
    #C9A84C 60%,
    #F5D97A 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 4px 20px rgba(245,217,122,.45))
          drop-shadow(0 0 30px rgba(232,193,95,.25));
}

.buda-hero-sub {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1rem;
  font-weight: 300;
  font-style: italic;
  color: rgba(240,235,224,.85);
  letter-spacing: .08em;
  margin-top: .6rem;
  text-shadow: 0 2px 12px rgba(0,0,0,.8);
}

/* Partie droite : tags + bouton vidéo */
.buda-hero-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .9rem;
  padding-bottom: .25rem;
}

.buda-hero-tags {
  display: flex;
  gap: .55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Tags luxueux avec alternance couleurs drapeau */
.buda-hero-tag {
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #F5F0E4;
  border: 1px solid rgba(245,217,122,.35);
  background: linear-gradient(135deg,
    rgba(2,10,22,.75) 0%,
    rgba(7,17,31,.65) 100%);
  backdrop-filter: blur(10px);
  padding: .5rem .95rem;
  border-radius: 2px;
  box-shadow: 0 4px 14px rgba(0,0,0,.35);
  transition: all .35s ease;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.buda-hero-tag:hover {
  border-color: rgba(245,217,122,.7);
  background: linear-gradient(135deg,
    rgba(245,217,122,.15) 0%,
    rgba(2,10,22,.6) 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0,0,0,.5), 0 0 20px rgba(245,217,122,.25);
}

/* Alternance : 1er rouge, 3e vert pour évoquer le drapeau */
.buda-hero-tag:nth-child(1) {
  border-color: rgba(206,41,57,.4);
  box-shadow: 0 4px 14px rgba(0,0,0,.35), inset 0 1px 0 rgba(206,41,57,.15);
}
.buda-hero-tag:nth-child(1):hover {
  border-color: rgba(206,41,57,.8);
  background: linear-gradient(135deg, rgba(206,41,57,.2) 0%, rgba(2,10,22,.6) 100%);
  box-shadow: 0 8px 22px rgba(0,0,0,.5), 0 0 20px rgba(206,41,57,.3);
}
.buda-hero-tag:nth-child(3) {
  border-color: rgba(67,111,77,.5);
  box-shadow: 0 4px 14px rgba(0,0,0,.35), inset 0 1px 0 rgba(67,111,77,.15);
}
.buda-hero-tag:nth-child(3):hover {
  border-color: rgba(67,111,77,.9);
  background: linear-gradient(135deg, rgba(67,111,77,.25) 0%, rgba(2,10,22,.6) 100%);
  box-shadow: 0 8px 22px rgba(0,0,0,.5), 0 0 20px rgba(67,111,77,.35);
}

.buda-yt-row {
  display: flex; align-items: center; gap: 1rem;
  margin-top: .5rem;
}

@media (max-width: 900px) {
  .buda-hero-strip { margin: 1rem; min-height: 380px; }
  .buda-hero-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }
  .buda-hero-left { max-width: 100%; }
  .buda-hero-right { align-items: flex-start; }
  .buda-hero-tags { justify-content: flex-start; }
}


/* ── Sous-titre slide ── */
.bd-subtitle { display: block; }


/* ── Fixes diaporama layout ── */
#bdThumbs {
  display: flex !important;
  flex-wrap: nowrap;
  flex-direction: row;
  gap: 6px;
  padding: 0 3rem;
  transition: transform .4s ease;
}
.bd-slider-wrap {
  width: 100%;
  display: block;
  overflow: hidden;
}
.bd-slide { flex: 0 0 100% !important; width: 100% !important; }
.bd-track { flex-wrap: nowrap !important; flex-direction: row !important; }


/* ── Anciennes icônes SVG supprimées, les cartes utilisent maintenant des images ────── */

/* Méthode icônes */
.mth-d-icon {
  border-radius: 12px !important;
  padding: 10px;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.mth-d-icon svg { width: 30px; height: 30px; }
.mth-s:hover .mth-d-icon {
  transform: scale(1.08) rotate(-3deg);
  box-shadow: 0 8px 24px rgba(201,168,76,.2);
}

/* ── ANIMATIONS SECTIONS VIDES ────────────────────────────── */

/* Bandeau chiffres animés entre sections */
.uwg-stats-band {
  background: linear-gradient(135deg, #07111f 0%, #0d1a2d 50%, #07111f 100%);
  border-top: 1px solid rgba(201,168,76,.12);
  border-bottom: 1px solid rgba(201,168,76,.12);
  padding: 3.5rem 8%;
  overflow: hidden;
  position: relative;
}
.uwg-stats-band::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(201,168,76,.06) 0%, transparent 70%);
  pointer-events: none;
}
.uwg-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}
.uwg-stat {
  padding: 1.5rem 2rem;
  border-right: 1px solid rgba(201,168,76,.08);
  text-align: center;
  position: relative;
}
.uwg-stat:last-child { border-right: none; }
.uwg-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 600;
  color: #c9a84c;
  line-height: 1;
  letter-spacing: -.02em;
  display: block;
}
.uwg-stat-lbl {
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(168,180,200,.55);
  display: block;
  margin-top: .5rem;
}
.uwg-stat-icon {
  font-size: 1.6rem;
  display: block;
  margin-bottom: .6rem;
  filter: grayscale(.3);
}

/* Ligne décorative animée */
.uwg-gold-line {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.6), #c9a84c, rgba(201,168,76,.6), transparent);
  margin: 0;
  position: relative;
  overflow: hidden;
}
.uwg-gold-line::after {
  content: '';
  position: absolute;
  top: -2px; left: -100%;
  width: 60%;
  height: 5px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.8), transparent);
  animation: goldSweep 3s ease-in-out infinite;
}
@keyframes goldSweep {
  0%   { left: -60%; }
  100% { left: 160%; }
}

/* Ticker partenaires */
/* ═══════════════════════════════════════════════════════
   BANDEAU PARTENAIRES — PREMIUM LUMINEUX (v119+)
═══════════════════════════════════════════════════════ */
.uwg-ticker-wrap {
  background: 
    linear-gradient(180deg, #030914 0%, #061021 50%, #030914 100%);
  border-top: 1px solid rgba(201,168,76,.35);
  border-bottom: 1px solid rgba(201,168,76,.35);
  padding: 1.6rem 0 1.4rem;
  overflow: hidden;
  position: relative;
  box-shadow: 
    0 0 40px rgba(201,168,76,.08) inset,
    0 10px 30px rgba(0,0,0,.4);
}

/* Double ligne dorée lumineuse haut/bas */
.uwg-ticker-wrap::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(201,168,76,.2) 10%,
    rgba(232,102,26,.5) 30%,
    rgba(245,217,122,.8) 50%,
    rgba(232,102,26,.5) 70%,
    rgba(201,168,76,.2) 90%,
    transparent 100%);
  box-shadow: 0 0 10px rgba(245,217,122,.4);
  z-index: 3;
}
.uwg-ticker-wrap::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(201,168,76,.2) 10%,
    rgba(232,102,26,.5) 30%,
    rgba(245,217,122,.8) 50%,
    rgba(232,102,26,.5) 70%,
    rgba(201,168,76,.2) 90%,
    transparent 100%);
  box-shadow: 0 0 10px rgba(245,217,122,.4);
  z-index: 3;
}

/* Header "ILS NOUS FONT CONFIANCE" */
.uwg-ticker-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 0 2rem;
  position: relative;
  z-index: 2;
}
.uwg-ticker-label::before,
.uwg-ticker-label::after {
  content: '';
  flex: 1;
  max-width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.5), transparent);
}
.uwg-ticker-label-tx {
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .35em;
  text-transform: uppercase;
  background: linear-gradient(135deg, #f5d97a 0%, #c9a84c 50%, #e8661a 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  text-shadow: 0 0 18px rgba(245,217,122,.15);
  white-space: nowrap;
}

/* Container track */
.uwg-ticker-track-wrap {
  position: relative;
  overflow: hidden;
}
.uwg-ticker-track-wrap::before,
.uwg-ticker-track-wrap::after {
  content: '';
  position: absolute; top: 0; bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.uwg-ticker-track-wrap::before {
  left: 0;
  background: linear-gradient(90deg, #061021 0%, rgba(6,16,33,.95) 30%, transparent 100%);
}
.uwg-ticker-track-wrap::after {
  right: 0;
  background: linear-gradient(-90deg, #061021 0%, rgba(6,16,33,.95) 30%, transparent 100%);
}

.uwg-ticker-track {
  display: flex;
  gap: 0;
  animation: tickerScroll 55s linear infinite;
  width: max-content;
  align-items: center;
}
.uwg-ticker-wrap:hover .uwg-ticker-track { animation-play-state: paused; }

/* ─── CHAQUE PARTENAIRE : BEAUCOUP PLUS VISIBLE ─── */
.uwg-ticker-item {
  flex-shrink: 0;
  padding: .5rem 2.2rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #e4e6ea;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: .6rem;
  transition: all .35s cubic-bezier(.4,0,.2,1);
  position: relative;
  cursor: default;
}
/* Effet holographique : dégradé doré qui passe au survol */
.uwg-ticker-item span {
  position: relative;
  background: linear-gradient(135deg, #ffffff 0%, #e4e6ea 50%, #c9a84c 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  filter: drop-shadow(0 0 6px rgba(201,168,76,.2));
  transition: all .35s;
}
.uwg-ticker-item:hover span {
  background: linear-gradient(135deg, #f5d97a 0%, #e8661a 100%);
  -webkit-background-clip: text; background-clip: text;
  filter: drop-shadow(0 0 12px rgba(245,217,122,.6));
  transform: scale(1.08);
}

/* Séparateur doré lumineux entre partenaires */
.uwg-ticker-item::after {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  transform: rotate(45deg);
  background: linear-gradient(135deg, #f5d97a 0%, #c9a84c 50%, #e8661a 100%);
  margin-left: 2rem;
  box-shadow: 0 0 8px rgba(245,217,122,.5);
  animation: tickerDotPulse 3s ease-in-out infinite;
}
@keyframes tickerDotPulse {
  0%, 100% { opacity: .7; transform: rotate(45deg) scale(1); }
  50%      { opacity: 1;   transform: rotate(45deg) scale(1.3); box-shadow: 0 0 14px rgba(245,217,122,.8); }
}

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

/* Responsive */
@media (max-width: 640px) {
  .uwg-ticker-wrap { padding: 1.2rem 0 1rem; }
  .uwg-ticker-item { font-size: .8rem; padding: .4rem 1.4rem; }
  .uwg-ticker-item::after { margin-left: 1.2rem; width: 5px; height: 5px; }
  .uwg-ticker-label-tx { font-size: .55rem; letter-spacing: .25em; }
  .uwg-ticker-label::before, .uwg-ticker-label::after { max-width: 60px; }
}

/* Section "Nos Marchés" animée */
.uwg-markets {
  background: linear-gradient(180deg, #020A16 0%, #07111f 50%, #020A16 100%);
  padding: 5rem 8%;
  border-top: 1px solid rgba(201,168,76,.12);
  border-bottom: 1px solid rgba(201,168,76,.12);
  position: relative;
  overflow: hidden;
}

/* Layout en-tête : titre à gauche, KPIs à droite */
.uwg-markets-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
.uwg-markets-head-left {
  min-width: 0;
}

/* === Panneau "Pays actifs" - GRAND CHIFFRE DÉCORÉ === */
.uwg-markets-head-right {
  display: flex;
  align-items: center;
  justify-content: center;
}

.uwg-bigkpi {
  position: relative;
  padding: 2.4rem 3rem 2.2rem;
  background:
    radial-gradient(ellipse at center,
      rgba(232,102,26,.12) 0%,
      rgba(201,168,76,.06) 40%,
      rgba(7,17,31,.7) 80%),
    linear-gradient(135deg, rgba(13,26,45,.85) 0%, rgba(7,17,31,.7) 100%);
  border: 1px solid rgba(201,168,76,.28);
  border-radius: 2px;
  text-align: center;
  min-width: 280px;
  box-shadow:
    0 14px 40px rgba(0,0,0,.5),
    0 0 40px rgba(232,102,26,.1),
    inset 0 1px 0 rgba(255,255,255,.05);
}

/* Coins dorés style brochure luxe */
.uwg-bigkpi::before {
  content: '';
  position: absolute;
  top: -1px; left: -1px;
  width: 42px; height: 42px;
  border-top: 2px solid var(--or);
  border-left: 2px solid var(--or);
  pointer-events: none;
  transition: width .6s ease, height .6s ease;
}
.uwg-bigkpi::after {
  content: '';
  position: absolute;
  bottom: -1px; right: -1px;
  width: 42px; height: 42px;
  border-bottom: 2px solid var(--gold);
  border-right: 2px solid var(--gold);
  pointer-events: none;
  transition: width .6s ease, height .6s ease;
}
.uwg-bigkpi:hover::before,
.uwg-bigkpi:hover::after {
  width: 58px;
  height: 58px;
}

/* Labels "Pays" et "Actifs" en haut et en bas */
.uwg-bigkpi-label-top,
.uwg-bigkpi-label-bot {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: rgba(240,235,224,.7);
  line-height: 1;
  position: relative;
}
.uwg-bigkpi-label-top {
  margin-bottom: .35rem;
}
.uwg-bigkpi-label-top::before,
.uwg-bigkpi-label-top::after {
  content: '';
  display: inline-block;
  width: 24px; height: 1px;
  background: linear-gradient(to right, transparent, var(--or));
  vertical-align: middle;
  margin: 0 .7em 0 0;
}
.uwg-bigkpi-label-top::after {
  background: linear-gradient(to left, transparent, var(--or));
  margin: 0 0 0 .7em;
}

.uwg-bigkpi-label-bot {
  margin-top: .2rem;
  color: var(--gold);
}

/* Le grand chiffre */
.uwg-bigkpi-number {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 5.5rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.03em;
  background: linear-gradient(135deg,
    var(--gold) 0%,
    #F5D97A 25%,
    var(--or) 55%,
    var(--gold) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  position: relative;
  filter: drop-shadow(0 4px 20px rgba(232,102,26,.35));
}
.uwg-bigkpi-plus {
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.2;
  margin-top: .4rem;
  background: inherit;
  -webkit-background-clip: text;
          background-clip: text;
}

.uwg-bigkpi-count {
  display: inline-block;
  min-width: 1.5em;
  background: inherit;
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Petit liseré pulsant derrière le chiffre */
.uwg-bigkpi-number::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 140%; height: 140%;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(232,102,26,.2) 0%,
    rgba(201,168,76,.1) 35%,
    transparent 65%);
  z-index: -1;
  animation: bigkpiGlow 4s ease-in-out infinite;
  filter: blur(12px);
}
@keyframes bigkpiGlow {
  0%, 100% { opacity: .55; transform: translate(-50%, -50%) scale(1); }
  50%      { opacity: 1;   transform: translate(-50%, -50%) scale(1.1); }
}

.uwg-bigkpi-sub {
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(240,235,224,.45);
  margin-top: 1rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(201,168,76,.15);
}

@media (max-width: 1000px) {
  .uwg-markets-head {
    grid-template-columns: 1fr;
  }
  .uwg-markets-head-right {
    justify-content: flex-start;
  }
  .uwg-bigkpi {
    min-width: 0;
    padding: 2rem 2.5rem 1.8rem;
  }
  .uwg-bigkpi-number { font-size: 4.5rem; }
  .uwg-bigkpi-plus { font-size: 1.8rem; }
}
@media (max-width: 640px) {
  .uwg-bigkpi {
    padding: 1.6rem 2rem 1.4rem;
    width: 100%;
  }
  .uwg-bigkpi-number { font-size: 3.8rem; }
  .uwg-bigkpi-plus { font-size: 1.5rem; }
  .uwg-bigkpi-label-top, .uwg-bigkpi-label-bot {
    font-size: .55rem;
    letter-spacing: .32em;
  }
}
/* Fond lumineux décoratif */
.uwg-markets::before {
  content: '';
  position: absolute; top: -30%; right: -5%;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,102,26,.08) 0%, rgba(201,168,76,.04) 40%, transparent 70%);
  pointer-events: none;
  animation: uwgMarketGlow 12s ease-in-out infinite;
}
.uwg-markets::after {
  content: '';
  position: absolute; bottom: -30%; left: -5%;
  width: 550px; height: 550px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,76,.06) 0%, rgba(232,102,26,.03) 40%, transparent 70%);
  pointer-events: none;
  animation: uwgMarketGlow 14s ease-in-out infinite reverse;
}
@keyframes uwgMarketGlow {
  0%, 100% { transform: scale(1); opacity: .7; }
  50%      { transform: scale(1.15); opacity: 1; }
}

.uwg-markets-grid {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 2.8rem;
  position: relative;
  z-index: 1;
}

/* === PILULES MARCHÉS — style luxe === */
.uwg-market-pill {
  padding: .75rem 1.2rem .75rem 1rem;
  border: 1px solid rgba(201,168,76,.25);
  background: linear-gradient(135deg, rgba(13,26,45,.85) 0%, rgba(7,17,31,.7) 100%);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(240,235,224,.85);
  cursor: default;
  transition: all .4s cubic-bezier(.4,0,.2,1);
  display: flex;
  align-items: center;
  gap: .65rem;
  border-radius: 2px;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 2px 8px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.03);
  opacity: 0;
  animation: pillFadeIn .6s ease forwards;
}

/* Animation d'apparition en cascade */
.uwg-market-pill:nth-child(1)  { animation-delay: 0.05s; }
.uwg-market-pill:nth-child(2)  { animation-delay: 0.10s; }
.uwg-market-pill:nth-child(3)  { animation-delay: 0.15s; }
.uwg-market-pill:nth-child(4)  { animation-delay: 0.20s; }
.uwg-market-pill:nth-child(5)  { animation-delay: 0.25s; }
.uwg-market-pill:nth-child(6)  { animation-delay: 0.30s; }
.uwg-market-pill:nth-child(7)  { animation-delay: 0.35s; }
.uwg-market-pill:nth-child(8)  { animation-delay: 0.40s; }
.uwg-market-pill:nth-child(9)  { animation-delay: 0.45s; }
.uwg-market-pill:nth-child(10) { animation-delay: 0.50s; }
.uwg-market-pill:nth-child(11) { animation-delay: 0.55s; }
.uwg-market-pill:nth-child(12) { animation-delay: 0.60s; }
.uwg-market-pill:nth-child(13) { animation-delay: 0.65s; }
.uwg-market-pill:nth-child(14) { animation-delay: 0.70s; }
.uwg-market-pill:nth-child(15) { animation-delay: 0.75s; }
.uwg-market-pill:nth-child(16) { animation-delay: 0.80s; }

@keyframes pillFadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Effet shimmer doré qui traverse la pilule au survol */
.uwg-market-pill::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(232,102,26,.25) 40%,
    rgba(201,168,76,.35) 50%,
    rgba(232,102,26,.25) 60%,
    transparent 100%);
  transition: left .7s ease;
  pointer-events: none;
}

.uwg-market-pill:hover {
  border-color: rgba(232,102,26,.7);
  color: #F5F0E4;
  background: linear-gradient(135deg, rgba(232,102,26,.18) 0%, rgba(201,168,76,.08) 100%);
  transform: translateY(-3px) scale(1.03);
  box-shadow:
    0 8px 24px rgba(0,0,0,.4),
    0 0 24px rgba(232,102,26,.3),
    0 0 48px rgba(201,168,76,.15),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.uwg-market-pill:hover::before {
  left: 100%;
}

/* Drapeau / code pays stylisé */
.uwg-market-pill .pill-flag {
  font-size: .95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  line-height: 1;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.5));
  transition: transform .35s ease, filter .35s ease;
}

.uwg-market-pill:hover .pill-flag {
  transform: scale(1.15);
  filter: drop-shadow(0 2px 6px rgba(232,102,26,.5));
}

/* Ligne pulsante en bas de la pilule active */
.uwg-market-pill::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--or), var(--gold), var(--or));
  transition: width .45s ease;
  box-shadow: 0 0 10px rgba(232,102,26,.6);
}
.uwg-market-pill:hover::after {
  width: 60%;
}

@media (max-width: 640px) {
  .uwg-stats-row { grid-template-columns: repeat(2,1fr); }
  .uwg-markets-grid { gap: 8px; }
  .uwg-market-pill { padding: .6rem 1rem; font-size: .55rem; }
}


/* ═══════════════════════════════════════════════════════════════
   PRÉSENTATION PREMIUM & FOOTER — UNICOM WORLD GROUP
   ═══════════════════════════════════════════════════════════════ */

/* ── ABOUT PREMIUM ───────────────────────────────────────────── */
.about {
  background: linear-gradient(180deg, #070f1c 0%, #0a1525 60%, #07111f 100%);
  padding: 6rem 8% 5rem;
  position: relative;
  overflow: hidden;
}

/* Fond décoratif */
.ab-bg-deco { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.ab-orb {
  position: absolute; border-radius: 50%;
  filter: blur(80px);
}
.ab-orb-1 {
  width: 500px; height: 500px;
  top: -150px; right: -100px;
  background: radial-gradient(circle, rgba(201,168,76,.06) 0%, transparent 70%);
  animation: orbFloat 12s ease-in-out infinite;
}
.ab-orb-2 {
  width: 400px; height: 400px;
  bottom: -100px; left: -80px;
  background: radial-gradient(circle, rgba(232,102,26,.05) 0%, transparent 70%);
  animation: orbFloat 16s ease-in-out infinite reverse;
}
@keyframes orbFloat {
  0%,100% { transform: translate(0,0) scale(1); }
  50% { transform: translate(30px,-40px) scale(1.08); }
}
.ab-grid-lines {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(201,168,76,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,.03) 1px, transparent 1px);
  background-size: 60px 60px;
}




/* Grille des piliers */
.ab-pillar { position: relative; overflow: hidden; }


.ab-pillar::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.35), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s ease;
}

.ab-pillar:hover::before { transform: scaleX(1); }

/* Icônes des piliers */

.ab-pillar-icon svg {
  width: 100%; height: 100%;
  filter: drop-shadow(0 0 10px rgba(201,168,76,.2));
  transition: filter .35s;
}
.ab-pillar:hover .ab-pillar-icon svg {
  filter: drop-shadow(0 0 18px rgba(201,168,76,.45));
  color: #e8c97a;
}

/* Animation de rotation lente */
.ab-spin-slow { animation: spinSlow 18s linear infinite; transform-origin: 32px 32px; }
@keyframes spinSlow { to { stroke-dashoffset: -100; } }



/* KPIs about */

.ab-kpis { position: relative; }
.ab-kpis::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(201,168,76,.04) 0%, transparent 70%);
}



/* ── FOOTER PREMIUM ──────────────────────────────────────────── */
.ft-premium {
  background: #020810;
  color: #f0ebe0;
  position: relative;
  overflow: hidden;
}
.ft-premium::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 300px;
  background: radial-gradient(ellipse at 50% 0%, rgba(201,168,76,.05) 0%, transparent 70%);
  pointer-events: none;
}

/* Topbar animée */
.ft-topbar {
  height: 3px;
  position: relative;
  background: linear-gradient(90deg, #07111f 0%, rgba(201,168,76,.15) 20%, #c9a84c 50%, rgba(201,168,76,.15) 80%, #07111f 100%);
  overflow: hidden;
}
.ft-topbar-glow {
  position: absolute; top: -4px;
  width: 40%; height: 11px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.7), transparent);
  animation: topGlow 4s ease-in-out infinite;
}
@keyframes topGlow {
  0%   { left: -40%; }
  100% { left: 140%; }
}

/* Corps footer */
.ft-body {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1.4fr;
  gap: 0;
  padding: 4.5rem 8% 3.5rem;
  border-bottom: 1px solid rgba(201,168,76,.06);
}
@media (max-width: 1200px) { .ft-body { grid-template-columns: 1fr 1fr; gap: 3rem 5%; } }
@media (max-width: 640px)  { .ft-body { grid-template-columns: 1fr; gap: 2.5rem; } }

/* Brand */
.ft-brand { padding-right: 3.5rem; }
.ft-logo-wrap {
  display: flex; align-items: center; gap: .9rem;
  margin-bottom: 1.4rem;
}
.ft-logo { height: 40px; width: auto; filter: brightness(1.05); }
.ft-logo-text { display: flex; flex-direction: column; gap: .04rem; }
.ft-logo-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: .85rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: #f0ebe0; line-height: 1.1; white-space: nowrap;
}
.ft-logo-name em { font-style: normal; color: #c9a84c; }
.ft-logo-tag {
  font-size: .4rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(168,180,200,.4); line-height: 1.2;
}
.ft-mission {
  font-size: .73rem; line-height: 1.75; color: #a8b4c8; margin: 0 0 1.5rem;
}

/* Badges certifications */
.ft-badges {
  display: flex; flex-wrap: wrap; gap: .5rem;
  margin-bottom: 1.5rem;
}
.ft-badge {
  display: flex; align-items: center; gap: .35rem;
  padding: .28rem .7rem;
  border: 1px solid rgba(74,222,128,.2);
  background: rgba(74,222,128,.05);
  color: rgba(74,222,128,.7);
  font-size: .42rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  transition: all .25s; cursor: default;
  border-radius: 2px;
}
.ft-badge svg { width: 12px; height: 12px; }
.ft-badge:hover { border-color: rgba(74,222,128,.5); color: #4ade80; background: rgba(74,222,128,.1); }

/* Drapeaux */
.ft-presence-label {
  font-size: .42rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(201,168,76,.4); margin-bottom: .6rem;
}
.ft-flags-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.ft-flag {
  font-size: 1.2rem; cursor: default;
  transition: transform .2s, filter .2s;
  display: inline-block; filter: grayscale(.2);
}
.ft-flag:hover { transform: translateY(-3px) scale(1.18); filter: grayscale(0); }

/* Colonnes nav/services */
.ft-col { padding: 0 2rem; border-left: 1px solid rgba(201,168,76,.06); }
.ft-col:last-child { padding-right: 0; }
.ft-col-head {
  display: flex; align-items: center; gap: .55rem;
  font-size: .46rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: #c9a84c; margin: 0 0 1.3rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid rgba(201,168,76,.12);
}
.ft-col-head svg { width: 10px; height: 10px; flex-shrink: 0; opacity: .6; }
.ft-nav { display: flex; flex-direction: column; gap: .45rem; }
.ft-link {
  display: flex; align-items: center; gap: .55rem;
  font-size: .71rem; color: #a8b4c8; text-decoration: none;
  transition: color .2s, transform .2s, gap .2s;
  padding: .1rem 0;
}
.ft-link:hover { color: #c9a84c; transform: translateX(4px); gap: .75rem; }
.ft-link-dot {
  width: 4px; height: 4px; border-radius: 50%;
  background: rgba(201,168,76,.3);
  flex-shrink: 0; transition: background .2s, transform .2s;
}
.ft-link:hover .ft-link-dot { background: #c9a84c; transform: scale(1.5); }

/* Contact */
.ft-col-contact { padding: 0 0 0 2rem; }
.ft-contact-items { display: flex; flex-direction: column; gap: .95rem; margin-bottom: 1.4rem; }
.ft-contact-item { display: flex; align-items: flex-start; gap: .7rem; }
.ft-contact-icon {
  width: 28px; height: 28px; flex-shrink: 0;
  border: 1px solid rgba(201,168,76,.15);
  background: rgba(201,168,76,.06);
  display: flex; align-items: center; justify-content: center;
  color: rgba(201,168,76,.6);
  transition: all .25s;
}
.ft-contact-icon svg { width: 13px; height: 13px; }
.ft-contact-item:hover .ft-contact-icon {
  border-color: rgba(201,168,76,.4);
  color: #c9a84c;
  background: rgba(201,168,76,.12);
}
.ft-ci-label {
  font-size: .4rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase;
  color: rgba(201,168,76,.5); margin-bottom: .15rem;
}
.ft-ci-val { font-size: .71rem; color: #a8b4c8; line-height: 1.5; }
a.ft-ci-val { text-decoration: none; transition: color .2s; }
a.ft-ci-val:hover { color: #c9a84c; }

/* Secteurs */
.ft-sectors { margin-bottom: 1.4rem; }
.ft-sectors-label {
  font-size: .4rem; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: rgba(201,168,76,.4);
  margin-bottom: .6rem;
}
.ft-sectors-grid {
  display: flex; flex-wrap: wrap; gap: .35rem;
}
.ft-sector {
  font-size: .42rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: .22rem .55rem;
  border: 1px solid rgba(201,168,76,.12);
  background: rgba(13,26,45,.6);
  color: rgba(168,180,200,.55);
  cursor: default; transition: all .25s;
}
.ft-sector:hover { border-color: rgba(201,168,76,.3); color: #c9a84c; background: rgba(201,168,76,.07); }

/* KPIs footer */
.ft-kpis {
  display: flex; align-items: center; gap: 0;
  padding: 1.2rem 0;
  border-top: 1px solid rgba(201,168,76,.08);
}
.ft-kpi-item { flex: 1; text-align: center; }
.ft-kpi-sep { width: 1px; height: 36px; background: linear-gradient(to bottom, transparent, rgba(201,168,76,.15), transparent); flex-shrink: 0; }
.ft-kpi-n {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem; font-weight: 600;
  color: #c9a84c; line-height: 1;
}
.ft-kpi-n em { font-style: normal; font-size: .9rem; color: rgba(201,168,76,.6); }
.ft-kpi-l {
  display: block; font-size: .4rem; letter-spacing: .15em;
  text-transform: uppercase; color: rgba(168,180,200,.4); margin-top: .3rem;
}

/* Barre de bas */
.ft-bottom {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 1rem;
  padding: 1.2rem 8%;
  background: rgba(0,0,0,.3);
}
.ft-bottom-left { display: flex; flex-direction: column; gap: .5rem; }
.ft-copy { font-size: .65rem; color: rgba(168,180,200,.3); }
.ft-legal { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.ft-legal-link {
  font-size: .58rem; color: rgba(168,180,200,.22);
  text-decoration: none; transition: color .2s;
}
.ft-legal-link:hover { color: #c9a84c; }
.ft-legal-sep { color: rgba(201,168,76,.12); font-size: .55rem; }
.ft-bottom-right { text-align: right; }
.ft-reg { font-size: .6rem; color: rgba(168,180,200,.25); letter-spacing: .1em; text-transform: uppercase; }
.ft-made {
  display: flex; align-items: center; gap: .5rem; justify-content: flex-end;
  font-size: .58rem; color: rgba(168,180,200,.22); margin-top: .4rem;
}
.ft-made-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(201,168,76,.4);
  animation: dotPulse 2.5s ease-in-out infinite;
}
@keyframes dotPulse {
  0%,100% { opacity: .4; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}





/* ══ VIDÉO BUDAPEST ══════════════════════════════════════════ */
.bvs {
  background: #040c18;
  border-top: 1px solid rgba(201,168,76,.1);
  border-bottom: 1px solid rgba(201,168,76,.1);
}

/* Header */
.bvs-hdr {
  padding: 3.5rem 8% 2.5rem;
  text-align: center;
}
.bvs-live {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-size: .46rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #e8661a;
  margin-bottom: 1rem;
}
.bvs-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #e8661a;
  box-shadow: 0 0 8px rgba(232,102,26,.8);
  animation: bvsDot 1.8s ease-in-out infinite;
}
@keyframes bvsDot {
  0%,100% { opacity:.5; transform:scale(1); }
  50% { opacity:1; transform:scale(1.5); box-shadow:0 0 16px rgba(232,102,26,.9); }
}
.bvs-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 600;
  color: #f0ebe0;
  margin: 0 0 .7rem;
  line-height: 1.2;
}
.bvs-title em { font-style: italic; color: #c9a84c; }
.bvs-sub {
  font-size: .76rem;
  color: rgba(168,180,200,.6);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.65;
}

/* Conteneur player — PLEINE LARGEUR */
.bvs-player-outer {
  position: relative;
  width: 100%;
  /* Hauteur responsive 16:9 */
  padding-top: 56.25%;
  background: #000;
  overflow: hidden;
}

/* Cover */
.bvs-cover {
  position: absolute;
  inset: 0;
  cursor: pointer;
  z-index: 10;
  transition: opacity .6s ease;
}
.bvs-cover.bvs-hidden {
  opacity: 0;
  pointer-events: none;
}
.bvs-cover-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s ease, filter .5s;
  pointer-events: none;
}
.bvs-cover:hover .bvs-cover-img {
  transform: scale(1.03);
  filter: brightness(.7);
}
.bvs-ov-dark {
  position: absolute; inset: 0;
  background: rgba(4,12,24,.45);
  pointer-events: none;
}
.bvs-ov-grad {
  position: absolute; inset: 0;
  background: linear-gradient(
    to top,
    rgba(4,12,24,.95) 0%,
    rgba(4,12,24,.2) 40%,
    rgba(4,12,24,.55) 100%
  );
  pointer-events: none;
}

/* Centre du cover - clique ici pour lancer */
.bvs-cover-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.8rem;
  z-index: 5;
  cursor: pointer;
}

/* ═══ BOUTON PLAY - VERSION LUXE PREMIUM ═══ */
.bvs-play, .bvs-play2 {
  position: relative;
  width: 120px; height: 120px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: transform .5s cubic-bezier(.34,1.56,.64,1);
}

/* Halo externe flottant permanent */
.bvs-play::before, .bvs-play2::before {
  content: '';
  position: absolute;
  inset: -30px;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(232,102,26,.15) 0%,
    rgba(245,217,122,.08) 40%,
    transparent 70%);
  animation: bvsAura 4s ease-in-out infinite;
  pointer-events: none;
}
@keyframes bvsAura {
  0%, 100% { transform: scale(1);    opacity: .6; }
  50%      { transform: scale(1.15); opacity: 1; }
}

.bvs-cover:hover .bvs-play, .bvs-play2 { transform: scale(1.12); }

/* Rings concentriques animées - plus nombreuses et élégantes */
.bvs-play-ripple, .bvs-play2-ripple {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(245,217,122,.55);
  animation: bvsRipple 3s ease-out infinite;
  box-shadow: 0 0 20px rgba(245,217,122,.15);
  pointer-events: none;
}
.bvs-play-ripple-2, .bvs-play2-ripple-2 { animation-delay: 1s;   border-color: rgba(232,102,26,.4); }
.bvs-play-ripple-3, .bvs-play2-ripple-3 { animation-delay: 2s;   border-color: rgba(245,217,122,.3); }

@keyframes bvsRipple {
  0%   { transform: scale(1);   opacity: .85; }
  100% { transform: scale(2.4); opacity: 0;   }
}

/* Anneau doré rotatif décoratif */
.bvs-play::after, .bvs-play2::after {
  content: '';
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  border: 1px dashed rgba(245,217,122,.55);
  animation: bvsRingRotate 18s linear infinite;
  pointer-events: none;
}
@keyframes bvsRingRotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.bvs-cover:hover .bvs-play::after, .bvs-play2::after {
  border-color: rgba(245,217,122,.8);
  animation-duration: 8s;
}

/* Cercle principal du bouton - dégradé or profond */
.bvs-play-circle, .bvs-play2-circle {
  width: 108px; height: 108px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, #FFE89A 0%, transparent 60%),
    linear-gradient(135deg,
      #FFD970 0%,
      #E8661A 35%,
      #D94F0E 65%,
      #8B4513 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow:
    0 15px 50px rgba(232,102,26,.6),
    0 8px 20px rgba(0,0,0,.5),
    0 0 0 3px rgba(245,217,122,.4),
    0 0 0 6px rgba(245,217,122,.12),
    inset 0 3px 6px rgba(255,240,200,.4),
    inset 0 -3px 6px rgba(0,0,0,.3);
  transition: all .4s cubic-bezier(.34,1.56,.64,1);
  position: relative;
  z-index: 3;
}

.bvs-play-circle::before, .bvs-play2-circle::before {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.25);
  pointer-events: none;
}

.bvs-cover:hover .bvs-play-circle, .bvs-play2-circle {
  box-shadow:
    0 20px 70px rgba(232,102,26,.8),
    0 10px 30px rgba(0,0,0,.6),
    0 0 0 4px rgba(245,217,122,.7),
    0 0 0 10px rgba(245,217,122,.2),
    0 0 40px rgba(245,217,122,.4),
    inset 0 3px 6px rgba(255,240,200,.5),
    inset 0 -3px 6px rgba(0,0,0,.3);
  background:
    radial-gradient(circle at 30% 25%, #FFF4D6 0%, transparent 60%),
    linear-gradient(135deg,
      #FFE55C 0%,
      #F5961F 35%,
      #E8661A 65%,
      #8B4513 100%);
}

.bvs-play-circle svg, .bvs-play2-circle svg {
  margin-left: 6px;
  width: 54px;
  height: 54px;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
  transition: transform .3s ease;
}
.bvs-cover:hover .bvs-play-circle svg, .bvs-play2-circle svg {
  transform: scale(1.05);
}

/* ═══ LABEL SOUS LE BOUTON - PREMIUM ═══ */
.bvs-cover-label { text-align: center; }

.bvs-cover-tag, .bvs-cover2-tag {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(245,217,122,.9);
  margin-bottom: .7rem;
  padding: .35rem 1.1rem;
  display: inline-block;
  background: linear-gradient(135deg, rgba(10,18,35,.85) 0%, rgba(20,10,5,.85) 100%);
  border: 1px solid rgba(245,217,122,.35);
  border-radius: 30px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow:
    0 4px 12px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(245,217,122,.15);
  filter: drop-shadow(0 0 8px rgba(245,217,122,.15));
}

.bvs-cover-cta, .bvs-cover2-cta {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.65rem;
  font-weight: 500;
  letter-spacing: .05em;
  background: linear-gradient(180deg,
    #FFF4D6 0%,
    #F5D97A 40%,
    #C9A84C 80%,
    #8B6A2C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.6)) drop-shadow(0 0 12px rgba(245,217,122,.25));
  transition: all .4s ease;
  position: relative;
  display: inline-block;
}

.bvs-cover-cta::after, .bvs-cover2-cta::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transition: width .4s ease;
}
.bvs-cover:hover .bvs-cover-cta, .bvs-cover2-cta {
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.7)) drop-shadow(0 0 18px rgba(245,217,122,.5));
}
.bvs-cover:hover .bvs-cover-cta::after, .bvs-cover2-cta::after {
  width: 80%;
}

/* Méta bas gauche */
.bvs-cover-meta {
  position: absolute;
  bottom: 2rem; left: 4rem;
  z-index: 2;
}
.bvs-meta-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem; font-weight: 600;
  color: #f0ebe0;
  margin-bottom: .25rem;
}
.bvs-meta-sub {
  font-size: .5rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(201,168,76,.6);
}

/* Lecteur vidéo — position absolue pour remplir le container */
.bvs-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
  display: block;
  z-index: 5;
  /* Caché par défaut — le cover est par-dessus */
}

/* Lien de secours */
.bvs-fallback {
  padding: 1.2rem 8%;
  text-align: center;
  background: #040c18;
}
.bvs-fallback-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .48rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(168,180,200,.35);
  text-decoration: none;
  transition: color .2s;
}
.bvs-fallback-link:hover { color: rgba(201,168,76,.7); }


/* ── GALERIE HONGRIE AMÉLIORÉE ──────────────────────────── */













.bgi picture { display: block; width: 100%; height: 100%; position: absolute; inset: 0; }






/* ══ GALERIE BUDAPEST — 8 PHOTOS ══════════════════════════ */
.buda-gal {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 3px;
  background: #020810;
  margin: 3rem auto;
  max-width: 1500px;
  padding: 4px;
  border-radius: 6px;
  position: relative;
  box-shadow:
    0 20px 60px rgba(0,0,0,.6),
    0 0 0 1px rgba(245,217,122,.15);
}
/* Encadrement tricolore hongrois lumineux sur la galerie */
.buda-gal::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  padding: 1px;
  background: linear-gradient(135deg,
    #CE2939 0%,
    #F5D97A 15%,
    #FFFFFF 30%,
    #F5D97A 45%,
    #436F4D 60%,
    #F5D97A 75%,
    #CE2939 90%,
    #F5D97A 100%);
  background-size: 300% 300%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: uwgBorderFlow 10s linear infinite reverse;
  pointer-events: none;
  z-index: 3;
}
/* Halo extérieur tricolore */
.buda-gal::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 8px;
  background: linear-gradient(135deg,
    rgba(206,41,57,.3) 0%,
    rgba(245,217,122,.3) 25%,
    rgba(255,255,255,.25) 50%,
    rgba(245,217,122,.3) 75%,
    rgba(67,111,77,.3) 100%);
  filter: blur(12px);
  z-index: -1;
  opacity: .6;
  animation: uwgGlowPulse 6s ease-in-out infinite;
  pointer-events: none;
}
@media (max-width: 1400px) { .buda-gal { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 700px)  { .buda-gal { grid-template-columns: repeat(2, 1fr); } }

.bgi {
  position: relative;
  height: 200px;
  overflow: hidden;
  cursor: pointer;
  background: #071018;
}
.bgi img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.82) saturate(.9);
  transition: transform .7s cubic-bezier(.25,.46,.45,.94), filter .5s;
}
.bgi:hover img {
  transform: scale(1.08);
  filter: brightness(.95) saturate(1.08);
}
.bgi-ov {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top,
    rgba(4,12,24,.88) 0%,
    rgba(4,12,24,.18) 55%,
    transparent 100%
  );
  transition: background .4s;
}
.bgi:hover .bgi-ov {
  background: linear-gradient(to top,
    rgba(4,12,24,.65) 0%,
    rgba(4,12,24,.06) 50%,
    transparent 100%
  );
}
.bgi-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: .55rem .7rem .5rem;
  z-index: 2;
  font-size: .38rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(240,235,224,.82);
  line-height: 1.25;
  transition: color .3s, transform .3s;
}
.bgi:hover .bgi-label { color: #c9a84c; transform: translateY(-2px); }
.bgi::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
  height: 2px;
  background: linear-gradient(90deg, transparent, #c9a84c, transparent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .4s ease;
}
.bgi:hover::after { transform: scaleX(1); }


/* ══ SECTION RÉGIONS PREMIUM ══════════════════════════════════ */
.regs {
  background: #07111f;
  padding: 5rem 8% 4rem;
  position: relative;
  overflow: hidden;
}
.regs::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(201,168,76,.04) 0%, transparent 60%);
  pointer-events: none;
}

/* Header */
.regs-hdr {
  margin-bottom: 3rem;
  max-width: 680px;
}

/* Grille — 5 colonnes égales */
.regs-g {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  margin-bottom: 0;
}
@media (max-width: 1100px) { .regs-g { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .regs-g { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px)  { .regs-g { grid-template-columns: 1fr; } }

/* Carte région */
.reg {
  position: relative;
  overflow: hidden;
  background: #0b1929;
  border: 1px solid rgba(201,168,76,.1);
  transition: border-color .35s, transform .35s, box-shadow .35s;
  cursor: default;
}
.reg:hover {
  border-color: rgba(201,168,76,.35);
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(0,0,0,.5);
  z-index: 2;
}

/* Photo */
.reg-photo-wrap {
  position: relative;
  width: 100%;
  height: 220px;
  overflow: hidden;
  background: #07111f;
}
.reg-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(.7) saturate(.85);
  transition: transform .8s cubic-bezier(.25,.46,.45,.94),
              filter .5s ease;
}
.reg:hover .reg-photo {
  transform: scale(1.08);
  filter: brightness(.85) saturate(1);
}
.reg-photo-fb {
  position: absolute; inset: 0;
  z-index: 0;
  opacity: 0;
  transition: opacity .4s;
}
.reg-photo-ov {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(4,10,20,.25) 0%,
    rgba(4,10,20,.1) 40%,
    rgba(4,10,20,.75) 100%
  );
  transition: background .4s;
}
.reg:hover .reg-photo-ov {
  background: linear-gradient(
    to bottom,
    rgba(4,10,20,.15) 0%,
    rgba(4,10,20,.05) 35%,
    rgba(4,10,20,.65) 100%
  );
}

/* Code région (EU, AS, etc.) — grand texte en surimpression */
.reg-code {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 3;
  font-family: 'Cormorant Garamond', serif;
  font-size: 3.5rem;
  font-weight: 700;
  letter-spacing: .12em;
  opacity: .18;
  transition: opacity .35s, transform .35s;
  pointer-events: none;
  text-shadow: 0 2px 20px currentColor;
}
.reg:hover .reg-code {
  opacity: .32;
  transform: translate(-50%,-50%) scale(1.08);
}

/* Flag en haut droite */
.reg-flag-top {
  position: absolute;
  top: .8rem; right: .8rem;
  z-index: 4;
  font-size: 1.3rem;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.5));
  transition: transform .3s;
}
.reg:hover .reg-flag-top { transform: scale(1.15) rotate(-5deg); }

/* Corps de la carte */
.reg-cb {
  padding: 1.2rem 1.1rem 1.4rem;
  text-align: center;
  background: #0b1929;
  position: relative;
}
.reg-cb::before {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.2), transparent);
}
.reg-nm {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-weight: 600;
  color: #f0ebe0;
  margin: 0 0 .3rem;
  transition: color .3s;
}
.reg:hover .reg-nm { color: #e8d08a; }
.reg-sb {
  font-size: .46rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: .7rem;
}
.reg-meta {
  margin-bottom: .7rem;
}
.reg-proj {
  display: block;
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .1em;
  color: rgba(240,235,224,.5);
  margin-bottom: .2rem;
}
.reg-focus {
  display: block;
  font-size: .42rem;
  letter-spacing: .08em;
  color: rgba(168,180,200,.38);
  line-height: 1.4;
}
.reg-bar {
  width: 20px;
  height: 2px;
  margin: 0 auto;
  opacity: .6;
  transition: width .35s ease, opacity .35s;
}
.reg:hover .reg-bar { width: 40px; opacity: 1; }

/* Bandeau stats régions */
.regs-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: 3px;
  background: linear-gradient(135deg, #0a1828 0%, #0d1e35 50%, #0a1828 100%);
  border: 1px solid rgba(201,168,76,.08);
  padding: 2rem 4rem;
}
@media (max-width: 700px) {
  .regs-stats { flex-wrap: wrap; padding: 1.5rem 1rem; }
}
.regs-stat {
  flex: 1;
  text-align: center;
  padding: 0 2rem;
}
.regs-stat-sep {
  width: 1px;
  height: 44px;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,.18), transparent);
  flex-shrink: 0;
}
.regs-stat-n {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4rem;
  font-weight: 600;
  color: #c9a84c;
  line-height: 1;
  letter-spacing: -.01em;
}
.regs-stat-l {
  display: block;
  font-size: .44rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(168,180,200,.45);
  margin-top: .4rem;
}


/* ══ SECTION INFO BUDAPEST PREMIUM ════════════════════════════ */
.buda-info-section {
  background: linear-gradient(180deg, #040c18 0%, #07111f 40%, #040c18 100%);
  position: relative;
}
.buda-info-section::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.4), #c9a84c, rgba(201,168,76,.4), transparent);
}

/* Ligne décorative */
.buda-info-topline {
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.5), #c9a84c, rgba(201,168,76,.5), transparent);
  position: relative;
  overflow: hidden;
}
.buda-info-topline::after {
  content: '';
  position: absolute; top: -3px; left: -50%;
  width: 40%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.8), transparent);
  animation: budaLineSweep 4s ease-in-out infinite;
}
@keyframes budaLineSweep { 0% { left:-50%; } 100% { left:150%; } }

/* Header économique */
.buda-eco-hdr {
  padding: 3.5rem 8% 1.5rem;
  text-align: center;
}
.buda-atouts-hdr {
  padding: 3rem 8% 1.5rem;
  text-align: center;
}
.buda-eco-label {
  font-size: .48rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(232,102,26,.8);
  margin-bottom: .7rem;
}
.buda-eco-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 600;
  color: #f0ebe0;
  margin: 0;
  line-height: 1.2;
}
.buda-eco-title em { font-style: italic; color: #c9a84c; }

/* Grille 6 stats économiques */
.buda-eco-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  padding: 0 8% 3rem;
  background: rgba(201,168,76,.08);
}
@media (max-width: 1100px) { .buda-eco-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .buda-eco-grid { grid-template-columns: repeat(2, 1fr); } }

.buda-eco-stat {
  background: #07111f;
  padding: 1.8rem 1.2rem;
  text-align: center;
  border: 1px solid rgba(201,168,76,.08);
  transition: border-color .3s, background .3s;
  position: relative;
  overflow: hidden;
}
.buda-eco-stat::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #c9a84c, transparent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .4s;
}
.buda-eco-stat:hover { border-color: rgba(201,168,76,.3); background: #0a1828; }
.buda-eco-stat:hover::after { transform: scaleX(1); }
.buda-eco-icon { font-size: 1.5rem; margin-bottom: .6rem; }
.buda-eco-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: #c9a84c;
  line-height: 1;
  margin-bottom: .4rem;
  letter-spacing: -.01em;
}
.buda-eco-lbl {
  font-size: .44rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(240,235,224,.75);
  margin-bottom: .3rem;
  line-height: 1.3;
}
.buda-eco-sub {
  font-size: .42rem;
  color: rgba(168,180,200,.45);
  letter-spacing: .06em;
}

/* Grille atouts — 3 colonnes × 2 rangées */
/* ═══════════════════════════════════════════════════════
   ATOUTS STRATÉGIQUES - Cartes luxe tricolore hongrois
═══════════════════════════════════════════════════════ */
.buda-atouts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding: 0 8% 4rem;
}
@media (max-width: 900px) { .buda-atouts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .buda-atouts-grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════════════════
   ATOUTS STRATÉGIQUES - REFAIT SIMPLE ET PROPRE
═══════════════════════════════════════════════════════ */
.buda-atouts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding: 0 8% 4rem;
}
@media (max-width: 900px) { .buda-atouts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .buda-atouts-grid { grid-template-columns: 1fr; } }

.buda-atout-card {
  background: #0a1828;
  padding: 2.2rem 2rem 2rem;
  position: relative;
  transition: background .35s ease, box-shadow .35s ease, transform .35s ease;
  border-radius: 3px;
  box-shadow:
    inset 0 0 0 1px rgba(245,217,122,.25),
    0 6px 18px rgba(0,0,0,.3);
}

.buda-atout-card:nth-child(3n+1) {
  box-shadow:
    inset 0 0 0 1px rgba(206,41,57,.35),
    0 6px 18px rgba(0,0,0,.3);
}
.buda-atout-card:nth-child(3n+3) {
  box-shadow:
    inset 0 0 0 1px rgba(74,222,128,.35),
    0 6px 18px rgba(0,0,0,.3);
}

/* Supprime les pseudo-éléments précédents */
.buda-atout-card::before,
.buda-atout-card::after { display: none; }

/* Hover - on garde la bordure via box-shadow inset (jamais masquée), 
   on intensifie et on ajoute un glow extérieur */
.buda-atout-card:hover {
  transform: translateY(-4px);
  background: #0f2136;
  box-shadow:
    inset 0 0 0 2px #F5D97A,
    0 12px 28px rgba(0,0,0,.45),
    0 0 28px rgba(245,217,122,.2);
}
.buda-atout-card:nth-child(3n+1):hover {
  box-shadow:
    inset 0 0 0 2px #FF4F5F,
    0 12px 28px rgba(0,0,0,.45),
    0 0 28px rgba(206,41,57,.3);
}
.buda-atout-card:nth-child(3n+3):hover {
  box-shadow:
    inset 0 0 0 2px #6DE79E,
    0 12px 28px rgba(0,0,0,.45),
    0 0 28px rgba(74,222,128,.25);
}

/* Icône ronde - couleurs alternées selon position */
.buda-atout-ic {
  width: 56px; height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
  color: var(--gold);
  background: linear-gradient(135deg, rgba(245,217,122,.15) 0%, rgba(201,168,76,.08) 100%);
  border: 1px solid rgba(245,217,122,.3);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 2px 12px rgba(0,0,0,.25);
  transition: all .45s cubic-bezier(.34,1.56,.64,1);
  filter: drop-shadow(0 0 10px rgba(245,217,122,.25));
}
/* Positions 1,4 → rouge */
.buda-atout-card:nth-child(3n+1) .buda-atout-ic {
  color: #E8506A;
  background: linear-gradient(135deg, rgba(206,41,57,.18) 0%, rgba(245,217,122,.08) 100%);
  border-color: rgba(206,41,57,.35);
  filter: drop-shadow(0 0 10px rgba(206,41,57,.3));
}
/* Positions 3,6 → vert */
.buda-atout-card:nth-child(3n+3) .buda-atout-ic {
  color: #6DE79E;
  background: linear-gradient(135deg, rgba(74,222,128,.18) 0%, rgba(245,217,122,.08) 100%);
  border-color: rgba(74,222,128,.35);
  filter: drop-shadow(0 0 10px rgba(74,222,128,.3));
}
.buda-atout-ic svg {
  width: 60%; height: 60%;
}

.buda-atout-card:hover .buda-atout-ic {
  transform: scale(1.12) rotate(-4deg);
  border-color: rgba(245,217,122,.75);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 0 24px rgba(245,217,122,.5);
  filter: drop-shadow(0 0 16px rgba(245,217,122,.55));
}
.buda-atout-card:nth-child(3n+1):hover .buda-atout-ic {
  border-color: rgba(206,41,57,.85);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 0 24px rgba(206,41,57,.55);
  filter: drop-shadow(0 0 16px rgba(206,41,57,.6));
}
.buda-atout-card:nth-child(3n+3):hover .buda-atout-ic {
  border-color: rgba(74,222,128,.85);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 0 24px rgba(74,222,128,.5);
  filter: drop-shadow(0 0 16px rgba(74,222,128,.55));
}

.buda-atout-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.35rem;
  font-weight: 500;
  color: #F5F0E4;
  margin: 0 0 .8rem;
  transition: color .3s ease;
  line-height: 1.2;
  letter-spacing: -.005em;
}
.buda-atout-card:hover .buda-atout-title { color: #F5D97A; }
.buda-atout-card:nth-child(3n+1):hover .buda-atout-title { color: #FF9FA9; }
.buda-atout-card:nth-child(3n+3):hover .buda-atout-title { color: #86EFAC; }

.buda-atout-txt {
  font-size: .78rem;
  line-height: 1.85;
  font-weight: 300;
  color: rgba(240,235,224,.75);
  margin: 0 0 1.4rem;
}

/* Tags mini-pills - fond dégradé + bordure colorée */
.buda-atout-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(201,168,76,.15);
}
.buda-atout-tags span {
  font-size: .48rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: .32rem .7rem;
  border: 1px solid rgba(245,217,122,.28);
  color: rgba(245,217,122,.9);
  background: linear-gradient(135deg, rgba(245,217,122,.08), rgba(201,168,76,.04));
  border-radius: 2px;
  transition: all .3s ease;
}
.buda-atout-card:nth-child(3n+1) .buda-atout-tags span {
  border-color: rgba(206,41,57,.28);
  color: #FF9FA9;
  background: linear-gradient(135deg, rgba(206,41,57,.08), rgba(245,217,122,.04));
}
.buda-atout-card:nth-child(3n+3) .buda-atout-tags span {
  border-color: rgba(74,222,128,.28);
  color: #86EFAC;
  background: linear-gradient(135deg, rgba(74,222,128,.08), rgba(245,217,122,.04));
}

.buda-atout-card:hover .buda-atout-tags span {
  border-color: rgba(245,217,122,.55);
  color: #F5D97A;
  background: linear-gradient(135deg, rgba(245,217,122,.18), rgba(201,168,76,.1));
}
.buda-atout-card:nth-child(3n+1):hover .buda-atout-tags span {
  border-color: rgba(206,41,57,.55);
  color: #FFBAC4;
  background: linear-gradient(135deg, rgba(206,41,57,.18), rgba(245,217,122,.08));
}
.buda-atout-card:nth-child(3n+3):hover .buda-atout-tags span {
  border-color: rgba(74,222,128,.55);
  color: #A7F3C7;
  background: linear-gradient(135deg, rgba(74,222,128,.18), rgba(245,217,122,.08));
}

/* ═══════════════════════════════════════════════════════
   SECTEURS INDUSTRIELS - Pilules luxe tricolore
═══════════════════════════════════════════════════════ */
.buda-sectors {
  padding: 3.5rem 8%;
  border-top: 1px solid rgba(201,168,76,.12);
  border-bottom: 1px solid rgba(201,168,76,.12);
  background: linear-gradient(180deg, #020A16 0%, #07111f 50%, #020A16 100%);
  position: relative;
  overflow: hidden;
}

/* Orbes lumineux décoratifs en arrière-plan */
.buda-sectors::before {
  content: '';
  position: absolute;
  top: -40%; left: -5%;
  width: 420px; height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(206,41,57,.05) 0%, transparent 60%);
  pointer-events: none;
  animation: budaSectorGlow 11s ease-in-out infinite;
}
.buda-sectors::after {
  content: '';
  position: absolute;
  bottom: -40%; right: -5%;
  width: 420px; height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74,222,128,.05) 0%, transparent 60%);
  pointer-events: none;
  animation: budaSectorGlow 13s ease-in-out infinite reverse;
}
@keyframes budaSectorGlow {
  0%, 100% { transform: scale(1); opacity: .7; }
  50%      { transform: scale(1.15); opacity: 1; }
}

.buda-sector-hdr {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--or);
  margin-bottom: 1.8rem;
  text-align: center;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
}
.buda-sector-hdr::before,
.buda-sector-hdr::after {
  content: '';
  width: 40px; height: 1px;
  background: linear-gradient(to right, transparent, var(--or));
}
.buda-sector-hdr::after {
  background: linear-gradient(to left, transparent, var(--or));
}

.buda-sector-pills {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
  padding: 8px 0 8px;
}
/* Sur écrans étroits seulement : permettre le scroll horizontal */
@media (max-width: 1400px) {
  .buda-sector-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
    justify-content: flex-start;
    padding: 8px 8%;
  }
}
.buda-sector-pills::-webkit-scrollbar { display: none; }

.buda-sp {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .65rem .95rem;
  background: #0a1828;
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(240,235,224,.88);
  cursor: default;
  transition: background .35s ease, box-shadow .35s ease, transform .35s ease, color .35s ease;
  border-radius: 2px;
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow:
    inset 0 0 0 1px rgba(245,217,122,.35),
    0 2px 8px rgba(0,0,0,.3);
}

/* Effet shimmer au survol - hauteur limitée pour NE PAS couvrir les bords */
.buda-sp::before {
  content: '';
  position: absolute;
  top: 2px; bottom: 2px;
  left: -100%;
  width: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(245,217,122,.18) 40%,
    rgba(255,255,255,.22) 50%,
    rgba(245,217,122,.18) 60%,
    transparent 100%);
  transition: left .7s ease;
  pointer-events: none;
  z-index: 0;
}
.buda-sp > * { position: relative; z-index: 1; }

/* Alternance tricolore : 1er rouge, 2e doré, 3e vert, etc. */
.buda-sp:nth-child(3n+1) {
  box-shadow:
    inset 0 0 0 1px rgba(206,41,57,.4),
    0 2px 8px rgba(0,0,0,.3);
}
.buda-sp:nth-child(3n+2) {
  box-shadow:
    inset 0 0 0 1px rgba(245,217,122,.4),
    0 2px 8px rgba(0,0,0,.3);
}
.buda-sp:nth-child(3n+3) {
  box-shadow:
    inset 0 0 0 1px rgba(74,222,128,.4),
    0 2px 8px rgba(0,0,0,.3);
}

/* Hover - bordure via box-shadow inset (jamais masquée) */
.buda-sp:hover {
  transform: translateY(-3px) scale(1.04);
  background: #122339;
  color: #F5F0E4;
  box-shadow:
    inset 0 0 0 2px #F5D97A,
    0 8px 22px rgba(0,0,0,.4),
    0 0 22px rgba(245,217,122,.35);
}
.buda-sp:nth-child(3n+1):hover {
  background: #1a1d2e;
  box-shadow:
    inset 0 0 0 2px #FF4F5F,
    0 8px 22px rgba(0,0,0,.4),
    0 0 22px rgba(206,41,57,.4);
}
.buda-sp:nth-child(3n+3):hover {
  background: #122a22;
  box-shadow:
    inset 0 0 0 2px #6DE79E,
    0 8px 22px rgba(0,0,0,.4),
    0 0 22px rgba(74,222,128,.35);
}

.buda-sp:hover::before { left: 100%; }

.buda-sp-ic {
  font-size: .95rem;
  display: inline-flex;
  align-items: center;
  transition: transform .4s ease;
}
.buda-sp:hover .buda-sp-ic {
  transform: scale(1.15);
}

/* Bloc présence UWG */












}


/* ══ BLOC ENGAGEMENT HONGRIE — LAYOUT PREMIUM ══════════════════ */





/* ── Colonne gauche ── */













/* ── Colonne canvas ── */



/* Labels noeuds */




/* Globe central */






  100% { width: 200px; height: 200px; opacity: 0;  }
}



/* Légende bas canvas */









/* ══ ABOUT PREMIUM — LAYOUT 2 COLONNES ═══════════════════════════ */
.about {
  background: #07111f;
  position: relative;
  overflow: hidden;
}

/* Layout principal */
.ab2-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  min-height: 100vh;
  align-items: stretch;
}
@media (max-width: 1100px) { .ab2-layout { grid-template-columns: 1fr; } }

/* ── Colonne gauche — Manifeste ── */
.ab2-left {
  padding: 8rem 5rem 6rem 8%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.6rem;
  position: sticky;
  top: 0;
  align-self: start;
  max-height: 100vh;
}
@media (max-width: 1100px) {
  .ab2-left { padding: 5rem 8%; position: static; max-height: none; }
}

/* Titre monumental */
.ab2-headline {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  margin: .8rem 0 0;
}
.ab2-hl-plain {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3.2rem, 5.5vw, 5.8rem);
  font-weight: 300;
  color: #f0ebe0;
  line-height: 1.02;
  letter-spacing: -.02em;
  user-select: none;
}
.ab2-hl-italic em {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem, 5.2vw, 5.4rem);
  font-style: italic;
  font-weight: 400;
  color: #c9a84c;
  line-height: 1.05;
  user-select: none;
}

/* Ligne décorative */
.ab2-divider {
  width: 56px;
  height: 1.5px;
  background: linear-gradient(90deg, #c9a84c, rgba(201,168,76,.15));
  transition: width .65s cubic-bezier(.25,.46,.45,.94);
}
.ab2-left:hover .ab2-divider { width: 110px; }

/* Manifeste */
.ab2-manifesto {
  font-size: .78rem;
  line-height: 1.82;
  color: rgba(168,180,200,.68);
  max-width: 480px;
  margin: 0;
  user-select: none;
}

/* Citation */
.ab2-quote {
  margin: 0;
  padding: 1.2rem 1.5rem;
  border-left: 2px solid rgba(201,168,76,.4);
  background: rgba(201,168,76,.04);
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  font-style: italic;
  color: rgba(201,168,76,.78);
  line-height: 1.6;
  user-select: none;
}

/* KPIs inline */
.ab2-inline-kpis {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(201,168,76,.1);
}
.ab2-ikpi {
  flex: 1;
  padding: 0 1rem;
}
.ab2-ikpi:first-child { padding-left: 0; }
.ab2-ikpi-sep {
  width: 1px;
  height: 44px;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,.2), transparent);
  flex-shrink: 0;
  align-self: center;
}
.ab2-ikpi-n {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  font-weight: 300;
  color: #c9a84c;
  line-height: 1;
}
.ab2-ikpi-u {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  color: rgba(201,168,76,.55);
}
.ab2-ikpi-l {
  display: block;
  font-size: .38rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(168,180,200,.38);
  margin-top: .3rem;
  line-height: 1.2;
}

/* ── Colonne droite — Piliers ── */
.ab2-right {
  background: rgba(6,14,28,.6);
  border-left: 1px solid rgba(201,168,76,.08);
  padding: 5rem 6% 5rem 4%;
  display: flex;
  align-items: center;
}
@media (max-width: 1100px) {
  .ab2-right {
    padding: 4rem 8%;
    border-left: none;
    border-top: 1px solid rgba(201,168,76,.08);
  }
}

/* Grille 2 colonnes */
.ab2-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  width: 100%;
  background: rgba(201,168,76,.06);
}
@media (max-width: 600px) { .ab2-grid { grid-template-columns: 1fr; } }

/* Carte pilier */
.ab2-card {
  background: #07111f;
  padding: 2rem 1.8rem 1.8rem;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  transition: background .3s;
  cursor: default;
  position: relative;
  overflow: hidden;
}
.ab2-card:hover {
  background: #0a1828;
}

/* Icône */
.ab2-card-ic {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1);
  opacity: .85;
}
.ab2-card-ic svg { width: 100%; height: 100%; }
.ab2-card:hover .ab2-card-ic {
  transform: scale(1.1);
  opacity: 1;
}

/* Stat grande */
.ab2-card-stat {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.01em;
}

/* Titre */
.ab2-card-title {
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(240,235,224,.65);
  margin: 0;
  line-height: 1.2;
}

/* Texte */
.ab2-card-txt {
  font-size: .64rem;
  line-height: 1.68;
  color: rgba(168,180,200,.55);
  margin: 0;
  flex: 1;
}

/* Barre colorée bas */
.ab2-card-bar {
  width: 22px;
  height: 1.5px;
  opacity: .45;
  transition: width .4s ease, opacity .35s;
  margin-top: .2rem;
}
.ab2-card:hover .ab2-card-bar {
  width: 44px;
  opacity: .9;
}

/* === PAUSE INDICATOR on SC CAROUSEL (hover) === */
.ss-wrap { position: relative; }
.ss-wrap::after {
  content: "⏸ Pause";
  position: absolute;
  top: 12px; right: 16px;
  padding: 4px 10px;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--gold);
  background: rgba(7,17,31,.85);
  border: 1px solid var(--bd2);
  border-radius: 3px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
  z-index: 50;
}
.ss-wrap.ss-paused::after { opacity: 1; }
.sc-img img { cursor: pointer; }

/* === BIG SLIDESHOW PAUSE — indicateur luxe === */
#budaDiapo { position: relative; }

/* Badge "PAUSE" doré qui apparaît élégamment */
#budaDiapo::before {
  content: "⏸  PAUSE";
  position: absolute;
  top: 24px; left: 50%;
  transform: translateX(-50%) translateY(-10px);
  padding: 10px 22px;
  font-family: 'Montserrat', sans-serif;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .25em;
  color: var(--gold);
  background: linear-gradient(180deg, rgba(7,17,31,.92), rgba(13,26,45,.92));
  border: 1px solid var(--bd2);
  border-radius: 2px;
  box-shadow:
    0 4px 24px rgba(0,0,0,.6),
    0 0 0 1px rgba(201,168,76,.08),
    inset 0 1px 0 rgba(232,201,122,.15);
  opacity: 0;
  pointer-events: none;
  z-index: 120;
  transition: opacity .35s ease, transform .35s cubic-bezier(.2,.9,.3,1.2);
  text-shadow: 0 0 12px rgba(201,168,76,.3);
}

#budaDiapo.bd-paused::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Fine ligne dorée animée sous le badge quand en pause */
#budaDiapo::after {
  content: "";
  position: absolute;
  top: 68px; left: 50%;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transform: translateX(-50%);
  transition: width .5s ease .15s;
  pointer-events: none;
  z-index: 120;
}
#budaDiapo.bd-paused::after { width: 120px; }

/* Effet subtil sur l'image active en pause : légère atténuation + vignette */
#budaDiapo.bd-paused .bd-slide.bd-active .bd-img {
  filter: brightness(.88) saturate(1.05);
  transition: filter .5s ease;
}

/* Curseur main sur tout le diaporama quand survolé */
#budaDiapo .bd-slide { cursor: pointer; }

/* === Nothing here === */

/* ══════════════════════════════════════════════════════
   SECTION INNOVATION/INFRASTRUCTURE/IMPACT — HERO IMAGE
═══════════════════════════════════════════════════════ */
.ab2-right {
  padding: 4rem 5% 4rem 3% !important;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* empêche l'image de déborder */
}

.ab2-hero {
  width: 100%;
  max-width: 560px;
  position: relative;
  padding: 0;
  /* Conteneur du halo pulsant - non clipped */
}

/* Aura lumineuse pulsante — placée sur le parent pour ne pas être clippée */
.ab2-hero::before {
  content: '';
  position: absolute;
  inset: -24px;
  border-radius: 12px;
  background: radial-gradient(ellipse at center,
    rgba(232,102,26,.22) 0%,
    rgba(201,168,76,.12) 40%,
    transparent 70%);
  z-index: 0;
  animation: ab2HeroPulse 4s ease-in-out infinite;
  pointer-events: none;
  filter: blur(8px);
}

.ab2-hero-frame {
  position: relative;
  border-radius: 2px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: #030C18;
  z-index: 1;
  box-shadow:
    0 28px 60px rgba(0,0,0,.55),
    0 8px 20px rgba(0,0,0,.3),
    0 0 0 1px rgba(201,168,76,.35),
    0 0 40px rgba(232,102,26,.3),
    0 0 80px rgba(201,168,76,.22),
    inset 0 1px 0 rgba(255,255,255,.04);
  transition: box-shadow .6s ease;
}

/* Liseré lumineux animé qui circule autour du cadre */
.ab2-hero-frame::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 2px;
  padding: 1px;
  background: linear-gradient(135deg,
    rgba(232,102,26,.9) 0%,
    rgba(201,168,76,1) 25%,
    rgba(232,102,26,.9) 50%,
    rgba(201,168,76,1) 75%,
    rgba(232,102,26,.9) 100%);
  background-size: 300% 300%;
  animation: ab2HeroGlow 6s linear infinite;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
  z-index: 10;
}

/* Animation du dégradé qui circule */
@keyframes ab2HeroGlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes ab2HeroPulse {
  0%, 100% { opacity: .5; transform: scale(1); }
  50%      { opacity: .95; transform: scale(1.05); }
}

.ab2-hero-frame:hover {
  box-shadow:
    0 32px 70px rgba(0,0,0,.6),
    0 10px 24px rgba(0,0,0,.35),
    0 0 0 1px rgba(232,102,26,.7),
    0 0 60px rgba(232,102,26,.5),
    0 0 120px rgba(201,168,76,.35),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.ab2-hero-frame:hover::before {
  animation-duration: 3s;
}

/* Coins dorés — style institutionnel */
.ab2-hero-corner {
  position: absolute;
  width: 32px;
  height: 32px;
  z-index: 5;
  pointer-events: none;
}
.ab2-hero-corner-tl {
  top: 14px; left: 14px;
  border-top: 2px solid #c9a84c;
  border-left: 2px solid #c9a84c;
}
.ab2-hero-corner-tr {
  top: 14px; right: 14px;
  border-top: 2px solid #c9a84c;
  border-right: 2px solid #c9a84c;
}
.ab2-hero-corner-bl {
  bottom: 14px; left: 14px;
  border-bottom: 2px solid #c9a84c;
  border-left: 2px solid #c9a84c;
}
.ab2-hero-corner-br {
  bottom: 14px; right: 14px;
  border-bottom: 2px solid #c9a84c;
  border-right: 2px solid #c9a84c;
}

.ab2-hero-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.2s cubic-bezier(.4,0,.2,1);
}
.ab2-hero-frame:hover img {
  transform: scale(1.03);
}

.ab2-hero-ov {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(2,10,22,.12) 0%, rgba(2,10,22,.55) 70%, rgba(2,10,22,.88) 100%),
    radial-gradient(ellipse at 30% 40%, rgba(232,102,26,.08) 0%, transparent 55%);
  pointer-events: none;
  z-index: 2;
}

/* ── Badges flottants en grille 2x2 sur la moitié basse ── */
.ab2-hero-badges {
  position: absolute;
  left: 2rem; right: 2rem;
  bottom: 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  z-index: 3;
}

.ab2-hb {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .75rem .85rem;
  background: rgba(3, 12, 24, .82);
  border: 1px solid rgba(201, 168, 76, .18);
  border-radius: 4px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: all .35s ease;
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
}
.ab2-hb:hover {
  transform: translateY(-3px);
  border-color: rgba(201, 168, 76, .4);
  background: rgba(3, 12, 24, .92);
  box-shadow: 0 10px 22px rgba(0,0,0,.45);
}

.ab2-hb-ic {
  flex-shrink: 0;
  width: 38px; height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}

.ab2-hb-val {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.01em;
  margin-bottom: .15rem;
}
.ab2-hb-val span {
  font-size: .9rem;
  font-weight: 400;
  opacity: .8;
  margin-left: .05em;
}

.ab2-hb-lbl {
  font-size: .56rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(240, 235, 224, .65);
  line-height: 1.2;
}

/* ── Compteurs animés : s'assure qu'ils démarrent à 0 puis montent ── */
.ab2-ikpi-n.ab-kpi-n {
  display: inline-block;
  min-width: 1.2em;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .ab2-hero-frame { aspect-ratio: 3 / 4; }
  .ab2-hero-badges {
    position: relative;
    left: auto; right: auto; bottom: auto;
    margin-top: 1rem;
  }
  .ab2-hero-ov {
    background: linear-gradient(180deg, rgba(2,10,22,.1) 0%, rgba(2,10,22,.3) 100%);
  }
}
@media (max-width: 600px) {
  .ab2-hero-badges { grid-template-columns: 1fr; }
  .ab2-hero-corner { width: 24px; height: 24px; }
  .ab2-hero-corner-tl, .ab2-hero-corner-tr { top: 10px; }
  .ab2-hero-corner-bl, .ab2-hero-corner-br { bottom: 10px; }
  .ab2-hero-corner-tl, .ab2-hero-corner-bl { left: 10px; }
  .ab2-hero-corner-tr, .ab2-hero-corner-br { right: 10px; }
}

/* ═══════════════════════════════════════════════════════
   BANDEAU HONGRIE - Couleurs drapeau (rouge/blanc/vert + doré)
   Encadrement lumineux premium aux couleurs de la Hongrie
═══════════════════════════════════════════════════════ */

.sec-banner-hongrie {
  min-height: 520px;
}

/* Override l'encadrement par défaut doré/orange avec les couleurs hongroises */
.sec-banner-hongrie::before {
  background: linear-gradient(135deg,
    #CE2939 0%,           /* Rouge Hongrie */
    #F5D97A 15%,          /* Doré clair */
    #FFFFFF 30%,          /* Blanc */
    #F5D97A 45%,          /* Doré clair */
    #436F4D 60%,          /* Vert Hongrie */
    #F5D97A 75%,          /* Doré clair */
    #CE2939 100%);        /* Rouge Hongrie */
  background-size: 400% 400%;
  animation: hongrieGlow 10s linear infinite;
}

@keyframes hongrieGlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Halo externe - rouge à gauche, vert à droite, comme le drapeau */
.sec-banner-hongrie::after {
  background:
    radial-gradient(ellipse at 20% 50%, rgba(206,41,57,.28) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.12) 0%, transparent 40%),
    radial-gradient(ellipse at 80% 50%, rgba(67,111,77,.28) 0%, transparent 55%);
  animation: hongriePulse 5s ease-in-out infinite;
}

@keyframes hongriePulse {
  0%, 100% { opacity: .55; transform: scale(1); }
  50%      { opacity: .95; transform: scale(1.025); }
}

/* Image plus lumineuse - pour valoriser cette belle image dorée */
.sec-banner-hongrie img {
  filter: brightness(1) saturate(1.2) contrast(1.1) !important;
}
.sec-banner-hongrie:hover img {
  filter: brightness(1.08) saturate(1.3) contrast(1.12) !important;
}

/* Overlay avec zone centrale sombre pour que le texte soit lisible */
.sec-banner-hongrie .sec-banner-ov {
  background:
    /* Zone centrale sombre en forme de losange pour encadrer le texte */
    radial-gradient(ellipse 45% 75% at center,
      rgba(2,10,22,.88) 0%,
      rgba(2,10,22,.75) 40%,
      rgba(2,10,22,.35) 70%,
      transparent 100%),
    /* Dégradés verticaux subtils pour adoucir les bords */
    linear-gradient(180deg,
      rgba(2,10,22,.3) 0%,
      transparent 30%,
      transparent 70%,
      rgba(2,10,22,.5) 100%);
}

/* Tag "BUDAPEST · HONGRIE · PORTE DE L'EST" avec séparateurs rouge/vert */
.sec-banner-hongrie .sec-banner-tag {
  color: #FFFFFF;
  text-shadow:
    0 2px 12px rgba(0,0,0,1),
    0 0 20px rgba(206,41,57,.5);
  position: relative;
  padding: .55rem 1.6rem;
  background: linear-gradient(90deg,
    rgba(206,41,57,.35) 0%,
    rgba(2,10,22,.7) 30%,
    rgba(2,10,22,.8) 50%,
    rgba(2,10,22,.7) 70%,
    rgba(67,111,77,.35) 100%);
  border-top: 1px solid rgba(245,217,122,.55);
  border-bottom: 1px solid rgba(245,217,122,.55);
  backdrop-filter: blur(8px);
  box-shadow:
    0 4px 20px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.sec-banner-hongrie .sec-banner-tag::before {
  background: linear-gradient(to right, transparent, #CE2939);
  width: 50px;
}
.sec-banner-hongrie .sec-banner-tag::after {
  background: linear-gradient(to left, transparent, #436F4D);
  width: 50px;
}

/* Titre - gros glow doré + ombres noires profondes pour détacher de l'image */
.sec-banner-hongrie .sec-banner-title {
  color: #FFFFFF;
  text-shadow:
    0 2px 4px rgba(0,0,0,1),
    0 4px 16px rgba(0,0,0,1),
    0 8px 32px rgba(0,0,0,.9),
    0 0 50px rgba(2,10,22,.9);
  position: relative;
  font-weight: 500;
}
.sec-banner-hongrie .sec-banner-title em {
  background: linear-gradient(135deg,
    #FFE9A0 0%,
    #F5D97A 25%,
    #E8C15F 50%,
    #C9A84C 75%,
    #F5D97A 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter:
    drop-shadow(0 2px 4px rgba(0,0,0,1))
    drop-shadow(0 4px 16px rgba(0,0,0,.9))
    drop-shadow(0 0 24px rgba(245,217,122,.6));
  font-weight: 600;
}

/* Sous-titre - meilleure lisibilité */
.sec-banner-hongrie .sec-banner-sub {
  color: #F5F0E4;
  font-weight: 400;
  text-shadow:
    0 2px 6px rgba(0,0,0,1),
    0 4px 16px rgba(0,0,0,.95),
    0 0 30px rgba(2,10,22,.8);
}

/* Ligne décorative finale - rouge → doré → vert */
.sec-banner-hongrie .sec-banner-line {
  width: 200px;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    #CE2939 20%,        /* Rouge */
    #F5D97A 50%,        /* Doré */
    #436F4D 80%,        /* Vert */
    transparent 100%);
  box-shadow:
    0 0 20px rgba(245,217,122,.7),
    0 0 32px rgba(206,41,57,.3),
    0 0 32px rgba(67,111,77,.3);
}

/* Responsive secteurs pills - wrap sur mobile seulement */
@media (max-width: 900px) {
  .buda-sector-pills {
    flex-wrap: wrap;
    overflow-x: visible;
  }
}

/* ═══════════════════════════════════════════════════════
   DOUBLE TICKER - BADGES & DRAPEAUX
═══════════════════════════════════════════════════════ */

/* Badge US - bleu nuit profond */
.bk-badge-us {
  background: linear-gradient(135deg, #010710 0%, #061a2e 100%);
}
.bk-badge-us::before {
  background: linear-gradient(90deg, transparent, rgba(232,102,26,.6), transparent);
}
.bk-badge-us .bk-badge-top {
  color: var(--or);
  text-shadow: 0 0 10px rgba(232,102,26,.4);
}

/* Badge FR - bleu nuit avec touche tricolore */
.bk-badge-fr {
  background: linear-gradient(135deg, #010812 0%, #051428 100%);
}
.bk-badge-fr::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, #0055A4 25%, #FFFFFF 50%, #EF4135 75%, transparent);
}
.bk-badge-fr .bk-badge-top {
  background: linear-gradient(135deg, #5A95FF 0%, #FFFFFF 50%, #FF6B7A 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.3));
}
.bk-badge-fr .bk-badge-sub {
  color: rgba(245,217,122,.7);
}

/* Petit drapeau visuel (mini-rectangle) */
.bk-flag {
  width: 22px;
  height: 14px;
  border-radius: 1.5px;
  flex-shrink: 0;
  margin-left: .5rem;
  box-shadow:
    0 0 8px rgba(245,217,122,.3),
    inset 0 0 0 1px rgba(245,217,122,.4);
}
.bk-flag-us {
  background:
    linear-gradient(180deg,
      #B22234 0%, #B22234 7.7%,
      #FFFFFF 7.7%, #FFFFFF 15.4%,
      #B22234 15.4%, #B22234 23.1%,
      #FFFFFF 23.1%, #FFFFFF 30.8%,
      #B22234 30.8%, #B22234 38.5%,
      #FFFFFF 38.5%, #FFFFFF 46.2%,
      #B22234 46.2%, #B22234 53.9%,
      #FFFFFF 53.9%, #FFFFFF 61.6%,
      #B22234 61.6%, #B22234 69.3%,
      #FFFFFF 69.3%, #FFFFFF 77%,
      #B22234 77%, #B22234 84.7%,
      #FFFFFF 84.7%, #FFFFFF 92.4%,
      #B22234 92.4%, #B22234 100%);
  position: relative;
}
.bk-flag-us::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 9px;
  height: 53.85%;
  background: #3C3B6E;
}
.bk-flag-fr {
  background: linear-gradient(90deg,
    #0055A4 0%, #0055A4 33.33%,
    #FFFFFF 33.33%, #FFFFFF 66.66%,
    #EF4135 66.66%, #EF4135 100%);
}

/* Variante point live FR : alternance bleu/blanc/rouge */
.bk-live-dot-fr {
  background: linear-gradient(135deg, #5A95FF 0%, #FFFFFF 50%, #FF6B7A 100%);
  box-shadow:
    0 0 8px rgba(255,255,255,.9),
    0 0 12px rgba(90,149,255,.4);
}

/* Sens de scroll - le 2e ticker défile aussi vers la gauche mais à vitesse différente
   pour effet visuel décalé, sans risque de zone vide au démarrage */
.bk-scroll-rev {
  animation: bkscroll 90s linear infinite !important;
}
.bk-scroll-rev:hover { animation-play-state: paused; }

/* Surcharge fade pour les rangées du double ticker */
.bk-row .bk-fade-l {
  left: 175px;
}

/* Items CAC 40 - couleurs spécifiques */
.bki-luxe .bki-name { color: #F5D97A; }
.bki-bank-fr .bki-name { color: #95C6FF; }
.bki-indus .bki-name { color: #B5D4FF; }
.bki-energ .bki-name { color: #95E5C6; }
.bki-sante .bki-name { color: #E8B5F5; }

.bki-luxe:hover .bki-logo { filter: drop-shadow(0 3px 8px rgba(245,217,122,.5)) drop-shadow(0 0 10px rgba(245,217,122,.45)); }
.bki-bank-fr:hover .bki-logo { filter: drop-shadow(0 3px 8px rgba(149,198,255,.45)) drop-shadow(0 0 10px rgba(149,198,255,.4)); }
.bki-indus:hover .bki-logo { filter: drop-shadow(0 3px 8px rgba(181,212,255,.45)) drop-shadow(0 0 10px rgba(181,212,255,.4)); }
.bki-energ:hover .bki-logo { filter: drop-shadow(0 3px 8px rgba(149,229,198,.45)) drop-shadow(0 0 10px rgba(149,229,198,.4)); }
.bki-sante:hover .bki-logo { filter: drop-shadow(0 3px 8px rgba(232,181,245,.45)) drop-shadow(0 0 10px rgba(232,181,245,.4)); }

/* ═══════════════════════════════════════════════════════
   TICKER US - NOUVELLES CATÉGORIES (insur, finser, exch, index)
═══════════════════════════════════════════════════════ */

/* Indices (S&P 500, ETFs) → doré clair */
.bki-index .bki-name { color: #F5D97A; }
.bki-index:hover .bki-logo {
  filter: drop-shadow(0 3px 8px rgba(245,217,122,.55)) drop-shadow(0 0 12px rgba(245,217,122,.5));
}

/* Assurance → bleu ciel */
.bki-insur .bki-name { color: #95C6FF; }
.bki-insur:hover .bki-logo {
  filter: drop-shadow(0 3px 8px rgba(149,198,255,.5)) drop-shadow(0 0 10px rgba(149,198,255,.45));
}

/* Services Financiers → vert bleu (turquoise) */
.bki-finser .bki-name { color: #95E5D6; }
.bki-finser:hover .bki-logo {
  filter: drop-shadow(0 3px 8px rgba(149,229,214,.5)) drop-shadow(0 0 10px rgba(149,229,214,.45));
}

/* Bourses (CME, ICE, Nasdaq, Cboe) → mauve */
.bki-exch .bki-name { color: #C8A2FF; }
.bki-exch:hover .bki-logo {
  filter: drop-shadow(0 3px 8px rgba(200,162,255,.5)) drop-shadow(0 0 10px rgba(200,162,255,.45));
}



/* ═══════════════════════════════════════════════════════
   TICKER 3 : CRYPTO - DÉFILEMENT VERTICAL LUXUEUX
═══════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════
   LIGNE CRYPTO - HORIZONTAL PREMIUM PERCUTANT
════════════════════════════════════════════════════════ */

/* Ligne crypto - fond spécial avec halos colorés cryptos */
.bk-row-crypto {
  background:
    radial-gradient(ellipse at 15% 50%, rgba(247,147,26,.08) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 50%, rgba(98,126,234,.06) 0%, transparent 45%),
    radial-gradient(ellipse at 85% 50%, rgba(153,69,255,.07) 0%, transparent 40%),
    linear-gradient(180deg, #020108 0%, #05020E 50%, #020108 100%);
  border-top: 1px solid rgba(247,147,26,.2);
  position: relative;
}

/* Ligne de lumière animante en haut */
.bk-row-crypto::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    #F7931A 15%,
    #F5D97A 30%,
    #627EEA 50%,
    #9945FF 70%,
    #F3BA2F 85%,
    transparent 100%);
  opacity: .7;
  animation: cryptoLineFlow 6s linear infinite;
}
@keyframes cryptoLineFlow {
  0%, 100% { opacity: .4; }
  50%      { opacity: 1; }
}

/* Badge crypto - doré/Bitcoin premium */
.bk-badge-crypto {
  background: linear-gradient(135deg, #0A0510 0%, #1F1208 50%, #0A0510 100%);
  min-width: 225px;
  border-right: 1px solid rgba(247,147,26,.25);
  position: relative;
}
.bk-badge-crypto .bk-badge-top {
  background: linear-gradient(135deg, #F7931A 0%, #F5D97A 25%, #FFFFFF 50%, #F5D97A 75%, #F7931A 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 8px rgba(247,147,26,.4));
  font-weight: 800;
  letter-spacing: .2em;
  animation: cryptoShimmer 5s linear infinite;
}
@keyframes cryptoShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.bk-badge-crypto .bk-badge-sub {
  color: rgba(245,217,122,.6);
  font-size: .52rem;
  letter-spacing: .22em;
  text-transform: uppercase;
}

/* Point LIVE crypto */
.bk-live-dot-crypto {
  background: radial-gradient(circle at 30% 30%, #FFD700, #F7931A 70%);
  box-shadow:
    0 0 10px #F7931A,
    0 0 18px rgba(247,147,26,.6),
    0 0 30px rgba(247,147,26,.3);
  animation: cryptoPulse 1.5s ease-in-out infinite;
}
@keyframes cryptoPulse {
  0%, 100% { transform: scale(1);    box-shadow: 0 0 10px #F7931A, 0 0 18px rgba(247,147,26,.6); }
  50%      { transform: scale(1.25); box-shadow: 0 0 16px #F7931A, 0 0 28px rgba(247,147,26,.9); }
}

/* Drapeau ₿ - cercle doré 3D */
.bk-flag-crypto {
  background:
    radial-gradient(circle at 30% 30%, #FFE55C 0%, #F7931A 50%, #8B4513 100%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: 14px;
  color: #000;
  margin-left: .5rem;
  flex-shrink: 0;
  box-shadow:
    0 0 12px rgba(247,147,26,.7),
    0 0 20px rgba(245,217,122,.3),
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -1px 0 rgba(0,0,0,.4);
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
}

/* ITEMS CRYPTO HORIZONTAUX - design premium */
.bki-cx {
  --crypto-color: #F7931A;
  position: relative;
}

/* Icône crypto grande et luxueuse (remplace la logo SVG) */
.bki-cx-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.25) 0%, transparent 45%),
    radial-gradient(circle at 50% 50%, var(--crypto-color) 0%, rgba(0,0,0,.6) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 20px;
  font-weight: 700;
  color: #FFFFFF;
  border: 1.2px solid rgba(245,217,122,.45);
  box-shadow:
    0 3px 10px rgba(0,0,0,.6),
    0 0 14px color-mix(in srgb, var(--crypto-color) 45%, transparent),
    inset 0 1px 0 rgba(255,255,255,.3),
    inset 0 -1px 0 rgba(0,0,0,.35);
  text-shadow: 0 1px 3px rgba(0,0,0,.7);
  flex-shrink: 0;
  transition: all .35s cubic-bezier(.4,0,.2,1);
  position: relative;
}

/* Halo externe autour de l'icône au repos */
.bki-cx-icon::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--crypto-color) 30%, transparent);
  opacity: 0;
  transition: opacity .35s ease;
}

.bki-cx:hover .bki-cx-icon {
  transform: scale(1.12) rotate(-8deg);
  box-shadow:
    0 5px 16px rgba(0,0,0,.7),
    0 0 24px color-mix(in srgb, var(--crypto-color) 70%, transparent),
    0 0 40px color-mix(in srgb, var(--crypto-color) 40%, transparent),
    inset 0 1px 0 rgba(255,255,255,.4),
    inset 0 -1px 0 rgba(0,0,0,.35);
  border-color: rgba(245,217,122,.8);
}
.bki-cx:hover .bki-cx-icon::after {
  opacity: 1;
  animation: cryptoHaloRotate 4s linear infinite;
}
@keyframes cryptoHaloRotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Nom crypto en doré luxueux */
.bki-cx-name {
  color: #F5D97A !important;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .01em;
  filter: drop-shadow(0 0 4px rgba(245,217,122,.3));
  transition: all .3s ease;
}
.bki-cx:hover .bki-cx-name {
  color: #FFE89A !important;
  filter: drop-shadow(0 0 8px rgba(245,217,122,.5));
}

/* Séparateur coloré */
.bki-cx-sep {
  background: linear-gradient(180deg,
    transparent 0%,
    var(--crypto-color) 50%,
    transparent 100%) !important;
  opacity: .35;
  width: 1.5px !important;
  box-shadow: 0 0 6px var(--crypto-color);
}

/* Prix crypto luxueux */
.bki-cx-price {
  color: #FFFFFF !important;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  letter-spacing: .02em;
  text-shadow: 0 0 6px rgba(255,255,255,.15);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
}

/* Hover global de l'item crypto */
.bki-cx::before {
  content: '';
  position: absolute;
  left: 0; top: 50%;
  width: 2.5px;
  height: 0;
  background: var(--crypto-color);
  box-shadow: 0 0 12px var(--crypto-color);
  transition: height .35s ease, top .35s ease;
  border-radius: 0 2px 2px 0;
}
.bki-cx:hover::before {
  height: 70%;
  top: 15%;
}
.bki-cx:hover {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--crypto-color) 6%, transparent) 0%,
    transparent 100%);
}

/* ⚡ VITESSE SPÉCIFIQUE : crypto défile plus rapidement (moins d'actifs = parcours plus court) */
.bk-row-crypto .bk-scroll {
  animation: bkscroll 45s linear infinite !important;
}
/* Pause au survol (doit utiliser !important pour surcharger la vitesse spécifique ci-dessus) */
.bk-row-crypto .bk-scroll:hover,
.bk-row-crypto:hover .bk-scroll {
  animation-play-state: paused !important;
}

/* ═══════════════════════════════════════════════════════
   SIGNATURE DE CONNEXION - Dashboard Premium
═══════════════════════════════════════════════════════ */

.sig {
  margin: 3.5rem auto 0;
  max-width: 1400px;
  padding: 0 2rem;
  position: relative;
}

/* Trait décoratif supérieur */
.sig::before {
  content: '';
  display: block;
  width: 120px;
  height: 1px;
  margin: 0 auto 2rem;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: .6;
}

/* ═══ HEADER ═══ */
.sig-top {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  background:
    linear-gradient(135deg, rgba(10,18,35,.85) 0%, rgba(5,10,22,.95) 100%);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 6px;
  box-shadow:
    0 4px 20px rgba(0,0,0,.4),
    inset 0 1px 0 rgba(201,168,76,.15),
    inset 0 -1px 0 rgba(0,0,0,.4);
  position: relative;
  overflow: hidden;
}
.sig-top::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, #F5D97A, transparent);
  animation: sigTopGlow 4s linear infinite;
}
@keyframes sigTopGlow {
  0%, 100% { opacity: .3; }
  50%      { opacity: 1; }
}

.sig-live-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle, #4ADE80 30%, #22C55E 100%);
  box-shadow:
    0 0 8px #4ADE80,
    0 0 14px rgba(74,222,128,.5);
  animation: sigLivePulse 1.5s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes sigLivePulse {
  0%, 100% { transform: scale(1);    opacity: 1; }
  50%      { transform: scale(1.25); opacity: .8; }
}

.sig-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.sig-label-top {
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .25em;
  color: var(--gold);
  text-transform: uppercase;
  filter: drop-shadow(0 0 6px rgba(245,217,122,.3));
}
.sig-label-sub {
  font-family: 'Cormorant Garamond', serif;
  font-size: .95rem;
  font-style: italic;
  color: rgba(245,233,200,.8);
  letter-spacing: .02em;
}

.sig-brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(245,217,122,.55);
}
.sig-brand-sep {
  font-size: .5rem;
  color: var(--gold);
  opacity: .7;
}
.sig-brand-name {
  background: linear-gradient(135deg, #F5D97A 0%, #FFFFFF 50%, #F5D97A 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

/* ═══ GRID DES 3 CARTES ═══ */
.sig-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
@media (max-width: 1100px) {
  .sig-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .sig-grid { grid-template-columns: 1fr; }
}

/* ═══ CARTE LUXE ═══ */
.sig-card {
  background:
    radial-gradient(ellipse at top right, rgba(201,168,76,.06) 0%, transparent 60%),
    linear-gradient(165deg, rgba(10,18,35,.9) 0%, rgba(5,10,22,.95) 100%);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 6px;
  padding: 1.5rem;
  box-shadow:
    0 6px 24px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(201,168,76,.15),
    inset 0 -1px 0 rgba(0,0,0,.4);
  position: relative;
  overflow: hidden;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}

.sig-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(180deg,
    transparent 0%,
    var(--accent-color, #F5D97A) 20%,
    var(--accent-color, #F5D97A) 80%,
    transparent 100%);
  opacity: .5;
  transition: opacity .3s ease;
}

.sig-card:hover {
  transform: translateY(-2px);
  border-color: rgba(201,168,76,.4);
  box-shadow:
    0 10px 30px rgba(0,0,0,.6),
    0 0 20px rgba(201,168,76,.1),
    inset 0 1px 0 rgba(201,168,76,.25),
    inset 0 -1px 0 rgba(0,0,0,.4);
}
.sig-card:hover::before { opacity: 1; }

/* Couleurs par type de carte */
.sig-card-geo { --accent-color: #F5D97A; }
.sig-card-net { --accent-color: #95C6FF; }
.sig-card-dev { --accent-color: #95E5C6; }

/* HEADER DE CARTE */
.sig-card-hdr {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding-bottom: 1rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid rgba(201,168,76,.12);
}
.sig-card-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(245,217,122,.12) 0%, transparent 70%),
    linear-gradient(135deg, rgba(10,18,35,.9) 0%, rgba(5,10,22,1) 100%);
  border: 1px solid rgba(201,168,76,.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-color);
  flex-shrink: 0;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 2px 6px rgba(0,0,0,.5);
  filter: drop-shadow(0 0 6px rgba(245,217,122,.25));
}
.sig-card-title {
  font-family: 'Montserrat', sans-serif;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .25em;
  color: rgba(245,233,200,.85);
  text-transform: uppercase;
  flex: 1;
}
.sig-card-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-color);
  box-shadow: 0 0 8px var(--accent-color);
  animation: sigCardPulse 2s ease-in-out infinite;
}
@keyframes sigCardPulse {
  0%, 100% { opacity: 1;   transform: scale(1); }
  50%      { opacity: .55; transform: scale(1.2); }
}

/* CORPS DES CARTES */
.sig-card-body { font-family: 'Montserrat', 'Inter', sans-serif; }

/* Hero géo : drapeau + ville */
.sig-city-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .85rem 0;
  margin-bottom: .7rem;
  border-bottom: 1px dashed rgba(201,168,76,.15);
}
.sig-flag {
  width: 60px;
  height: 42px;
  line-height: 1;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sig-flag svg {
  display: block;
  width: 60px;
  height: 42px;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.5));
  border-radius: 4px;
}
.sig-city-txt { min-width: 0; flex: 1; }
.sig-city {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: .01em;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 50%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sig-country {
  font-size: .65rem;
  letter-spacing: .18em;
  color: rgba(245,217,122,.65);
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 3px;
}

/* Hero IP : grande adresse IP */
.sig-ip-hero {
  padding: .85rem 0;
  margin-bottom: .7rem;
  border-bottom: 1px dashed rgba(149,198,255,.15);
}
.sig-ip-label {
  font-size: .52rem;
  letter-spacing: .25em;
  color: rgba(149,198,255,.6);
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 4px;
}
.sig-ip {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.45rem;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: .05em;
  font-variant-numeric: tabular-nums;
  filter: drop-shadow(0 0 8px rgba(149,198,255,.3));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Hero appareil */
.sig-dev-hero {
  padding: .85rem 0;
  margin-bottom: .7rem;
  border-bottom: 1px dashed rgba(149,229,198,.15);
}
.sig-dev-type {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #F5D97A;
  letter-spacing: .02em;
  filter: drop-shadow(0 0 4px rgba(245,217,122,.3));
  margin-bottom: 4px;
}
.sig-dev-os {
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .05em;
  color: rgba(149,229,198,.8);
  font-family: 'Montserrat', sans-serif;
}

/* Lignes clé / valeur */
.sig-rows {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.sig-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: .1rem 0;
  position: relative;
}
.sig-row::after {
  content: '';
  position: absolute;
  bottom: -.3rem;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    rgba(201,168,76,.08) 0%,
    transparent 50%,
    rgba(201,168,76,.08) 100%);
}
.sig-row:last-child::after { display: none; }

.sig-k {
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(245,217,122,.55);
  flex-shrink: 0;
}
.sig-v {
  font-size: .78rem;
  font-weight: 500;
  color: #F5E9C8;
  text-align: right;
  letter-spacing: .01em;
  max-width: 60%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sig-v-mono {
  font-family: 'Cormorant Garamond', 'Courier New', monospace;
  font-size: .82rem;
  letter-spacing: .03em;
  color: #FFFFFF;
}

/* ═══ FOOTER ═══ */
.sig-footer {
  margin-top: 1.2rem;
  padding: .8rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  background: linear-gradient(135deg, rgba(10,18,35,.6) 0%, rgba(5,10,22,.8) 100%);
  border: 1px solid rgba(201,168,76,.12);
  border-radius: 4px;
  font-family: 'Montserrat', sans-serif;
  font-size: .6rem;
  letter-spacing: .12em;
  color: rgba(245,217,122,.55);
  text-transform: uppercase;
  font-weight: 600;
}
.sig-footer-left {
  display: flex;
  align-items: center;
  gap: .6rem;
}
.sig-f-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #4ADE80;
  box-shadow: 0 0 6px #4ADE80;
  animation: sigLivePulse 2s ease-in-out infinite;
}
.sig-footer-right {
  color: var(--gold);
  font-family: 'Cormorant Garamond', monospace;
  letter-spacing: .2em;
  font-size: .65rem;
}

/* Responsive ajustements */
@media (max-width: 720px) {
  .sig { padding: 0 1rem; }
  .sig-top { flex-wrap: wrap; gap: .8rem; }
  .sig-brand { font-size: .55rem; letter-spacing: .2em; }
  .sig-city { font-size: 1.3rem; }
  .sig-ip { font-size: 1.15rem; }
  .sig-footer { flex-direction: column; align-items: flex-start; }
}

/* ═══════════════════════════════════════════════════════
   UWG BLOCK — Notre Engagement en Hongrie (PREMIUM LUMINEUX)
═══════════════════════════════════════════════════════ */

.uwg-block {
  display: grid;
  grid-template-columns: 1fr 1.1fr 1fr;
  min-height: 520px;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(10,20,40,.4) 0%, transparent 70%),
    linear-gradient(180deg, #040a16 0%, #050e1e 50%, #040a16 100%);
  position: relative;
  overflow: hidden;
  padding: 0;
  margin: 3rem auto;
  max-width: 1500px;
  border-radius: 6px;
  box-shadow:
    0 20px 60px rgba(0,0,0,.6),
    0 0 0 1px rgba(245,217,122,.15);
}

/* Encadrement lumineux aux couleurs HONGROISES (rouge/blanc/vert/or) */
.uwg-block::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  padding: 1px;
  background: linear-gradient(135deg,
    #CE2939 0%,        /* Rouge Hongrie */
    #F5D97A 15%,       /* Or */
    #FFFFFF 30%,       /* Blanc Hongrie */
    #F5D97A 45%,       /* Or */
    #436F4D 60%,       /* Vert Hongrie */
    #F5D97A 75%,       /* Or */
    #CE2939 90%,
    #F5D97A 100%);
  background-size: 300% 300%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: uwgBorderFlow 10s linear infinite;
  pointer-events: none;
}
@keyframes uwgBorderFlow {
  0%   { background-position: 0% 50%; }
  100% { background-position: 300% 50%; }
}

/* Halo extérieur tricolore discret */
.uwg-block::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 8px;
  background: linear-gradient(135deg,
    rgba(206,41,57,.3) 0%,
    rgba(245,217,122,.3) 25%,
    rgba(255,255,255,.25) 50%,
    rgba(245,217,122,.3) 75%,
    rgba(67,111,77,.3) 100%);
  filter: blur(12px);
  z-index: -1;
  opacity: .7;
  animation: uwgGlowPulse 6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes uwgGlowPulse {
  0%, 100% { opacity: .5; }
  50%      { opacity: .9; }
}

/* Halos décoratifs de fond aux couleurs HONGROISES (discrets) */
.uwg-halo-1 {
  position: absolute;
  top: -100px; left: 5%;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(206,41,57,.1) 0%, transparent 60%);
  pointer-events: none;
  animation: uwgHalo 10s ease-in-out infinite;
}
.uwg-halo-2 {
  position: absolute;
  bottom: -120px; right: 5%;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(67,111,77,.1) 0%, transparent 60%);
  pointer-events: none;
  animation: uwgHalo 12s ease-in-out infinite 2s;
}
.uwg-halo-3 {
  position: absolute;
  top: 30%; left: 50%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(245,217,122,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: uwgHalo 14s ease-in-out infinite 4s;
}
@keyframes uwgHalo {
  0%, 100% { transform: translate(0, 0) scale(1);   opacity: .9; }
  50%      { transform: translate(20px, -15px) scale(1.1); opacity: 1; }
}

/* Colonnes */
.uwg-col {
  padding: 3rem 2.5rem;
  position: relative;
  z-index: 2;
}
.uwg-col-left {
  padding-left: 8%;
  border-right: 1px solid rgba(245,217,122,.15);
}
.uwg-col-mid {
  padding: 2rem 1rem;
  border-right: 1px solid rgba(245,217,122,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(ellipse at center, rgba(10,15,28,.6) 0%, transparent 70%);
}
.uwg-col-right {
  padding-right: 8%;
  padding-left: 2rem;
}

/* Eyebrow (tagline orange) */
.uwg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #E8661A;
  margin-bottom: 1.1rem;
  padding: .35rem .9rem;
  background: linear-gradient(135deg, rgba(232,102,26,.12), rgba(232,102,26,.04));
  border: 1px solid rgba(232,102,26,.35);
  border-radius: 20px;
  text-shadow: 0 0 8px rgba(232,102,26,.3);
}
.uwg-eyebrow-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #E8661A;
  box-shadow: 0 0 6px #E8661A;
  animation: uwgDot 1.5s ease-in-out infinite;
}
@keyframes uwgDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .5; transform: scale(1.3); }
}

/* Titre principal */
.uwg-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.8rem, 2.6vw, 2.5rem);
  font-weight: 500;
  line-height: 1.15;
  color: #FFFFFF;
  margin: 0 0 1rem;
  letter-spacing: -.01em;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
.uwg-title em {
  font-style: italic;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 40%, #C9A84C 90%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 12px rgba(245,217,122,.4));
}

/* Divider doré animé */
.uwg-divider {
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #F5D97A 50%, transparent);
  margin-bottom: 1.5rem;
  position: relative;
  border-radius: 2px;
}
.uwg-divider::after {
  content: '';
  position: absolute;
  top: -2px; left: 50%;
  width: 6px; height: 6px;
  background: #F5D97A;
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 8px #F5D97A;
}

/* Paragraphe lead */
.uwg-lead {
  font-size: .82rem;
  line-height: 1.72;
  color: #B8C2D1;
  margin: 0 0 2rem;
  font-weight: 400;
}

/* Stats en ligne */
.uwg-stats {
  display: flex;
  align-items: center;
  padding: 1.3rem 0;
  border-top: 1px solid rgba(245,217,122,.18);
  border-bottom: 1px solid rgba(245,217,122,.18);
  margin-bottom: 1.8rem;
  background: linear-gradient(135deg, rgba(245,217,122,.03), rgba(206,41,57,.02));
  border-radius: 4px;
}
.uwg-stat {
  flex: 1;
  text-align: center;
  transition: transform .3s ease;
}
.uwg-stat:hover { transform: translateY(-2px); }
.uwg-stat-val {
  display: block;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.9rem;
  font-weight: 600;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 50%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  line-height: 1;
  filter: drop-shadow(0 0 10px rgba(245,217,122,.3));
}
.uwg-stat-label {
  display: block;
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(245,217,122,.7);
  margin-top: .4rem;
}
.uwg-stat-sep {
  width: 1px;
  height: 45px;
  background: linear-gradient(to bottom, transparent, rgba(245,217,122,.35), transparent);
  flex-shrink: 0;
}

/* CTA Premium */
.uwg-cta {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  padding: 1rem 2.2rem;
  background: linear-gradient(135deg, #C9A84C 0%, #F5D97A 50%, #E8C97A 100%);
  color: #07111F;
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  box-shadow:
    0 6px 24px rgba(201,168,76,.4),
    0 0 0 1px rgba(255,244,214,.3),
    inset 0 1px 0 rgba(255,255,255,.3);
  transition: all .35s cubic-bezier(.4,0,.2,1);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.uwg-cta-shimmer {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg,
    transparent 30%,
    rgba(255,255,255,.5) 50%,
    transparent 70%);
  transform: translateX(-100%);
  pointer-events: none;
}
.uwg-cta:hover {
  transform: translateY(-3px);
  letter-spacing: .22em;
  box-shadow:
    0 12px 40px rgba(201,168,76,.7),
    0 0 0 2px rgba(255,244,214,.5),
    0 0 30px rgba(245,217,122,.4),
    inset 0 1px 0 rgba(255,255,255,.4);
}
.uwg-cta:hover .uwg-cta-shimmer {
  transform: translateX(100%);
  transition: transform .8s ease;
}
.uwg-cta:hover .uwg-cta-arrow { transform: translateX(6px); }
.uwg-cta-arrow {
  font-size: .85rem;
  font-weight: 400;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1);
}

/* Carte SVG centrale */
.uwg-map-wrap {
  width: 100%;
  max-width: 450px;
  aspect-ratio: 400 / 340;
  position: relative;
}
.uwg-map-svg {
  width: 100%; height: 100%;
  display: block;
  filter: drop-shadow(0 10px 30px rgba(0,0,0,.4));
}

/* Colonne droite - Atouts Clés */
.uwg-eyebrow-right { color: #F5D97A; border-color: rgba(245,217,122,.35); background: linear-gradient(135deg, rgba(245,217,122,.12), rgba(245,217,122,.04)); text-shadow: 0 0 8px rgba(245,217,122,.3); }
.uwg-eyebrow-right .uwg-eyebrow-dot { background: #F5D97A; box-shadow: 0 0 6px #F5D97A; }

.uwg-key {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .9rem 1.1rem;
  margin-bottom: .65rem;
  background:
    linear-gradient(135deg, rgba(8,14,26,.6), rgba(4,10,22,.75));
  border: 1px solid rgba(245,217,122,.15);
  border-radius: 4px;
  transition: all .3s ease;
  position: relative;
  overflow: hidden;
}
.uwg-key::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, transparent, #F5D97A 40%, #F5D97A 60%, transparent);
  opacity: 0;
  transition: opacity .3s ease;
}
.uwg-key:hover {
  transform: translateX(4px);
  background: linear-gradient(135deg, rgba(14,22,40,.8), rgba(10,18,32,.9));
  border-color: rgba(245,217,122,.4);
  box-shadow: 0 4px 16px rgba(0,0,0,.4), 0 0 20px rgba(245,217,122,.12);
}
.uwg-key:hover::before { opacity: 1; }

.uwg-key-icon {
  width: 38px; height: 38px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, rgba(245,217,122,.15), rgba(10,22,40,.6));
  border: 1px solid rgba(245,217,122,.3);
  border-radius: 50%;
  color: #F5D97A;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 0 10px rgba(245,217,122,.15);
  transition: all .3s ease;
}
.uwg-key:hover .uwg-key-icon {
  background: radial-gradient(circle at 30% 30%, rgba(245,217,122,.3), rgba(10,22,40,.8));
  border-color: rgba(245,217,122,.6);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 15px rgba(245,217,122,.4);
  color: #FFF4D6;
}

.uwg-key-txt { flex: 1; min-width: 0; }
.uwg-key-val {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.25rem;
  font-weight: 600;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 60%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  line-height: 1.1;
  filter: drop-shadow(0 0 6px rgba(245,217,122,.25));
}
.uwg-key-lbl {
  display: block;
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(184,194,209,.55);
  margin-top: .2rem;
}

/* Responsive */
@media (max-width: 1100px) {
  .uwg-block {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .uwg-col-left, .uwg-col-right {
    padding: 2.5rem 6%;
    border-right: none;
    border-bottom: 1px solid rgba(245,217,122,.15);
  }
  .uwg-col-mid {
    padding: 2rem 6%;
    border-right: none;
    border-bottom: 1px solid rgba(245,217,122,.15);
  }
  .uwg-map-wrap { max-width: 500px; margin: 0 auto; }
}
@media (max-width: 560px) {
  .uwg-stats { flex-direction: column; gap: 1rem; }
  .uwg-stat-sep { width: 80%; height: 1px; }
  .uwg-title { font-size: 1.6rem; }
}

/* ═══════════════════════════════════════════════════════
   FOOTER LUXE PREMIUM — Unicom World Group
═══════════════════════════════════════════════════════ */

.ft-lux {
  position: relative;
  padding: 0;
  margin: 4rem auto 0;
  max-width: 1700px;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(206,41,57,.05) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(67,111,77,.05) 0%, transparent 60%),
    linear-gradient(180deg, #050e1e 0%, #02060f 50%, #050e1e 100%);
  color: #E5EBF5;
  overflow: hidden;
  border-radius: 6px 6px 0 0;
}

/* Cadre tricolore hongrois lumineux */
.ft-lux-frame {
  position: absolute;
  inset: 0;
  border-radius: 6px 6px 0 0;
  padding: 1.5px;
  background: linear-gradient(135deg,
    #CE2939 0%,
    #F5D97A 15%,
    #FFFFFF 30%,
    #F5D97A 45%,
    #436F4D 60%,
    #F5D97A 75%,
    #CE2939 90%,
    #F5D97A 100%);
  background-size: 300% 300%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: uwgBorderFlow 12s linear infinite;
  pointer-events: none;
  z-index: 10;
}
.ft-lux-glow {
  position: absolute;
  top: -4px; left: 0; right: 0;
  height: 80px;
  background: linear-gradient(180deg,
    rgba(245,217,122,.2),
    rgba(245,217,122,.08) 40%,
    transparent);
  pointer-events: none;
  filter: blur(20px);
}
.ft-lux-halo-1 {
  position: absolute;
  top: 10%; left: -5%;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(245,217,122,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: uwgHalo 15s ease-in-out infinite;
}
.ft-lux-halo-2 {
  position: absolute;
  bottom: 20%; right: -5%;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(67,111,77,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: uwgHalo 18s ease-in-out infinite 3s;
}

.ft-lux-inner {
  position: relative;
  z-index: 2;
  padding: 4rem 6% 2rem;
}

/* ═══ GRID 4 COLONNES ═══ */
.ft-lux-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
  gap: 3rem;
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(245,217,122,.15);
}

/* ═══ COL 1 : BRAND ═══ */
.ft-lux-brand { }

.ft-lux-logo-block {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  margin-bottom: 1.4rem;
}
.ft-lux-logo-img-wrap {
  width: 68px; height: 68px;
  flex-shrink: 0;
  padding: 6px;
  background: radial-gradient(circle at 30% 30%, rgba(245,217,122,.18), rgba(10,22,40,.85));
  border: 1px solid rgba(245,217,122,.3);
  border-radius: 8px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 4px 14px rgba(0,0,0,.5),
    0 0 16px rgba(245,217,122,.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ft-lux-logo-img {
  width: 100%; height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(245,217,122,.25));
}
.ft-lux-logo-txt { display: flex; flex-direction: column; gap: .2rem; }
.ft-lux-logo-name {
  font-family: 'Montserrat', sans-serif;
  font-size: .95rem;
  font-weight: 300;
  letter-spacing: .18em;
  color: #F5E9C8;
  line-height: 1.1;
}
.ft-lux-logo-name em {
  font-style: normal;
  font-weight: 700;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 50%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}
.ft-lux-logo-tag {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: .75rem;
  color: rgba(245,217,122,.75);
  letter-spacing: .05em;
}

.ft-lux-mission {
  font-size: .78rem;
  line-height: 1.7;
  color: #B8C2D1;
  margin: 0 0 1.5rem;
}

/* Badges certifications premium */
.ft-lux-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.5rem;
}
.ft-lux-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .42rem .85rem;
  background: linear-gradient(135deg, rgba(67,111,77,.18), rgba(10,22,40,.5));
  border: 1px solid rgba(67,111,77,.45);
  border-radius: 20px;
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #7DB88E;
  transition: all .3s ease;
}
.ft-lux-badge svg {
  width: 13px; height: 13px;
  color: #7DB88E;
}
.ft-lux-badge:hover {
  background: linear-gradient(135deg, rgba(67,111,77,.3), rgba(20,40,30,.6));
  border-color: rgba(67,111,77,.7);
  color: #A8D9B7;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(67,111,77,.25);
}

/* Présence mondiale drapeaux */
.ft-lux-presence {
  padding-top: 1.3rem;
  border-top: 1px solid rgba(245,217,122,.15);
}
.ft-lux-presence-lbl {
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(245,217,122,.7);
  margin-bottom: .75rem;
}
.ft-lux-flags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ft-lux-flag {
  display: inline-flex;
  transition: transform .3s ease;
  cursor: default;
}
.ft-lux-flag svg {
  width: 30px; height: 21px;
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5), inset 0 0 0 1px rgba(245,217,122,.2);
  display: block;
}
.ft-lux-flag:hover {
  transform: translateY(-2px) scale(1.08);
}
.ft-lux-flag:hover svg {
  box-shadow: 0 4px 12px rgba(245,217,122,.4), inset 0 0 0 1px rgba(245,217,122,.6);
}

/* ═══ COL 2/3 : Navigation / Services ═══ */
.ft-lux-col { }

.ft-lux-head {
  display: flex;
  align-items: center;
  gap: .7rem;
  font-family: 'Cormorant Garamond', serif;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: #F5D97A;
  margin: 0 0 1.5rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid rgba(245,217,122,.25);
  position: relative;
}
.ft-lux-head::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0;
  width: 40px; height: 2px;
  background: linear-gradient(90deg, #F5D97A, transparent);
  border-radius: 2px;
}
.ft-lux-head-ico {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: radial-gradient(circle, #F5D97A, #C9A84C);
  box-shadow: 0 0 8px #F5D97A;
  flex-shrink: 0;
}

.ft-lux-nav {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ft-lux-link {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .55rem 0;
  font-size: .72rem;
  color: #B8C2D1;
  text-decoration: none;
  letter-spacing: .02em;
  transition: all .3s ease;
  position: relative;
  cursor: pointer;
}
.ft-lux-arrow {
  color: rgba(245,217,122,.5);
  font-size: 1.1rem;
  line-height: 1;
  transition: all .3s ease;
  display: inline-block;
  width: 14px;
}
.ft-lux-link:hover {
  color: #FFF4D6;
  padding-left: .5rem;
}
.ft-lux-link:hover .ft-lux-arrow {
  color: #F5D97A;
  transform: translateX(2px);
  text-shadow: 0 0 8px rgba(245,217,122,.6);
}

/* ═══ COL 4 : CONTACT ═══ */
.ft-lux-col-contact { }

.ft-lux-contacts {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-bottom: 1.8rem;
}
.ft-lux-ci {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
}
.ft-lux-ci-ico {
  width: 36px; height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, rgba(245,217,122,.12), rgba(10,22,40,.5));
  border: 1px solid rgba(245,217,122,.25);
  border-radius: 50%;
  color: #F5D97A;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 8px rgba(245,217,122,.1);
}
.ft-lux-ci-ico svg { width: 16px; height: 16px; }
.ft-lux-ci-txt { flex: 1; min-width: 0; }
.ft-lux-ci-lbl {
  font-size: .46rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(245,217,122,.6);
  margin-bottom: .2rem;
}
.ft-lux-ci-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: .92rem;
  font-weight: 600;
  color: #F5E9C8;
  text-decoration: none;
  display: block;
  line-height: 1.25;
  transition: color .3s ease;
}
.ft-lux-ci-val-sm {
  font-size: .78rem;
  font-weight: 500;
}
a.ft-lux-ci-val:hover { color: #F5D97A; text-shadow: 0 0 6px rgba(245,217,122,.4); }
.ft-lux-ci-sub {
  font-size: .66rem;
  color: #B8C2D1;
  line-height: 1.4;
  margin-top: .15rem;
}
.ft-lux-ci-sub strong { color: #F5D97A; font-weight: 600; }

/* Secteurs */
.ft-lux-sectors {
  padding-top: 1.2rem;
  border-top: 1px solid rgba(245,217,122,.15);
}
.ft-lux-sectors-lbl {
  font-size: .48rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(245,217,122,.7);
  margin-bottom: .8rem;
}
.ft-lux-sectors-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.ft-lux-sector {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .32rem .7rem;
  background: linear-gradient(135deg, rgba(10,22,40,.6), rgba(4,10,22,.8));
  border: 1px solid rgba(245,217,122,.2);
  border-radius: 4px;
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: #E5EBF5;
  transition: all .25s ease;
}
.ft-lux-sector-ic { font-size: .75rem; line-height: 1; }
.ft-lux-sector:hover {
  border-color: rgba(245,217,122,.5);
  background: linear-gradient(135deg, rgba(20,35,60,.7), rgba(10,22,40,.85));
  color: #FFF4D6;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,.3), 0 0 12px rgba(245,217,122,.15);
}

/* ═══ CARTE GOOGLE MAPS ═══ */
.ft-lux-map-section {
  margin-bottom: 3rem;
  padding: 2rem 0;
  border-top: 1px solid rgba(245,217,122,.15);
  border-bottom: 1px solid rgba(245,217,122,.15);
}
.ft-lux-map-head {
  text-align: center;
  margin-bottom: 1.5rem;
}
.ft-lux-map-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #CE2939;
  padding: .4rem 1.1rem;
  background: linear-gradient(135deg, rgba(206,41,57,.15), rgba(206,41,57,.05));
  border: 1px solid rgba(206,41,57,.4);
  border-radius: 20px;
  margin-bottom: .9rem;
}
.ft-lux-map-pulse {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #CE2939;
  box-shadow: 0 0 8px #CE2939;
  animation: uwgDot 1.5s ease-in-out infinite;
}
.ft-lux-map-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.65rem;
  font-weight: 500;
  color: #F5E9C8;
  margin: 0;
  letter-spacing: .01em;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.5));
}

.ft-lux-map-wrap {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  border-radius: 6px;
  overflow: hidden;
  box-shadow:
    0 20px 50px rgba(0,0,0,.6),
    0 0 0 1px rgba(245,217,122,.25),
    inset 0 0 0 1px rgba(245,217,122,.15);
}
.ft-lux-map-wrap iframe {
  display: block;
  width: 100%;
  filter: grayscale(.15) contrast(1.05) brightness(.85);
  transition: filter .4s ease;
}
.ft-lux-map-wrap:hover iframe { filter: grayscale(0) contrast(1) brightness(1); }

.ft-lux-map-overlay {
  position: absolute;
  bottom: 1.2rem; left: 1.2rem;
  z-index: 5;
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  pointer-events: none;
}
.ft-lux-map-pin {
  width: 40px; height: 52px;
  animation: pinBounce 2s ease-in-out infinite;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,.6)) drop-shadow(0 0 12px rgba(245,217,122,.4));
}
.ft-lux-map-pin svg { width: 100%; height: 100%; }
@keyframes pinBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
.ft-lux-map-card {
  padding: .9rem 1.1rem;
  background: linear-gradient(135deg, rgba(10,22,40,.95), rgba(4,10,22,.98));
  border: 1px solid rgba(245,217,122,.4);
  border-radius: 6px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  pointer-events: auto;
  box-shadow: 0 10px 30px rgba(0,0,0,.5), 0 0 20px rgba(245,217,122,.2);
  max-width: 320px;
}
.ft-lux-map-card-ttl {
  font-family: 'Cormorant Garamond', serif;
  font-size: .95rem;
  font-weight: 700;
  color: #F5D97A;
  margin-bottom: .3rem;
  letter-spacing: .06em;
}
.ft-lux-map-card-sub {
  font-size: .7rem;
  color: #E5EBF5;
  line-height: 1.4;
  margin-bottom: .7rem;
}
.ft-lux-map-cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem;
  background: linear-gradient(135deg, #C9A84C, #F5D97A);
  color: #07111F !important;
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  transition: all .3s ease;
  box-shadow: 0 4px 14px rgba(201,168,76,.4);
}
.ft-lux-map-cta svg { width: 12px; height: 12px; }
.ft-lux-map-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,168,76,.7), 0 0 20px rgba(245,217,122,.4);
}

/* ═══ KPIs FINAUX ═══ */
.ft-lux-kpis {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  padding: 2rem 0;
  margin-bottom: 2rem;
  border-top: 1px solid rgba(245,217,122,.15);
  border-bottom: 1px solid rgba(245,217,122,.15);
  background: radial-gradient(ellipse at center, rgba(245,217,122,.03), transparent 70%);
}
.ft-lux-kpi { text-align: center; transition: transform .3s ease; }
.ft-lux-kpi:hover { transform: translateY(-3px); }
.ft-lux-kpi-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  font-weight: 600;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 50%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  line-height: 1;
  filter: drop-shadow(0 0 12px rgba(245,217,122,.3));
  letter-spacing: -.02em;
}
.ft-lux-kpi-num em {
  font-size: 1.1rem;
  font-style: normal;
  font-weight: 400;
  opacity: .85;
  margin-left: .05em;
}
.ft-lux-kpi-lbl {
  display: block;
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(245,217,122,.7);
  margin-top: .5rem;
}
.ft-lux-kpi-sep {
  width: 1px; height: 60px;
  background: linear-gradient(to bottom, transparent, rgba(245,217,122,.35), transparent);
  flex-shrink: 0;
}

/* ═══ BARRE BAS PREMIUM ═══ */
.ft-lux-bottom {
  padding-top: 2rem;
  margin-top: 1rem;
  border-top: 1px solid rgba(245,217,122,.22);
  position: relative;
}
.ft-lux-bottom::before {
  content: '';
  position: absolute;
  top: -1px; left: 50%;
  transform: translateX(-50%);
  width: 120px; height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(206,41,57,.8) 20%,
    #F5D97A 50%,
    rgba(67,111,77,.8) 80%,
    transparent 100%);
  border-radius: 2px;
}

/* Menu légal en boutons glassmorphism premium */
.ft-lux-legal-bar {
  display: flex;
  justify-content: center;
  margin-bottom: 2rem;
}
.ft-lux-legal-group {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  justify-content: center;
}
.ft-lux-legal-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1.2rem;
  background: linear-gradient(135deg,
    rgba(10,22,40,.65),
    rgba(4,12,24,.85));
  border: 1px solid rgba(245,217,122,.22);
  border-radius: 4px;
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #E5EBF5;
  text-decoration: none;
  cursor: pointer;
  transition: all .3s ease;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  position: relative;
  overflow: hidden;
}
.ft-lux-legal-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg,
    transparent 30%,
    rgba(245,217,122,.15) 50%,
    transparent 70%);
  transform: translateX(-100%);
  transition: transform .6s ease;
}
.ft-lux-legal-btn svg {
  width: 14px; height: 14px;
  color: rgba(245,217,122,.7);
  transition: color .3s ease;
  flex-shrink: 0;
}
.ft-lux-legal-btn:hover {
  border-color: rgba(245,217,122,.55);
  color: #FFF4D6;
  background: linear-gradient(135deg,
    rgba(20,35,60,.8),
    rgba(10,22,40,.95));
  transform: translateY(-2px);
  box-shadow:
    0 6px 20px rgba(0,0,0,.4),
    0 0 16px rgba(245,217,122,.15);
}
.ft-lux-legal-btn:hover::before { transform: translateX(100%); }
.ft-lux-legal-btn:hover svg { color: #F5D97A; }

/* Signature finale premium */
.ft-lux-sig {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
  padding: 1.8rem 2rem;
  background:
    linear-gradient(135deg,
      rgba(10,22,40,.4) 0%,
      rgba(4,12,24,.6) 100%);
  border: 1px solid rgba(245,217,122,.18);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.ft-lux-sig::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px; height: 100%;
  background: linear-gradient(180deg,
    #CE2939 0%,
    #F5D97A 50%,
    #436F4D 100%);
  opacity: .8;
}
.ft-lux-sig-left {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.ft-lux-sig-logo {
  width: 32px; height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, rgba(245,217,122,.22), rgba(10,22,40,.6));
  border: 1px solid rgba(245,217,122,.35);
  border-radius: 50%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 0 12px rgba(245,217,122,.2);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.5));
}
.ft-lux-copy {
  font-size: .72rem;
  color: #B8C2D1;
  line-height: 1.5;
  letter-spacing: .02em;
}
.ft-lux-copy strong {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: .88rem;
  letter-spacing: .08em;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 50%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 6px rgba(245,217,122,.2));
}
.ft-lux-sig-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .5rem;
}
.ft-lux-made {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .66rem;
  font-style: italic;
  color: rgba(245,217,122,.85);
  font-family: 'Cormorant Garamond', serif;
  letter-spacing: .03em;
}
.ft-lux-made-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, #F5D97A, #C9A84C);
  box-shadow: 0 0 6px #F5D97A;
  animation: uwgDot 2s ease-in-out infinite;
}
.ft-lux-corp {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(184,194,209,.65);
  padding: .3rem .8rem;
  background: linear-gradient(135deg, rgba(206,41,57,.1), rgba(67,111,77,.1));
  border: 1px solid rgba(245,217,122,.2);
  border-radius: 20px;
}

/* ═══════════════════════════════════════════════════════
   MODALES LÉGALES PREMIUM
═══════════════════════════════════════════════════════ */

.ft-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}
.ft-modal.ft-modal-open {
  display: flex;
  animation: ftModalFadeIn .3s ease;
}
@keyframes ftModalFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.ft-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2,6,15,.8);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
}
.ft-modal-card {
  position: relative;
  max-width: 800px;
  width: 100%;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(ellipse at 30% 0%, rgba(245,217,122,.08) 0%, transparent 60%),
    linear-gradient(180deg, #050e1e 0%, #02060f 100%);
  border-radius: 8px;
  overflow: hidden;
  box-shadow:
    0 30px 80px rgba(0,0,0,.7),
    0 0 60px rgba(245,217,122,.15),
    0 0 0 1px rgba(245,217,122,.3);
  animation: ftModalSlide .4s cubic-bezier(.34,1.56,.64,1);
}
@keyframes ftModalSlide {
  from { transform: translateY(30px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}

/* Cadre tricolore hongrois sur la modale */
.ft-modal-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 8px;
  padding: 1.5px;
  background: linear-gradient(135deg,
    #CE2939 0%,
    #F5D97A 20%,
    #FFFFFF 40%,
    #F5D97A 60%,
    #436F4D 80%,
    #F5D97A 100%);
  background-size: 300% 300%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: uwgBorderFlow 12s linear infinite;
  pointer-events: none;
  z-index: 1;
}

.ft-modal-close {
  position: absolute;
  top: 1rem; right: 1rem;
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10,22,40,.8);
  border: 1px solid rgba(245,217,122,.3);
  border-radius: 50%;
  color: #F5D97A;
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 300;
  cursor: pointer;
  transition: all .3s ease;
  z-index: 10;
}
.ft-modal-close:hover {
  background: rgba(206,41,57,.4);
  border-color: rgba(206,41,57,.8);
  color: #FFF4D6;
  transform: rotate(90deg);
}

.ft-modal-head {
  padding: 2.5rem 2.5rem 1.5rem;
  border-bottom: 1px solid rgba(245,217,122,.2);
  background: linear-gradient(180deg, rgba(10,22,40,.3), transparent);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.ft-modal-eyebrow {
  display: inline-flex;
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #F5D97A;
  margin-bottom: .8rem;
  padding: .3rem .9rem;
  background: linear-gradient(135deg, rgba(245,217,122,.12), rgba(245,217,122,.04));
  border: 1px solid rgba(245,217,122,.3);
  border-radius: 20px;
}
.ft-modal-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.9rem;
  font-weight: 500;
  color: #FFF4D6;
  margin: 0;
  letter-spacing: -.01em;
  line-height: 1.2;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
.ft-modal-title em {
  font-style: italic;
  background: linear-gradient(180deg, #FFF4D6 0%, #F5D97A 50%, #C9A84C 100%);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
}

.ft-modal-body {
  padding: 2rem 2.5rem;
  overflow-y: auto;
  position: relative;
  z-index: 2;
  color: #D5DBEC;
  line-height: 1.7;
  scrollbar-width: thin;
  scrollbar-color: #F5D97A #0a1428;
}
.ft-modal-body::-webkit-scrollbar { width: 8px; }
.ft-modal-body::-webkit-scrollbar-track { background: #0a1428; }
.ft-modal-body::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #F5D97A, #C9A84C);
  border-radius: 4px;
}
.ft-modal-body h4 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: #F5D97A;
  margin: 1.5rem 0 .6rem;
  letter-spacing: .02em;
  padding-bottom: .4rem;
  border-bottom: 1px solid rgba(245,217,122,.15);
}
.ft-modal-body h4:first-child { margin-top: 0; }
.ft-modal-body p {
  font-size: .78rem;
  margin: 0 0 1rem;
  color: #D5DBEC;
}
.ft-modal-body strong {
  color: #F5D97A;
  font-weight: 600;
}
.ft-modal-body ul {
  list-style: none;
  padding-left: 1.2rem;
  margin: .5rem 0 1rem;
}
.ft-modal-body li {
  font-size: .78rem;
  margin-bottom: .4rem;
  position: relative;
  padding-left: 1rem;
}
.ft-modal-body li::before {
  content: '›';
  position: absolute;
  left: 0;
  color: #F5D97A;
  font-size: 1rem;
  font-weight: 700;
}
.ft-modal-body a {
  color: #F5D97A;
  text-decoration: none;
  border-bottom: 1px dotted rgba(245,217,122,.5);
  transition: all .3s ease;
}
.ft-modal-body a:hover {
  color: #FFF4D6;
  border-bottom-color: #FFF4D6;
}

/* Responsive modales */
@media (max-width: 700px) {
  .ft-modal { padding: 1rem; }
  .ft-modal-head { padding: 2rem 1.5rem 1rem; }
  .ft-modal-body { padding: 1.5rem; }
  .ft-modal-title { font-size: 1.4rem; }
  .ft-lux-sig { grid-template-columns: 1fr; padding: 1.3rem 1.5rem; }
  .ft-lux-sig-right { align-items: flex-start; }
  .ft-lux-legal-group { gap: .4rem; }
  .ft-lux-legal-btn { font-size: .52rem; padding: .55rem .9rem; }
}

/* ═══ BOUTON SCROLL-TOP PREMIUM ═══ */
.ft-scrolltop {
  position: fixed;
  bottom: 30px; right: 30px;
  width: 68px; height: 68px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #07111F;
  text-decoration: none;
  cursor: pointer;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px) scale(.9);
  transition: all .4s cubic-bezier(.34,1.56,.64,1);
}
.ft-scrolltop-show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
.ft-scrolltop-halo {
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245,217,122,.25) 0%, transparent 70%);
  animation: bvsAura 3.5s ease-in-out infinite;
  pointer-events: none;
}
.ft-scrolltop-ring {
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1.5px dashed rgba(245,217,122,.5);
  animation: bvsRingRotate 14s linear infinite;
  pointer-events: none;
}
.ft-scrolltop-btn {
  position: relative;
  width: 56px; height: 56px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, #FFE89A 0%, transparent 60%),
    linear-gradient(135deg, #F5D97A 0%, #C9A84C 50%, #8B6A2C 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 8px 30px rgba(245,217,122,.5),
    0 4px 12px rgba(0,0,0,.4),
    inset 0 2px 4px rgba(255,244,214,.4),
    inset 0 -2px 4px rgba(0,0,0,.2);
  transition: all .3s ease;
  z-index: 2;
}
.ft-scrolltop-btn svg {
  width: 24px; height: 24px;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
}
.ft-scrolltop:hover .ft-scrolltop-btn {
  transform: translateY(-3px);
  box-shadow:
    0 14px 40px rgba(245,217,122,.7),
    0 6px 16px rgba(0,0,0,.5),
    0 0 30px rgba(245,217,122,.4),
    inset 0 2px 4px rgba(255,244,214,.5),
    inset 0 -2px 4px rgba(0,0,0,.2);
}
.ft-scrolltop:hover .ft-scrolltop-ring {
  animation-duration: 6s;
  border-color: rgba(245,217,122,.8);
}
.ft-scrolltop-lbl {
  position: absolute;
  bottom: -14px; left: 50%;
  transform: translateX(-50%);
  font-size: .48rem;
  font-weight: 800;
  letter-spacing: .2em;
  color: rgba(245,217,122,.85);
  text-shadow: 0 2px 4px rgba(0,0,0,.6);
  pointer-events: none;
  white-space: nowrap;
}

/* ═══ RESPONSIVE ═══ */
@media (max-width: 1200px) {
  .ft-lux-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .ft-lux-brand { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .ft-lux-inner { padding: 3rem 6% 2rem; }
  .ft-lux-grid { grid-template-columns: 1fr; }
  .ft-lux-kpis { flex-wrap: wrap; gap: 1rem; }
  .ft-lux-kpi-sep { display: none; }
  .ft-lux-bottom { flex-direction: column; align-items: flex-start; }
  .ft-lux-map-overlay { position: static; margin-top: -80px; padding: 0 1rem; }
  .ft-scrolltop { bottom: 20px; right: 20px; width: 56px; height: 56px; }
  .ft-scrolltop-btn { width: 48px; height: 48px; }
}


/* ═══════════════════════════════════════════════════════
   SUPPORT LANGUE HONGROISE (.hu) — avec fallback intelligent
   Le comportement réel est géré en JS (setLang dans script.js)
   qui applique la classe body.is-hu et gère le fallback au FR
   pour les éléments qui n'ont pas de version .hu
═══════════════════════════════════════════════════════ */

/* Par défaut .hu est masqué (FR et EN existent déjà)
   Note : les \u00e9l\u00e9ments avec .hu comme classe de traduction sont cach\u00e9s ici,
   mais le bouton "HU" du switch de langue utilise l'id #nlHU et NON la classe .hu,
   donc il reste toujours visible. */
.hu { display: none !important; }
span.hu { display: none !important; }

/* Mode HU : montre les .hu disponibles */
body.is-hu div.hu,
body.is-hu h1.hu, body.is-hu h2.hu, body.is-hu h3.hu,
body.is-hu h4.hu, body.is-hu h5.hu, body.is-hu h6.hu,
body.is-hu p.hu, body.is-hu li.hu, body.is-hu td.hu { display: block !important; }
body.is-hu span.hu,
body.is-hu a.hu { display: inline !important; }
body.is-hu em.hu,
body.is-hu strong.hu,
body.is-hu b.hu,
body.is-hu i.hu { display: inline !important; }

/* Mode HU : masque les .en partout */
body.is-hu .en { display: none !important; }
body.is-hu span.en,
body.is-hu a.en { display: none !important; }

/* Mode HU : masque les .fr UNIQUEMENT si un .hu frère existe au même niveau
   (sinon on affiche le .fr en fallback — géré en JS) */
body.is-hu .hu-hide-fr.fr { display: none !important; }
body.is-hu span.hu-hide-fr.fr,
body.is-hu a.hu-hide-fr.fr { display: none !important; }

/* ═══════════════════════════════════════════════════════
   CONTACT FORM — Premium Luxury v103+
   Catégories d'activité avec icônes + Offices + Budget
═══════════════════════════════════════════════════════ */

/* Bannière légitimité */
.cnt-legit {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin: 1.5rem 0;
  padding: .9rem 1.1rem;
  background: linear-gradient(135deg, rgba(232,102,26,.08) 0%, rgba(201,168,76,.05) 100%);
  border: 1px solid rgba(232,102,26,.28);
  border-left: 3px solid var(--or);
  border-radius: 2px;
  color: var(--tx2);
  font-size: .72rem;
  line-height: 1.5;
}
.cnt-legit svg { color: var(--or); margin-top: 2px; flex-shrink: 0; }
.cnt-legit strong { color: var(--gold); font-weight: 700; letter-spacing: .02em; }

/* Section offices */
.cnt-offices {
  margin-top: 2.5rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(201,168,76,.15);
}
.co-hdr {
  font-size: .62rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--or);
  font-weight: 700;
  margin-bottom: 1.1rem;
}
.co-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .7rem;
}
.co-item {
  padding: .9rem 1rem;
  background: linear-gradient(135deg, rgba(201,168,76,.04) 0%, rgba(232,102,26,.02) 100%);
  border: 1px solid rgba(201,168,76,.15);
  border-radius: 2px;
  transition: all .28s cubic-bezier(.4,0,.2,1);
  position: relative;
  overflow: hidden;
}
.co-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--or) 0%, var(--gold) 100%);
  opacity: 0;
  transition: opacity .28s;
}
.co-item:hover {
  border-color: rgba(201,168,76,.4);
  background: linear-gradient(135deg, rgba(201,168,76,.08) 0%, rgba(232,102,26,.05) 100%);
  transform: translateY(-1px);
}
.co-item:hover::before { opacity: 1; }
.co-flag { font-size: 1.3rem; margin-bottom: .3rem; }
.co-ct {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  color: var(--gold);
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: .15rem;
}
.co-sub {
  font-size: .6rem;
  letter-spacing: .1em;
  color: var(--tx2);
  text-transform: uppercase;
}

/* Form layout */
#cForm {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}
.frow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 680px) {
  .frow { grid-template-columns: 1fr; }
  .co-grid { grid-template-columns: 1fr; }
}

.fg {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.fg label {
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tx2);
}
.f-req {
  color: var(--or);
  margin-left: .2rem;
  font-weight: 700;
}
.f-note {
  font-size: .7rem;
  color: var(--or);
  margin: 0 0 .3rem 0;
  letter-spacing: .05em;
}

/* Inputs */
.fg input[type="text"],
.fg input[type="email"],
.fg input[type="tel"],
.fg select,
.fg textarea {
  padding: .85rem 1rem;
  background: rgba(5,11,22,.6);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 2px;
  color: var(--tx);
  font-family: 'Montserrat', sans-serif;
  font-size: .82rem;
  font-weight: 400;
  transition: all .28s cubic-bezier(.4,0,.2,1);
  width: 100%;
  box-sizing: border-box;
}
.fg input::placeholder,
.fg textarea::placeholder {
  color: rgba(158,164,174,.5);
  font-style: italic;
  font-size: .78rem;
}
.fg input:hover,
.fg select:hover,
.fg textarea:hover {
  border-color: rgba(201,168,76,.35);
  background: rgba(5,11,22,.8);
}
.fg input:focus,
.fg select:focus,
.fg textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,.12), 0 0 20px rgba(201,168,76,.15);
  background: rgba(8,15,28,.9);
}
.fg textarea {
  resize: vertical;
  min-height: 120px;
  font-family: 'Montserrat', sans-serif;
}
.fg select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23c9a84c' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
  cursor: pointer;
}

/* ═══ CATÉGORIES AVEC ICÔNES ANIMÉES ═══ */
.fg-cats { margin-top: .5rem; }
.cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));
  gap: .6rem;
  margin-top: .25rem;
}
.cat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  padding: 1rem .7rem;
  background: linear-gradient(135deg, rgba(5,11,22,.5) 0%, rgba(8,15,28,.4) 100%);
  border: 1px solid rgba(201,168,76,.18);
  border-radius: 3px;
  cursor: pointer;
  transition: all .32s cubic-bezier(.4,0,.2,1);
  overflow: hidden;
  text-align: center;
  min-height: 115px;
}
.cat-card input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cat-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(232,102,26,.15) 0%, rgba(201,168,76,.12) 100%);
  opacity: 0;
  transition: opacity .32s;
  z-index: 0;
}
.cat-card::after {
  content: '✓';
  position: absolute;
  top: 6px; right: 8px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--gold);
  color: #0a1020;
  font-size: .7rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(0) rotate(-45deg);
  transition: transform .32s cubic-bezier(.34,1.56,.64,1);
  z-index: 2;
}
.cat-card > * { position: relative; z-index: 1; }

.cat-ic {
  width: 44px; height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 50%;
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
.cat-card:hover .cat-ic {
  background: rgba(201,168,76,.15);
  border-color: rgba(201,168,76,.45);
  transform: scale(1.08) rotate(-5deg);
  color: var(--or);
}
.cat-nm {
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tx2);
  font-weight: 600;
  transition: color .28s;
  line-height: 1.3;
}
.cat-card:hover {
  border-color: rgba(201,168,76,.45);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.4), 0 0 0 1px rgba(201,168,76,.1);
}
.cat-card:hover::before { opacity: .4; }
.cat-card:hover .cat-nm { color: var(--tx); }

/* Sélectionné */
.cat-card:has(input:checked) {
  border-color: var(--gold);
  background: linear-gradient(135deg, rgba(232,102,26,.12) 0%, rgba(201,168,76,.18) 100%);
  box-shadow: 0 0 0 1px var(--gold), 0 4px 16px rgba(201,168,76,.25);
}
.cat-card:has(input:checked)::before { opacity: .6; }
.cat-card:has(input:checked)::after { transform: scale(1) rotate(0); }
.cat-card:has(input:checked) .cat-ic {
  background: rgba(232,102,26,.2);
  border-color: var(--or);
  color: var(--or);
  box-shadow: 0 0 14px rgba(232,102,26,.35);
}
.cat-card:has(input:checked) .cat-nm {
  color: var(--gold);
  font-weight: 700;
}

/* Animation pulse sur l'icône lors de la sélection */
@keyframes catPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }
}
.cat-card:has(input:checked) .cat-ic {
  animation: catPulse .4s ease-out;
}

/* Consentement */
.fg-consent { margin-top: .3rem; }
.f-consent {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  cursor: pointer;
  font-size: .72rem;
  color: var(--tx2);
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
}
.f-consent input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.f-cbox {
  width: 18px; height: 18px;
  flex-shrink: 0;
  border: 1.5px solid rgba(201,168,76,.35);
  border-radius: 2px;
  background: rgba(5,11,22,.6);
  position: relative;
  transition: all .25s;
  margin-top: 2px;
}
.f-cbox::after {
  content: '';
  position: absolute;
  top: 2px; left: 5px;
  width: 5px; height: 10px;
  border: solid var(--gold);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1);
}
.f-consent:hover .f-cbox { border-color: var(--gold); }
.f-consent input:checked ~ .f-cbox {
  border-color: var(--gold);
  background: rgba(201,168,76,.1);
}
.f-consent input:checked ~ .f-cbox::after { transform: rotate(45deg) scale(1); }
.f-ctxt { flex: 1; }

/* Bouton submit premium */
.btn-sub {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 1rem 2rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(135deg, #e8661a 0%, #d85610 100%);
  border: none;
  border-radius: 2px;
  cursor: pointer;
  margin-top: .5rem;
  box-shadow: 0 4px 20px rgba(232,102,26,.35), 0 0 0 1px rgba(245,158,11,.3) inset;
  transition: all .32s cubic-bezier(.4,0,.2,1);
  position: relative;
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}
.btn-sub::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #f59e0b 0%, #e8661a 100%);
  opacity: 0;
  transition: opacity .32s;
  z-index: 0;
}
.btn-sub > * { position: relative; z-index: 1; }
.btn-sub:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(232,102,26,.5), 0 0 0 1px rgba(245,158,11,.5) inset;
}
.btn-sub:hover:not(:disabled)::before { opacity: 1; }
.btn-sub:hover:not(:disabled) svg { transform: translateX(4px); }
.btn-sub svg { transition: transform .32s; flex-shrink: 0; }
.btn-sub:disabled {
  opacity: .6;
  cursor: wait;
  background: linear-gradient(135deg, #1a6e2e 0%, #155a26 100%);
}

/* Status message */
.f-st {
  font-size: .78rem;
  padding: 0;
  transition: all .3s;
  min-height: 0;
  overflow: hidden;
}
.f-st.err, .f-st.ok {
  padding: .85rem 1.1rem;
  border-radius: 2px;
  min-height: auto;
}
.f-st.err {
  background: rgba(210,80,80,.12);
  border: 1px solid rgba(210,80,80,.4);
  color: #ff8080;
}
.f-st.ok {
  background: rgba(26,110,46,.15);
  border: 1px solid rgba(26,110,46,.45);
  color: #7ee29a;
}

/* Lien politique de confidentialité dans la checkbox */
.f-privacy-link {
  color: var(--gold);
  text-decoration: underline;
  text-decoration-color: rgba(201,168,76,.35);
  text-underline-offset: 3px;
  font-weight: 600;
  transition: all .2s;
  cursor: pointer;
}
.f-privacy-link:hover {
  color: var(--or);
  text-decoration-color: var(--or);
}

/* ═══════════════════════════════════════════════════════
   MODAL FOOTER AVEC BOUTONS (Accept / Close)
═══════════════════════════════════════════════════════ */
.ft-modal-foot {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .7rem;
  padding: 1.1rem 1.5rem;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.35) 100%);
  border-top: 1px solid rgba(201,168,76,.2);
  position: relative;
}
.ft-modal-foot::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,168,76,.35) 50%, transparent 100%);
}
.ft-modal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .75rem 1.4rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  border-radius: 2px;
  cursor: pointer;
  transition: all .28s cubic-bezier(.4,0,.2,1);
  border: 1px solid transparent;
  white-space: nowrap;
}
.ft-modal-btn svg { flex-shrink: 0; }

/* Bouton secondaire (Fermer) */
.ft-modal-btn-sec {
  background: transparent;
  border-color: rgba(201,168,76,.35);
  color: var(--gold);
}
.ft-modal-btn-sec:hover {
  background: rgba(201,168,76,.08);
  border-color: var(--gold);
}

/* Bouton principal (J'accepte) */
.ft-modal-btn-pri {
  background: linear-gradient(135deg, #e8661a 0%, #d85610 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(232,102,26,.32), 0 0 0 1px rgba(245,158,11,.25) inset;
  position: relative;
  overflow: hidden;
}
.ft-modal-btn-pri::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #f59e0b 0%, #e8661a 100%);
  opacity: 0;
  transition: opacity .32s;
  z-index: 0;
}
.ft-modal-btn-pri > * { position: relative; z-index: 1; }
.ft-modal-btn-pri:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 22px rgba(232,102,26,.5), 0 0 0 1px rgba(245,158,11,.45) inset;
}
.ft-modal-btn-pri:hover::before { opacity: 1; }
.ft-modal-btn-pri:hover svg { transform: scale(1.15); }
.ft-modal-btn-pri svg { transition: transform .28s; }

@media (max-width: 640px) {
  .ft-modal-foot { flex-direction: column-reverse; padding: .9rem 1rem; }
  .ft-modal-btn { width: 100%; }
}

/* ═══════════════════════════════════════════════════════
   RÉSEAU MONDIAL ANIMÉ — Contact section
═══════════════════════════════════════════════════════ */
.cnt-network {
  margin-top: 2.2rem;
  padding: 1.6rem 0 0 0;
  border-top: 1px solid rgba(201,168,76,.15);
  position: relative;
}

/* Header */
.cnw-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
  flex-wrap: wrap;
}
.cnw-live {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .8rem;
  background: rgba(232,102,26,.1);
  border: 1px solid rgba(232,102,26,.3);
  border-radius: 20px;
  font-size: .58rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--or);
  font-weight: 700;
}
.cnw-dot {
  width: 7px; height: 7px;
  background: #00d68f;
  border-radius: 50%;
  box-shadow: 0 0 8px #00d68f;
  animation: cnwBlink 1.4s ease-in-out infinite;
}
@keyframes cnwBlink {
  0%, 100% { opacity: 1; box-shadow: 0 0 8px #00d68f; }
  50% { opacity: .5; box-shadow: 0 0 14px #00d68f; }
}
.cnw-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  color: var(--gold);
  font-weight: 500;
  letter-spacing: .02em;
}
.cnw-title em {
  font-style: italic;
  background: linear-gradient(135deg, #e8661a 0%, #f59e0b 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* Carte */
.cnw-map {
  width: 100%;
  aspect-ratio: 800 / 320;
  background: linear-gradient(135deg, rgba(8,15,28,.8) 0%, rgba(5,11,22,.9) 100%);
  border: 1px solid rgba(201,168,76,.15);
  border-radius: 4px;
  padding: .5rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.3) inset;
}
.cnw-map::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 25% 50%, rgba(232,102,26,.06) 0%, transparent 40%),
    radial-gradient(ellipse at 75% 50%, rgba(201,168,76,.05) 0%, transparent 40%);
  pointer-events: none;
}
.cnw-map svg {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
  z-index: 1;
}

/* KPIs */
.cnw-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .6rem;
  margin-top: 1rem;
}
.cnw-kpi {
  text-align: center;
  padding: .9rem .5rem;
  background: linear-gradient(135deg, rgba(201,168,76,.05) 0%, rgba(232,102,26,.03) 100%);
  border: 1px solid rgba(201,168,76,.15);
  border-radius: 2px;
  transition: all .28s;
  position: relative;
  overflow: hidden;
}
.cnw-kpi::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
  opacity: 0;
  transition: opacity .3s;
}
.cnw-kpi:hover {
  border-color: rgba(201,168,76,.4);
  background: linear-gradient(135deg, rgba(201,168,76,.08) 0%, rgba(232,102,26,.05) 100%);
  transform: translateY(-1px);
}
.cnw-kpi:hover::after { opacity: 1; }
.cnw-kpi-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.75rem;
  color: var(--gold);
  font-weight: 600;
  line-height: 1;
  margin-bottom: .35rem;
  background: linear-gradient(135deg, #f59e0b 0%, #c9a84c 50%, #e8661a 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.cnw-kpi-lbl {
  font-size: .55rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tx2);
  font-weight: 600;
  line-height: 1.3;
}

/* Ticker défilant */
.cnw-ticker {
  margin-top: 1rem;
  padding: .7rem 0;
  background: linear-gradient(90deg, rgba(5,11,22,0) 0%, rgba(5,11,22,.6) 10%, rgba(5,11,22,.6) 90%, rgba(5,11,22,0) 100%);
  border-top: 1px solid rgba(201,168,76,.1);
  border-bottom: 1px solid rgba(201,168,76,.1);
  overflow: hidden;
  position: relative;
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.cnw-ticker-track {
  display: flex;
  gap: 2.5rem;
  white-space: nowrap;
  animation: cnwScroll 38s linear infinite;
  width: max-content;
}
@keyframes cnwScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.cnw-city {
  font-size: .62rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  font-family: 'Montserrat', sans-serif;
  flex-shrink: 0;
}
.cnw-city::first-letter { color: var(--or); }

/* Responsive */
@media (max-width: 680px) {
  .cnw-kpis { grid-template-columns: 1fr; gap: .4rem; }
  .cnw-kpi { padding: .7rem .5rem; }
  .cnw-kpi-val { font-size: 1.4rem; }
  .cnw-title { font-size: 1.1rem; }
}

/* ═══════════════════════════════════════════════════════
   AUDIT RESPONSIVE FINAL — v109+
   Polissage mobile & tablette pour les nouveaux éléments
═══════════════════════════════════════════════════════ */

/* Section contact padding sur tablette */
@media (max-width: 1024px) {
  .cnt { padding: 5rem 6%; }
  .cnt-g { gap: 3rem; }
}

/* Tablette — catégories en 3 colonnes */
@media (max-width: 900px) {
  .cat-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: .55rem;
  }
  .cat-card { min-height: 105px; padding: .85rem .6rem; }
  .cat-ic { width: 40px; height: 40px; }
  .cat-ic svg { width: 24px; height: 24px; }
  .cat-nm { font-size: .58rem; }
}

/* Mobile — tout en 2 colonnes maxi */
@media (max-width: 680px) {
  .cnt { padding: 3.5rem 5%; }
  .cat-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: .5rem;
  }
  .cat-card {
    min-height: 100px;
    padding: .8rem .5rem;
  }
  .cat-ic { width: 38px; height: 38px; }
  .cat-nm { font-size: .56rem; letter-spacing: .06em; }
  
  /* Bannière légitimité plus compacte */
  .cnt-legit {
    font-size: .68rem;
    padding: .75rem .9rem;
    gap: .55rem;
  }
  
  /* Offices empilés */
  .co-hdr { font-size: .58rem; }
  .co-item { padding: .8rem .9rem; }
  .co-ct { font-size: 1.05rem; }
  .co-sub { font-size: .55rem; }
  
  /* Bouton submit full width */
  .btn-sub {
    width: 100%;
    padding: 1rem 1rem;
    font-size: .68rem;
    letter-spacing: .14em;
  }
  
  /* Titre contact */
  .cnt-network { margin-top: 1.8rem; padding-top: 1.2rem; }
  .cnw-hdr { flex-direction: column; align-items: flex-start; gap: .7rem; }
  .cnw-title { font-size: 1.1rem; }
  
  /* Form spacing */
  #cForm { gap: .95rem; }
  .frow { gap: .75rem; }
  
  /* Inputs slightly smaller */
  .fg input[type="text"],
  .fg input[type="email"],
  .fg input[type="tel"],
  .fg select,
  .fg textarea {
    font-size: .78rem;
    padding: .75rem .9rem;
  }
  .fg label { font-size: .62rem; }
  
  /* Consentement lisible */
  .f-consent { font-size: .68rem; }
  .f-ctxt { line-height: 1.55; }
}

/* Très petit mobile — 1 colonne catégories */
@media (max-width: 380px) {
  .cat-grid { grid-template-columns: 1fr; }
  .cat-card { flex-direction: row; min-height: auto; justify-content: flex-start; gap: .85rem; padding: .7rem 1rem; }
  .cat-card::after { top: 50%; right: 10px; transform: scale(0) translateY(-50%); }
  .cat-card:has(input:checked)::after { transform: scale(1) translateY(-50%); }
  .cnw-title { font-size: .95rem; }
  .cnw-kpi-val { font-size: 1.25rem; }
}

/* ═══ MAP RÉSEAU : masquer les labels si vraiment trop petit ═══ */
@media (max-width: 480px) {
  .cnw-map text { font-size: 14px !important; }
}

/* ═══ NAVIGATION : hamburger menu hint sur mobile ═══ */
@media (max-width: 1100px) {
  .nav { padding: 0 5%; }
  .nav-lang { margin-left: auto; }
}
@media (max-width: 640px) {
  .nav { gap: .75rem; padding: 0 4%; }
  .nav-cta {
    padding: .5rem .9rem;
    font-size: .55rem;
    letter-spacing: .12em;
  }
  .nav-cta span { display: none; }
  .nav-cta::after { content: 'Contact'; font-weight: 700; }
  .nlb {
    padding: .35rem .55rem;
    font-size: .58rem;
    min-width: 2.1rem;
  }
  .nav-logo { height: 32px; width: 32px; }
}

/* ═══ HERO : ajustements mobile ═══ */
@media (max-width: 900px) {
  .hero-kpis { gap: 1.5rem; }
  .hero-kpis .kv { font-size: 2rem; }
}
@media (max-width: 640px) {
  .hero { padding-left: 5%; padding-right: 5%; padding-bottom: 3rem; }
  .hero-kpis { gap: 1rem; flex-wrap: wrap; justify-content: center; }
  .hero-kpis > div { min-width: 70px; }
  .hero-kpis .kv { font-size: 1.7rem; }
  .hero-kpis .kl { font-size: .55rem; }
  
  /* Scroll indicator un peu plus bas sur mobile */
  .hero-scr { bottom: 1.2rem; }
  .hero-scr-line { height: 24px; }
}

/* ═══ BANNIÈRE BUDAPEST (hero) responsive ═══ */
@media (max-width: 900px) {
  .sec-banner-title { font-size: clamp(1.2rem, 4vw, 1.8rem); }
  .sec-banner-tag { font-size: .6rem; letter-spacing: .18em; }
}

/* Éviter tout débordement horizontal sur mobile */
@media (max-width: 900px) {
  html, body { overflow-x: hidden; }
}

/* ═══════════════════════════════════════════════════════
   SECTION RÉSEAU MONDIAL — PLEINE LARGEUR (v111+)
═══════════════════════════════════════════════════════ */
.cnt-network-section {
  background: linear-gradient(180deg, var(--nv2) 0%, #07111f 100%);
  padding: 5rem 8%;
  position: relative;
  overflow: hidden;
}
.cnt-network-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,168,76,.3) 20%, rgba(232,102,26,.35) 50%, rgba(201,168,76,.3) 80%, transparent 100%);
}
.cnt-network-section::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(201,168,76,.2) 50%, transparent 100%);
}
.cnw-wrap {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

/* Override : dans la nouvelle section, ajustements */
.cnt-network-section .cnt-network {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.cnt-network-section .cnw-hdr {
  justify-content: center;
  text-align: center;
  margin-bottom: 2rem;
  flex-direction: column;
  gap: .8rem;
}
.cnt-network-section .cnw-title {
  font-size: 2.2rem;
}
.cnt-network-section .cnw-map {
  max-height: 480px;
}
.cnt-network-section .cnw-map svg {
  max-height: 480px;
}
.cnt-network-section .cnw-kpis {
  max-width: 800px;
  margin: 1.5rem auto 0;
}

@media (max-width: 900px) {
  .cnt-network-section { padding: 3.5rem 5%; }
  .cnt-network-section .cnw-title { font-size: 1.4rem; }
}
@media (max-width: 640px) {
  .cnt-network-section { padding: 2.5rem 5%; }
  .cnt-network-section .cnw-title { font-size: 1.15rem; }
}

/* ═══════════════════════════════════════════════════════
   BLOC CONFIANCE & CITATION — Comble le vide sous offices
═══════════════════════════════════════════════════════ */
.cnt-trust {
  margin-top: 2.2rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(201,168,76,.15);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

/* ─── Citation luxe ─── */
.ct-quote {
  position: relative;
  padding: 1.8rem 1.8rem 1.6rem 2.8rem;
  background: linear-gradient(135deg, rgba(232,102,26,.04) 0%, rgba(201,168,76,.06) 100%);
  border-left: 2px solid var(--or);
  border-radius: 2px;
  overflow: hidden;
}
.ct-quote::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 140px; height: 140px;
  background: radial-gradient(circle at 80% 20%, rgba(232,102,26,.08) 0%, transparent 70%);
  pointer-events: none;
}
.ct-quote-mark {
  position: absolute;
  top: -.4rem; left: .6rem;
  font-family: 'Cormorant Garamond', serif;
  font-size: 5rem;
  color: var(--or);
  opacity: .35;
  line-height: 1;
  font-weight: 700;
  pointer-events: none;
}
.ct-quote-txt {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--tx);
  font-style: italic;
  margin: 0 0 1.2rem 0;
  font-weight: 400;
}
.ct-quote-sig {
  position: relative;
  padding-top: .7rem;
}
.ct-quote-line {
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, var(--or) 0%, var(--gold) 100%);
  margin-bottom: .6rem;
}
.ct-quote-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  color: var(--gold);
  font-weight: 600;
  letter-spacing: .03em;
  margin-bottom: .2rem;
}
.ct-quote-role {
  font-size: .56rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--tx2);
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
}

/* ─── Grille certifications ─── */
.ct-certif {
  margin-top: .3rem;
}
.ct-certif-hdr {
  font-size: .62rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--or);
  font-weight: 700;
  margin-bottom: 1.1rem;
}
.ct-certif-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .7rem;
}
.ct-cert-item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .9rem 1rem;
  background: linear-gradient(135deg, rgba(201,168,76,.04) 0%, rgba(232,102,26,.02) 100%);
  border: 1px solid rgba(201,168,76,.15);
  border-radius: 2px;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  position: relative;
}
.ct-cert-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--or) 0%, var(--gold) 100%);
  opacity: 0;
  transition: opacity .3s;
}
.ct-cert-item:hover {
  border-color: rgba(201,168,76,.35);
  background: linear-gradient(135deg, rgba(201,168,76,.08) 0%, rgba(232,102,26,.04) 100%);
  transform: translateY(-1px);
}
.ct-cert-item:hover::before { opacity: 1; }
.ct-cert-ic {
  color: var(--gold);
  flex-shrink: 0;
  margin-top: 2px;
  transition: all .3s;
}
.ct-cert-item:hover .ct-cert-ic {
  color: var(--or);
  transform: scale(1.1);
}
.ct-cert-tx { flex: 1; min-width: 0; }
.ct-cert-t {
  font-size: .7rem;
  font-weight: 700;
  color: var(--tx);
  letter-spacing: .04em;
  margin-bottom: .2rem;
  line-height: 1.3;
}
.ct-cert-d {
  font-size: .56rem;
  color: var(--tx2);
  letter-spacing: .08em;
  line-height: 1.3;
}

/* Responsive */
@media (max-width: 900px) {
  .ct-certif-grid { grid-template-columns: 1fr 1fr; gap: .6rem; }
  .ct-quote-txt { font-size: 1rem; }
  .ct-quote { padding: 1.5rem 1.4rem 1.3rem 2.2rem; }
}
@media (max-width: 560px) {
  .ct-certif-grid { grid-template-columns: 1fr; }
  .ct-quote-mark { font-size: 4rem; }
  .ct-quote-txt { font-size: .95rem; }
  .cnt-trust { gap: 1.5rem; }
}

/* ═══════════════════════════════════════════════════════
   SECTION UNICOM ENERGY STORAGE SYSTEM (v116+)
   Thème officiel : vert sur fond sombre charbon
═══════════════════════════════════════════════════════ */
.bess-sec {
  --bess-green: #7ed957;
  --bess-green-dark: #4aa831;
  --bess-green-deep: #2d6b1a;
  --bess-bg: #1f2428;
  --bess-bg-dark: #141719;
  --bess-card: #2a3034;
  --bess-card-hl: #343a3f;
  --bess-text: #e8ebee;
  --bess-text-muted: #9ba2a9;

  position: relative;
  padding: 6rem 8% 5rem;
  background: linear-gradient(180deg, var(--bess-bg-dark) 0%, var(--bess-bg) 50%, var(--bess-bg-dark) 100%);
  color: var(--bess-text);
  overflow: hidden;
  isolation: isolate;
}
.bess-sec::before,
.bess-sec::after {
  content: '';
  position: absolute; left: 0; right: 0;
  height: 1px;
  z-index: 2;
  background: linear-gradient(90deg, transparent 0%, var(--bess-green) 50%, transparent 100%);
  opacity: .5;
}
.bess-sec::before { top: 0; }
.bess-sec::after { bottom: 0; }

/* Halos verts décoratifs */
.bess-halo {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
}
.bess-halo-1 {
  top: -150px; right: -150px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(126,217,87,.18) 0%, transparent 70%);
  animation: bessHaloFloat 10s ease-in-out infinite;
}
.bess-halo-2 {
  bottom: -150px; left: -100px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(74,168,49,.15) 0%, transparent 70%);
  animation: bessHaloFloat 12s ease-in-out infinite reverse;
}
@keyframes bessHaloFloat {
  0%, 100% { transform: translate(0,0) scale(1); opacity: .8; }
  50% { transform: translate(40px, -20px) scale(1.15); opacity: 1; }
}

/* Motif de points subtil */
.bess-dots-pattern {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(126,217,87,.05) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  z-index: 0;
  mask-image: radial-gradient(ellipse at center, #000 0%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 0%, transparent 80%);
}

.bess-wrap {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
}

/* Eyebrow vert partagé */
.bess-eyebrow {
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--bess-green);
  margin-bottom: 1rem;
}

/* Titre h2 partagé */
.bess-h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.6rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--bess-text);
  letter-spacing: -.01em;
  margin: 0 0 .6rem;
  text-transform: uppercase;
}
.bess-h2 em {
  font-style: normal;
  color: var(--bess-green);
}
.bess-h2-sub {
  color: var(--bess-green);
  font-size: .9rem;
  margin: 0;
  font-weight: 500;
}

/* ══════════════════════════════════════════════════
   HERO BESS
═══════════════════════════════════════════════════════ */
.bess-hero {
  text-align: center;
  margin-bottom: 5rem;
  position: relative;
}
.bess-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem;
  background: rgba(126,217,87,.1);
  border: 1px solid rgba(126,217,87,.4);
  border-radius: 30px;
  font-size: .58rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--bess-green);
  font-weight: 700;
  margin-bottom: 1.8rem;
}
.bess-hero-flag { font-size: .95rem; line-height: 1; }

/* Logo officiel */
.bess-logo {
  display: inline-flex;
  align-items: center;
  gap: .9rem;
  margin-bottom: 2rem;
  padding: 0 .5rem;
}
.bess-logo-ic {
  filter: drop-shadow(0 0 12px rgba(126,217,87,.4));
}
.bess-logo-brand {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.85rem;
  font-weight: 800;
  color: var(--bess-text);
  line-height: 1;
  letter-spacing: .01em;
}
.bess-logo-sub {
  font-family: 'Montserrat', sans-serif;
  font-size: .62rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--bess-text-muted);
  font-weight: 500;
  margin-top: .25rem;
}

/* Titre hero principal */
.bess-hero-title {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--bess-text);
  margin: 0 0 1.8rem;
  text-transform: uppercase;
  letter-spacing: -.015em;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.bess-hero-title em {
  font-style: normal;
  color: var(--bess-green);
}

.bess-hero-pills {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .5rem .9rem;
  margin-bottom: 1.3rem;
}
.bess-pill {
  font-size: .8rem;
  font-weight: 600;
  color: var(--bess-green);
  letter-spacing: .02em;
}
.bess-pill-sep {
  color: var(--bess-green);
  font-size: .5rem;
  opacity: .6;
}

.bess-hero-tagline {
  font-family: 'Montserrat', sans-serif;
  font-size: .85rem;
  color: var(--bess-text);
  font-weight: 300;
  letter-spacing: .04em;
  margin: 0 0 3rem;
  font-style: italic;
}

/* Image hero */
.bess-hero-img {
  position: relative;
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 
    0 30px 80px rgba(0,0,0,.6),
    0 0 0 1px rgba(126,217,87,.15);
}
.bess-hero-img img {
  width: 100%;
  height: auto;
  display: block;
}
.bess-hero-img-frame {
  position: absolute;
  inset: 0;
  pointer-events: none;
  border: 1px solid rgba(126,217,87,.2);
  border-radius: 6px;
  box-shadow: 0 0 50px rgba(126,217,87,.1) inset;
}

/* ══════════════════════════════════════════════════
   STATS EU : 120+ PROJETS
═══════════════════════════════════════════════════════ */
.bess-stats-eu {
  margin-bottom: 5rem;
  padding: 2.8rem 2.6rem;
  background: linear-gradient(135deg, var(--bess-bg) 0%, var(--bess-card) 100%);
  border: 1px solid rgba(126,217,87,.2);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.bess-stats-eu::before {
  content: '';
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(ellipse at 85% 50%, rgba(126,217,87,.08) 0%, transparent 50%),
    repeating-linear-gradient(45deg, transparent, transparent 40px, rgba(126,217,87,.02) 40px, rgba(126,217,87,.02) 80px);
  pointer-events: none;
}
.bess-stats-hdr {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  margin-bottom: 2rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(126,217,87,.15);
  position: relative;
}
.bess-stats-num {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(2.8rem, 6vw, 4.5rem);
  font-weight: 800;
  line-height: 1;
  color: var(--bess-text);
}
.bess-stats-num sup {
  color: var(--bess-green);
  font-size: .5em;
  vertical-align: super;
}
.bess-stats-lbl {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--bess-text);
  text-transform: uppercase;
  letter-spacing: .1em;
  line-height: 1.3;
  flex: 1;
  min-width: 200px;
}
.bess-stats-pwr {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--bess-green);
  letter-spacing: .02em;
  margin-left: auto;
}

.bess-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem 2rem;
  position: relative;
}
.bess-stat-region {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .55rem 0;
  transition: transform .25s;
}
.bess-stat-region:hover { transform: translateX(3px); }
.bess-stat-dot {
  width: 10px; height: 10px;
  background: var(--c);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--c);
  flex-shrink: 0;
  margin-top: 6px;
}
.bess-stat-region-n {
  font-size: .78rem;
  font-weight: 600;
  color: var(--bess-text);
  margin-bottom: .2rem;
  line-height: 1.3;
}
.bess-stat-region-v {
  font-size: .72rem;
  color: var(--bess-text-muted);
  font-weight: 400;
}
.bess-stat-hl {
  color: var(--bess-green) !important;
  font-weight: 700;
}

/* ══════════════════════════════════════════════════
   4 PILIERS CORE TECH
═══════════════════════════════════════════════════════ */
.bess-pillars {
  margin-bottom: 5rem;
}
.bess-pillars-hdr {
  text-align: center;
  margin-bottom: 2.5rem;
}
.bess-pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.1rem;
}
.bess-pillar {
  background: linear-gradient(180deg, rgba(126,217,87,.85) 0%, rgba(74,168,49,.9) 100%);
  border-radius: 10px;
  padding: 2rem 1.4rem 1.6rem;
  position: relative;
  transition: all .4s cubic-bezier(.4,0,.2,1);
  color: #1a1a1a;
  box-shadow: 0 10px 30px rgba(74,168,49,.15);
}
.bess-pillar::before {
  content: '';
  position: absolute;
  top: -20px; left: 50%;
  transform: translateX(-50%);
  width: 48px; height: 48px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 4px 16px rgba(0,0,0,.2);
  z-index: 1;
}
.bess-pillar-ic {
  position: absolute;
  top: -14px; left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--bess-green-dark);
}
.bess-pillar-t {
  margin-top: 1.2rem;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.4;
  color: #151515;
  text-align: center;
}
.bess-pillar:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(74,168,49,.35);
}
.bess-pillar:hover::before {
  background: #f0fff0;
}

/* ══════════════════════════════════════════════════
   DATA CENTERS
═══════════════════════════════════════════════════════ */
.bess-dc {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 3rem;
  margin-bottom: 5rem;
  align-items: center;
}
.bess-dc-needs-title {
  color: var(--bess-green);
  font-size: .85rem;
  font-weight: 600;
  margin-bottom: 1rem;
  margin-top: 1.4rem;
}
.bess-dc-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.bess-dc-list li {
  position: relative;
  padding-left: 1.4rem;
  margin-bottom: .7rem;
  font-size: .85rem;
  color: var(--bess-text);
  line-height: 1.5;
}
.bess-dc-list li::before {
  content: '';
  position: absolute;
  left: 0; top: .55rem;
  width: 6px; height: 6px;
  background: var(--bess-green);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--bess-green);
}
.bess-dc-right {
  position: relative;
}
.bess-dc-right img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  border: 1px solid rgba(126,217,87,.15);
  margin-bottom: 1.5rem;
}
.bess-dc-callout {
  background: linear-gradient(135deg, var(--bess-green-dark) 0%, var(--bess-green-deep) 100%);
  padding: 1.5rem 1.6rem;
  border-radius: 8px;
  position: relative;
  box-shadow: 0 10px 30px rgba(74,168,49,.2);
}
.bess-dc-callout-t {
  color: #bff5a2;
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.bess-dc-callout ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.bess-dc-callout li {
  position: relative;
  padding-left: 1.2rem;
  margin-bottom: .55rem;
  font-size: .82rem;
  color: #fff;
  line-height: 1.45;
}
.bess-dc-callout li::before {
  content: '';
  position: absolute;
  left: 0; top: .55rem;
  width: 5px; height: 5px;
  background: #fff;
  border-radius: 50%;
}

/* ══════════════════════════════════════════════════
   ROI / EARNINGS
═══════════════════════════════════════════════════════ */
.bess-roi {
  margin-bottom: 5rem;
}
.bess-roi-hdr {
  text-align: center;
  margin-bottom: 2.2rem;
}
.bess-roi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.bess-roi-card {
  background: rgba(126,217,87,.08);
  border: 1px solid rgba(126,217,87,.25);
  border-radius: 10px;
  padding: 1.8rem 1.4rem;
  position: relative;
  transition: all .35s cubic-bezier(.4,0,.2,1);
  overflow: hidden;
}
.bess-roi-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--bess-green), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s;
}
.bess-roi-card:hover {
  background: rgba(126,217,87,.15);
  border-color: var(--bess-green);
  transform: translateY(-4px);
}
.bess-roi-card:hover::before { transform: scaleX(1); }
.bess-roi-n {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.8rem;
  font-weight: 300;
  color: var(--bess-green);
  line-height: 1;
  margin-bottom: .8rem;
  letter-spacing: .02em;
}
.bess-roi-t {
  font-size: .95rem;
  font-weight: 700;
  color: var(--bess-text);
  line-height: 1.35;
}

/* ══════════════════════════════════════════════════
   PARTENAIRE : Service + Finance
═══════════════════════════════════════════════════════ */
.bess-partner {
  margin-bottom: 5rem;
}
.bess-partner-hdr {
  text-align: center;
  margin-bottom: 2.5rem;
}
.bess-partner-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.4rem;
}
.bess-partner-col {
  padding: 2rem 1.8rem;
  border-radius: 10px;
  position: relative;
}
.bess-partner-service {
  background: rgba(126,217,87,.09);
  border: 1px solid rgba(126,217,87,.3);
}
.bess-partner-finance {
  background: linear-gradient(135deg, var(--bess-green-dark) 0%, var(--bess-green-deep) 100%);
  color: #fff;
  box-shadow: 0 15px 40px rgba(74,168,49,.2);
}
.bess-partner-col-hdr {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1.1rem;
  background: #fff;
  color: var(--bess-green-dark);
  border-radius: 30px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 1.4rem;
  box-shadow: 0 3px 10px rgba(0,0,0,.2);
}
.bess-partner-service ul,
.bess-partner-finance-body {
  margin: 0;
  padding: 0;
  list-style: none;
}
.bess-partner-service li {
  position: relative;
  padding-left: 1.4rem;
  margin-bottom: .75rem;
  font-size: .88rem;
  color: var(--bess-text);
  line-height: 1.5;
}
.bess-partner-service li strong { color: var(--bess-green); }
.bess-partner-service li::before {
  content: '';
  position: absolute;
  left: 0; top: .55rem;
  width: 6px; height: 6px;
  background: var(--bess-green);
  border-radius: 50%;
  box-shadow: 0 0 6px var(--bess-green);
}
.bess-finance-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 3rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  margin-bottom: 1rem;
}
.bess-finance-num span {
  font-size: .9rem;
  font-weight: 400;
  margin-left: .4rem;
  opacity: .85;
}
.bess-partner-finance-body p {
  font-size: .88rem;
  line-height: 1.55;
  color: rgba(255,255,255,.95);
  margin: 0;
}

/* ══════════════════════════════════════════════════
   QUOTE IMPACT
═══════════════════════════════════════════════════════ */
.bess-quote {
  text-align: center;
  padding: 3rem 2rem;
  margin-bottom: 4rem;
  position: relative;
}
.bess-quote-icon {
  color: var(--bess-green);
  margin-bottom: 1rem;
  filter: drop-shadow(0 0 12px rgba(126,217,87,.4));
}
.bess-quote-tx {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.3rem, 2.4vw, 1.9rem);
  font-weight: 300;
  color: var(--bess-text);
  line-height: 1.35;
  margin: 0 auto;
  max-width: 780px;
  letter-spacing: -.01em;
}
.bess-quote-tx strong {
  color: var(--bess-green);
  font-weight: 700;
}
.bess-quote-line {
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--bess-green), transparent);
  margin: 1.8rem auto 0;
  border-radius: 2px;
}

/* ══════════════════════════════════════════════════
   CTA FINAL
═══════════════════════════════════════════════════════ */
.bess-cta-final {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 
    0 20px 60px rgba(0,0,0,.6),
    0 0 0 1px rgba(126,217,87,.3);
}
.bess-cta-final-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.bess-cta-final-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(.5) contrast(1.1);
}
.bess-cta-final-overlay {
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(ellipse at 30% 50%, rgba(10,20,15,.8) 0%, rgba(8,22,16,.95) 70%),
    linear-gradient(135deg, rgba(10,26,14,.85) 0%, rgba(14,40,24,.75) 50%, rgba(8,22,16,.9) 100%);
}
.bess-cta-final-inner {
  position: relative;
  z-index: 2;
  padding: 4rem 3rem;
  text-align: center;
}
.bess-cta-final-h {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 1.2rem;
  text-transform: uppercase;
  letter-spacing: -.01em;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.bess-cta-final-h em {
  font-style: normal;
  color: var(--bess-green);
}
.bess-cta-final-p {
  font-size: 1rem;
  color: rgba(255,255,255,.85);
  margin: 0 auto 2rem;
  max-width: 640px;
  line-height: 1.55;
}
.bess-cta-final-btns {
  display: inline-flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

/* Boutons */
.bess-btn {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: 1rem 1.8rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  white-space: nowrap;
}
.bess-btn-pri {
  background: linear-gradient(135deg, var(--bess-green) 0%, var(--bess-green-dark) 100%);
  color: #0f1a08;
  box-shadow: 0 8px 24px rgba(126,217,87,.4);
}
.bess-btn-pri:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(126,217,87,.6);
  filter: brightness(1.1);
}
.bess-btn-pri svg { transition: transform .3s; }
.bess-btn-pri:hover svg { transform: translateX(4px); }
.bess-btn-sec {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.4);
}
.bess-btn-sec:hover {
  background: rgba(255,255,255,.1);
  border-color: #fff;
}

/* ══════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .bess-pillars-grid { grid-template-columns: 1fr 1fr; }
  .bess-roi-grid { grid-template-columns: 1fr 1fr; }
  .bess-dc { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (max-width: 900px) {
  .bess-sec { padding: 4.5rem 6% 3.5rem; }
  .bess-stats-hdr { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .bess-stats-pwr { margin-left: 0; }
  .bess-partner-cols { grid-template-columns: 1fr; }
  .bess-cta-final-inner { padding: 3rem 1.8rem; }
  .bess-hero-title { font-size: 1.8rem; }
  .bess-hero-pills { gap: .3rem .6rem; }
  .bess-pill { font-size: .7rem; }
}
@media (max-width: 640px) {
  .bess-sec { padding: 3.5rem 5% 2.8rem; }
  .bess-pillars-grid,
  .bess-roi-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .bess-pillar { padding: 1.8rem 1.4rem 1.4rem; }
  .bess-stats-eu { padding: 1.8rem 1.4rem; }
  .bess-stats-num { font-size: 3rem; }
  .bess-logo-brand { font-size: 1.45rem; }
  .bess-logo-sub { font-size: .55rem; letter-spacing: .2em; }
  .bess-cta-final-btns { flex-direction: column; width: 100%; }
  .bess-btn { width: 100%; justify-content: center; }
  .bess-finance-num { font-size: 2.2rem; }
}

/* ═══════════════════════════════════════════════════════
   LIEN EXTERNE DISCRET SOUS CTA BESS + badge nav
═══════════════════════════════════════════════════════ */
.bess-ext-link {
  margin-top: 1.8rem;
  font-size: .75rem;
  color: rgba(255,255,255,.65);
  letter-spacing: .02em;
  text-align: center;
}
.bess-ext-link a {
  color: var(--bess-green);
  text-decoration: none;
  font-weight: 600;
  margin-left: .3rem;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  transition: color .25s, text-shadow .25s;
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
}
.bess-ext-link a:hover {
  color: #a8e88a;
  text-shadow: 0 0 8px rgba(168,232,138,.4);
  border-bottom-color: rgba(168,232,138,.5);
}
.bess-ext-link a svg { flex-shrink: 0; opacity: .8; }

/* ═══════════════════════════════════════════════════════
   BESS nav — point vert + trait vert UNIQUEMENT AU HOVER
═══════════════════════════════════════════════════════ */
.nl-bess .bess-dot-top {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%) scale(0);
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #a8e88a 0%, #7ed957 60%, #4aa831 100%);
  border-radius: 50%;
  box-shadow: 
    0 0 6px #7ed957,
    0 0 12px rgba(126,217,87,.6);
  opacity: 0;
  transition: opacity .3s, transform .35s cubic-bezier(.4,0,.2,1);
  z-index: 5;
  pointer-events: none;
}

.nl-bess .bess-underline {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, #7ed957 30%, #a8e88a 50%, #7ed957 70%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(126,217,87,.8);
  opacity: 0;
  transition: width .45s cubic-bezier(.4,0,.2,1), opacity .3s;
  z-index: 5;
  pointer-events: none;
}

/* AU HOVER : apparition animée */
.nl-bess:hover .bess-dot-top {
  opacity: 1;
  transform: translateX(-50%) scale(1);
  animation: bessDotPulse 2s ease-in-out infinite .3s;
}
.nl-bess:hover .bess-underline {
  width: 38px;
  opacity: 1;
  animation: bessLinePulse 2.4s ease-in-out infinite .3s;
}

@keyframes bessDotPulse {
  0%, 100% { opacity: 1; transform: translateX(-50%) scale(1); }
  50%      { opacity: .55; transform: translateX(-50%) scale(.75); }
}
@keyframes bessLinePulse {
  0%, 100% { opacity: .85; }
  50%      { opacity: 1; }
}
