:root{
  --navy:#0e2340;
  --navy-2:#16304f;
  --navy-deep:#091a30;
  --gold:#c9a227;
  --gold-light:#e3c15c;
  --paper:#ffffff;
  --ink:#1c2a3a;
  --muted:#5d6f83;
  --line:#dfe5ec;
  --err:#b3261e;
  --ok:#1e6f45;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--navy-deep);
  color:var(--ink);
  font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:16px;
  line-height:1.6;
}

/* ---------- Letterhead lockup ---------- */
.letterhead{background:var(--navy);border-bottom:3px solid var(--gold)}
.letterhead-inner{
  max-width:900px;margin:0 auto;padding:22px 26px;
  display:flex;align-items:center;gap:20px;justify-content:space-between;
}
.lh-text{min-width:0}
.lh-name{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(22px,4.4vw,34px);
  font-weight:600;color:#fff;letter-spacing:.01em;line-height:1.15;margin:0;
}
.lh-sub{
  margin:6px 0 0;color:var(--gold-light);
  font-size:clamp(9px,1.8vw,11.5px);font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;
}
.lh-mark{
  background:#fff;border-radius:4px;padding:9px;flex:0 0 auto;
  box-shadow:0 2px 10px rgba(0,0,0,.25);
}
.lh-mark img{display:block;width:78px;height:auto}

.ribbon{
  background:var(--navy-2);color:#cfdcea;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  text-align:center;padding:9px 18px;border-bottom:1px solid rgba(255,255,255,.08);
}
.ribbon strong{color:var(--gold-light);font-weight:600}

/* ---------- Document sheet ---------- */
.sheet{
  max-width:900px;margin:26px auto 60px;background:var(--paper);
  border-radius:3px;box-shadow:0 18px 50px rgba(0,0,0,.4);
  padding:clamp(22px,4.5vw,56px);
}
h1.doc-title{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(24px,4.2vw,34px);line-height:1.25;font-weight:600;
  color:var(--navy);margin:0 0 6px;text-align:center;
}
.doc-ref{
  text-align:center;color:var(--muted);font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;margin:0 0 26px;
}
.rule{height:2px;background:linear-gradient(90deg,var(--gold),rgba(201,162,39,0));margin:0 0 26px}

.project-line{
  background:#f6f8fb;border-left:3px solid var(--gold);
  padding:12px 16px;margin:0 0 24px;font-size:15px;
}
.project-line b{color:var(--navy)}

.preamble p{margin:0 0 14px;text-align:justify}
h2.sec{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:22px;color:var(--navy);font-weight:600;
  margin:30px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line);
}
.sec-body p{margin:0 0 12px;text-align:justify}
.sec-body ol{margin:0 0 12px;padding-left:22px}
.sec-body li{margin:0 0 10px;text-align:justify}

