/* Well Solidarity – Caractéristiques du puits simple (généré par build.py, ne pas éditer à la main) */
#ws-puits .wsp-ttl{margin:0 0 30px;text-align:center;font-size:40px;font-weight:800;letter-spacing:-.015em;color:#1b2b3c}
#ws-puits .wsp-ttl .wsp-hl{position:relative;display:inline-block;color:#2aa3de}
#ws-puits .wsp-ttl .wsp-hl svg{position:absolute;left:-4px;bottom:-10px;width:calc(100% + 8px);height:12px}
#ws-puits .wsp-ttl .wsp-drop{width:28px;height:38px;vertical-align:-4px;margin-left:6px;animation:wsp-dropbob 3s ease-in-out infinite}
@keyframes wsp-dropbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
#ws-puits .wsp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center}
#ws-puits .wsp-art{position:relative}
#ws-puits .wsp-scene{width:100%;height:auto;display:block;overflow:visible}
#ws-puits .wsp-list{display:flex;flex-direction:column;gap:10px}
#ws-puits .wsp-it{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:14px 16px;border-radius:18px;border:1.5px solid transparent;background:transparent;font-family:inherit;font-size:14px;line-height:1.6;color:#3d4b58;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease}
#ws-puits .wsp-it b{color:#1b2b3c}
#ws-puits .wsp-it:hover{background:#f3f9fd}
#ws-puits .wsp-it.wsp-on{background:#eaf6fd;border-color:#bfe3f7;transform:translateX(4px)}
#ws-puits .wsp-it:focus-visible{outline:3px solid #2aa3de;outline-offset:2px}
#ws-puits .wsp-ic{flex-shrink:0;width:40px;height:40px;border-radius:12px;background:#eaf6fd;color:#1b86c6;display:flex;align-items:center;justify-content:center;transition:all .25s ease}
#ws-puits .wsp-ic svg{width:22px;height:22px}
#ws-puits .wsp-it.wsp-on .wsp-ic{background:#2aa3de;color:#fff}
#ws-puits .wsp-tx{display:block}
#ws-puits .wsp-lay{font-family:'Poppins',sans-serif;font-weight:800;font-size:27px;letter-spacing:.04em;fill:#ffffff;paint-order:stroke;stroke:rgba(20,12,6,.45);stroke-width:5px}
#ws-puits .wsp-cl{font-family:'Poppins',sans-serif;font-weight:800;font-size:24px;letter-spacing:.03em;fill:#1b2b3c}
#ws-puits .wsp-call{stroke:#1b2b3c}
#ws-puits .wsp-tg1{font-family:'Poppins',sans-serif;font-weight:800;font-size:24px;fill:#fff}
#ws-puits .wsp-tg2{font-family:'Poppins',sans-serif;font-weight:500;font-size:16px;fill:#cfe9fb}
#ws-puits .wsp-tm1{font-family:'Poppins',sans-serif;font-weight:800;font-size:40px;fill:#1b2b3c}
#ws-puits .wsp-tm2,
#ws-puits .wsp-tm3{font-family:'Poppins',sans-serif;font-weight:600;font-size:20px;fill:#2aa3de}
#ws-puits .wsp-wave{animation:wsp-wavex 6s linear infinite}
#ws-puits .wsp-wave.wsp-w2{animation-duration:9s;animation-direction:reverse}
@keyframes wsp-wavex{from{transform:translateX(0)}to{transform:translateX(-330px)}}
#ws-puits .wsp-bub{animation:wsp-bub 4s ease-in infinite;opacity:0}
@keyframes wsp-bub{0%{opacity:0;transform:translateY(0)}20%{opacity:.9}100%{opacity:0;transform:translateY(-70px)}}
#ws-puits .wsp-caustic{animation:wsp-caus 5s ease-in-out infinite alternate}
@keyframes wsp-caus{from{transform:translateX(-120px)}to{transform:translateX(120px)}}
#ws-puits .wsp-flowline{stroke-dasharray:14 26;animation:wsp-flowup 1s linear infinite;opacity:.9}
@keyframes wsp-flowup{to{stroke-dashoffset:40}}
#ws-puits .wsp-stream{stroke-dasharray:18 14;animation:wsp-pour .5s linear infinite}
@keyframes wsp-pour{to{stroke-dashoffset:-32}}
#ws-puits .wsp-splash{transform-box:fill-box;transform-origin:center;animation:wsp-spl 1s ease-out infinite}
#ws-puits .wsp-splash.wsp-s2{animation-delay:.5s}
@keyframes wsp-spl{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.6)}}
#ws-puits .wsp-pump,
#ws-puits .wsp-pipe,
#ws-puits .wsp-ov-flow,
#ws-puits .wsp-ov-spout,
#ws-puits .wsp-sign{transition:opacity .45s ease,transform .6s cubic-bezier(.34,1.56,.64,1)}
#ws-puits .wsp-ov{opacity:0;transition:opacity .45s ease;pointer-events:none}
#ws-puits .wsp-scene[data-active="tubage"] .wsp-ov-tubage,
#ws-puits .wsp-scene[data-active="battage"] .wsp-ov-battage,
#ws-puits .wsp-scene[data-active="injection"] .wsp-ov-injection,
#ws-puits .wsp-scene[data-active="havage"] .wsp-ov-havage,
#ws-puits .wsp-scene[data-active="profondeur"] .wsp-ov-profondeur,
#ws-puits .wsp-scene[data-active="temps"] .wsp-ov-temps,
#ws-puits .wsp-scene[data-active="benef"] .wsp-ov-benef{opacity:1}
#ws-puits .wsp-scene[data-active="battage"] .wsp-pump,
#ws-puits .wsp-scene[data-active="injection"] .wsp-pump,
#ws-puits .wsp-scene[data-active="havage"] .wsp-pump,
#ws-puits .wsp-scene[data-active="battage"] .wsp-ov-spout,
#ws-puits .wsp-scene[data-active="injection"] .wsp-ov-spout,
#ws-puits .wsp-scene[data-active="havage"] .wsp-ov-spout,
#ws-puits .wsp-scene[data-active="battage"] .wsp-ov-flow,
#ws-puits .wsp-scene[data-active="injection"] .wsp-ov-flow,
#ws-puits .wsp-scene[data-active="havage"] .wsp-ov-flow{opacity:0}
#ws-puits .wsp-callpump{transition:opacity .45s ease}
#ws-puits .wsp-scene[data-active="battage"] .wsp-callpump,
#ws-puits .wsp-scene[data-active="injection"] .wsp-callpump,
#ws-puits .wsp-scene[data-active="havage"] .wsp-callpump{opacity:0}
#ws-puits .wsp-scene[data-active="battage"] .wsp-pipe{animation:wsp-sink 1.4s ease-in-out infinite}
@keyframes wsp-sink{0%,58%{transform:translateY(0)}64%{transform:translateY(8px)}100%{transform:translateY(0)}}
#ws-puits .wsp-halo{opacity:.0;animation:wsp-halo 1.6s ease-in-out infinite}
@keyframes wsp-halo{0%,100%{opacity:.35}50%{opacity:1}}
#ws-puits .wsp-perf{animation:wsp-perf 1.2s ease-in-out infinite}
@keyframes wsp-perf{50%{fill:#9fe6ff}}
#ws-puits .wsp-pin{animation:wsp-pin 2.6s ease-in infinite}
@keyframes wsp-pin{0%{transform:translateX(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(var(--dx));opacity:0}}
#ws-puits .wsp-sand{transform-box:fill-box;animation:wsp-sand 2s ease-in-out infinite}
@keyframes wsp-sand{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
#ws-puits .wsp-hammer{animation:wsp-hammer 1.4s cubic-bezier(.6,0,.9,.6) infinite}
@keyframes wsp-hammer{0%{transform:translateY(-180px)}55%{transform:translateY(-180px)}62%{transform:translateY(80px)}70%{transform:translateY(74px)}100%{transform:translateY(-180px)}}
#ws-puits .wsp-impact{transform-box:fill-box;transform-origin:center;opacity:0;animation:wsp-impact 1.4s ease-out infinite}
#ws-puits .wsp-impact.wsp-i2{animation-delay:.12s}
@keyframes wsp-impact{0%,60%{opacity:0;transform:scale(.4)}62%{opacity:1}100%{opacity:0;transform:scale(2.6)}}
#ws-puits .wsp-chev{animation:wsp-chev 1s linear infinite}
@keyframes wsp-chev{from{transform:translate(0,var(--y0,0))}}
#ws-puits .wsp-ov-injection .wsp-chev{animation:wsp-chevdown 1.2s linear infinite}
@keyframes wsp-chevdown{0%{opacity:0;translate:0 -40px}20%{opacity:1}100%{opacity:0;translate:0 60px}}
#ws-puits .wsp-jet{stroke-dasharray:60;stroke-dashoffset:60;animation:wsp-jet 1.2s ease-out infinite}
@keyframes wsp-jet{0%{stroke-dashoffset:60;opacity:1}70%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
#ws-puits .wsp-caisson{animation:wsp-caisson 6s ease-in-out infinite}
@keyframes wsp-caisson{0%{transform:translateY(0)}100%{transform:translateY(300px)}}
#ws-puits .wsp-bucket{animation:wsp-bucket 1.5s ease-in-out infinite}
@keyframes wsp-bucket{0%,100%{transform:translateY(-60px)}50%{transform:translateY(160px)}}
#ws-puits .wsp-ruler{stroke-dasharray:480;stroke-dashoffset:480}
#ws-puits .wsp-scene[data-active="profondeur"] .wsp-ruler{animation:wsp-draw 1s ease-out forwards}
@keyframes wsp-draw{to{stroke-dashoffset:0}}
#ws-puits .wsp-tagp{transform-box:fill-box;transform-origin:center}
#ws-puits .wsp-scene[data-active="profondeur"] .wsp-tagp,
#ws-puits .wsp-scene[data-active="benef"] .wsp-tagp{animation:wsp-popin .6s cubic-bezier(.34,1.56,.64,1) .3s both}
@keyframes wsp-popin{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
#ws-puits .wsp-prog{stroke-dasharray:1;stroke-dashoffset:1}
#ws-puits .wsp-scene[data-active="temps"] .wsp-prog{animation:wsp-prog 2.6s ease-in-out forwards}
@keyframes wsp-prog{to{stroke-dashoffset:.02}}
#ws-puits .wsp-pp{transform-box:fill-box;transform-origin:50% 100%;opacity:0}
#ws-puits .wsp-scene[data-active="benef"] .wsp-pp{animation:wsp-pp .5s cubic-bezier(.34,1.56,.64,1) both}
@keyframes wsp-pp{from{opacity:0;transform:scale(.2) translateY(10px)}to{opacity:1;transform:none}}
#ws-puits .wsp-scene[data-active="benef"] .wsp-stream{animation-duration:.3s}
@media (prefers-reduced-motion:reduce){#ws-puits *{animation:none !important;transition:none !important}}
#ws-puits .wsp-gsway{transform-box:fill-box;transform-origin:50% 100%;animation:wsp-gsway 4s ease-in-out infinite}
#ws-puits .wsp-gsway.wsp-g2{animation-duration:5s;animation-delay:-1s}
#ws-puits .wsp-gsway.wsp-g3{animation-duration:4.5s;animation-delay:-2s}
@keyframes wsp-gsway{0%,100%{transform:skewX(0deg)}50%{transform:skewX(-2.2deg)}}
#ws-puits .wsp-gw{animation:wsp-gw 4s linear infinite;opacity:0}
@keyframes wsp-gw{0%{opacity:0;transform:translateX(-40px)}20%{opacity:.7}80%{opacity:.7}100%{opacity:0;transform:translateX(60px)}}
#ws-puits .wsp-tableshine{stroke-dasharray:.08 .92;animation:wsp-shine 5s linear infinite}
@keyframes wsp-shine{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
#ws-puits .wsp-inarrow{stroke-dasharray:12 60;animation:wsp-inarrow 1.6s linear infinite;opacity:.85}
@keyframes wsp-inarrow{from{stroke-dashoffset:72}to{stroke-dashoffset:0}}
@keyframes wsp-pour{to{stroke-dashoffset:-32}}
#ws-puits .wsp-drip{animation:wsp-drip .9s ease-out infinite;opacity:0}
@keyframes wsp-drip{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--dx),-16px)}}
#ws-puits .wsp-bwater{transform:translateY(70px)}
#ws-puits .wsp-ripple{transform-box:fill-box;transform-origin:center;animation:wsp-ripple 1.2s ease-out infinite}
@keyframes wsp-ripple{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(2.6)}}
#ws-puits .wsp-lsand{transform-box:fill-box;animation:wsp-lsand 1.8s ease-in-out infinite}
@keyframes wsp-lsand{0%,100%{transform:translateX(0)}50%{transform:translateX(16px)}}
#ws-puits .wsp-ldrop{animation:wsp-ldrop 1.8s linear infinite}
@keyframes wsp-ldrop{0%{transform:translateX(0);opacity:0}10%{opacity:1}75%{opacity:1}100%{transform:translateX(150px);opacity:0}}
#ws-puits .wsp-ldrop{transform-box:fill-box}
#ws-puits .wsp-slurry{animation:wsp-slurry 2.2s linear infinite;opacity:0}
@keyframes wsp-slurry{0%{opacity:0;transform:translateY(0)}15%{opacity:.9}85%{opacity:.9}100%{opacity:0;transform:translateY(-560px)}}
#ws-puits .wsp-fl{transform-box:fill-box;transform-origin:center;animation:wsp-fl 1.6s ease-in-out infinite alternate}
@keyframes wsp-fl{from{transform:scale(.8)}to{transform:scale(1.15)}}
#ws-puits .wsp-pipe-drive .wsp-wcol,
#ws-puits .wsp-pipe-inj .wsp-wcol{display:none}
#ws-puits .wsp-i-pipe{animation:wsp-ipipe 6s linear infinite}
@keyframes wsp-ipipe{0%{transform:translateY(-110px)}100%{transform:translateY(0)}}
#ws-puits .wsp-ov-injection .wsp-chev{animation:wsp-chevdown 1.1s linear infinite}
#ws-puits .wsp-b-dust,
#ws-puits .wsp-b-crack{opacity:0}
#ws-puits .wsp-worm{animation:wsp-worm linear infinite alternate}
@keyframes wsp-worm{from{transform:translate(0,0)}to{transform:translate(90px,4px)}}
#ws-puits .wsp-scene[data-active="battage"] .wsp-pipe,
#ws-puits .wsp-scene[data-active="injection"] .wsp-pipe,
#ws-puits .wsp-scene[data-active="havage"] .wsp-pipe,
#ws-puits .wsp-scene[data-active="battage"] .wsp-inflow,
#ws-puits .wsp-scene[data-active="injection"] .wsp-inflow,
#ws-puits .wsp-scene[data-active="havage"] .wsp-inflow,
#ws-puits .wsp-scene[data-active="battage"] .wsp-wbucket,
#ws-puits .wsp-scene[data-active="injection"] .wsp-wbucket,
#ws-puits .wsp-scene[data-active="havage"] .wsp-wbucket,
#ws-puits .wsp-scene[data-active="battage"] .wsp-callpoint,
#ws-puits .wsp-scene[data-active="injection"] .wsp-callpoint,
#ws-puits .wsp-scene[data-active="havage"] .wsp-callpoint{opacity:0}
#ws-puits .wsp-pipe,
#ws-puits .wsp-inflow,
#ws-puits .wsp-wbucket,
#ws-puits .wsp-callpoint{transition:opacity .45s ease}
#ws-puits .wsp-scene[data-active="tubage"] .wsp-callpoint{opacity:0}

/* ---------- intégration au site ---------- */
#ws-puits,#ws-puits *,#ws-puits *::before,#ws-puits *::after{box-sizing:border-box}
#ws-puits{width:100%;max-width:1240px;margin:0 auto;font-family:'Poppins',system-ui,sans-serif;color:#1f2d3a;-webkit-tap-highlight-color:transparent}
#ws-puits .wsp-ttl{margin:0 0 30px;padding:0;text-align:center;text-transform:none;font-family:'Poppins',sans-serif;font-size:40px;line-height:42px;font-weight:700;letter-spacing:-.015em;color:var(--e-global-color-primary,#182d3a)}
#ws-puits .wsp-ttl span{font:inherit;color:inherit}
#ws-puits .wsp-ttl .wsp-hl{color:#2aa3de}
#ws-puits .wsp-grid{gap:clamp(20px,3.2vw,40px)}
#ws-puits .wsp-art{min-width:0}
/* les 5 % du haut du dessin sont toujours vides : on les récupère */
#ws-puits .wsp-scene{margin-top:-7%}
#ws-puits .wsp-list{min-width:0;margin:0;padding:0}
#ws-puits .wsp-it{margin:0;outline:0;font-weight:400;letter-spacing:0;text-transform:none}
#ws-puits .wsp-it b{font-weight:700}
#ws-puits .wsp-dots{display:none}
/* animations en pause quand le bloc est hors écran */
#ws-puits.wsp-off *{animation-play-state:paused !important}

/* ---------- petit ordinateur (1025 à 1200 px) : deux colonnes resserrées ---------- */
@media (max-width:1200px){
  #ws-puits .wsp-ttl{font-size:36px;line-height:40px;margin-bottom:24px}
  #ws-puits .wsp-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1fr)}
  #ws-puits .wsp-list{gap:6px}
  #ws-puits .wsp-it{gap:12px;padding:12px 14px;border-radius:16px;font-size:13.5px;line-height:1.55}
  #ws-puits .wsp-ic{width:36px;height:36px;border-radius:11px}
  #ws-puits .wsp-ic svg{width:20px;height:20px}
}

/* ---------- mobile et tablette (jusqu'à 1024 px, le seuil où tout le site passe en affichage mobile) :
   schéma au-dessus, rangée d'icônes, caractéristiques en cartes à faire glisser ---------- */
@media (max-width:1024px){
  #ws-puits{--wsp-card:min(calc(100vw - 64px),380px)}
  #ws-puits .wsp-ttl{font-size:clamp(25px,8.2vw,32px);line-height:1.1;margin-bottom:14px}
  #ws-puits .wsp-ttl .wsp-drop{width:22px;height:30px;margin-left:2px}
  #ws-puits .wsp-grid{display:block}
  /* schéma dimensionné pour laisser de la place aux icônes et à la carte active */
  /* le cylindre est à gauche du centre du dessin (place des légendes à droite) : on le recentre sous le titre */
  #ws-puits .wsp-art{position:static;margin:0 auto;max-width:none;width:min(100%,290px,calc(66vh * 900 / 1480));transform:translateX(10%)}
  #ws-puits .wsp-lay{font-size:31px}
  #ws-puits .wsp-cl{font-size:27px}
  /* pastilles « 3 mois » et « personnes servies » rapprochées de la pompe : elles restent visibles au-dessus de la carte */
  #ws-puits .wsp-ov-temps > g{transform:translate(650px,-20px)}
  #ws-puits .wsp-ov-benef > g{transform:translate(110px,-40px)}
  /* marges latérales = (écran - carte) / 2 : chaque carte, première et dernière comprises, peut venir au centre */
  #ws-puits .wsp-list{position:relative;flex-direction:row;align-items:stretch;gap:12px;width:100vw;margin:8px 0 0 calc(50% - 50vw);padding:4px calc((100vw - var(--wsp-card)) / 2) 6px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
  #ws-puits .wsp-list::-webkit-scrollbar{display:none}
  #ws-puits .wsp-it,
  #ws-puits .wsp-it.wsp-on{transform:none}
  #ws-puits .wsp-it{display:block;flex:0 0 var(--wsp-card);scroll-snap-align:center;padding:14px 16px 16px;border-radius:18px;background:#f6fafd;border-color:#e3eef7;font-size:13.5px;line-height:1.55}
  #ws-puits .wsp-it::after{content:"";display:block;clear:both}
  #ws-puits .wsp-it:hover{background:#f6fafd}
  #ws-puits .wsp-it.wsp-on,
  #ws-puits .wsp-it.wsp-on:hover{background:#eaf6fd;border-color:#bfe3f7}
  #ws-puits .wsp-ic{float:left;width:36px;height:36px;margin:3px 11px 2px 0;border-radius:11px;background:#e3f2fb}
  #ws-puits .wsp-ic svg{width:20px;height:20px}
  /* icônes de navigation sous le schéma : on change de caractéristique sans quitter le dessin des yeux */
  #ws-puits .wsp-dots{display:flex;justify-content:center;align-items:center;gap:6px;margin:8px 0 0}
  #ws-puits .wsp-dot{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#eaf6fd;color:#1b86c6;cursor:pointer;transition:background-color .25s ease,color .25s ease,transform .25s ease}
  #ws-puits .wsp-dot svg{width:21px;height:21px}
  #ws-puits .wsp-dot.wsp-on{background:#2aa3de;color:#fff;transform:translateY(-2px);box-shadow:0 6px 14px -6px rgba(42,163,222,.8)}
}
@media (max-width:359px){
  #ws-puits .wsp-dots{gap:5px}
  #ws-puits .wsp-dot{width:35px;height:35px;border-radius:11px}
  #ws-puits .wsp-dot svg{width:19px;height:19px}
}
@supports (height:1svh){
  @media (max-width:1024px){
    #ws-puits .wsp-art{width:min(100%,290px,calc(66svh * 900 / 1480))}
  }
}
/* tablette (600 à 1024 px) : même principe, schéma, icônes et cartes un peu plus grands */
@media (min-width:600px) and (max-width:1024px){
  #ws-puits .wsp-ttl{font-size:36px;line-height:40px;margin-bottom:18px}
  #ws-puits .wsp-ttl .wsp-drop{width:26px;height:35px;margin-left:5px}
  #ws-puits .wsp-art{width:min(100%,380px,calc(62vh * 900 / 1480))}
  #ws-puits .wsp-lay{font-size:28px}
  #ws-puits .wsp-cl{font-size:25px}
  #ws-puits .wsp-it{padding:18px 20px 20px;font-size:14px;line-height:1.6}
  #ws-puits .wsp-dots{gap:9px;margin-top:12px}
  #ws-puits .wsp-dot{width:46px;height:46px;border-radius:14px}
  #ws-puits .wsp-dot svg{width:23px;height:23px}
  #ws-puits .wsp-list{margin-top:12px}
}
@media (prefers-reduced-motion:reduce){
  #ws-puits .wsp-list{scroll-behavior:auto}
}
