/* ============================================================
   Progressivity LLC — site stylesheet
   Built on "Bold Signal" (Style 2.0). Four colours.
   Blue fills areas. Flare never fills anything.
   ============================================================ */

:root{
  /* neutrals */
  --bone:#F4F1EA; --bone-2:#EBE7DD; --bone-3:#DFDACD;
  --rule:#D3CDBE; --rule-soft:#E7E3D9; --rule-strong:#B9B2A0;
  --ink:#0B0B0C; --ink-2:#141416; --ink-3:#1E1F22; --ink-rule:#2C2E33; --ink-rule-2:#3D4047;
  --text:#0B0B0C; --text-muted:#56544E; --text-faint:#6E6B62;
  --on-dark:#F4F1EA; --on-dark-muted:#A5A29A; --on-dark-faint:#8C8981;

  /* the signal */
  --blue:#2438FF; --blue-bright:#4E5FFF; --blue-deep:#1425C4; --blue-wash:#E6E8FF;
  --on-blue:#FFFFFF; --on-blue-muted:rgba(255,255,255,.86); --on-blue-faint:rgba(255,255,255,.80);
  --blue-rule:rgba(255,255,255,.22);

  /* the accent — micro-marks only */
  --flare:#FF5A2B;        /* marks only — 2.76:1 on bone, never text on bone */
  --flare-ink:#C43A12;    /* text-safe flare for bone surfaces — 4.6:1 */
  --flare-wash:#FFEDE6;

  --focus:#2438FF; --focus-on-dark:#6E7DFF;

  --fd:"Archivo","Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;
  --fb:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;

  --t-mega:clamp(3.5rem,1.2rem + 10.5vw,11rem);
  --t-display:clamp(2.05rem,.9rem + 5.6vw,6.5rem);   /* floor set so the longest word fits 320px reflow */
  --t-h1:clamp(2.25rem,1.4rem + 3.6vw,4.25rem);
  --t-h2:clamp(1.875rem,1.25rem + 2.6vw,3.25rem);
  --t-h3:clamp(1.3125rem,1.1rem + .9vw,1.75rem);
  --t-h4:clamp(1.0625rem,1rem + .4vw,1.3125rem);
  --t-lead:clamp(1.0625rem,.98rem + .55vw,1.375rem);
  --t-sm:.9375rem; --t-xs:.8125rem; --t-micro:.6875rem;

  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem;
  --s-6:2rem; --s-7:3rem; --s-8:4rem; --s-9:6rem;
  --section-y:clamp(4rem,2.6rem + 6vw,7.5rem);
  --shell:1340px; --gutter:clamp(1.25rem,.6rem + 2.6vw,3.25rem); --measure:66ch;
  --r-sm:2px; --r-md:4px; --r-lg:8px; --r-pill:999px;
  --ease-out:cubic-bezier(.16,1,.3,1); --dur:260ms; --dur-fast:140ms;
  --header-h:76px;
}
@media(max-width:700px){ :root{ --header-h:62px } }

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bone);color:var(--text);
  font-family:var(--fb);font-size:1rem;line-height:1.62;
  -webkit-font-smoothing:antialiased;font-synthesis-weight:none;
}
::selection{background:var(--blue);color:#fff}

h1,h2,h3,h4{font-family:var(--fd);font-weight:700;line-height:1.03;margin:0 0 .4em;letter-spacing:-.035em}
h1{font-size:var(--t-display);text-transform:uppercase;letter-spacing:-.045em;line-height:.9;overflow-wrap:break-word}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h4);letter-spacing:-.02em;line-height:1.2}
h4{font-size:1rem;letter-spacing:-.015em}
p{margin:0 0 1.05em;max-width:var(--measure)}
strong{font-weight:600}
a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--blue-deep)}
img,svg{max-width:100%}

