:root{--ink:#0b2340;--navy:#082b4f;--blue:#0289bf;--blue-text:#026a95;--cyan:#00a7d6;--plate:#e9f0f4;--steel:#4f6475;--white:#fff;--slant:7vw;--display:"Big Shoulders Display", "Arial Narrow", sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--white);color:var(--ink);margin:0;font:400 1.0625rem/1.6 Public Sans,system-ui,sans-serif}img{max-width:100%;display:block}a{color:var(--blue-text)}h1,h2,h3,.h3{font-family:var(--display);text-wrap:balance;margin:0 0 .5em;line-height:1.05}h1{font-size:clamp(2.75rem,7vw,5.5rem);font-weight:800}h2{font-size:clamp(2.1rem,4vw,3.1rem);font-weight:800}h3,.h3{font-size:1.6rem;font-weight:800}h2.small{margin-top:1.5em;font-size:1.5rem}h2.sub{margin-top:1.5em}p{max-width:68ch;margin:0 0 1em}address{font-style:normal}:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.wrap{width:min(1200px,100% - 2.5rem);margin-inline:auto}.narrow{max-width:780px}.section{padding-block:clamp(3.5rem,7vw,6rem)}.band{background:var(--plate)}.navy{background:var(--navy);color:var(--white)}.lead{font-size:1.25rem}.meta{color:var(--steel);font-size:.95rem}.grid-3,.grid-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:2rem;display:grid}.grid-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.text-link{margin-top:1.5rem;font-weight:700;display:inline-block}.after{margin-top:2rem}.skip{position:absolute;left:-999px}.skip:focus{z-index:30;background:var(--white);padding:.5rem 1rem;top:1rem;left:1rem}.btn{cursor:pointer;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);border:0;padding:.8rem 1.7rem;font:700 1rem/1.3 inherit;text-decoration:none;display:inline-block}.btn-primary{background:var(--cyan);color:var(--ink)}.btn-primary:hover{background:#3cc4ea}.btn-dark{background:var(--ink);color:var(--white)}.btn-dark:hover{background:var(--blue-text)}.btn-ghost{background:var(--white);color:var(--ink)}.btn-ghost:hover{background:var(--plate)}.btn:disabled{opacity:.6;cursor:wait}.topbar{background:var(--ink);color:#d6e3ec;padding-block:.4rem;font-size:.875rem}.topbar .wrap{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.topbar a{color:inherit}.topbar-links{flex-wrap:wrap;gap:1.5rem;display:flex}.header{z-index:20;background:var(--white);border-bottom:3px solid var(--cyan);position:sticky;top:0}.header-row{justify-content:space-between;align-items:center;gap:1rem;padding-block:.7rem;display:flex}.header a:has(.logo){text-decoration:none}.logo{color:var(--ink);font:800 1.45rem/1 var(--display);align-items:center;gap:.7rem;display:inline-flex}.logo svg{width:52px;height:38px}.footer .logo{color:var(--white)}.nav{align-items:center;gap:1.7rem;display:flex}.nav a:not(.btn){color:var(--ink);border-bottom:2px solid #0000;padding-block:.25rem;font-weight:600;text-decoration:none}.nav a:not(.btn):hover,.nav a.active{border-color:var(--blue)}.menu-btn{border:2px solid var(--ink);color:var(--ink);background:0 0;padding:.35rem .9rem;font:700 1rem inherit;display:none}.hero{background:var(--navy);align-items:center;min-height:min(78vh,720px);display:flex;position:relative;overflow:hidden}.hero img{object-fit:cover;width:72%;height:100%;position:absolute;inset:0 0 0 auto}.hero-panel{background:var(--navy);width:min(62%,860px);color:var(--white);clip-path:polygon(0 0, 100% 0, calc(100% - var(--slant) * 1.6) 100%, 0 100%);flex-direction:column;justify-content:center;align-self:stretch;padding:4rem 9vw 4rem max(1.25rem,50vw - 600px);display:flex;position:relative}.hero h1{font-size:clamp(3.4rem,9.5vw,8rem);line-height:.92}.hero p{max-width:30ch;font-size:1.25rem}.actions{flex-wrap:wrap;gap:.8rem;margin-top:1rem;display:flex}.stats{background:var(--cyan);color:var(--ink)}.stats-row{grid-template-columns:repeat(4,1fr);gap:1.5rem;padding-block:1.8rem;display:grid}.stats strong{font:800 3rem/1 var(--display);display:block}.stats span{font-size:.95rem;font-weight:600}.categories{grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem;display:grid}.category{min-height:400px;color:var(--white);background:var(--navy);align-items:flex-end;text-decoration:none;display:flex;position:relative;overflow:hidden}.category img{object-fit:cover;width:100%;height:100%;transition:opacity .2s;position:absolute;inset:0}.category:hover img{opacity:.75}.category:after{content:"";background:linear-gradient(#082b4f00 20%,#082b4f8c 50%,#082b4ff5 85%);position:absolute;inset:0}.category div{z-index:1;padding:1.5rem;position:relative}.category p{margin:0}.product-card{color:inherit;background:var(--white);border-bottom:4px solid var(--plate);text-decoration:none;display:block}.band .product-card{border-color:var(--cyan)}.product-card:hover h3{color:var(--blue-text)}.product-card img{aspect-ratio:4/3;object-fit:contain;background:var(--white);width:100%;padding:.75rem}.product-card h3{margin-bottom:.3rem;padding:1rem 1rem 0}.product-card p{color:var(--steel);margin:0;padding:0 1rem 1rem;font-size:.95rem}.split{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,6vw,5rem);display:grid}.service-list{margin:0;padding:0;list-style:none}.service-list li{border-bottom:1px solid #c8d5de;padding:.85rem 0;font-size:1.15rem;font-weight:600}.project img{aspect-ratio:3/2;object-fit:cover;width:100%;margin-bottom:1rem}.project .meta{margin-bottom:.5rem}.tag-list,.client-list{flex-wrap:wrap;gap:.6rem 2.5rem;margin:0;padding:0;list-style:none;display:flex}.tag-list a{color:var(--ink);font:800 1.6rem/1.2 var(--display);-webkit-text-decoration-color:var(--cyan);text-decoration-color:var(--cyan)}.client-list li{color:var(--steel);font-weight:600}.quote{border-left:4px solid var(--cyan);margin:0;padding-left:1.25rem}.quote blockquote{margin:0 0 1rem;font-size:1.1rem}.quote figcaption{color:var(--steel);font-size:.95rem}.faq-preview{grid-template-columns:1fr 2fr;gap:2rem;display:grid}details{border-bottom:1px solid #c8d5de;padding-block:.9rem}summary{cursor:pointer;font-size:1.1rem;font-weight:700}details p{margin:.7rem 0 0}.cta{background:var(--cyan);padding-block:3rem}.cta .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.cta h2{margin:0}.page-hero{background:var(--navy);color:var(--white);grid-template-columns:1fr 1fr;min-height:340px;display:grid;position:relative;overflow:hidden}.page-hero-text{padding:3rem var(--slant) 3rem max(1.25rem, calc((100vw - 1200px) / 2));align-items:center;display:flex}.page-hero-text p{margin:0;font-size:1.15rem}.page-hero h1{font-size:clamp(2.75rem,6vw,4.75rem)}.page-hero img{object-fit:cover;width:100%;max-width:50%;height:100%;clip-path:polygon(var(--slant) 0, 100% 0, 100% 100%, 0 100%);position:absolute;inset:0 0 0 auto}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;display:flex}.filters button{border:2px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;padding:.5rem 1.1rem;font:600 1rem inherit}.filters button[aria-pressed=true]{background:var(--ink);color:var(--white)}.detail,.detail-lower{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,5vw,4rem);display:grid}.detail-image img{object-fit:contain;width:100%;max-height:520px}.crumbs{color:var(--steel);margin-bottom:1rem;font-size:.95rem}.detail h1{font-size:clamp(2.5rem,5vw,4rem)}.uses{margin:0 0 1.5rem;padding-left:1.2rem}.plate{border-collapse:collapse;border:2px solid var(--ink);background:#f8fafb;width:100%;margin-bottom:1rem}.plate caption{caption-side:top;text-align:left;background:var(--ink);color:var(--white);font:800 1.3rem/1.2 var(--display);padding:.6rem .9rem}.plate th,.plate td{text-align:left;vertical-align:top;border-top:1px solid #b8c7d2;padding:.6rem .9rem}.plate th{width:40%;font-weight:700}.quote-form{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.quote-form label{gap:.3rem;font-weight:600;display:grid}.quote-form .full{grid-column:1/-1}.quote-form input,.quote-form select,.quote-form textarea{border:1px solid var(--steel);background:var(--white);width:100%;color:var(--ink);font:inherit;padding:.7rem}.honeypot{position:absolute;left:-9999px}.form-note{border-left:4px solid var(--cyan);background:var(--white);padding:1rem 1.2rem}.form-error{color:#a11a1a;margin:0;font-weight:600}.contact{grid-template-columns:3fr 2fr;gap:clamp(2rem,6vw,5rem);display:grid}.contact aside{flex-direction:column;align-items:flex-start;gap:.2rem;display:flex}.contact aside h3{margin:1rem 0 .1rem}.contact .form-note{background:var(--plate)}.service-rows{gap:2.5rem;display:grid}.service-rows article{grid-template-columns:300px 1fr;align-items:center;gap:2rem;display:grid}.service-rows img{aspect-ratio:3/2;object-fit:cover;width:100%}.service-rows p{margin:0}.steps{counter-reset:step;grid-template-columns:repeat(4,1fr);gap:2rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step}.steps li:before{content:counter(step);font:800 3.5rem/1 var(--display);color:var(--cyan);margin-bottom:.4rem;display:block}.footer{background:var(--ink);color:#d6e3ec;padding-block:3.5rem 1.5rem;font-size:.95rem}.footer-grid{grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:2rem;display:grid}.footer-grid>div{min-width:0}.footer h2{color:var(--white);font-size:1.3rem}.footer a:not(:has(.logo)){color:inherit;overflow-wrap:anywhere;padding-block:.15rem;display:block}.footer p{margin-top:1rem}.footer .copyright{border-top:1px solid #2c4664;max-width:none;margin-top:2rem;padding-top:1rem}@media (width<=900px){.menu-btn{display:block}.nav{background:var(--white);border-bottom:3px solid var(--cyan);flex-direction:column;align-items:flex-start;gap:.8rem;padding:1.25rem;display:none;position:absolute;top:100%;left:0;right:0}.nav.open{display:flex}.hero{min-height:0;display:block}.hero img{width:100%;height:240px;position:static}.hero-panel{clip-path:none;width:100%;padding:2.5rem 1.25rem}.stats-row,.steps{grid-template-columns:1fr 1fr}.categories,.split,.detail,.detail-lower,.contact,.faq-preview,.footer-grid{grid-template-columns:1fr}.category{min-height:280px}.page-hero{min-height:0;display:block}.page-hero-text{padding:2.5rem 1.25rem}.page-hero img{display:none}.service-rows article{grid-template-columns:1fr;gap:1rem}}@media (width<=520px){.quote-form{grid-template-columns:1fr}.topbar span:first-child,.topbar-links a:last-child{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
