/* Notre réseau international : carte interactive sur fond beige du site, repères, cartes pays */
.netviz{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:40px;align-items:center;margin:26px 0 30px;padding:34px 36px;color:#17313e;
  background:radial-gradient(90% 70% at 12% 0%,#fbf8f2 0%,rgba(251,248,242,0) 60%),var(--brand-ivory);border:1px solid var(--border-soft);box-shadow:0 24px 60px rgba(6,25,39,.08)}
.netviz-left{min-width:0}
.netviz-stage{position:relative}
.netviz-map{display:block;width:100%;height:auto;border-radius:0}
.netviz-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.netviz-legend{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px;font:600 12.5px/1.4 Inter,-apple-system,"Segoe UI",sans-serif;color:#3f5560}
.netviz-legend li{display:flex;align-items:center;gap:8px}
.netviz-legend i{width:13px;height:13px;border-radius:3px;display:inline-block}
.netviz-legend .l-net{background:var(--brand-blue)}.netviz-legend .l-maroc{background:var(--brand-gold)}
.netviz-side{display:grid;gap:30px;min-width:0}
.netviz-points{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.netviz-points li{display:flex;align-items:center;gap:16px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(17px,1.4vw,21px);line-height:1.3;color:#17313e}
.netviz .netviz-points svg{flex:none;width:42px;height:42px;fill:#0b3047;border-radius:0}
.netviz-card{min-height:150px;padding:20px 22px;background:#fff;border:1px solid var(--border-soft);border-left:3px solid #d3ad6a;box-shadow:0 14px 34px rgba(6,25,39,.06)}
.netviz-card .nv-hint{margin:0;font-size:13.5px;line-height:1.7;color:#5a6e75}
.netviz-card .nv-k{display:block;font:700 10px/1 Inter,-apple-system,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-gold-deep)}
.netviz-card strong{display:block;margin:10px 0 2px;font:400 24px/1.15 Georgia,serif;color:#061927}
.netviz-card .nv-cap{font-size:13px;color:#5a6e75}
.netviz-card p{margin:10px 0 14px;font-size:13px;line-height:1.65;color:#5a6e75}
.netviz-card .nv-cta{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;background:#061927;color:#fff;font:800 10.5px/1 Inter,-apple-system,sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.netviz-card .nv-cta:hover{background:#0b3047}
.netviz-card .nv-cta:focus-visible{outline:2px solid #d3ad6a;outline-offset:2px}
.netviz-tip{position:absolute;z-index:6;transform:translate(-50%,-100%);margin-top:-16px;min-width:170px;padding:10px 14px 11px;background:#061927;border:1px solid #d3ad6a;box-shadow:0 14px 34px rgba(6,25,39,.35);pointer-events:none;font-family:Inter,-apple-system,"Segoe UI",sans-serif}
.netviz-tip[hidden]{display:none}
.netviz-tip.below{transform:translate(-50%,0);margin-top:16px}
.netviz-tip strong{display:block;font:400 17px/1.2 Georgia,serif;color:#fff}
.netviz-tip span{display:block;margin-top:3px;font-size:12px;color:#c9d9df}
.netviz-tip em{display:block;margin-top:5px;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-gold-light)}
/* couche interactive */
.nv-arc{stroke:var(--brand-gold-deep);stroke-opacity:.6;stroke-width:1.1;transition:stroke-opacity .2s,stroke-width .2s}
.netviz-stage.has-focus .nv-arc{stroke-opacity:.12}
.netviz-stage.has-focus .nv-arc.on{stroke-opacity:1;stroke-width:2.6;filter:url(#nvGlow)}
.nv-dot{cursor:pointer;outline:none}
.nv-hit{fill:transparent}
.nv-vis{fill:#fff;stroke:#061927;stroke-width:1.7;transform-box:fill-box;transform-origin:center;transition:transform .18s ease,fill .18s}
.nv-dot:hover .nv-vis,.nv-dot.on .nv-vis,.nv-dot:focus-visible .nv-vis{transform:scale(1.75);fill:var(--brand-gold);filter:url(#nvGlow)}
.nv-dot.sel .nv-vis{fill:var(--brand-gold)}
.nv-pin{fill:#061927;stroke:var(--brand-ivory);stroke-width:1.4}
.nv-pin-dot{fill:var(--brand-gold)}
.nv-hub-dot{fill:#fff;stroke:#061927;stroke-width:2}
.nv-hub-label{font:700 22px Georgia,serif;fill:#061927;paint-order:stroke;stroke:var(--brand-ivory);stroke-width:5px;stroke-linejoin:round}
.nv-hub-sub{font:700 9.5px Inter,Arial,sans-serif;letter-spacing:2px;fill:var(--brand-gold-deep);paint-order:stroke;stroke:var(--brand-ivory);stroke-width:4px;stroke-linejoin:round}
.nv-pulse{fill:none;stroke:var(--brand-gold-deep);stroke-width:1.6;opacity:0}
@media(prefers-reduced-motion:no-preference){
  .nv-pulse{transform-box:fill-box;transform-origin:center;animation:nvp 2.8s ease-out infinite}
  .nv-pulse2{animation-delay:1.4s}
  @keyframes nvp{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.4);opacity:0}}
}
/* cartes des pays : grand drapeau, nom lisible, capitale */
.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px;margin:26px 0 8px}
.country{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:158px;padding:22px 12px 18px;text-align:center;background:#fff;border:1px solid var(--border-soft);border-top:3px solid var(--border-soft);font-size:inherit;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}
.country .flag{font-size:52px;line-height:1;filter:drop-shadow(0 4px 6px rgba(6,25,39,.18))}
.country .cname{font:400 18px/1.25 Georgia,"Times New Roman",serif;color:#061927;text-wrap:balance}
.country small{font:700 10px/1 Inter,-apple-system,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-gold-deep)}
.country:hover,.country.on{transform:translateY(-4px);border-color:var(--border-soft);border-top-color:#d3ad6a;box-shadow:0 18px 38px rgba(6,25,39,.12)}
.country.nv-link{cursor:pointer}
.country.on{background:#fff8e9}
.network-map-wrap{background:transparent!important;padding:0!important;border:0!important;box-shadow:none!important}
.network-map-wrap .netviz{margin:34px 0 0}
.network-map-wrap .network-copy{color:#5a6e75!important;margin-top:18px}
@media(max-width:1000px){.netviz{grid-template-columns:1fr;gap:28px}}
@media(max-width:800px){
  .netviz{padding:20px 14px 22px;gap:22px}
  .netviz-points{gap:16px}
  .netviz .netviz-points svg{width:34px;height:34px}
  .netviz-card{min-height:0}
  .netviz-tip{min-width:0;padding:7px 11px 8px;margin-top:-12px}
  .netviz-tip em{display:none}
  .netviz-tip strong{font-size:15px}
  .country-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .country{min-height:138px;padding:18px 8px 14px}
  .country .flag{font-size:44px}
  .country .cname{font-size:16px}
}

/* Présentation : phrase de signature */
.prose .pres-signature{margin:26px 0 8px;padding:6px 0 6px 18px;border-left:3px solid #d3ad6a;font-family:Georgia,"Times New Roman",serif;font-size:clamp(18px,1.5vw,22px);line-height:1.5;color:#0b3047}
.prose p.lead{font-family:Georgia,"Times New Roman",serif;font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:#294a58}
