/* Duane Meyer — shared styles for standalone pages (thank-you, contribution-rules).
   Tokens copied verbatim from index.html so these pages match the campaign site. */
:root{
  --navy-900:#0E1526; --navy-800:#161F3A; --navy-700:#242F55;
  --navy-600:#33416E; --navy-500:#4A5A8C;
  --red:#D2382A; --red-hi:#E8543F; --red-deep:#9E2618;
  --paper:#E9EBEE; --paper-hi:#FFFFFF; --paper-sunk:#DDE1E7;
  --ink:#0F1626; --ink-2:#39445C; --ink-3:#68738B;
  --rule-d:rgba(255,255,255,.13); --rule-l:rgba(15,22,38,.13);
  --disp:'Archivo',system-ui,sans-serif;
  --body:'Newsreader',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --gut:clamp(20px,5vw,64px); --maxw:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:17.5px; line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);}
.narrow{max-width:800px;}

/* ── masthead ── */
.mast{background:var(--navy-900);color:#fff;padding:26px 0;border-bottom:4px solid var(--red);}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.lockup{display:flex;flex-direction:column;gap:7px;text-decoration:none;}
.lockup .frame{border:2px solid rgba(255,255,255,.75);padding:8px 15px;display:flex;flex-direction:column;line-height:1;}
.lockup .name{font-family:var(--disp);font-weight:900;font-size:27px;letter-spacing:.06em;color:#fff;}
.lockup .office{font-family:var(--disp);font-weight:600;font-size:9.5px;letter-spacing:.2em;color:rgba(255,255,255,.82);margin-top:5px;}
.mast .back{font-family:var(--disp);font-weight:600;font-size:12px;letter-spacing:.13em;
  text-transform:uppercase;color:rgba(255,255,255,.86);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:3px;}
.mast .back:hover{color:#fff;border-color:var(--red);}

/* ── page head ── */
.phead{padding:clamp(46px,7vw,86px) 0 clamp(26px,4vw,44px);}
.eyebrow{font-family:var(--disp);font-weight:700;font-size:11px;letter-spacing:.19em;
  text-transform:uppercase;color:var(--red);margin:0 0 14px;}
h1{font-family:var(--disp);font-weight:800;line-height:1.04;letter-spacing:-.015em;
  font-size:clamp(34px,5.4vw,58px);margin:0 0 18px;}
.lede{font-size:clamp(18px,2vw,21px);line-height:1.66;color:var(--ink-2);margin:0;max-width:62ch;}

/* ── body content ── */
.content{padding-bottom:clamp(44px,6vw,80px);}
.content h2{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2.4vw,26px);
  letter-spacing:-.01em;margin:44px 0 12px;padding-top:22px;border-top:1px solid var(--rule-l);}
.content h2:first-of-type{border-top:none;padding-top:0;margin-top:26px;}
.content h3{font-family:var(--disp);font-weight:700;font-size:16px;margin:26px 0 8px;}
.content p{margin:0 0 16px;max-width:70ch;}
.content ul{margin:0 0 18px;padding-left:22px;max-width:70ch;}
.content li{margin-bottom:9px;}
.content a{color:var(--red-deep);text-decoration:underline;text-underline-offset:2px;}
.content a:hover{color:var(--red);}
.cite{font-family:var(--mono);font-size:12.5px;color:var(--ink-3);}

/* ── callouts ── */
.note{background:var(--paper-hi);border-left:3px solid var(--red);
  padding:20px 22px;margin:24px 0;border-radius:2px;}
.note p:last-child{margin-bottom:0;}
.note b{font-family:var(--disp);font-weight:700;}

/* ── amount table ── */
.tbl{width:100%;border-collapse:collapse;margin:20px 0;background:var(--paper-hi);
  font-size:16px;border-radius:2px;overflow:hidden;}
.tbl th{background:var(--navy-900);color:#fff;font-family:var(--disp);font-weight:600;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-align:left;padding:12px 14px;}
.tbl td{padding:12px 14px;border-top:1px solid var(--rule-l);vertical-align:top;}

/* ── buttons ──
   Selectors are written as `a.btn` / `.content a.btn-red` so they out-rank the
   `.content a` link rule below (a bare `.btn-red` loses to `.content a` on
   specificity and the label renders as dark-red underlined text). */
.btn,
.content a.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--disp);font-weight:700;font-size:14px;
  letter-spacing:.055em;text-transform:uppercase;
  padding:15px 26px;border-radius:2px;
  text-decoration:none;border:2px solid transparent;cursor:pointer;
  min-height:48px;
  transition:transform .18s var(--ease),background .18s,color .18s,border-color .18s;
}
.btn:hover,.content a.btn:hover{transform:translateY(-2px);text-decoration:none;}
.btn:focus-visible,.content a.btn:focus-visible{outline:3px solid #FFC34D;outline-offset:3px;}

.btn-red,
.content a.btn-red,
.ty a.btn-red{background:var(--red);color:#fff;}
.btn-red:hover,
.content a.btn-red:hover,
.ty a.btn-red:hover{background:var(--red-hi);color:#fff;}

.btn-ghost,
.content a.btn-ghost{background:transparent;color:var(--ink);border-color:rgba(15,22,38,.3);}
.btn-ghost:hover,
.content a.btn-ghost:hover{border-color:var(--ink);background:rgba(15,22,38,.05);color:var(--ink);}

.btn .arw,.content a.btn .arw{font-size:16px;line-height:1;transition:transform .18s var(--ease);}
.btn:hover .arw,.content a.btn:hover .arw{transform:translateX(3px);}

.btnrow{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px;}

/* ── thank-you hero ── */
.ty{background:var(--navy-900);color:#fff;padding:clamp(56px,9vw,110px) 0;}
.ty h1{color:#fff;}
.ty .lede{color:rgba(255,255,255,.78);}
.ty .eyebrow{color:var(--red-hi);}
.check{width:64px;height:64px;border-radius:50%;background:var(--red);
  display:flex;align-items:center;justify-content:center;margin-bottom:26px;}
.check svg{width:32px;height:32px;fill:none;stroke:#fff;stroke-width:3;
  stroke-linecap:round;stroke-linejoin:round;}
.ty .btn-ghost,.ty a.btn-ghost{color:#fff;border-color:rgba(255,255,255,.36);background:transparent;}
.ty .btn-ghost:hover,.ty a.btn-ghost:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.09);}

/* ── footer ── */
.foot{background:var(--navy-900);color:rgba(255,255,255,.72);
  padding:clamp(38px,5vw,62px) 0 34px;font-size:15px;}
.foot .disc{font-family:var(--disp);font-weight:600;font-size:12.5px;line-height:1.85;
  letter-spacing:.02em;color:rgba(255,255,255,.9);
  border-top:1px solid var(--rule-d);padding-top:22px;margin-top:26px;}
.foot .legal{font-family:var(--mono);font-size:11.5px;line-height:1.9;
  color:rgba(255,255,255,.5);margin-top:14px;display:flex;flex-direction:column;gap:3px;}
.foot .footnav{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:6px;}
.foot .footnav a{font-family:var(--disp);font-weight:600;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.82);text-decoration:none;}
.foot .footnav a:hover{color:var(--red-hi);}

@media(max-width:620px){
  body{font-size:16.5px;}
  .mast .wrap{flex-direction:column;align-items:flex-start;gap:14px;}
  .tbl{font-size:14.5px;}
  .tbl th,.tbl td{padding:10px;}
}
