/* Faucet Manual: drawing-sheet system */
:root{
  --paper:#FBFCFD;
  --sheet:#FFFFFF;
  --tint:#EEF2F7;
  --grid:rgba(20,40,75,.045);
  --grid-major:rgba(20,40,75,.07);
  --ink:#14284B;
  --ink-2:#4A5872;
  --ink-3:#5E6B82;
  --rule:#C9D1DE;
  --rule-strong:#14284B;
  --brass:#8E531E;
  --brass-line:#B06A2C;
  --brass-tint:#FBF3EA;
  --focus:#B06A2C;
  --slab:"Roboto Slab",Georgia,serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --measure:68ch;
  --wrap:1180px;
  --gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background-color:var(--paper);color:var(--ink);
  font:400 17px/1.6 var(--sans);
  background-image:
    linear-gradient(var(--grid-major) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;
  overflow-x:hidden;
}
img,svg{max-width:100%;height:auto}
a{color:var(--ink);text-decoration-color:var(--brass-line);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--brass);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:8px 14px;z-index:20}
.skip:focus{left:8px;top:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
h1,h2,h3,h4{font-family:var(--slab);color:var(--ink);line-height:1.18;margin:0 0 .5em;font-weight:600;letter-spacing:-.005em}
h1{font-size:clamp(2rem,4.6vw,3.25rem);font-weight:500;max-width:22ch}
h2{font-size:clamp(1.45rem,2.6vw,1.95rem);font-weight:500}
h3{font-size:1.18rem}
h4{font-size:1rem}
p{margin:0 0 1em;max-width:var(--measure)}
.lede{font-size:1.16rem;color:var(--ink-2);max-width:60ch}
.pn{font-family:var(--mono);font-weight:500;letter-spacing:0}
code,kbd{font-family:var(--mono);font-size:.92em}
small,.note{color:var(--ink-3);font-size:.9rem}

/* masthead */
.masthead{background:var(--sheet);border-bottom:1px solid var(--rule)}
.masthead .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand svg{flex:0 0 auto}
.brand b{font-family:var(--slab);font-weight:600;font-size:1.35rem;letter-spacing:-.01em}
.nav{display:flex;gap:26px;align-items:center}
.nav a{text-decoration:none;font-size:.97rem;color:var(--ink-2);padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--brass-line)}
.masthead .rule{height:0;border-top:2px solid var(--rule-strong);margin:0}
.masthead .rule+.rule{border-top:1px solid var(--rule-strong);margin-top:3px}
.menu-btn{display:none;background:none;border:1px solid var(--ink);color:var(--ink);font:500 .95rem var(--sans);padding:8px 14px;cursor:pointer;min-height:44px}
.nav-mobile[hidden]{display:none}
.nav-mobile:not([hidden]){display:flex;flex-direction:column;border-top:1px solid var(--rule);padding:8px var(--gut) 16px;background:var(--sheet)}
.nav-mobile a{padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-size:1.05rem}
@media (max-width:820px){
  .nav{display:none}
  .menu-btn{display:inline-block}
}

/* breadcrumbs */
.crumbs{font-size:.9rem;color:var(--ink-3);padding-top:22px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--rule)}
.crumbs a{color:var(--ink-3)}

/* page head */
.pagehead{padding:28px 0 26px;border-bottom:1px solid var(--rule)}
.pagehead .pn-big{font-family:var(--mono);font-size:clamp(1.05rem,2vw,1.2rem);color:var(--brass);margin:0 0 6px}
.pagehead h1{max-width:26ch}
.specline{display:flex;flex-wrap:wrap;gap:0;margin:18px 0 0;padding:0;list-style:none;border:1px solid var(--rule);background:var(--sheet);max-width:100%}
.specline li{padding:10px 16px;border-right:1px solid var(--rule);font-size:.94rem;flex:1 1 180px}
.specline li:last-child{border-right:0}
.specline span{display:block;color:var(--ink-3);font-size:.82rem}
.specline strong{font-weight:500}

