.gl{position:relative; width:100%; max-width:clamp(300px,36vw,470px); margin-inline:auto}
.gl-stage{position:relative; width:100%; aspect-ratio:1/1; touch-action:none}
.gl-c{display:block; width:100%; height:100%}
.gl-tip{
  position:absolute; z-index:6; pointer-events:none; translate:-50% -100%;
  padding:5px 11px; border-radius:8px; white-space:nowrap;
  background:rgba(22,36,12,.92); color:#fff; font-size:12px; font-weight:600; letter-spacing:.01em;
  opacity:0; transition:opacity .2s linear;
}
.gl-tip.on{opacity:1}
.gl-z{position:absolute; right:6px; top:6px; z-index:6; display:grid; gap:5px}
.gl-zb{
  width:34px; height:34px; display:grid; place-items:center; border-radius:9px;
  background:#fff; border:1px solid var(--line); color:var(--ink-2);
  transition:background .3s, color .3s, opacity .3s, transform .3s var(--ease);
}
.gl-zb svg{width:16px; height:16px}
.gl-zb:hover{background:var(--soft); color:var(--green-d); transform:translateY(-1px)}
.gl-zb:disabled{opacity:.34; pointer-events:none}
.gl-t{
  display:flex; flex-wrap:nowrap; gap:5px; justify-content:flex-start; align-items:center;
  margin-top:14px; margin-inline:-38px; padding-inline:38px;
  overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-block:2px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}
.gl-t.fit{justify-content:center; overflow:visible; -webkit-mask-image:none; mask-image:none}
.gl-tw{position:relative}
.gl-ar{
  position:absolute; top:50%; translate:0 -50%; z-index:3;
  width:28px; height:28px; display:grid; place-items:center; border-radius:50%;
  background:#fff; border:1px solid var(--line); color:var(--ink-2);
  opacity:0; pointer-events:none; transition:opacity .3s, transform .3s var(--ease);
}
.gl-ar.on{opacity:1; pointer-events:auto}
.gl-ar:hover{transform:translateY(-50%) scale(1.08); color:var(--green-d)}
.gl-ar svg{width:14px; height:14px}
.gl-ar.l{left:-2px}
.gl-ar.r{right:-2px}
.gl-t::-webkit-scrollbar{display:none}
.gl-tb{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:6px;
  padding:7px 10px; border-radius:9px; white-space:nowrap;
  border:1px solid var(--line); background:#fff; color:var(--ink-2);
  font-size:11.4px; font-weight:600; letter-spacing:.002em;
  transition:background .32s var(--ease), color .32s, border-color .32s, transform .32s var(--ease);
}
.gl-tb span{font-size:12.5px; line-height:1}
.gl-tb:hover{border-color:var(--pousse); background:var(--soft-2); transform:translateY(-2px)}
.gl-tb.on{background:var(--green); border-color:var(--green); color:#fff}
.gl-p{
  position:absolute; left:50%; bottom:0; translate:-50% 0; width:min(372px,100%); z-index:7;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  padding:13px 15px 12px; box-shadow:0 18px 44px -20px rgba(22,36,12,.3);
  opacity:0; visibility:hidden; transform:translateY(14px) scale(.975); transform-origin:bottom center;
  transition:opacity .42s var(--ease), transform .42s var(--ease), visibility .42s;
  text-align:left;
}
.gl-p.open{opacity:1; visibility:visible; transform:translateY(0) scale(1)}
.gl-hd{display:flex; align-items:center; gap:10px; margin-bottom:10px}
.gl-fl{font-size:25px; line-height:1}
.gl-hd h4{font-size:15.6px; margin:0; color:var(--ink)}
.gl-role{display:block; font-size:10.2px; line-height:1.3; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--gold-d)}
.gl-x{margin-left:auto; flex:none; width:25px; height:25px; border-radius:8px; font-size:18px; line-height:1;
  color:var(--muted); background:var(--soft); transition:background .3s, color .3s}
.gl-x:hover{background:var(--line); color:var(--ink)}
.gl-rows{display:grid; gap:1px; background:var(--line-2); border-radius:11px; overflow:hidden; border:1px solid var(--line-2)}
.gl-r{display:flex; align-items:baseline; gap:9px; padding:6px 10px; background:#fff}
.gl-l{flex:0 0 76px; font-size:9.8px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--muted)}
.gl-v{flex:1; font-size:12.7px; line-height:1.4; font-weight:500; color:var(--ink); font-variant-numeric:tabular-nums}
.gl-v b{color:var(--green-d); font-weight:700}
.gl-v i{font-style:normal; font-size:10.4px; color:var(--muted); letter-spacing:.03em}
.gl-clim{margin:9px 0 0; font-size:11.8px; line-height:1.45; color:var(--muted)}
.gl-clim b{display:block; font-size:9.8px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--green-d); margin-bottom:3px}
.gl-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:22px}
.gl-st{
  text-align:center; padding:15px 9px; border-radius:12px;
  background:#fff; border:1px solid var(--line);
  transition:border-color .45s var(--ease), transform .45s var(--ease);
}
.gl-st:hover{border-color:var(--pousse); transform:translateY(-3px)}
.gl-st .v{font-size:clamp(20px,2.1vw,26px); font-weight:900; color:var(--green); line-height:1;
  letter-spacing:-.03em; font-variant-numeric:tabular-nums}
