/* Layout: white corporate page, navy brand, amber pipe-marker labels as the one accent; 1120px column.
   Deliberately light-only: the brand calls for a white page in every viewer theme. */
:root{
  color-scheme:light;
  --paper:#FFFFFF; --surface:#FFFFFF; --tint:#F4F7FA; --ink:#0E1B2C; --ink-2:#4A5B70; --line:#E1E7EE;
  --brand:#0B3D73; --brand-hover:#082D56; --brand-soft:#E8EFF7;
  --steel:#0B2A4A; --steel-2:#081F38; --on-steel:#FFFFFF; --on-steel-2:#B9C8DA; --steel-line:#1C3A5C;
  --marker:#F2B705; --on-marker:#16130A; --focus:#1A73E8;
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --max:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
img,svg{max-width:100%}
h1,h2,h3{font-family:var(--f-display);font-stretch:112%;font-weight:760;line-height:1.12;letter-spacing:-.01em;margin:0;text-wrap:balance;color:var(--ink)}
h1{font-size:clamp(2.2rem,1.4rem + 3.2vw,3.9rem);font-weight:800}
h2{font-size:clamp(1.55rem,1.25rem + 1.2vw,2.2rem)}
h3{font-size:1.15rem;font-weight:700}
p{margin:0}
a{color:inherit;text-decoration-color:var(--brand);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{text-decoration-color:currentColor}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px}
.skip:focus{left:max(16px,env(safe-area-inset-left,0px))}

.wrap{width:100%;max-width:calc(var(--max) + 64px);margin-inline:auto;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:720px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}

/* Pipe-marker label: ANSI-style band with flow arrow */
.marker{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;background:var(--marker);color:var(--on-marker);
  font:600 .72rem/1 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;padding:7px 22px 7px 10px;
  clip-path:polygon(0 0,calc(100% - 11px) 0,100% 50%,calc(100% - 11px) 100%,0 100%)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:3px;
  font:600 .98rem/1 var(--f-body);text-decoration:none;border:1.5px solid transparent;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--brand);color:var(--on-steel)}
