
  :root{
    --bg-950:#FFFFFF;
    --bg-900:#F2F6FB;
    --bg-800:#FFFFFF;
    --bg-700:#E3E9F0;
    --line:rgba(15,23,42,0.08);
    --line-strong:rgba(15,23,42,0.14);
    --indigo-500:#3E4A78;
    --indigo-400:#6B76A0;
    --indigo-700:#2C3867;
    --coral-500:#FF9B03;
    --coral-400:#FFB347;
    --amber-500:#F5A623;
    --amber-400:#F8C468;
    --amber-700:#B5720F;
    --ink-0:#1E2748;
    --ink-300:#55636F;
    --ink-500:#8793A0;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; background:#FFFFFF; color-scheme:light;}
  body{
    font-family:'Manrope', sans-serif;
    background:var(--bg-950);
    color:var(--ink-0);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
    color:var(--ink-0);
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1160px; margin:0 auto; padding:0 20px;}
  section{padding:72px 0;}
  .eyebrow-dot{
    display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700;
    color:var(--indigo-700); background:rgba(62,74,120,0.16); border:1px solid rgba(62,74,120,0.18);
    padding:7px 14px; border-radius:100px; margin-bottom:20px;
  }
  .eyebrow-dot::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--indigo-700); box-shadow:0 0 8px var(--indigo-700);}
  button{font-family:inherit; cursor:pointer; border:none;}

  /* ---- Scroll reveal (kept early so component :hover rules below can still override it) ---- */
  .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.visible{opacity:1; transform:translateY(0);}
  .reveal-group > *{transition-delay:calc(var(--reveal-i, 0) * 80ms);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
  }

  /* ---- Header ---- */
  header{
    position:sticky; top:14px; z-index:50;
    padding:0 16px;
    transition:top .3s ease;
  }
  header.scrolled{ top:8px; }
  .nav{
    display:flex; align-items:center; justify-content:space-between; padding:10px 10px 10px 20px;
    max-width:1160px; margin:0 auto; transition:box-shadow .3s ease;
    background:#fff; border-radius:100px; box-shadow:0 8px 24px -10px rgba(15,23,42,0.18); border:1px solid var(--line);
  }
  header.scrolled .nav{box-shadow:0 12px 30px -8px rgba(15,23,42,0.28);}
  .logo{display:flex; align-items:center; gap:9px; font-family:'Fraunces',serif; font-weight:700; font-size:19px; color:var(--ink-0);}
  .logo-mark{
    width:34px; height:34px; border-radius:9px;
    background:url("img/logo-mark.png") center/cover no-repeat;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .nav-links{display:none; gap:30px; font-size:13.5px; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink-300);}
  .nav-links a:hover{color:var(--ink-0);}
  .nav-actions{display:flex; gap:10px; align-items:center;}
  .btn{
    padding:11px 20px; border-radius:11px; font-weight:700; font-size:14px;
    display:inline-flex; align-items:center; gap:6px; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
    white-space:nowrap;
  }
  .btn:disabled{opacity:0.5; pointer-events:none;}
  .btn-ghost{color:var(--ink-0); background:var(--bg-800); border:1px solid var(--line-strong);}
  .btn-ghost:hover{background:var(--bg-700); transform:translateY(-1px); border-color:var(--indigo-500);}
  .btn-primary{background:var(--coral-500); color:#fff; box-shadow:0 8px 20px -6px rgba(255,155,3,0.35);}
  .btn-primary:hover{transform:translateY(-1px); background:var(--coral-400); box-shadow:0 12px 24px -6px rgba(255,155,3,0.4);}
  .btn-teal{background:var(--indigo-500); color:#fff;}
  .btn-teal:hover{background:var(--indigo-400); transform:translateY(-1px); box-shadow:0 8px 18px -6px rgba(62,74,120,0.4);}
  .btn-sm{padding:9px 16px; font-size:13px;}
  .btn-lg{padding:14px 26px; font-size:15.5px; border-radius:13px;}
  @media(min-width:860px){ .nav-links{display:flex;} }

  /* ---- Hero ---- */
  .hero{
    position:relative; overflow:hidden; background:var(--bg-950);
    /* Remonte le fond du hero derrière le header flottant (60px + 14px de marge) pour qu'il n'y ait plus
       de bande blanche au-dessus des images qui défilent ; le padding-top compense pour que le texte
       reste à la même hauteur visuelle. */
    margin-top:-78px;
    padding:130px 0 40px;
  }

  /* ---- Hero image carousel : 4 photos qui défilent, avec voile clair + flou côté gauche pour la lisibilité du texte ---- */
  .hero-slides{position:absolute; inset:0; z-index:0;}
  .hero-slide{
    position:absolute; inset:0; display:block; width:100%; height:100%;
    object-fit:cover; object-position:center;
    opacity:0; transition:opacity 1.1s ease;
  }
  .hero-slide.active{opacity:1;}
  .hero-overlay{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background-image:
      linear-gradient(to right, rgba(30,39,72,0.95) 0%, rgba(30,39,72,0.88) 34%, rgba(30,39,72,0.5) 62%, rgba(30,39,72,0.08) 88%, rgba(30,39,72,0) 100%),
      radial-gradient(900px 500px at 85% -10%, rgba(62,74,120,0.14), transparent 60%),
      radial-gradient(700px 400px at -10% 30%, rgba(255,155,3,0.12), transparent 60%);
  }
  .hero-text-stack{position:relative; min-height:1px;}
  .hero-text-slide{display:none;}
  .hero-text-slide.active{display:block; animation:heroTextIn .55s ease;}
  @keyframes heroTextIn{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}
  @media (prefers-reduced-motion: reduce){ .hero-text-slide.active{animation:none;} .hero-slide{transition:none;} }

  .hero-grid{position:relative; z-index:2; display:grid; gap:40px; align-items:center;}
  @media(min-width:940px){
    .hero-grid{grid-template-columns:1.05fr 0.95fr;}
  }
  /* Au-delà de 1200px, le .wrap devient centré (max-width 1160px) et crée un grand vide entre les puces
     de navigation (à 14px du bord) et le texte : on désactive ce centrage pour le hero et on rapproche
     le texte des puces, sans toucher au .wrap des autres sections. */
  @media(min-width:1200px){
    .hero .wrap.hero-grid{max-width:none; margin-left:0; padding-left:clamp(70px, 6vw, 108px);}
  }
  @media(max-width:939px){
    .hero-overlay{
      background-image:
        linear-gradient(to right, rgba(30,39,72,0.96) 0%, rgba(30,39,72,0.92) 50%, rgba(30,39,72,0.62) 78%, rgba(30,39,72,0) 100%),
        radial-gradient(900px 500px at 85% -10%, rgba(62,74,120,0.14), transparent 60%),
        radial-gradient(700px 400px at -10% 30%, rgba(255,155,3,0.12), transparent 60%);
    }
  }
  .badge-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px;}
  .chip{
    display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700;
    padding:7px 12px 7px 8px; border-radius:100px; color:#fff;
  }
  .chip-icon{width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; background:rgba(15,23,42,0.16);}
  .chip-coral{background:linear-gradient(135deg, var(--coral-500), #C97300);}
  .chip-teal{background:linear-gradient(135deg, var(--indigo-500), #1B2340);}
  .hero-h1{
    font-family:'Manrope', sans-serif; text-transform:uppercase; font-weight:800; letter-spacing:-0.01em;
    font-size:clamp(30px,5.6vw,52px); line-height:1.08; margin-bottom:18px; color:var(--ink-0);
  }
  .hero-h1 .accent{color:var(--coral-500);}
  .hero .hero-h1{color:#fff;}
  .hero .hero-h1 .accent{color:var(--coral-500);}
  .hero .eyebrow-dot{background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.22); color:#fff;}
  .hero .eyebrow-dot::before{background:var(--indigo-400); box-shadow:0 0 8px var(--indigo-400);}
  .hero-dots{
    display:none; flex-direction:column; gap:16px; position:absolute; left:14px; top:50%; transform:translateY(-50%); z-index:3;
  }
  @media(min-width:940px){ .hero-dots{display:flex;} }
  .hero-dot{
    width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:10px; font-weight:700; color:var(--ink-500); background:#fff; border:1px solid var(--line-strong);
    cursor:pointer; transition:background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
  }
  .hero-dot:hover{border-color:var(--coral-500); transform:scale(1.08);}
  .hero-dot.active{background:var(--coral-500); color:#fff; border-color:var(--coral-500);}
  .hero-dots-mobile{display:flex; gap:8px; margin:-6px 0 22px;}
  @media(min-width:940px){ .hero-dots-mobile{display:none;} }
  .hero-dots-mobile .hero-dot{
    width:9px; height:9px; padding:0; font-size:0; background:rgba(255,255,255,0.3); border:none; transition:width .25s ease, background .25s ease;
  }
  .hero-dots-mobile .hero-dot.active{width:24px; border-radius:100px; background:var(--coral-500);}
  .hero p.lead{font-size:17px; color:rgba(255,255,255,0.82); max-width:48ch; margin-bottom:30px;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:32px;}
  .hero-countries{font-size:13px; line-height:1.5; color:rgba(255,255,255,0.62); max-width:46ch; margin-top:-14px; margin-bottom:8px;}
  .hero-proof{display:flex; align-items:center; gap:14px;}
  .avatar-stack{display:flex;}
  .avatar-stack span{
    width:36px; height:36px; border-radius:50%; border:2px solid var(--bg-950); margin-left:-10px;
    background:linear-gradient(135deg,var(--indigo-500),var(--coral-500)); display:flex; align-items:center; justify-content:center;
    font-size:13px; font-weight:700; color:#fff;
  }
  .avatar-stack span:first-child{margin-left:0;}
  .hero-proof-text{font-size:13.5px; color:var(--ink-300);}
  .hero-proof-text strong{color:var(--ink-0); display:block; font-size:14.5px;}

  .hero-visual{position:relative;}
  .visual-card{
    position:relative; border-radius:24px; overflow:hidden;
    background:rgba(255,255,255,0.62);
    backdrop-filter:blur(6px);
    border:1px solid var(--line-strong);
    min-height:380px; padding:26px;
    display:flex; flex-direction:column; justify-content:space-between;
  }
  .visual-card::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(400px 260px at 100% 0%, rgba(62,74,120,0.14), transparent 60%);
    pointer-events:none;
  }
  .ticket{
    background:rgba(15,23,42,0.04); border:1px solid var(--line-strong);
    border-radius:16px; padding:18px; backdrop-filter:blur(4px); position:relative; z-index:1;
  }
  .ticket-route{display:flex; align-items:center; justify-content:space-between; font-family:'Fraunces',serif; font-size:20px; font-weight:600;}
  .ticket-dots{flex:1; height:1px; margin:0 10px; background-image:linear-gradient(to right, rgba(15,23,42,0.3) 40%, transparent 0%); background-size:8px 1px; background-repeat:repeat-x; position:relative;}
  .ticket-dots svg{position:absolute; right:0; top:-10px; width:15px; height:15px;}
  .ticket-meta{display:flex; justify-content:space-between; margin-top:14px; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-500);}
  .float-card{
    position:relative; z-index:1; background:var(--bg-950); border:1px solid var(--line-strong);
    border-radius:16px; padding:16px; display:flex; gap:12px; align-items:flex-start; margin-top:18px;
  }
  .float-icon{width:38px; height:38px; border-radius:10px; background:rgba(242,169,59,0.16); color:var(--amber-700); display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0;}
  .float-card h4{font-size:14.5px; margin-bottom:4px;}
  .float-card p{font-size:12.5px; color:var(--ink-300);}

  /* ---- WhatsApp floating button ---- */
  .wa-float{
    position:fixed; bottom:22px; right:22px; z-index:90;
    width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:28px;
    box-shadow:0 10px 24px -6px rgba(37,211,102,0.55); transition:transform .15s ease;
  }
  .wa-float:hover{transform:scale(1.06);}
  .wa-float svg{width:30px; height:30px;}

  /* ---- FAQ ---- */
  .faq-list{max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:12px;}
  .faq-item{background:var(--bg-800); border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:border-color .15s ease;}
  .faq-item:hover{border-color:var(--line-strong);}
  .faq-q{
    width:100%; text-align:left; padding:20px 22px; background:transparent; color:var(--ink-0);
    font-size:15.5px; font-weight:700; display:flex; align-items:center; justify-content:space-between; gap:16px;
  }
  .faq-q .plus{flex-shrink:0; width:26px; height:26px; border-radius:50%; background:var(--bg-700); display:flex; align-items:center; justify-content:center; font-size:15px; transition:transform .2s ease;}
  .faq-item.open .faq-q .plus{transform:rotate(45deg); background:var(--coral-500); color:#fff;}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
  .faq-a-inner{padding:0 22px 20px; font-size:14.5px; color:var(--ink-300);}

  /* ---- Mentions légales ---- */
  .legal-text{max-width:760px; margin:0 auto; font-size:13.5px; color:var(--ink-300); line-height:1.7;}
  .legal-text h3{font-size:15px; color:var(--ink-0); margin:20px 0 8px;}
  .legal-text h3:first-child{margin-top:0;}
  .consent-row{display:flex; align-items:flex-start; gap:10px; margin-bottom:16px; font-size:13px; color:var(--ink-300);}
  .consent-row input{margin-top:3px; flex-shrink:0;}
  .consent-row a{color:var(--indigo-700); text-decoration:underline;}

  /* ---- Vérificateur d'attestation ---- */
  .verif-form{max-width:420px; margin:0 auto; display:flex; flex-direction:column; gap:16px;}
  .verif-result{max-width:420px; margin:28px auto 0; padding:28px 24px; border-radius:16px; text-align:center;}
  .verif-result.valid{background:rgba(29,140,89,0.08); border:1px solid rgba(29,140,89,0.28);}
  .verif-result.expired{background:rgba(245,166,35,0.1); border:1px solid rgba(245,166,35,0.32);}
  .verif-result.invalid{background:rgba(214,69,69,0.08); border:1px solid rgba(214,69,69,0.28);}
  .verif-icon{width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:22px; font-weight:700; color:#fff;}
  .verif-result.valid .verif-icon{background:#1D8C59;}
  .verif-result.expired .verif-icon{background:var(--amber-500);}
  .verif-result.invalid .verif-icon{background:#D64545;}
  .verif-result h3{font-size:19px; margin-bottom:8px;}
  .verif-result.expired p, .verif-result.invalid p{color:var(--ink-300); font-size:14px; line-height:1.6;}
  .verif-details{display:grid; grid-template-columns:auto 1fr; gap:7px 16px; text-align:left; max-width:300px; margin:18px auto 0; font-size:14px;}
  .verif-details dt{color:var(--ink-500); font-weight:600;}
  .verif-details dd{color:var(--ink-0); font-weight:600;}
  .verif-qr{margin:20px auto 0; border-radius:10px; border:1px solid var(--line); display:block;}
  .verif-help{max-width:420px; margin:22px auto 0; padding:18px 20px; border-radius:14px; background:var(--bg-700); text-align:center;}
  .verif-help h4{font-size:14.5px; margin-bottom:6px; color:var(--ink-0);}
  .verif-help p{font-size:13px; color:var(--ink-300); line-height:1.55; margin-bottom:12px;}

  /* ---- Verification page : colonne de preuve visuelle à côté du formulaire ---- */
  .verif-grid{display:grid; gap:40px;}
  @media(min-width:900px){ .verif-grid{grid-template-columns:1fr 340px; align-items:start;} }
  .verif-grid .section-head, .verif-grid .verif-form, .verif-grid .verif-result, .verif-grid .verif-help{
    text-align:left; margin-left:0; margin-right:0;
  }
  .verif-proof{position:relative;}
  @media(min-width:900px){ .verif-proof{position:sticky; top:96px;} }
  .verif-proof-frame{border-radius:18px; overflow:hidden; border:1px solid var(--line-strong); box-shadow:0 20px 44px -22px rgba(15,23,42,0.3); aspect-ratio:4/5; background:var(--bg-900);}
  .verif-proof-frame img{width:100%; height:100%; object-fit:cover; display:block;}
  .verif-proof-fallback{
    width:100%; height:100%; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    color:var(--ink-500); font-size:13px; font-weight:600;
  }
  .verif-proof-caption{display:flex; align-items:flex-start; gap:8px; margin-top:12px; font-size:12px; color:var(--ink-500); line-height:1.5;}
  .verif-proof-caption svg{flex-shrink:0; margin-top:2px; color:var(--indigo-500);}

  /* ---- Phone country combo ---- */
  .combo{position:relative; flex:0 0 168px;}
  .combo-btn{
    width:100%; text-align:left; padding:12px 14px; border:1.5px solid var(--line-strong); border-radius:12px;
    font-size:14px; font-family:inherit; background:var(--bg-950); color:var(--ink-0);
  }
  .combo-btn:hover{border-color:var(--indigo-500);}
  .combo-panel{
    display:none; position:absolute; top:calc(100% + 6px); left:0; width:260px; max-width:80vw; z-index:20;
    background:var(--bg-900); border:1px solid var(--line-strong); border-radius:12px; padding:8px;
    box-shadow:0 12px 28px -8px rgba(15,23,42,0.45);
  }
  .combo-panel.open{display:block;}
  .combo-search{
    width:100%; padding:9px 12px; border:1.5px solid var(--line-strong); border-radius:9px; font-size:13.5px;
    font-family:inherit; background:var(--bg-950); color:var(--ink-0); margin-bottom:8px;
  }
  .combo-search:focus{outline:none; border-color:var(--indigo-500);}
  .combo-list{max-height:220px; overflow-y:auto;}
  .combo-item{
    width:100%; text-align:left; padding:9px 10px; border-radius:8px; font-size:13.5px;
    background:transparent; color:var(--ink-0);
  }
  .combo-item:hover{background:var(--bg-700);}
  .combo-empty{padding:9px 10px; font-size:13px; color:var(--ink-500);}

  /* ---- Trust strip / stats grid ---- */
  .trust{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#EDF0F8;}
  .stats-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:28px; padding:40px 0;}
  @media(min-width:760px){ .stats-grid{grid-template-columns:repeat(4,1fr);} }
  .stat-block{text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px;}
  .stat-icon{
    width:48px; height:48px; border-radius:50%; background:#fff; border:1px solid var(--line-strong);
    display:flex; align-items:center; justify-content:center; color:var(--coral-500); margin-bottom:2px;
  }
  .trust-num{font-family:'Fraunces',serif; font-size:26px; font-weight:700; color:var(--ink-0); line-height:1;}
  .trust-label{font-size:13px; color:var(--ink-300); line-height:1.45; max-width:22ch;}
  /* ---- Triptyque de positionnement, répété en quelques points clés du site ---- */
  .triptych{position:relative; z-index:1; text-align:center; padding-top:28px; font-size:12.5px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--indigo-500);}
  .triptych span{color:var(--coral-500); margin:0 2px;}
  .footer-triptych{margin-top:14px; font-size:12px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--coral-400);}

  /* ---- Situations grid ---- */
  .situations-grid{display:grid; grid-template-columns:1fr; gap:16px;}
  @media(min-width:700px){ .situations-grid{grid-template-columns:repeat(2,1fr);} }
  @media(min-width:1000px){ .situations-grid{grid-template-columns:repeat(3,1fr);} }
  .situation-card{background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; transition:transform .15s ease, border-color .15s ease;}
  .situation-card:hover{transform:translateY(-2px); border-color:var(--line-strong);}
  .situation-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
  .situation-num{font-family:'Fraunces',serif; font-size:20px; font-weight:700; color:var(--line-strong);}
  .situation-card h3{font-size:16.5px; margin-bottom:6px;}
  .situation-card p{font-size:14px; color:var(--ink-300);}
  .text-accent{color:var(--coral-500);}

  /* ---- Profile cards ---- */
  .profile-grid{display:grid; grid-template-columns:1fr; gap:18px;}
  @media(min-width:760px){ .profile-grid{grid-template-columns:repeat(3,1fr);} }
  .profile-card{background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px 24px; text-align:center;}
  .profile-card h3{font-size:17px; margin-bottom:8px;}
  .profile-card p{font-size:14px; color:var(--ink-300);}

  /* ---- Section head ---- */
  .section-head{max-width:640px; margin:0 auto 44px; text-align:center;}
  .section-head h2{font-size:clamp(26px,4vw,38px); margin-bottom:12px;}
  .section-head p{color:var(--ink-300); font-size:15.5px;}

  /* ---- Expertise carousel ---- */
  .exp-wrap{position:relative;}
  .exp-scroll{
    display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
    padding:8px 4px 18px; scrollbar-width:none; -ms-overflow-style:none;
  }
  .exp-scroll::-webkit-scrollbar{display:none;}
  .exp-card{
    scroll-snap-align:start; flex:0 0 260px; position:relative; overflow:hidden;
    background:var(--bg-800); border:1px solid var(--line);
    border-top:3px solid var(--accent, var(--coral-500));
    border-radius:18px; padding:28px 26px;
    box-shadow:0 1px 2px rgba(15,23,42,0.04), 0 16px 30px -18px rgba(15,23,42,0.18);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  @media(min-width:1040px){ .exp-card{flex:1 1 0;} }
  .exp-card::after{
    content:''; position:absolute; top:-46px; right:-46px; width:120px; height:120px; border-radius:50%;
    background:radial-gradient(circle, var(--accent-soft, var(--coral-400)) 0%, transparent 72%);
    opacity:0.14; transition:opacity .25s ease, transform .3s ease; pointer-events:none;
  }
  .exp-card:hover{
    transform:translateY(-6px);
    box-shadow:0 1px 2px rgba(15,23,42,0.04), 0 30px 44px -20px rgba(15,23,42,0.28);
  }
  .exp-card:hover::after{opacity:0.26; transform:scale(1.18);}
  .exp-card:nth-child(5n+1){--accent:var(--indigo-500); --accent-soft:var(--indigo-400);}
  .exp-card:nth-child(5n+2){--accent:var(--coral-500); --accent-soft:var(--coral-400);}
  .exp-card:nth-child(5n+3){--accent:var(--amber-700); --accent-soft:var(--amber-500);}
  .exp-card:nth-child(5n+4){--accent:var(--coral-500); --accent-soft:var(--coral-400);}
  .exp-card:nth-child(5n+5){--accent:var(--indigo-700); --accent-soft:var(--indigo-500);}
  .exp-icon{
    position:relative; z-index:1;
    width:56px; height:56px; border-radius:50%;
    background:linear-gradient(135deg, var(--accent, var(--coral-500)), var(--accent-soft, var(--coral-400)));
    color:#fff; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:22px;
    box-shadow:0 10px 22px -8px var(--accent, var(--coral-500));
    transition:transform .3s ease;
  }
  .exp-card:hover .exp-icon{transform:scale(1.08) rotate(-4deg);}

  /* ---- Section asymétrique image / texte : casse la répétition "carte pleine largeur"
     sur les pages longues (utilisée une fois sur l'accueil, une fois sur services). ---- */
  .split-grid{display:grid; gap:44px; align-items:center;}
  @media(min-width:900px){ .split-grid{grid-template-columns:0.85fr 1.15fr;} }
  .split-media{border-radius:22px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 24px 50px -24px rgba(15,23,42,0.3);}
  .split-media img{width:100%; height:100%; object-fit:cover; display:block;}
  .split-list{display:flex; flex-direction:column; gap:20px; margin-top:26px;}
  .split-row{display:flex; gap:16px; align-items:flex-start;}
  .split-row .exp-icon{width:44px; height:44px; font-size:18px; margin:0; flex-shrink:0;}
  .split-row h3{font-size:16px; margin-bottom:4px;}
  .split-row p{font-size:13.5px; color:var(--ink-300); line-height:1.5;}

  /* ---- Fondateur / confiance : visage humain identifié, levier de confiance directement
     lié à la peur de "fausse agence" déjà traitée dans la section Situations. ---- */
  .founder-card{display:flex; gap:36px; align-items:center; background:var(--bg-800); border:1px solid var(--line); border-radius:24px; padding:40px;}
  @media(max-width:700px){ .founder-card{flex-direction:column; text-align:center; padding:32px 24px;} }
  .founder-photo{position:relative; width:110px; height:110px; border-radius:50%; flex-shrink:0; overflow:hidden; background:linear-gradient(135deg,var(--indigo-500),var(--coral-500)); display:flex; align-items:center; justify-content:center;}
  .founder-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .founder-initial{font-family:'Fraunces',serif; font-size:40px; font-weight:700; color:#fff;}
  .founder-text{flex:1; min-width:0;}
  .founder-quote{font-family:'Fraunces',serif; font-style:italic; font-size:17px; line-height:1.5; color:var(--ink-0); margin:14px 0 16px;}
  .founder-name{font-weight:700; font-size:15px; color:var(--ink-0);}
  .founder-role{font-size:13px; color:var(--ink-300);}
  .exp-card h3{position:relative; z-index:1; font-size:17.5px; margin-bottom:10px;}
  .exp-card p{position:relative; z-index:1; color:var(--ink-300); font-size:14px;}
  .exp-nav{
    position:absolute; top:110px; width:42px; height:42px; border-radius:50%;
    background:rgba(15,23,42,0.05); border:1px solid var(--line-strong); color:var(--ink-0);
    display:flex; align-items:center; justify-content:center; font-size:16px; z-index:5;
    backdrop-filter:blur(6px); transition:background .15s ease;
  }
  .exp-nav:hover{background:rgba(15,23,42,0.10);}
  .exp-nav.prev{left:-6px;}
  .exp-nav.next{right:-6px;}
  @media(min-width:1040px){ .exp-nav{display:none;} }

  /* ---- Timeline ---- */
  .timeline{background:#FDF3E2; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .tl-grid{display:grid; grid-template-columns:1fr; gap:20px;}
  @media(min-width:820px){ .tl-grid{grid-template-columns:repeat(2,1fr);} }
  .tl-card{background:var(--bg-800); border:1px solid var(--line); border-radius:18px; padding:26px; display:flex; gap:18px; transition:transform .15s ease, border-color .15s ease;}
  .tl-card:hover{transform:translateY(-2px); border-color:rgba(62,74,120,0.4);}
  .tl-num{
    flex-shrink:0; width:42px; height:42px; border-radius:12px; background:linear-gradient(135deg,var(--indigo-500),var(--indigo-400));
    color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:16px;
  }
  .tl-card h3{font-size:17.5px; margin-bottom:12px;}
  .tl-card ul{list-style:none;}
  .tl-card li{display:flex; gap:9px; font-size:14px; color:var(--ink-300); margin-bottom:9px; align-items:flex-start;}
  .tl-card li:last-child{margin-bottom:0;}
  .tl-check{color:var(--indigo-700); flex-shrink:0; margin-top:1px;}
  .tl-rail{position:relative; height:4px; background:var(--line-strong); border-radius:100px; margin:0 6px 46px;}
  .tl-rail-fill{position:absolute; inset:0; width:0%; background:linear-gradient(90deg, var(--indigo-500), var(--coral-500)); border-radius:100px; transition:width .3s ease;}
  .tl-rail-dot{position:absolute; top:50%; left:0; transform:translate(-50%,-50%); width:12px; height:12px; border-radius:50%; background:var(--bg-950); border:2px solid var(--line-strong); transition:border-color .25s ease, background .25s ease, transform .25s ease;}
  .tl-rail-dot[data-step="1"]{left:0%;}
  .tl-rail-dot[data-step="2"]{left:33.333%;}
  .tl-rail-dot[data-step="3"]{left:66.666%;}
  .tl-rail-dot[data-step="4"]{left:100%;}
  .tl-rail-dot.active{border-color:var(--coral-500); background:var(--coral-500); transform:translate(-50%,-50%) scale(1.15);}
  @media (prefers-reduced-motion: reduce){ .tl-rail-fill, .tl-rail-dot{transition:none;} }

  /* ---- Pricing ---- */
  .pricing-grid{display:grid; grid-template-columns:1fr; gap:20px; max-width:1040px; margin:0 auto;}
  @media(min-width:820px){ .pricing-grid{grid-template-columns:repeat(3,1fr);} }
  .price-card{
    background:var(--bg-800); border:1px solid var(--line); border-radius:20px; padding:30px 26px;
    display:flex; flex-direction:column; position:relative; transition:transform .15s ease, border-color .15s ease;
  }
  .price-card:hover{transform:translateY(-3px);}
  .price-card.featured{
    border-color:var(--coral-500); background:linear-gradient(160deg, var(--bg-700), var(--bg-800));
  }
  .price-badge{
    position:absolute; top:-13px; left:50%; transform:translateX(-50%);
    background:var(--amber-500); color:#1E2748; font-size:11.5px; font-weight:700; letter-spacing:0.03em;
    padding:5px 14px; border-radius:100px; white-space:nowrap;
  }
  .price-name{font-size:18px; font-family:'Fraunces',serif; font-weight:600; margin-bottom:6px;}
  .price-sub{font-size:13px; color:var(--ink-300); margin-bottom:18px; min-height:34px;}
  .price-amount{font-family:'Fraunces',serif; font-size:34px; font-weight:700; margin-bottom:2px;}
  .price-amount span{font-size:14px; font-weight:400; color:var(--ink-300); font-family:'Manrope',sans-serif;}
  .price-note{font-size:12px; color:var(--ink-500); margin-bottom:22px;}
  .price-features{list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:26px; flex:1;}
  .price-features li{display:flex; gap:9px; font-size:13.5px; color:var(--ink-300); align-items:flex-start;}
  .price-features li span{color:var(--indigo-700); flex-shrink:0; margin-top:1px;}
  .pricing-note{text-align:center; font-size:12.5px; color:var(--ink-500); margin-top:24px; font-style:italic;}
  .payment-methods{max-width:640px; margin:26px auto 0; text-align:center;}
  .payment-label{display:block; font-size:12px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-500); margin-bottom:12px;}
  .payment-row{display:flex; flex-wrap:wrap; justify-content:center; gap:10px;}
  .payment-chip{
    display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--ink-0);
    background:var(--bg-800); border:1px solid var(--line); padding:9px 16px; border-radius:100px;
    transition:transform .15s ease, border-color .15s ease;
  }
  .payment-chip:hover{transform:translateY(-1px); border-color:var(--line-strong);}
  .payment-dot{width:9px; height:9px; border-radius:50%; flex-shrink:0;}
  .icon-svg{display:inline-block; vertical-align:-2px; flex-shrink:0;}
  .btn .icon-svg{vertical-align:-3px; margin-right:2px;}
  .modal-close .icon-svg{vertical-align:-1px;}

  /* ---- Décor thématique (études / diplôme / voyage) ---- */
  .deco-wrap{position:relative; overflow:hidden;}
  .deco-icon{position:absolute; pointer-events:none; z-index:0;}
  .deco-wrap > .wrap, .deco-wrap > .section-head, .deco-wrap > .stats-grid{position:relative; z-index:1;}

  /* ---- Fond photo + voile de transparence pour la section avis (même principe que le hero) ---- */
  .avis-bg{
    background:
      linear-gradient(rgba(30,39,72,0.68), rgba(30,39,72,0.68)),
      url("img/hero-amphitheatre.jpg") center 40%/cover no-repeat;
  }
  /* Textes clairs pour rester lisibles sur le voile sombre (même teinte que le hero) */
  .avis-bg .section-head h2{color:#fff;}
  .avis-bg .section-head h2 .text-accent{color:var(--coral-500);}
  .avis-bg .section-head p{color:rgba(255,255,255,0.82);}
  .avis-bg .testi-note{color:rgba(255,255,255,0.6);}
  .avis-bg .eyebrow-dot{background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.22); color:#fff;}
  .avis-bg .eyebrow-dot::before{background:var(--indigo-400); box-shadow:0 0 8px var(--indigo-400);}

  /* ---- Countries ---- */
  .marquee-wrap{
    overflow:hidden; position:relative;
    -webkit-mask-image:linear-gradient(to right, transparent, black 6%, black 94%, transparent);
    mask-image:linear-gradient(to right, transparent, black 6%, black 94%, transparent);
  }
  .marquee-track{
    display:flex; gap:10px; width:max-content;
    animation:marquee-scroll 30s linear infinite;
  }
  .marquee-wrap:hover .marquee-track{animation-play-state:paused;}
  @keyframes marquee-scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  @media (prefers-reduced-motion: reduce){
    .marquee-track{animation:none;}
  }
  .country-chip{
    display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--ink-0);
    background:var(--bg-800); border:1px solid var(--line); padding:8px 16px 8px 10px; border-radius:100px;
    transition:transform .15s ease, border-color .15s ease;
  }
  .country-chip:hover{transform:translateY(-1px); border-color:var(--line-strong);}
  .country-chip svg.flag-icon{width:20px; height:14px; border-radius:2px; flex-shrink:0; display:block;}
  .testi-wrap{position:relative;}
  .testi-scroll{display:flex; gap:16px; overflow-x:auto; padding:4px 4px 14px; scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none;}
  .testi-scroll::-webkit-scrollbar{display:none;}
  .testi-card{
    scroll-snap-align:start; flex:0 0 300px; background:var(--bg-800); border:1px solid var(--line);
    border-radius:18px; padding:24px; transition:transform .15s ease, border-color .15s ease;
  }
  .testi-card:hover{transform:translateY(-3px); border-color:rgba(62,74,120,0.4);}
  @media(min-width:1040px){ .testi-card{flex:1 1 0;} }
  .testi-nav{
    position:absolute; top:90px; width:42px; height:42px; border-radius:50%;
    background:rgba(15,23,42,0.05); border:1px solid var(--line-strong); color:var(--ink-0);
    display:flex; align-items:center; justify-content:center; font-size:16px; z-index:5;
    backdrop-filter:blur(6px); transition:background .15s ease;
  }
  .testi-nav:hover{background:rgba(15,23,42,0.10);}
  .testi-nav.prev{left:-6px;}
  .testi-nav.next{right:-6px;}
  @media(min-width:1040px){ .testi-nav{display:none;} }
  .testi-top{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
  .testi-avatar{position:relative; overflow:hidden; flex-shrink:0; width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,var(--indigo-500),var(--coral-500)); display:flex; align-items:center; justify-content:center; font-weight:700; color:#fff;}
  .testi-avatar img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .testi-name{font-weight:700; font-size:14.5px;}
  .testi-role{font-size:12.5px; color:var(--ink-300);}
  .testi-stars{color:var(--amber-500); font-size:13px; margin-bottom:10px;}
  .testi-card p{font-size:14px; color:var(--ink-300);}
  .testi-note{text-align:center; font-size:12.5px; color:var(--ink-500); margin-top:10px; font-style:italic;}

  /* ---- Lead form ---- */
  .lead-panel{
    display:grid; grid-template-columns:1fr; gap:0; border-radius:24px; overflow:hidden; border:1px solid var(--line-strong);
    margin-bottom:24px;
  }
  @media(min-width:860px){ .lead-panel{grid-template-columns:0.9fr 1.1fr;} }
  .lead-left{
    background:
      linear-gradient(160deg, rgba(22,58,99,0.88), rgba(15,40,71,0.92)),
      url("img/contact-conseiller.jpg") center 30%/cover no-repeat;
    padding:40px 32px;
  }
  .lead-left h2{font-size:clamp(24px,3.6vw,30px); margin-bottom:14px; color:#fff;}
  .lead-left p{color:#C7D6E8; font-size:14.5px; max-width:40ch;}
  .lead-left .lead-points li{color:#C7D6E8;}
  .lead-left .lead-mini-contact{border-top:1px solid rgba(255,255,255,0.16);}
  .lead-left .lead-mini-contact p{color:#C7D6E8 !important;}
  .lead-left .contact-row div span{color:#8FA7C4;}
  .lead-left .contact-row div strong{color:#fff;}
  .lead-left .contact-icon{background:rgba(255,255,255,0.1); color:#fff;}
  .lead-left .tl-check{color:var(--amber-500);}
  .lead-points{margin-top:22px; display:flex; flex-direction:column; gap:12px;}
  .lead-points li{display:flex; gap:10px; font-size:14px; color:var(--ink-300); list-style:none;}
  .lead-mini-contact{margin-top:32px; padding-top:24px; border-top:1px solid var(--line);}
  .lead-right{background:var(--bg-950); padding:36px 32px;}
  .lead-grid2{display:grid; grid-template-columns:1fr; gap:14px;}
  @media(min-width:520px){ .lead-grid2{grid-template-columns:1fr 1fr;} }
  .cta-section{padding-top:0;}
  .cta-panel{
    display:grid; grid-template-columns:1fr; gap:0; border-radius:24px; overflow:hidden; border:1px solid var(--line-strong);
  }
  @media(min-width:860px){ .cta-panel{grid-template-columns:1fr 1fr;} }
  .cta-left{
    background:linear-gradient(160deg, var(--bg-800), var(--bg-900)); padding:40px 32px;
  }
  .cta-left h2{font-size:clamp(24px,3.6vw,30px); margin-bottom:14px;}
  .cta-left .kicker{color:var(--coral-400); font-weight:700; font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; display:block; margin-bottom:14px;}
  .cta-left p{color:var(--ink-300); font-size:14.5px; margin-bottom:26px; max-width:40ch;}
  .contact-row{display:flex; align-items:center; gap:14px; margin-bottom:18px; transition:transform .15s ease;}
  a.contact-row{border-radius:12px; padding:6px; margin:-6px -6px 12px;}
  a.contact-row:hover{transform:translateX(3px); background:var(--bg-700);}
  a.contact-row:last-child{margin-bottom:0;}
  .contact-icon{width:40px; height:40px; border-radius:11px; background:var(--bg-700); display:flex; align-items:center; justify-content:center; font-size:16px;}
  .contact-row div span{display:block; font-size:12px; color:var(--ink-500);}
  .contact-row div strong{font-size:14.5px; font-weight:700;}
  .cta-right{background:var(--bg-950); padding:40px 32px; display:flex; flex-direction:column; justify-content:center;}
  .cta-right h3{font-size:19px; margin-bottom:10px;}
  .cta-right p{color:var(--ink-300); font-size:14px; margin-bottom:22px;}

  /* ---- Footer ---- */
  footer{padding:48px 0 24px; background:#0F2138; color:#B9CBE0;}
  footer .footer-logo{color:#fff;}
  .footer-grid{display:grid; grid-template-columns:1fr; gap:30px; margin-bottom:34px;}
  @media(min-width:700px){ .footer-grid{grid-template-columns:1.2fr 0.8fr 0.8fr 0.9fr;} }
  .footer-logo{font-family:'Fraunces',serif; font-weight:700; font-size:19px; margin-bottom:10px; display:flex; align-items:center; gap:9px;}
  .footer-logo .logo-mark{width:28px; height:28px; border-radius:8px;}
  footer p.desc{color:#9FB6CE; font-size:14px; max-width:34ch;}
  footer h4{color:#fff; font-size:12.5px; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:14px;}
  footer li{list-style:none; margin-bottom:9px; font-size:14px; color:#B9CBE0;}
  footer li a:hover{color:#fff;}
  .social-row{display:flex; gap:10px; margin-top:6px;}
  .social-row a{width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.16); display:flex; align-items:center; justify-content:center; color:#B9CBE0; transition:background .15s ease, color .15s ease;}
  .social-row a:hover{background:rgba(255,255,255,0.16); color:#fff;}
  .social-row svg{width:16px; height:16px; fill:currentColor;}
  .footer-bottom{border-top:1px solid rgba(255,255,255,0.14); padding-top:20px; font-size:12.5px; color:#8FA7C4; display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between;}
  .footer-bottom a{color:#B9CBE0;}
  .footer-bottom a:hover{color:#fff;}

  /* ---- Modal / Auth ---- */
  .modal-overlay{
    position:fixed; inset:0; background:rgba(15,23,42,0.45); backdrop-filter:blur(3px);
    display:none; align-items:flex-end; justify-content:center; z-index:100;
  }
  .modal-overlay.open{display:flex;}
  @media(min-width:640px){ .modal-overlay{align-items:center; padding:20px;} }
  .modal{
    background:var(--bg-900); border:1px solid var(--line-strong); width:100%; max-width:420px;
    border-radius:22px 22px 0 0; padding:28px 24px 30px; max-height:90vh; overflow-y:auto;
  }
  @media(min-width:640px){ .modal{border-radius:22px;} }
  .modal-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:6px;}
  .modal-close{width:30px; height:30px; border-radius:50%; background:var(--bg-800); font-size:16px; color:var(--ink-300); border:1px solid var(--line);}
  .tabs{display:flex; background:var(--bg-800); border-radius:100px; padding:4px; margin:18px 0 22px; border:1px solid var(--line);}
  .tab-btn{flex:1; padding:9px; border-radius:100px; font-size:13.5px; font-weight:700; background:transparent; color:var(--ink-300);}
  .tab-btn.active{background:var(--bg-700); color:var(--ink-0);}
  .field{margin-bottom:14px;}
  .field label{display:block; font-size:12.5px; font-weight:700; color:var(--ink-300); margin-bottom:6px;}
  .field input, .field select, .field textarea{
    width:100%; padding:12px 14px; border:1.5px solid var(--line-strong); border-radius:12px; font-size:14.5px;
    font-family:inherit; background:var(--bg-950); color:var(--ink-0);
  }
  .field textarea{resize:vertical; min-height:80px;}
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--indigo-500);}
  .form-msg{font-size:13.5px; font-weight:600; line-height:1.5; padding:12px 14px; border-radius:10px; margin-bottom:14px; display:none;}
  .form-msg.show{display:block;}
  .form-msg.error{background:rgba(214,69,69,0.1); color:#C0392B; border:1px solid rgba(214,69,69,0.28);}
  .form-msg.success{background:rgba(29,140,89,0.1); color:#1D8C59; border:1px solid rgba(29,140,89,0.28);}
  .full{width:100%; justify-content:center;}
  .account-card{background:var(--bg-800); border:1px solid var(--line); border-radius:16px; padding:18px; text-align:center;}
  .star-pick{background:none; border:none; padding:2px; color:var(--bg-700); transition:color .1s ease, transform .1s ease;}
  .star-pick:hover{transform:scale(1.1);}
  .star-pick.active{color:var(--amber-500);}
  .avatar{
    width:54px; height:54px; border-radius:50%; background:linear-gradient(135deg,var(--indigo-500),var(--coral-500));
    color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:20px;
    margin:0 auto 12px;
  }
  .dossier-box{background:var(--bg-950); border:1px solid var(--line); border-radius:14px; padding:18px; margin-top:16px; text-align:left;}
  .dossier-box h4{font-size:13.5px; margin-bottom:2px;}
  .dossier-box .dossier-sub{font-size:12px; color:var(--ink-300); margin-bottom:14px;}
  .dossier-steps{display:flex; gap:6px; margin-bottom:14px;}
  .dossier-steps span{flex:1; height:6px; border-radius:100px; background:var(--bg-700);}
  .dossier-steps span.done{background:var(--indigo-500);}
  .dossier-list{display:flex; flex-direction:column; gap:8px;}
  .dossier-list div{display:flex; align-items:center; gap:9px; font-size:13px; color:var(--ink-300);}
  .dossier-list div.active{color:var(--ink-0); font-weight:700;}
  .dossier-dot{width:8px; height:8px; border-radius:50%; background:var(--bg-700); flex-shrink:0;}
  .dossier-dot.done{background:var(--indigo-500);}
  .dossier-dot.active{background:var(--coral-500);}
  .dossier-requests{display:flex; flex-direction:column; gap:10px;}
  .dossier-req{border:1px solid var(--line); border-radius:12px; padding:12px 14px; font-size:12.5px;}
  .dossier-req-top{display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:4px;}
  .dossier-req-ref{font-weight:700; font-family:monospace; letter-spacing:0.01em;}
  .dossier-req-meta{display:flex; justify-content:space-between; color:var(--ink-300); font-size:11.5px;}
  .dossier-req-badge{display:inline-block; padding:2px 9px; border-radius:100px; font-size:11px; font-weight:700; white-space:nowrap;}
  .dossier-req-badge.paid{background:rgba(45,166,131,.15); color:var(--indigo-500);}
  .dossier-req-badge.pending{background:rgba(230,168,63,.18); color:#B9821F;}
  .dossier-empty{font-size:12.5px; color:var(--ink-300); text-align:center; padding:14px 0;}
  .dossier-empty a{color:var(--coral-500); font-weight:700;}
  .dossier-loading{font-size:12.5px; color:var(--ink-300); text-align:center; padding:14px 0;}

  /* ---- Page "Mon dossier" complète ---- */
  .dossier-page-card{border:1px solid var(--line); border-radius:16px; padding:20px 22px; margin-bottom:16px; background:var(--bg-950);}
  .dossier-page-top{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:6px;}
  .dossier-page-ref{font-family:monospace; font-weight:700; font-size:15px; letter-spacing:0.01em;}
  .dossier-page-meta{display:flex; justify-content:space-between; color:var(--ink-300); font-size:13px; margin-bottom:14px;}
  .dossier-docs{border-top:1px solid var(--line); padding-top:12px; margin-top:2px;}
  .dossier-doc-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0;}
  .dossier-doc-name{display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink-0); word-break:break-word;}
  .dossier-doc-name svg{color:var(--indigo-500); flex-shrink:0;}
  .dossier-no-docs{font-size:12.5px; color:var(--ink-500); padding-top:2px;}

  /* ---- Tableau de bord admin : 3 colonnes reçue / en cours / traité ---- */
  .admin-board{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:44px;}
  @media(max-width:820px){ .admin-board{grid-template-columns:1fr;} }
  .admin-col{border:1px solid var(--line); border-radius:16px; background:var(--bg-950); overflow:hidden;}
  .admin-col-head{padding:15px 18px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; background:var(--bg-900);}
  .admin-col-head h3{font-size:13.5px; font-weight:700; display:flex; align-items:center; gap:8px; font-family:'Manrope',sans-serif;}
  .admin-col-dot{width:8px; height:8px; border-radius:50%; flex-shrink:0;}
  .admin-col-dot.received{background:var(--ink-500);}
  .admin-col-dot.progress{background:#B5720F;}
  .admin-col-dot.done{background:#1D8C59;}
  .admin-col-count{font-size:11.5px; font-weight:700; color:var(--ink-300); background:var(--bg-800); border:1px solid var(--line); padding:2px 9px; border-radius:100px;}
  .admin-col-list{max-height:380px; overflow-y:auto; padding:8px;}
  .admin-item{display:block; width:100%; text-align:left; padding:10px 12px; border-radius:10px; border:none; background:none; cursor:pointer; font-family:inherit; transition:background .15s ease;}
  .admin-item:hover{background:var(--bg-900);}
  .admin-item-ref{font-family:monospace; font-weight:700; font-size:12.5px; display:block; color:var(--ink-0);}
  .admin-item-name{font-size:12px; color:var(--ink-300); display:block; margin-top:2px;}
  .admin-col-empty{padding:22px 16px; text-align:center; font-size:12.5px; color:var(--ink-500);}
  .admin-col-loading{padding:22px 16px; text-align:center; font-size:12.5px; color:var(--ink-300);}

  @media (prefers-reduced-motion: reduce){ *{transition:none !important; scroll-behavior:auto !important;} }

/* ---- Full logo lockup (icon + STUDENTO + tagline, stacked, official artwork) ---- */
  .logo-full{
    display:block; background:url("img/logo-full.png") center/contain no-repeat;
  }
  a.logo, a.footer-logo{display:flex; align-items:center; text-decoration:none; width:fit-content;}
  .logo .logo-full{width:71px; height:52px;}
  .footer-logo .logo-full{width:163px; height:120px;}

  /* ---- Active page indicator in the nav ---- */
  .nav-links a{padding-bottom:4px; border-bottom:2px solid transparent;}
  .nav-links a.active{color:var(--ink-0); border-bottom-color:var(--coral-500);}
  .mobile-nav-panel a.active{background:var(--bg-900); color:var(--coral-500);}
  /* ---- Hiérarchie des CTA du header : Diagnostic gratuit = action dominante (bouton plein,
     toujours visible), WhatsApp = action secondaire, masquée sur mobile où le bouton flottant
     .wa-float prend déjà le relais pour ne pas surcharger la barre. ---- */
  @media(max-width:859px){ .nav-wa{display:none;} }
  .nav-toggle{
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:10px; background:var(--bg-800);
    border:1px solid var(--line-strong); color:var(--ink-0); flex-shrink:0;
  }
  @media(min-width:860px){ .nav-toggle{display:none;} }
  .mobile-nav-panel{
    display:none; flex-direction:column; gap:2px;
    position:absolute; left:16px; right:16px; top:100%; margin-top:8px;
    background:#fff; border:1px solid var(--line); border-radius:20px;
    padding:10px; box-shadow:0 16px 40px -12px rgba(15,23,42,0.28);
    z-index:60;
  }
  .mobile-nav-panel.open{display:flex;}
  .mobile-nav-panel a{padding:12px 14px; border-radius:12px; font-weight:700; font-size:14.5px; color:var(--ink-0);}
  .mobile-nav-panel a:hover{background:var(--bg-900);}
  @media(min-width:860px){ .mobile-nav-panel{display:none !important;} }

  /* ---- Anti-spam honeypot field (invisible trap for bots, never shown to real users) ---- */
  .hp-field{position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px; height:1px; overflow:hidden;}

  /* ---- Page header band (services / tarifs / contact / diagnostic) ---- */
  .page-header{padding:44px 0 6px; text-align:center;}
  .page-header .wrap{max-width:640px; margin:0 auto;}
  .page-header h1{font-family:'Fraunces',serif; font-weight:600; font-size:clamp(28px,4.4vw,42px); margin:14px 0 10px; line-height:1.12;}
  .page-header p{color:var(--ink-300); font-size:15.5px;}

  /* ---- Page hero band with full-bleed photo (services / tarifs / contact / diagnostic) ---- */
  /* Hauteur fixe (pas juste un plancher) : garantit un bandeau strictement identique sur
     les 6 pages, quelle que soit la longueur du h1/paragraphe de chacune. */
  .page-hero{
    position:relative; overflow:hidden; background:var(--bg-950);
    margin-top:-78px; padding:0; height:560px;
    display:flex; flex-direction:column; justify-content:center;
  }
  .page-hero-photo{position:absolute; left:0; right:0; top:-9%; z-index:0; width:100%; height:118%; object-fit:cover; object-position:center; will-change:transform;}
  @media (prefers-reduced-motion: reduce){ .page-hero-photo{top:0; height:100%;} }
  .page-hero .wrap{position:relative; z-index:2; max-width:620px;}
  .page-hero .eyebrow-dot{background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.22); color:#fff;}
  .page-hero .eyebrow-dot::before{background:var(--indigo-400); box-shadow:0 0 8px var(--indigo-400);}
  .page-hero h1{font-family:'Fraunces',serif; font-weight:700; font-size:clamp(30px,5vw,46px); margin:16px 0 14px; line-height:1.12; color:#fff;}
  .page-hero p{font-size:16.5px; color:rgba(255,255,255,0.86); max-width:54ch;}
  @media(max-width:600px){ .page-hero{height:460px;} }

  /* ---- Diagnostic CTA band (shared across pages) ---- */
  .diag-cta{padding:52px 0; background:linear-gradient(160deg, #163A63, #0F2847);}
  .diag-cta-inner{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px;}
  .diag-cta h3{font-family:'Fraunces',serif; font-weight:600; font-size:clamp(20px,2.8vw,26px); color:#fff; margin-bottom:8px;}
  .diag-cta p{color:#C7D6E8; font-size:14.5px; max-width:480px;}
  .diag-cta .btn{flex-shrink:0;}

  /* ---- Domaines d'expertise — bento grid (services page) : tailles variées pour
     hiérarchiser visuellement les 5 domaines plutôt que de les présenter à poids égal. ---- */
  .bento-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:200px 200px 150px; gap:18px;}
  .bento-tile{
    position:relative; background:var(--bg-800); border:1px solid var(--line); border-radius:20px;
    padding:26px; display:flex; flex-direction:column; overflow:hidden;
    transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  }
  .bento-tile:hover{transform:translateY(-3px); border-color:rgba(15,23,42,0.2); box-shadow:0 18px 36px -20px rgba(15,23,42,0.28);}
  .bento-tile .exp-icon{width:48px; height:48px; margin-bottom:16px; font-size:19px;}
  .bento-tile h3{font-size:16.5px; margin-bottom:6px;}
  .bento-sub{font-size:12px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:10px;}
  .bento-desc{font-size:13.5px; color:var(--ink-300); line-height:1.55;}
  .bento-features{list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:9px;}
  .bento-features li{display:flex; align-items:flex-start; gap:8px; font-size:12.5px; color:var(--ink-300); line-height:1.4;}
  .bento-features li svg{color:var(--accent); flex-shrink:0; margin-top:2px;}
  .bento-cta{margin-top:auto; padding-top:18px; font-size:13.5px; font-weight:700; color:var(--accent);}

  .bento-a{grid-column:1/3; grid-row:1/3;}
  .bento-a .exp-icon{width:58px; height:58px; font-size:22px;}
  .bento-a h3{font-size:21px;}
  .bento-b{grid-column:3/5; grid-row:1/2;}
  .bento-c{grid-column:3/4; grid-row:2/3;}
  .bento-d{grid-column:4/5; grid-row:2/3;}
  .bento-e{grid-column:1/5; grid-row:3/4; flex-direction:row; align-items:center; gap:22px;}
  .bento-e .exp-icon{margin-bottom:0; flex-shrink:0;}
  .bento-e-text{flex:1; min-width:0;}
  .bento-e .bento-cta{margin-top:0; padding-top:0; flex-shrink:0;}

  @media(max-width:760px){
    .bento-grid{grid-template-columns:1fr; grid-template-rows:none;}
    .bento-a, .bento-b, .bento-c, .bento-d, .bento-e{grid-column:1/2; grid-row:auto;}
    .bento-e{flex-direction:column; align-items:flex-start; gap:0;}
  }

  /* ---- Services teaser (index page) ---- */
  .services-teaser-grid{display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:30px;}
  @media(min-width:700px){ .services-teaser-grid{grid-template-columns:repeat(3,1fr);} }
  .services-teaser-card{border:1px solid var(--line); border-radius:16px; padding:22px; text-align:center; background:var(--bg-800);}
  .services-teaser-card .exp-icon{margin:0 auto 12px;}
  .services-teaser-card h3{font-size:15.5px; margin-bottom:4px;}
  .services-teaser-card p{font-size:13.5px; color:var(--ink-300);}
  .services-teaser-cta{text-align:center;}

  /* ---- Nos agences (contact page) ---- */
  .agences-grid{display:grid; grid-template-columns:1fr; gap:20px; align-items:start;}
  @media(min-width:760px){ .agences-grid{grid-template-columns:1fr 1.3fr;} }
  .agence-card{
    background:var(--bg-800); border:1px solid var(--line); border-radius:20px; padding:26px;
    display:flex; flex-direction:column;
  }
  .agence-name{
    display:flex; align-items:center; gap:12px; font-family:'Fraunces',serif; font-weight:600;
    font-size:18px; margin-bottom:18px;
  }
  .agence-card .contact-row{margin-bottom:14px;}
  .agence-card .contact-row:last-of-type{margin-bottom:0;}
  .agence-map-full{
    margin-top:20px; border-radius:20px; overflow:hidden; border:1px solid var(--line);
    aspect-ratio:16/6;
  }
  .agence-map-full iframe{width:100%; height:100%; border:0; display:block;}
  @media(max-width:600px){ .agence-map-full{aspect-ratio:4/3;} }

  /* ---- Diagnostic form page ---- */
  .diag-hero{padding:52px 0 26px; text-align:center;}
  .diag-hero .wrap{max-width:680px; margin:0 auto;}
  .diag-hero h1{font-family:'Fraunces',serif; font-weight:600; font-size:clamp(28px,4.6vw,44px); margin:14px 0 12px; line-height:1.1;}
  .diag-hero p{color:var(--ink-300); font-size:15.5px;}
  .diag-form-section{padding:8px 0 84px;}
  .diag-form-section .wrap{max-width:720px; margin:0 auto;}
  .diag-card{background:var(--bg-800); border:1px solid var(--line); border-radius:22px; padding:30px; box-shadow:0 24px 60px -34px rgba(15,23,42,0.35);}
  @media(max-width:560px){ .diag-card{padding:22px 18px;} }
  .diag-progress{margin-bottom:26px;}
  .diag-progress-bar{height:7px; border-radius:100px; background:var(--bg-700); overflow:hidden; margin-bottom:10px;}
  .diag-progress-bar > span{display:block; height:100%; background:linear-gradient(90deg, var(--coral-500), var(--amber-500)); border-radius:100px; transition:width .3s ease;}
  .diag-progress-label{font-size:13px; font-weight:700; color:var(--ink-300);}
  .diag-progress-label b{color:var(--ink-0);}
  .diag-step{display:none;}
  .diag-step.active{display:block; animation:heroTextIn .4s ease;}
  .diag-step h2{font-size:19px; margin-bottom:4px;}
  .diag-step > p.diag-step-hint{color:var(--ink-300); font-size:13.5px; margin-bottom:22px;}
  .diag-field{margin-bottom:22px;}
  .diag-field:last-child{margin-bottom:0;}
  .diag-field > label, .diag-field > .diag-label{display:block; font-size:13.5px; font-weight:700; color:var(--ink-0); margin-bottom:10px;}
  .diag-field .diag-label small{display:block; font-weight:500; color:var(--ink-300); font-size:12px; margin-top:2px;}
  .diag-grid2{display:grid; grid-template-columns:1fr; gap:20px;}
  @media(min-width:560px){ .diag-grid2{grid-template-columns:1fr 1fr;} }
  .diag-pill-row{display:flex; gap:9px; flex-wrap:wrap;}
  .diag-pill{position:relative;}
  .diag-pill input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
  .diag-pill span{display:inline-flex; align-items:center; padding:10px 17px; border-radius:100px; border:1px solid var(--line-strong); font-size:13.5px; font-weight:700; color:var(--ink-300); transition:all .15s ease; cursor:pointer;}
  .diag-pill input:checked + span{background:var(--coral-500); border-color:var(--coral-500); color:#fff;}
  .diag-pill input:focus-visible + span{outline:2px solid var(--coral-400); outline-offset:2px;}

  /* ---- Choix du service (demande-attestation.html) ---- */
  .service-choice{display:grid; grid-template-columns:1fr; gap:12px;}
  @media(min-width:560px){ .service-choice{grid-template-columns:1fr 1fr;} }
  .service-choice-card{
    text-align:left; display:flex; flex-direction:column; gap:5px; width:100%;
    padding:18px 20px; border-radius:16px; border:1.5px solid var(--line-strong);
    background:var(--bg-900); cursor:pointer; transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
    font-family:inherit;
  }
  .service-choice-card:hover{border-color:var(--ink-500);}
  .service-choice-card.selected{border-color:var(--coral-500); background:rgba(255,155,3,0.07); box-shadow:0 0 0 1px var(--coral-500);}
  .service-choice-title{font-size:14.5px; font-weight:700; color:var(--ink-0);}
  .service-choice-desc{font-size:12.5px; color:var(--ink-300); line-height:1.5;}
  .service-choice-price{font-family:'Fraunces',serif; font-size:21px; font-weight:700; color:var(--coral-500); margin-top:2px;}
  .service-choice-change{
    margin-top:12px; background:none; border:none; padding:0; cursor:pointer;
    font-size:12.5px; font-weight:700; color:var(--ink-300); text-decoration:underline;
  }
  .service-choice-change:hover{color:var(--ink-0);}

  /* ---- Regroupements de champs (demande-attestation.html) ---- */
  .diag-group-title{
    font-size:12px; font-weight:800; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink-500); margin:28px 0 14px; padding-top:22px; border-top:1px solid var(--line);
  }
  .diag-group-title:first-of-type{margin-top:22px;}

  /* ---- Suggestions d'adresse (API adresse.data.gouv.fr) ---- */
  .addr-autocomplete{position:relative;}
  .addr-suggestions{position:absolute; top:100%; left:0; right:0; z-index:20; background:#fff; border:1px solid var(--line-strong); border-radius:12px; margin-top:4px; max-height:230px; overflow-y:auto; box-shadow:0 16px 30px -10px rgba(15,23,42,0.28); display:none;}
  .addr-suggestions.open{display:block;}
  .addr-suggestion-item{padding:10px 14px; font-size:13.5px; color:var(--ink-0); cursor:pointer;}
  .addr-suggestion-item:hover, .addr-suggestion-item.active{background:var(--bg-900);}

  /* ---- Modern text/select inputs within the diagnostic ---- */
  .diag-field input[type="text"], .diag-field input[type="email"], .diag-field input[type="tel"], .diag-field input[type="date"], .diag-field select{
    width:100%; padding:13px 16px; border-radius:14px; border:1.5px solid var(--line-strong);
    background:var(--bg-900); font-family:inherit; font-size:14.5px; color:var(--ink-0);
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .diag-field input[type="text"]::placeholder, .diag-field input[type="email"]::placeholder, .diag-field input[type="tel"]::placeholder{color:var(--ink-500);}
  .diag-field input[type="text"]:hover, .diag-field input[type="email"]:hover, .diag-field input[type="tel"]:hover, .diag-field input[type="date"]:hover, .diag-field select:hover{border-color:var(--ink-500);}
  .diag-field input[type="text"]:focus, .diag-field input[type="email"]:focus, .diag-field input[type="tel"]:focus, .diag-field input[type="date"]:focus, .diag-field select:focus{
    outline:none; border-color:var(--coral-500); background:#fff; box-shadow:0 0 0 4px rgba(255,155,3,0.14);
  }
  .diag-field select{
    cursor:pointer; appearance:none; -webkit-appearance:none; -moz-appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'><path d='M1 1l4.5 4.5L10 1' fill='none' stroke='%2355636F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat:no-repeat; background-position:right 16px center; background-size:11px; padding-right:40px;
  }
  .diag-field .combo-btn{border-radius:14px; padding:13px 16px; background:var(--bg-900); transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;}
  .diag-field .combo-btn:hover{border-color:var(--ink-500);}
  .diag-field .combo-btn.dg-error{border-color:#E0483E;}
  .dg-error-msg{display:none; color:#E0483E; font-size:12.5px; font-weight:600; margin-top:8px;}
  .dg-error-msg.show{display:block;}

  /* ---- Vérification d'email en tâche de fond (assets/email-check.js) ---- */
  .email-check-hint{display:none; font-size:12.5px; margin-top:7px; color:var(--ink-500);}
  .email-check-hint.show{display:block;}
  .email-check-hint.checking{color:var(--ink-500);}
  .email-check-hint.error{color:#E0483E; font-weight:600;}

  /* ---- Texte d'aide générique sous un champ (ex: "rempli automatiquement") ---- */
  .field-hint{font-size:12.5px; margin-top:7px; color:var(--ink-500);}
  .diag-check-grid{display:grid; grid-template-columns:1fr 1fr; gap:9px;}
  .diag-check{position:relative;}
  .diag-check input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
  .diag-check span{display:flex; align-items:center; gap:8px; padding:11px 14px; border-radius:12px; border:1px solid var(--line-strong); font-size:13.5px; font-weight:600; color:var(--ink-300); cursor:pointer;}
  .diag-check span::before{content:''; width:16px; height:16px; border-radius:5px; border:1.5px solid var(--line-strong); flex-shrink:0;}
  .diag-check input:checked + span{border-color:var(--coral-500); background:rgba(255,155,3,0.08); color:var(--ink-0);}
  .diag-check input:checked + span::before{background:var(--coral-500); border-color:var(--coral-500);}
  .diag-sub{margin-top:14px; padding-left:16px; border-left:2px solid var(--line);}
  .diag-conditional{display:none;}
  .diag-conditional.show{display:block;}
  .diag-nav{display:flex; justify-content:space-between; align-items:center; margin-top:30px; gap:12px;}
  .diag-summary{border:1px solid var(--line); border-radius:16px; padding:6px 20px; margin-bottom:22px; background:var(--bg-900);}
  .diag-summary-row{display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
  .diag-summary-row:last-child{border-bottom:none;}
  .diag-summary-row span:first-child{color:var(--ink-300); flex-shrink:0;}
  .diag-summary-row span:last-child{font-weight:700; text-align:right;}
  .diag-reco{margin-bottom:22px;}
  .diag-reco h3{font-size:15px; margin-bottom:12px;}
  .diag-reco-list{display:flex; flex-direction:column; gap:10px;}
  .diag-reco-item{display:flex; align-items:center; gap:12px; padding:13px 16px; border-radius:14px; background:rgba(255,155,3,0.08); border:1px solid rgba(255,155,3,0.22);}
  .diag-reco-item .exp-icon{width:36px; height:36px; margin:0; flex-shrink:0;}
  .diag-reco-item span{font-size:13.5px; font-weight:700; color:var(--ink-0);}
  .diag-success{text-align:center; padding:10px 4px 4px;}
  .diag-success .icon-wrap{width:60px; height:60px; border-radius:50%; background:rgba(255,155,3,0.14); color:var(--coral-500); display:flex; align-items:center; justify-content:center; margin:0 auto 18px;}
  .diag-success .icon-wrap.pulse{animation:iconPulse 1.6s ease-in-out infinite;}
  @keyframes iconPulse{0%,100%{transform:scale(1); opacity:1;} 50%{transform:scale(1.08); opacity:0.75;}}
  @media (prefers-reduced-motion: reduce){ .diag-success .icon-wrap.pulse{animation:none;} }
  .diag-success h2{margin-bottom:8px;}
  .diag-success p{color:var(--ink-300); font-size:14.5px; margin-bottom:22px;}

  /* ---- Choix du moyen de paiement (demande-attestation.html) ---- */
  .pay-method-badge{position:absolute; top:-10px; right:14px; font-size:11px; font-weight:700; padding:4px 10px; border-radius:100px; background:var(--coral-700, #C97300); color:#fff; box-shadow:0 2px 6px rgba(0,0,0,0.2);}

  /* ---- Bannière d'information paiement (demande-attestation.html) ---- */
  .pay-security-note{
    display:flex; align-items:flex-start; gap:12px; padding:16px 18px; border-radius:14px;
    background:rgba(245,166,35,0.1); border:1px solid rgba(245,166,35,0.32); color:var(--amber-700);
    font-size:13.5px; line-height:1.55; margin-bottom:22px;
  }
  .pay-security-note svg{flex-shrink:0; margin-top:2px; color:var(--amber-500);}
  .pay-security-note strong{color:var(--ink-0);}

  /* ---- Bloc récap + paiement (demande-attestation.html, étape finale) ---- */
  .pay-amount-box{
    display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px;
    border-radius:14px; background:rgba(245,166,35,0.1); border:1px solid rgba(245,166,35,0.32);
    margin-bottom:20px;
  }
  .pay-amount-label{font-size:13.5px; font-weight:700; color:var(--ink-0);}
  .pay-amount-sub{font-size:12px; color:var(--amber-700);}
  .pay-amount-value{display:flex; align-items:center; gap:7px; font-size:19px; font-weight:800; color:var(--coral-500); white-space:nowrap;}

  .pay-terms-note{text-align:center; font-size:12.5px; color:var(--ink-500); margin-bottom:20px;}
  .pay-terms-note a{color:var(--indigo-700); text-decoration:underline;}

  .pay-actions-row{display:flex; gap:12px; margin-bottom:24px;}
  .pay-actions-row .btn:first-child{flex-shrink:0;}
  .pay-primary-btn{position:relative; flex:1; justify-content:center;}
  @media(max-width:480px){ .pay-actions-row{flex-direction:column-reverse;} .pay-actions-row .btn:first-child{flex-shrink:1;} }

  .pay-divider{display:flex; align-items:center; gap:14px; margin-bottom:16px; color:var(--ink-500); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em;}
  .pay-divider::before, .pay-divider::after{content:''; flex:1; height:1px; background:var(--line);}

  .pay-alt-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px;}
  .pay-alt-row .btn{flex:1 1 200px; justify-content:center;}

  .pay-secure-footnote{text-align:center; font-size:12px; color:var(--ink-500); line-height:1.7;}

  /* ---- Panneaux d'instructions de paiement manuel (virement / espèces) ---- */
  .instr-panel{text-align:left;}
  .instr-panel .icon-wrap{margin:0 auto 16px;}
  .instr-panel h2{text-align:center;}
  .instr-lead{text-align:center; color:var(--ink-300); font-size:14px; margin-bottom:24px;}

  .instr-warning{display:flex; gap:12px; background:rgba(224,72,62,0.08); border:1px solid rgba(224,72,62,0.28); border-radius:14px; padding:16px 18px; margin-bottom:22px;}
  .instr-warning svg{flex-shrink:0; margin-top:2px; color:#E0483E;}
  .instr-warning-body{flex:1; min-width:0;}
  .instr-warning-title{font-weight:700; color:#E0483E; font-size:13.5px; margin-bottom:10px;}
  .instr-ref-box{display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fff; border:1.5px dashed var(--line-strong); border-radius:10px; padding:11px 14px;}
  .instr-ref-code{font-family:'SFMono-Regular', Consolas, monospace; font-size:15.5px; font-weight:800; color:var(--ink-0); letter-spacing:0.02em; word-break:break-all;}
  .instr-copy-btn{flex-shrink:0; padding:7px 12px; border-radius:8px; border:1px solid var(--line-strong); background:var(--bg-800); font-size:12px; font-weight:700; color:var(--ink-0); cursor:pointer; white-space:nowrap; font-family:inherit;}
  .instr-copy-btn:hover{background:var(--bg-700);}

  .instr-section{margin-bottom:22px;}
  .instr-section h3{font-size:14px; margin-bottom:10px; color:var(--ink-0);}
  .instr-bank-grid{display:grid; grid-template-columns:auto 1fr; gap:9px 16px; font-size:13.5px; background:var(--bg-900); border:1px solid var(--line); border-radius:12px; padding:15px 16px;}
  .instr-bank-grid dt{color:var(--ink-500); font-weight:600;}
  .instr-bank-grid dd{font-weight:700; color:var(--ink-0); text-align:right;}
  .instr-note{font-size:12.5px; color:var(--ink-500); margin-top:10px; line-height:1.5;}

  .instr-steps{counter-reset:instr-step; list-style:none; padding:0; margin:0;}
  .instr-steps li{position:relative; padding-left:34px; margin-bottom:13px; font-size:13.5px; color:var(--ink-300); line-height:1.6;}
  .instr-steps li:last-child{margin-bottom:0;}
  .instr-steps li::before{counter-increment:instr-step; content:counter(instr-step); position:absolute; left:0; top:0; width:22px; height:22px; border-radius:50%; background:var(--indigo-500); color:#fff; font-size:11.5px; font-weight:700; display:flex; align-items:center; justify-content:center;}
  .instr-steps strong{color:var(--ink-0);}

  .instr-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
  .instr-actions .btn{flex:1 1 220px; justify-content:center;}