.gl-st .l{font-size:10.4px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); margin-top:7px; line-height:1.3}
.gl-wide{max-width:620px; margin-inline:auto}
.gl-wide .gl{max-width:620px}
.gl-wide .gl-t{margin-inline:-320px; padding-inline:0}
@media (max-width:1060px){
.gl{max-width:430px}
.gl-t{margin-inline:-16px}
}
@media (max-width:680px){
.gl{max-width:320px}
.gl-t{margin-inline:calc(var(--gut) * -1); padding-inline:var(--gut); justify-content:flex-start; margin-top:14px;
    -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent); mask-image:linear-gradient(90deg,#000 88%,transparent)}
.gl-tb{padding:7px 11px; font-size:11.6px}
.gl-p{width:100%; padding:12px 14px 11px}
.gl-l{flex-basis:70px; font-size:9.4px}
.gl-v{font-size:12.2px}
.gl-stats{gap:8px; margin-top:18px}
.gl-st{padding:12px 5px; border-radius:10px}
.gl-st .l{font-size:9.4px; letter-spacing:.03em}
.gl-z{right:4px; top:4px}
.gl-zb{width:31px; height:31px}
}
.gl-wide{max-width:620px; margin-inline:auto}
.gl-wide .gl{max-width:620px}
.gl-wide .gl-t{margin-inline:-320px; padding-inline:0}
.gl-stage canvas{display:block; width:100%; height:100%; border-radius:50%}
.gl.actif .gl-stage{outline:2px solid var(--pousse); outline-offset:4px; border-radius:50%}
.gl-zoom{position:absolute; right:4px; top:4px; z-index:6; display:grid; gap:5px}
.gl-zoom button{width:29px; height:29px; border-radius:9px; border:1px solid var(--line);
  background:#fff; color:var(--ink); font-size:15px; line-height:1; cursor:pointer;
  display:grid; place-items:center; transition:background .2s, transform .2s}
.gl-zoom button:hover{background:var(--soft); transform:translateY(-1px)}
.gl-card{position:absolute; left:50%; bottom:8px; transform:translateX(-50%) translateY(6px);
  width:min(330px,94%); max-height:76%; overflow:auto; z-index:8; background:#fff;
  border:1px solid var(--line); border-radius:13px; padding:15px 16px 16px; text-align:left;
  opacity:0; transition:opacity .35s ease, transform .35s var(--ease)}
.gl-card:not([hidden]){opacity:1; transform:translateX(-50%) translateY(0)}
.gl-card::-webkit-scrollbar{width:0}
.gl-card .gl-badge{font-size:9.6px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--green); margin-bottom:5px}
.gl-card h4{margin:0 0 4px; font-size:16px; color:var(--ink)}
.gl-card .gl-role{display:block; font-size:11.6px; line-height:1.4; font-weight:500; letter-spacing:0;
  color:var(--muted); text-transform:none; margin:0 0 11px}
.gl-card dl{margin:0; display:grid; gap:6px}
.gl-card dl>div{display:flex; justify-content:space-between; gap:12px; font-size:12.6px;
  padding-bottom:5px; border-bottom:1px solid var(--line)}
.gl-card dl>div:last-child{border-bottom:0; padding-bottom:0}
.gl-card dt{color:var(--muted)}
.gl-card dd{margin:0; font-weight:650; color:var(--ink); text-align:right}
.gl-meteo:not(:empty){margin-top:11px; padding-top:10px; border-top:1px solid var(--line)}
.gl-mt{font-size:12.8px; color:var(--ink)}
.gl-mt b{color:var(--green)}
.gl-ms{font-size:11.4px; color:var(--muted); margin-top:3px}
.gl-card .gl-x{position:absolute; top:9px; right:9px; margin:0; width:25px; height:25px;
  border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--muted);
  font-size:17px; line-height:1; cursor:pointer}
.gl-card .gl-x:hover{background:var(--soft); color:var(--ink)}
.card, .ic-card, .pk, .gl-st, .v-card, .r-card{
  --rx:0deg; --ry:0deg;
  transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));
  transition:transform .5s var(--ease), border-color .3s ease}
