/* Upward Lead Gate: self-contained form styling (the single source for the form's look).
   Uses the site's brand CSS vars when present, with safe fallbacks.
   A white card that reads on light and dark sections alike. */
.upw-gate{
  --_ink:var(--ink,#0F1E3C);
  --_body:var(--body,#56657A);
  --_muted:var(--muted,#7E8CA0);
  --_cyan:var(--cyan-deep,#00B8D9);
  --_gold:var(--gold,#D4A851);
  --_gold2:var(--gold-2,#E6C074);
  --_line:#D9E1EC;
  --_err:#C2362B;
  --_ok:#14975A;
  position:relative;display:flex;flex-direction:column;gap:18px;
  background:#fff;color:var(--_body);border:1px solid rgba(15,30,60,.06);border-radius:22px;
  padding:30px;max-width:460px;font-family:inherit;text-align:left;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 40px 80px -40px rgba(8,16,32,.55),0 12px 28px -18px rgba(8,16,32,.35);
}
.upw-gate *,.upw-gate *::before,.upw-gate *::after{box-sizing:border-box}
.upw-gate-head{display:flex;flex-direction:column;gap:6px}
.upw-gate-kicker{margin:0;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#A87C2A}
.upw-gate .upw-gate-title,.upw-gate .upw-gate-head strong{
  display:block;margin:0;font-family:'Diodrum','Diodrum Fallback','Manrope',sans-serif;
  font-size:22px;line-height:1.2;font-weight:800;color:var(--_ink);letter-spacing:-.005em;
}
.upw-gate-sub{margin:0;font-size:14.5px;line-height:1.55;color:var(--_body)}
.upw-gate-fields{display:flex;flex-direction:column;gap:14px}

/* fields: visible labels above the inputs */
.upw-field{display:flex;flex-direction:column;gap:7px}
.upw-field label{font-size:13.5px;font-weight:700;color:var(--_ink);line-height:1.2}
.upw-gate input[type=text],.upw-gate input[type=email],.upw-gate input[type=tel]{
  width:100%;min-height:50px;padding:13px 16px;margin:0;font:inherit;font-size:16px;color:var(--_ink);
  background:#F6F8FB;border:1.5px solid var(--_line);border-radius:12px;box-shadow:none;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.upw-gate input[type=text]:hover,.upw-gate input[type=email]:hover{border-color:#C3CEDD}
.upw-gate input:focus{outline:none}
.upw-gate input[type=text]:focus-visible,.upw-gate input[type=email]:focus-visible,.upw-gate input[type=tel]:focus-visible,
.upw-gate input[type=text]:focus,.upw-gate input[type=email]:focus,.upw-gate input[type=tel]:focus{
  background:#fff;border-color:var(--_cyan);box-shadow:0 0 0 4px rgba(0,184,217,.16);
}
.upw-gate input[aria-invalid=true],.upw-gate input[aria-invalid=true]:hover{border-color:var(--_err);background:#fff}
.upw-gate input[aria-invalid=true]:focus{border-color:var(--_err);box-shadow:0 0 0 4px rgba(194,54,43,.14)}
.upw-err{display:flex;gap:7px;align-items:flex-start;margin:0;font-size:13px;line-height:1.45;color:var(--_err);font-weight:600}
.upw-err::before{content:"";flex:none;width:15px;height:15px;margin-top:1px;border-radius:50%;
  background:var(--_err) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4v5M8 11.3v.2' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/100% no-repeat}

/* consent: 24px box, whole line is the tap target */
.upw-gate-consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--_body);cursor:pointer;margin:2px 0 0}
.upw-gate-consent input[type=checkbox]{
  appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;margin:0;border-radius:7px;
  border:1.5px solid #B9C5D5;background:#fff;cursor:pointer;display:grid;place-content:center;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.upw-gate-consent input[type=checkbox]::after{
  content:"";width:12px;height:7px;border:2.5px solid #fff;border-top:0;border-right:0;
  transform:translateY(-2px) rotate(-45deg) scale(0);transition:transform .2s cubic-bezier(.16,1,.3,1);
}
.upw-gate-consent input[type=checkbox]:checked{background:var(--_cyan);border-color:var(--_cyan)}
.upw-gate-consent input[type=checkbox]:checked::after{transform:translateY(-2px) rotate(-45deg) scale(1)}
.upw-gate-consent input[type=checkbox]:focus-visible{box-shadow:0 0 0 4px rgba(0,184,217,.2)}
.upw-gate-consent.is-invalid input[type=checkbox]{border-color:var(--_err)}
.upw-gate-consent a{color:#0089A3;text-decoration:underline;text-underline-offset:2px}

/* primary button: gold, with a calm loading state */
.upw-gate .upw-gate-btn{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;
  min-height:54px;padding:15px 22px;margin:4px 0 0;border:0;border-radius:999px;cursor:pointer;
  font:inherit;font-size:16px;font-weight:800;letter-spacing:.01em;line-height:1.2;text-decoration:none;
  color:#2a1f08;background:linear-gradient(135deg,var(--_gold),var(--_gold2));
  box-shadow:0 14px 30px -14px rgba(212,168,81,.85);
  transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease,filter .2s ease;
}
.upw-gate .upw-gate-btn:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 18px 34px -14px rgba(212,168,81,.95);color:#2a1f08}
.upw-gate .upw-gate-btn:focus-visible{outline:3px solid var(--_cyan);outline-offset:3px}
.upw-gate .upw-gate-btn:disabled{cursor:progress;transform:none;filter:saturate(.85)}
.upw-gate.is-busy .upw-gate-btn::before{
  content:"";width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(42,31,8,.25);border-top-color:#2a1f08;
  animation:upw-spin .8s linear infinite;
}
@keyframes upw-spin{to{transform:rotate(360deg)}}

.upw-gate-msg{margin:0;font-size:13.5px;line-height:1.5;color:var(--_body)}
.upw-gate-msg:empty{display:none}
.upw-gate-msg.is-err{color:var(--_err);font-weight:600}
.upw-gate-msg.is-ok{color:var(--_ok);font-weight:600}

/* honeypot: off-screen, out of the tab order and the accessibility tree */
.upw-gate .upw-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* success state */
.upw-gate-done{display:flex;flex-direction:column;align-items:flex-start;gap:12px;outline:none}
.upw-done-ico{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#1aa260,#43BDED);box-shadow:0 16px 34px -16px rgba(67,189,237,.8)}
.upw-done-ico svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:0}
.upw-done-text{margin:0;font-size:15px;line-height:1.6;color:var(--_body)}
.upw-done-text b{color:var(--_ink);word-break:break-all}
.upw-done-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;width:100%;margin-top:6px}
.upw-gate .upw-gate-alt{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 18px;border-radius:999px;
  border:1.5px solid rgba(0,184,217,.45);color:#0089A3;font-weight:700;font-size:15px;text-decoration:none;transition:background-color .2s ease}
.upw-gate .upw-gate-alt:hover{background:rgba(0,184,217,.07);color:#0089A3}
.upw-gate.is-done{border-color:rgba(26,162,96,.28)}

@media (prefers-reduced-motion:no-preference){
  .upw-gate-done{animation:upw-in .6s cubic-bezier(.16,1,.3,1) both}
  .upw-done-ico{animation:upw-pop .7s cubic-bezier(.16,1,.3,1) both}
  .upw-done-ico svg{stroke-dashoffset:24;animation:upw-draw .55s .25s cubic-bezier(.65,0,.35,1) forwards}
}
@keyframes upw-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes upw-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes upw-draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.upw-gate.is-busy .upw-gate-btn::before{animation-duration:2.4s}}

/* hidden parts (success state) win over the display rules above */
.upw-gate [hidden],.upw-gate .upw-gate-btn[hidden]{display:none}

@media (max-width:480px){.upw-gate{padding:24px 20px;border-radius:20px}}