/* sections */
section{padding-top:44px;padding-bottom:44px}
section+section{border-top:1px solid var(--rule)}
.sheet{background:var(--sheet);border:1px solid var(--rule);position:relative}
.spread{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:start}
.spread.flip{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
@media (max-width:900px){.spread,.spread.flip{grid-template-columns:1fr;gap:24px}}

/* drawing frame with corner ticks */
.drawing{background:var(--sheet);border:1px solid var(--ink);padding:18px;position:relative;margin:0}
.drawing::before,.drawing::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--brass-line);border-style:solid}
.drawing::before{top:5px;left:5px;border-width:1px 0 0 1px}
.drawing::after{bottom:5px;right:5px;border-width:0 1px 1px 0}
.drawing svg{display:block;width:100%;height:auto;max-height:520px}
.drawing figcaption{font-size:.86rem;color:var(--ink-3);border-top:1px solid var(--rule);margin-top:12px;padding-top:8px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* parts list */
.parts{width:100%;border-collapse:collapse;background:var(--sheet);border:1px solid var(--ink);font-size:.95rem}
.parts caption{text-align:left;font-family:var(--slab);font-weight:600;font-size:1.05rem;padding:0 0 8px;color:var(--ink)}
.parts th,.parts td{border-bottom:1px solid var(--rule);padding:9px 12px;text-align:left;vertical-align:top}
.parts thead th{background:var(--tint);font-weight:600;font-size:.86rem;color:var(--ink);border-bottom:1px solid var(--ink)}
.parts td.n{width:44px;text-align:center}
.callno{display:inline-grid;place-items:center;width:26px;height:26px;border:1.5px solid var(--ink);border-radius:50%;font:600 .8rem var(--mono);color:var(--ink);background:var(--sheet)}
.tablewrap{overflow-x:auto;max-width:100%}

/* procedure */
.steps{counter-reset:s;list-style:none;margin:0;padding:0;max-width:74ch}
.steps>li{counter-increment:s;position:relative;padding:0 0 18px 56px;margin:0 0 18px;border-bottom:1px dashed var(--rule)}
.steps>li:last-child{border-bottom:0}
.steps>li::before{content:counter(s);position:absolute;left:0;top:-2px;width:36px;height:36px;display:grid;place-items:center;border:1.5px solid var(--ink);font:600 .95rem var(--mono);background:var(--sheet)}
.steps h3{font-size:1.05rem;margin:4px 0 6px}
.steps p{margin:0 0 .6em}
.safety{display:block;border-left:3px solid var(--brass-line);background:var(--brass-tint);padding:8px 12px;margin:8px 0 0;font-size:.95rem;color:var(--ink)}
.safety b{color:var(--brass)}

/* stop box */
.stopbox{border:2px solid var(--ink);background:var(--sheet);padding:20px 22px;margin:28px 0;max-width:74ch;box-shadow:6px 6px 0 var(--tint)}
.stopbox h2,.stopbox h3{font-size:1.2rem;margin-bottom:10px}
.stopbox ul{margin:0;padding-left:1.2em}
.stopbox li{margin:0 0 6px}

/* lists */
.ticks{list-style:none;padding:0;margin:0 0 1em}
.ticks li{padding:6px 0 6px 22px;position:relative;border-bottom:1px solid var(--rule)}
.ticks li::before{content:"";position:absolute;left:2px;top:15px;width:10px;height:1.5px;background:var(--brass-line)}
.tools{columns:2 220px;column-gap:28px;padding-left:1.1em;margin:0}
.tools li{break-inside:avoid;margin-bottom:4px}

/* symptom table */
.trouble{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--sheet);border:1px solid var(--rule)}
.trouble th,.trouble td{padding:10px 12px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.trouble thead th{border-bottom:1.5px solid var(--ink);font-family:var(--slab);font-weight:600}
.trouble td:first-child{font-weight:500;width:30%}

/* index of models: drawing register */
.register{width:100%;border-collapse:collapse;background:var(--sheet);border:1px solid var(--ink)}
.register th,.register td{padding:12px 14px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}
.register thead th{background:var(--tint);font-size:.88rem;border-bottom:1px solid var(--ink)}
.register td.pn{color:var(--brass);width:34%;font-size:.92rem}
.register a{font-weight:500}
.register tr:hover td{background:#F7F9FC}
@media (max-width:640px){
  .register thead{display:none}
  .register tr{display:block;border-bottom:1px solid var(--rule);padding:10px 12px}
  .register td{display:block;border:0;padding:2px 0}
}

/* job grid */
.jobs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--rule)}
.jobs a{display:block;padding:18px 20px 20px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);text-decoration:none;background:var(--sheet)}
.jobs a:hover{background:var(--brass-tint)}
.jobs h3{margin:0 0 4px;font-size:1.08rem}
.jobs p{margin:0;color:var(--ink-2);font-size:.94rem}

