/* Hard Hardware Co. — shared stylesheet for secondary pages.
   Tokens mirror index.html. Keep in sync if the palette changes. */
:root{
  --bg:#000000; --bg-2:#0a0a0a; --panel:#111111;
  --ink:#ffffff; --body:#c4c4c1; --muted:#a0a09c; --faint:#80807d;
  --mint:#c8ded5; --gold:#c4b24b;
  --rule:#2a2a2a; --rule-2:#1a1a1a;
  --rule-ctl:#646460;
  --maxw:1180px; --readw:720px;
  --sans:"Helvetica Neue",Helvetica,-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--body);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
@media(max-width:640px){.wrap{padding:0 22px}}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

/* ---------- type primitives ---------- */
.label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:500}
.display{font-weight:700;letter-spacing:-.025em;line-height:1.02;color:var(--mint);
  font-size:clamp(34px,5.4vw,64px);text-transform:uppercase}
.display.white{color:var(--ink)}
.gold{color:var(--gold)}
.rule{height:1px;background:var(--rule);border:0;margin:38px 0}
.rule.tight{margin:22px 0}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:60;background:#000;border-bottom:1px solid var(--rule-2)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0;gap:24px}
.mark{font-weight:700;font-size:15px;line-height:1.08;letter-spacing:-.01em;color:var(--ink)}
.mark span{display:block}
.navlinks{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.navlinks a{color:var(--muted);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;padding:9px 13px;transition:.18s}
.navlinks a:hover{color:var(--ink)}
.navlinks a.on{color:var(--mint)}
.navlinks a.cta{border:1px solid var(--rule-ctl);color:var(--ink);padding:10px 18px}
.navlinks a.cta:hover{background:var(--mint);border-color:var(--mint);color:#000}
.navtoggle{display:none;background:none;border:1px solid var(--rule-ctl);cursor:pointer;
  width:46px;height:42px;align-items:center;justify-content:center;padding:0}
.navtoggle span{display:block;width:20px;height:1.5px;background:var(--ink);position:relative;transition:.2s}
.navtoggle span::before,.navtoggle span::after{content:"";position:absolute;left:0;width:20px;height:1.5px;background:var(--ink);transition:.2s}
.navtoggle span::before{top:-6px} .navtoggle span::after{top:6px}
.navtoggle[aria-expanded="true"] span{background:transparent}
.navtoggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.navtoggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media(max-width:820px){
  .nav{padding:13px 0;gap:12px}
  .mark{font-size:14px}
  .mark span{display:inline}
  .mark span+span{margin-left:.28em}
  .navtoggle{display:flex}
  .navlinks{position:absolute;left:0;right:0;top:100%;background:#000;
    border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;
    padding:6px 0 10px;display:none}
  .navlinks.open{display:flex}
  .navlinks a{width:100%;padding:15px 40px;font-size:12px;letter-spacing:.16em}
  .navlinks a.cta{border:0;border-top:1px solid var(--rule-2)}
}

/* ---------- page head ---------- */
.pagehead{padding:74px 0 0}
.pagehead .label{margin-bottom:20px}
.pagehead .display{margin-bottom:18px}
.pagehead .sub{color:var(--body);font-size:clamp(15.5px,1.6vw,18px);max-width:var(--readw)}
.crumb{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:24px}
.crumb a:hover{color:var(--mint)}
.crumb .sep{padding:0 8px;color:var(--rule)}

/* ---------- long-form prose ---------- */
.prose{max-width:var(--readw);padding:10px 0 20px}
.prose h2{color:var(--mint);font-weight:700;text-transform:uppercase;letter-spacing:-.015em;
  font-size:clamp(21px,2.6vw,28px);line-height:1.15;margin:52px 0 14px}
.prose h3{color:var(--ink);font-weight:700;font-size:16.5px;letter-spacing:-.005em;margin:32px 0 10px}
.prose p{font-size:15.5px;margin:0 0 16px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:20px}
.prose li{font-size:15.5px;margin-bottom:8px}
.prose li::marker{color:var(--gold)}
.prose a{color:var(--mint);border-bottom:1px solid rgba(200,222,213,.3)}
.prose a:hover{border-bottom-color:var(--mint)}
.prose strong{color:var(--ink);font-weight:600}
.prose hr{height:1px;background:var(--rule);border:0;margin:44px 0}
.prose > p:first-child{color:var(--ink);font-size:17px}

/* ---------- data table ---------- */
.tablewrap{overflow-x:auto;margin:0 0 22px;border:1px solid var(--rule-2)}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:14px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule-2)}
th{color:var(--muted);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;background:var(--bg-2)}
td{color:var(--body)}
td:first-child{color:var(--ink)}
tr:last-child td{border-bottom:0}

