/* ChainPass public site: shared blue enterprise layer.
   Loaded after the generated _ds stylesheet on every public page. Overrides tokens, owns the one-row
   navigation, and holds the components added in the 2026-09-30 finish pass. No secrets, no network calls. */

:root{
  --color-bg:#f5f8ff;
  --color-surface:#e9effc;
  --color-text:#0e1a3d;
  --color-divider:color-mix(in srgb,#16295f 16%,transparent);
  --color-neutral-100:#f0f4fd;
  --color-neutral-200:#e3e9f8;
  --color-neutral-300:#cfd8ee;
  --color-neutral-400:#b0bde0;
  --color-neutral-500:#8a99c4;
  --color-neutral-600:#56658f;
  --color-neutral-700:#3f4c75;
  --color-neutral-800:#2b3659;
  --color-neutral-900:#1c2544;
}
html,body{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%}
img,iframe,video{max-width:100%}
:focus-visible{outline:3px solid var(--color-accent-500);outline-offset:2px}
::placeholder{color:var(--color-neutral-500);opacity:1}

/* ---------- One-row navigation (identical on every page) ---------- */
.cpnav{border-bottom:1px solid var(--color-neutral-300) !important;background:#fff !important;position:sticky;top:0;z-index:20}
.cpnav-in{max-width:1280px;margin:0 auto;padding:0 40px;height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:nowrap}
.cpnav-in > a{flex:none;display:block}
.cpnav-links{display:flex;align-items:center;justify-content:flex-end;gap:26px;flex-wrap:nowrap;min-width:0}
.cpnav-links a:not(.btn){flex:none;font-family:var(--font-heading);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-700);white-space:nowrap;padding:8px 0;border-bottom:2px solid transparent}
.cpnav-links a:not(.btn):hover{color:var(--color-accent-900)}
.cpnav-links a[aria-current="page"]{color:var(--color-accent-900);border-bottom-color:var(--color-accent-500)}
.cpnav-links .btn{flex:none;white-space:nowrap;padding:10px 20px;font-size:12px;letter-spacing:.12em}
@media (max-width:980px){
  .cpnav-in{padding:0 16px;gap:14px;height:60px}
  .cpnav-in > a img{height:26px !important;width:auto !important}
  .cpnav-links{flex:1;justify-content:flex-start;gap:18px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:24px}
  .cpnav-links::-webkit-scrollbar{display:none}
  .cpnav-links a:not(.btn){font-size:10.5px;letter-spacing:.12em}
  .cpnav-links .btn{order:-1;padding:8px 14px;font-size:10.5px}
}

/* ---------- Mobile repairs shared by all pages ---------- */
@media (max-width:560px){
  [style*="grid-template-columns:150px 1fr"],[style*="grid-template-columns:170px 1fr"],[style*="grid-template-columns:74px 1fr"]{grid-template-columns:minmax(0,1fr) !important}
  .p,.lead,a{overflow-wrap:anywhere}
  .pgrid .k{white-space:normal !important;text-align:right}
}
@media (max-width:700px){
  .sec{padding-left:16px !important;padding-right:16px !important}
  .fq{font-size:18px !important;padding:20px 2px !important}
  .fq > span:first-child{min-width:0;overflow-wrap:anywhere}
}
@media (max-width:880px){
  .halves{grid-template-columns:minmax(0,1fr) !important}
  .halves > .hovstrip{border-right:none !important}
}

/* ---------- Signup block: navy, not black ---------- */
.cp-signup{border-top:1px solid var(--color-accent-700);background:var(--color-accent-900);color:#fff}
.cp-signup .k{color:var(--color-accent-200) !important}
.cp-signup-form{border:1px solid var(--color-accent-600);background:var(--color-accent-800);padding:34px 34px 30px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px}
.cp-signup-form label{display:flex;flex-direction:column;gap:7px}
.cp-signup-form .input,.cp-signup-form input,.cp-signup-form textarea{background:rgba(255,255,255,.06) !important;border:1px solid var(--color-accent-400) !important;color:#fff !important;padding:12px 14px;font-family:var(--font-body);font-size:15px;border-radius:0;width:100%;box-sizing:border-box}
.cp-signup-form input:focus,.cp-signup-form textarea:focus{outline:3px solid var(--color-accent-300);outline-offset:1px}
.cp-signup-form ::placeholder{color:var(--color-accent-300);opacity:1}
.cp-signup-form .cp-submit{background:#fff !important;color:var(--color-accent-900) !important;border:1px solid #fff !important;border-radius:0;padding:16px 36px;font-size:16px;font-weight:600;letter-spacing:.02em;cursor:pointer}
.cp-signup-form .cp-submit:hover{background:var(--color-accent-100) !important}
@media (max-width:760px){.cp-signup-form{grid-template-columns:minmax(0,1fr);padding:24px 18px}.cp-signup-form .cp-wide{grid-column:auto !important}}

/* ---------- Notices, illustrative labels ---------- */
.cp-note{border:1px solid var(--color-accent-300);border-left:4px solid var(--color-accent-500);background:var(--color-accent-100);color:var(--color-accent-900);padding:14px 18px;font-size:14.5px;line-height:1.55}
.cp-note strong{font-weight:700}
.cp-tag{display:inline-block;font-family:var(--font-heading);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:4px 9px;border:1px solid var(--color-accent-500);color:var(--color-accent-800);background:var(--color-accent-100)}

/* ---------- Customer ten-step journey ---------- */
.cp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);grid-auto-flow:column;border-top:1px solid var(--color-neutral-400);border-left:1px solid var(--color-neutral-400);background:#fff}
.cp-steps li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;padding:22px 24px;border-right:1px solid var(--color-neutral-400);border-bottom:1px solid var(--color-neutral-400)}
.cp-steps .n{font-family:var(--font-heading);font-weight:600;font-size:30px;line-height:1;color:var(--color-accent-500)}
.cp-steps h3{font-size:19px;line-height:1.2;margin:0 0 6px}
.cp-steps p{margin:0;font-size:15px;line-height:1.55;color:var(--color-neutral-700)}
@media (max-width:820px){.cp-steps{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row}}

/* ---------- Custody map (who holds what) ---------- */
.cp-map{border:1px solid var(--color-neutral-400);background:#fff}
.cp-map-row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.8fr) minmax(0,1.6fr);gap:0;border-top:1px solid var(--color-neutral-300)}
.cp-map-row:first-child{border-top:none}
.cp-map-row > div{padding:16px 20px;font-size:15px;line-height:1.5}
.cp-map-row > div + div{border-left:1px solid var(--color-neutral-300)}
.cp-map-head > div{font-family:var(--font-heading);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-neutral-600);background:var(--color-neutral-100)}
.cp-map-row b{font-weight:600}
@media (max-width:760px){
  .cp-map-head{display:none}
  .cp-map-row{grid-template-columns:minmax(0,1fr)}
  .cp-map-row > div + div{border-left:none;padding-top:0}
  .cp-map-row > div:nth-child(2){color:var(--color-accent-700);font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;font-size:12px}
}