/* identifier wizard */
.hero{padding-top:40px;padding-bottom:48px}
.hero-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:end;margin-bottom:26px}
.hero-head p{margin:0}
@media (max-width:900px){.hero-head{grid-template-columns:1fr;gap:10px}}
.wizard{background:var(--sheet);border:1.5px solid var(--ink);position:relative}
.stepper{display:flex;list-style:none;margin:0;padding:0;border-bottom:1px solid var(--ink);overflow-x:auto}
.stepper li{flex:1 1 0;min-width:120px;padding:12px 16px;border-right:1px solid var(--rule);font-size:.9rem;color:var(--ink-3);display:flex;gap:10px;align-items:center}
.stepper li:last-child{border-right:0}
.stepper .k{font:600 .82rem var(--mono);width:24px;height:24px;display:grid;place-items:center;border:1.5px solid currentColor;border-radius:50%;flex:0 0 auto}
.stepper li[aria-current=step]{color:var(--ink);background:var(--brass-tint);box-shadow:inset 0 -3px 0 var(--brass-line)}
.stepper li.done{color:var(--ink)}
.stepper li.done .k{background:var(--ink);color:#fff;border-color:var(--ink)}
.wz-body{padding:24px clamp(16px,3vw,32px) 28px}
.wz-q{font-family:var(--slab);font-size:1.35rem;font-weight:500;margin:0 0 4px}
.wz-help{color:var(--ink-2);margin:0 0 18px}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.opt{display:flex;flex-direction:column;align-items:stretch;text-align:left;background:var(--paper);border:1px solid var(--ink);padding:14px 14px 16px;cursor:pointer;font:inherit;color:var(--ink);min-height:44px;transition:background .15s,box-shadow .15s}
.opt:hover{background:var(--brass-tint);box-shadow:4px 4px 0 var(--tint)}
.opt svg{width:100%;height:120px;margin-bottom:10px;background:var(--sheet);border:1px solid var(--rule)}
.opt b{font-family:var(--slab);font-weight:600;font-size:1.04rem;display:block}
.opt span{font-size:.9rem;color:var(--ink-2);display:block;margin-top:3px}
.wz-nav{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:8px;font:500 1rem var(--sans);padding:11px 18px;min-height:44px;border:1.5px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;cursor:pointer}
.btn:hover{background:#0D1C36;color:#fff}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--tint);color:var(--ink)}
.trail{font-size:.9rem;color:var(--ink-3);margin:0 0 14px}
.trail b{color:var(--ink);font-weight:500}
.result{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:start}
@media (max-width:760px){.result{grid-template-columns:1fr}}
.result .pn-big{font-family:var(--mono);color:var(--brass);font-size:1.1rem;margin:0 0 4px}
.result h3{font-size:1.5rem;font-weight:500}
.result .drawing svg{max-height:340px}
.nojs{padding:20px;border-top:1px solid var(--rule)}

/* callout notes beside drawing */
.notes h2{margin-top:0}
.notes dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:baseline}
.notes dt{font-weight:600}
.notes dd{margin:0;color:var(--ink-2)}

.toc{border:1px solid var(--rule);background:var(--sheet);padding:14px 18px;margin:0 0 8px}
.toc ol{margin:0;padding-left:1.2em;columns:2 220px}
.toc a{text-decoration:none}

.callout-src{font-size:.88rem;color:var(--ink-3);border-top:1px solid var(--rule);padding-top:10px;margin-top:14px}
.request{border:1px dashed var(--ink);padding:22px;background:var(--sheet);display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between}
.request p{margin:0}

/* footer title block */
.titleblock{margin-top:56px;background:var(--sheet);border-top:2px solid var(--ink)}
.tb{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;border-left:1px solid var(--ink);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:18px 0 26px}
.tb>div{border-right:1px solid var(--ink);padding:12px 14px;min-width:0}
.tb>div:last-child{border-right:0}
.tb .cell-label{display:block;font-size:.8rem;color:var(--ink-3);margin-bottom:6px}
.tb ul{list-style:none;margin:0;padding:0}
.tb li{margin:0 0 4px;font-size:.93rem}
.tb a{text-decoration:none}
.tb a:hover{text-decoration:underline}
.tb .name{font-family:var(--slab);font-weight:600;font-size:1.2rem;margin:0 0 4px}
.tb .row2{grid-column:1/-1;border-top:1px solid var(--ink);border-right:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:.86rem;color:var(--ink-3)}
@media (max-width:860px){.tb{grid-template-columns:1fr 1fr}.tb>div:nth-child(2){border-right:0}.tb>div:nth-child(1),.tb>div:nth-child(2){border-bottom:1px solid var(--ink)}}
@media (max-width:480px){.tb{grid-template-columns:1fr}.tb>div{border-right:0;border-bottom:1px solid var(--ink)}.tb>div:last-child{border-bottom:0}}

.prose h2{margin-top:1.6em}
.prose ul,.prose ol{max-width:var(--measure);padding-left:1.2em}
.prose li{margin-bottom:6px}
.err{padding:60px 0 20px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{body{background:#fff}.masthead .nav,.menu-btn,.titleblock{display:none}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:480px){.notes dl{grid-template-columns:1fr;gap:2px}.notes dd{margin-bottom:10px}}
.wz-q:focus,.result h3:focus{outline:none}
