.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.cat-main{background:var(--paper,#f3efe6);min-height:70vh;padding-bottom:6rem}
.cat-hero{background:var(--navy,#0a1628);color:#fff;padding:2.5rem 0 2rem}
.cat-hero h1{font-family:"Barlow Condensed",sans-serif;font-size:clamp(2rem,4vw,2.8rem);margin:.25rem 0 .75rem;line-height:1.05}
.cat-hero .eyebrow{color:var(--orange-hot,#f48c06);font-family:"IBM Plex Mono",monospace;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin:0}
.cat-lede{max-width:52rem;color:#d6dde8;font-size:1.05rem;margin:0 0 1.25rem}
.cat-search input{width:100%;max-width:40rem;padding:.8rem 1rem;border-radius:6px;border:1px solid #33496b;background:#12233b;color:#fff;font-size:1rem}
.cat-search input::placeholder{color:#8fa0b8}
.cat-body{padding-top:1.5rem}
.cat-crumbs{font-size:.95rem;margin-bottom:1rem;color:var(--muted,#5c6b80)}
.cat-crumbs a{color:var(--navy-soft,#1b3354);font-weight:600}
.cat-crumbs span.sep{margin:0 .4rem}
.cat-group{margin-bottom:2rem}
.cat-group h2{font-family:"Barlow Condensed",sans-serif;font-size:1.6rem;color:var(--navy,#0a1628);margin:0 0 .75rem;border-bottom:3px solid var(--orange,#e85d04);display:inline-block;padding-bottom:.15rem}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem}
.cat-card{display:block;text-align:left;background:#fff;border:1px solid var(--line,rgba(10,22,40,.12));border-radius:6px;padding:1rem 1.1rem;cursor:pointer;color:var(--ink,#142033);text-decoration:none;font:inherit;transition:box-shadow .15s,border-color .15s}
.cat-card:hover,.cat-card:focus-visible{border-color:var(--orange,#e85d04);box-shadow:0 8px 20px rgba(10,22,40,.1);outline:none}
.cat-card h3{font-family:"Barlow Condensed",sans-serif;font-size:1.3rem;margin:0 0 .3rem;color:var(--navy,#0a1628)}
.cat-card p{margin:0;color:var(--muted,#5c6b80);font-size:.93rem}
.cat-card .meta{margin-top:.55rem;font-family:"IBM Plex Mono",monospace;font-size:.78rem;color:var(--orange,#e85d04)}
.card-tag{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:.72rem;background:var(--paper-2,#e8e2d4);color:var(--navy,#0a1628);border-radius:3px;padding:.1rem .4rem;margin:0 .3rem .3rem 0}
.cat-title{font-family:"Barlow Condensed",sans-serif;font-size:2rem;color:var(--navy,#0a1628);margin:.2rem 0 .3rem}
.cat-sub{color:var(--muted,#5c6b80);margin:0 0 1.2rem;max-width:52rem}
.prod-list{display:flex;flex-direction:column;gap:.75rem}
.prod{background:#fff;border:1px solid var(--line,rgba(10,22,40,.12));border-radius:6px;padding:1rem 1.1rem;display:grid;grid-template-columns:minmax(200px,1.3fr) 2fr;gap:1rem;align-items:start}
.prod h3{margin:0 0 .25rem;font-size:1.08rem;color:var(--navy,#0a1628)}
.prod .detail{margin:0;color:var(--muted,#5c6b80);font-size:.9rem}
.prod .mfr-line{font-size:.82rem;color:var(--muted,#5c6b80);margin:.3rem 0 0}
.prod-form{display:grid;grid-template-columns:5rem 1fr 1.3fr auto;gap:.5rem;align-items:end}
.prod-form label{display:block;font-size:.75rem;font-weight:600;color:var(--muted,#5c6b80);margin-bottom:.15rem}
.prod-form input,.prod-form textarea{width:100%;padding:.5rem .6rem;border:1px solid #c9c2b2;border-radius:4px;font:inherit;font-size:.93rem;background:#fff}
.prod-form textarea{resize:vertical;min-height:2.4rem;height:2.4rem}
.prod-form button{white-space:nowrap}
.prod.other{border-style:dashed}
.btn-add{background:var(--orange,#e85d04);color:#fff;border:0;border-radius:4px;padding:.6rem 1rem;font-weight:700;cursor:pointer}
.btn-add:hover{background:var(--orange-hot,#f48c06)}
.btn-add.added{background:#2f7d4f}
@media (max-width:760px){.prod{grid-template-columns:1fr}.prod-form{grid-template-columns:4.5rem 1fr}.prod-form .f-notes{grid-column:1/-1}.prod-form button{grid-column:1/-1}}
.tray-fab{position:fixed;right:1.2rem;bottom:1.2rem;z-index:60;background:var(--navy,#0a1628);color:#fff;border:2px solid var(--orange,#e85d04);border-radius:999px;padding:.8rem 1.2rem;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 10px 24px rgba(10,22,40,.3)}
.tray-count{display:inline-block;min-width:1.6rem;text-align:center;background:var(--orange,#e85d04);border-radius:999px;padding:.05rem .45rem;margin-left:.35rem}
.tray-fab.bump{animation:bump .35s}
@keyframes bump{50%{transform:scale(1.1)}}
.tray-backdrop{position:fixed;inset:0;background:rgba(10,22,40,.45);z-index:70}
.tray{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);background:#fff;z-index:80;display:flex;flex-direction:column;box-shadow:-10px 0 30px rgba(10,22,40,.25)}
.tray[hidden],.tray-backdrop[hidden]{display:none}
.tray-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;background:var(--navy,#0a1628);color:#fff}
.tray-head h2{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:1.5rem}
.tray-close{background:none;border:0;color:#fff;font-size:1.8rem;cursor:pointer;line-height:1}
.tray-items{flex:1;overflow:auto;padding:1rem 1.2rem}
.tray-item{border-bottom:1px solid var(--line,rgba(10,22,40,.12));padding:.7rem 0;display:grid;grid-template-columns:4.2rem 1fr auto;gap:.6rem;align-items:start}
.tray-item input{width:100%;padding:.35rem .4rem;border:1px solid #c9c2b2;border-radius:4px}
.tray-item .t-name{font-weight:700;color:var(--navy,#0a1628)}
.tray-item .t-sub{font-size:.85rem;color:var(--muted,#5c6b80)}
.tray-remove{background:none;border:1px solid #c9c2b2;border-radius:4px;padding:.3rem .55rem;cursor:pointer;color:#8a2a0a}
.tray-empty{color:var(--muted,#5c6b80)}
.tray-foot{padding:1rem 1.2rem;border-top:1px solid var(--line,rgba(10,22,40,.12))}
.tray-continue{display:block;text-align:center}
.tray-continue[aria-disabled="true"]{opacity:.5;pointer-events:none}
.tray-note{font-size:.85rem;color:var(--muted,#5c6b80);margin:.6rem 0 0}
.toast{position:fixed;left:50%;bottom:5.5rem;transform:translateX(-50%);background:#1e3a2a;color:#fff;padding:.6rem 1rem;border-radius:6px;z-index:90;font-size:.95rem}
.cat-loading,.cat-empty{color:var(--muted,#5c6b80)}
.tray-acc{margin-left:1.4rem;border-left:3px solid var(--orange,#e85d04);padding-left:.6rem}
.tray-item .t-acc{color:var(--orange,#e85d04);font-weight:600}
.t-accbtn{margin-top:.35rem;background:none;border:1px dashed var(--orange,#e85d04);color:var(--navy,#0a1628);border-radius:4px;padding:.2rem .55rem;font-size:.82rem;font-weight:600;cursor:pointer}
.tray-link{display:block;text-align:center;margin-top:.55rem;font-weight:600;color:var(--navy-soft,#1b3354)}
.acc-wrap[hidden]{display:none}
.acc-back{position:fixed;inset:0;background:rgba(10,22,40,.5);z-index:95}
.acc{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,94vw);max-height:88vh;display:flex;flex-direction:column;background:#fff;border-radius:8px;z-index:96;box-shadow:0 20px 50px rgba(10,22,40,.35);overflow:hidden}
.acc-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;background:var(--navy,#0a1628);color:#fff}
.acc-head h2{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:1.35rem;line-height:1.15}
.acc-body{overflow:auto;padding:1rem 1.1rem}
.acc-lede{margin:0 0 .8rem;color:var(--muted,#5c6b80)}
.acc-group{border:1px solid var(--line,rgba(10,22,40,.12));border-radius:6px;padding:.5rem .8rem .6rem;margin:0 0 .7rem}
.acc-group legend{font-weight:700;color:var(--navy,#0a1628);padding:0 .3rem;font-size:.95rem}
.acc-opt{display:grid;grid-template-columns:1fr 4.5rem;gap:.6rem;align-items:center;padding:.25rem 0}
.acc-opt label{display:flex;gap:.5rem;align-items:flex-start;cursor:pointer}
.acc-opt label input{margin-top:.25rem}
.acc-opt small{color:var(--muted,#5c6b80)}
.acc-opt input[type=number],.acc-other input{padding:.35rem .45rem;border:1px solid #c9c2b2;border-radius:4px;font:inherit;width:100%}
.acc-opt input[type=number]:disabled{opacity:.4}
.acc-other{display:grid;grid-template-columns:1fr 4.5rem;gap:.6rem}
.acc-actions{display:flex;gap:.7rem;align-items:center;position:sticky;bottom:-1rem;background:#fff;padding:.7rem 0 .2rem}
.acc-skip{background:none;border:1px solid #c9c2b2;border-radius:4px;padding:.55rem .9rem;cursor:pointer;font-weight:600;color:var(--navy,#0a1628)}
.link-cta{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:center;background:#fff;border:2px dashed var(--orange,#e85d04);border-radius:8px;padding:1rem 1.2rem;margin:0 0 1.6rem;text-decoration:none;color:inherit}
.link-cta:hover{background:#fff8f0}
.link-cta-t{font-family:"Barlow Condensed",sans-serif;font-size:1.35rem;font-weight:700;color:var(--navy,#0a1628)}
.link-cta-s{grid-column:1;color:var(--muted,#5c6b80);font-size:.95rem}
.link-cta-go{grid-column:2;grid-row:1/3;background:var(--orange,#e85d04);color:#fff;font-weight:700;border-radius:4px;padding:.6rem 1rem;white-space:nowrap}
.link-form{background:#fff;border:1px solid var(--line,rgba(10,22,40,.12));border-radius:8px;padding:1.1rem;display:grid;grid-template-columns:1fr 1fr;gap:.8rem;max-width:48rem}
.link-form .lf-full{grid-column:1/-1}
.link-form label{display:block;font-size:.8rem;font-weight:600;color:var(--muted,#5c6b80);margin-bottom:.2rem}
.link-form input,.link-form select,.link-form textarea{width:100%;padding:.55rem .6rem;border:1px solid #c9c2b2;border-radius:4px;font:inherit;background:#fff}
.lf-hint{margin:.3rem 0 0;font-size:.85rem;color:#2f7d4f;min-height:1em}
@media (max-width:640px){.link-form{grid-template-columns:1fr}.link-cta{grid-template-columns:1fr}.link-cta-go{grid-column:1;grid-row:auto;justify-self:start;margin-top:.4rem}}
.acc-opt label{justify-content:flex-start;text-align:left;margin:0;font-weight:400}
.acc-opt label input[type=checkbox]{width:1.2rem;height:1.2rem;min-width:1.2rem;flex:0 0 1.2rem;padding:0;margin:.15rem 0 0;border:0;box-shadow:none;accent-color:var(--orange,#e85d04);appearance:auto;-webkit-appearance:checkbox}
.acc-opt span{display:block;line-height:1.3}
.acc-opt small{display:block}

/* ---------- Quote builder ---------- */
.quote { background: #fff; border: 1px solid #d9dee5; border-radius: 10px; padding: 1.5rem; }
.q-letter { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-bottom: 3px solid #b3261e; padding-bottom: 1rem; margin-bottom: 1rem; }
.q-co { font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 1.4rem; margin: 0; }
.q-small { font-size: .85rem; color: #4a5563; margin: .25rem 0 0; line-height: 1.4; }
.q-meta { text-align: right; }
.q-meta h2 { font-family: "Barlow Condensed", sans-serif; margin: 0 0 .25rem; font-size: 1.6rem; }
.q-meta p { margin: 0; font-size: .9rem; }
.q-meta span { color: #6b7380; margin-right: .35rem; }
.q-cust { border: 0; padding: 0; margin: 1rem 0; }
.q-cust legend { font-weight: 700; margin-bottom: .5rem; }
.q-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem 1rem; }
.q-field { display: flex; flex-direction: column; gap: .2rem; font-size: .88rem; }
.q-field b { color: #b3261e; }
.q-field input, .q-field textarea, .q-table input { font: inherit; padding: .45rem .55rem; border: 1px solid #c3cad3; border-radius: 6px; width: 100%; box-sizing: border-box; }
.q-notes { margin-top: 1rem; }
.q-tablewrap { overflow-x: auto; }
.q-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.q-table th { text-align: left; background: #f1f3f6; padding: .5rem; border-bottom: 2px solid #c3cad3; white-space: nowrap; }
.q-table td { padding: .55rem .5rem; border-bottom: 1px solid #e3e7ec; vertical-align: top; }
.q-table .q-no { font-weight: 700; width: 2.5rem; }
.q-table .q-qty { width: 5rem; }
.q-table .q-qty input { width: 4.5rem; }
.q-table tr.q-acc td { background: #fafbfc; }
.q-table tr.q-acc td:nth-child(3) { padding-left: 1.4rem; }
.q-prod { font-weight: 600; }
.q-mfr { color: #4a5563; font-size: .85rem; }
.q-sub { color: #6b7380; font-size: .8rem; margin-top: .2rem; word-break: break-word; }
.q-price { color: #6b7380; font-style: italic; white-space: nowrap; }
.q-remove { background: none; border: 0; color: #b3261e; cursor: pointer; font: inherit; font-size: .85rem; text-decoration: underline; }
.q-addmore { margin: .75rem 0 0; font-size: .9rem; }
.q-terms { font-size: .8rem; color: #6b7380; margin-top: 1rem; }
.q-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1rem; }
.q-printbtn { background: #fff; border: 1px solid #1c2530; color: #1c2530; }
.q-rfqlink { font-size: .88rem; }
.q-status { margin-top: .75rem; font-weight: 600; }
.q-print { display: none; }
@media print {
  .site-header, .site-footer, .cat-hero, .cat-crumbs, .tray-fab, .tray, .tray-backdrop, .toast, .skip-link, .q-screen, .q-act, .q-status, .ip-notice { display: none !important; }
  body, .cat-main { background: #fff !important; }
  .cat-body { padding: 0 !important; max-width: none !important; }
  .quote { border: 0; padding: 0; }
  .q-table input, .q-field input, .q-field textarea { display: none !important; }
  .q-print { display: inline; font-style: normal; font-weight: 600; }
  .q-field em.q-print { display: block; min-height: 1.1em; border-bottom: 1px solid #c3cad3; }
  .q-table tr { break-inside: avoid; }
  .q-table th { background: #eee !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  @page { margin: .6in; }
}

@media print { .q-field b { display: none; } }
