/* PrioriUX enquiry form — shared by every page */
/* ---- enquiry form ----
   Opens where the button was, with the tier already chosen. The endpoint lives
   in one place (PXF_ENDPOINT) so it can be pointed at a hosted form service
   today and a Cloudflare Function later without touching anything else. */
/* .pr-go is display:flex, so grid-column and the 0fr->1fr row trick do nothing
   here — the slot simply claimed space whether open or shut. width:100% forces
   it onto its own flex line, and it is genuinely removed when closed. */
.pxf-slot{width:100%;display:none}
.pxf-slot.open{display:block;animation:pxfOpen .34s var(--ease) both}
@keyframes pxfOpen{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.pxf-box{padding:18px 0 2px}
.pxf{display:grid;gap:14px}
.pxf-row{display:grid;gap:6px}
.pxf-lb{font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--faint)}
.pxf-in{width:100%;padding:12px 14px;border-radius:10px;background:rgba(242,241,238,.04);
  border:1px solid var(--line);color:var(--ink);font-family:var(--ui);font-size:.9rem;
  transition:border-color .22s,box-shadow .22s}
.pxf-in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(167,139,250,.18)}
.pxf-in:invalid:not(:placeholder-shown){border-color:rgba(255,122,122,.5)}
select.pxf-in{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),
                   linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 19px) 52%, calc(100% - 14px) 52%;
  background-size:5px 5px, 5px 5px;background-repeat:no-repeat;padding-right:38px}
/* the honeypot: a real field, hidden from people, filled in by bots */
.pxf-cf{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pxf-go{justify-self:start;margin-top:2px}
.pxf-go[disabled]{opacity:.6;cursor:wait}
.pxf-hint{margin:2px 0 0;font-size:.72rem;color:var(--faint);line-height:1.55}
.pxf-alt{margin:0;font-size:.76rem;color:var(--faint)}
.pxf-alt a{color:var(--dim);text-decoration:underline;text-underline-offset:3px}
.pxf-alt a:hover{color:var(--ink)}
.pxf-err{margin:0;font-size:.8rem;color:#FF9AA2;min-height:0}
.pxf-err:empty{display:none}


/* The hidden attribute only works because the browser default stylesheet says
   [hidden]{display:none}. Any author rule setting display — .pxf{display:grid}
   and .pxf-done{display:grid} both do — outranks it, so the element stays on
   screen and the confirmation sits there permanently. These two rules put the
   attribute back in charge. */
.pxf[hidden],.pxf-done[hidden]{display:none !important}
.pxf-done{display:grid;gap:8px;padding:20px 22px;border-radius:14px;
  border:1px solid rgba(139,232,160,.32);background:rgba(139,232,160,.07);
  animation:pxfIn .42s var(--ease) both}
@keyframes pxfIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pxf-tick{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:rgba(139,232,160,.18);color:#8BE8A0;font-size:.9rem}
.pxf-done b{font-size:1.02rem;color:#B6EFC4}
.pxf-done p{margin:0;font-size:.86rem;color:var(--dim);line-height:1.65;max-width:52ch}
@media (prefers-reduced-motion: reduce){ .pxf-slot{transition:none} .pxf-done{animation:none} }


/* ---- the report offer ----
   Sits under the verdict, where someone has just seen evidence about their own
   file. Deliberately one field: anything more at that moment is friction. */
.rep{margin-top:16px;padding-top:15px;border-top:1px solid rgba(242,241,238,.1)}
.rep-lab{margin:0 0 9px;font-family:var(--mono);font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent)}
.rep-row{display:flex;gap:8px;flex-wrap:wrap}
.rep-in{flex:1;min-width:180px;padding:11px 13px;border-radius:9px;
  background:rgba(242,241,238,.04);border:1px solid var(--line);color:var(--ink);
  font-family:var(--ui);font-size:.86rem;transition:border-color .22s,box-shadow .22s}
.rep-in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(167,139,250,.18)}
.rep-go{padding:11px 20px;border-radius:9px;border:1px solid var(--accent);
  background:var(--accent);color:#0A0A0B;font-family:var(--ui);font-size:.82rem;
  font-weight:700;cursor:pointer;white-space:nowrap;transition:background .22s}
.rep-go:hover{background:#B9A2FF}
.rep-go[disabled]{opacity:.6;cursor:wait}
.rep-note{margin:9px 0 0;font-size:.7rem;color:var(--faint);line-height:1.6}
.rep-err{margin:7px 0 0;font-size:.76rem;color:#FF9AA2}
.rep-err:empty{display:none}
.rep-done{margin-top:16px;padding:14px 16px;border-radius:11px;
  border:1px solid rgba(139,232,160,.3);background:rgba(139,232,160,.07);
  font-size:.84rem;color:#B6EFC4;line-height:1.6}


/* ---- the optional detail ----
   Collapsed by default so the form is three fields, which is what gets filled
   in. Anyone who opens it is telling you they are serious, and the questions
   they see are only the ones their tier actually needs. */
.pxf-more{border:1px dashed rgba(167,139,250,.34);border-radius:11px;overflow:hidden;
  background:rgba(167,139,250,.04)}
.pxf-more > summary{list-style:none;cursor:pointer;padding:12px 15px;
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);transition:background .2s}
.pxf-more > summary::-webkit-details-marker{display:none}
.pxf-more > summary:hover{background:rgba(167,139,250,.08)}
.pxf-more > summary .pxf-cv{margin-left:auto;transition:transform .3s var(--ease)}
.pxf-more[open] > summary .pxf-cv{transform:rotate(180deg)}
.pxf-more-in{padding:4px 15px 16px;display:grid;gap:14px;
  animation:pxfIn .3s var(--ease) both}
.pxf-q{display:grid;gap:6px}
.pxf-q > span{font-size:.8rem;color:var(--dim)}
.pxf-chk{display:flex;flex-wrap:wrap;gap:7px}
.pxf-chk label{display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  padding:7px 12px;border-radius:100px;border:1px solid var(--line);
  background:rgba(242,241,238,.03);font-size:.78rem;color:var(--dim);
  transition:all .2s;user-select:none}
.pxf-chk label:hover{border-color:rgba(242,241,238,.26);color:var(--ink)}
.pxf-chk input{position:absolute;opacity:0;width:1px;height:1px}
.pxf-chk input:checked + span{color:#0A0A0B}
.pxf-chk label:has(input:checked){background:var(--accent);border-color:var(--accent);color:#0A0A0B}
.pxf-other{margin-top:7px}
.pxf-other[hidden]{display:none}