.card.tlt, .ic-card.tlt, .pk.tlt, .gl-st.tlt, .v-card.tlt, .r-card.tlt{transition:transform .12s linear}
@media (prefers-reduced-motion: reduce){
.card,.ic-card,.pk,.gl-st,.v-card,.r-card,.btn{transform:none; translate:none}
}
.hero.g .gl-stats{opacity:0; max-height:0; overflow:hidden; margin:0; padding:0; pointer-events:none}
.gl-stats{transition:opacity .6s var(--ease), max-height .8s var(--ease); max-height:260px}
.hero.g .gl-t{justify-content:flex-start}
.stats.in .stat .v, .gl-stats .gl-st .v{animation:smb-pop .9s var(--ease) both}
.hero.g .gl-t{justify-content:flex-start}
.hero.g .gl-stats{opacity:0; max-height:0; margin:0; padding:0; pointer-events:none; overflow:hidden}
.gl-tb{font-size:12.2px}
.gl-tb span{font-size:12.2px}
.gl-st .l, .stat .l{font-size:11.2px}
.gl-t{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 56px,#000 calc(100% - 62px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 56px,#000 calc(100% - 62px),transparent 100%);
  scroll-behavior:smooth;
}
.hero-globe .gl-z, .hero-globe .gl-zoom{right:-14px; top:-10px}
.hero-globe .gl-zb, .hero-globe .gl-zoom button{box-shadow:0 6px 16px -8px rgba(16,30,8,.45)}
.hero-globe .gl-stats{margin-top:16px}
.hero .gl-stats, .hero .gl-t{max-width:100%; margin-inline:0}
.hero-globe .gl-z, .hero-globe .gl-zoom{right:8px; top:8px}
.gl-cmd, .globe-cmd, .gl-zoom{z-index:6}
.gl-cmd button, .globe-cmd button, .gl-zoom button{
  width:34px; height:34px; border-radius:11px; display:grid; place-items:center;
  font-size:16px; line-height:1; padding:0; overflow:visible;
}
@media (max-width:760px){
.hero-globe .gl-wrap, .hero .globe{max-width:94vw; margin-inline:auto}
}
.hero .gl-t{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 48px,#000 calc(100% - 56px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 48px,#000 calc(100% - 56px),transparent 100%);
  padding-inline:6px;
}
.gl-sites{margin-top:12px; padding-top:11px; border-top:1px solid rgba(0,0,0,.09)}
.gl-sites span{
  display:block; font-size:10.4px; letter-spacing:.11em; text-transform:uppercase;
  color:var(--muted); font-weight:700; margin-bottom:5px;
}
.gl-sites p{margin:0; font-size:12.6px; line-height:1.55; color:var(--ink-2); font-weight:500}
.gl-zoom{top:-10px !important; right:-14px !important; left:auto !important;
  bottom:auto !important; flex-direction:row !important; gap:8px !important;
  width:auto !important; height:auto !important; transform:none !important}
@media (max-width:980px){
.gl-zoom{top:-8px !important; right:auto !important; left:50% !important;
    transform:translateX(-50%) !important}
}
.gl-zoom{top:0 !important; right:0 !important; left:auto !important; bottom:auto !important;
  display:grid !important; grid-auto-flow:row !important; gap:5px !important;
  width:auto !important; height:auto !important; transform:none !important; z-index:9 !important}
.gl-zoom button{width:30px !important; height:30px !important; border-radius:10px !important;
  border:1px solid rgba(26,54,8,.18) !important; background:#fff !important; color:#223314 !important;
  box-shadow:0 5px 16px -7px rgba(16,30,8,.55), 0 0 0 3px rgba(255,255,255,.6) !important}
@media (max-width:980px){
.gl-zoom{grid-auto-flow:column !important; gap:6px !important}
.gl-zoom button{width:28px !important; height:28px !important}
}
.gl-t.fit{justify-content:center !important; overflow:visible !important;
  -webkit-mask-image:none !important; mask-image:none !important;
  flex-wrap:wrap !important; row-gap:6px}
.gl-wide .gl-t{margin-inline:min(0px, calc((620px - min(1180px, 92vw)) / 2)) !important; padding-inline:0 !important}
.hero-globe .gl-t{display:none !important}
.gl-t{flex-wrap:wrap !important; justify-content:center !important; overflow:visible !important;
  -webkit-mask-image:none !important; mask-image:none !important; row-gap:6px !important}
