/* Wlock Excavating — base styles. Section-specific rules follow below. */
:root{--gold:#eaab32;--ink:#000;--paper:#fff;--wrap:1140px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#000;color:#333;font:400 16px/1.5 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2;color:inherit}
p{margin:0 0 .9rem}
ul,ol{margin:0 0 .9rem}
li p{margin:0 0 .9rem}
img{max-width:100%;height:auto;display:block;border:0}
a{color:inherit;text-decoration:none}
.txt a{text-decoration:none}
.txt a:hover{text-decoration:underline}
strong{font-weight:700}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:#000;padding:10px 16px;z-index:100;font-weight:700}
.skip:focus{left:10px;top:10px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* ---- layout primitives ---- */
.band{display:flex;flex-direction:column;position:relative;width:100%}
.band>.wrap{display:flex;width:100%;max-width:var(--wrap);margin:0 auto;position:relative;z-index:1}
.box{display:flex;min-width:0;position:relative}
.band>.wrap>*,.box>*{min-width:0}
.btn{display:inline-block;line-height:1;text-align:center;transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(1.12)}
.imglink{display:block}
iframe.map{display:block;width:100%;height:350px;border:0;background:#111}

/* ---- hero slideshow ---- */
.slides{position:absolute;inset:0;z-index:0;overflow:hidden;background:#111}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s linear;transform:scale(1)}
.slides img.on{opacity:1;animation:kb 5.5s linear forwards}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.3)}}
@media (prefers-reduced-motion:reduce){.slides img.on{animation:none}}

/* ---- header ---- */
.tagline{margin:0;background:var(--gold);color:#000;text-align:center;font-size:24px;font-weight:600;line-height:1.2;padding:7.5px 10px}
.bar{background:#000}
.bar-in{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;min-height:139px;padding:10px;position:relative}
.logo{flex:0 0 30%;padding:10px}
.logo img{width:177px;height:auto}
.nav{flex:1 1 auto;display:flex;justify-content:center}
.nav ul,.foot nav ul{list-style:none;margin:0;padding:0}
.nav>ul{display:flex;flex-wrap:wrap;justify-content:center}
.nav li{position:relative}
.nav a{display:block;color:#fff;font-weight:600;padding:15px;line-height:1}
.nav a:hover,.nav a[aria-current],.nav .cur>a{color:var(--gold)}
.nav .sub{position:absolute;left:0;top:100%;min-width:200px;background:#000;padding:6px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;z-index:20;box-shadow:0 8px 20px rgba(0,0,0,.4)}
.nav .sub a{padding:12px 20px;white-space:nowrap}
.nav .has-sub:hover>.sub,.nav .has-sub:focus-within>.sub{opacity:1;visibility:visible;transform:none}
.cta{flex:0 0 auto;margin-left:auto;background:var(--gold);color:#000;font-size:15px;font-weight:700;line-height:1;padding:12px 24px;transition:filter .2s}
.cta:hover{filter:brightness(1.12)}
.menu-btn{display:none}

/* ---- contact form ---- */
.quote{display:grid;gap:14px;color:#fff;width:100%}
.quote .fld{display:flex;flex-direction:column;gap:5px;position:relative}
.quote label{font-size:14px;font-weight:600;color:#fff}
.quote label span{color:var(--gold)}
.quote input,.quote textarea{width:100%;font:inherit;font-size:16px;color:#000;background:#fff;border:1px solid #777;border-radius:2px;padding:10px 12px}
.quote textarea{resize:vertical;min-height:120px}
.quote input:focus,.quote textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
.quote .count{align-self:flex-end;font-size:12px;color:#bbb}
.quote button{justify-self:start;cursor:pointer;background:var(--gold);color:#000;border:0;font:inherit;font-size:15px;font-weight:700;line-height:1;padding:14px 32px;transition:filter .2s}
.quote button:hover{filter:brightness(1.12)}
.quote button[disabled]{opacity:.6;cursor:wait}
.quote .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.quote .status{margin:0;min-height:1.5em;font-weight:600}
.quote .status.ok{color:var(--gold)}
.quote .status.err{color:#ff8a80}

/* ---- footer ---- */
.foot{background:#000;color:#fff}
.foot-in{max-width:var(--wrap);margin:0 auto;display:flex;min-height:439px}
.foot-col{flex:0 0 50%;padding:10px;display:flex;flex-direction:column;gap:20px;justify-content:center;text-align:center}
.foot-logo img{width:478px;margin:0 auto}
.nap{margin:0;line-height:1.5}
.nap a:hover{color:var(--gold)}
.foot-h{color:var(--gold);font-size:32px}
.foot nav a{display:inline-block;color:#fff;font-weight:600;padding:15px;line-height:1}
.foot nav a:hover,.foot nav a[aria-current]{color:var(--gold)}
.foot nav .sub{display:none}
.foot-map{max-width:var(--wrap);margin:0 auto;padding:13px 10px}
.copy{margin:0;text-align:center;padding:16px 10px 20px}
.copy a:hover{color:var(--gold)}

@media (max-width:1024px){
  .logo{flex-basis:auto}
}
@media (max-width:767px){
  .tagline{font-size:26px;padding:7px 10px}
  .bar-in{flex-direction:column;justify-content:center;gap:10px;padding:20px 10px}
  .logo{padding:0}
  .menu-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;position:absolute;right:14px;top:34px;width:44px;height:44px;padding:10px;background:transparent;border:1px solid #444;border-radius:4px;cursor:pointer}
  .menu-btn span{display:block;height:2px;background:#fff;transition:.2s}
  .menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav{display:none;width:100%;order:3}
  .nav.open{display:block}
  .nav>ul{flex-direction:column;text-align:center}
  .nav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding:0;min-width:0}
  .nav .sub a{padding:12px 15px;font-weight:400}
  .cta{margin:0}
  .foot-in{flex-direction:column;min-height:0;padding:10px 0}
  .foot-col{flex-basis:auto}
  .foot-logo img{width:304px}
  .foot-h{font-size:21px}
  .foot nav a{padding:10px 15px}
}

/* ---- send.php fallback page (no-JS submit) ---- */
.msgpage{padding:80px 20px;color:#fff;text-align:center}
.msgpage p{font-size:22px}
.msgpage .cta{display:inline-block;font-size:15px}

/* ---- 404 ---- */
.notfound{padding:100px 20px;text-align:center;color:#fff;background:#000}
.notfound h1{color:var(--gold);font-size:40px;margin-bottom:16px}
.notfound .cta{display:inline-block;margin-top:10px}

/* ---- page sections ---- */
.hm1{min-height:491px;padding:10px 10px 10px 10px;position:relative;overflow:hidden}
.hm1>.wrap,.hm2>.wrap,.hm10>.wrap,.hm32>.wrap,.ex6>.wrap,.ex37>.wrap,.ex47>.wrap,.ex50>.wrap,.ex53>.wrap,.cc6>.wrap,.cc34>.wrap,.cc44>.wrap,.cc47>.wrap,.cc50>.wrap,.ls6>.wrap,.ls42>.wrap,.ls52>.wrap,.ls55>.wrap,.ls58>.wrap,.tr6>.wrap,.tr22>.wrap,.tr32>.wrap,.tr35>.wrap,.tr38>.wrap,.ab10>.wrap,.ab19>.wrap,.ab22>.wrap{flex-direction:column;gap:20px 20px}
.hm2,.hm10,.ex6,.ex47,.cc6,.cc44,.ls6,.ls52,.tr6,.tr32{background-color:#000;padding:50px 0px 50px 0px}
.hm3,.hm11,.hm15,.hm18,.hm22,.hm25,.hm29,.hm48,.ex7,.ex11,.ex14,.ex18,.ex21,.ex25,.ex28,.ex48,.ex54,.cc7,.cc11,.cc14,.cc18,.cc21,.cc25,.cc45,.cc51,.ls7,.ls10,.ls13,.ls17,.ls20,.ls24,.ls27,.ls31,.ls53,.ls59,.tr7,.tr11,.tr14,.tr18,.tr33,.tr39,.ab8,.ab15,.ab23{font-size:32px;font-weight:600;color:#eaab32;text-align:left;line-height:32px}
.hm4{font-size:16px;font-weight:600;color:#fff;text-align:left;line-height:16px}
.hm5,.ex1,.cc1,.ls1,.tr1,.ab1,.pj1,.ct1{background-color:#eaab32}
.hm6{min-height:461px;padding:10px 10px 10px 10px;flex-direction:column;justify-content:center;gap:20px 20px;width:50%}
.hm7,.hm33,.ex3,.ex38,.ex51,.cc3,.cc35,.cc48,.ls3,.ls43,.ls56,.tr3,.tr23,.tr36,.ab3,.ab11,.ab20,.pj3,.ct3{font-size:32px;font-weight:600;color:#000;text-align:left;line-height:32px}
.hm8,.hm36,.hm38,.hm40,.hm42,.hm44,.ex4,.ex41,.ex43,.ex45,.ex52,.cc4,.cc38,.cc40,.cc42,.cc49,.ls4,.ls46,.ls48,.ls50,.ls57,.tr4,.tr26,.tr28,.tr30,.tr37,.ab4,.ab12,.ab21,.pj4{font-size:16px;font-weight:400;color:#000;text-align:left;line-height:24px}
.hm9,.ex5{background-image:url(/assets/img/jobsite-2220.webp);background-position:center top;background-size:cover;background-repeat:no-repeat;padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.hm5>.wrap,.hm46>.wrap,.ex1>.wrap,.ex30>.wrap,.ex56>.wrap,.cc1>.wrap,.cc29>.wrap,.cc53>.wrap,.ls1>.wrap,.ls35>.wrap,.ls61>.wrap,.tr1>.wrap,.tr41>.wrap,.ab1>.wrap,.ab13>.wrap,.ab25>.wrap,.pj1>.wrap,.pj5>.wrap,.ct1>.wrap,.ct7>.wrap{flex-direction:row;gap:0px 0px}
.hm12,.hm16,.hm19,.hm23,.hm26,.hm30,.hm49,.ex8,.ex12,.ex15,.ex19,.ex22,.ex26,.ex29,.ex49,.ex55,.cc8,.cc12,.cc15,.cc19,.cc22,.cc26,.cc46,.cc52,.ls11,.ls14,.ls18,.ls21,.ls25,.ls28,.ls32,.ls54,.ls60,.tr8,.tr12,.tr15,.tr19,.tr34,.tr40,.ab9,.ab16,.ab24{font-size:16px;font-weight:400;color:#fff;text-align:left;line-height:24px}
.hm13,.hm20,.hm27,.ex9,.ex16,.ex23,.cc9,.cc16,.cc23,.ls8,.ls15,.ls22,.ls29,.tr9,.tr16{flex-direction:row;gap:20px 20px}
.hm14,.hm17,.hm21,.hm24,.hm28,.ex10,.ex13,.ex17,.ex20,.ex24,.ex27,.cc10,.cc13,.cc17,.cc20,.cc24,.cc27,.ls9,.ls12,.ls16,.ls19,.ls23,.ls26,.ls30,.ls33,.tr10,.tr13,.tr17,.tr20{flex-direction:column;gap:20px 20px;width:calc(50% - 10px)}
.hm31{background-image:url(/assets/img/wlock-job-7.webp);background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:469px;flex-direction:column;gap:20px 20px;width:calc(50% - 10px)}
.hm32,.ex37,.cc34,.ls42,.tr22{position:relative;isolation:isolate;background-color:#eaab32;padding:50px 0px 50px 0px}
.hm32::before,.ex37::before,.cc34::before,.ls42::before,.tr22::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0.21;background-image:url(/assets/img/quote-icon.webp);background-position:33px 190px;background-size:151px auto;background-repeat:no-repeat}
.hm34,.ex39,.cc36,.ls44,.tr24{font-size:16px;font-weight:600;color:#000;text-align:left;line-height:16px}
.hm35,.hm37,.hm39,.hm41,.hm43,.ex40,.ex42,.ex44,.cc37,.cc39,.cc41,.ls45,.ls47,.ls49,.tr25,.tr27,.tr29{padding:10px 10px 10px 10px;border-left:10px solid #333;flex-direction:column;gap:20px 20px}
.hm45,.ex46,.cc43,.ls51,.tr31{background:#000;color:#eaab32;font-size:15px;font-weight:700;padding:12px 24px 12px 24px}
.whm45,.wex46,.wcc43,.wls51,.wtr31{text-align:left}
.hm46,.ex56,.cc53,.ls61,.tr41,.ab13,.ab25,.ct7{background-color:#000}
.hm47,.ex57,.cc54,.ls62,.tr42,.ab26,.ct8{min-height:625px;padding:50px 20px 50px 0px;flex-direction:column;justify-content:center;gap:20px 20px;width:50%}
.hm51{background-image:url(/assets/img/wlock-job-3.webp);padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.ex2,.cc2,.ls2,.tr2,.ab2,.ab14{min-height:461px;padding:50px 0px 50px 0px;flex-direction:column;justify-content:center;gap:20px 20px;width:50%}
.ex30,.cc29,.ls35,.pj5{background-color:#000;padding:10px 10px 10px 10px}
.ex31,.ex33,.ex35,.ls36,.ls38,.ls40,.pj6,.pj15,.pj24{padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:33.33%}
.ex32,.ex34,.ex36,.cc28,.cc31,.cc33,.ls34,.ls37,.ls39,.ls41,.ab6,.ab18,.pj7,.pj8,.pj9,.pj10,.pj11,.pj12,.pj13,.pj14,.pj16,.pj17,.pj18,.pj19,.pj20,.pj21,.pj22,.pj23,.pj25,.pj26,.pj27,.pj28,.pj29,.pj30,.pj31,.pj33{width:100%;height:auto;margin-inline:auto}
.ex50,.cc47,.ls55,.tr35,.ab10,.ab19{background-color:#eaab32;padding:50px 0px 50px 0px}
.ex53,.cc50,.ls58,.tr38,.ab22{background-color:#000;padding:50px 0px 0px 0px}
.ex59,.cc56,.ls64,.tr44,.ab28,.ct10{background-image:url(/assets/img/wlock-transparent-logo.webp);background-position:center center;background-size:contain;background-repeat:no-repeat;padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.cc5{background-image:url(/assets/img/concreteapronslabwithcurbedge.webp);background-position:center center;background-size:cover;background-repeat:no-repeat;padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.cc30,.cc32{padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.ls5{background-image:url(/assets/img/jobsite-0125.webp);background-position:center top;background-size:cover;background-repeat:no-repeat;padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.tr5{background-image:url(/assets/img/truck-delivering-topsoil.webp);background-position:center top;background-size:cover;background-repeat:no-repeat;padding:10px 10px 10px 10px;flex-direction:column;gap:20px 20px;width:50%}
.tr21{width:500px;max-width:100%;height:408px;object-fit:cover;margin-inline:auto}
.ab4 h5{font-size:20px;margin:8px 0 16px;font-weight:500}
.ab5,.ab17,.ct5{padding:10px 10px 10px 10px;flex-direction:column;justify-content:center;align-items:center;gap:20px 20px;width:50%}
.ab7{background-image:url(/assets/img/starry-night.webp);background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:432px;background-color:#000;padding:50px 0px 50px 0px}
.ab7>.wrap{flex-direction:column;justify-content:center;gap:20px 20px}
.ab12 h3{font-size:28px;margin:8px 0 16px;font-weight:500}
.pj2{padding:50px 0px 50px 0px;flex-direction:column;justify-content:center;gap:20px 20px;width:100%}
.pj32{width:243px;max-width:100%;height:auto;margin-inline:auto}
.ct2{min-height:461px;flex-direction:column;justify-content:center;gap:20px 20px;width:50%}
.ct4{font-size:29px;font-weight:400;color:#000;text-align:left;line-height:43.5px}
.ct6{width:100%;height:327px;object-fit:cover;margin-inline:auto}
@media (min-width:1025px){
.hm9,.hm31,.hm51,.ex5,.ex59,.cc5,.cc56,.ls5,.ls64,.tr5,.tr44,.ab7,.ab28,.ct10{background-attachment:scroll}
.hm32::before,.ex37::before,.cc34::before,.ls42::before,.tr22::before{background-attachment:fixed}
}
@media (max-width:1024px){
.hm32::before,.ex37::before,.cc34::before,.ls42::before,.tr22::before{background-position:0px 0px}
}
@media (max-width:767px){
.hm1{min-height:163px}
.hm1>.wrap,.hm2>.wrap,.hm5>.wrap,.hm13,.hm20,.hm27,.hm10>.wrap,.hm35,.hm37,.hm39,.hm41,.hm43,.hm32>.wrap,.hm46>.wrap,.ex9,.ex16,.ex23,.ex6>.wrap,.ex30>.wrap,.ex40,.ex42,.ex44,.ex37>.wrap,.ex47>.wrap,.ex50>.wrap,.ex53>.wrap,.ex56>.wrap,.cc9,.cc16,.cc23,.cc6>.wrap,.cc29>.wrap,.cc37,.cc39,.cc41,.cc34>.wrap,.cc44>.wrap,.cc47>.wrap,.cc50>.wrap,.cc53>.wrap,.ls8,.ls15,.ls22,.ls29,.ls6>.wrap,.ls35>.wrap,.ls45,.ls47,.ls49,.ls42>.wrap,.ls52>.wrap,.ls55>.wrap,.ls58>.wrap,.ls61>.wrap,.tr9,.tr16,.tr6>.wrap,.tr25,.tr27,.tr29,.tr22>.wrap,.tr32>.wrap,.tr35>.wrap,.tr38>.wrap,.tr41>.wrap,.ab7>.wrap,.ab10>.wrap,.ab19>.wrap,.ab22>.wrap,.ab25>.wrap,.pj5>.wrap,.ct7>.wrap{flex-wrap:wrap}
.hm3{font-size:24px;text-align:center;line-height:24px}
.hm4,.hm8,.hm12,.hm34,.whm45,.hm49,.ex4,.ex8,.ex12,.ex15,.ex19,.ex22,.ex26,.ex29,.ex39,.wex46,.ex55,.cc4,.cc8,.cc12,.cc15,.cc19,.cc22,.cc26,.cc36,.wcc43,.cc52,.ls4,.ls11,.ls14,.ls18,.ls21,.ls25,.ls28,.ls32,.ls44,.wls51,.ls60,.tr4,.tr8,.tr12,.tr15,.tr19,.tr24,.wtr31,.tr40,.ab4,.ab9,.ab16,.ab24,.pj4,.ct4{text-align:center}
.hm6{min-height:469px;flex-wrap:wrap;width:100%}
.hm7,.hm11,.hm33,.ex3,.ex7,.ex38,.ex48,.ex51,.cc3,.cc7,.cc35,.cc45,.cc48,.ls3,.ls7,.ls43,.ls53,.ls56,.tr3,.tr7,.tr23,.tr33,.tr36,.ab3,.ab8,.ab11,.ab15,.ab20,.pj3,.ct3{font-size:26px;text-align:center;line-height:26px}
.hm9,.ex5,.cc5,.ls5,.tr5{background-position:center top;background-size:cover;min-height:260px;flex-wrap:wrap;width:100%}
.hm10,.hm32,.ex6,.ex37,.cc6,.cc34,.ls6,.ls42,.tr6,.tr22,.ab7{padding:50px 20px 50px 20px}
.hm14,.hm17,.hm21,.hm24,.hm28,.ex10,.ex13,.ex17,.ex20,.ex24,.ex27,.ex31,.ex33,.ex35,.cc10,.cc13,.cc17,.cc20,.cc24,.cc27,.cc30,.cc32,.ls9,.ls12,.ls16,.ls19,.ls23,.ls26,.ls30,.ls33,.ls36,.ls38,.ls40,.tr10,.tr13,.tr17,.tr20,.pj6,.pj15,.pj24{flex-wrap:wrap;width:100%}
.hm15,.hm18,.hm22,.hm25,.hm29,.ex11,.ex14,.ex18,.ex21,.ex25,.ex28,.cc11,.cc14,.cc18,.cc21,.cc25,.ls10,.ls13,.ls17,.ls20,.ls24,.ls27,.ls31,.tr11,.tr14,.tr18{font-size:19px;text-align:center;line-height:19px}
.hm31{min-height:223px;flex-wrap:wrap;width:100%}
.hm32::before,.ex37::before,.cc34::before,.ls42::before,.tr22::before{background-position:0px 0px}
.hm47,.ex57,.cc54,.ls62,.tr42,.ab26,.ct8{padding:20px 20px 20px 20px;flex-wrap:wrap;width:100%}
.hm48,.ex54,.cc51,.ls59,.tr39,.ab23{font-size:21px;text-align:center;line-height:21px}
.hm51{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:342px;flex-wrap:wrap;width:100%}
.ex2,.cc2,.ls2,.tr2,.ab2,.ab14,.ct2{min-height:469px;padding:20px 20px 20px 20px;flex-wrap:wrap;width:100%}
.ex1>.wrap,.cc1>.wrap,.ls1>.wrap,.tr1>.wrap,.ab1>.wrap,.ab13>.wrap,.pj1>.wrap,.ct1>.wrap{flex-direction:column;flex-wrap:wrap}
.ex47,.ex50,.ex53,.cc44,.cc47,.cc50,.ls52,.ls55,.ls58,.tr32,.tr35,.tr38,.ab10,.ab19,.ab22{padding:20px 20px 20px 20px}
.ex59,.cc56,.ls64,.tr44,.ab28,.ct10{background-position:center center;background-size:contain;background-repeat:no-repeat;min-height:342px;flex-wrap:wrap;width:0%}
.tr21{width:100%}
.ab5,.ab17{min-height:260px;flex-wrap:wrap;width:100%}
.pj2{min-height:469px;padding:20px 20px 20px 20px;flex-wrap:wrap}
.ct5{min-height:260px;flex-wrap:wrap;width:0%}
.ct6{height:auto}
}
