:root{
    --royal:#0A2472;
    --royal-2:#12409E;
    --royal-deep:#061845;
    --gold:#C9972B;
    --gold-light:#E7C170;
    --gold-soft:#FBF3E1;
    --gold-deep:#6E5116;
    --gold-mid:#B8862A;
    --ink:#0E1440;
    --slate:#4B5578;
    --paper:#FFFFFF;
    --mist:#FCFAF4;
    --line:#EDE2C8;
    --shadow: 0 24px 55px -22px rgba(105,80,20,0.3);
    --shadow-gold: 0 18px 40px -16px rgba(201,151,43,0.4);
    --container: 1240px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Inter',sans-serif;
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{text-decoration:none;color:inherit;}
  ul{list-style:none;margin:0;padding:0;}
  h1,h2,h3,h4{font-family:'Fraunces',serif;margin:0;line-height:1.08;font-weight:600;color:var(--royal);}
  .shimmer-gold{
    background:linear-gradient(100deg, var(--gold) 20%, var(--gold-light) 40%, #fff6e0 50%, var(--gold-light) 60%, var(--gold) 80%);
    background-size:250% auto;
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    animation:shimmer 5s linear infinite;
  }
  @keyframes shimmer{to{background-position:-250% center;}}
  [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s cubic-bezier(.16,.8,.3,1);}
  [data-reveal].in-view{opacity:1;transform:translateY(0);}
  [data-reveal="scale"]{transform:scale(.94) translateY(0);}
  [data-reveal="scale"].in-view{transform:scale(1) translateY(0);}
  @media (prefers-reduced-motion: reduce){
    [data-reveal]{opacity:1;transform:none;transition:none;}
  }
  .no-js [data-reveal]{opacity:1;transform:none;}
  .scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));width:0%;z-index:300;transition:width .1s linear;}
  .back-to-top{
    position:fixed;bottom:26px;right:96px;width:48px;height:48px;border-radius:50%;
    background:#fff;border:1.5px solid var(--gold);color:var(--royal);display:flex;align-items:center;justify-content:center;
    box-shadow:var(--shadow);z-index:200;opacity:0;pointer-events:none;transition:.3s;font-size:16px;
  }
  .back-to-top.show{opacity:1;pointer-events:auto;}
  .back-to-top:hover{background:var(--gold);color:#fff;transform:translateY(-3px);}
  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:700;
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1.5px;background:var(--gold);
    display:inline-block;
  }
  .container{max-width:var(--container);margin:0 auto;padding:0 28px;}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:15px 28px;
    border-radius:3px;
    font-weight:600;
    font-size:14.5px;
    letter-spacing:.01em;
    cursor:pointer;
    border:1.5px solid transparent;
    transition:all .25s ease;
    white-space:nowrap;
  }
  .btn-gold{background:var(--gold);color:var(--royal-deep);}
  .btn-gold:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 12px 24px -10px rgba(201,151,43,.55);}
  .btn-outline-royal{border-color:rgba(255,255,255,.35);color:var(--paper);}
  .btn-outline-royal:hover{border-color:var(--gold);color:var(--gold);}
  .btn-outline-dark{border-color:var(--line);color:var(--ink);}
  .btn-outline-dark:hover{border-color:var(--gold);color:var(--royal);background:var(--gold-soft);}
  .btn-royal{background:#d4af37;border-color:transparent;color:var(--royal);}
  .btn-royal:hover{background:var(--gold);border-color:var(--gold);color:var(--royal-deep);transform:translateY(-2px);box-shadow:var(--shadow-gold);}
  section{position:relative;}

  /* ============ TOPBAR ============ */
  .topbar{
    background:var(--gold-deep);
    color:rgba(255,255,255,.88);
    font-size:12.5px;
    padding:9px 0;
  }
  .topbar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
  .topbar-left{display:flex;gap:22px;flex-wrap:wrap;}
  .topbar-left span, .topbar-left a{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.82);}
  .topbar-left a:hover{color:var(--gold-light);}
  .topbar-right{display:flex;align-items:center;gap:16px;}
  .topbar-right a{width:26px;height:26px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:.2s;}
  .topbar-right a:hover{background:var(--gold);border-color:var(--gold);color:var(--royal-deep);}
  .dot-icon{width:6px;height:6px;border-radius:50%;background:var(--gold);}

  /* ============ HEADER ============ */
  header.site-header{
    position:sticky;top:0;z-index:100;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
  .logo{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--ink);}
  .logo .mark{
    width:38px;height:38px;border-radius:8px;
    background:linear-gradient(145deg,var(--gold-mid),var(--gold-deep));
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-weight:700;font-size:17px;
    border:none;
  }
  .logo small{display:block;font-family:'Inter';font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-top:1px;}
  nav.main-nav ul{display:flex;gap:34px;align-items:center;}
  nav.main-nav a{font-size:14.5px;font-weight:600;color:var(--ink);position:relative;padding:6px 0;}
  nav.main-nav a::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--gold);transition:.25s;
  }
  .logo-circle {
  width: 60px;              /* taille du cercle */
  height: 60px;
  border-radius: 10%;        /* cercle parfait */
  overflow: hidden;
  border: 2px solid #d4af37; /* halo doré premium */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15); /* ombre douce */
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;          /* fond neutre derrière le logo */
}

