:root{--ink:#0c2d48;--ink2:#123a5c;--blue:#0a6aa8;--mint:#9bdcc9;--mint-l:#e3f4ee;--snow:#f5f9fa;--gold:#f2b01e;--gold-d:#c98d00;--text:#17303f;--display:'Bitter',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;
--contour:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='480' viewBox='0 0 640 480' fill='none' stroke='%239bdcc9' stroke-width='1.4'%3E%3Cpath d='M60 250c20-90 110-150 210-140s190 40 250 110 20 150-70 190-190 40-260 0S40 320 60 250z'/%3E%3Cpath d='M110 250c20-65 90-105 165-98s150 30 195 85 15 115-55 145-150 30-205 0-120-70-100-132z'/%3E%3Cpath d='M160 250c20-42 70-68 120-62s110 24 140 62 10 80-40 100-110 20-150 0-90-52-70-100z'/%3E%3Cpath d='M215 250c15-22 48-34 82-30s70 14 88 38 4 48-30 58-70 10-95-3-60-32-45-63z'/%3E%3Cpath d='M270 252c10-10 30-14 50-11s40 10 44 22-8 24-28 28-42 2-54-5-22-24-12-34z'/%3E%3C/svg%3E")}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--sans);color:var(--text);background:var(--snow);font-size:1.04rem;line-height:1.7;overflow-x:hidden}
img{max-width:100%;height:auto}
h1,h2,h3,h4,.brand-name{font-family:var(--display);font-weight:800;line-height:1.08;color:var(--ink)}
h2{font-size:clamp(2.2rem,4.6vw,3.6rem);letter-spacing:-.01em}
a{transition:color .2s,background .2s,border-color .2s}
.eyebrow{font-weight:700;font-size:.95rem;color:var(--blue);display:block;margin-bottom:.6rem}
.on-dark .eyebrow{color:var(--mint)}
.btn{border-radius:0;font-weight:700;padding:.85rem 1.7rem;border-width:2px}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-gold:hover{background:#ffc544;border-color:#ffc544;color:var(--ink)}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.on-dark .btn-line{border-color:var(--mint);color:#fff}
.on-dark .btn-line:hover{background:var(--mint);color:var(--ink)}
/* nav: centered logo stacked over links */
.navbar{background:#fff;border-bottom:4px solid var(--gold);padding:.6rem 0 0}
.navbar .container{flex-wrap:wrap;justify-content:center}
.navbar-brand{display:flex;align-items:center;gap:.8rem;margin:0 auto .3rem;padding:0}
.navbar-brand img{height:58px;width:auto}
.brand-name{font-size:1.55rem;color:var(--ink);line-height:1}
.brand-name small{display:block;font-family:var(--sans);font-weight:600;font-size:.72rem;color:var(--blue);margin-top:.2rem;letter-spacing:.04em}
.navbar-toggler{position:absolute;right:12px;top:18px;border:2px solid var(--ink);border-radius:0}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;width:100%;flex-basis:100%}
.navbar .nav-link{font-weight:600;color:var(--ink);padding:.7rem 1.1rem;font-size:.98rem;border-bottom:3px solid transparent}
.navbar .nav-link:hover{color:var(--blue);border-bottom-color:var(--mint)}
.nav-call{background:var(--ink);color:#fff!important;border-radius:0}
.nav-call:hover{background:var(--blue)!important}
@media(max-width:991px){.navbar-brand{margin:0 auto 0 0;justify-content:flex-start}.navbar .container{justify-content:flex-start}.navbar-collapse{padding:.5rem 0 1rem}}
/* hero mosaic */
.hero{background:var(--ink) var(--contour) 108% 60%/820px no-repeat;color:#fff;padding:2.2rem 0 4.5rem;position:relative}
.hero h1{color:#fff;font-size:clamp(2.4rem,4.4vw,3.8rem);letter-spacing:-.02em}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero .lead{font-size:1.08rem;max-width:34rem;color:#d6e7ef}
.hero-badges{list-style:none;padding:0;margin:1.5rem 0 2rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hero-badges li{border:1px solid rgba(155,220,201,.5);padding:.3rem .8rem;font-size:.92rem;color:#e9f6f1}
.mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:230px 230px;gap:10px}
.mosaic img{width:100%;height:100%;object-fit:cover;display:block}
.mosaic .m-main{grid-row:1/3;border:3px solid var(--gold)}
.ridge{display:block;width:100%;height:60px;position:absolute;left:0;bottom:-1px}
/* stats */
.stats{background:var(--mint);padding:2.2rem 0 2.4rem}
.stat b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,4vw,3.2rem);color:var(--ink);line-height:1}
.stat span{font-weight:600;color:var(--ink2)}
/* services index */
section{padding:5.5rem 0}
.svc-list{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.svc{display:grid;grid-template-columns:150px 1fr;gap:1.4rem;padding:1.3rem 0;border-bottom:1px solid rgba(12,45,72,.25);align-items:center}
.svc img{width:150px;height:105px;object-fit:cover}
.svc h3{font-size:1.55rem;margin:0 0 .25rem}
.svc p{margin:0;color:#35505f}
.sticky-col{position:sticky;top:130px}
.svc-extra{margin-top:1.4rem;font-weight:600}
@media(max-width:575px){.svc{grid-template-columns:1fr}.svc img{width:100%;height:170px}}
/* about / history */
.about{background:#fff;position:relative;overflow:hidden}
.about:before{content:"";position:absolute;right:-180px;top:-60px;width:760px;height:560px;background:var(--contour) center/contain no-repeat;opacity:.9;filter:hue-rotate(0) saturate(.8);}
.about .container{position:relative}
.about p{max-width:42rem}
.timeline{list-style:none;padding:0;margin:0;border-left:4px solid var(--gold)}
.timeline li{padding:0 0 1.3rem 1.4rem;position:relative}
.timeline li:before{content:"";position:absolute;left:-11px;top:.55rem;width:18px;height:18px;background:var(--ink);transform:rotate(45deg)}
.timeline b{font-family:var(--display);font-size:1.6rem;color:var(--blue);display:block;line-height:1.1}
.trucks{width:100%;border:3px solid var(--ink)}
.values{background:var(--ink);color:#e6f1f6;padding:1.6rem 1.8rem;margin-top:1.5rem}
.values h3{color:var(--gold);font-size:1.3rem}
.values ul{margin:0;padding-left:1.1rem}
/* licenses */
.creds{background:var(--mint-l);padding:3.5rem 0}
.creds ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem 1.6rem}
.creds li{padding-left:1.7rem;position:relative;font-weight:600}
.creds li:before{content:"";position:absolute;left:0;top:.5rem;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid var(--blue)}
.logos img{height:64px;width:auto;background:#fff;padding:6px 12px;margin-right:.8rem}
/* gallery masonry */
.gallery-sec{background:var(--snow)}
.masonry{column-count:3;column-gap:12px}
.masonry img{width:100%;margin:0 0 12px;display:block;break-inside:avoid}
@media(max-width:991px){.masonry{column-count:2}}
@media(max-width:480px){.masonry{column-count:1}}
/* team */
.team{background:var(--ink);color:#d9e9f1;position:relative;overflow:hidden}
.team:after{content:"";position:absolute;left:-200px;bottom:-120px;width:760px;height:560px;background:var(--contour) center/contain no-repeat;opacity:.55}
.team .container{position:relative;z-index:1}
.team h2{color:#fff}
.person{border-top:2px solid var(--gold);padding-top:.9rem;height:100%}
.person h3{color:#fff;font-size:1.25rem;margin:0}
.person .role{color:var(--mint);font-weight:700;margin-bottom:.4rem}
.person p{font-size:.95rem;margin:0 0 .4rem;line-height:1.5}
.person a{color:var(--gold);word-break:break-all}
/* faq */
.accordion{--bs-accordion-border-radius:0;--bs-accordion-inner-border-radius:0;--bs-accordion-btn-focus-box-shadow:none;--bs-accordion-active-bg:var(--mint-l);--bs-accordion-active-color:var(--ink)}
.accordion-item{border-radius:0;border-color:rgba(12,45,72,.2)}
.accordion-button{font-family:var(--display);font-weight:700;color:var(--ink);border-radius:0!important}
/* careers */
.careers{background:#fff}
.job{border:2px solid var(--ink);padding:1.2rem 1.3rem;height:100%}
.job h3{font-size:1.2rem}
.job ul{padding-left:1.1rem;margin-bottom:.7rem;font-size:.97rem}
/* contact */
.contact{background:var(--blue);color:#fff;position:relative;overflow:hidden}
.contact h2,.contact h3{color:#fff}
.contact:before{content:"";position:absolute;right:-120px;top:-80px;width:700px;height:520px;background:var(--contour) center/contain no-repeat;opacity:.5}
.contact .container{position:relative}
.contact a{color:#fff}
.contact .big-phone{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4.5vw,3rem);color:var(--gold);text-decoration:none;display:inline-block;line-height:1.1}
.hours{width:100%;max-width:26rem;border-collapse:collapse}
.hours td{padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.3)}
.hours td:last-child{text-align:right;font-weight:700}
.map{border:4px solid var(--gold);width:100%;height:100%;min-height:340px;background:#fff}
.phones{list-style:none;padding:0;margin:0}
footer{background:#071c2f;color:#b9cdd9;padding:2.2rem 0;font-size:.95rem}
footer a{color:var(--mint)}
footer .fbrand{font-family:var(--display);font-weight:800;color:#fff;font-size:1.3rem}
.powered{display:inline-block;margin-top:.4rem;color:#fff;font-weight:600;text-decoration:none;border-bottom:2px solid var(--gold)}
@media(max-width:767px){section{padding:3.8rem 0}.mosaic{grid-template-rows:170px 170px}.sticky-col{position:static}.hero{background-position:30% 80%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:575px){.navbar-brand{max-width:calc(100% - 64px)}.navbar-brand img{height:42px}.brand-name{font-size:1.1rem}.brand-name small{display:none}.navbar-toggler{top:14px}}