/* ---------- Security cards ---------- */
.cp-sec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--color-neutral-400);border-left:1px solid var(--color-neutral-400);background:#fff}
.cp-sec-grid > div{padding:26px 28px;border-right:1px solid var(--color-neutral-400);border-bottom:1px solid var(--color-neutral-400)}
.cp-sec-grid .k{margin-bottom:10px;color:var(--color-accent-700)}
@media (max-width:1000px){.cp-sec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.cp-sec-grid{grid-template-columns:minmax(0,1fr)}.cp-sec-grid > div{padding:20px 16px}}

/* ---------- Courtesy (planned) ---------- */
.cp-courtesy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--color-accent-700);border-left:1px solid var(--color-accent-700);background:#fff}
.cp-courtesy > div{padding:24px 26px;border-right:1px solid var(--color-accent-700);border-bottom:1px solid var(--color-accent-700);display:flex;flex-direction:column;gap:8px}
.cp-courtesy .n{font-family:var(--font-heading);font-weight:600;font-size:26px;line-height:1;color:var(--color-accent-500)}
.cp-courtesy h3{font-size:19px;line-height:1.2;margin:0}
.cp-courtesy p{margin:0;font-size:15px;line-height:1.55;color:var(--color-neutral-700)}
.cp-warn{border:2px solid #b3261e;background:#fdecea;color:#601410;padding:18px 22px;font-size:15.5px;line-height:1.55;margin-top:22px}
.cp-warn > strong:first-child{display:block;font-family:var(--font-heading);font-size:14px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;color:#8c1d18}
@media (max-width:1000px){.cp-courtesy{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.cp-courtesy{grid-template-columns:minmax(0,1fr)}}
