/* ============================================================
   Whutzthat Travel — form controls for client-facing forms
   (client-agreement · insurance-acknowledgement · card-authorization)
   Loads on top of legal.css (tokens, nav, footer, prose, doc-head)
   ============================================================ */

.form-wrap{padding-bottom:clamp(56px,9vw,110px)}

form.wtform{max-width:100%}
.field{margin:0 0 1.25rem}
.field label,.field .lbl{display:block;font-weight:600;font-size:.94rem;color:var(--bone);
 margin:0 0 .45rem;letter-spacing:.005em}
.field .req{color:var(--gold2);margin-left:2px}
.field .hint{display:block;font-size:.82rem;color:var(--mist);margin:.3rem 0 0;font-weight:400}

.field input[type=text],
.field input[type=email],
.field input[type=tel],
.field input[type=date],
.field input[type=number],
.field select,
.field textarea{
 width:100%;font-family:"Manrope",system-ui,sans-serif;font-size:1rem;color:var(--bone);
 background:rgba(6,11,22,.5);border:1px solid var(--line);border-radius:10px;
 padding:12px 14px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.field textarea{min-height:96px;resize:vertical;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:#6E7A92}
.field input:focus,.field select:focus,.field textarea:focus{
 outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(227,178,90,.16)}
.field select{background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='14'%20height='14'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%2395A6C2'%20stroke-width='2'%3E%3Cpath%20d='M6%209l6%206%206-6'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}

.row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 20px}
@media(max-width:620px){.row,.row-3{grid-template-columns:1fr}}

/* Signature */
.sig input{font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:1.35rem;
 letter-spacing:.01em;color:var(--gold2)}

/* Agreement / checkbox blocks */
.agree{display:flex;gap:12px;align-items:flex-start;
 background:rgba(18,35,63,.5);border:1px solid var(--line);border-left:3px solid var(--gold);
 border-radius:10px;padding:15px 18px;margin:1.1em 0}
.agree input[type=checkbox]{flex:none;width:20px;height:20px;margin-top:2px;
 accent-color:var(--gold);cursor:pointer}
.agree label{font-size:.95rem;color:#E4E9F2;cursor:pointer;font-weight:600}
.agree .sub{display:block;font-weight:400;color:var(--mist);font-size:.85rem;margin-top:.2rem}

/* Radio choice group */
.choices{display:flex;flex-direction:column;gap:10px;margin:.4rem 0 0}
.choice{display:flex;gap:11px;align-items:flex-start;padding:12px 15px;
 border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:border-color .2s,background .2s}
.choice:hover{border-color:rgba(227,178,90,.5)}
.choice input[type=radio]{flex:none;width:18px;height:18px;margin-top:2px;accent-color:var(--gold);cursor:pointer}
.choice span{font-size:.94rem;color:#E4E9F2}
.choice:has(input:checked){border-color:var(--gold);background:rgba(227,178,90,.08)}

fieldset{border:0;padding:0;margin:0 0 1.5rem}
fieldset legend{font-family:"Fraunces",Georgia,serif;font-size:1.35rem;color:var(--bone);
 padding:0;margin:2em 0 .8em;width:100%;border-bottom:1px solid var(--line);padding-bottom:.5em}
fieldset:first-of-type legend{margin-top:.4em}

/* Safety / info callout (reuses .note from legal.css but adds a warning variant) */
.warn{background:rgba(60,24,24,.35);border:1px solid rgba(233,96,94,.4);border-left:3px solid #E9605E;
 border-radius:10px;padding:15px 20px;margin:1.4em 0;font-size:.93rem;color:#F3D9D6}
.warn strong{color:#F4B4B0}

/* Submit */
.submit-btn{display:inline-flex;align-items:center;gap:.6rem;font-family:"Manrope",sans-serif;
 font-weight:700;font-size:1rem;background:var(--gold);color:#241a05;border:0;cursor:pointer;
 padding:15px 34px;border-radius:40px;box-shadow:0 12px 34px -12px rgba(227,178,90,.7);
 transition:transform .2s,background .2s;margin-top:.5rem}
.submit-btn:hover{transform:translateY(-2px);background:var(--gold2)}
.submit-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}

/* Result messages */
.formmsg{display:none;border-radius:12px;padding:22px 24px;margin:1.4em 0 0;font-size:1rem;line-height:1.6}
.formmsg.show{display:block}
.formmsg.ok{background:rgba(23,52,38,.55);border:1px solid rgba(116,185,138,.5);color:#CDEBD8}
.formmsg.err{background:rgba(60,24,24,.45);border:1px solid rgba(233,96,94,.5);color:#F3D9D6}
.formmsg h3{font-family:"Fraunces",Georgia,serif;font-size:1.3rem;color:var(--bone);margin:0 0 .4em}
.formmsg a{color:var(--gold2);text-decoration:underline}

/* honeypot */
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* setup banner shown until access key is configured */
.setup-banner{background:rgba(227,178,90,.1);border:1px dashed rgba(227,178,90,.55);
 border-radius:10px;padding:13px 18px;margin:0 0 1.6em;font-family:"DM Mono",monospace;
 font-size:.8rem;letter-spacing:.02em;color:var(--gold2)}
