:root{
  --navy:#14213D; --teal:#0F7C83; --teal-ink:#0B6A70; --slate:#4A5568; --mist:#EEF3F4;
  --rule:#D5DEE1; --field:#6B7785; --error:#A3271F;
  --sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:#fff;color:var(--navy);font:400 1.0625rem/1.6 var(--sans)}
svg{display:block}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:600;line-height:1.15}
a{color:var(--teal-ink);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--navy)}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
[hidden]{display:none !important}
.wrap{width:min(72rem, 100% - 2.5rem);margin-inline:auto}
.skip{position:absolute;left:1rem;top:-5rem;z-index:5;background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:4px}
.skip:focus{top:1rem;color:#fff}
.muted{color:var(--slate)}

/* Masthead */
.masthead{border-bottom:1px solid var(--rule)}
.masthead .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;padding-block:1.1rem}
.brand{display:inline-flex;align-items:center;gap:.85rem;color:var(--navy);text-decoration:none}
.brand:hover{color:var(--navy)}
.brand svg{width:2.75rem;height:2.75rem;flex:none}
.brand-words{display:flex;flex-direction:column;gap:.38rem;line-height:1}
.brand-words strong{font-size:1.75rem;font-weight:600;letter-spacing:-.015em}
.brand-words span{font-family:var(--mono);font-size:.625rem;letter-spacing:.36em;color:var(--teal)}
.stage{font-size:.9375rem;color:var(--slate)}

/* Hero */
.hero{padding-top:clamp(3rem, 9vw, 6.5rem)}
.hero h1{font-size:clamp(2.25rem, 1.3rem + 3.9vw, 3.9rem);line-height:1.04;letter-spacing:-.025em;max-width:16ch}
.lead{margin-top:1.6rem;font-size:clamp(1.125rem, 1.02rem + .45vw, 1.3125rem);line-height:1.55;max-width:58ch}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2.25rem}
.actions p{color:var(--slate);font-size:.9375rem;max-width:34ch}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.75rem 1.6rem;border:2px solid var(--navy);border-radius:4px;background:var(--navy);color:#fff;font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer}
.button:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.button:disabled{opacity:.6;cursor:progress}
.button.quiet{background:#fff;color:var(--navy)}
.button.quiet:hover{background:var(--mist);border-color:var(--navy);color:var(--navy)}

/* The requisition line: one row of a reorder list, left blank */
.sheet{margin-top:clamp(3.5rem, 8vw, 5.5rem);background:var(--mist);border-block:1px solid var(--rule)}
.sheet figure{margin:0;padding-block:2.25rem 2rem}
.sheet-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1.15fr 1.15fr .9fr 1fr 1.5fr;border-top:2px solid var(--navy)}
.sheet-row li{display:flex;flex-direction:column;gap:.9rem;padding:.7rem 1.25rem 1.1rem;border-left:1px solid var(--rule)}
.sheet-row li:first-child{border-left:0;padding-left:0}
.sheet-label{font-size:.875rem;font-weight:500;color:var(--slate)}
.sheet-line{height:1.75rem;border-bottom:1px solid var(--field)}
.sheet-boxes{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.9375rem}
.sheet-boxes span{display:inline-flex;align-items:center;gap:.5rem}
.sheet-boxes span::before{content:"";width:.95rem;height:.95rem;border:1.5px solid var(--navy);border-radius:2px;flex:none}
.sheet figcaption{margin-top:1.25rem;max-width:64ch;color:var(--slate);font-size:.9375rem}

/* Content sections */
.section{padding-block:clamp(3.5rem, 8vw, 6rem)}
.section + .section{border-top:1px solid var(--rule)}
.split{display:grid;grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr);gap:clamp(2.5rem, 6vw, 5rem)}
.section h2{font-size:clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem);letter-spacing:-.015em}
.section h3{font-size:1.1875rem;margin-top:2.5rem}
.intro{margin-top:.9rem;color:var(--slate);max-width:52ch}
.points{margin:2rem 0 0}
.points dt{font-weight:600;font-size:1.125rem;margin-top:1.75rem}
.points dt:first-child{margin-top:0}
.points dd{margin:.4rem 0 0;max-width:56ch}
.not-yet{list-style:none;margin:1.5rem 0 0;padding:0;border-top:1px solid var(--rule)}
.not-yet li{padding:.8rem 0;border-bottom:1px solid var(--rule)}
.products{margin-top:.6rem;max-width:52ch}