.logo-img {
  width: 250%;
  height: 250%;
         /* garde les proportions du logo */
}

  nav.main-nav a:hover::after{width:100%;}
  .nav-actions{display:flex;align-items:center;gap:18px;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
  .burger span{width:24px;height:2px;background:var(--ink);}

  /* ============ HERO ============ */
  .hero{
    /* Pour l'image de fond : dépose ton fichier à cet emplacement exact :
       blessings-consulting/images/hero-bg.jpg
       Tant que le fichier n'existe pas, le dégradé ivoire s'affiche seul
       (aucune erreur). Le dégradé garde le titre bleu roi lisible par-dessus
       la photo — n'hésite pas à me redemander si tu veux l'assombrir ou
       l'éclaircir une fois ta photo en place. */
    background:
      linear-gradient(180deg, rgba(252,250,244,.9), rgba(252,250,244,.96)) center/cover no-repeat,
      url('../images/BLESSING.png') center/cover no-repeat var(--mist);
    overflow:hidden;
    padding:76px 0 0;
  }
  .hero .container{
    display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;
  }
  .hero h1{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.01em;margin:18px 0 22px;}
  .hero h1 em{font-style:italic;color:var(--royal);font-weight:500;}
  .hero p.lead{font-size:17px;line-height:1.7;color:var(--slate);max-width:520px;margin-bottom:30px;}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
  .hero-trust{display:flex;gap:26px;flex-wrap:wrap;padding:22px 0 40px;border-top:1px solid var(--line);}
  .hero-trust div{font-size:12px;color:var(--slate);}
  .hero-trust strong{display:block;font-family:'Fraunces',serif;font-size:21px;color:var(--royal);font-weight:600;}

  /* signature capital-flow visual */
  .flow-visual{position:relative;height:480px;display:flex;align-items:center;justify-content:center;}
  .flow-visual::before{
    content:"";position:absolute;inset:6%;border-radius:50%;
    background:radial-gradient(circle, rgba(201,151,43,.16) 0%, rgba(201,151,43,.05) 45%, transparent 70%);
    filter:blur(4px);animation:halo 6s ease-in-out infinite;
  }
  @keyframes halo{0%,100%{transform:scale(1);opacity:.9;}50%{transform:scale(1.06);opacity:1;}}
  .flow-visual svg{width:100%;height:100%;overflow:visible;position:relative;z-index:1;}
  .flow-ring{fill:none;stroke:rgba(201,151,43,.18);}
  .flow-path{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-dasharray:6 7;opacity:.75;animation:dash 26s linear infinite;}
  @keyframes dash{to{stroke-dashoffset:-600;}}
  .flow-node circle.pulse{fill:var(--gold);opacity:.35;transform-origin:center;animation:pulse 2.4s ease-out infinite;}
  .flow-node circle.core{fill:var(--gold);}
  @keyframes pulse{0%{transform:scale(.5);opacity:.55;}100%{transform:scale(2.6);opacity:0;}}
  .flow-hub circle{fill:var(--gold-deep);}
  .flow-hub circle.ring{fill:none;stroke:var(--gold);stroke-width:2;}
  .flow-label{
    position:absolute;background:#fff;border:1px solid var(--line);border-radius:8px;
    padding:8px 12px;box-shadow:var(--shadow);font-size:11.5px;font-weight:600;color:var(--ink);
    display:flex;flex-direction:column;gap:1px;min-width:118px;
  }
  .flow-label span{font-family:'Space Mono',monospace;font-size:10px;color:var(--gold);font-weight:700;letter-spacing:.03em;}
  .flow-label.hub{background:#fff;color:var(--royal);border-color:var(--royal);border-width:1.5px;}
  .flow-label.hub span{color:var(--gold);}
  .fl-casa{top:38%;left:2%;}
  .fl-abj{top:6%;left:28%;}
  .fl-dxb{top:8%;right:0%;}
  .fl-doh{bottom:8%;right:6%;}
  .fl-lux{bottom:2%;left:20%;}

  /* ============ STATS BAND ============ */
  .stats-band{
    background:linear-gradient(180deg, var(--gold-soft) 0%, #fff 100%);
    padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;
  }
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
  .stat-item{text-align:center;border-left:1px solid var(--line);padding-left:30px;}
  .stat-item:first-child{border-left:none;padding-left:0;}
  .stat-item .num{font-family:'Fraunces',serif;font-size:clamp(30px,3.2vw,44px);color:#d4af37;font-weight:700;}
  .stat-item .lbl{font-size:12.5px;color:var(--slate);margin-top:6px;letter-spacing:.03em;}

  /* ============ MARQUEE ============ */
  .marquee-wrap{background:#d4af37;border-bottom:1px solid var(--line);padding:20px 0;overflow:hidden;}
  .marquee-track{display:flex;gap:56px;white-space:nowrap;animation:scroll 32s linear infinite;width:max-content;}
  .marquee-track span{font-family:'Space Mono',monospace;font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:var(--slate);display:inline-flex;align-items:center;gap:10px;}
  .marquee-track span::before{content:"◆";color:var(--gold);font-size:8px;}
  @keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  /* ============ SECTION HEADINGS ============ */
  .sec-head{max-width:640px;margin-bottom:52px;}
  .sec-head h2{font-size:clamp(26px,3vw,38px);margin-top:14px;}
  .sec-head p{color:var(--slate);font-size:15.5px;margin-top:14px;line-height:1.7;}
  .sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}

  section.pad{padding:100px 0;}

  /* ============ POLES GRID ============ */
  .poles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
  margin-top: 40px;
}

.pole-card {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-align: center;
}

.pole-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.15);
}

.pole-num {
  display: inline-block;
  font-size: 18px;
  font-weight: bold;
  color: #d4af37; /* doré premium */
  margin-bottom: 12px;
}

.pole-icon {
  font-size: 32px;
  color: #002366; /* bleu LinkedIn par ex. */
  margin-bottom: 12px;
}

.pole-card h3 {
  font-size: 20px;
  margin-bottom: 12px;
  color: #222;
}

.pole-card p {
  font-size: 15px;
  color: #555;
  line-height: 1.6;
  margin-bottom: 16px;
}

.pole-card .more {
  display: inline-block;
  font-weight: bold;
  color: #d4af37;
  text-decoration: none;
  transition: color 0.3s ease;
}

.pole-card .more:hover {
  color: #b38e2e;
}


  /* ============ GUICHETS (2 cards) ============ */
  .guichets{background:var(--mist);}
  .guichet-grid{display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;}
  .guichet-card{background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  padding: 20px;
  max-width: 320px;
  text-align: center;
  transition: transform 0.3s ease;}
  .guichet-card:hover {
  transform: translateY(-5px);
}
  .guichet-card.featured{background:linear-gradient(150deg,var(--gold-deep),var(--gold-mid));color:#fff;border:none;}
  .guichet-tag{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:700;}
  .guichet-card.featured .guichet-tag{color:#fff;}
  .guichet-card h3{margin: 10px 0;
  font-size: 1.4rem;}
  .guichet-plafond{font-size: 1.2rem;
  font-weight: bold;
  margin: 10px 0;
  color: #333;}
  .guichet-card.featured .guichet-plafond{color:#fff;}
  .guichet-plafond small{font-family:'Inter';font-size:13px;color:var(--slate);font-weight:500;}
  .guichet-card.featured .guichet-plafond small{color:rgba(255,255,255,.65);}
  .guichet-list{list-style: none;
  padding: 0;
  margin: 15px 0;}
  .guichet-list li{margin: 6px 0;
  font-size: 0.95rem;}
  .guichet-list li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);margin-top:7px;flex-shrink:0;}
  .guichet-note{margin-top:30px;font-size:12px;color:var(--slate);border-top:1px dashed var(--line);padding-top:18px;}
  .guichet-card.featured .guichet-note{color:rgba(255,255,255,.6);border-top-color:rgba(255,255,255,.2);}
  .guichet-card.featured .btn-gold{background:#fff;color:var(--gold-deep);}
  .guichet-card.featured .btn-gold:hover{background:var(--royal);color:#fff;}
.btn {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 25px;
  text-decoration: none;
  font-weight: 600;
}

.btn-outline-dark {
  border: 2px solid #333;
  color: #333;
}

.btn-gold {
  background: linear-gradient(45deg, #d4af37, #f5d76e);
  color: #fff;
  border: none;
}
  /* ============ PROCESS ============ */
  .process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px;
  margin-top: 40px;
}

.process-step {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  text-align: center;
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.process-step:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.15);
}

.step-num {
  font-size: 20px;
  font-weight: bold;
  color: #d4af37; /* doré premium */
  margin-bottom: 12px;
}

.step-img {
  width: 100%;
  height: 160px;
  margin-bottom: 16px;
  border-radius: 12px;
  overflow: hidden;
}

.step-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.process-step h4 {
  font-size: 18px;
  color: #002366; /* bleu roi */
  margin-bottom: 12px;
}

.process-step p {
  font-size: 15px;
  color: #555;
  line-height: 1.6;
}


  /* ============ VISION / WHY ============ */
  .vision{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;}
  .vision-visual{
    aspect-ratio:4/5;border-radius:10px;
    background:linear-gradient(160deg,var(--gold-deep) 0%,var(--gold-mid) 55%,var(--gold) 100%);
    position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:34px;
  }
  .vision-visual::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(circle at 20% 20%, rgba(233,200,119,.18), transparent 40%),
      repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, transparent 2px 26px);
  }
  .vision-quote{position:relative;z-index:1;color:#fff;}
  .vision-quote .initials{
    width:56px;height:56px;border-radius:50%;border:1.5px solid var(--gold);
    display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:20px;color:var(--gold-light);margin-bottom:18px;
  }
  .vision-quote p{font-family:'Fraunces',serif;font-style:italic;font-size:18px;line-height:1.55;color:#fff;font-weight:400;}
  .vision-quote .who{margin-top:16px;font-size:12.5px;color:rgba(255,255,255,.65);font-family:'Inter';}
  .vision-quote .who strong{color:var(--gold-light);display:block;font-family:'Inter';font-weight:700;font-size:13.5px;}

  .vision-content .pillars{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:34px;}
  .pillar{border-top:2px solid var(--gold);padding-top:14px;}
  .pillar h4{font-size:15.5px;margin-bottom:8px;}
  .pillar p{font-size:13.5px;color:var(--slate);line-height:1.6;}
  .vision-counters{display:flex;gap:36px;margin-top:38px;padding-top:30px;border-top:1px solid var(--line);}
  .vision-counters .num{font-family:'Fraunces',serif;font-size:30px;color:var(--royal);font-weight:600;}
  .vision-counters .lbl{font-size:11.5px;color:var(--slate);margin-top:2px;}

  /* ============ PRESENCE / MAP BADGES ============ */
  .presence{background:var(--gold-soft);}
  .presence .sec-head h2{color:var(--royal);}
  .presence .sec-head p{color:var(--slate);}
  .country-row{display:grid;grid-template-columns:repeat(9,1fr);gap:14px;}
  .country-chip{
    border:1px solid var(--line);background:#fff;border-radius:8px;padding:18px 10px;text-align:center;
    transition:.25s;
  }
  .country-chip:hover{border-color:var(--gold);box-shadow:var(--shadow-gold);transform:translateY(-4px);}
  .country-chip .flag{
    width:38px;height:38px;border-radius:50%;margin:0 auto 12px;
    background:var(--gold-soft);border:1px solid var(--gold);color:var(--royal);
    display:flex;align-items:center;justify-content:center;
    font-family:'Space Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.02em;
  }
  .flag {
  width: 120px;              /* taille du cadre */
  height: 120px;
  border-radius: 50%;        /* cercle parfait */
  overflow: hidden;          /* masque ce qui dépasse */
  margin: 0 auto 12px auto;  /* centre horizontalement + espace en bas */
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid #fff;    /* optionnel : bordure élégante */
}

.flag img {
  width: 100%;
  height: 100%;
  object-fit: cover;         /* garde un rendu propre */
}

  .country-chip span{font-size:11.5px;color:var(--royal);font-weight:600;}

  /* ============ PARTNERS ============ */
  .partners-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
}
  .partner-chip{
    border:1px solid var(--line);border-radius:6px;padding:22px 14px;text-align:center;
    font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.03em;color:var(--slate);font-weight:700;
    transition:.25s;
  }
  .partner-chip:hover{border-color:var(--royal);color:var(--royal);background:var(--mist);}

  /* ============ PARTNER LOGO LINKS ============ */
  .partner-logo-link{display:block;position:relative;}
  .partner-logo-link .img-placeholder{transition:.25s;cursor:pointer;}
  .partner-logo-link:hover .img-placeholder{
    border-color:var(--royal);box-shadow:0 14px 28px -14px rgba(10,36,114,.3);transform:translateY(-3px);
  }
  .img-placeholder.ph-logo {
  border: 1px solid #ddd; /* bordure grise fine */
}

  .partner-logo-link:hover .ph-label{color:var(--royal);}
  .partner-logo-link .ph-dim{display:flex;align-items:center;gap:4px;}
  .partner-logo-link .ph-dim::after{content:"↗";font-size:11px;}
  /* Partenaires dont le lien officiel n'a pas pu être confirmé : visuel neutre
     et étiquette explicite, pour ne jamais faire croire à un lien actif. */
  .partner-logo-link.pending{cursor:default;}
  .partner-logo-link.pending .img-placeholder{border-style:dashed;border-color:var(--line);background:var(--mist);}
  .partner-logo-link.pending .ph-label{color:var(--slate);}
  .partner-logo-link.pending .ph-dim{color:var(--slate);font-style:italic;}
  .partner-logo-link.pending .ph-dim::after{content:"";}
  .partner-logo-link.pending:hover .img-placeholder{transform:none;box-shadow:none;border-color:var(--gold);}
  .partner-logo-link.pending:hover .ph-label{color:var(--royal);}

  /* ============ MISSIONS / CREDIBILITY QUOTES ============ */
  .missions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .mission-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px;}
  .mission-card .tag{font-family:'Space Mono',monospace;font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;font-weight:700;}
  .mission-card h4{font-size:16px;margin:12px 0 10px;}
  .mission-card p{font-size:13.5px;color:var(--slate);line-height:1.65;}

  /* ============ CTA BANNER ============ */
  .cta-banner{
    background:linear-gradient(120deg,var(--gold-deep),var(--gold-mid) 60%, var(--gold));
    padding:80px 0;text-align:center;position:relative;overflow:hidden;
  }
  .cta-banner::before{
    content:"";position:absolute;width:600px;height:600px;border-radius:50%;
    border:1px solid rgba(233,200,119,.15);top:-300px;right:-200px;
  }
  .cta-banner .eyebrow{color:#fff;}
  .cta-banner .eyebrow::before{background:#fff;}
  .cta-banner h2{color:#fff;font-size:clamp(26px,3.4vw,42px);max-width:680px;margin:16px auto 30px;}
  .cta-banner-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
  .cta-banner .btn-gold{background:#fff;color:var(--gold-deep);}
  .cta-banner .btn-gold:hover{background:var(--royal);color:#fff;}

  /* ============ FOOTER ============ */
  footer{background:var(--gold-deep);color:rgba(255,255,255,.75);padding:76px 0 0;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.1);}
  .footer-logo{display:flex;align-items:center;gap:10px;color:#fff;font-family:'Fraunces',serif;font-size:20px;margin-bottom:16px;}
  .footer-logo .mark{width:34px;height:34px;border-radius:8px;border:1px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;}
  .footer-about p{font-size:13.5px;line-height:1.7;color:rgba(255,255,255,.55);max-width:280px;}
  .footer-social{display:flex;gap:10px;margin-top:20px;}
  .footer-social a{width:32px;height:32px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;transition:.2s;}
  .footer-social a:hover{background:#fff;border-color:#fff;color:var(--gold-deep);}
  .social-icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.social-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: transform 0.3s ease, opacity 0.3s ease;
  color: white; /* couleur des icônes */
  font-size: 20px;
}

.social-circle.facebook {
  background: #1877f2; /* bleu Facebook */
}

.social-circle.whatsapp {
  background: #25D366; /* vert WhatsApp */
}
.social-circle.linkedin { background: #0a66c2; }  /* bleu LinkedIn */
.social-circle.tiktok   { background: #000000; }  /* noir TikTok */
.social-circle:hover {
  transform: scale(1.1);
  opacity: 0.9;
}

  footer h5{color:#fff;font-family:'Inter';font-size:13.5px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:20px;font-weight:700;}
  footer .footer-links li{margin-bottom:12px;font-size:13.5px;}
  footer .footer-links a:hover{color:#fff;}
  footer .footer-links.contact li{display:flex;gap:9px;color:rgba(255,255,255,.6);}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:26px 0;font-size:12.5px;color:rgba(255,255,255,.45);flex-wrap:wrap;gap:10px;}
  .footer-bottom a{color:rgba(255,255,255,.45);}
  .footer-bottom a:hover{color:#fff;}

  /* ============ BREADCRUMB ============ */
  .breadcrumb{background:var(--mist);border-bottom:1px solid var(--line);padding:14px 0;}
  .breadcrumb .container{font-size:12.5px;color:var(--slate);display:flex;gap:8px;align-items:center;}
  .breadcrumb a{color:var(--royal);font-weight:600;}
  .breadcrumb a:hover{color:var(--gold);}
  .breadcrumb .sep{color:var(--gold);}
  .breadcrumb .current{color:var(--slate);}

  /* ============ NAV ACTIVE ============ */
  nav.main-nav a.active{color:var(--royal);}
  nav.main-nav a.active::after{width:100%;}

  /* ============ PAGE HERO (pages intérieures) ============ */
  .page-hero{background:var(--mist);padding:56px 0 80px;overflow:hidden;}
  .page-hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
  .page-hero h1{font-size:clamp(30px,3.6vw,46px);margin:16px 0 18px;}
  .page-hero p.lead{font-size:16px;line-height:1.7;color:var(--slate);max-width:520px;}

  /* ============ CASE IMAGE (placeholder) ============ */
  .img-placeholder{
    border:1.5px dashed var(--gold);
    background:var(--gold-soft);
    border-radius:10px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:var(--royal);text-align:center;gap:10px;padding:24px;
    min-height:220px;position:relative;
  }
  .img-placeholder svg{width:32px;height:32px;opacity:.55;flex-shrink:0;}
  .img-placeholder .ph-label{font-size:12.5px;font-weight:700;color:var(--royal);}
  .img-placeholder .ph-sub{font-family:'Space Mono',monospace;font-size:10px;color:var(--slate);text-transform:uppercase;letter-spacing:.04em;max-width:220px;}
  .img-placeholder.ratio-wide{aspect-ratio:16/9;min-height:auto;}
  .img-placeholder.ratio-square{aspect-ratio:1/1;min-height:auto;}
  .img-placeholder.small{min-height:130px;padding:16px;}
  .img-placeholder.small svg{width:22px;height:22px;}
  .img-placeholder.small .ph-label{font-size:11px;}
  .img-placeholder.small .ph-sub{font-size:9px;}

  /* ============ OFFER CARD (voyages) ============ */
  .offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
  .offer-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:.3s;}
  .offer-card:hover{box-shadow:var(--shadow);transform:translateY(-5px);}
  .offer-card .offer-body{padding:28px;}
  .offer-card .offer-tag{font-family:'Space Mono',monospace;font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;font-weight:700;}
  .offer-card h3{font-size:20px;margin:10px 0 12px;}
  .offer-list{display:flex;flex-direction:column;gap:9px;margin:16px 0 20px;}
  .offer-list li{display:flex;gap:9px;font-size:13.5px;color:var(--slate);align-items:flex-start;}
  .offer-list li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);margin-top:7px;flex-shrink:0;}

  /* ============ FILIERE CARD (mise en relation) ============ */
  .filiere-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .filiere-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:.3s;}
  .filiere-card:hover{box-shadow:var(--shadow);transform:translateY(-5px);}
  .filiere-card .filiere-body{padding:24px;}
  .filiere-card h3{font-size:17px;margin-bottom:10px;}
  .filiere-card p{font-size:13.5px;color:var(--slate);line-height:1.6;}

  /* ============ CONTACT INFO CARD ============ */
  .contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .contact-info-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px;text-align:center;transition:.25s;}
  .contact-info-card:hover{border-color:var(--gold);box-shadow:var(--shadow-gold);transform:translateY(-4px);}
  .contact-info-card .ci-icon{width:44px;height:44px;border-radius:50%;background:var(--gold-soft);border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--royal);font-weight:700;font-size:15px;}
  .contact-info-card h4{font-size:14.5px;margin-bottom:6px;}
  .contact-info-card p{font-size:13px;color:var(--slate);}

  /* ============ FORM ============ */
  .contact-form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
  .form-group{display:flex;flex-direction:column;gap:7px;}
  .form-group.full{grid-column:1/-1;}
  .form-group label{font-size:12.5px;font-weight:700;color:var(--royal);}
  .form-group input, .form-group select, .form-group textarea{
    border:1.5px solid var(--line);border-radius:6px;padding:12px 14px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);
    background:#fff;transition:.2s;
  }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus{outline:none;border-color:var(--gold);}
  .form-group textarea{resize:vertical;min-height:120px;font-family:'Inter',sans-serif;}
  .form-honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none;}
  .form-note{font-size:12px;color:var(--slate);margin-top:18px;line-height:1.6;}
  .form-status{margin-top:16px;font-size:13.5px;font-weight:600;padding:12px 16px;border-radius:6px;display:none;}
  .form-status.show{display:block;}
  .form-status.success{background:var(--gold-soft);color:var(--royal);border:1px solid var(--gold);}

  /* ============ PRESIDENT BLOCK (a propos) ============ */
  .president-block{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center;}
  .president-bio h4{font-size:14px;color:var(--royal);margin:4px 0 2px;}
  .president-bio .role{font-size:12.5px;color:var(--slate);margin-bottom:20px;}
  .president-facts{display:flex;flex-direction:column;gap:12px;margin-top:22px;}
  .president-facts li{display:flex;gap:10px;font-size:13.5px;color:var(--slate);align-items:flex-start;}
  .president-facts li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);margin-top:7px;flex-shrink:0;}

  /* ============ RESPONSIVE (pages intérieures) ============ */
  @media (max-width:1080px){
    .offer-grid{grid-template-columns:1fr;}
    .filiere-grid{grid-template-columns:1fr 1fr;}
    .contact-grid{grid-template-columns:1fr 1fr;}
    .president-block{grid-template-columns:1fr;}
    .page-hero .container{grid-template-columns:1fr;}
  }
  @media (max-width:640px){
    .filiere-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }

  /* ============ WHATSAPP FLOAT ============ */
  .wa-float{
    position:fixed;bottom:26px;right:26px;width:56px;height:56px;border-radius:50%;
    background:#1EBE5B;display:flex;align-items:center;justify-content:center;color:#fff;
    box-shadow:0 10px 24px -6px rgba(30,190,91,.55);z-index:200;
  }
.wa-float:hover {
  transform: scale(1.1);
}
.wa-icon {
  width: 32px;
  height: 32px;
}
  /* ============ RESPONSIVE ============ */
  @media (max-width:1080px){
    .poles-grid{grid-template-columns:repeat(2,1fr);}
    .stats-grid{grid-template-columns:repeat(2,1fr);row-gap:26px;}
    .stat-item:nth-child(3){border-left:none;}
    .country-row{grid-template-columns:repeat(5,1fr);row-gap:14px;}
    .partners-grid{grid-template-columns:repeat(2,1fr);}
    .missions-grid{grid-template-columns:1fr;}
    .guichet-grid{grid-template-columns:1fr;}
    .process-grid{grid-template-columns:repeat(2,1fr);row-gap:36px;}
    .process-grid::before{display:none;}
    .vision{grid-template-columns:1fr;}
  }
  /* ============ IMAGE PLACEHOLDERS ============ */
  .img-placeholder{
    border:2px dashed var(--gold);
    background:var(--gold-soft);
    border-radius:10px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:8px;color:var(--royal);text-align:center;padding:18px;min-height:180px;
    width:100%;
  }
  .img-placeholder svg{width:30px;height:30px;color:var(--gold);flex-shrink:0;}
  .img-placeholder .ph-label{font-size:12.5px;font-weight:700;line-height:1.4;}
  .img-placeholder .ph-dim{font-family:'Space Mono',monospace;font-size:10.5px;color:var(--slate);}
  .ph-banner{aspect-ratio:21/8;}
  .ph-banner img {
  width: 150%;
  height: 110%;
  object-fit: cover;        /* l’image remplit le cadre */
  display: block;
}
  .ph-wide{aspect-ratio:16/9;}
  .ph-square{aspect-ratio:1/1;}
  .ph-portrait {
  width: 240px;              /* largeur du cadre */
  height: 320px;             /* hauteur du cadre */
  border-radius: 16px;       /* coins arrondis */
  overflow: hidden;
  border: 4px solid #d4af37; /* halo doré élégant */
  box-shadow: 0 6px 20px rgba(0,0,0,0.15); /* ombre douce */
  margin: 0 auto;
}

.ph-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;         /* l’image remplit tout le cadre */
  display: block;
}

  .ph-logo {
   position: relative;
  width: 200px;       /* largeur de la case */
  height: 140px;      /* hauteur de la case */
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end; /* texte en bas */
  text-align: center;
  color: #fff;
}