.btn-primary:hover{background:var(--brand-hover);color:var(--on-steel)}
.btn-ghost{border-color:var(--brand);color:var(--brand)}
.btn-ghost:hover{background:var(--brand-soft)}
.btn-marker{background:var(--marker);color:var(--on-marker)}
.btn-marker:hover{background:var(--on-steel);color:var(--steel)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.arrow{display:inline-block;transition:transform .15s}
.text-link{font-weight:600;text-decoration:none;white-space:nowrap}
.text-link:hover .arrow{transform:translateX(3px)}

/* Header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--brand)}
.logo{width:32px;height:32px;flex:none}
.logo-pipe{fill:none;stroke:currentColor;stroke-width:4.5}
.logo-flange{fill:var(--marker)}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font:800 1.35rem/1 var(--f-display);font-stretch:125%;letter-spacing:.01em}
.brand-sub{font:600 .62rem/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);margin-top:4px}
.site-nav{display:flex;align-items:center;gap:4px}
.site-nav a{padding:10px 12px;font-weight:500;font-size:.95rem;color:var(--ink-2);text-decoration:none;border-radius:3px}
.site-nav a:hover{color:var(--ink);background:var(--tint)}
.site-nav a[aria-current="page"]{color:var(--brand);box-shadow:inset 0 -3px 0 var(--brand);border-radius:0}
.site-nav a.nav-cta{margin-left:8px;background:var(--brand);color:var(--on-steel);padding:10px 18px;border-radius:3px;box-shadow:none}
.site-nav a.nav-cta:hover,.site-nav a.nav-cta[aria-current="page"]{background:var(--brand-hover);color:var(--on-steel)}
.nav-toggle{display:none;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1.5px solid var(--line);background:var(--surface);
  color:var(--ink);font:600 .9rem var(--f-body);border-radius:3px;cursor:pointer}
.nav-toggle-bars{width:16px;height:10px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}
.nav-toggle-bars::after{content:"";position:absolute;left:0;right:0;top:2px;border-top:2px solid currentColor}
@media (max-width:880px){
  .nav-toggle{display:inline-flex}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);
    border-bottom:1px solid var(--line);padding:8px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px))}
  .site-header.is-open .site-nav{display:flex}
  .site-nav a{padding:14px 4px;border-bottom:1px solid var(--line);font-size:1.05rem;border-radius:0}
  .site-nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--brand);padding-left:14px}
  .site-nav a.nav-cta{margin:14px 0 0;text-align:center;border-bottom:0}
}

/* Hero */
.hero{background:var(--paper)}
.hero-grid{padding-block:88px 92px}
.hero-copy{min-width:0;max-width:880px}
.hero h1{max-width:18ch;color:var(--ink)}
.lede{margin-top:20px;font-size:clamp(1.08rem,1rem + .35vw,1.25rem);line-height:1.55;color:var(--ink-2);max-width:60ch}
@media (prefers-reduced-motion:reduce){.arrow{transition:none}.btn{transition:none}}
@media (max-width:880px){.hero-grid{padding-block:52px 56px}}

/* Credentials strip */
.creds{background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.creds-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);margin:0}
.creds-grid>div{padding:22px 24px;border-left:1px solid var(--line);min-width:0}
.creds-grid>div:first-child{border-left:0;padding-left:0}
.creds dt{font:600 .7rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.creds dd{margin:0;font-weight:600;font-size:.98rem;line-height:1.45}
@media (max-width:880px){
  .creds-grid{grid-template-columns:minmax(0,1fr)}
  .creds-grid>div{border-left:0;border-top:1px solid var(--line);padding:16px 0}
  .creds-grid>div:first-child{border-top:0}
}

/* Sections */
.block{padding-block:72px}
.block + .block:not(.block-tint){border-top:1px solid var(--line)}
.block-tint{background:var(--tint);border-block:1px solid var(--line)}
.block-title{margin-bottom:28px}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.section-head .block-title{margin-bottom:10px}
.section-sub{color:var(--ink-2);max-width:60ch;margin-top:-14px;margin-bottom:32px}
.section-head .section-sub{margin:0}
@media (max-width:720px){.block{padding-block:52px}}

/* Values */
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.value{border-top:2px solid var(--brand);padding-top:18px;min-width:0}
.value h3{margin-bottom:10px}
.value p{color:var(--ink-2);font-size:1rem}
@media (max-width:880px){.values{grid-template-columns:minmax(0,1fr);gap:32px}}

/* Service cards */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.svc-card{position:relative;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);
  padding:28px;border-radius:4px;transition:border-color .15s,box-shadow .15s;min-width:0}
.svc-card:hover{border-color:var(--brand);box-shadow:0 14px 30px -22px rgba(10,20,30,.45)}
.svc-card:focus-within{border-color:var(--brand)}
.svc-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.icon{width:32px;height:32px;fill:none;stroke:var(--brand);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;flex:none}
.spec{font:600 .72rem/1 var(--f-mono);letter-spacing:.05em;color:var(--ink-2);border:1px solid var(--line);padding:6px 8px;border-radius:2px;white-space:nowrap}
.svc-card p{color:var(--ink-2);font-size:1rem;flex:1}
.svc-link{text-decoration:none}
.svc-link::after{content:"";position:absolute;inset:0}
.svc-link:focus-visible{outline:none}
.more{font-weight:600;font-size:.95rem;margin-top:4px}
.svc-card:hover .arrow,.svc-row:hover .arrow{transform:translateX(3px)}
@media (max-width:720px){.svc-grid{grid-template-columns:minmax(0,1fr)}.svc-card{padding:22px}}

