/* FOP DC Lodge #1 — public membership application.
   Adapted from research/membership-application-mockup.html into a real form. */
:root{
  --navy:#0b2545; --blue:#13315c; --accent:#2563eb; --green:#16a34a;
  --line:#d8dee9; --soft:#f1f5f9; --ink:#0f172a; --gray:#64748b; --req:#dc2626;
  --err:#dc2626; --errbg:#fef2f2;
}
*{box-sizing:border-box;}
body{margin:0;background:#eef2f7;color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:15px;line-height:1.45;}
.wrap{max-width:960px;margin:0 auto;background:#fff;min-height:100vh;
  box-shadow:0 0 40px rgba(11,37,69,.08);}

.hero{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;
  padding:22px 30px;display:flex;align-items:center;gap:18px;}
.hero .seal{width:54px;height:54px;border-radius:50%;background:#fff;color:var(--navy);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;
  text-align:center;line-height:1.05;border:3px solid #c8a44d;flex-shrink:0;}
.hero h1{margin:0;font-size:24px;font-weight:800;}
.hero p{margin:4px 0 0;font-size:14px;opacity:.9;}

.body{padding:18px 30px 8px;}
.legend{font-size:12px;color:var(--gray);padding:10px 30px 0;}
.legend .r{color:var(--req);font-weight:700;}

.sec{margin-bottom:22px;}
.sec-h{display:flex;align-items:center;gap:10px;margin:0 0 10px;}
.sec-h .n{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;
  font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sec-h h2{margin:0;font-size:17px;font-weight:800;color:var(--navy);}
.sec-sub{font-size:13px;color:var(--gray);margin:-4px 0 12px 34px;}

.row{display:flex;gap:14px;margin-bottom:12px;flex-wrap:wrap;}
.f{flex:1;min-width:140px;}
.f.w-sm{flex:0 0 110px;min-width:90px;}
.f.w-md{flex:0 0 170px;min-width:140px;}
.f.w-lg{flex:0 0 260px;min-width:220px;}
/* Date-of-birth: three dropdowns (month / day / year) side by side. */
.dob{display:flex;gap:8px;}
.dob select{flex:1;min-width:0;}
.dob select[name="dob_month"]{flex:1.4;}
label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:5px;}
label .r{color:var(--req);}
.ctl{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;
  background:#fff;font-size:15px;color:var(--ink);min-height:42px;font-family:inherit;}
.ctl:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);}
select.ctl{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:30px;}
textarea.ctl{min-height:56px;resize:vertical;}
.field-err{color:var(--err);font-size:12.5px;margin-top:4px;font-weight:600;}
.ctl.bad{border-color:var(--err);background:var(--errbg);}

/* membership panels (Active / Associate) — full width, stacked */
.panel{border:1.5px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:14px;}
.panel-h{font-weight:800;font-size:17px;color:var(--navy);}
.panel-desc{font-size:13px;color:var(--gray);margin:3px 0 12px;}
.opts{display:flex;flex-direction:column;gap:8px;}
.opt{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:10px;
  padding:12px 14px;cursor:pointer;position:relative;}
.opt:hover{border-color:#bfdbfe;}
.opt input{position:absolute;opacity:0;pointer-events:none;}
.opt .opt-radio{width:18px;height:18px;border-radius:50%;border:2px solid #cbd5e1;flex-shrink:0;}
.opt.sel{border-color:var(--accent);background:#eff6ff;}
.opt.sel .opt-radio{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px #fff;}
.opt .opt-label{flex:1;font-weight:600;color:var(--navy);font-size:14.5px;}
.opt .opt-price{font-size:13px;font-weight:700;color:var(--green);white-space:nowrap;}
.check input:disabled ~ span{color:#94a3b8;}

/* membership type cards (legacy — no longer used) */
.types{display:flex;gap:12px;flex-wrap:wrap;}
.type{flex:1;min-width:200px;border:1.5px solid var(--line);border-radius:12px;padding:14px;
  position:relative;cursor:pointer;display:block;}
.type:hover{border-color:#bfdbfe;}
.type input{position:absolute;opacity:0;pointer-events:none;}
.type .dot{width:16px;height:16px;border-radius:50%;border:2px solid #cbd5e1;
  position:absolute;top:14px;right:14px;}
.type.sel{border-color:var(--accent);background:#eff6ff;}
.type.sel .dot{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px #fff;}
.type .thead{display:flex;align-items:baseline;gap:10px;padding-right:24px;margin-bottom:4px;
  justify-content:space-between;}
.type .tt{font-weight:800;font-size:15px;color:var(--navy);}
.type .tp{font-size:16px;font-weight:800;color:var(--green);white-space:nowrap;}
.type .tp small{font-size:11px;color:var(--gray);font-weight:600;}
.type .td{font-size:12.5px;color:var(--gray);}
.type .tp .ach{display:block;font-size:11px;color:var(--gray);font-weight:600;text-align:right;}

.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:#334155;margin:10px 0;cursor:pointer;}
.check input{width:18px;height:18px;margin:1px 0 0;flex-shrink:0;accent-color:var(--accent);}
.check.lc{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:11px 13px;}
.check.lc .muted{color:var(--gray);}

.tag{display:inline-block;background:#dbeafe;color:#1e40af;font-size:10px;font-weight:700;
  padding:2px 7px;border-radius:999px;vertical-align:middle;margin-left:4px;}
.cond .ctl{background:#eff6ff;border-color:#bfdbfe;}

.hidden{display:none !important;}

/* payment */
.pay{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:16px 18px;}
.pay-methods{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.pm{flex:1;min-width:200px;border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;
  cursor:pointer;position:relative;display:block;}
.pm input{position:absolute;opacity:0;pointer-events:none;}
.pm.sel{border-color:var(--accent);background:#eff6ff;}
.pm .pm-t{font-weight:700;color:var(--navy);font-size:14px;}
.pm .pm-d{font-size:12px;color:var(--gray);margin-top:2px;}
.pay-total{display:flex;justify-content:space-between;align-items:baseline;
  border-top:1px solid var(--line);padding-top:12px;margin-top:4px;}
.pay-total .lbl{font-size:14px;color:var(--gray);}
.pay-total .amt{font-size:26px;font-weight:800;color:var(--navy);}
.secured{font-size:12px;color:var(--gray);text-align:center;margin-top:12px;}
.brand{color:#635bff;font-weight:700;}

.lc-note{font-size:13px;color:#92400e;background:#fffbeb;border:1px dashed #d97706;
  border-radius:10px;padding:12px 14px;}

.submit{width:100%;background:var(--green);color:#fff;border:none;text-align:center;
  font-weight:800;font-size:16px;padding:15px;border-radius:12px;margin:14px 0 6px;cursor:pointer;
  font-family:inherit;}
.submit:hover{filter:brightness(1.05);}
.footnote{font-size:12px;color:var(--gray);text-align:center;padding:6px 0 26px;}

.form-error-summary{background:var(--errbg);border:1px solid #fecaca;color:#991b1b;
  border-radius:10px;padding:12px 14px;margin:0 0 18px;font-size:14px;font-weight:600;}

/* confirmation / cancel pages */
.notice{padding:26px 30px;}
.notice h2{color:var(--navy);margin-top:0;}
.ref{display:inline-block;background:var(--soft);border:1px solid var(--line);border-radius:8px;
  padding:8px 14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;font-weight:700;
  color:var(--navy);letter-spacing:.02em;}
.callout{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:14px 16px;margin:16px 0;font-size:14px;}
.callout.warn{background:#fef3c7;border-color:#fcd34d;color:#7c2d12;}
.btn-link{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;
  padding:11px 18px;border-radius:10px;font-weight:700;margin-top:8px;}
.btn-link.secondary{background:transparent;color:var(--accent);border:1px solid var(--line);margin-left:8px;}
/* Address standardization comparison (review interstitial). */
.addr-compare{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0;}
.addr-col{flex:1;min-width:220px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--soft);}
.addr-col.addr-new{border-color:#86efac;background:#f0fdf4;}
.addr-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray);margin-bottom:6px;}
.addr-body{font-size:15px;color:var(--navy);line-height:1.5;}