/* readable but compact legal text */
.legal{font-size:15px;color:#2b3a4c}

details.terms{margin:0 0 8px}
details.terms>summary{
  cursor:pointer;list-style:none;background:var(--navy);color:#fff;
  padding:14px 18px;border-radius:3px;font-weight:500;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
details.terms>summary::-webkit-details-marker{display:none}
details.terms>summary .chev{color:var(--gold-light);font-size:13px;letter-spacing:.1em}
details.terms[open]>summary .chev-closed{display:none}
details.terms:not([open])>summary .chev-open{display:none}
.terms-body{border:1px solid var(--line);border-top:none;padding:22px 20px 8px}

/* ---------- Form ---------- */
.form-head{
  margin:38px 0 4px;font-family:"Cormorant Garamond",Georgia,serif;
  font-size:26px;color:var(--navy);font-weight:600;
}
.form-hint{color:var(--muted);font-size:14px;margin:0 0 20px}
fieldset{border:none;padding:0;margin:0 0 26px}
legend{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);font-weight:700;padding:0;margin:0 0 14px;
}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.grid .full{grid-column:1/-1}
@media(max-width:640px){.grid{grid-template-columns:1fr}}
label.fl{display:block;font-size:13px;font-weight:500;color:var(--navy);margin:0 0 5px}
label.fl .req{color:var(--err)}
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{
  width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:3px;
  font-family:inherit;font-size:16px;color:var(--ink);background:#fff;
  transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(14,35,64,.10);
}
input[readonly]{background:#f4f6f9;color:var(--muted)}
.err-msg{color:var(--err);font-size:12.5px;margin-top:4px;display:none}
.field.bad input,.field.bad select{border-color:var(--err)}
.field.bad .err-msg{display:block}

/* party 1 block */
.party1{
  background:#f6f8fb;border:1px solid var(--line);border-radius:3px;
  padding:16px 18px;font-size:14.5px;
}
.party1 dl{display:grid;grid-template-columns:170px 1fr;gap:6px 14px;margin:0}
.party1 dt{color:var(--muted)}
.party1 dd{margin:0;color:var(--navy);font-weight:500}
@media(max-width:520px){.party1 dl{grid-template-columns:1fr}.party1 dt{margin-top:8px}}

/* acknowledgements */
.ack{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:3px;margin:0 0 10px;background:#fcfdfe}
.ack input{margin-top:3px;width:20px;height:20px;flex:0 0 auto;accent-color:var(--navy)}
.ack label{font-size:14.5px;line-height:1.55;cursor:pointer}
.ack.bad{border-color:var(--err);background:#fdf6f5}
.ack a{color:var(--navy)}

/* signature */
.sigwrap{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:#fff}
.sigwrap.bad{border-color:var(--err)}
canvas#sig{display:block;width:100%;height:190px;touch-action:none;cursor:crosshair;background:
  repeating-linear-gradient(0deg,transparent,transparent 189px,var(--line) 189px,var(--line) 190px)}
.sigbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f6f8fb;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.linkbtn{background:none;border:none;color:var(--navy);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;padding:4px}

/* submit */
.actions{margin-top:28px;display:flex;flex-direction:column;gap:12px;align-items:center}
button.primary{
  background:var(--navy);color:#fff;border:none;border-radius:3px;
  padding:16px 34px;font-family:inherit;font-size:16px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;cursor:pointer;width:100%;max-width:420px;
  transition:background .15s;
}
button.primary:hover{background:var(--navy-2)}
button.primary:disabled{opacity:.55;cursor:not-allowed}
.fineprint{font-size:12.5px;color:var(--muted);text-align:center;max-width:520px}
.formerr{display:none;background:#fdf6f5;border:1px solid var(--err);color:var(--err);padding:12px 14px;border-radius:3px;margin-top:16px;font-size:14px}

/* success */
.success{display:none;text-align:center;padding:10px 0 6px}
.success h2{font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;color:var(--navy);margin:0 0 10px}
.fid{
  display:inline-block;margin:16px 0 6px;padding:16px 28px;border:2px solid var(--gold);
  border-radius:3px;background:#fffdf5;
}
.fid span{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.fid strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;color:var(--navy);letter-spacing:.04em}
.next{
  margin:26px auto 0;max-width:560px;text-align:left;background:#f6f8fb;
  border-left:3px solid var(--gold);padding:18px 20px;
}
.next h3{margin:0 0 8px;font-size:16px;color:var(--navy)}
.next ol{margin:0;padding-left:20px}
.next li{margin-bottom:8px;font-size:14.5px}
a.cta{
  display:inline-block;margin-top:18px;background:var(--gold);color:#20180a;
  padding:14px 30px;border-radius:3px;text-decoration:none;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;font-size:14px;
}
a.cta:hover{background:var(--gold-light)}

footer.site{
  max-width:900px;margin:0 auto;padding:0 26px 44px;color:#8fa3ba;font-size:12.5px;text-align:center;
}
footer.site a{color:#c3d3e4}
.spin{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px;margin-right:8px}
@keyframes sp{to{transform:rotate(360deg)}}
@media print{
  body{background:#fff}
  .sheet{box-shadow:none;margin:0;max-width:none}
  .actions,.sigbar,details.terms>summary{display:none}
  .terms-body{border:none;padding:0}
}
