/* WPS 2026 — form standards (assets/js/wps-forms.js): required marks, inline errors,
   character counters, file name, and the split phone field (country code + number). */
.wf-req{color:#D64545;font-weight:700;letter-spacing:0}
.wf-lab{display:block}
.wf-err{margin:2px 0 0;display:flex;align-items:flex-start;gap:6px;font-family:inherit;font-size:12.5px;font-weight:500;line-height:1.4;letter-spacing:0;text-transform:none;color:#C23434}
.wf-err::before{content:"!";flex:none;display:grid;place-items:center;width:15px;height:15px;margin-top:1px;border-radius:50%;background:#D64545;color:#fff;font-size:10px;font-weight:800}
.wf-err[hidden]{display:none}
html[data-theme="dark"] .wf-err{color:#FF8A8A}
input.wf-invalid,textarea.wf-invalid,.wf-phone.wf-invalid .wf-num{border-color:#D64545!important;box-shadow:0 0 0 3px rgba(214,69,69,.12)!important}
input:focus-visible,textarea:focus-visible{outline:none}
.cform input:focus,.cform textarea:focus,.modal input:focus,.modal textarea:focus{border-color:#009DD9;box-shadow:0 0 0 3px rgba(0,157,217,.14);outline:none}
.wf-nope{animation:wfNope .28s ease}
@keyframes wfNope{0%,100%{transform:none}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.wf-count{align-self:flex-end;margin-top:-2px;font-family:inherit;font-size:11px;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums;color:#9AABC2}
.wf-count.is-near{color:#C27A00}
.cform input[type="file"],.modal input[type="file"]{cursor:pointer;color:#7C8BA3;font-size:13.5px}
input[type="file"]::file-selector-button{margin-right:12px;padding:8px 14px;border:0;border-radius:999px;background:#023689;color:#fff;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:background .2s ease}
input[type="file"]::file-selector-button:hover{background:#0E3178}
input[type="file"].wf-invalid{color:#C23434}

.wf-phone{display:flex;gap:8px;align-items:stretch;min-width:0;text-transform:none;letter-spacing:normal}
.wf-phone .wsel{flex:none}
.wf-phone .wsel__btn{height:100%;gap:7px;white-space:nowrap}
.wf-phone .wsel__val{gap:7px}
.wf-phone .wf-num{flex:1;min-width:0;font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media (prefers-reduced-motion:reduce){ .wf-nope{animation:none} }

/* ---------- Consent checkboxes (sponsor / exhibitor registration) ----------
   `.cform label` is uppercase 10px micro-type for field labels; consent copy is
   body text, so these rules out-specify it rather than fight it with !important. */
.cform .cform__consent{display:grid;gap:11px;margin:6px 0 2px}
.cform .cform__check{display:flex;flex-direction:row;align-items:flex-start;gap:11px;cursor:pointer;
  font-family:inherit;font-size:14px;letter-spacing:normal;text-transform:none;line-height:1.55;color:var(--ink-soft)}
.cform .cform__check input[type=checkbox]{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--wps-teal);cursor:pointer}
.cform .cform__check span{flex:1;min-width:0}
.cform .cform__check a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.cform .cform__check em{font-style:normal;color:var(--ink-dim)}
.cform .cform__check:hover{color:var(--ink)}
.cform .cform__check:focus-within{color:var(--ink)}

/* Registration forms sit on a deep-blue card in dark mode. Custom-select triggers
   receive inline light-theme colours when they are initialised, so the dark state
   must deliberately override those values. Keep this shared so sponsor and
   exhibitor forms cannot drift apart. */
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .gfield_label{
  color:rgba(224,236,255,.72)!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .wsel__btn{
  border-color:rgba(191,214,244,.28)!important;
  background:rgba(232,242,255,.075)!important;
  color:#F2F7FF!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .wsel__btn:hover{
  border-color:rgba(127,211,242,.5)!important;
  background:rgba(232,242,255,.11)!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .wsel__ph{
  color:rgba(224,236,255,.64)!important;
  opacity:1
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card input:not([type=checkbox]):not([type=hidden]),
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card textarea{
  border-color:rgba(191,214,244,.28)!important;
  background:rgba(232,242,255,.075)!important;
  color:#F2F7FF!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card input::placeholder,
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card textarea::placeholder{
  color:rgba(224,236,255,.58)!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .gfield_consent_label{
  color:rgba(235,242,255,.82)!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .gfield_consent_label:hover{
  color:#F7FAFF!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .gfield_consent_label a{
  color:#7FD3F2!important;
  text-decoration-color:rgba(127,211,242,.65)
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .gfield_consent_label em,
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .wps-form-counter{
  color:rgba(224,236,255,.64)!important
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .ginput_container_consent input[type=checkbox]{
  appearance:none;
  display:grid;
  place-content:center;
  border:1px solid rgba(224,236,255,.58)!important;
  border-radius:3px;
  background:rgba(232,242,255,.06)
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .ginput_container_consent input[type=checkbox]::before{
  content:"";
  width:10px;
  height:10px;
  background:var(--wps-teal);
  clip-path:polygon(14% 44%,0 59%,39% 100%,100% 18%,84% 3%,37% 69%);
  transform:scale(0);
  transition:transform .14s var(--ease)
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .ginput_container_consent input[type=checkbox]:checked::before{
  transform:scale(1)
}
html[data-theme="dark"] :is(.sponsor-registration,.exhibitor-registration) .cform-card .ginput_container_consent input[type=checkbox]:focus-visible{
  outline:2px solid #7FD3F2;
  outline-offset:3px
}
