/* Formulaires du site (wf-) : panneau latéral en verre, plein écran sur mobile */
.wf-root[hidden]{display:none!important}
.wf-root{position:fixed;inset:0;z-index:400;font-family:var(--f,"Geist",system-ui,sans-serif)}
.wf-scrim{position:absolute;inset:0;background:rgba(5,6,10,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .28s}
.wf-panel{position:absolute;top:12px;right:12px;bottom:12px;width:min(520px,calc(100vw - 24px));overflow:auto;overscroll-behavior:contain;
  padding:26px 26px 30px;border-radius:24px;color:var(--ink,#EDEEF3);
  background:radial-gradient(90% 60% at 100% 0%,color-mix(in srgb,#BBA8F8 16%,transparent),transparent 60%),radial-gradient(80% 50% at 0% 100%,color-mix(in srgb,#9BE8D4 12%,transparent),transparent 60%),color-mix(in srgb,var(--bg,#07080B) 94%,transparent);
  border:1px solid var(--glass-border,rgba(255,255,255,.09));box-shadow:0 40px 90px -30px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.06);
  transform:translateX(24px);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .28s}
.wf-on .wf-scrim{opacity:1}
.wf-on .wf-panel{transform:none;opacity:1}
html.wf-lock{overflow:hidden}
.wf-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wf-k{font-family:var(--f-mono,"Geist Mono",monospace);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3,#6B7080);display:flex;align-items:center;gap:8px}
.wf-k::before{content:"";width:7px;height:7px;border-radius:50%;background:#9BE8D4;box-shadow:0 0 10px #9BE8D4}
.wf-x{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:14px;color:var(--ink-2,#A3A7B5);background:var(--glass-in,rgba(255,255,255,.03));border:1px solid var(--glass-line,rgba(255,255,255,.07));cursor:pointer;transition:color .2s,border-color .2s}
.wf-x:hover{color:var(--ink,#fff);border-color:var(--glass-border,rgba(255,255,255,.15))}
.wf-t{font-size:clamp(26px,3vw,32px);font-weight:600;letter-spacing:-.04em;line-height:1.08;margin:6px 0 8px}
.wf-intro{font-size:15px;line-height:1.55;color:var(--ink-2,#A3A7B5);margin:0 0 20px}
.wf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wf-f{display:flex;flex-direction:column;gap:6px;min-width:0}
.wf-full{grid-column:1/-1}
.wf-f > span{font-family:var(--f-mono,"Geist Mono",monospace);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3,#6B7080)}
.wf-f em{font-style:normal;text-transform:none;letter-spacing:0;opacity:.75;margin-left:4px}
.wf-f input,.wf-f textarea{font:inherit;font-size:15.5px;color:var(--ink,#EDEEF3);-webkit-text-fill-color:var(--ink,#EDEEF3);background:var(--glass-in,rgba(255,255,255,.03));border:1px solid var(--glass-border,rgba(255,255,255,.09));border-radius:13px;padding:12px 14px;width:100%;transition:border-color .2s,box-shadow .2s}
.wf-f textarea{resize:vertical;min-height:120px;line-height:1.55}
.wf-f input:focus,.wf-f textarea:focus{outline:none;border-color:color-mix(in srgb,#BBA8F8 70%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,#BBA8F8 18%,transparent)}
.wf-f input::placeholder,.wf-f textarea::placeholder{color:var(--ink-3,#6B7080);-webkit-text-fill-color:var(--ink-3,#6B7080)}
.wf-extra{margin-top:12px;border-radius:13px;border:1px dashed var(--glass-border,rgba(255,255,255,.12));padding:10px 12px;background:var(--glass-in,rgba(255,255,255,.02))}
.wf-extra[hidden]{display:none}
.wf-extra > span{display:block;font-family:var(--f-mono,"Geist Mono",monospace);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3,#6B7080);margin-bottom:6px}
.wf-extra pre{margin:0;max-height:160px;overflow:auto;white-space:pre-wrap;font-family:var(--f-mono,"Geist Mono",monospace);font-size:12.5px;line-height:1.5;color:var(--ink-2,#A3A7B5)}
.wf-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.wf-ok{display:flex;gap:10px;align-items:flex-start;margin:16px 0 4px;font-size:14px;line-height:1.5;color:var(--ink-2,#A3A7B5);cursor:pointer}
.wf-ok input{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin-top:1px;border-radius:6px;border:1.5px solid var(--glass-border,rgba(255,255,255,.2));background:var(--glass-in,transparent);display:grid;place-items:center;cursor:pointer;transition:all .2s}
.wf-ok input:checked{background:#9BE8D4;border-color:#9BE8D4}
.wf-ok input:checked::after{content:"";width:5px;height:10px;border:solid #0A0A10;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.wf-ok input:focus-visible{outline:2px solid #BBA8F8;outline-offset:2px}
.wf-err{margin:12px 0 0;padding:10px 12px;border-radius:12px;font-size:14px;color:#FFD9CC;background:color-mix(in srgb,#F8B597 14%,transparent);border:1px solid color-mix(in srgb,#F8B597 40%,transparent)}
.wf-err[hidden]{display:none}
.wf-acts{display:flex;align-items:center;gap:12px;margin-top:18px}
.wf-send{min-width:150px;justify-content:center}
.wf-send:disabled{opacity:.6;cursor:progress}
.wf-done{text-align:center;padding:40px 10px 10px;display:flex;flex-direction:column;align-items:center;gap:12px}
.wf-done[hidden]{display:none}
.wf-done b{font-size:28px;letter-spacing:-.04em}
.wf-done p{font-size:15.5px;line-height:1.55;color:var(--ink-2,#A3A7B5);max-width:340px;margin:0 0 6px}
.wf-check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#0A0A10;background:radial-gradient(circle at 30% 25%,#fff,#9BE8D4 60%);box-shadow:0 0 0 8px color-mix(in srgb,#9BE8D4 14%,transparent),0 16px 40px -12px #9BE8D4;animation:wfPop .5s cubic-bezier(.2,1.4,.4,1)}
.wf-check svg{width:30px;height:30px}
@keyframes wfPop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
[data-theme="light"] .wf-panel{background:radial-gradient(90% 60% at 100% 0%,color-mix(in srgb,#BBA8F8 20%,transparent),transparent 60%),#fff;color:#0E1016}
[data-theme="light"] .wf-f input,[data-theme="light"] .wf-f textarea{color:#0E1016;-webkit-text-fill-color:#0E1016;background:#F6F6F9;border-color:rgba(14,16,22,.12)}
[data-theme="light"] .wf-err{color:#8A2B12}
[data-theme="light"] .wf-scrim{background:rgba(20,20,30,.28)}
@media (max-width:640px){
  .wf-panel{top:0;right:0;bottom:0;left:0;width:100%;border-radius:0;padding:20px 16px 28px}
  .wf-grid{grid-template-columns:1fr}
  .wf-send{flex:1}
}
@media (prefers-reduced-motion:reduce){.wf-panel,.wf-scrim{transition:none}.wf-check{animation:none}}
/* pièce jointe */
.wf-pj[hidden]{display:none}
.wf-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 14px;border-radius:14px;text-align:center;cursor:pointer;
  border:1.5px dashed var(--glass-border);background:var(--glass-in);transition:border-color .2s,background .2s}
.wf-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.wf-drop-t{font-size:14px;font-weight:500;color:var(--ink)}.wf-drop-t u{text-underline-offset:3px}
.wf-drop-n{font-size:12.5px;color:var(--ink-3)}
.wf-pj.over .wf-drop,.wf-drop:hover{border-color:color-mix(in srgb,var(--lav) 70%,transparent);background:color-mix(in srgb,var(--lav) 10%,transparent)}
.wf-pj.has .wf-drop{border-style:solid;border-color:color-mix(in srgb,var(--mint) 60%,transparent)}
.wf-pj.has .wf-drop-n{color:var(--ink)}
.wf-drop-t{font-family:var(--f)!important;text-transform:none!important;letter-spacing:0!important;font-size:14px!important}
.wf-drop-n{font-family:var(--f)!important;text-transform:none!important;letter-spacing:0!important}
.wf-pj > span:first-child em{text-transform:none;letter-spacing:0;font-family:var(--f)}