/* Survey */
.survey-grid{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 2.1fr);gap:clamp(2rem, 5vw, 4.5rem);align-items:start}
.survey-intro{position:sticky;top:1.5rem;display:flex;flex-direction:column;gap:1rem}
.survey-intro p{max-width:40ch}
form{max-width:46rem}
fieldset{border:0;margin:0;padding:0;min-width:0}
.part{border-top:2px solid var(--navy);padding-top:1.5rem;margin-top:3.25rem}
.part:first-of-type{margin-top:0}
.part > legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.375rem;font-weight:600;line-height:1.25;display:flex;gap:.8rem;align-items:baseline}
.part > legend + *{clear:both}
.step{font-family:var(--mono);font-size:1rem;font-weight:500;color:var(--teal-ink)}
.part-note{padding-top:.75rem;color:var(--slate);max-width:60ch}
.field{display:flex;flex-direction:column;gap:.4rem;margin-top:1.25rem}
.grid2{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0 1.25rem}
label,.choices > legend{font-weight:500;font-size:1rem}
.rq{margin-left:.45rem;font-weight:400;font-size:.8125rem;color:var(--slate)}
.hint{font-size:.9rem;color:var(--slate)}
input[type="text"],input[type="email"],input[type="tel"],select,textarea{width:100%;min-height:2.875rem;padding:.65rem .75rem;border:1px solid var(--field);border-radius:4px;background:#fff;color:var(--navy);font:inherit;font-size:1rem}
textarea{min-height:6.5rem;resize:vertical;line-height:1.5}
.mono{font-family:var(--mono);font-size:.95rem;letter-spacing:.01em}
.choices{margin-top:1.5rem}
.choices > legend{float:left;width:100%;padding:0;margin-bottom:.35rem}
.choices > legend + *{clear:both}
.choice{display:flex;align-items:flex-start;gap:.75rem;min-height:2.75rem;padding:.55rem 0;font-weight:400;cursor:pointer}
.choice input{flex:none;width:1.25rem;height:1.25rem;margin:.18rem 0 0;accent-color:var(--teal)}
.err{color:var(--error);font-size:.9375rem;font-weight:500}
.has-error input[type="text"],.has-error input[type="email"],.has-error input[type="tel"],.has-error select,.has-error textarea{border:2px solid var(--error)}
.item{margin-top:1.75rem;padding:1.25rem 1.25rem 1.5rem;background:var(--mist);border-radius:4px}
.item > legend{float:left;width:100%;padding:0;font-weight:600;font-size:1.0625rem}
.item > legend + *{clear:both}
.item .field:first-of-type{margin-top:.75rem}
#add-item{margin-top:1.25rem}
.consent{margin-top:1.75rem}
.consent .choice{font-weight:500}
.form-errors{margin-bottom:2rem;padding:1.25rem 1.5rem;border:2px solid var(--error);border-radius:4px}
.form-errors h3{margin:0 0 .5rem;font-size:1.125rem;color:var(--error)}
.form-errors ul{margin:0;padding-left:1.2rem}
.form-errors a{color:var(--error)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:2.5rem}
.submit-row p{color:var(--slate);font-size:.9375rem;max-width:36ch}
.notice{margin-top:2rem;padding:1.4rem 1.5rem;border-radius:4px;background:var(--mist)}
.notice h3{font-size:1.25rem}
.notice h3:focus{outline:none}
.notice p{margin-top:.5rem;max-width:60ch}
.notice dl{display:grid;grid-template-columns:minmax(0, 15rem) minmax(0, 1fr);gap:.4rem 1.25rem;margin:1.25rem 0 0;font-size:.9375rem}
.notice dt{color:var(--slate)}
.notice dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.preview-flag{display:none;margin-bottom:2.25rem;padding:1.1rem 1.4rem;border:2px dashed var(--slate);border-radius:4px}
.preview-flag p + p{margin-top:.3rem;color:var(--slate)}
form:not([action]) > .preview-flag{display:block}

/* About and privacy */
.privacy h3{font-size:1.0625rem;margin-top:1.75rem}
.privacy p,.privacy ul{max-width:64ch;margin-top:.5rem}
.privacy ul{padding-left:1.2rem}
.updated{margin-top:1.75rem;font-size:.9375rem;color:var(--slate)}
.site-foot{border-top:1px solid var(--rule);padding-block:2rem 3rem;color:var(--slate);font-size:.9375rem}
.site-foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem}
.site-foot p{max-width:56ch}

@media (max-width:60rem){
  .survey-grid{grid-template-columns:1fr}
  .survey-intro{position:static}
}
@media (max-width:52rem){
  .split{grid-template-columns:1fr}
  .sheet-row{grid-template-columns:1fr 1fr}
  .sheet-row li{border-left:0;padding-left:0;padding-right:1rem}
  .sheet-row li:last-child{grid-column:1 / -1}
}
@media (max-width:36rem){
  .grid2{grid-template-columns:1fr}
  .notice dl{grid-template-columns:1fr;gap:.15rem}
  .notice dd{margin-bottom:.6rem}
  .item{padding-inline:1rem}
}

/* ---------- Multi-page additions (2026-11-10) ---------- */

/* Status bar and navigation */
.status-bar{background:var(--navy);color:#fff;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em}
.status-bar .wrap{padding-block:.45rem}
.masthead .wrap{padding-block:1rem}
.nav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.6rem}
.nav a{display:inline-block;padding:.45rem 0;color:var(--navy);font-weight:500;text-decoration:none;border-bottom:2px solid transparent}
.nav a:hover{color:var(--teal-ink);border-bottom-color:var(--rule)}
.nav a[aria-current="page"]{border-bottom-color:var(--teal);color:var(--navy)}