/* Services index rows */
.svc-rows{display:flex;flex-direction:column}
.svc-row{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:24px;align-items:start;padding-block:32px;border-top:1px solid var(--line)}
.svc-row:last-child{border-bottom:1px solid var(--line)}
.svc-row-icon{width:56px;height:56px;display:grid;place-items:center;border:1.5px solid var(--brand);border-radius:4px;background:var(--brand-soft)}
.svc-row h2{font-size:clamp(1.3rem,1.15rem + .6vw,1.65rem);margin-bottom:8px}
.svc-row p{color:var(--ink-2);max-width:62ch}
.svc-row .more{align-self:center}
.svc-row:hover h2{text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:2px;text-underline-offset:4px}
@media (max-width:720px){.svc-row{grid-template-columns:minmax(0,1fr);gap:14px}.svc-row .more{align-self:start}}

/* Chips */
.chips{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font:600 .75rem/1 var(--f-mono);letter-spacing:.04em;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:2px}
.chips-sm{margin-top:14px}
.chips-sm li{font-size:.7rem;padding:6px 8px;background:transparent}

/* Inner page head */
.page-head{border-bottom:1px solid var(--line);padding-block:48px 56px;background:var(--tint)}
.page-head h1{font-size:clamp(2rem,1.4rem + 2.4vw,3.2rem);max-width:20ch}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 20px;font:500 .78rem/1.4 var(--f-mono);letter-spacing:.03em;color:var(--ink-2)}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--line)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.page-404{padding-block:96px}

/* Split blocks */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:48px}
.split-h{font-size:clamp(1.35rem,1.2rem + .6vw,1.75rem)}
.split-body{min-width:0;max-width:68ch}
.prose{display:flex;flex-direction:column;gap:16px}
.prose-p{margin-top:14px;color:var(--ink-2)}
.split-body .prose-p:first-child{margin-top:0}
@media (max-width:880px){.split{grid-template-columns:minmax(0,1fr);gap:18px}}

/* Lists */
.ticks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.ticks li{position:relative;padding-left:22px;line-height:1.5}
.ticks li::before{content:"";position:absolute;left:2px;top:.6em;width:7px;height:7px;background:var(--brand)}

/* Panels */
.panels{display:grid;gap:16px}
.panels-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.panels-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.panels-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:24px;min-width:0}
.panel h3{font:600 .75rem/1.3 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line);font-stretch:normal}
.panel .ticks li{font-size:.97rem}
@media (max-width:1040px){.panels-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:880px){.panels-3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.panels-2,.panels-4{grid-template-columns:minmax(0,1fr)}}

/* Features */
.features{display:grid;gap:20px}
.features-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.feature{border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:2px;padding:26px;display:flex;flex-direction:column;gap:14px;background:var(--surface);min-width:0}
.feature p{color:var(--ink-2)}
.features-1 .feature{max-width:78ch}
@media (max-width:880px){.features-2{grid-template-columns:minmax(0,1fr)}}

/* Definition lists */
.dl-intro{color:var(--ink-2);margin-bottom:14px}
.dl{margin:0;border-top:1px solid var(--line)}
.dl-row{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}
.dl dt{font-weight:600}
.dl dd{margin:0;color:var(--ink-2)}
@media (max-width:560px){.dl-row{grid-template-columns:minmax(0,1fr);gap:2px}}

