/* Legend Contracting - static rebuild, styled to match the original site 1:1 (sizes measured from the original render at 1280px).
   Fonts self-hosted: Comfortaa (headings, nav), Montserrat (body), Poppins (Google reviews block, as in the old reviews widget). */
@font-face{font-family:"Comfortaa";src:url(/assets/fonts/comfortaa.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Montserrat";src:url(/assets/fonts/montserrat.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Poppins";src:url(/assets/fonts/poppins-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Poppins";src:url(/assets/fonts/poppins-500.woff2) format("woff2");font-weight:500;font-display:swap}
:root{--dark:#3e3c3c;--hf:"Comfortaa",system-ui,sans-serif;--bf:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--hh:102px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--bf);font-weight:300;font-size:16px;line-height:24px;color:#000;background:#fff}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,.slides:focus-visible{outline:2px solid #3e3c3c;outline-offset:2px}
h1,h2,h3,h4{font-family:var(--hf);font-weight:700;color:#000;margin:0}
p{margin:0}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:.5rem;top:.5rem}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
main{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;width:280px;max-width:100%;min-height:43px;border:2px solid var(--dark);border-radius:50px;padding:0 10px;font:400 16px/1.2 var(--bf);color:#3f3c3c;background:transparent;text-decoration:none;text-align:center;cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:var(--dark);color:#fff}
.btn-dark{background:#3f3c3c;color:#fff;border-color:transparent}
.btn-dark:hover{background:#000}
/* ---------- header (original: 102px, white, soft shadow; logo / nav with | separators / outlined phone button) ---------- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 0 11px rgba(0,0,0,.25)}
.hdr{display:flex;align-items:center;height:var(--hh);max-width:1280px;margin:0 auto;padding:0 55px 0 72px}
.brand{flex:none;display:block;width:122px;margin-top:18px}
.brand img{width:122px;height:67px;object-fit:contain}
.site-nav{margin-left:86px}
.site-nav>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center}
.site-nav>ul>li{position:relative}
.site-nav>ul>li+li::before{content:"";position:absolute;left:0;top:50%;width:2px;height:13px;margin-top:-6px;background:#000}
.site-nav>ul>li>a{display:block;padding:5px 17px;font:700 14px/21px var(--hf);color:#000;text-decoration:none;letter-spacing:.2px}
.site-nav>ul>li>a[aria-current=page],.site-nav>ul>li>a:hover{color:var(--dark)}
.site-nav>ul>li:first-child>a[aria-current=page]{color:var(--dark)}
.has-sub>a{padding-right:28px!important}
.has-sub>a::after{content:"";position:absolute;right:15px;top:50%;width:5px;height:5px;margin-top:-4px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.sub{list-style:none;margin:0;padding:0;position:absolute;left:-121px;top:100%;margin-top:6px;width:233px;background:#fff;box-shadow:0 3px 11px rgba(0,0,0,.18);opacity:0;visibility:hidden;transition:opacity .15s}
.sub a{display:block;padding:15px 15px 15px 15px;font:700 13px/19.5px var(--hf);color:#000;text-decoration:none}
.sub a:hover,.sub a[aria-current=page]{background:#000;color:#fff}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible}
.sub-toggle{display:none}
.call-btn{margin-left:auto;flex:none;position:relative;display:flex;align-items:center;justify-content:center;width:232px;height:46px;border:2px solid #000;border-radius:6px;font:400 16px var(--bf);color:#000;text-decoration:none;margin-top:-2px}
.call-btn svg{position:absolute;left:12px;top:11px;width:20px;height:20px;fill:#3e3c3c}
.call-btn:hover{background:#f7f7f7}
.nav-toggle{display:none}
.nav-scrim{display:none}
@media (max-width:1099px){
 :root{--hh:75px}
 .hdr{padding:0 19px;justify-content:space-between;position:relative}
 .brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:66px;margin:0}
 .brand img{width:66px}
 .nav-toggle{display:block;width:30px;height:30px;border:0;background:none;padding:0;cursor:pointer;position:relative}
 .bars,.bars::before,.bars::after{position:absolute;left:4px;width:22px;height:2px;background:#3e3c3c;border-radius:1px}
 .bars{top:14px}.bars::before,.bars::after{content:"";left:0}.bars::before{top:-7px}.bars::after{top:7px}
 .call-btn{width:30px;height:30px;border:0;margin:0;padding:0;font-size:0}
 .call-btn svg{position:static;width:22px;height:22px}
 .call-btn span{display:none}
 .site-nav{position:fixed;left:0;top:0;bottom:0;width:min(300px,85vw);margin:0;background:#fff;z-index:70;transform:translateX(-102%);transition:transform .25s;overflow:auto;padding:70px 0 30px;box-shadow:0 0 20px rgba(0,0,0,.25)}
 .site-nav.open{transform:none}
 .nav-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:45}
 .nav-scrim[hidden]{display:none}
 .site-nav>ul{flex-direction:column;align-items:stretch}
 .site-nav>ul>li+li::before{display:none}
 .site-nav>ul>li>a{padding:12px 25px;font-size:16px;line-height:24px}
 .has-sub{display:grid;grid-template-columns:1fr auto}
 .has-sub>a::after{display:none}
 .sub-toggle{display:block;width:48px;border:0;background:none;cursor:pointer;position:relative}
 .sub-toggle::after{content:"";position:absolute;left:19px;top:16px;width:7px;height:7px;border:solid #000;border-width:0 2px 2px 0;transform:rotate(45deg)}
 .sub-toggle[aria-expanded=true]::after{transform:rotate(-135deg);top:20px}
 .sub{grid-column:1/-1;position:static;width:auto;margin:0;box-shadow:none;opacity:1;visibility:visible;display:none}
 .sub.open,.no-js .sub{display:block}
 .sub a{padding:10px 25px 10px 40px;font-size:14px}
}
/* ---------- footer CTA (the only footer content on the original) ---------- */
.cta-foot{text-align:center;padding:144px 20px 52px}
.cta-foot h2{font-size:50px;line-height:75px}
.cta-foot p{max-width:708px;margin:24px auto 13px}
main:has(.form-sec)+.cta-foot{padding-top:87px}
main:has(.about)+.cta-foot{padding-top:118px}
main:has(.projects-page)+.cta-foot{padding-top:206px}
main:has(section.consult)+.cta-foot{padding-top:156px}
/* ---------- shared blocks ---------- */
.banner{position:relative;display:flex;align-items:center;overflow:hidden;background:#222}
.banner picture,.banner>img{position:absolute;inset:0}
.banner img{width:100%;height:100%;object-fit:cover}
.banner::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.3)}
.banner .in{position:relative;z-index:1;width:100%;max-width:1280px;margin:0 auto;padding:0 40px}
.banner h1{color:#fff;font-size:50px;line-height:75px}
.about-banner{height:531px}
.contact-banner{height:295px}
.blog-banner{height:300px;text-align:center}
.blog-banner h1{font-size:45px;line-height:normal}
.blog-banner::after{background:rgba(0,0,0,.25)}
.video-block{margin:0 auto;max-width:1200px}
.video-block video{width:100%;background:#000;aspect-ratio:16/9}
.video-block.w1120{max-width:1120px}
/* project cards (original photo gallery: 2 columns, rounded, caption on hover) */
.builds{max-width:1280px;margin:0 auto;padding:91px 60px 0}
.click-h{font-size:25px;line-height:37.5px;text-align:center;padding:0 50px;margin-bottom:32px}
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pcard{position:relative;display:block;aspect-ratio:570/346;border-radius:25px;overflow:hidden;text-decoration:none;color:#000;isolation:isolate}
.pcard img,.pcard picture,.pcard-img{display:block;width:100%;height:100%}
.pcard img{object-fit:cover;transition:filter .35s}
.pcard .cap{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:20px 26px 28px;background:rgba(255,255,255,.6);opacity:0;transition:opacity .35s}
.pcard:hover .cap,.pcard:focus-within .cap,.pcard:focus .cap{opacity:1}
.pcard:hover img,.pcard:focus-within img,.pcard:focus img{filter:blur(6px)}
.pcard .t{font:700 35px/1.17 var(--hf);color:#000;text-decoration:none}
.pcard .d{font:300 24px/1.25 var(--bf)}
.pcard.last .cap{justify-content:center}
.pcard.last .btn{width:197px;min-height:65px;margin-top:10px;border-radius:50px}
/* google reviews block (look of the old Google Reviews widget) */
.gr{border:1px solid #444;margin:50px 0 0;padding:30px 0 125px;font-family:"Poppins",sans-serif;font-size:14px;line-height:1.3}
.gr-head{display:flex;justify-content:space-between;align-items:flex-start;max-width:1024px;margin:0 auto;padding:0 128px 0 128px;gap:20px}
.gr-head{max-width:none;padding:0 130px}
.gr-brand{display:flex;align-items:center;gap:8px;font-size:14px;color:#333}
.g{font:500 17px/1 "Poppins",Arial,sans-serif;letter-spacing:-.5px}
.g b{font-weight:500}.g b:nth-child(1),.g b:nth-child(4){color:#4285f4}.g b:nth-child(2),.g b:nth-child(6){color:#ea4335}.g b:nth-child(3){color:#fbbc05}.g b:nth-child(5){color:#34a853}
.gr-sum{display:flex;align-items:center;gap:10px;margin-top:6px}
.gr-sum .avg{font-size:17px;color:#333}
.gr-sum .n{font-size:13px;color:#333;margin-left:12px}
.st{display:inline-flex;gap:2px;vertical-align:middle}
.st svg{width:19px;height:19px;fill:#4285f4}
.gr-btn{flex:none;background:#0f5ff8;color:#fff;font-size:13px;line-height:20px;text-decoration:none;border-radius:4px;padding:8px 13px;margin-top:2px}
.gr-btn:hover{background:#0b4fd0}
.gr-car{position:relative;max-width:none;margin:95px auto 0;padding:0 185px}
.gr-track{list-style:none;margin:0;padding:0 2px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*80px)/3);gap:80px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.gr-track::-webkit-scrollbar{display:none}
.rv{scroll-snap-align:start;padding:0 0 0 2px;min-width:0}
.rv .who{display:flex;gap:12px;align-items:flex-start}
.rv .av{flex:none;width:46px;height:46px;border-radius:50%;color:#fff;font-size:24px;display:grid;place-items:center;margin-top:-4px;border:1px solid rgba(0,0,0,.1)}
.rv cite{display:block;font-style:normal;font-weight:400;font-size:17px;color:#000;line-height:1.3}
.rv .st svg{width:21px;height:21px}
.rv .when{font-size:11px;color:#333;margin:8px 0 14px 62px}
.rv .txt{font-size:15px;line-height:24px;color:#000;white-space:pre-line}
.rv .txt p{display:-webkit-box;-webkit-line-clamp:11;line-clamp:11;-webkit-box-orient:vertical;overflow:hidden}
.rv.open .txt p{display:block}
.rv .more{margin-top:8px;background:none;border:0;padding:0;font:400 15px Arial,sans-serif;color:#000;cursor:pointer}
.gr-prev,.gr-next,.q-prev,.q-next,.sl-prev,.sl-next{position:absolute;top:50%;width:40px;height:40px;margin-top:-20px;border:0;background:none;cursor:pointer;z-index:2}
.gr-prev::before,.gr-next::before,.q-prev::before,.q-next::before,.sl-prev::before,.sl-next::before{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border:solid #333;border-width:2.5px 2.5px 0 0;transform:rotate(-135deg)}
.gr-next::before,.q-next::before,.sl-next::before{transform:rotate(45deg)}
.gr-prev{left:111px}.gr-next{right:113px}
.no-js .gr-prev,.no-js .gr-next,.no-js .q-prev,.no-js .q-next,.no-js .sl-prev,.no-js .sl-next{display:none}
/* map + hours */
.map-row{display:grid;grid-template-columns:543px 1fr;gap:51px;align-items:center;max-width:1280px;margin:0 auto;padding:101px 70px 0 66px}
.map{display:block}
.map img{width:100%;height:auto}
.hours h2{font-size:25px;line-height:normal;text-align:center;margin:0 0 15px}
.hours{padding-top:20px}
.form-sec .cform .chk{font-size:14px;line-height:18px}
.hours p{font-size:18px;line-height:22px;padding-left:4px;margin-bottom:15px}
.hours h2+p{margin-bottom:15px}
/* contact form block (original form widget: grey panel, white fields, pill button) */
.form-sec{max-width:1280px;margin:0 auto;padding:116px 20px 0;text-align:center}
.form-logo{width:295px;height:161px;object-fit:contain;margin:0 auto 42px}
.form-h{font-size:35px;line-height:52.5px;margin-bottom:10px}
.cform{text-align:left}
.consult .cform-form,.cform.consult .cform-form{background:#f3f3f3;padding:25px 35px 35px;display:flex;flex-wrap:wrap;column-gap:30px}
.cform.consult .fld{width:100%;margin-bottom:12px}
.cform.consult .fld.half{width:calc(50% - 15px)}
.cform.consult .fld.third{width:100%}
.cform.consult .fld-check.third legend{max-width:370px}
.cform label,.cform legend{display:block;font:300 14px/21px var(--bf);color:var(--dark);padding:0;margin:0 0 3px}
.cform input[type=text],.cform input[type=email],.cform input[type=tel],.cform textarea{display:block;width:100%;height:40px;border:2px solid #fff;background:#fff;border-radius:0;font:400 16px var(--bf);color:var(--dark);padding:5px 10px;margin:0}
.cform textarea{height:80px;resize:vertical}
.cform fieldset{border:0;padding:0;margin:0;min-width:0}
.cform .chk{display:flex;align-items:center;gap:4px;font:300 15px/19px var(--bf);color:var(--dark);margin:2px 0 11px;cursor:pointer}
.cform .chk input{width:14px;height:14px;margin:0;accent-color:#3e3c3c}
.cform.consult .fld-check{margin-bottom:6px}
.cform.consult .fld-submit{margin:35px 0 0}
.cform button[type=submit]{display:block;width:280px;height:58px;border:2px solid var(--dark);border-radius:50px;background:transparent;font:400 16px var(--bf);color:#3f3c3c;cursor:pointer;transition:background .2s,color .2s}
.cform button[type=submit]:hover{background:var(--dark);color:#fff}
.cform button[disabled]{opacity:.6}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform-msg{display:none;padding:20px 35px;font:300 16px/24px var(--bf);color:#000;background:#f3f3f3;text-align:center}
.cform-msg.err{color:#b00020;background:#fff;padding:10px 0;text-align:left}
.cform-msg:target,.cform-msg.show{display:block}
.cform-msg.ok:target~form{display:none}
.cform-msg:focus{outline:none}
/* ---------- home ---------- */
.home-logo{text-align:center}
.home-logo h1{display:flex;justify-content:center}
.home-logo img{width:578px;height:315px;object-fit:contain}
.hero-img{max-width:1280px;margin:33px auto 0;padding:0 40px}
.hero-img img{width:100%;aspect-ratio:1200/553;object-fit:cover}
.intro{max-width:1280px;margin:0 auto;padding:44px 40px 0}
.intro p{font-family:var(--hf);font-weight:300;font-size:16px;line-height:24px;max-width:985px;text-shadow:-3px 3px 15px rgba(0,0,0,.4)}
.intro strong{font-weight:700}
.home-video{margin-top:62px;max-width:1120px}
.home-video video{aspect-ratio:1120/633}
/* ---------- projects page ---------- */
.projects-page{padding-top:127px}
/* ---------- project page ---------- */
.project{max-width:1280px;margin:0 auto;padding:25px 40px 0}
.p-title{font-size:32px;line-height:48px;text-align:center;margin:0}
.p-title+.video-block{margin-top:52px}
.p-title+.video-block.w1120{margin-top:66px}
.video-block.w1120 video{aspect-ratio:1120/633}
.slider.p-slider{max-width:var(--sw);margin:var(--gt) 0 0}
.video-block+.video-block{margin-top:26px}
.p-slider+.video-block{margin-top:26px}
.tour{margin-top:25px}
.tour iframe{display:block;width:1083px;max-width:100%;height:750px;border:0}
.p-back{text-align:center;margin-top:var(--gb)}
.p-back a{font:700 32px/48px var(--hf);color:var(--dark);text-decoration:none}
.project+.cta-foot,main:has(.project)+.cta-foot{padding-top:96px}
/* slider */
.slider{position:relative;margin:0 auto;aspect-ratio:var(--ar)}
.slides{list-style:none;margin:0;padding:0;height:100%;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.slides::-webkit-scrollbar{display:none}
.slides li{flex:0 0 100%;height:100%;scroll-snap-align:start;position:relative}
.slides picture,.slides img{width:100%;height:100%}
.slides img{object-fit:contain}
.slider.ov .slides li{background:#eee}
.slider.ov .slides li::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25);pointer-events:none}
.sl-prev{left:6px}.sl-next{right:6px}
.sl-prev::before,.sl-next::before{width:18px;height:18px;margin:-9px 0 0 -9px;border-color:#fff;border-width:3px 3px 0 0;filter:drop-shadow(0 0 2px rgba(0,0,0,.5))}
/* ---------- about ---------- */
.about{max-width:1280px;margin:0 auto;padding:47px 45px 0;display:grid;grid-template-columns:576px 1fr;column-gap:54px;align-items:start}
.about-img{margin-top:47px}
.about-img img{width:576px;height:548px;object-fit:cover}
.about-logo{width:560px;height:306px;object-fit:contain;max-width:100%}
.about-txt h2{font-size:50px;line-height:75px;margin:28px 0 40px}
.about-txt p{max-width:551px}
.about-btn{grid-column:2;margin-top:72px}
.about-btn .btn{width:243px;min-height:57px}
.team{max-width:1280px;margin:0 auto;padding:67px 56px 0;text-align:center}
.team h2{font-size:50px;line-height:normal;margin-bottom:79px}
.team-row{display:grid;grid-template-columns:544px 544px;justify-content:space-between}
.team figure{margin:0}
.team .samuel img{height:420px;width:auto;margin:0 auto}
.team .crew img{width:544px;height:424px;object-fit:cover}
.team figcaption{font-style:italic;font-size:13px;margin-top:6px}
/* ---------- contact ---------- */
.contact-page{padding-top:27px}
.consult:not(.cform){max-width:1280px;margin:0 auto;padding:70px 110px 0 40px;display:grid;grid-template-columns:1fr 543px;gap:40px;align-items:start}
.consult-txt h2{font-size:35px;line-height:52.5px;margin:6px 0 37px}
.consult-txt p{font:700 25px/50px var(--hf)}
.consult-txt a{text-decoration:none}
/* ---------- get a quote ---------- */
.gq{max-width:1280px;margin:0 auto;padding:116px 55px 0 40px;display:grid;grid-template-columns:600px 552px;gap:33px;align-items:start}
.gq-txt{text-align:center;padding:0 52px;margin-top:-23px}
.gq h1{font-size:60px;line-height:90px;margin:0 0 20px}
.gq-txt p{font-size:30px;line-height:60px}
.cform.quote .fld{margin-bottom:16px}
.cform.quote .fld-textarea{margin-bottom:13px}
.cform.quote input[type=text],.cform.quote input[type=email],.cform.quote input[type=tel],.cform.quote textarea{text-align:center;color:#000;font-size:16px}
.cform.quote ::placeholder{color:#555;opacity:1;font-size:13px}
.cform.quote legend{font-size:16px;line-height:24px;color:#000;max-width:164px}
.cform.quote .chk{font-size:16px;color:#000;margin:3px 0 13px}
.cform.quote .chk input{width:16px;height:16px}
.cform.quote .fld-submit{margin-top:38px}
.cform.quote button[type=submit]{margin:0 auto;width:290px;height:55px;background:#000;color:#fff;border-color:#3e3c3c}
.cform.quote button[type=submit]:hover{background:var(--dark)}
.cform.quote .cform-msg.ok{background:#fff}
.gq+.cta-foot,main:has(.gq)+.cta-foot{padding-top:186px}
/* ---------- our process ---------- */
.big-title{font-size:80px;line-height:120px;text-align:center;padding-top:42px}
.process-video{max-width:1240px;margin:31px auto 0;height:500px}
.process-video video{width:100%;height:100%;object-fit:cover}
.process{max-width:1280px;margin:0 auto;padding:26px 40px 0;display:grid;grid-template-columns:580px 580px;justify-content:space-between;column-gap:20px;row-gap:46px;align-items:start}
.step{background:rgba(0,0,0,.05);border:1px solid rgba(255,255,255,.5);border-radius:20px;padding:25px}
.step.wide{grid-column:1/-1;margin-bottom:10px}
.step-img img{width:100%;height:234px;object-fit:cover;border-radius:10px}
.step.wide .step-img img{object-fit:fill;background:#fff}
.step details{margin-top:10px;background:#f2f2f2}
.step summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:16px 16px}
.step summary::-webkit-details-marker{display:none}
.step summary h2{font-size:24px;line-height:36px}
.step.wide summary h2{flex:1;text-align:center}
.chev{flex:none;width:32px;height:32px;border-radius:50%;background:#000;display:grid;place-items:center;transition:transform .2s}
.chev svg{width:24px;height:24px}
.step details[open] .chev{transform:rotate(180deg)}
.step-body{padding:0 16px 16px;background:#fff}
.step-body p{margin:0 0 24px}
.process+.cta-foot,main:has(.process)+.cta-foot{padding-top:153px}
/* ---------- landing page ---------- */
.lp-hero{position:relative;min-height:889px;display:flex;align-items:flex-start;text-align:center;color:#fff;overflow:hidden;background:#222}
.lp-hero picture img,.lp-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lp-hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.45)}
.lp-hero .in{position:relative;z-index:1;max-width:1094px;margin:0 auto;padding:218px 20px 0}
.lp-hero h1{color:#fff;font-size:80px;line-height:120px;margin-bottom:28px}
.lp-hero p{font-weight:700;font-size:18px;line-height:27px;max-width:858px;margin:0 auto 34px}
.lp-hero .btn{width:222px;min-height:60px}
.lp-what{max-width:740px;margin:0 auto;padding:72px 20px 0;text-align:center}
.lp-what h2{font-size:32px;line-height:48px;font-weight:400;margin-bottom:16px}
.lp-what p{font-size:18px;line-height:36px;margin-bottom:36px}
.feats{list-style:none;margin:81px auto 0;padding:0;display:grid;grid-template-columns:repeat(4,300px);justify-content:center;width:1280px;max-width:100vw;position:relative;left:50%;transform:translateX(-50%)}
.feats li{display:flex;flex-direction:column;align-items:center;font:400 25px/37.5px var(--hf);color:#000}
.feats li.b{font-weight:700}
.feats svg{width:70px;height:70px;margin-bottom:12px}
.lp-proj{font-size:35px;line-height:52.5px;text-align:center;margin:104px 20px 0}
.lp-proj a{color:var(--dark)}
.lp-quotes{position:relative;max-width:1200px;margin:93px auto 0;background:#000;border-radius:17px;color:#fff;text-align:center;padding:54px 100px 50px;min-height:475px}
.lp-quotes .eyebrow{font-size:16px}
.q-track{list-style:none;margin:24px 0 0;padding:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.q-track::-webkit-scrollbar{display:none}
.q-track li{flex:0 0 100%;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;min-height:300px}
.q-track blockquote{margin:0 auto;max-width:769px}
.q-track blockquote p{font:400 32px/1.4 "Poppins",sans-serif;color:#fff}
.q-track cite{display:block;font:400 18px var(--bf);font-style:normal;margin-top:30px}
.q-prev::before,.q-next::before{border-color:#fff;width:14px;height:14px;margin:-7px 0 0 -7px}
.q-prev{left:20px}.q-next{right:20px}
.lp-forms{max-width:1280px;margin:0 auto;padding:136px 40px 0;text-align:center}
.lp-forms h2{font-size:50px;line-height:75px;margin-bottom:110px}
.lp-cards{display:grid;grid-template-columns:repeat(3,327px);justify-content:space-between;padding:0 10px;align-items:start}
.lp-card{border-radius:33px;box-shadow:-3px 3px 11px #000;background:#fff;padding:0 12px 28px;text-align:left;min-height:540px}
.lp-card h3{font-size:30px;line-height:45px;text-align:center;margin:0 -10px 20px}
.cform.lp .cform-form{display:grid;grid-template-columns:repeat(3,1fr);column-gap:30px}
.cform.lp .fld{grid-column:1/-1}
.cform.lp .fld.third{grid-column:auto;margin-bottom:6px}
.cform.lp label,.cform.lp legend{font:300 16px/24px var(--bf);color:#000;margin-bottom:3px}
.cform.lp input[type=text],.cform.lp input[type=email],.cform.lp input[type=tel],.cform.lp textarea{border:2px solid #000;color:#000}
.cform.lp textarea{margin-bottom:15px}
.cform.lp .fld-note{grid-column:1/3;font-size:16px;line-height:24px;padding-right:0}
.cform.lp .fld-note strong{font-weight:700}
.cform.lp .fld-check{grid-column:3}
.cform.lp .chk{font:400 16px/19px var(--bf);color:#736f6f;margin:2px 0 13px}
.cform.lp .chk input{width:16px;height:16px}
.cform.lp .fld-submit{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:10px}
.cform.lp button[type=submit]{width:150px;height:43px;font-size:16px}
.cform.lp .cform-msg.ok{background:#fff;padding:20px 5px}
.lp-band{margin-top:195px;height:800px;overflow:hidden}
.lp-band picture,.lp-band img{width:100%;height:100%}
.lp-band img{object-fit:cover}
.lp-band+.cta-foot,main:has(.lp-band)+.cta-foot{padding-top:79px}
/* ---------- blog ---------- */
.blog-list{max-width:1280px;margin:0 auto;padding:40px 40px 0}
.blog-search{position:relative;width:360px;margin:0 auto 34px}
.blog-search input{width:100%;height:41px;border:1px solid #e0e0e0;border-radius:25px;padding:0 44px 0 20px;font:400 14px var(--bf);color:#777}
.blog-search svg{position:absolute;right:17px;top:12px;width:17px;height:17px}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post-card{background:#fff;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.25);overflow:hidden}
.pc-img{display:block;height:190px}
.pc-img img,.pc-img picture{width:100%;height:190px;object-fit:cover}
.post-card .body{padding:15px 15px 14px}
.post-card h2,.post-card h3{font-size:18px;line-height:27px;margin:0 0 15px;min-height:54px;display:flex;align-items:center}
.post-card h2 a,.post-card h3 a{text-decoration:none;color:#000}
.post-card p{font-size:15px;line-height:21px;color:#747474;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.blog-list .post-card{min-height:372px}
.no-hits{text-align:center;margin:20px 0}
.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:7px;color:#8a8a8a;font-size:18px}
.pg-cur{display:grid;place-items:center;width:32px;height:32px;border:2px solid var(--dark);border-radius:50%;font:700 14px var(--bf);color:#3f3c3c}
.blog-list+.cta-foot,main:has(.blog-list)+.cta-foot{padding-top:167px}
/* ---------- blog post ---------- */
.post-title{font-size:80px;line-height:normal;text-align:center;max-width:860px;margin:15px auto 15px}
.post-hero{position:relative;height:403px;background:#f1f1f1;overflow:hidden}
.post-hero picture,.post-hero img{position:absolute;inset:0;width:100%;height:100%}
.post-hero img{object-fit:cover}
.post-hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.2)}
.post-hero .meta{position:absolute;left:0;right:0;top:50%;margin-top:-3px;z-index:1;text-align:center;color:#fff;font-size:16px;line-height:24px}
.post-body{max-width:1280px;margin:0 auto;padding:67px 90px 0}
.post.hire .post-body h2{margin-bottom:0}
.post-body p,.post-body h2{margin:0 0 24px}
.post-body h2{font:700 16px/24px var(--bf)}
.post-body h2:first-child{font:700 35px/52.5px var(--hf);margin-bottom:8px}
.post-body a{color:var(--dark)}
.post.tea .post-body{padding:305px 130px 0}
.th-gal{display:grid;grid-template-columns:repeat(4,1fr);margin-top:-14px}
.th-gal a{display:block;aspect-ratio:1}
.th-gal img{width:100%;height:100%;object-fit:cover}
.th-slider{margin-top:10px}
.th-slider .slides img{object-fit:cover}
.th-slider .slides li{background:#eee}
.th-slider.ov .slides li::after{background:rgba(0,0,0,.3)}
.sl-cta{position:absolute;left:50%;bottom:153px;transform:translateX(-50%);width:150px;z-index:2;border-color:var(--dark);color:#3f3c3c;background:transparent}
.sl-dots{position:absolute;left:0;right:0;bottom:24px;display:flex;justify-content:center;gap:8px;z-index:2}
.sl-dots button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:#ced6d9;box-shadow:0 0 2px rgba(0,0,0,.4);cursor:pointer}
.sl-dots button[aria-current=true]{background:#fff}
.post-nav{max-width:1280px;margin:0 auto;padding:31px 90px 0;display:grid;grid-template-columns:1fr 1fr}
.post-nav .r{text-align:right}
.post-nav a{color:var(--dark);text-decoration:none}
.share{list-style:none;margin:61px 0 0;padding:0;display:flex;justify-content:center;gap:17px}
.share a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%}
.share svg{width:22px;height:22px}
.related{max-width:1280px;margin:0 auto;padding:109px 90px 0}

.related .pager{margin-top:8px}
.related+.cta-foot,main:has(.related)+.cta-foot{padding-top:142px}
/* lightbox (Tea House thumbnails) */
.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;overflow:hidden}
.lightbox::backdrop{background:rgba(0,0,0,.92)}
.lightbox .stage{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:3.5rem 3.5rem 3rem}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain}
.lightbox button{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;font-size:2rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;line-height:1}
.lightbox .x{top:.75rem;right:.75rem}
.lightbox .prev{left:.5rem;top:50%;margin-top:-1.5rem}
.lightbox .next{right:.5rem;top:50%;margin-top:-1.5rem}
.lightbox .ctr{position:absolute;bottom:.9rem;left:0;right:0;text-align:center;color:#ccc;font-size:.9rem}
.nf{text-align:center;padding:80px 20px 0}
.nf h1{font-size:50px;line-height:75px;margin-bottom:20px}
.nf .btn{width:160px;margin:20px 6px 0}
/* ---------- tablet / mobile (original mobile layout: single column, 15-20px side margins) ---------- */
@media (max-width:1279px){
 .feats{width:100%;left:0;transform:none;grid-template-columns:repeat(4,1fr)}
 .about,.team-row,.process{grid-template-columns:1fr 1fr}
 .about-img img,.team .crew img{width:100%;height:auto}
 .lp-cards{grid-template-columns:repeat(3,1fr);gap:20px}
}
@media (max-width:767px){
 body{font-size:14px;line-height:21px}
 .cta-foot{padding:70px 10px 40px}
 .cta-foot h2{font-size:30px;line-height:45px}
 .cta-foot p{font-size:15px;line-height:22px;margin:12px auto 10px}
 .cta-foot .btn{width:100%;min-height:43px}
 .banner .in{padding:0 15px}
 .banner h1{font-size:30px;line-height:45px}
 .about-banner{height:195px}.contact-banner{height:205px}.blog-banner{height:160px}
 .home-logo img{width:100%;height:auto;padding:0 8px}
 .hero-img img{aspect-ratio:1200/553}
 .hero-img{padding:0 8px;margin-top:20px}
 .intro{padding:30px 15px 0}
 .intro p{font-size:12px;line-height:18px}
 .home-video{margin:30px 15px 0}
 .builds{padding:30px 0 0}
 .click-h{font-size:20px;line-height:30px;padding:0 15px;margin-bottom:20px}
 .pcards{grid-template-columns:1fr;gap:30px}
 .pcard{aspect-ratio:auto;border-radius:0;overflow:visible}
 .pcard img,.pcard picture,.pcard-img{height:auto}
 .pcard img{aspect-ratio:570/346;border-radius:25px}
 .pcard .cap{position:static;opacity:1;background:none;padding:10px 15px 0}
 .pcard:hover img,.pcard:focus-within img,.pcard:focus img{filter:none}
 .pcard .t{font-size:26px;line-height:1.3}
 .pcard .d{font-size:14px;line-height:20px}
 .pcard.last .btn{width:100%;min-height:43px}
 .gr{padding:20px 0 30px;margin-top:40px}
 .gr-head{padding:0 15px;flex-wrap:wrap}
 .gr-car{padding:0 50px;margin-top:30px}
 .gr-track{grid-auto-columns:100%;gap:20px}
 .gr-prev{left:5px}.gr-next{right:5px}
 .map-row{grid-template-columns:1fr;padding:50px 15px 0;gap:30px}
 .map-row .map{order:2}
 .hours h2{font-size:22px}
 .hours p{font-size:14px;text-align:center}
 .form-sec{padding:60px 15px 0}
 .form-logo{width:240px;height:auto;margin-bottom:30px}
 .about-logo{height:auto}
 .brand img{height:auto}
 .form-h{font-size:28px;line-height:40px}
 .cform.consult .cform-form{padding:20px 15px 30px}
 .cform.consult .fld.half{width:100%}
 .cform button[type=submit]{width:200px;height:58px}
 .about{grid-template-columns:1fr;padding:20px 15px 0}
 .about-img{margin-top:0;order:3}
 .about-txt h2{font-size:24px;line-height:36px;margin:10px 0}
 .about-btn{grid-column:auto;margin:20px 0;text-align:center}
 .team{padding:30px 15px 0}
 .team h2{font-size:30px;margin-bottom:30px}
 .team-row{grid-template-columns:1fr;gap:30px}
 .team .samuel img{height:auto;width:60%}
 .consult:not(.cform){grid-template-columns:1fr;padding:30px 15px 0}
 .consult-txt h2{font-size:24px;line-height:36px;margin:0 0 10px}
 .consult-txt p{font-size:16px;line-height:32px}
 .gq{grid-template-columns:1fr;padding:40px 15px 0;gap:30px}
 .gq h1{font-size:36px;line-height:54px}
 .gq-txt{padding:0}
 .gq-txt p{font-size:18px;line-height:36px}
 .big-title{font-size:40px;line-height:60px;padding-top:15px}
 .process-video{height:180px;margin-top:10px}
 .process{grid-template-columns:1fr;padding:20px 15px 0;row-gap:20px}
 .step{padding:15px}
 .step-img img{height:160px}
 .step summary h2{font-size:18px;line-height:27px}
 .lp-hero{min-height:800px}
 .lp-hero .in{padding-top:70px}
 .lp-hero h1{font-size:44px;line-height:62px;margin-bottom:24px}
 .lp-hero p{font-size:16px;line-height:24px}
 .lp-what h2{font-size:24px}
 .lp-what p{font-size:14px;line-height:28px}
 .feats{grid-template-columns:1fr 1fr;row-gap:30px}
 .feats li{font-size:16px;line-height:24px}
 .feats svg{width:40px;height:40px}
 .lp-proj{font-size:24px;line-height:36px;margin-top:50px}
 .lp-quotes{margin:40px 10px 0;padding:30px 40px;min-height:600px}
 .q-track blockquote p{font-size:20px}
 .q-prev{left:2px}.q-next{right:2px}
 .lp-forms{padding:50px 15px 0}
 .lp-forms h2{font-size:30px;line-height:45px;margin-bottom:30px}
 .lp-cards{grid-template-columns:1fr;gap:30px;padding:0}
 .lp-card{min-height:0}
 .lp-band{height:300px;margin-top:60px}
 .blog-list{padding:30px 15px 0}
 .blog-search{width:100%;max-width:360px}
 .posts{grid-template-columns:1fr}
 .post-title{font-size:36px;line-height:46px;margin:15px 15px}
 .post-hero{height:200px}
 .post-body,.post.tea .post-body{padding:30px 15px 0}
 .post-body h2:first-child{font-size:24px;line-height:36px}
 .th-gal{grid-template-columns:1fr;margin-top:0}
 .th-slider{aspect-ratio:4/3}
 .sl-cta{bottom:60px}
 .post-nav{padding:20px 15px 0}
 .share{margin-top:30px}
 .related{padding:50px 15px 0}
 .project{padding:20px 0 0}
 .p-title{font-size:20px;line-height:30px;margin-bottom:20px}
 .p-slider,.p-title+.p-slider{margin-top:0}
 .p-back{margin-top:30px}
 .p-back a{font-size:20px}
 .tour iframe{height:420px}
 .nf h1{font-size:30px}
}