.shell{max-width:var(--shell);margin:0 auto;padding-inline:var(--gutter)}
.narrow{max-width:78ch}
.muted{color:var(--text-muted)}
.mono{font-family:var(--fm)}
.tt-none{text-transform:none}  /* product names keep their real casing inside uppercase display type */
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- skip link ---------- */
.skip{
  position:absolute;left:-9999px;top:0;z-index:200;background:var(--blue);color:#fff;
  padding:.9rem 1.3rem;font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;
}
.skip:focus{left:0}

/* ---------- masthead ---------- */
.masthead{position:sticky;top:0;z-index:60;background:var(--ink);color:var(--on-dark);border-bottom:1px solid var(--ink-rule)}
.masthead .shell{display:flex;align-items:center;gap:var(--s-6);height:var(--header-h)}
.masthead .btn{flex:none;white-space:nowrap}
.brandmark{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;flex:none}
.brandmark svg{width:30px;height:30px;display:block;border-radius:var(--r-md);flex:none}
.brandmark .bt{display:flex;flex-direction:column;gap:2px;line-height:1}
.brandmark b{font-family:var(--fd);font-weight:700;font-size:1rem;letter-spacing:-.025em;text-transform:uppercase}
.brandmark span{font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-muted)}
nav.sitenav{display:flex;flex:1 1 0;min-width:0;gap:0;overflow-x:auto;scrollbar-width:none}
nav.sitenav::-webkit-scrollbar{display:none}
nav.sitenav a{
  font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;
  color:var(--on-dark-muted);text-decoration:none;padding:.6rem .75rem;white-space:nowrap;
  border-bottom:2px solid transparent;transition:color var(--dur) var(--ease-out);
}
nav.sitenav a:hover{color:var(--on-dark)}
nav.sitenav a[aria-current="page"]{color:var(--on-dark);border-bottom-color:var(--on-dark)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;font-family:var(--fm);font-size:var(--t-micro);
  letter-spacing:.14em;text-transform:uppercase;padding:.85rem 1.35rem;border-radius:var(--r-sm);
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
  line-height:1;font-weight:500;
}
.btn svg{width:13px;height:13px;flex:none}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-primary:hover{background:var(--blue-bright);border-color:var(--blue-bright);color:#fff}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--rule-strong)}
.btn-ghost:hover{border-color:var(--ink);color:var(--text)}
.btn-onblue{background:#fff;color:var(--blue-deep);border-color:#fff}
.btn-onblue:hover{background:var(--blue-wash);color:var(--blue-deep)}
.btn-onblue-ghost{background:transparent;color:#fff;border-color:var(--blue-rule)}
.btn-onblue-ghost:hover{border-color:#fff;color:#fff}
.btn-ondark{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-ondark:hover{background:var(--blue-bright);border-color:var(--blue-bright)}
.btnrow{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:var(--s-6)}

/* ---------- sections & bands ---------- */
main section{padding-block:var(--section-y)}
.band-ink{background:var(--ink);color:var(--on-dark)}
.band-ink h2,.band-ink h3,.band-ink h4{color:var(--on-dark)}
.band-ink p,.band-ink li{color:var(--on-dark-muted)}
.band-ink strong{color:var(--on-dark)}
.band-blue{background:var(--blue);color:var(--on-blue)}
.band-blue h1,.band-blue h2,.band-blue h3{color:#fff}
.band-blue p,.band-blue li{color:var(--on-blue-muted)}
.band-blue strong{color:#fff}

.eyebrow{
  display:flex;align-items:center;gap:.7rem;font-family:var(--fm);font-weight:700;font-size:var(--t-micro);
  letter-spacing:.19em;text-transform:uppercase;margin:0 0 var(--s-4);max-width:none;color:var(--text);
}
.eyebrow .n{color:var(--flare-ink)}
.eyebrow .l{flex:1;height:1px;background:var(--rule);max-width:400px}
.band-ink .eyebrow{color:var(--on-dark)} .band-ink .eyebrow .l{background:var(--ink-rule)}
.band-ink .eyebrow .n,.band-ink .panel .num,
.pagehead .eyebrow .n{color:var(--flare)}  /* 6.3:1 on ink — the true flare is safe here */
.pagehead .eyebrow{color:var(--on-dark)} .pagehead .eyebrow .l{background:var(--ink-rule)}
.cta .eyebrow{color:var(--on-blue-muted)} .cta .eyebrow .n{color:#fff} .cta .eyebrow .l{background:var(--blue-rule)}
.band-blue .eyebrow{color:var(--on-blue-muted)} .band-blue .eyebrow .n{color:#fff} .band-blue .eyebrow .l{background:var(--blue-rule)}
.deck{font-size:var(--t-lead);line-height:1.5;color:var(--text-muted);max-width:62ch;margin-bottom:var(--s-6)}
.band-ink .deck{color:var(--on-dark-muted)} .band-blue .deck{color:var(--on-blue-muted)}

/* ---------- hero ---------- */
.hero{background:var(--blue);color:var(--on-blue);padding:clamp(3.5rem,2rem + 8vw,7rem) 0 clamp(3rem,2rem + 5vw,5rem)}
.hero .kicker{
  font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.19em;text-transform:uppercase;
  color:var(--on-blue-muted);margin:0 0 var(--s-6);display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;
}
.hero .kicker i{flex:1;height:1px;background:var(--blue-rule);font-style:normal;max-width:200px;min-width:32px}
.hero h1{max-width:17ch;margin-bottom:var(--s-5)}
.hero .lead{font-size:var(--t-lead);color:var(--on-blue-muted);max-width:60ch;margin:0;line-height:1.5}
.hero .lead strong{color:#fff;font-weight:600}
.hero-sub{background:var(--blue-deep);color:#fff;padding:var(--s-5) 0}
.hero-sub .shell{display:flex;flex-wrap:wrap;gap:var(--s-6) var(--s-8);align-items:center}
.hero-sub .item{display:flex;align-items:baseline;gap:.6rem;font-size:var(--t-sm)}
.hero-sub .item b{font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.15em;text-transform:uppercase;color:var(--on-blue-faint)}
.hero-sub .item span{color:#fff}

/* page hero (interior) */
.pagehead{background:var(--ink);color:var(--on-dark);padding:clamp(3rem,2rem + 5vw,5rem) 0 clamp(2.5rem,1.6rem + 3vw,3.5rem)}
.pagehead h1{font-size:var(--t-h1);max-width:20ch}
.pagehead .lead{font-size:var(--t-lead);color:var(--on-dark-muted);max-width:62ch;margin:var(--s-5) 0 0}

/* ---------- quick facts ---------- */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(178px,100%),1fr));gap:1px;background:var(--ink-rule)}
.facts > div{background:var(--ink);padding:var(--s-5)}
.facts dt{font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.15em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:.5rem}
.facts dd{margin:0;font-family:var(--fd);font-weight:700;font-size:1.1rem;letter-spacing:-.02em;color:var(--on-dark);word-break:break-word}
.facts dd small{display:block;font-family:var(--fb);font-weight:400;font-size:var(--t-xs);letter-spacing:0;color:var(--on-dark-muted);margin-top:.3rem}

/* ---------- grids ---------- */
.grid{display:grid;gap:1px;background:var(--rule)}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(262px,100%),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.grid > *{background:var(--bone)}
.band-ink .grid{background:var(--ink-rule)} .band-ink .grid > *{background:var(--ink)}
.band-blue .grid{background:var(--blue-rule)} .band-blue .grid > *{background:var(--blue)}
.panel{padding:var(--s-5)}
.panel h3{margin-bottom:.5rem}
.panel p:last-child,.panel ul:last-child{margin-bottom:0}
.panel .num{font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.18em;color:var(--flare-ink);font-weight:700;display:block;margin-bottom:.7rem}
.band-blue .panel .num{color:#fff}

/* ---------- boxes ---------- */
.rulebox{border-left:4px solid var(--blue);background:var(--blue-wash);padding:var(--s-4) var(--s-5);margin:var(--s-5) 0;border-radius:0 var(--r-sm) var(--r-sm) 0}
.rulebox p{margin:.35rem 0;max-width:74ch} .rulebox p:first-child{margin-top:0} .rulebox p:last-child{margin-bottom:0}
.notebox{border-left:4px solid var(--rule-strong);background:var(--bone-2);padding:var(--s-4) var(--s-5);margin:var(--s-5) 0;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:var(--t-sm)}
.notebox p:last-child{margin-bottom:0}

/* ---------- lists ---------- */
ul.tight{margin:0 0 1em;padding-left:1.05em;max-width:var(--measure)}
ul.tight li{margin-bottom:.5em;color:var(--text-muted)}
ul.tight li::marker{color:var(--rule-strong)}
ul.tight li strong{color:var(--text)}
.band-ink ul.tight li::marker{color:var(--ink-rule-2)}
.band-blue ul.tight li::marker{color:var(--blue-rule)}
ul.plain{list-style:none;margin:0;padding:0}
ul.plain li{padding:.55rem 0;border-bottom:1px solid var(--rule-soft);font-size:var(--t-sm);color:var(--text-muted)}
ul.plain li:last-child{border-bottom:0}
ul.plain li strong{color:var(--text)}

/* ---------- tables ---------- */
.tablewrap{overflow-x:auto;border-top:2px solid var(--ink);margin:var(--s-4) 0 var(--s-5)}
table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
th{
  text-align:left;font-family:var(--fm);font-weight:700;font-size:var(--t-micro);letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-muted);padding:.75rem .9rem .75rem 0;
  border-bottom:1px solid var(--rule-strong);white-space:nowrap;
}
td{padding:.85rem .9rem .85rem 0;border-bottom:1px solid var(--rule-soft);vertical-align:top;color:var(--text-muted);line-height:1.5}
td strong{color:var(--text)}
tbody tr:hover td{background:var(--bone-2)}
.tnum{font-family:var(--fm);font-size:var(--t-xs);white-space:nowrap;color:var(--text)}
.band-ink .tablewrap{border-top-color:var(--ink-rule-2)}
.band-ink th{color:var(--on-dark-muted);border-bottom-color:var(--ink-rule-2)}
.band-ink td{color:var(--on-dark-muted);border-bottom-color:var(--ink-rule)}
.band-ink td strong,.band-ink .tnum{color:var(--on-dark)}
.band-ink tbody tr:hover td{background:var(--ink-2)}

/* ---------- tags ---------- */
.tag{
  display:inline-block;font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;
  padding:.24rem .5rem;border:1px solid var(--rule-strong);border-radius:var(--r-sm);color:var(--text-muted);white-space:nowrap;
}
.tag.solid{background:var(--ink);border-color:var(--ink);color:var(--bone)}
.taglist{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:var(--s-4)}

/* ---------- CTA band ---------- */
.cta{background:var(--blue);color:var(--on-blue);padding:clamp(3rem,2rem + 4vw,5rem) 0}
.cta h2{color:#fff;max-width:18ch}
.cta p{color:var(--on-blue-muted);max-width:56ch;font-size:var(--t-lead)}
.cta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1px;background:var(--blue-rule);margin-top:var(--s-7)}
.cta-grid > div{background:var(--blue);padding:var(--s-5)}
.cta-grid h3{color:#fff;margin-bottom:.4rem}
.cta-grid p{font-size:var(--t-sm);margin-bottom:var(--s-4)}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--on-dark-muted);padding:var(--s-8) 0 var(--s-7);font-size:var(--t-xs)}
footer a{color:var(--on-dark)}
footer .ftop{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:var(--s-6);padding-bottom:var(--s-6);border-bottom:1px solid var(--ink-rule)}
footer .fh{font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-muted);font-weight:700;margin:0 0 .8rem;max-width:none}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:.45rem;line-height:1.5}
footer .fmark{display:flex;align-items:center;gap:.7rem;margin-bottom:var(--s-4)}
footer .fmark svg{width:28px;height:28px;border-radius:var(--r-md)}
footer .fmark b{font-family:var(--fd);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;color:var(--on-dark);font-size:1rem}
footer .fbot{padding-top:var(--s-5);display:flex;flex-wrap:wrap;gap:var(--s-5);justify-content:space-between;color:var(--on-dark-faint)}
footer .fbot p{margin:0;max-width:62ch;color:var(--on-dark-faint)}

/* ---------- forms ---------- */
.field{margin-bottom:var(--s-5)}
.field label{display:block;font-family:var(--fm);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}
.field input,.field textarea,.field select{
  width:100%;font-family:var(--fb);font-size:1rem;color:var(--text);background:var(--bone);
  border:1px solid var(--rule-strong);border-radius:var(--r-sm);padding:.75rem .9rem;
}
.field textarea{min-height:132px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--blue)}
.field .help{font-size:var(--t-xs);color:var(--text-faint);margin-top:.4rem}

/* ---------- capability statement (print sheet) ---------- */
.capsheet{background:#fff;max-width:min(8.5in,100%);margin:var(--s-7) auto;padding:.55in .6in;border:1px solid var(--rule);box-shadow:0 2px 4px rgba(11,11,12,.04),0 14px 32px -16px rgba(11,11,12,.2)}
.capsheet .cshead{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-5);border-bottom:3px solid var(--blue);padding-bottom:.7rem;margin-bottom:.9rem}
.capsheet h1{font-size:2rem;text-transform:uppercase;letter-spacing:-.035em;margin:0;line-height:.95}
.capsheet .cshead .role{font-family:var(--fm);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-top:.45rem}
.capsheet .cshead svg{width:46px;height:46px;border-radius:var(--r-md);flex:none}
.capsheet h2{font-family:var(--fm);font-size:9.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text);
  border-bottom:1px solid var(--rule);padding-bottom:.28rem;margin:0 0 .5rem}
.capsheet .csgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.6rem}
.capsheet .csfull{grid-column:1 / -1}
.capsheet p,.capsheet li{font-size:11.2px;line-height:1.45;color:var(--text);max-width:none;margin:0 0 .45rem}
.capsheet ul{margin:0 0 .5rem;padding-left:1rem}
.capsheet li{margin-bottom:.24rem}
.capsheet .csdata{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;font-size:10.6px}
.capsheet .csdata dt{font-family:var(--fm);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding-top:1px}
.capsheet .csdata dd{margin:0;font-weight:600}
.capsheet .csfoot{border-top:1px solid var(--rule);margin-top:.9rem;padding-top:.5rem;
  font-family:var(--fm);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.capsheet .flarebar{display:inline-block;width:9px;height:9px;background:var(--flare);margin-right:.4rem;vertical-align:-1px}

/* ---------- misc ---------- */
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:1px}
.band-ink :focus-visible,.band-blue :focus-visible,.masthead :focus-visible,.hero :focus-visible,.cta :focus-visible{outline-color:var(--focus-on-dark)}
hr{border:0;border-top:1px solid var(--rule);margin:var(--s-6) 0}

@media(max-width:640px){
  .masthead .shell > .btn{display:none}          /* the hero and CTA band carry it on small screens */
  .masthead .shell{gap:var(--s-4)}
  .capsheet{padding:1.15rem 1.1rem;margin:var(--s-5) 0;border-left:0;border-right:0}
  .capsheet .csgrid{grid-template-columns:1fr}
  .capsheet h1{font-size:1.6rem}
}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

@media print{
  .masthead,.skip,.btnrow,.cta,footer,.noprint{display:none!important}
  body{background:#fff}
  .capsheet{margin:0;padding:0;border:0;box-shadow:none;max-width:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  main section{padding-block:0}
  a[href]::after{content:""}
  @page{size:Letter;margin:.5in}
}