/* Inner page heading */
.page-head{padding-top:clamp(2.75rem, 7vw, 5rem);padding-bottom:clamp(2.25rem, 5vw, 3.5rem);border-bottom:1px solid var(--rule)}
.page-head h1{font-size:clamp(2rem, 1.3rem + 2.8vw, 3.1rem);line-height:1.08;letter-spacing:-.02em;max-width:22ch}
.page-head .lead{margin-top:1.1rem}
.eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.24em;color:var(--teal-ink);text-transform:uppercase;margin-bottom:.9rem}

/* Placeholders the owner still has to fill in */
.fill{font-family:var(--mono);font-size:.92em;background:var(--mist);padding:.05em .3em;border-bottom:1px dashed var(--slate);border-radius:2px;color:var(--navy);overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.template{margin-top:1.75rem;padding:1.1rem 1.4rem 1.25rem;border:2px dashed var(--slate);border-radius:4px;max-width:62ch}
.template-label{font-family:var(--mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal-ink)}
.template p + p,.template-label + p{margin-top:.45rem}
.template .muted{font-size:.9375rem}

/* Lists used on Home and About */
.plain{list-style:none;margin:1.25rem 0 0;padding:0;border-top:1px solid var(--rule)}
.plain li{padding:.75rem 0;border-bottom:1px solid var(--rule)}
.lines{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr));gap:1.25rem}
.lines li{border-top:2px solid var(--navy);padding-top:1rem}
.lines a{font-weight:600;font-size:1.125rem;color:var(--navy);text-decoration:none}
.lines a:hover{color:var(--teal-ink);text-decoration:underline}
.lines p{margin-top:.45rem;color:var(--slate);font-size:.9688rem}
.cta{background:var(--mist);border-top:1px solid var(--rule)}
.cta + .site-foot{border-top:0}

/* Products */
.product{padding-block:clamp(2.5rem, 6vw, 4rem);border-top:1px solid var(--rule)}
.product:first-of-type{border-top:0}
.product h2{font-size:clamp(1.4rem, 1.15rem + 1vw, 1.85rem);letter-spacing:-.01em;scroll-margin-top:1rem}
.product .intro{max-width:62ch}
.table-scroll{margin-top:1.5rem;overflow-x:auto;border-top:2px solid var(--navy)}
.catalog{width:100%;min-width:44rem;border-collapse:collapse;font-size:.9688rem}
.catalog th{text-align:left;font-weight:500;font-size:.875rem;color:var(--slate);padding:.7rem 1rem .6rem 0;border-bottom:1px solid var(--rule)}
.catalog td{padding:.85rem 1rem .85rem 0;border-bottom:1px solid var(--rule);vertical-align:top}
.catalog .fill{white-space:normal}
.jump{list-style:none;margin:1.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem .75rem}
.jump a{display:inline-block;padding:.4rem .8rem;border:1px solid var(--rule);border-radius:4px;color:var(--navy);text-decoration:none;font-size:.9375rem}
.jump a:hover{border-color:var(--navy)}

/* Contact */
.details{display:grid;grid-template-columns:minmax(0, 9rem) minmax(0, 1fr);gap:.9rem 1.25rem;margin:1.75rem 0 0}
.details dt{color:var(--slate);font-size:.9375rem;padding-top:.1rem}
.details dd{margin:0}
.items{width:100%;border-collapse:collapse;margin-top:.5rem}
.items th{text-align:left;font-weight:500;font-size:.875rem;color:var(--slate);padding:0 .6rem .35rem 0}
.items td{padding:0 .6rem .6rem 0}
.items td:last-child,.items th:last-child{padding-right:0}
.button[disabled]{background:var(--field);border-color:var(--field);opacity:1;cursor:not-allowed}
.button[disabled]:hover{background:var(--field);border-color:var(--field)}

/* Simple text pages */
.prose{max-width:64ch}
.prose h2{font-size:1.375rem;margin-top:2.5rem}
.prose h2:first-child{margin-top:0}
.prose p,.prose ul{margin-top:.6rem}
.prose ul{padding-left:1.2rem}
.prose li + li{margin-top:.35rem}

.foot-links{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;list-style:none;margin:0;padding:0}

@media (max-width:52rem){
  .masthead .wrap{flex-direction:column;align-items:flex-start;gap:.6rem}
  .nav{gap:.1rem 1.25rem}
}
@media (max-width:36rem){
  .nav{gap:0 1rem}
  .nav a{font-size:.9375rem;padding:.3rem 0}
  .details{grid-template-columns:1fr;gap:.15rem}
  .details dd{margin-bottom:.8rem}
  .items thead{display:none}
  .items tr{display:grid;grid-template-columns:1fr 1fr;gap:0 .6rem;margin-bottom:.9rem}
  .items td{padding:0 0 .5rem}
  .items td:first-child{grid-column:1 / -1}
}
.note{margin-top:1.25rem}
.cta .actions{margin-top:0;align-self:center}
.hero h1{max-width:20ch}
