/* ============================================================
   Peptide Science Alliance page styles
   Extends robinheaston.com /style.css (Georgia + Arial, #2a6b4f accent).
   Scoped under .psa so nothing here touches the rest of the site.
   ============================================================ */

.psa{color-scheme:light;--psa-ink:#0e1a16;--psa-ink-2:#14241e;--psa-line:#e2e6e4;--psa-line-dk:#2b3d36;
     --psa-green:#2a6b4f;--psa-green-lt:#4ea87c;--psa-body:#444;--psa-muted:#666;
     --psa-on-dark:#c9d6d0;--psa-on-dark-muted:#9fb0a9;--psa-wash:#f6f8f7;}

.psa-wrap{max-width:1100px;margin:0 auto;padding:0 3rem;}
.psa-narrow{max-width:780px;margin:0 auto;padding:0 3rem;}
.psa section{scroll-margin-top:80px;}

.psa-eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--psa-muted);
  font-family:Arial,sans-serif;margin-bottom:1.25rem;}
.psa-dark .psa-eyebrow{color:var(--psa-on-dark-muted);}

.psa h2{font-family:Georgia,serif;font-size:34px;font-weight:400;line-height:1.2;
  letter-spacing:-.5px;color:#1a1a1a;margin-bottom:1.25rem;}
.psa-dark h2{color:#fff;}
.psa h3{font-family:Arial,sans-serif;font-size:17px;font-weight:600;color:#1a1a1a;
  margin-bottom:.6rem;letter-spacing:-.1px;}
.psa-dark h3{color:#fff;}
.psa p{font-family:Arial,sans-serif;font-size:16px;line-height:1.8;color:var(--psa-body);
  max-width:680px;margin-bottom:1.1rem;}
.psa-dark p{color:var(--psa-on-dark);}
.psa p strong{color:#1a1a1a;font-weight:600;}
.psa-dark p strong{color:#fff;}
.psa a{color:var(--psa-green);}
.psa-dark a{color:var(--psa-green-lt);}

/* ---------- skip link + focus ---------- */
.psa-skip{position:absolute;left:-9999px;top:0;background:#fff;color:#1a1a1a;padding:12px 18px;
  z-index:10000;font-family:Arial,sans-serif;font-size:14px;border:2px solid var(--psa-green);}
.psa-skip:focus{left:8px;top:8px;}
.psa :focus-visible{outline:3px solid #2b7fae;outline-offset:2px;}

/* ---------- buttons ---------- */
.psa-btn{display:inline-block;padding:14px 30px;border-radius:4px;font-size:14px;
  font-family:Arial,sans-serif;letter-spacing:.5px;text-decoration:none;cursor:pointer;
  border:1px solid transparent;text-align:center;}
.psa-btn.psa-btn-primary{background:var(--psa-green);color:#fff;border-color:var(--psa-green);}
.psa-btn-primary:hover{background:#23593f;border-color:#23593f;}
.psa-btn.psa-btn-ghost{background:transparent;color:#1a1a1a;border-color:#8a8a8a;}
.psa-btn-ghost:hover{border-color:#1a1a1a;}
.psa-dark .psa-btn-ghost{color:#fff;border-color:#6f8579;}
.psa-dark .psa-btn-ghost:hover{border-color:#fff;}
.psa-btns{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.psa-textlink{font-family:Arial,sans-serif;font-size:14px;text-underline-offset:3px;}

/* ---------- hero ---------- */
.psa-hero{background:var(--psa-ink);color:#fff;padding:5rem 0 4.5rem;position:relative;overflow:hidden;}
.psa-hero-grid{display:grid;grid-template-columns:1fr 440px;gap:4rem;align-items:center;}
.psa-hero h1{font-family:Georgia,serif;font-size:50px;font-weight:400;line-height:1.1;
  letter-spacing:-.5px;color:#fff;margin-bottom:1.25rem;}
.psa-lede{font-family:Georgia,serif;font-size:24px;line-height:1.45;color:var(--psa-green-lt);
  margin-bottom:1.5rem;max-width:560px;}
.psa-hero p{color:var(--psa-on-dark);max-width:560px;}
.psa-hero .psa-btns{margin-top:2rem;}
.psa-hero .psa-btn-ghost{color:#fff;border-color:#6f8579;}
.psa-hero .psa-btn-ghost:hover{border-color:#fff;}

/* molecular field: pure CSS, decorative only */
.psa-mol{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle at 12% 22%,rgba(78,168,124,.30) 0 2px,transparent 3px),
    radial-gradient(circle at 31% 68%,rgba(78,168,124,.24) 0 2px,transparent 3px),
    radial-gradient(circle at 58% 14%,rgba(78,168,124,.18) 0 2px,transparent 3px),
    radial-gradient(circle at 77% 54%,rgba(78,168,124,.26) 0 2px,transparent 3px),
    radial-gradient(circle at 92% 28%,rgba(78,168,124,.16) 0 2px,transparent 3px),
    radial-gradient(circle at 44% 88%,rgba(78,168,124,.20) 0 2px,transparent 3px);}

/* ---------- status strip ---------- */
.psa-status{background:var(--psa-ink-2);border-top:1px solid var(--psa-line-dk);
  border-bottom:1px solid var(--psa-line-dk);padding:1.5rem 0;}
.psa-status p{margin:0;font-size:14px;color:var(--psa-on-dark-muted);max-width:none;}
.psa-status strong{color:#fff;}

/* ---------- generic section ---------- */
.psa-sec{padding:5rem 0;}
.psa-sec-tight{padding:3.5rem 0;}
.psa-wash{background:var(--psa-wash);}
.psa-dark{background:var(--psa-ink);}
.psa-rule{border:none;border-top:1px solid var(--psa-line);margin:0;}

/* ---------- evidence ladder ---------- */
.psa-ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:2.5rem 0 1rem;
  list-style:none;padding:0;counter-reset:rung;}
.psa-ladder li{position:relative;background:#fff;border:1px solid var(--psa-line);
  border-radius:6px;padding:1.25rem 1rem;font-family:Arial,sans-serif;font-size:13px;
  letter-spacing:1.5px;text-transform:uppercase;color:#1a1a1a;text-align:center;}
.psa-ladder li::before{counter-increment:rung;content:counter(rung);display:block;
  font-size:11px;letter-spacing:1px;color:var(--psa-green);margin-bottom:.5rem;font-weight:700;}
.psa-ladder li:nth-child(5){background:var(--psa-green);border-color:var(--psa-green);color:#fff;}
.psa-ladder li:nth-child(5)::before{color:#cfe9db;}

.psa-evidence-types{display:flex;flex-wrap:wrap;gap:8px;margin:1.5rem 0 0;list-style:none;padding:0;}
.psa-evidence-types li{font-family:Arial,sans-serif;font-size:13px;color:var(--psa-green);
  border:1px solid var(--psa-green);padding:5px 14px;border-radius:20px;}

/* ---------- card grids ---------- */
.psa-grid{display:grid;gap:1.5rem;margin-top:2.5rem;}
.psa-grid-3{grid-template-columns:repeat(3,1fr);}
.psa-grid-2{grid-template-columns:repeat(2,1fr);}
.psa-grid-4{grid-template-columns:repeat(4,1fr);}
.psa-card{border:1px solid var(--psa-line);border-radius:8px;padding:1.75rem;background:#fff;}
.psa-dark .psa-card{background:var(--psa-ink-2);border-color:var(--psa-line-dk);}
.psa-card p{font-size:14px;line-height:1.7;color:var(--psa-muted);margin-bottom:0;}
.psa-dark .psa-card p{color:var(--psa-on-dark-muted);}
.psa-card-num{font-family:Arial,sans-serif;font-size:11px;letter-spacing:2px;
  text-transform:uppercase;color:var(--psa-green);margin-bottom:.75rem;}

/* clickable role cards */
.psa-role{display:block;text-decoration:none;border:1px solid var(--psa-line);border-radius:8px;
  padding:1.6rem;background:#fff;color:inherit;}
.psa-role:hover{border-color:var(--psa-green);}
.psa-role h3{color:#1a1a1a;margin-bottom:.5rem;}
.psa-role p{font-size:14px;color:var(--psa-muted);margin-bottom:0;}
.psa-role-go{display:block;margin-top:1rem;font-family:Arial,sans-serif;font-size:13px;
  color:var(--psa-green);letter-spacing:.5px;}

/* ---------- pull quote / core principle ---------- */
.psa-principle{background:var(--psa-ink);padding:5.5rem 0;position:relative;overflow:hidden;}
.psa-principle blockquote{margin:0;font-family:Georgia,serif;font-size:38px;line-height:1.25;
  color:#fff;letter-spacing:-.5px;max-width:860px;}
.psa-principle .psa-attrib{font-family:Arial,sans-serif;font-size:11px;letter-spacing:3px;
  text-transform:uppercase;color:var(--psa-green-lt);margin-bottom:1.5rem;}

/* ---------- evidence project preview cards ---------- */
.psa-pep{border:1px solid var(--psa-line);border-radius:8px;overflow:hidden;background:#fff;
  display:flex;flex-direction:column;}
.psa-pep-head{padding:1.25rem 1.5rem;border-bottom:1px solid var(--psa-line);
  display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;}
.psa-pep-head h3{margin:0;font-size:18px;}
.psa-badge{font-family:Arial,sans-serif;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;
  padding:4px 10px;border-radius:3px;background:#eef3f0;color:#2a5e47;border:1px solid #cfdfd7;
  white-space:nowrap;}
.psa-pep-body{padding:1.25rem 1.5rem 1.5rem;}
.psa-pep-body ol{margin:0;padding-left:1.1rem;font-family:Arial,sans-serif;font-size:13px;
  line-height:1.9;color:var(--psa-muted);}
.psa-pep-note{font-family:Arial,sans-serif;font-size:12px;color:#6e6e6e;margin:1rem 1.5rem 1.25rem;
  padding-top:.9rem;border-top:1px solid var(--psa-line);}

/* ---------- is / isn't ---------- */
.psa-isnt ul{list-style:none;padding:0;margin:1rem 0 0;}
.psa-isnt li{font-family:Arial,sans-serif;font-size:15px;line-height:1.6;color:var(--psa-body);
  padding:.55rem 0 .55rem 1.75rem;position:relative;border-bottom:1px solid var(--psa-line);}
.psa-isnt li:last-child{border-bottom:none;}
.psa-isnt li::before{content:"";position:absolute;left:0;top:1.05rem;width:11px;height:2px;
  background:#b04a3a;}

/* ---------- resource placeholders ---------- */
.psa-res{border:1px dashed #c3cdc8;border-radius:8px;padding:1.4rem 1.5rem;background:#fff;}
.psa-res h3{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#1a1a1a;margin-bottom:.6rem;}
.psa-res p{font-size:13px;color:#5f6b66;margin:0;font-style:italic;}

/* ---------- fund / transparency ---------- */
.psa-fund{display:grid;grid-template-columns:320px 1fr;gap:3rem;align-items:start;}
.psa-target{border:1px solid var(--psa-line-dk);border-radius:8px;padding:2rem;
  background:var(--psa-ink-2);text-align:center;}
.psa-target .psa-target-val{font-family:Georgia,serif;font-size:46px;color:#fff;line-height:1;
  margin-bottom:.6rem;letter-spacing:-1px;}
.psa-target .psa-target-lab{font-family:Arial,sans-serif;font-size:11px;letter-spacing:2px;
  text-transform:uppercase;color:var(--psa-green-lt);}
.psa-target .psa-target-sub{font-family:Arial,sans-serif;font-size:12px;color:var(--psa-on-dark-muted);
  margin-top:1rem;line-height:1.6;}
.psa-ledger{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;
  grid-template-columns:repeat(2,1fr);gap:.5rem 1.5rem;}
.psa-ledger li{font-family:Arial,sans-serif;font-size:14px;color:var(--psa-on-dark);
  padding:.55rem 0 .55rem 1.5rem;position:relative;border-bottom:1px solid var(--psa-line-dk);}
.psa-ledger li::before{content:"";position:absolute;left:0;top:1.05rem;width:8px;height:8px;
  border-radius:50%;background:var(--psa-green-lt);}

/* ---------- timeline ---------- */
.psa-timeline{list-style:none;padding:0;margin:2.5rem 0 0;border-left:2px solid var(--psa-line);}
.psa-timeline li{position:relative;padding:0 0 1.75rem 2rem;}
.psa-timeline li:last-child{padding-bottom:0;}
.psa-timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;
  border-radius:50%;background:#fff;border:2px solid #c3cdc8;}
.psa-timeline li.psa-now::before{background:var(--psa-green);border-color:var(--psa-green);}
.psa-stage{font-family:Arial,sans-serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:#5f6b66;display:block;margin-bottom:.3rem;}
.psa-timeline li.psa-now .psa-stage{color:var(--psa-green);}
.psa-timeline li p{font-size:15px;color:var(--psa-body);margin:0;}

/* ---------- forms ---------- */
.psa-form{background:#fff;border:1px solid var(--psa-line);border-radius:8px;padding:2rem;}
.psa-dark .psa-form{background:var(--psa-ink-2);border-color:var(--psa-line-dk);}
.psa-form fieldset{border:none;padding:0;margin:0 0 1.5rem;}
.psa-form legend{font-family:Arial,sans-serif;font-size:12px;letter-spacing:2px;
  text-transform:uppercase;color:#1a1a1a;padding:0;margin-bottom:.9rem;}
.psa-dark .psa-form legend{color:#fff;}
.psa-field{margin-bottom:1.1rem;}
.psa-field label{display:block;font-family:Arial,sans-serif;font-size:13px;color:#555;
  margin-bottom:.35rem;}
.psa-dark .psa-field label{color:var(--psa-on-dark-muted);}
.psa-form input[type=text],.psa-form input[type=email],.psa-form textarea,.psa-form select{
  width:100%;padding:12px 14px;border-radius:4px;font-size:15px;font-family:Arial,sans-serif;
  background:#fff;border:1px solid #7e9587;color:#1a1a1a;}
.psa-dark .psa-form input[type=text],.psa-dark .psa-form input[type=email],
.psa-dark .psa-form textarea,.psa-dark .psa-form select{background:#0e1a16;border-color:#5a7c6c;color:#fff;}
.psa-form textarea{min-height:110px;resize:vertical;}
.psa-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem 1.5rem;}
.psa-check{display:flex;gap:10px;align-items:flex-start;font-family:Arial,sans-serif;
  font-size:14px;line-height:1.5;color:var(--psa-body);cursor:pointer;padding:.35rem 0;}
.psa-dark .psa-check{color:var(--psa-on-dark);}
.psa-check input{width:18px;height:18px;margin:1px 0 0;flex-shrink:0;accent-color:#2a6b4f;}
.psa-consent{border-top:1px solid var(--psa-line);padding-top:1.25rem;margin-top:.5rem;}
.psa-dark .psa-consent{border-top-color:var(--psa-line-dk);}
.psa-form button[type=submit]{width:100%;margin-top:1rem;border:none;}
.psa-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.psa-status-msg{font-family:Arial,sans-serif;font-size:14px;margin-top:.9rem;min-height:1.2em;}
.psa-status-msg.psa-err{color:#a03828;}
.psa-dark .psa-status-msg.psa-err{color:#ff9d8a;}
.psa-status-msg.psa-ok{color:#2a6b4f;}
.psa-dark .psa-status-msg.psa-ok{color:var(--psa-green-lt);}
.psa-formnote{font-family:Arial,sans-serif;font-size:13px;color:#6e6e6e;line-height:1.6;}
.psa-dark .psa-formnote{color:var(--psa-on-dark-muted);}
.psa-req{color:#a03828;}
.psa-dark .psa-req{color:#ff9d8a;}

/* ---------- final CTA ---------- */
.psa-final{background:var(--psa-ink);padding:6rem 0;text-align:center;position:relative;overflow:hidden;}
.psa-final h2{font-size:44px;line-height:1.15;max-width:900px;margin:0 auto 1.5rem;}
.psa-final p{margin:0 auto 2rem;text-align:center;}
.psa-final .psa-btns{justify-content:center;}
.psa-sign{font-family:Georgia,serif;font-size:20px;color:var(--psa-green-lt);margin-top:2.5rem;
  letter-spacing:.5px;}

/* ---------- disclaimer ---------- */
.psa-disclaimer{background:#f2f4f3;border-top:1px solid var(--psa-line);padding:2.5rem 0;}
.psa-disclaimer h2{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#5a6560;
  font-family:Arial,sans-serif;margin-bottom:.9rem;}
.psa-disclaimer p{font-size:13px;line-height:1.75;color:#5a6560;max-width:900px;}
.psa-disclaimer p:last-child{margin-bottom:0;}

/* ---------- ART SLOTS (labelled placeholders for custom PSA artwork) ---------- */
.psa-art{border:1px dashed #6f8579;border-radius:8px;background:
  repeating-linear-gradient(45deg,rgba(78,168,124,.06) 0 10px,transparent 10px 20px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:1.5rem;min-height:220px;}
.psa-art .psa-art-tag{font-family:Arial,sans-serif;font-size:10px;letter-spacing:2px;
  text-transform:uppercase;color:#4ea87c;margin-bottom:.5rem;}
.psa-art .psa-art-name{font-family:Arial,sans-serif;font-size:14px;color:#dfe8e4;margin-bottom:.3rem;}
.psa-art .psa-art-dim{font-family:Arial,sans-serif;font-size:12px;color:#9fb0a9;}
.psa-art-light{border-color:#bcc9c3;background:
  repeating-linear-gradient(45deg,rgba(42,107,79,.05) 0 10px,transparent 10px 20px);}
.psa-art-light .psa-art-tag{color:#2a6b4f;}
.psa-art-light .psa-art-name{color:#3c4a44;}
.psa-art-light .psa-art-dim{color:#5f6b66;}
.psa-art-hero{min-height:420px;}

/* ---------- motion ---------- */
.psa-reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease;}
.psa-reveal.psa-in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .psa-reveal{opacity:1;transform:none;transition:none;}
  .psa *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .psa-grid-4{grid-template-columns:repeat(2,1fr);}
  .psa-ladder{grid-template-columns:repeat(2,1fr);}
  .psa-fund{grid-template-columns:1fr;gap:2rem;}
}
@media(max-width:768px){
  .psa-wrap,.psa-narrow{padding:0 1.5rem;}
  .psa-hero{padding:3rem 0;}
  .psa-hero-grid{grid-template-columns:1fr;gap:2.5rem;}
  .psa-hero h1{font-size:34px;}
  .psa-lede{font-size:20px;}
  .psa h2{font-size:26px;}
  .psa-sec{padding:3rem 0;}
  .psa-principle{padding:3.5rem 0;}
  .psa-principle blockquote{font-size:25px;}
  .psa-grid-2,.psa-grid-3,.psa-grid-4{grid-template-columns:1fr;}
  .psa-ladder{grid-template-columns:1fr;}
  .psa-checks{grid-template-columns:1fr;}
  .psa-ledger{grid-template-columns:1fr;}
  .psa-final{padding:3.5rem 0;}
  .psa-final h2{font-size:29px;}
  .psa-form{padding:1.4rem;}
  .psa-art-hero{min-height:260px;}
  .psa-btns .psa-btn{flex:1 1 100%;}
}

/* ---------- leave the shared site chrome exactly as /style.css had it ----------
   The .psa scope on <body> was outranking nav/footer/banner colour rules and
   dropping them below AA. These put them back. ---------- */
.psa nav .nav-name{color:#1a1a1a;}
.psa nav .nav-links a{color:#555;}
.psa nav .nav-links a:hover{color:#1a1a1a;}
.psa footer p{color:#aaa;font-size:12px;max-width:none;margin-bottom:0;}
.psa footer a{color:#aaa;}
.psa #rh-consent-banner p{color:#fff;max-width:none;}
.psa #rh-consent-banner a{color:#a0d4b8;}

/* status strip: .psa p strong was outranking .psa-status strong */
.psa-status p strong{color:#fff;}

/* two-column form sections (join + researchers); collapses on mobile */
.psa-split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
@media(max-width:900px){.psa-split{grid-template-columns:1fr;gap:2.5rem;}}

/* ---------- PSA brand mark: header badge + filled hero art slot ---------- */
.psa-header-badge{display:inline-flex;align-items:center;gap:9px;margin-left:16px;
  font-family:Arial,sans-serif;font-size:13px;font-weight:600;letter-spacing:.2px;color:#1a1a1a;}
.psa-header-badge img{display:block;width:26px;height:26px;}
@media(max-width:768px){.psa-header-badge span{display:none;}.psa-header-badge{margin-left:10px;}}

.psa-art-hero.psa-art-filled{border-style:solid;border-color:var(--psa-line-dk);
  background:none;padding:1rem;}
.psa-art-filled img{max-width:100%;height:auto;display:block;}
