@font-face{
  font-family:"Archivo";font-style:normal;font-display:swap;
  font-weight:100 900;font-stretch:62% 125%;
  src:url("fonts/archivo-wdth.woff2") format("woff2");
}
:root{
  --ink:#14181b;
  --mill:#2a3238;
  --steel:#59656d;
  --plate:#e4e7e8;
  --paper:#f4f5f5;
  --red:#c0262d;
  --red-dark:#9c1d23;
  --line:#c3c9cc;
  --max:1180px;
  --gut:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:1.0625rem;line-height:1.6;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}

/* type */
h1,h2,h3{
  font-stretch:70%;font-weight:800;line-height:1.02;letter-spacing:-.005em;margin:0;
}
h1{font-size:clamp(2.9rem,8vw,6rem)}
h2{font-size:clamp(2.1rem,4.8vw,3.4rem)}
h3{font-size:clamp(1.5rem,2.6vw,1.9rem);line-height:1.1}
p{margin:0 0 1em;max-width:62ch}
h1+p,h2+p,h3+p{margin-top:.7em}
.lede{font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.5;max-width:56ch}

/* header */
.site-header{background:var(--ink);color:#fff;border-bottom:4px solid var(--red)}
.bar{
  max-width:var(--max);margin:0 auto;padding:14px var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand svg{width:34px;height:auto;flex:none}
.brand span{
  font-stretch:70%;font-weight:800;font-size:1.55rem;line-height:1;letter-spacing:.005em;
}
.brand small{display:block;font-stretch:100%;font-weight:500;font-size:.78rem;color:#aab3b8;letter-spacing:.02em;margin-top:3px}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
nav a{
  display:block;padding:8px 14px;text-decoration:none;font-weight:600;font-size:1rem;
  border-bottom:3px solid transparent;
}
nav a:hover{border-bottom-color:#7c878d}
nav a[aria-current="page"]{border-bottom-color:var(--red)}

/* buttons */
.btn{
  display:inline-block;padding:14px 24px;font-weight:700;font-size:1.05rem;text-decoration:none;
  background:var(--red);color:#fff;border:2px solid var(--red);
}
.btn:hover{background:var(--red-dark);border-color:var(--red-dark)}
.btn.ghost{background:transparent;color:#fff;border-color:#fff}
.btn.ghost:hover{background:#fff;color:var(--ink)}
.btn.dark{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.dark:hover{background:var(--ink);color:#fff}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* hero */
.hero{position:relative;background:var(--ink);color:#fff;isolation:isolate;overflow:hidden}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(20,24,27,.93) 0%,rgba(20,24,27,.78) 42%,rgba(20,24,27,.15) 100%);
}
.hero .inner{
  max-width:var(--max);margin:0 auto;padding:clamp(72px,14vw,170px) var(--gut) clamp(64px,11vw,130px);
}
.hero h1{max-width:11ch}
.hero .lede{margin-top:22px;color:#e8ecee}

/* layout helpers */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.section{padding:clamp(52px,8vw,100px) 0}
.section.tint{background:var(--plate)}
.section.dark{background:var(--mill);color:#fff}

/* certification band */
.cert{background:var(--ink);color:#fff;border-left:0}
.cert .wrap{display:grid;grid-template-columns:6px 1fr;gap:0 clamp(18px,3vw,34px);padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(40px,6vw,72px)}
.cert .rule{background:var(--red)}
.cert h2{max-width:20ch}
.cert p{color:#c9d0d4;margin:16px 0 0}

/* photo strip */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px}
.strip figure{margin:0}
.strip img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--line)}
.strip.three{grid-template-columns:repeat(3,1fr)}
.strip.three img{aspect-ratio:4/3}
@media (max-width:900px){.strip.three{grid-template-columns:1fr}}
figcaption{font-size:.95rem;color:var(--steel);margin-top:8px;line-height:1.35}
.dark figcaption{color:#aab3b8}

/* material list (home) */
.mats{list-style:none;margin:30px 0 0;padding:0;border-top:2px solid var(--ink);max-width:760px}
.mats li{display:flex;gap:18px;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.mats strong{font-stretch:75%;font-weight:800;font-size:1.5rem;line-height:1.1}
.mats span{color:var(--steel);text-align:right}

/* two column */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.split.top{align-items:start}
.split img{width:100%;object-fit:cover}

/* capability rows */
.cap{padding:clamp(36px,6vw,64px) 0;border-top:2px solid var(--ink)}
.cap:first-of-type{border-top:0}
.cap .photos{display:grid;gap:12px;grid-template-columns:1fr 1fr}
.cap .photos.one{grid-template-columns:1fr}
.cap .photos img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--line)}
.cap .photos .tall img{aspect-ratio:3/4}
.cap h2{margin-bottom:16px}
.cap ul{padding-left:1.1em;margin:0 0 1em}
.cap li{margin:.25em 0;max-width:56ch}
.flip .text{order:2}

/* process grid */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px}
.proc figure{margin:0}
.proc img{width:100%;aspect-ratio:4/3;object-fit:cover}
.proc strong{display:block;font-stretch:75%;font-weight:800;font-size:1.3rem;margin-top:10px;line-height:1.1}
.proc p{font-size:.97rem;color:#c9d0d4;margin:4px 0 0}

/* title block (contact) */
.tb{
  border:3px solid var(--ink);background:#fff;
  display:grid;grid-template-columns:repeat(12,1fr);
}
.tb > div{padding:clamp(16px,2.4vw,26px);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);min-width:0}
.tb .k{display:block;font-size:.88rem;font-weight:600;color:var(--steel);margin-bottom:6px}
.tb .v{font-stretch:75%;font-weight:800;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.08;word-break:break-word}
.tb .v.sm{font-size:clamp(1.35rem,2.4vw,1.85rem)}
.tb a.v{text-decoration:none;display:block}
.tb a.v:hover{color:var(--red)}
.tb .c-phone{grid-column:span 5}
.tb .c-email{grid-column:span 7;border-right:0}
.tb .c-addr{grid-column:span 5}
.tb .c-hours{grid-column:span 4}
.tb .c-area{grid-column:span 3;border-right:0}
.tb .c-name{grid-column:span 12;background:var(--ink);color:#fff;border-right:0;border-bottom:0;display:flex;flex-wrap:wrap;gap:6px 24px;align-items:baseline;justify-content:space-between}
.tb .c-name .v{font-size:clamp(1.4rem,2.6vw,2rem)}
.tb .c-name .k{color:#aab3b8;margin:0}
.tb .c-phone,.tb .c-email,.tb .c-addr,.tb .c-hours,.tb .c-area{border-bottom:2px solid var(--ink)}
.hours-list{margin:0;padding:0;list-style:none;font-size:1.05rem;line-height:1.45}

/* footer */
.site-footer{background:var(--ink);color:#c9d0d4;padding:42px 0 34px;border-top:4px solid var(--red);font-size:.98rem}
.foot{max-width:var(--max);margin:0 auto;padding:0 var(--gut);display:flex;flex-wrap:wrap;gap:24px 56px;justify-content:space-between}
.foot b{color:#fff;font-stretch:75%;font-weight:800;font-size:1.3rem;display:block;margin-bottom:6px}
.foot a{text-decoration:none;border-bottom:1px solid #59656d}
.foot a:hover{color:#fff;border-bottom-color:#fff}
.foot p{margin:0 0 .3em}
.fine{max-width:var(--max);margin:26px auto 0;padding:0 var(--gut);font-size:.88rem;color:#8c979d}

/* responsive */
@media (max-width:900px){
  .strip{grid-template-columns:repeat(2,1fr)}
  .proc{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .flip .text{order:0}
  .tb .c-phone,.tb .c-email,.tb .c-addr,.tb .c-hours,.tb .c-area{grid-column:span 12;border-right:0}
  .tb .c-area{border-bottom:2px solid var(--ink)}
}
@media (max-width:560px){
  .brand span{font-size:1.35rem}
  .bar{padding-top:12px;padding-bottom:6px}
  nav ul{gap:0;margin-left:-14px}
  .mats li{flex-direction:column;gap:2px}
  .mats span{text-align:left}
  .cap .photos{grid-template-columns:1fr}
  .proc{grid-template-columns:1fr}
  .actions .btn{width:100%;text-align:center}
}

/* logo in header */
.brand img{height:66px;width:auto}
@media (max-width:560px){.brand img{height:50px}
  nav a{padding:8px 9px;font-size:.95rem}
  nav ul{margin-left:-9px}}

/* capability specs */
.specs{display:grid;grid-template-columns:repeat(4,1fr);border:3px solid var(--ink);background:#fff;margin-top:36px}
.specs > div{padding:clamp(14px,2vw,22px);border-right:2px solid var(--ink)}
.specs > div:last-child{border-right:0}
.specs .k{display:block;font-size:.88rem;font-weight:600;color:var(--steel);margin-bottom:6px;line-height:1.3}
.specs .v{display:block;font-stretch:70%;font-weight:800;font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1}
@media (max-width:900px){
  .specs{grid-template-columns:1fr 1fr}
  .specs > div:nth-child(2){border-right:0}
  .specs > div:nth-child(-n+2){border-bottom:2px solid var(--ink)}
  .specs > div:nth-child(3){border-right:2px solid var(--ink)}
}

/* shop capabilities */
.shopcaps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,40px) 18px;margin-top:30px}
.shopcaps article img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:14px}
.shopcaps h3{margin-bottom:6px}
.shopcaps p{color:#c9d0d4;font-size:1rem;margin:0}
.shopcaps .nophoto{border-top:3px solid var(--red);padding-top:16px}
.qc{margin:38px 0 0;padding-top:20px;border-top:1px solid #59656d;color:#fff;font-size:1.15rem;max-width:none}
@media (max-width:900px){.shopcaps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.shopcaps{grid-template-columns:1fr}}

/* timeline */
.timeline{list-style:none;margin:0;padding:0}
.tl,.tl-group{
  display:grid;grid-template-columns:minmax(90px,170px) 30px 1fr;
  column-gap:clamp(14px,2.5vw,30px);
}
.tl .yr{
  font-stretch:70%;font-weight:800;font-size:clamp(2rem,4.2vw,3.2rem);line-height:1;
  text-align:right;padding-top:2px;color:var(--steel);
}
.tl.im .yr{color:var(--ink)}
.rail{position:relative}
.rail::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:4px;transform:translateX(-50%);background:var(--ink)}
.tl.pre .rail::before{background:repeating-linear-gradient(to bottom,var(--steel) 0 10px,transparent 10px 16px)}
.tl .rail::after{
  content:"";position:absolute;left:50%;top:6px;width:20px;height:20px;transform:translateX(-50%);
  background:var(--paper);border:4px solid var(--ink);
}
.tl.im .rail::after{background:var(--red);border-color:var(--ink)}
.tl.last .rail::before{bottom:auto;height:16px}
.tl .body{padding-bottom:clamp(30px,4vw,48px)}
.tl .body h3{margin-bottom:8px}
.tl .body p{margin:0 0 .6em;max-width:56ch}
.tl .body img{margin-top:16px;width:100%;max-width:560px;aspect-ratio:4/3;object-fit:cover}
.tl-group .body{padding:clamp(18px,3vw,32px) 0 clamp(20px,3vw,30px)}
.tl-group .body h2{font-size:clamp(1.9rem,3.6vw,2.6rem)}
.tl-group .body p{margin:6px 0 0;color:var(--steel)}
.tl-group .rail::before{background:var(--ink)}
@media (max-width:640px){
  .tl,.tl-group{grid-template-columns:30px 1fr;column-gap:14px}
  .tl .yr{grid-column:2;grid-row:1;text-align:left;font-size:2.1rem}
  .tl .rail{grid-column:1;grid-row:1 / span 2}
  .tl .body{grid-column:2;grid-row:2}
  .tl-group .yr{display:none}
  .tl-group .rail{grid-column:1;grid-row:1}
  .tl-group .body{grid-column:2;grid-row:1}
  .tl .rail::after{top:4px}
}

/* certification marks */
.cert .wrap{grid-template-columns:6px 1fr auto;align-items:center}
.certmark{background:#fff;padding:14px 18px;width:min(340px,100%)}
.certmark img{width:100%;height:auto}
.logo-tile{background:#fff;border:2px solid var(--ink);padding:12px 16px;display:inline-block;margin-top:18px}
.logo-tile img{width:min(300px,100%);height:auto}
.tl .body .logo-tile{margin-top:16px}
.tl .body .logo-tile img{aspect-ratio:auto;margin:0;max-width:100%;width:min(280px,100%)}
@media (max-width:760px){
  .cert .wrap{grid-template-columns:6px 1fr}
  .certmark{grid-column:2;margin-top:22px}
}

/* capabilities: media row */
.shopcaps{grid-template-columns:repeat(4,1fr)}
.shopcaps .mb{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;margin-bottom:14px;background:#1d2328}
.shopcaps .wide{grid-column:span 2}
@media (max-width:900px){.shopcaps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.shopcaps{grid-template-columns:1fr}.shopcaps .wide{grid-column:auto}}

/* contact: four-cell second row */
.tb .c-loc,.tb .c-ship,.tb .c-hours,.tb .c-area{grid-column:span 3;border-bottom:2px solid var(--ink)}
.tb .c-loc,.tb .c-ship,.tb .c-hours{border-right:2px solid var(--ink)}
.tb .c-area{border-right:0}
.tb .c-loc .v.sm,.tb .c-ship .v.sm,.tb .c-hours .v.sm,.tb .c-area .v.sm{font-size:clamp(1.25rem,1.9vw,1.55rem)}
@media (max-width:900px){
  .tb .c-loc,.tb .c-ship,.tb .c-hours,.tb .c-area{grid-column:span 12;border-right:0}
}
video{max-width:100%;height:auto;display:block}
.shopcaps article{min-width:0}
.shopcaps video.mb{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}

/* fixes: cert band + logo tiles */
.cert .wrap{grid-template-columns:6px 1fr 340px;align-items:stretch}
.cert .rule{align-self:stretch}
.cert .wrap > div:nth-child(2){align-self:center}
.certmark{width:auto;max-width:100%;align-self:center;padding:14px 18px}
.logo-tile{max-width:100%}
.logo-tile img,.tl .body .logo-tile img{width:280px;max-width:100%;height:auto;margin:0;aspect-ratio:auto}
.mats{max-width:880px}
.mats strong{white-space:nowrap}
@media (max-width:900px){
  .cert .wrap{grid-template-columns:6px 1fr}
  .certmark{grid-column:2;margin-top:22px;width:min(340px,100%)}
}