/* ---------- callout ---------- */
.note{border-left:2px solid var(--gold);background:var(--bg-2);padding:18px 22px;margin:26px 0}
.note p{margin:0;font-size:14.5px;color:var(--muted)}
.note p+p{margin-top:10px}
.note .label{margin-bottom:8px;color:var(--gold)}

/* ---------- blog index ---------- */
.postlist{border-top:1px solid var(--rule);margin-top:52px}
.postrow{display:grid;grid-template-columns:150px 1fr;gap:30px;padding:34px 0;
  border-bottom:1px solid var(--rule-2);transition:.18s;align-items:start}
.postrow:hover{background:var(--bg-2)}
.postrow .meta{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
  padding-top:4px;line-height:1.8}
.postrow .meta .cat{display:block;color:var(--gold)}
.postrow h2{color:var(--ink);font-weight:700;font-size:clamp(19px,2.2vw,23px);
  letter-spacing:-.015em;line-height:1.2;margin-bottom:10px}
.postrow:hover h2{color:var(--mint)}
.postrow p{font-size:15px;color:var(--muted);max-width:640px}
.postrow .more{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--mint)}
@media(max-width:700px){.postrow{grid-template-columns:1fr;gap:12px}.postrow .meta{padding-top:0}
  .postrow .meta .cat{display:inline;margin-right:10px}}

.postmeta{display:flex;gap:22px;flex-wrap:wrap;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);margin-bottom:34px}
.postmeta .cat{color:var(--gold)}

.postnav{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  border-top:1px solid var(--rule);padding-top:26px;margin-top:52px;max-width:var(--readw)}
.postnav a{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.postnav a:hover{color:var(--mint)}

/* ---------- newsletter ---------- */
.newsletter{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  background:var(--bg-2);margin-top:90px;padding:64px 0}
.nlgrid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
@media(max-width:820px){.nlgrid{grid-template-columns:1fr;gap:32px}.newsletter{padding:48px 0;margin-top:64px}}
.newsletter h2{color:var(--mint);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(24px,3.4vw,38px);line-height:1.05;margin:14px 0 16px}
.newsletter p.lead{font-size:15.5px;color:var(--body);max-width:520px}
.nlform{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.nlform input[type=email]{flex:1 1 260px;background:#000;border:1px solid var(--rule-ctl);
  color:var(--ink);font:inherit;font-size:15px;padding:14px 16px;transition:.18s}
.nlform input[type=email]::placeholder{color:var(--faint)}
.nlform input[type=email]:focus{border-color:var(--mint)}
.btn{background:none;border:1px solid var(--rule-ctl);color:var(--ink);font:inherit;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  padding:14px 26px;cursor:pointer;transition:.18s}
.btn:hover{background:var(--mint);border-color:var(--mint);color:#000}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:disabled:hover{background:none;border-color:var(--rule-ctl);color:var(--ink)}
.nlnote{font-size:12.5px;color:var(--faint);margin-top:14px;max-width:520px}
.nlnote a{color:var(--muted);border-bottom:1px solid var(--rule)}
.nlnote a:hover{color:var(--mint)}
.formstatus{font-size:13.5px;margin-top:14px;min-height:1px}
.formstatus.ok{color:var(--mint)}
.formstatus.err{color:#e0806a}
.nlpoints{list-style:none;padding:0;margin:22px 0 0}
.nlpoints li{font-size:14.5px;color:var(--muted);padding:11px 0;border-bottom:1px solid var(--rule-2)}
.nlpoints li:first-child{border-top:1px solid var(--rule-2)}
.nlpoints b{color:var(--ink);font-weight:600}
.hp{position:absolute;left:-9999px}

/* ---------- footer ---------- */
footer{padding:56px 0 46px;border-top:1px solid var(--rule-2)}
.newsletter+footer{border-top:0}
.foot{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap;
  font-size:12px;color:var(--faint);letter-spacing:.04em}
.footlinks{display:flex;gap:26px;flex-wrap:wrap}
.footlinks a:hover{color:var(--mint)}
.footnote{font-size:11.5px;color:#5e5e5b;line-height:1.7;margin-top:26px;max-width:960px}

/* ---------- unresolved commercial values (remove once filled in) ---------- */
mark.todo{background:rgba(196,178,75,.16);color:var(--gold);padding:1px 6px;
  border:1px dashed rgba(196,178,75,.5);font-style:normal;font-weight:600;font-size:.94em}

/* keyboard focus visible on every interactive element */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
