:root { --navy:#0C243C; --gold:#A47D59; --cream:#FAF8F4; --ink:#1B2430; --muted:#5D6672; --line:#E4DED4; --ok:#2E7D4F; --err:#B3261E; }
* { box-sizing:border-box }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Montserrat, system-ui, sans-serif; font-size:16px; line-height:1.55 }
.top { background:var(--navy); padding:18px max(20px, env(safe-area-inset-left)) 18px max(20px, env(safe-area-inset-right)) }
.top a { display:inline-block } .top img { height:58px; width:auto; display:block }
.wrap { max-width:680px; margin:0 auto }
main { padding:32px max(20px, env(safe-area-inset-left)) 48px max(20px, env(safe-area-inset-right)) }
h1 { font-family:'Cormorant Garamond', Georgia, serif; font-size:42px; line-height:1.1; margin:0 0 10px; color:var(--navy) }
h2 { font-family:'Cormorant Garamond', Georgia, serif; font-size:25px; color:var(--navy); margin:8px 0 0 }
.lead { color:var(--muted); margin:0 0 28px }
.for { display:inline-block; background:#EFE6DC; color:var(--navy); padding:6px 14px; border-radius:999px; font-weight:600; font-size:14px; margin-bottom:18px }
form { display:grid; gap:18px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px }
.row { display:grid; grid-template-columns:1fr 1fr; gap:16px } .row.t { grid-template-columns:120px 1fr }
label, fieldset > legend { display:grid; gap:6px; font-weight:600; font-size:14px; color:var(--navy) }
.opt { font-weight:400; color:var(--muted) }
input[type=text], input[type=email], input[type=tel], input[type=date], select, textarea { font:inherit; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; width:100%; color:var(--ink) }
input:focus, select:focus, textarea:focus { outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold) }
fieldset { border:0; padding:0; margin:0; display:grid; gap:8px }
.checks { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; font-size:14px }
.checks label, .consent { display:flex; gap:10px; align-items:flex-start; font-weight:500; color:var(--ink) }
.checks input, .consent input { margin-top:4px; accent-color:var(--navy) }
.drop { border:2px dashed #CDBBA8; border-radius:14px; padding:24px 16px; text-align:center; cursor:pointer; background:#FCFAF7 }
.drop.over { background:#F4ECE2; border-color:var(--gold) }
.drop strong { color:var(--navy) } .drop span { display:block; color:var(--muted); font-size:13px; margin-top:4px }
.drop:focus-visible { outline:2px solid var(--gold); outline-offset:2px }
ul.files { list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:14px }
ul.files li { display:flex; justify-content:space-between; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff }
ul.files li .nm { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0 }
ul.files li .st { color:var(--muted); white-space:nowrap }
ul.files li.done .st { color:var(--ok); font-weight:600 } ul.files li.bad .st { color:var(--err); font-weight:600 }
ul.files button { background:none; color:var(--err); padding:0; font-size:13px; font-weight:500 }
button { font:inherit; border:0; cursor:pointer }
.go { font-weight:600; background:var(--navy); color:#fff; border-radius:999px; padding:14px 22px }
.go:focus-visible { outline:3px solid var(--gold); outline-offset:2px }
button:disabled { opacity:.5; cursor:default }
.msg { font-size:14px; min-height:20px; margin:0 } .msg.err { color:var(--err) }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }
.fine { font-size:12.5px; color:var(--muted); margin:18px 0 0 } .fine a { color:var(--navy) }
.done-box { background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px; text-align:center }
.done-box h2 { font-size:34px; margin:0 0 8px }
.done-box .lnk { display:block; word-break:break-all; background:#F4ECE2; border-radius:10px; padding:12px; margin:14px 0; font-size:14px; color:var(--navy) }
.btn2 { display:inline-block; background:var(--navy); color:#fff; border-radius:999px; padding:12px 20px; text-decoration:none; font-weight:600 }
@media (max-width:560px) { h1 { font-size:34px } form { padding:20px } .row, .checks, .row.t { grid-template-columns:1fr } }