.gl-zoom,
.hero-globe .gl-zoom,
.gl-wide .gl-zoom{
  top:auto !important; bottom:8px !important;
  right:8px !important; left:auto !important;
  transform:none !important;
  display:grid !important; grid-auto-flow:row !important; gap:6px !important;
  width:auto !important; height:auto !important; z-index:12 !important;
}
.gl-stats, .hero .gl-stats{
  max-width:clamp(300px, 36vw, 470px) !important;
  margin-inline:auto !important;
}
@media (max-width:1060px){
.gl-stats, .hero .gl-stats{max-width:430px !important}
}
@media (max-width:980px){
.gl-zoom, .hero-globe .gl-zoom{grid-auto-flow:row !important; gap:6px !important}
}
@media (max-width:760px){
.gl-zoom, .hero-globe .gl-zoom{
    top:auto !important; bottom:8px !important; right:8px !important;
    left:auto !important; transform:none !important;
  }
}
@media (max-width:680px){
.gl-stats, .hero .gl-stats{max-width:320px !important}
}
@media (max-width:620px){
.gl-zoom, .hero-globe .gl-zoom{
    top:auto !important; bottom:22px !important; right:6px !important;
    left:auto !important; grid-auto-flow:row !important; gap:6px !important;
  }
.gl-zoom button{width:34px !important; height:34px !important; font-size:17px !important}
}
.hero-globe .gl-zoom,
.hero.g .gl-zoom{
  top:auto !important; bottom:-54px !important;
  left:50% !important; right:auto !important;
  transform:translateX(-50%) !important;
  display:grid !important; grid-auto-flow:column !important;
  gap:12px !important; width:auto !important; height:auto !important;
  z-index:12 !important;
}
.hero-globe .gl-zoom button,
.hero.g .gl-zoom button{
  width:36px !important; height:36px !important; border-radius:12px !important;
  font-size:17px !important;
}
.gl-stats, .hero .gl-stats{margin-top:78px !important}
@media (max-width:620px){
.hero-globe .gl-zoom, .hero.g .gl-zoom{
    bottom:-48px !important; gap:10px !important;
  }
.hero-globe .gl-zoom button, .hero.g .gl-zoom button{
    width:34px !important; height:34px !important;
  }
.gl-stats, .hero .gl-stats{margin-top:94px !important}
}
.gl-mapb{margin-top:14px; width:100%; border:0; border-radius:12px; cursor:pointer;
  background:var(--green); color:#fff; font-family:'Poppins',system-ui,sans-serif;
  font-size:12.6px; font-weight:600; padding:11px 14px; transition:background .25s ease}
.gl-mapb:hover{background:var(--green-d)}
.gl-pays{position:absolute; inset:0; z-index:12; background:#F6FAF1;
  border-radius:inherit; display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 18px 50px rgba(20,48,10,.18)}
.gl-pays-h{display:flex; align-items:center; gap:12px; padding:12px 14px;
  background:#fff; border-bottom:1px solid var(--line); flex:none}
.gl-ret{border:1px solid var(--line); background:#fff; border-radius:10px; cursor:pointer;
  font-family:'Poppins',system-ui,sans-serif; font-size:11.6px; font-weight:600;
  color:var(--green-d); padding:7px 11px; white-space:nowrap; transition:all .25s ease}
.gl-ret:hover{border-color:var(--pousse); background:var(--soft-2)}
.gl-pays-t{display:flex; flex-direction:column; line-height:1.25; min-width:0}
.gl-pays-t strong{font-size:14.5px; color:var(--ink)}
.gl-pays-t span{font-size:11px; color:var(--ink-2)}
.gl-pays-c{flex:1; min-height:0; padding:10px; display:flex}
.gl-pays-c svg{width:100%; height:100%; display:block}
.gl-rg{fill:url(#glgr); stroke:#fff; stroke-width:1.6; stroke-linejoin:round;
  transition:fill .25s ease, opacity .25s ease}
.gl-rg:hover{fill:var(--gold)}
.gl-rn{fill:#fff; font-family:'Poppins',system-ui,sans-serif; font-size:11px; font-weight:600;
  text-anchor:middle; dominant-baseline:middle; paint-order:stroke;
  stroke:rgba(20,48,10,.55); stroke-width:2.6px; pointer-events:none}
.gl-pt circle{fill:#E23A2E; stroke:#fff; stroke-width:2.4}
.gl-pt.siege circle{fill:#C81E1E; stroke-width:3}
.gl-pt .gl-pt-h{fill:rgba(226,58,46,.22); stroke:none}
.gl-pt text{fill:#15200C; font-family:'Poppins',system-ui,sans-serif; font-size:11.5px;
  font-weight:600; text-anchor:middle; paint-order:stroke; stroke:#fff; stroke-width:3.2px}
@media (max-width:700px){
.gl-rn{font-size:13px}
.gl-pt text{font-size:13px}
}
.gl-pays[hidden]{display:none !important}
.gl-mapb{margin:10px 0 2px}
