:root{
  --ink:#0A2647;
  --ink-2:#123B63;
  --blue:#1B6CA8;
  --blue-dark:#124C7D;
  --blue-light:#E8F1F8;
  --maple:#D7263D;
  --maple-dark:#AD1D30;
  --maple-light:#FBE7E9;
  --gold:#F2A93B;
  --gold-dark:#D6890F;
  --paper:#FFFFFF;
  --mist:#F6F9FB;
  --slate:#54677A;
  --slate-light:#8997A6;
  --line:#E3E9EF;
  --radius-sm:10px;
  --radius:16px;
  --radius-lg:26px;
  --shadow-sm:0 2px 10px rgba(10,38,71,.06);
  --shadow-md:0 14px 34px rgba(10,38,71,.10);
  --shadow-lg:0 28px 64px rgba(10,38,71,.16);
  --ease:cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Nunito Sans', ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,.display-font{font-weight:800; letter-spacing:-0.02em; color:var(--ink);}

.eyebrow{display:inline-flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--maple);}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--maple); display:inline-block; border-radius:2px;}

.text-blue{color:var(--blue) !important;}
.text-slate{color:var(--slate) !important;}
.bg-mist{background:var(--mist) !important;}
.bg-ink{background:var(--ink) !important;}
a{text-decoration:none;}
.skip-link{position:absolute; left:-999px; top:0; z-index:2000; background:var(--ink); color:#fff; padding:.75rem 1.25rem; border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* Topbar */
.topbar{background:var(--ink); color:#CBD8E6; font-size:.84rem; padding:.5rem 0;}
.topbar a{color:#CBD8E6; transition:color .2s var(--ease);}
.topbar a:hover{color:#fff;}
.topbar .divider{width:1px; height:14px; background:rgba(255,255,255,.18);}
.lang-switch{display:inline-flex; background:rgba(255,255,255,.08); border-radius:30px; padding:2px;}
.lang-switch button{border:0; background:transparent; color:#CBD8E6; font-size:.76rem; font-weight:700; padding:.2rem .65rem; border-radius:30px; transition:all .2s var(--ease);}
.lang-switch button.active{background:var(--gold); color:var(--ink);}

/* Header */
.site-header{background:#fff; padding:.85rem 0; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:1030; transition:box-shadow .25s var(--ease), padding .25s var(--ease);}
.site-header.is-scrolled{box-shadow:var(--shadow-md); padding:.55rem 0;}
.brand{display:flex; align-items:center; gap:.6rem; font-weight:900; font-size:1.28rem; color:var(--ink);}
.brand-mark{width:40px; height:40px; border-radius:11px; background:linear-gradient(145deg, var(--ink), var(--blue-dark)); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); flex-shrink:0;}
.brand-mark svg{width:22px; height:22px;}
.brand span{color:var(--maple);}

.main-nav .nav-link{font-weight:700; font-size:.96rem; color:var(--ink-2); padding:.5rem 1rem !important; position:relative;}
.main-nav .nav-link::after{content:""; position:absolute; left:1rem; right:1rem; bottom:.28rem; height:2px; background:var(--maple); transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease);}
.main-nav .nav-link:hover::after, .main-nav .nav-link.active::after{transform:scaleX(1);}
.main-nav .nav-link:hover{color:var(--maple);}

.btn-maple{background:var(--maple); border:1px solid var(--maple); color:#fff; font-weight:800; padding:.62rem 1.35rem; border-radius:30px; box-shadow:0 10px 22px rgba(215,38,61,.25); transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);}
.btn-maple:hover{background:var(--maple-dark); border-color:var(--maple-dark); color:#fff; transform:translateY(-2px); box-shadow:0 14px 28px rgba(215,38,61,.32);}
.btn-ink{background:var(--ink); border:1px solid var(--ink); color:#fff; font-weight:800; padding:.62rem 1.35rem; border-radius:30px; transition:all .2s var(--ease);}
.btn-ink:hover{background:var(--ink-2); color:#fff; transform:translateY(-2px);}
.btn-outline-nav{border:1.5px solid var(--line); color:var(--ink); font-weight:800; padding:.58rem 1.3rem; border-radius:30px; transition:all .2s var(--ease); background:transparent;}
.btn-outline-nav:hover{border-color:var(--ink); background:var(--mist); color:var(--ink);}

.navbar-toggler{border:1.5px solid var(--line); border-radius:10px; padding:.35rem .7rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.1rem; line-height:1; background:#fff;}
.navbar-toggler i{font-size:1.35rem; line-height:1;}
.navbar-toggler .toggler-label{font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:var(--ink-2);}
.navbar-toggler:focus{box-shadow:0 0 0 3px var(--blue-light);}
.offcanvas-brand-header{border-bottom:1px solid var(--line);}
.offcanvas .nav-link{font-weight:800; font-size:1.05rem; color:var(--ink); padding:.85rem .25rem; border-bottom:1px solid var(--line);}
.offcanvas .nav-link:hover{color:var(--maple);}
/* L'offcanvas doit toujours passer au-dessus des boutons flottants (WhatsApp,
   retour en haut) pour que ses liens restent cliquables sur mobile. */
.offcanvas{z-index:1200 !important;}
.offcanvas-backdrop{z-index:1190 !important;}

/* Hero */
.hero{padding:5.5rem 0 6rem; position:relative; overflow:hidden;}
.hero::before{content:""; position:absolute; top:-140px; right:-160px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle at 30% 30%, var(--blue-light), transparent 70%); z-index:0;}
.hero .container{position:relative; z-index:1;}
.hero h1{font-size:clamp(2.1rem, 4vw, 3.35rem); line-height:1.08;}
.hero .lead-text{font-size:1.14rem; color:var(--slate); max-width:34rem;}
.hero-badges{gap:.9rem;}
.trust-pill{display:inline-flex; align-items:center; gap:.55rem; background:#fff; border:1px solid var(--line); border-radius:14px; padding:.55rem .9rem; box-shadow:var(--shadow-sm); font-size:.85rem; font-weight:700; color:var(--ink-2);}
.trust-pill i{color:var(--gold-dark);}
.avatars{display:flex;}
.avatars span{width:34px; height:34px; border-radius:50%; border:2px solid #fff; margin-left:-10px; display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:800; color:#fff;}
.avatars span:first-child{margin-left:0;}

/* Dossier mockup */
.dossier-wrap{position:relative; padding:2rem 1rem;}
.dossier-card{background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); border:1px solid var(--line); padding:1.6rem; max-width:400px; margin:0 auto; position:relative; z-index:2;}
.dossier-head{display:flex; align-items:center; gap:.8rem; padding-bottom:1.1rem; border-bottom:1px dashed var(--line);}
.dossier-avatar{width:46px; height:46px; border-radius:50%; background:linear-gradient(145deg, var(--blue), var(--ink)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; flex-shrink:0;}
.dossier-steps{margin-top:1.1rem; display:flex; flex-direction:column; gap:.65rem;}
.dossier-step{display:flex; align-items:center; gap:.7rem; background:var(--mist); border-radius:12px; padding:.55rem .7rem; opacity:0; transform:translateX(14px); animation:stepIn .55s var(--ease) forwards;}
.dossier-step .step-ico{width:28px; height:28px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:.75rem; background:var(--line); color:var(--slate);}
.dossier-step.done{background:#EAF6EE;}
.dossier-step.done .step-ico{background:#2FA163; color:#fff;}
.dossier-step .step-txt{font-size:.82rem; font-weight:700; color:var(--ink-2); flex:1;}
.dossier-step .step-tag{font-size:.68rem; font-weight:800; color:var(--slate-light); text-transform:uppercase; letter-spacing:.04em;}
.dossier-step.done .step-tag{color:#2FA163;}
.dossier-step:nth-child(1){animation-delay:.15s;}
.dossier-step:nth-child(2){animation-delay:.38s;}
.dossier-step:nth-child(3){animation-delay:.61s;}
.dossier-step:nth-child(4){animation-delay:.84s;}
@keyframes stepIn{to{opacity:1; transform:translateX(0);}}

.chip-float{position:absolute; background:#fff; border-radius:14px; box-shadow:var(--shadow-md); padding:.6rem .95rem; display:flex; align-items:center; gap:.55rem; font-weight:800; font-size:.82rem; z-index:3; border:1px solid var(--line);}
.chip-float.approved{top:-6px; right:-6px; color:#2FA163; animation:floatY 4.5s ease-in-out infinite;}
.chip-float.approved i{background:#EAF6EE; color:#2FA163; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;}
.chip-float.rate{bottom:6px; left:-24px; color:var(--ink); animation:floatY 5.5s ease-in-out infinite reverse;}
.chip-float.rate i{background:var(--gold); color:#fff; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

.blob{position:absolute; border-radius:50%; z-index:1; background:linear-gradient(145deg, var(--maple), var(--gold)); opacity:.12; filter:blur(2px);}
.blob.b1{width:180px; height:180px; top:10%; left:-40px;}
.blob.b2{width:120px; height:120px; bottom:0; right:0;}

.stats-strip{background:var(--ink); color:#fff; border-radius:var(--radius-lg); padding:2.4rem 1.5rem; margin-top:-3.4rem; position:relative; z-index:2; box-shadow:var(--shadow-lg);}
.stats-strip .stat-num{font-size:2.1rem; font-weight:900; color:var(--gold); line-height:1;}
.stats-strip .stat-label{font-size:.84rem; color:#B9C7D6; font-weight:700; margin-top:.35rem;}

section{padding:6rem 0;}
.section-head{max-width:38rem;}
.section-head.mx-auto{text-align:center;}

.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.08s;}
.reveal-delay-2{transition-delay:.16s;}
.reveal-delay-3{transition-delay:.24s;}
.reveal-delay-4{transition-delay:.32s;}

.service-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:2rem 1.7rem; height:100%; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent;}
.service-ico{width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:1.1rem;}
.service-card:nth-child(4n+1) .service-ico{background:var(--blue-light); color:var(--blue);}
.service-card:nth-child(4n+2) .service-ico{background:var(--maple-light); color:var(--maple);}
.service-card:nth-child(4n+3) .service-ico{background:#FFF3DF; color:var(--gold-dark);}
.service-card:nth-child(4n+4) .service-ico{background:#E9F7EF; color:#2FA163;}
.service-card h3{font-size:1.14rem;}
.service-more{font-weight:800; font-size:.88rem; color:var(--ink); display:inline-flex; align-items:center; gap:.4rem;}
.service-more i{transition:transform .2s var(--ease);}
.service-card:hover .service-more i{transform:translateX(4px);}

.process-row{position:relative;}
.process-item{position:relative; text-align:center; padding:0 .8rem;}
.process-num{width:60px; height:60px; border-radius:50%; margin:0 auto 1.1rem; background:#fff; border:2px solid var(--ink); color:var(--ink); display:flex; align-items:center; justify-content:center; font-weight:900; font-size:1.2rem; position:relative; z-index:2; transition:all .3s var(--ease);}
.process-item:hover .process-num{background:var(--ink); color:#fff;}
.process-line{position:absolute; top:30px; left:calc(50% + 40px); right:calc(-50% + 40px); height:2px; background:repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px); z-index:1;}
.process-item:last-child .process-line{display:none;}
.process-item h3{font-size:1.05rem; margin-top:.2rem;}

.why-list li{display:flex; gap:.85rem; padding:.9rem 0; border-bottom:1px solid var(--line);}
.why-list li:last-child{border-bottom:0;}
.why-list .wi{width:38px; height:38px; border-radius:11px; background:var(--blue-light); color:var(--blue); display:flex; align-items:center; justify-content:center; flex-shrink:0;}

.testi-card{background:var(--mist); border-radius:var(--radius); padding:1.9rem; height:100%; border:1px solid var(--line);}
.testi-stars{color:var(--gold-dark); font-size:.85rem; letter-spacing:.15rem;}
.testi-quote{font-size:.98rem; color:var(--ink-2); margin:1rem 0 1.3rem; font-style:italic;}
.testi-person{display:flex; align-items:center; gap:.7rem;}
.testi-avatar{width:42px; height:42px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.85rem;}

.elig-panel{background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:2.4rem;}
.progress-track{display:flex; align-items:center; gap:.4rem; margin-bottom:2rem;}
.progress-step{flex:1; height:6px; border-radius:6px; background:var(--line); overflow:hidden;}
.progress-step .fill{height:100%; width:0%; background:var(--maple); transition:width .5s var(--ease);}
.progress-labels{display:flex; justify-content:space-between; font-size:.72rem; font-weight:800; color:var(--slate-light); text-transform:uppercase; letter-spacing:.04em; margin-bottom:.5rem;}
.progress-labels span.active{color:var(--maple);}
.form-step{display:none;}
.form-step.active{display:block; animation:fadeInStep .45s var(--ease);}
@keyframes fadeInStep{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
.visa-choice{border:1.5px solid var(--line); border-radius:14px; padding:1.15rem 1rem; cursor:pointer; transition:all .2s var(--ease); height:100%; display:flex; flex-direction:column; gap:.4rem; position:relative;}
.visa-choice:hover{border-color:var(--blue); box-shadow:var(--shadow-sm);}
.visa-choice input{position:absolute; opacity:0; pointer-events:none;}
.visa-choice .vc-ico{font-size:1.3rem; color:var(--blue);}
.visa-choice .vc-title{font-weight:800; font-size:.94rem;}
.visa-choice .vc-desc{font-size:.78rem; color:var(--slate);}
.visa-choice.selected{border-color:var(--maple); background:var(--maple-light);}
.visa-choice.selected .vc-ico{color:var(--maple);}

.form-control, .form-select{border:1.5px solid var(--line); border-radius:11px; padding:.72rem .95rem; font-size:.95rem; transition:border-color .2s var(--ease), box-shadow .2s var(--ease);}
.form-control:focus, .form-select:focus{border-color:var(--blue); box-shadow:0 0 0 4px var(--blue-light);}
.form-label{font-weight:800; font-size:.86rem; color:var(--ink-2); margin-bottom:.4rem;}
.form-nav-btn{min-width:120px;}

.elig-success{display:none; text-align:center; padding:1.5rem 0;}
.elig-success.active{display:block; animation:fadeInStep .5s var(--ease);}
.success-tick{width:76px; height:76px; border-radius:50%; background:#EAF6EE; color:#2FA163; display:flex; align-items:center; justify-content:center; font-size:2.1rem; margin:0 auto 1.2rem; animation:pop .5s var(--ease);}
@keyframes pop{0%{transform:scale(.4); opacity:0;}70%{transform:scale(1.08);}100%{transform:scale(1); opacity:1;}}

.accordion-item{border:1px solid var(--line) !important; border-radius:14px !important; overflow:hidden; margin-bottom:.85rem;}
.accordion-button{font-weight:800; font-size:1rem; color:var(--ink); padding:1.15rem 1.4rem;}
.accordion-button:not(.collapsed){background:var(--mist); color:var(--maple); box-shadow:none;}
.accordion-button:focus{box-shadow:none; border-color:var(--line);}
.accordion-button::after{filter:none;}
.accordion-body{color:var(--slate); font-size:.94rem; padding:0 1.4rem 1.3rem;}

.cta-banner{background:linear-gradient(120deg, var(--ink) 0%, var(--blue-dark) 100%); border-radius:var(--radius-lg); padding:3.2rem; color:#fff; position:relative; overflow:hidden;}
.cta-banner::after{content:""; position:absolute; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(242,169,59,.28), transparent 70%); right:-100px; top:-120px;}
.cta-banner h2{color:#fff;}

footer{background:var(--ink); color:#B9C7D6; padding-top:4.5rem;}
footer h5{color:#fff; font-weight:800; font-size:1rem; margin-bottom:1.1rem;}
footer a{color:#B9C7D6; transition:color .2s var(--ease);}
footer a:hover{color:var(--gold);}
footer .foot-links li{margin-bottom:.6rem; font-size:.9rem;}
.foot-brand{display:flex; align-items:center; gap:.6rem; color:#fff; font-weight:900; font-size:1.2rem; margin-bottom:1rem;}
.foot-desc{font-size:.88rem; line-height:1.7; max-width:22rem;}
.social-row a{width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.07); display:inline-flex; align-items:center; justify-content:center; margin-right:.5rem; transition:all .2s var(--ease);}
.social-row a:hover{background:var(--maple); color:#fff;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:3rem; padding:1.4rem 0; font-size:.82rem;}
.foot-bottom a{margin-left:1.2rem;}
.foot-disclaimer{font-size:.76rem; color:#7C8DA0; max-width:52rem; line-height:1.6;}

.back-to-top{position:fixed; bottom:24px; right:24px; width:46px; height:46px; border-radius:50%; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); opacity:0; visibility:hidden; transform:translateY(10px); transition:all .3s var(--ease); z-index:1040; border:0;}
.back-to-top.show{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{background:var(--maple);}

::selection{background:var(--gold); color:var(--ink);}
:focus-visible{outline:3px solid var(--blue-light); outline-offset:2px;}

/* Pages internes génériques (contact, login, register, dashboard) */
.inner-hero{padding:3.4rem 0 2.6rem; background:var(--mist); border-bottom:1px solid var(--line);}
.inner-hero h1{font-size:clamp(1.8rem, 3vw, 2.5rem);}
.auth-panel{background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:2.4rem; max-width:480px; margin:0 auto;}
.info-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; display:flex; gap:1rem; align-items:flex-start;}
.info-card .ic{width:44px; height:44px; border-radius:12px; background:var(--blue-light); color:var(--blue); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1.15rem;}

/* Tableau de bord client */
.dash-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem;}
.dash-stepper{display:flex; flex-direction:column; gap:.6rem; margin-top:1rem;}
.dash-step{display:flex; align-items:center; gap:.7rem; padding:.6rem .75rem; border-radius:11px; background:var(--mist);}
.dash-step.termine{background:#EAF6EE;}
.dash-step.en_cours{background:var(--blue-light);}
.dash-step .dot{width:26px; height:26px; border-radius:50%; background:var(--line); color:var(--slate); display:flex; align-items:center; justify-content:center; font-size:.7rem; flex-shrink:0;}
.dash-step.termine .dot{background:#2FA163; color:#fff;}
.dash-step.en_cours .dot{background:var(--blue); color:#fff;}

.chat-box{display:flex; flex-direction:column; height:420px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff;}
.chat-messages{flex:1; overflow-y:auto; padding:1.1rem; display:flex; flex-direction:column; gap:.6rem; background:var(--mist);}
.chat-bubble{max-width:75%; padding:.6rem .9rem; border-radius:14px; font-size:.9rem; line-height:1.45;}
.chat-bubble.client{align-self:flex-end; background:var(--maple); color:#fff; border-bottom-right-radius:4px;}
.chat-bubble.admin{align-self:flex-start; background:#fff; border:1px solid var(--line); color:var(--ink); border-bottom-left-radius:4px;}
.chat-bubble .meta{display:block; font-size:.66rem; opacity:.75; margin-top:.25rem;}
.chat-input-row{display:flex; gap:.5rem; padding:.75rem; border-top:1px solid var(--line); background:#fff;}
.chat-input-row textarea{resize:none; border:1.5px solid var(--line); border-radius:12px; padding:.6rem .8rem; flex:1; font-family:inherit; font-size:.9rem;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
@media (max-width:991.98px){
  .stats-strip{margin-top:2.2rem;}
  section{padding:4rem 0;}
  .dossier-wrap{padding-top:3rem;}
}
@media (max-width:575.98px){
  .cta-banner{padding:2.2rem 1.4rem;}
  .elig-panel{padding:1.6rem 1.1rem;}
  .chip-float{padding:.45rem .7rem; font-size:.72rem;}
  .auth-panel{padding:1.8rem 1.3rem;}
}

/* ==========================================================
   Corrections et ajouts — refonte 2026
   ========================================================== */

/* Empêche tout défilement horizontal parasite sur mobile (offcanvas fixed,
   décorations positionnées en absolu). Seul l'élément racine gouverne le
   clip des éléments position:fixed sur la plupart des navigateurs mobiles. */
html{overflow-x:hidden; width:100%;}
body{width:100%; max-width:100vw;}
img{max-width:100%; height:auto;}

/* Logo : "Visa" + "Canadien" forment un seul bloc de texte (un seul flex-item),
   ce qui les garde collés même si .brand a un gap entre ses éléments. */
.brand-text{white-space:nowrap;}
.brand-text span{color:var(--maple);}
.brand-flag{border-radius:3px; box-shadow:0 0 0 1px var(--line); flex-shrink:0;}
.foot-brand{display:flex; align-items:center; gap:.6rem; font-weight:900; font-size:1.2rem; color:#fff;}
.foot-brand .brand-text{color:#fff;}
.foot-brand .brand-text span{color:var(--gold);}

/* Bouton WhatsApp du bandeau supérieur, à la place de l'ancien sélecteur de langues */
.topbar-whatsapp{display:inline-flex; align-items:center; gap:.5rem; background:#25D366; color:#fff !important; font-weight:800; padding:.4rem .9rem; border-radius:20px; font-size:.82rem; transition:transform .2s var(--ease), background .2s var(--ease);}
.topbar-whatsapp:hover{background:#1EBE57; transform:translateY(-1px);}
.topbar-whatsapp i{font-size:1rem;}

/* Bouton WhatsApp flottant, fixe en bas de l'écran */
.whatsapp-fab{position:fixed; bottom:24px; right:24px; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem; box-shadow:0 10px 28px rgba(37,211,102,.45); z-index:1050; transition:transform .2s var(--ease), box-shadow .2s var(--ease); animation:waPulse 2.6s ease-in-out infinite;}
.whatsapp-fab:hover{transform:scale(1.08); color:#fff;}
@keyframes waPulse{0%,100%{box-shadow:0 10px 28px rgba(37,211,102,.45);}50%{box-shadow:0 10px 28px rgba(37,211,102,.75), 0 0 0 8px rgba(37,211,102,.12);}}
.back-to-top{right:24px; bottom:92px;}
@media (max-width:575px){
  .whatsapp-fab{width:50px; height:50px; font-size:1.4rem; bottom:16px; right:16px;}
  .back-to-top{bottom:76px; right:16px; width:42px; height:42px;}
}

/* Menus déroulants du header (Services / Pays) */
.nav-drop{position:relative;}
.nav-drop-menu{position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-lg); padding:.6rem; min-width:240px; opacity:0; visibility:hidden; transition:opacity .18s var(--ease), transform .18s var(--ease), visibility .18s; z-index:1050;}
.nav-drop-menu a{display:flex; align-items:center; gap:.6rem; padding:.55rem .75rem; border-radius:9px; font-weight:700; font-size:.88rem; color:var(--ink-2); white-space:nowrap;}
.nav-drop-menu a:hover{background:var(--mist); color:var(--maple);}
.nav-drop:hover .nav-drop-menu, .nav-drop:focus-within .nav-drop-menu{opacity:1; visibility:visible; transform:translateX(-50%) translateY(2px);}
.nav-drop-menu-wide{min-width:300px; max-height:360px; overflow-y:auto; display:grid; grid-template-columns:1fr 1fr; gap:.1rem;}
.nav-drop > .nav-link i{font-size:.7rem; margin-left:.15rem; transition:transform .2s var(--ease);}
.nav-drop:hover > .nav-link i{transform:rotate(180deg);}

/* Gabarits des nouvelles pages (blog, services, pays, légal) */
.page-lead{max-width:44rem;}
.content-prose{font-size:1.02rem; line-height:1.85; color:var(--ink-2);}
.content-prose h2{margin-top:2.2rem; font-size:1.45rem;}
.content-prose h3{margin-top:1.6rem; font-size:1.18rem;}
.content-prose ul, .content-prose ol{padding-left:1.3rem;}
.content-prose li{margin-bottom:.5rem;}
.content-prose blockquote{border-left:4px solid var(--maple); padding:.4rem 1.2rem; color:var(--slate); font-style:italic; background:var(--mist); border-radius:0 12px 12px 0;}

.blog-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; height:100%; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.blog-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}
.blog-card-thumb{height:170px; display:flex; align-items:center; justify-content:center; font-size:2.6rem; color:#fff; overflow:hidden;}
.blog-card-thumb img{width:100%; height:100%; object-fit:cover;}
.blog-card-body{padding:1.4rem;}
.blog-card .cat-badge{font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--maple); background:var(--maple-light); padding:.25rem .7rem; border-radius:20px; display:inline-block; margin-bottom:.7rem;}
.blog-card h3{font-size:1.05rem; margin-bottom:.6rem;}
.blog-card .meta{font-size:.78rem; color:var(--slate-light); display:flex; gap:.9rem; align-items:center;}
.article-hero-img{width:100%; max-height:460px; object-fit:cover; border-radius:var(--radius); margin-top:1.6rem; box-shadow:var(--shadow-md);}
.blog-sidebar-card{background:var(--mist); border-radius:var(--radius); padding:1.4rem; border:1px solid var(--line);}
.blog-sidebar-card + .blog-sidebar-card{margin-top:1.2rem;}
.blog-cat-link{display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--line); font-weight:700; color:var(--ink-2);}
.blog-cat-link:last-child{border-bottom:0;}
.blog-cat-link:hover{color:var(--maple);}

.service-tab-nav{display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.4rem;}
.service-tab-nav a{padding:.6rem 1.15rem; border-radius:24px; border:1.5px solid var(--line); font-weight:800; font-size:.88rem; color:var(--ink-2);}
.service-tab-nav a.active, .service-tab-nav a:hover{background:var(--ink); border-color:var(--ink); color:#fff;}

.country-flag-badge-img{width:64px; height:64px; object-fit:cover; border-radius:50%; box-shadow:0 0 0 4px #fff, var(--shadow-md); flex-shrink:0;}
.flag-icon-sm{width:20px; height:14px; object-fit:cover; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.08); vertical-align:middle; margin-right:2px;}
.flag-icon-lg{width:40px; height:40px; object-fit:cover; border-radius:50%; box-shadow:0 0 0 3px var(--mist), 0 0 0 4px var(--line); flex-shrink:0;}
.brand-flag{width:26px; height:18px; object-fit:cover;}
.country-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:1.1rem;}
.country-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; display:flex; align-items:center; gap:1rem; transition:all .25s var(--ease);}
.country-card:hover{border-color:var(--maple); box-shadow:var(--shadow-md); transform:translateY(-3px);}
.country-card .flag{font-size:2.2rem;}
.country-card h3{font-size:1.02rem; margin:0;}
.country-card small{color:var(--slate);}

.legal-prose h2{margin-top:2rem; font-size:1.3rem;}
.legal-prose p{color:var(--slate); line-height:1.8;}

.breadcrumb-row{font-size:.82rem; color:var(--slate-light); margin-bottom:1.4rem;}
.breadcrumb-row a{color:var(--slate-light); font-weight:700;}
.breadcrumb-row a:hover{color:var(--maple);}

@media (max-width:991.98px){
  .nav-drop-menu{display:none;}
}