/* Locals */
.locals{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.local{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:24px;min-width:0}
.local-no{font:800 3rem/1 var(--f-display);font-stretch:125%;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:10px}
.local-no::before{content:"Local";display:block;font:600 .7rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.local-name{font-weight:600}
.local-desc{color:var(--ink-2);font-size:.97rem}
@media (max-width:880px){.locals{grid-template-columns:minmax(0,1fr)}}

/* Nameplates: equipment-plate styling with corner rivets */
.plates{display:flex;flex-wrap:wrap;gap:16px;margin-block:22px}
.plates-row{margin:0}
.plate{display:grid;gap:6px;min-width:0;flex:1 1 260px;max-width:420px;padding:22px 28px;border:2px solid var(--brand);border-radius:6px;
  background-color:var(--surface);
  background-image:radial-gradient(circle at 10px 10px,var(--ink-2) 2.2px,transparent 2.8px),radial-gradient(circle at calc(100% - 10px) 10px,var(--ink-2) 2.2px,transparent 2.8px),
    radial-gradient(circle at 10px calc(100% - 10px),var(--ink-2) 2.2px,transparent 2.8px),radial-gradient(circle at calc(100% - 10px) calc(100% - 10px),var(--ink-2) 2.2px,transparent 2.8px)}
.plate-k{font:600 .68rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.plate-code{font:800 2rem/1.05 var(--f-display);font-stretch:118%}
.plate-name{font-weight:500}
.plate-status{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding-top:12px;border-top:1px dashed var(--line);font:600 .78rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.dot{width:8px;height:8px;border-radius:50%;background:#2E9D5B;box-shadow:0 0 0 3px color-mix(in srgb,#2E9D5B 25%,transparent)}

/* NAICS */
.naics-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.naics-list li{padding:12px 0;border-bottom:1px solid var(--line);line-height:1.5}
.naics-pfx{font:600 .9rem/1.5 var(--f-mono);color:var(--brand);font-variant-numeric:tabular-nums;white-space:nowrap;margin-right:4px}

/* Related */
.related-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.related-list a{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid var(--line);border-radius:4px;background:var(--surface);text-decoration:none;font-weight:600;min-height:72px}
.related-list a span:first-of-type{flex:1}
.related-list a:hover{border-color:var(--brand)}
.related-list a:hover .arrow{transform:translateX(3px)}
.related-list .icon{width:26px;height:26px}
@media (max-width:880px){.related-list{grid-template-columns:minmax(0,1fr)}}

/* Contact */
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
.contact-item{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:22px 24px;min-width:0}
.contact-item h3{font:600 .72rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px;font-stretch:normal}
.contact-primary{grid-column:1/-1;border-color:var(--brand);border-width:1.5px}
.contact-big{font:700 clamp(1.15rem,1rem + .8vw,1.55rem)/1.3 var(--f-display);font-stretch:108%;overflow-wrap:anywhere}
.contact-note{margin-top:8px;color:var(--ink-2);font-size:.95rem}
.copy-row{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}
.copy{font:600 .72rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:3px;cursor:pointer}
.copy:hover{border-color:var(--brand)}
@media (max-width:560px){.contact-grid{grid-template-columns:minmax(0,1fr)}}

/* CTA band */
.cta-band{background:var(--steel);color:var(--on-steel);border-top:4px solid var(--marker)}
.cta-row{display:flex;align-items:center;justify-content:space-between;gap:24px 48px;flex-wrap:wrap;padding-block:56px}
.cta-band h2{color:var(--on-steel)}
.cta-band p{color:var(--on-steel-2);margin-top:8px;max-width:56ch}

/* Footer */
.site-footer{background:var(--steel-2);color:var(--on-steel-2);font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:40px;padding-block:56px 40px}
.footer-brand p{margin-top:16px;max-width:34ch}
.brand-invert{color:var(--on-steel)}
.brand-invert .brand-sub{color:var(--on-steel-2)}
.footer-h{font:600 .72rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-steel);margin-bottom:14px;font-stretch:normal}
.footer-h-gap{margin-top:24px}
.footer-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.footer-list a{text-decoration:none;color:var(--on-steel-2)}
.footer-list a:hover{color:var(--on-steel);text-decoration:underline;text-decoration-color:var(--marker)}
.placeholder{opacity:.75;font-style:italic}
.footer-base{border-top:1px solid var(--steel-line);padding-block:20px;font-size:.85rem}
@media (max-width:960px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}}
@media (max-width:520px){.footer-grid{grid-template-columns:minmax(0,1fr)}}