.ph-logo img {
  position: absolute;
  inset: 0;              /* occupe tout l’espace */
  width: 100%;
  height: 100%;
  object-fit: cover;      /* l’image remplit sans déformation */
  z-index: 0;
}
.ph-logo .ph-label,
.ph-logo .ph-dim {
  position: relative;
  z-index: 1;            /* texte au-dessus de l’image */
  background: rgba(0,0,0,0.4); /* voile sombre pour lisibilité */
  padding: 4px 8px;
  border-radius: 6px;
  margin: 4px auto;
}
  .ph-logo svg{width:20px;height:20px;}
  .ph-logo .ph-label{font-size:11px;}
  .ph-avatar{width: 180px;              /* taille du cadre */
  height: 180px;
  border-radius: 50%;        /* cercle parfait */
  overflow: hidden;          /* masque ce qui dépasse */
  margin: 0 auto 20px auto;  /* centre horizontalement + espace en bas */
  border: 4px solid #fff;    /* bordure blanche élégante */
  display: flex;
  align-items: center;
  justify-content: center;}
  .ph-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;         /* garde un rendu propre */
}
  .ph-avatar svg{width:22px;height:22px;}
  .ph-avatar .ph-dim{display:none;}
  .ph-avatar .ph-label{font-size:10px;padding:0 6px;}

  /* ============ INNER HERO (pages secondaires) ============ */
  .inner-hero{background:var(--mist);padding:56px 0 90px;}
  .breadcrumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--slate);margin-bottom:24px;justify-content:center;}
  .breadcrumb a{color:var(--royal);font-weight:600;}
  .breadcrumb a:hover{color:var(--gold);}
  .breadcrumb .sep{color:var(--gold);}
  .inner-hero-text{max-width:680px;margin:0 auto;text-align:center;}
  .inner-hero-text .eyebrow{justify-content:center;}
  .inner-hero-text h1{font-size:clamp(30px,4vw,46px);margin:16px 0 18px;}
  .inner-hero-text .lead{margin:0 auto;color:var(--slate);font-size:16px;line-height:1.7;max-width:560px;}
  .inner-hero-media{margin-top:44px;}

  /* ============ FILIERE CARDS (mise en relation) ============ */
  .filiere-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .filiere-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;}
  .filiere-card .filiere-body{padding:22px 24px 26px;}
  .filiere-card h3{font-size:17.5px;margin-bottom:8px;}
  .filiere-card p{font-size:13.5px;color:var(--slate);line-height:1.6;}

  /* ============ PILLAR ICON CARDS (astral lab) ============ */
  .pillar-icon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .pillar-icon-card{text-align:center;padding:38px 26px;border:1px solid var(--line);border-radius:8px;background:#fff;transition:.3s;}
  .pillar-icon-card:hover{box-shadow:var(--shadow);transform:translateY(-4px);}
  .pillar-icon-card .pillar-num{
    width:56px;height:56px;border-radius:50%;background:var(--gold-soft);border:1px solid var(--gold);color:var(--royal);
    display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:'Fraunces',serif;font-size:20px;font-weight:600;
  }
  .pillar-icon-card h3{font-size:17.5px;margin-bottom:10px;}
  .pillar-icon-card p{font-size:13.5px;color:var(--slate);line-height:1.6;}

  /* ============ TRAVEL PACK CARDS (voyages) ============ */
  .travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .travel-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;}
  .travel-card .travel-media{margin:20px 20px 0;}
  .travel-card .travel-body{padding:22px 24px 26px;}
  .travel-card .guichet-tag{color:var(--gold);}
  .travel-card h3{font-size:19px;margin:10px 0 10px;}
  .travel-card ul{margin-top:16px;display:flex;flex-direction:column;gap:9px;}
  .travel-card ul li{font-size:13.5px;color:var(--slate);display:flex;gap:8px;align-items:flex-start;}
  .travel-card ul li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);margin-top:7px;flex-shrink:0;}
  .destinations-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .destination-card{border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#fff;}
  .destination-card .dest-body{padding:14px 16px;}
  .destination-card h4{font-size:14.5px;}

  /* ============ BIO / PRESIDENT ============ */
  .bio-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:54px;align-items:start;}
  .bio-facts{margin-top:26px;display:flex;flex-direction:column;gap:15px;}
  .bio-facts li{font-size:14px;color:var(--slate);display:flex;gap:12px;}
  .bio-facts li strong{color:var(--royal);min-width:150px;display:inline-block;flex-shrink:0;}

  /* ============ CONTACT ============ */
  .contact-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;}
  .contact-info-card{background:var(--mist);border:1px solid var(--line);border-radius:8px;padding:32px;}
  .contact-info-card h3{font-size:17.5px;margin-bottom:20px;}
  .contact-info-list{display:flex;flex-direction:column;gap:18px;}
  .contact-info-list li{display:flex;gap:12px;font-size:13.5px;color:var(--slate);align-items:flex-start;}
  .contact-info-list li strong{color:var(--royal);display:block;font-size:12.5px;}
  .contact-map{margin-top:22px;}
  .contact-form{background:#fff;border:1px solid var(--line);border-radius:8px;padding:32px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .form-group{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
  .form-group label{font-size:12px;font-weight:700;color:var(--royal);letter-spacing:.02em;}
  .form-group input, .form-group select, .form-group textarea{
    border:1px solid var(--line);border-radius:5px;padding:12px 14px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);
    background:#fff;width:100%;
  }
  .form-group input:focus, .form-group select:focus, .form-group textarea:focus{outline:none;border-color:var(--gold);}
  .form-note{font-size:11.5px;color:var(--slate);margin-top:10px;line-height:1.6;}
  .honeypot-field{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden;}
  .form-msg{display:none;border-radius:6px;padding:14px 18px;font-size:13.5px;margin-top:16px;}
  .form-msg.show{display:block;}
  .form-msg.success{background:var(--gold-soft);border:1px solid var(--gold);color:var(--royal);}
  .form-msg.error{background:#FBEAEA;border:1px solid #E4A3A3;color:#8C2F2F;}

  /* ============ BUSINESS FIELDS (accueil) ============ */
  .fields-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .field-card{border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#fff;transition:.25s;}
  .field-card:hover{box-shadow:var(--shadow);transform:translateY(-4px);}
  .field-card .field-body{padding:18px 20px 22px;}
  .field-card h4{font-size:15.5px;margin-bottom:4px;}
  .field-card p{font-size:12.5px;color:var(--slate);}
  nav.main-nav a.active{color:var(--royal);}
  nav.main-nav a.active::after{width:100%;}

  @media (max-width:1080px){
    .filiere-grid{grid-template-columns:1fr 1fr;}
    .pillar-icon-grid{grid-template-columns:1fr 1fr;}
    .travel-grid{grid-template-columns:1fr;}
    .destinations-grid{grid-template-columns:repeat(2,1fr);}
    .bio-grid{grid-template-columns:1fr;}
    .contact-wrap{grid-template-columns:1fr;}
    .fields-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:640px){
    .filiere-grid{grid-template-columns:1fr;}
    .pillar-icon-grid{grid-template-columns:1fr;}
    .destinations-grid{grid-template-columns:1fr;}
    .fields-grid{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }

  @media (max-width:880px){
    nav.main-nav{position:fixed;top:0;right:-100%;width:78%;max-width:340px;height:100vh;background:#fff;
      flex-direction:column;padding:100px 32px 32px;transition:.35s;box-shadow:-10px 0 30px rgba(0,0,0,.1);}
    nav.main-nav.open{right:0;}
    nav.main-nav ul{flex-direction:column;align-items:flex-start;gap:22px;}
    .burger{display:flex;}
    .hero .container{grid-template-columns:1fr;}
    .flow-visual{height:360px;}
    .topbar-left span:nth-child(3),.topbar-left span:nth-child(4){display:none;}
    .hero-cta-secondary{display:none;}
  }
  @media (max-width:640px){
    .poles-grid{grid-template-columns:1fr;}
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    .country-row{grid-template-columns:repeat(3,1fr);}
    .partners-grid{grid-template-columns:1fr 1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .process-grid{grid-template-columns:1fr;}
    section.pad{padding:64px 0;}
  }
  /* ============================================================
   VAULTEDGE THEME INTEGRATION — Blessings Consulting
   ------------------------------------------------------------
   À COLLER À LA TOUTE FIN de votre css/style.css existant
   (ou à lier via un <link> chargé APRÈS style.css).
   Grâce à la cascade CSS, ce bloc écrase uniquement les couleurs,
   polices et quelques composants — aucune balise HTML n'est
   modifiée, aucun contenu n'est touché.
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=DM+Sans:wght@300;400;500;600&display=swap");

/* ---- 1. JETONS DE COULEUR — identité VaultEdge (marine + or) ---- */
:root{
  --royal:#0d1b2a;        /* était #0A2472 → marine très sombre VaultEdge */
  --royal-2:#1a2f4b;       /* accent marine moyen */
  --royal-deep:#0d1b2a;
  --gold:#d4a017;          /* était #C9972B → or VaultEdge */
  --gold-light:#e8b84b;
  --gold-soft:#FBF1DE;
  --gold-deep:#0d1b2a;     /* fonds d'ancrage (footer/CTA/topbar) → marine VaultEdge, pas de bleu roi vif */
  --gold-mid:#162032;
  --ink:#0d1b2a;
  --slate:#4a5568;
  --paper:#FFFFFF;
  --mist:#f4f7fb;
  --line:#e2e8f0;
  --shadow: 0 8px 30px rgba(13,27,42,0.10);
  --shadow-gold: 0 8px 25px rgba(212,160,23,0.35);
}

/* ---- 2. TYPOGRAPHIE — Nunito (titres) + DM Sans (texte) ----
   Remplace Fraunces/Inter/Space Mono. Si vous préférez garder
   Fraunces pour les titres, supprimez simplement ce bloc §2. */
body{ font-family:'DM Sans', sans-serif; }
h1, h2, h3, h4, .logo, .vision-quote p{
  font-family:'Nunito', sans-serif !important;
  font-weight:900;
}
.eyebrow, .pole-num, .stat-item .num, .vision-counters .num,
.guichet-plafond, .flow-label span{
  font-family:'Nunito', sans-serif;
}

/* ---- 3. BADGES "EYEBROW" → pastille pilule (façon ve-section-tag) ---- */
.eyebrow{
  background:rgba(212,160,23,0.1);
  border:1px solid rgba(212,160,23,0.3);
  border-radius:50px;
  padding:6px 16px;
  color:var(--gold);
}
.eyebrow::before{ display:none; } /* on retire le tiret, remplacé par la pilule */

/* ---- 4. MARQUEE / BANDEAU DE CONFIANCE → fond or plein (façon ve-trust-bar) ---- */
.marquee-wrap{ background:var(--gold); border:none; padding:14px 0; }
.marquee-track{ animation-duration:25s; }
.marquee-track span{ color:var(--royal); font-weight:700; }
.marquee-track span::before{ color:var(--royal); }

/* ---- 5. BOUTONS — lift + glow au survol (façon ve-btn-primary) ---- */
.btn{ border-radius:8px; }
.btn-gold:hover{
  background:var(--gold-light);
  transform:translateY(-2px);
  box-shadow:var(--shadow-gold);
}

/* ---- 5bis. En-tête : ombre au scroll (classe posée par main.js) ---- */
.site-header.scrolled{ box-shadow:0 8px 24px -18px rgba(13,27,42,0.45); }

/* ---- 5ter. Bouton "copier" injecté automatiquement à côté des
     liens tel:/mailto: par main.js ---- */
.copy-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; margin-left:6px; padding:0;
  border:1px solid var(--line); border-radius:5px; background:#fff;
  color:var(--slate); cursor:pointer; vertical-align:middle;
  transition:.2s;
}
.copy-btn:hover{ border-color:var(--gold); color:var(--gold); }
.copy-btn.copied{ border-color:var(--gold); color:#fff; background:var(--gold); }

/* ---- 5quater. Validation en temps réel du formulaire de contact ---- */
.form-group.valid input, .form-group.valid select, .form-group.valid textarea{
  border-color:#3FA96A;
}
.form-group.invalid input, .form-group.invalid select, .form-group.invalid textarea{
  border-color:#D14D4D;
}

/* ---- 5quinquies. Bandeau défilant : curseur indiquant qu'on peut
     survoler pour mettre en pause (comportement ajouté par main.js) ---- */
.marquee-wrap{ cursor:default; }

/* ---- 6. CARTES — rayon et ombre harmonisés (ve-service-card / ve-testi-card) ---- */
.pole-card, .guichet-card, .mission-card, .filiere-card,
.pillar-icon-card, .destination-card, .field-card, .travel-card{
  border-radius:12px;
}
.pole-icon{
  background:linear-gradient(135deg, var(--royal), var(--royal-2));
  color:var(--gold);
  border-radius:14px;
}
.pole-icon i, .pole-icon svg{ font-size:22px; }

/* ============================================================
   7. NOUVELLES CLASSES — pour le HTML que vous avez ajouté
   ============================================================ */

/* Logo dans un disque (header + footer) : fond blanc systématique
   pour rester lisible quel que soit l'arrière-plan (clair ou marine) */
.logo-circle{
  width:50px; height:50px; border-radius:10%;
  background:#fff; display:flex; align-items:center; justify-content:center;
  overflow:hidden; flex-shrink:0;
  box-shadow:0 2px 10px rgba(13,27,42,0.18);
}
.logo-circle .logo-img{ width:100%; height:100%; object-fit:contain; }

/* Vignettes rondes des 4 étapes Astral Lab (Candidature/Formation/...) */
.step-img{
  width:250px; height:200px; border-radius:14px; overflow:hidden;
  margin-bottom:16px; border:2px solid var(--gold);
}
.step-img img{ width:100%; height:100%; object-fit:cover; }

/* Icônes sociales rondes du footer, avec couleur de marque au survol */
.social-circle{
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,0.18); color:rgba(255,255,255,0.75);
  transition:.25s; font-size:14px;
}
.social-circle:hover{ transform:translateY(-3px); color:#fff; }
.social-circle.facebook:hover{ background:#1877F2; border-color:#1877F2; }
.social-circle.whatsapp:hover{ background:#25D366; border-color:#25D366; }
.social-circle.linkedin:hover{ background:#0A66C2; border-color:#0A66C2; }
.social-circle.tiktok:hover{ background:#000; border-color:#000; }

/* Carte Google Maps (contact.html) : cadrage propre de l'iframe */
.contact-map{ margin-top:22px; border-radius:10px; overflow:hidden; border:1px solid var(--line); }
.contact-map iframe{ display:block; width:100%; border:0; }

/* Liens partenaires "en attente" (pas encore de vraie URL confirmée) */
.partner-logo-link.pending{ pointer-events:none; }
.partner-logo-link.pending .img-placeholder{ opacity:0.55; border-style:dashed; }

/* Quand une vraie <img> est déposée à l'intérieur d'une case
   .img-placeholder (bannières, logos partenaires...), on masque
   automatiquement le cadre pointillé / l'icône / le libellé et on
   affiche l'image proprement — aucune classe à retirer à la main. */
.img-placeholder:has(img){
  border:none; background:none; padding:0; display:block;
}
.img-placeholder:has(img) svg,
.img-placeholder:has(img) .ph-label,
.img-placeholder:has(img) .ph-dim{ display:none; }
.img-placeholder img{
  width:100%; height:100%; object-fit:contain; border-radius:inherit; display:block;
}
.ph-banner img, .ph-wide img{ object-fit:cover; }
.ph-logo img{ object-fit:contain; padding:6px; }

/* ============================================================
   CORRECTIFS RESPONSIVE — Blessings Consulting
   ------------------------------------------------------------
   À COLLER À LA TOUTE FIN de css/style.css (après le bloc
   VAULTEDGE THEME INTEGRATION déjà en place). Grâce à la cascade
   CSS, ce patch corrige 3 vrais bugs sans toucher au HTML.
   ============================================================ */

/* ---- BUG 1 (le plus important) : le menu bascule trop tard en
   version mobile. Avec 7 liens + logo + bouton, le menu desktop a
   besoin d'environ 1200px pour tenir sur une ligne — pas 880px.
   Entre les deux, il se comprimait / chevauchait. On étend donc
   le comportement "menu tiroir" jusqu'à 1200px. ---- */
@media (max-width:1200px){
  nav.main-nav{
    position:fixed; top:0; right:-100%; width:78%; max-width:340px; height:100vh;
    background:#fff; flex-direction:column; padding:100px 32px 32px;
    transition:.35s; box-shadow:-10px 0 30px rgba(0,0,0,.1); z-index:150;
  }
  nav.main-nav.open{ right:0; }
  nav.main-nav ul{ flex-direction:column; align-items:flex-start; gap:22px; }
  .burger{ display:flex; }
}
/* Entre 1200px et 1300px, le menu desktop reste mais un peu plus
   compact, pour éviter que ce soit encore juste au moment du passage. */
@media (min-width:1201px) and (max-width:1300px){
  nav.main-nav ul{ gap:20px; }
  nav.main-nav a{ font-size:13.5px; }
}

/* ---- BUG 2 : logos partenaires (.ph-logo) en taille fixe (200×140px)
   qui débordent de leur colonne de grille sur mobile. On les rend
   fluides : ils remplissent leur cellule de grille et gardent un
   ratio propre via aspect-ratio au lieu d'une taille imposée. ---- */
.ph-logo{
  width:100% !important;
  height:auto !important;
  aspect-ratio:2.6/1;
  max-width:200px;   /* toujours plafonné à la taille prévue sur desktop */
  margin:0 auto;     /* centré si la colonne est plus large que le plafond */
}

/* ---- BUG 3 : images de bannière (.ph-banner) plus grandes que leur
   cadre (width:150%/height:110% dans une règle antérieure). On force
   un cadrage propre et on coupe tout débordement résiduel. ---- */
.ph-banner{ overflow:hidden; }
.ph-banner img{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
}

/* ---- Sécurité supplémentaire pour les cadres à taille fixe
   (.ph-portrait, .ph-avatar) : ils gardent leur taille "idéale" sur
   grand écran, mais ne peuvent plus dépasser la largeur disponible
   sur un très petit écran (replis, webview étroite, etc.). ---- */
.ph-portrait, .ph-avatar{ max-width:100%; }

/* ---- Filet de sécurité global : empêche tout débordement horizontal
   résiduel (scrollbar indésirable) sur mobile, quelle qu'en soit la
   cause exacte. Ne masque aucun contenu, coupe seulement ce qui
   dépasserait accidentellement du cadre de la page. ---- */
html, body{ overflow-x:hidden; }

/* ---- Petits ajustements fins pour les très petits écrans (≤380px,
   iPhone SE et équivalents Android d'entrée de gamme). ---- */
@media (max-width:380px){
  .container{ padding:0 18px; }
  .hero h1, .inner-hero-text h1{ font-size:26px; }
  .stats-grid{ grid-template-columns:1fr; }
  .country-row{ grid-template-columns:repeat(2,1fr); }
}

/* Apparition en fondu + translation */
[data-reveal].in-view {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(40px);
}

/* Effet zoom sur les images */
.img-placeholder img {
  transition: transform 0.6s ease;
}

.img-placeholder img:hover {
  transform: scale(1.05);
}

.fade-in { 
  opacity: 0; 
  transform: translateY(20px); 
  transition: all 0.8s ease; 
}

.fade-in.in-view { 
  opacity: 1; 
  transform: translateY(0); 
}

.slide-left { 
  opacity: 0; 
  transform: translateX(-40px); 
  transition: all 0.8s ease; 
}

.slide-left.in-view { 
  opacity: 1; 
  transform: translateX(0); 
}

.parallax {
  position: relative;
  overflow: hidden;
}

.parallax img {
  transform: scale(1.1);
  transition: transform 0.3s ease;
}

.parallax:hover img {
  transform: scale(1.15) translateY(-10px);
}
