
:root{--ink:#142842;--muted:#52657a;--navy:#0d2138;--deep:#091a2e;--blue:#147bad;--accent:#13a5ce;--pale:#eef7fb;--line:#dce7ee;--white:#fff;--max:1210px;--header:80px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.7 Arial,Helvetica,sans-serif;background:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #02a6df;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.18;letter-spacing:-.025em}h1{font-size:clamp(2.35rem,4.1vw,4.5rem)}h2{font-size:clamp(1.85rem,3vw,2.9rem)}h3{font-size:1.22rem}p{color:var(--muted)}.container{width:min(var(--max),calc(100% - 64px));margin:auto}.site-header{height:var(--header);background:rgba(255,255,255,.98);box-shadow:0 2px 24px #102b4419;position:fixed;z-index:50;top:0;left:0;right:0;border-bottom:1px solid #e6edf4}.header-inner{display:flex;align-items:center;height:100%;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;min-width:264px}.brand img{width:56px;height:56px;filter:drop-shadow(0 3px 4px #06335c4d)}.brand strong{display:block;color:#112a48;font-size:21px;line-height:1.1;letter-spacing:-.035em}.brand strong span{color:#167eac}.brand small{display:block;color:#5c7286;font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-top:5px}.nav{display:flex;align-items:center;gap:24px}.nav a{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.045em;transition:color .2s}.nav a:hover,.nav a.active{color:#0e84b5}.nav a.active{position:relative}.nav a.active:after{content:"";height:3px;background:#06a2d0;position:absolute;bottom:-29px;left:0;right:0}.header-cta{padding:12px 16px;background:#116b9d;color:white!important;border-radius:5px;box-shadow:0 5px 12px #116b9d2f}.header-cta:hover{background:#0b507a}.menu-toggle{display:none;background:transparent;border:1px solid #d6e4ec;border-radius:5px;padding:8px 13px;color:#0e3758;font-weight:800;cursor:pointer}.hero{margin-top:var(--header);height:340px;position:relative;display:flex;align-items:center;overflow:hidden;background:#10263f url('banner.webp') center center / cover no-repeat}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,21,38,.9),rgba(10,36,58,.66) 49%,rgba(9,29,47,.18))}.hero:after{content:"";position:absolute;left:0;bottom:0;width:43%;height:5px;background:#17acd0}.hero-inner{position:relative;color:#fff;max-width:900px}.eyebrow{display:block;font-size:12px;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:#1683b0;margin-bottom:16px}.hero .eyebrow{color:#78d5f4}.hero h1{max-width:880px;margin-bottom:14px;text-shadow:0 3px 13px #0004}.hero p{font-size:17px;color:#e6edf4;max-width:680px;margin:0}.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 22px;border-radius:5px;border:1px solid transparent;background:#117cac;color:white;font-weight:800;font-size:14px;cursor:pointer;line-height:1.4;transition:transform .15s,background .15s}.btn:hover{background:#09577f;transform:translateY(-1px)}.btn-outline{border-color:#dceef6;background:transparent;color:white}.btn-outline:hover{background:#ffffff1c}.btn-light{border-color:#bcd7e7;color:#185d84;background:#fff}.btn-light:hover{background:#ebf5f9}.section{padding:88px 0}.section-soft{background:#f3f8fb}.section-dark{background:linear-gradient(125deg,#112f50,#0d2239);color:white}.section-dark p{color:#d3e3ef}.lead{font-size:18px;max-width:810px}.section-head{margin-bottom:36px}.section-head p{max-width:750px}.grid{display:grid;gap:22px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden;box-shadow:0 13px 30px #132f4510}.card-body{padding:25px}.card p{font-size:14px;margin-bottom:10px}.card h3{margin-bottom:10px}.photo-card img{height:245px;width:100%;object-fit:cover}.photo-card .card-body{padding:20px}.photo-card .card-body small{color:#1782ad;text-transform:uppercase;font-weight:800;letter-spacing:.08em}.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}.split img{width:100%;height:420px;object-fit:cover;border-radius:10px;box-shadow:0 24px 50px #17385422}.check-list{padding:0;margin:24px 0;list-style:none}.check-list li{margin:12px 0;padding-left:31px;position:relative;color:#42586d}.check-list li:before{content:'✓';position:absolute;left:0;top:0;color:#0c94be;font-weight:900}.metric{padding:22px;border-left:3px solid #1ab2db;background:#fff;box-shadow:0 8px 25px #153b5120}.metric strong{display:block;font-size:18px;color:#153954}.metric small{color:#58778b}.feature-icon{width:42px;height:42px;display:grid;place-items:center;background:linear-gradient(135deg,#d8f3ff,#ebf7fb);color:#0d6593;border-radius:9px;font-weight:900;margin-bottom:18px;font-size:20px}.tag{display:inline-block;font-size:12px;border:1px solid #b5d3e2;background:#eef8fc;border-radius:4px;padding:4px 10px;color:#0f678e;font-weight:800;margin:3px}.kicker-band{background:#eaf6fb;border-block:1px solid #d2e8f1;padding:24px 0}.kicker-band .container{display:flex;align-items:center;justify-content:space-between;gap:20px}.kicker-band b{font-size:19px}.site-footer{background:var(--deep);color:white}.footer-main{padding:64px 0;display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:50px}.footer-main p,.footer-main a{color:#bfd1e0;font-size:14px}.footer-main a:hover{color:white}.footer-main h3{font-size:15px;color:#fff;letter-spacing:.06em;text-transform:uppercase}.footer-links{display:grid;gap:7px}.footer-bottom{border-top:1px solid #314257;background:#071525;padding:18px 0;color:#b3c4d2;font-size:12px}.footer-bottom .container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-bottom a{color:#d8eafa}.quote-box{background:linear-gradient(120deg,#eaf7fd,#fff);border:1px solid #d3eaf2;padding:33px;border-radius:9px}.form-card{background:#fff;border:1px solid #d8e4ec;border-radius:10px;padding:34px;box-shadow:0 15px 40px #1a415d17}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:800;color:#1b3953}.field input,.field select,.field textarea{border:1px solid #bfcfd9;border-radius:5px;padding:12px 13px;background:white;width:100%;min-width:0;color:#213b50}.field textarea{min-height:135px;resize:vertical}.privacy-check{display:flex;gap:10px;align-items:flex-start;margin:22px 0}.privacy-check input{margin-top:7px;accent-color:#077eb3}.privacy-check label{font-size:13px;color:#4a6072}.privacy-check a{color:#087cad;text-decoration:underline}.notice{font-size:13px;background:#eaf5fb;border-left:3px solid #168bb7;padding:13px 15px;color:#46637b;margin:18px 0}.feedback{min-height:25px;font-size:13px;font-weight:700;color:#a53c33}.contact-detail{border-bottom:1px solid #dde8ee;padding:16px 0}.contact-detail small{display:block;color:#7b8c99;text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:11px}.contact-detail a{color:#137ca5;font-weight:800;overflow-wrap:anywhere}.minor{font-size:13px}.legal h2{font-size:1.5rem;margin-top:32px}.legal p{max-width:900px}.mini-rule{height:4px;width:60px;background:#1da3cc;margin-bottom:26px}.gallery-split{display:grid;grid-template-columns:2fr 1fr;gap:16px}.gallery-split img{height:430px;object-fit:cover;width:100%;border-radius:8px}.gallery-split img:nth-child(2){object-position:center}.skip-link{position:absolute;left:-10000px;top:0}.skip-link:focus{position:fixed;left:12px;top:12px;z-index:1000;padding:12px;background:#fff}.muted-label{font-size:13px;color:#667d91}.desktop-only{display:block}@media(max-width:1090px){.nav{gap:13px}.nav a{font-size:12px}.brand{min-width:235px}.brand strong{font-size:19px}}@media(max-width:880px){:root{--header:74px}.container{width:min(var(--max),calc(100% - 36px))}.menu-toggle{display:block}.nav{display:none;position:absolute;top:var(--header);left:0;right:0;background:#fff;padding:16px 20px 22px;box-shadow:0 12px 20px #112b461a;flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav a{padding:13px;font-size:14px;border-bottom:1px solid #e8f0f5}.nav a.active:after{display:none}.nav .header-cta{text-align:center;margin-top:10px}.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.split{gap:24px}.section{padding:65px 0}.hero{height:330px}.footer-main{grid-template-columns:1.5fr 1fr;gap:30px}.footer-main>div:last-child{grid-column:1/-1}}@media(max-width:620px){.brand{min-width:0;gap:8px}.brand img{width:45px;height:45px}.brand strong{font-size:17px}.brand small{font-size:8px}.hero{height:360px;background-position:center center}.hero h1{font-size:2.1rem}.hero p{font-size:15px}.section{padding:50px 0}.grid-4,.grid-3,.grid-2,.split,.fields,.gallery-split{grid-template-columns:1fr}.split img,.gallery-split img{height:290px}.photo-card img{height:225px}.footer-main{grid-template-columns:1fr;padding:48px 0 32px}.footer-main>div:last-child{grid-column:auto}.kicker-band .container{display:block}.kicker-band .btn{margin-top:15px}.form-card{padding:22px}.hero .btn-row{margin-top:20px}.btn-row .btn{width:100%}}

/* v1.0.1: Industry pictograms replace numbered cards */
.industry-icon svg{display:block;flex-shrink:0}

/* v1.0.2: mobile comfort, readable tap targets, fluid layouts */
html{scroll-padding-top:90px}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #0797cf;outline-offset:3px} .nav a{min-height:44px;display:inline-flex;align-items:center}.menu-toggle{min-height:44px;min-width:44px}.photo-card img{aspect-ratio:4/3;object-fit:cover}.grid>*{min-width:0}.hero{background-color:#10283e}.hero h1{max-width:820px;text-wrap:balance}.contact-detail,.legal{overflow-wrap:anywhere}
@media(max-width:880px){.nav a{display:flex}.header-inner{gap:10px}.nav{max-height:calc(100dvh - var(--header));overflow-y:auto;z-index:100}}
@media(max-width:620px){.container{width:calc(100% - 30px)}.header-inner{min-width:0}.brand{min-width:0}.brand strong{font-size:clamp(13px,3.7vw,17px)}.brand small{font-size:8px;line-height:1.35}.menu-toggle{flex-shrink:0}.hero{min-height:350px;height:auto}.hero-inner{padding-block:55px}.hero h1{font-size:clamp(1.75rem,8vw,2.15rem);line-height:1.17}.hero p{max-width:35ch}.section-head h2,.split h2{overflow-wrap:break-word}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.card-body{overflow-wrap:anywhere}.footer-main{gap:24px}.footer-bottom .container{flex-direction:column;gap:4px}.form-card{padding:18px}.field input,.field select,.field textarea{font-size:16px}}
@media(max-width:370px){.brand img{width:36px;height:36px}.brand strong{font-size:13px}.brand small{font-size:7px}.menu-toggle{font-size:12px;padding:8px}.container{width:calc(100% - 24px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* v1.0.3: readable, uncrowded hero and full-image gallery */
.hero-home{height:auto;min-height:430px;background-position:center 48%}
.hero-home:before{background:linear-gradient(90deg,rgba(5,20,36,.96) 0%,rgba(7,28,47,.89) 37%,rgba(7,26,43,.24) 77%,rgba(7,26,43,.08) 100%)}
.hero-home .hero-inner{padding-top:64px;padding-bottom:64px;max-width:var(--max)}
.hero-home .eyebrow{margin-bottom:12px}
.hero-home h1{font-size:clamp(2.2rem,3.55vw,3.45rem);max-width:670px;line-height:1.11;margin-bottom:14px}
.hero-home p{max-width:540px;font-size:16px;line-height:1.6}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;align-items:center}
.hero-actions .btn{min-height:49px;min-width:180px;box-shadow:0 5px 17px #04162355}
.hero-actions .btn-outline{border-color:#f4fbff;background:rgba(10,37,62,.32)}
.feature-icon svg{display:block;width:25px;height:25px}
.gallery-trigger{display:block;position:relative;width:100%;padding:0;border:0;background:#e8f1f6;color:inherit;text-align:left;cursor:zoom-in;overflow:hidden}
.gallery-trigger img{width:100%;height:245px;aspect-ratio:4/3;object-fit:cover;transition:transform .2s ease}
.gallery-trigger:hover img{transform:scale(1.025)}
.gallery-hint{position:absolute;bottom:12px;right:12px;padding:6px 10px;border-radius:4px;background:#0c2c46e8;color:white;font-size:12px;font-weight:800;pointer-events:none}
.equipment-lightbox{position:fixed;inset:0;max-width:min(96vw,1400px);max-height:95dvh;width:max-content;margin:auto;padding:50px 18px 14px;background:#102338;color:white;border:1px solid #3d566a;border-radius:10px;box-shadow:0 25px 90px #0008;overflow:auto}
.equipment-lightbox::backdrop{background:rgba(3,13,24,.88)}
.equipment-lightbox img{width:auto;height:auto;max-width:calc(96vw - 40px);max-height:calc(95dvh - 105px);object-fit:contain;margin:auto}
.equipment-lightbox p{text-align:center;color:white;margin:12px 0 0;font-weight:700}
.lightbox-close{position:absolute;right:10px;top:6px;border:0;background:#264b67;color:white;border-radius:5px;width:38px;height:38px;font-size:30px;line-height:1;cursor:pointer}
.lightbox-close:hover{background:#147bad}
@media(max-width:620px){.hero-home{min-height:0}.hero-home .hero-inner{padding-block:38px 44px}.hero-home h1{font-size:clamp(1.75rem,7vw,2.2rem)}.hero-home p{font-size:14px}.hero-actions{margin-top:19px;gap:10px}.hero-actions .btn{width:100%;min-height:45px}.gallery-trigger img{height:235px}.equipment-lightbox{padding:48px 8px 10px}.equipment-lightbox img{max-width:calc(96vw - 18px)}}

/* v1.0.4 Finished work and contact address */
.finished-gallery .card{height:100%}
.finished-gallery .gallery-trigger img{height:250px;object-fit:cover}
.finished-gallery .card-body h3{font-size:1rem;line-height:1.4;margin:8px 0 0}
.contact-detail address{font-style:normal;font-weight:700;line-height:1.65}
.contact-detail .directions-link{display:inline-block;margin-top:8px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.footer-address{line-height:1.65;margin-top:12px}
@media(max-width:700px){.finished-gallery .gallery-trigger img{height:230px}}

/* v1.0.6: purpose-drawn industrial capability icons */
.capability-card-grid{align-items:stretch}
.capability-card{position:relative;isolation:isolate;border:1px solid #d7e8f1;box-shadow:0 12px 30px rgba(17,52,77,.08);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.capability-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#0d709f,#12b0d0);z-index:1}
.capability-card .card-body{padding:30px 30px 28px}
.capability-icon{width:72px;height:72px;border-radius:17px;display:grid;place-items:center;margin-bottom:22px;background:linear-gradient(145deg,#dff5fe,#f2fbfe);border:1px solid #c6e8f4;color:#096e9b;box-shadow:inset 0 2px 3px rgba(255,255,255,.8),0 6px 14px rgba(14,108,153,.1)}
.capability-icon svg{width:43px;height:43px;display:block}
.capability-card h3{font-size:1.3rem;margin-bottom:11px;color:#173752}
.capability-card p{line-height:1.7;margin-bottom:0}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.capability-card:hover{transform:translateY(-4px);border-color:#9dd2e8;box-shadow:0 20px 36px rgba(17,52,77,.13)}}
@media(max-width:620px){.capability-card .card-body{padding:24px}.capability-icon{width:64px;height:64px;margin-bottom:17px}.capability-icon svg{width:39px;height:39px}}
