:root{
  --ink:#0e0f0d; --char:#181a17; --slate:#262925; --line:#33372f;
  --green:#4b5b2c; --olive:#7a8f46; --accent:#e8731a; --accent-hi:#ff8a33;
  --stone:#d9d8d2; --paper:#f3f2ee; --white:#fff; --muted:#a7a99f;
  --wrap:1240px; --gut:clamp(20px,4vw,48px); --r:4px;
  --fdisp:'Saira Stencil One',Impact,sans-serif; --cond:'Barlow Condensed','Arial Narrow',sans-serif; --body:'Barlow',system-ui,sans-serif;
}
/* header */
#hdr{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--white);background:linear-gradient(180deg,rgba(14,15,13,.78),rgba(14,15,13,.35));transition:background .3s,box-shadow .3s}
#hdr.solid{background:rgba(14,15,13,.97);box-shadow:0 1px 0 var(--line),0 12px 30px -18px rgba(0,0,0,.8)}
.topstrip{overflow:hidden;max-height:36px;border-bottom:1px solid rgba(255,255,255,.08);transition:max-height .3s ease,opacity .2s}
.topstrip .wrap{display:flex;justify-content:space-between;align-items:center;height:36px;font:600 13px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.topstrip b{color:var(--olive);font-weight:700}
.topstrip a{color:var(--muted);text-decoration:none;transition:color .2s}.topstrip a:hover{color:var(--white)}
#hdr.scrolled .topstrip{max-height:0;opacity:0;border-color:transparent}
.bar{display:flex;align-items:center;height:80px;gap:28px;transition:height .3s ease}
#hdr.scrolled .bar{height:66px}
.logo{flex:none;display:block}
.logo img{height:60px;width:auto;transition:height .3s ease,transform .3s ease}
.logo:hover img{transform:rotate(-3deg)}
#hdr.scrolled .logo img{height:48px}
#hdr nav{flex:1;display:flex;justify-content:center}
#hdr nav ul{display:flex;gap:6px;list-style:none;padding:0;margin:0}
#hdr nav a{display:block;font:700 16px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82);text-decoration:none;position:relative;padding:12px 14px;border-radius:var(--r);transition:color .2s,background .2s}
#hdr nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
#hdr nav a:hover{color:var(--white);background:rgba(255,255,255,.05)}
#hdr nav a:hover::after,#hdr nav a[aria-current]::after{transform:scaleX(1)}
#hdr nav a[aria-current]{color:var(--white)}
.mnav-foot{display:none}
.hdr-act{display:flex;align-items:center;gap:10px;flex:none}
.hdr-call{position:relative;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--white);border:1.5px solid rgba(255,255,255,.3);text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .15s}
.hdr-call:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.hdr-call:hover svg{animation:ring .5s ease}
.hdr-call:active{transform:scale(.94)}
.hdr-call .tip{position:absolute;top:calc(100% + 10px);right:50%;transform:translate(50%,-4px);white-space:nowrap;font:700 15px/1 var(--cond);letter-spacing:.08em;background:var(--white);color:var(--ink);padding:9px 12px;border-radius:var(--r);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.hdr-call .tip::before{content:"";position:absolute;bottom:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-bottom-color:var(--white)}
.hdr-call:hover .tip,.hdr-call:focus-visible .tip{opacity:1;transform:translate(50%,0)}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}
.hdr-wa:hover{background:#25d366;border-color:#25d366;color:#fff}
.btn-q{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 20px;border-radius:var(--r);background:var(--accent);color:var(--ink);font:700 16px/1 var(--cond);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:background .2s,transform .15s}
.btn-q svg{transition:transform .2s}
.btn-q:hover{background:var(--accent-hi)}.btn-q:hover svg{transform:translateX(3px)}
.btn-q:active{transform:translateY(1px)}
.burger{display:none;position:relative;width:48px;height:48px;border-radius:var(--r);background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.3);color:var(--white);cursor:pointer}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:currentColor;transition:transform .3s ease,top .3s ease,opacity .2s}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px;left:19px}
.menu-open .burger span:nth-child(1){top:23px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){top:23px;left:13px;transform:rotate(-45deg)}

#qf{background:var(--ink);padding:clamp(22px,3vw,40px);border-radius:var(--r);display:grid;grid-template-columns:1fr 1fr;gap:18px}
.f{display:grid;gap:7px}.f.full{grid-column:1/-1}
#qf label{font:700 15px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:#d5d7cc}
#qf input,#qf select,#qf textarea{font:400 17px var(--body);padding:14px 14px;border-radius:var(--r);border:2px solid var(--line);background:var(--char);color:var(--white);width:100%;min-height:52px}
#qf textarea{min-height:120px;resize:vertical}
#qf input:focus,#qf select:focus,#qf textarea:focus{border-color:var(--accent);outline:none}
#qf .btn{grid-column:1/-1;justify-content:center}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{grid-column:1/-1;font-weight:600;color:var(--white);min-height:1.5em}
.form-note{grid-column:1/-1;font-size:15px;color:var(--muted)}

.cs-foot{background:var(--ink);color:#c5c7bc;padding:56px 0 100px;font-size:16px}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:36px}
.foot img{height:84px;margin-bottom:14px}
.foot h4{font:700 15px var(--cond);letter-spacing:.18em;text-transform:uppercase;color:var(--white);margin-bottom:14px}
.foot a{text-decoration:none;display:block;padding:3px 0}.foot a:hover{color:var(--accent)}
.legal{border-top:1px solid var(--line);margin-top:40px;padding-top:22px;font-size:14px;color:#8d8f85}

@media(max-width:1000px){
  .topstrip{display:none}
  .bar,#hdr.scrolled .bar{height:68px;gap:12px}
  .logo img,#hdr.scrolled .logo img{height:48px}
  .burger{display:block}
  .hdr-act{margin-left:auto}
  .hdr-call .tip{display:none}
  #hdr nav{position:fixed;inset:68px 0 0 0;z-index:1;display:flex;flex-direction:column;justify-content:space-between;background:var(--ink);padding:20px var(--gut) calc(24px + env(safe-area-inset-bottom));overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .3s ease,visibility 0s .3s}
  .menu-open #hdr nav{visibility:visible;opacity:1;transform:none;transition:opacity .25s ease,transform .3s ease}
  .menu-open #hdr{background:var(--ink)}
  #hdr nav ul{flex-direction:column;gap:0;counter-reset:n}
  #hdr nav li{counter-increment:n;opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .35s ease}
  .menu-open #hdr nav li{opacity:1;transform:none}
  .menu-open #hdr nav li:nth-child(2){transition-delay:.04s}.menu-open #hdr nav li:nth-child(3){transition-delay:.08s}.menu-open #hdr nav li:nth-child(4){transition-delay:.12s}.menu-open #hdr nav li:nth-child(5){transition-delay:.16s}
  #hdr nav ul a{display:flex;align-items:baseline;gap:16px;font:400 clamp(34px,9vw,48px)/1 var(--fdisp);letter-spacing:.01em;text-transform:none;color:var(--white);padding:18px 0;border-radius:0;border-bottom:1px solid var(--line)}
  #hdr nav ul a::before{content:"0" counter(n);font:700 13px/1 var(--cond);letter-spacing:.14em;color:var(--accent)}
  #hdr nav ul a::after{display:none}
  #hdr nav ul a:hover{background:none;color:var(--accent)}
  #hdr nav ul a[aria-current]{color:var(--accent)}
  .mnav-foot{display:grid;gap:10px;margin-top:28px;font-size:16px;color:var(--muted)}
  .mnav-foot p{margin:0}
  .mnav-foot .mmail{font:500 16px/1.4 var(--body);text-transform:none;letter-spacing:0;padding:0;color:var(--stone);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
  .mnav-foot .mrow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
  .mnav-foot .mrow a{padding:0;display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;border-radius:var(--r);font:700 16px/1 var(--cond);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1.5px solid var(--line);color:var(--white)}
  .mnav-foot .mrow a.wa{grid-column:1/-1;background:#25d366;border-color:#25d366;color:#fff}
  .mnav-foot .mrow a:last-child{background:var(--accent);border-color:var(--accent);color:var(--ink)}
  .menu-open{overflow:hidden}
  .menu-open .mbar{transform:translateY(100%)}
  .head,.specs,.about,.qgrid,.flow{grid-template-columns:1fr}
  .facts ul{grid-template-columns:1fr 1fr}.facts li{border-right:0;margin:0;padding:22px 12px 22px 0}
  .svc{grid-template-columns:1fr 1fr}.s7,.s5,.s4,.s6{grid-column:span 1;min-height:300px}.svc .card:first-child{grid-column:1/-1}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:200px}
  .stage{display:none}.step{min-height:0;opacity:1;padding:30px 0 30px 24px}.step img{display:block;margin-top:20px;border-radius:var(--r);aspect-ratio:16/10;object-fit:cover;width:100%}
  .foot{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  body{font-size:17px}
  .svc,.mosaic,.foot,#qf,.pay{grid-template-columns:1fr}.pay div{border-right:0;border-bottom:1px solid var(--line)}.pay div:first-child{border-radius:var(--r) var(--r) 0 0}.pay div:last-child{border-radius:0 0 var(--r) var(--r)}
  .t2{grid-column:auto}.tall{grid-row:auto}
  .cta .btn{width:100%;justify-content:center}
  .btn-q,.hdr-wa{display:none}
  .mbar{display:grid;grid-template-columns:54px 1fr 1.4fr;gap:8px;position:fixed;inset:auto 0 0 0;z-index:60;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(14,15,13,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);transition:transform .3s ease}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border-radius:var(--r);font:700 17px/1 var(--cond);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--white);border:1.5px solid var(--line);transition:transform .15s}
  .mbar a:active{transform:scale(.97)}
  .mbar a.wa{background:#25d366;border-color:#25d366;color:#fff}
  .mbar a:last-child{background:var(--accent);border-color:var(--accent);color:var(--ink)}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
  .row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero [data-enter]{opacity:1;transform:none}.step{opacity:1}}

/* menu footer: beat the generic #hdr nav a rule; stop Hello's pink button states */
#hdr .burger,#hdr .burger:hover,#hdr .burger:focus,#hdr .burger:active{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.3);color:var(--white);outline:0}
#hdr .burger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:1000px){
  #hdr nav .mnav-foot a.mmail{display:inline;font:500 16px/1.4 var(--body);text-transform:none;letter-spacing:0;padding:0;color:var(--stone);background:none;border:0}
  #hdr nav .mnav-foot .mrow a{padding:0 16px;display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;line-height:1;border-radius:var(--r)}
  #hdr nav .mnav-foot .mrow a svg{flex:none;display:block}
  #hdr nav .mnav-foot .mrow a::after{display:none}
}
.rig{background:var(--ink);color:var(--white)}
.rig .eyebrow{color:var(--accent)}
.rigstage{position:relative;aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;background:#d0d0d5;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.rigstage:active{cursor:grabbing}
.rigframes img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s;pointer-events:none;-webkit-user-drag:none}
.rigframes img.on{opacity:1}
.righint{position:absolute;left:16px;bottom:16px;background:rgba(14,15,13,.86);color:var(--white);font:700 16px/1 var(--cond);letter-spacing:.12em;text-transform:uppercase;padding:12px 16px;border-radius:var(--r);transition:opacity .3s}
.righint.gone{opacity:0}
.riglive{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.rigbar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px;flex-wrap:wrap}
.rigctl{min-width:52px;height:52px;padding:0 16px;border:2px solid rgba(255,255,255,.45);background:transparent;color:var(--white);font:700 20px/1 var(--cond);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);cursor:pointer;transition:transform .15s,background .15s,color .15s}
.rigctl:hover{background:var(--white);color:var(--ink);transform:translateY(-2px)}
.rigctl:active{transform:translateY(1px)}
.rigdots{display:flex;gap:2px}
.rigdot{width:30px;height:44px;background:none;border:0;cursor:pointer;position:relative}
.rigdot::before{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:rgba(255,255,255,.35);transition:background .2s,transform .2s}
.rigdot:hover::before{background:rgba(255,255,255,.75)}
.rigdot[aria-current="true"]::before{background:var(--accent);transform:scale(1.25)}
@media(max-width:640px){.rigstage{aspect-ratio:4/3}.rigframes img{object-fit:cover;object-position:center}.rigdot{width:26px}}
body.cs *,body.cs *::before,body.cs *::after{box-sizing:border-box}
.mbar{display:none}
/* ===== base ===== */
html{scroll-behavior:smooth;scroll-padding-top:90px}
body.cs{font:400 18px/1.6 var(--body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0}
body.cs .elementor img{display:block;max-width:100%;height:auto}
body.cs a{color:inherit}
body.cs :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.cs .skip{position:absolute;left:12px;top:-60px;background:var(--accent);color:var(--ink);padding:10px 16px;font-weight:600;z-index:100}
.cs .skip:focus{top:12px}
/* Elementor defaults reset: spacing lives in this sheet unless set in the editor */
.cs .elementor .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--min-height:0}
.cs .elementor .elementor-widget:not(:last-child){margin-block-end:0}
.cs .elementor .elementor-widget-image img{width:100%}
.cs .wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);width:100%}
.cs .e-con.wrap{padding-left:var(--gut);padding-right:var(--gut)}

/* ===== type ===== */
.cs .elementor-heading-title{color:inherit;font-family:var(--cond);text-transform:uppercase;line-height:.98;letter-spacing:.01em;font-weight:800}
.cs h1.elementor-heading-title{font-family:var(--fdisp);font-weight:400;font-size:clamp(40px,6.2vw,92px);line-height:1}
.cs h2.elementor-heading-title{font-size:clamp(38px,5vw,68px)}
.cs h3.elementor-heading-title{font-size:clamp(24px,2.2vw,30px);line-height:1.05}
.cs .eyebrow .elementor-heading-title{font:700 15px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:#a84a06;display:flex;gap:12px;align-items:center}
.cs .eyebrow .elementor-heading-title::before{content:"";width:28px;height:3px;background:currentColor;flex:none}
.cs .eyebrow{margin-bottom:18px}
.cs .dark .eyebrow .elementor-heading-title{color:var(--accent)}
.cs .lede{font-size:clamp(18px,1.5vw,21px);max-width:60ch}
.cs .elementor-widget-text-editor p{margin:0}
.cs .elementor-widget-text-editor p+p{margin-top:16px}

/* ===== buttons ===== */
.cs .cs-btn .elementor-button{display:inline-flex;align-items:center;gap:10px;font:700 18px/1 var(--cond);letter-spacing:.08em;text-transform:uppercase;padding:18px 28px;border-radius:var(--r);border:2px solid var(--accent);background:var(--accent);color:var(--ink);min-height:54px;transition:transform .15s,background .15s,border-color .15s,color .15s}
.cs .cs-btn .elementor-button:hover{background:var(--accent-hi);border-color:var(--accent-hi);color:var(--ink);transform:translateY(-2px)}
.cs .cs-btn .elementor-button:active{transform:translateY(1px)}
.cs .cs-btn.ghost .elementor-button{background:rgba(14,15,13,.5);color:var(--white);border-color:rgba(255,255,255,.55)}
.cs .cs-btn.ghost .elementor-button:hover{background:var(--white);color:var(--ink);border-color:var(--white)}
.cs .cta{--flex-direction:row;--flex-wrap:wrap;--gap:14px;--row-gap:14px;--column-gap:14px;flex-direction:row;flex-wrap:wrap;gap:14px}

/* ===== sections ===== */
.cs .sec{padding:clamp(72px,10vw,128px) 0}
.cs .dark{background:var(--ink);color:var(--white)}
.cs .char{background:var(--char);color:var(--white)}
.cs .head{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.cs .head.one{grid-template-columns:1fr}

/* hero */
.cs .hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;background-color:var(--ink);background-position:center 62%;background-size:cover;color:var(--white);isolation:isolate}
.cs .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,15,13,.72) 0%,rgba(14,15,13,.35) 32%,rgba(14,15,13,.78) 100%),linear-gradient(90deg,rgba(14,15,13,.7),rgba(14,15,13,0) 70%);z-index:-1}
.cs .hero>.wrap{padding-top:140px;padding-bottom:clamp(40px,7vh,84px)}
.cs .hero .eyebrow .elementor-heading-title{color:var(--accent);background:rgba(14,15,13,.82);padding:10px 14px;width:fit-content;border-radius:var(--r)}
.cs .hero h1.elementor-heading-title{max-width:13ch}
.cs .hero .h1w{margin-bottom:26px}
.cs .hero h1 em{font-style:normal;color:var(--accent)}
.cs .hero .lede{color:#e6e6df;margin-bottom:34px}
.cs .hero .enter{opacity:0;transform:translateY(18px);animation:csenter .7s cubic-bezier(.2,.7,.2,1) forwards}
.cs .hero .enter2{animation-delay:.12s}.cs .hero .enter3{animation-delay:.24s}.cs .hero .enter4{animation-delay:.36s}
@keyframes csenter{to{opacity:1;transform:none}}
body.elementor-editor-active .hero .enter{opacity:1;transform:none;animation:none}

/* facts */
.cs .facts{background:var(--ink);color:var(--white);border-top:4px solid var(--green)}
.cs .facts>.wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.cs .fact{padding:30px 24px 30px 0;border-right:1px solid var(--line);margin-right:24px}
.cs .fact:last-child{border:0;margin:0}
.cs .fact .elementor-heading-title{font:800 clamp(34px,3.6vw,50px)/1 var(--cond);text-transform:uppercase;color:var(--white)}
.cs .fact .elementor-widget-text-editor{color:var(--muted);font-size:16px}

/* service cards */
.cs .svc{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.cs .card{position:relative;overflow:hidden;border-radius:var(--r);background:var(--ink);color:var(--white);min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .25s}
.cs .card:hover{transform:translateY(-2px)}
.cs .card .card-img{position:absolute;inset:0;margin:0}
.cs .card .card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cs .card:hover .card-img img{transform:scale(1.03)}
.cs .card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,15,13,0) 35%,rgba(14,15,13,.92));pointer-events:none}
.cs .card .card-body{position:relative;z-index:1;padding:26px 28px}
.cs .card .elementor-widget-text-editor{font-size:16px;color:#dcdcd4;margin-top:8px;max-width:42ch}
.cs .s7{grid-column:span 7;min-height:440px}.cs .s5{grid-column:span 5;min-height:440px}.cs .s4{grid-column:span 4}.cs .s6{grid-column:span 6}

/* process */
.cs .flow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start;margin-top:48px}
.cs .step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;opacity:.78;transition:opacity .35s;border-left:3px solid var(--line);padding-left:32px}
.cs .step.on{opacity:1;border-color:var(--accent)}
.cs .step .num .elementor-heading-title{font:400 52px/1 var(--fdisp);color:#a9c062;margin-bottom:14px}
.cs .step .elementor-widget-text-editor{color:#cfd0c7;max-width:44ch;margin-top:14px}
.cs .step .elementor-widget-image{display:none}
.cs .stage{position:sticky;top:104px;height:calc(100vh - 150px);max-height:680px;border-radius:var(--r);overflow:hidden;background:var(--ink)}
.cs .stage .elementor-widget-image{position:absolute;inset:0;opacity:0;transition:opacity .5s}
.cs .stage .elementor-widget-image.on{opacity:1}
.cs .stage img{width:100%;height:100%;object-fit:cover}
body.elementor-editor-active .cs .step{opacity:1}

/* specs */
.cs .specs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px)}
.cs .table{border-top:3px solid var(--ink)}
.cs .row{padding:20px 0;border-bottom:1px solid var(--stone)}
.cs .row .elementor-heading-title{font:800 26px/1.05 var(--cond);text-transform:uppercase}
.cs .row .elementor-widget-text-editor{color:#4a4d45;font-size:16px;margin-top:4px}
.cs .pay{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px}
.cs .pay>.e-con{background:var(--ink);color:var(--white);padding:22px 20px;border-right:1px solid var(--line)}
.cs .pay>.e-con:first-child{border-radius:var(--r) 0 0 var(--r)}.cs .pay>.e-con:last-child{border-radius:0 var(--r) var(--r) 0;border:0}
.cs .pay .elementor-heading-title{font:800 44px/1 var(--cond);color:var(--accent)}
.cs .pay .elementor-widget-text-editor{font-size:15px;color:#cfd0c7;line-height:1.35;margin-top:6px}
.cs .note{font-size:15px;color:#575a52;margin-top:14px}

/* gallery */
.cs .mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:12px}
.cs .mosaic .elementor-widget-image{overflow:hidden;border-radius:var(--r);background:var(--slate);height:100%}
.cs .mosaic img{width:100%;height:100%!important;object-fit:cover;transition:transform .5s}
.cs .mosaic .elementor-widget-image:hover img{transform:scale(1.03)}
.cs .mosaic .t2{grid-column:span 2}
.cs .gallery .lede{color:#cfd0c7}

/* reels */
.cs .reels{display:grid;grid-template-columns:repeat(2,1fr);max-width:760px;margin:0 auto;gap:16px;width:100%}
.cs .reels .elementor-wrapper{aspect-ratio:540/1160!important;max-height:78vh;border-radius:var(--r);overflow:hidden;background:var(--ink)}
.cs .reels video{width:100%;height:100%;object-fit:cover}

/* about */
.cs .about{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,6vw,96px);align-items:center}
.cs .about .elementor-widget-image img{border-radius:var(--r);aspect-ratio:4/3;object-fit:cover}
.cs .about h2.elementor-heading-title{margin-bottom:24px}
.cs .sig{margin-top:28px;border-top:4px solid var(--green);padding-top:14px}
.cs .sig .elementor-heading-title{font:700 20px/1.2 var(--cond);letter-spacing:.06em;text-transform:uppercase}
.cs .sig .elementor-widget-text-editor{font:500 16px var(--body);color:#575a52}

/* faq (Elementor Toggle widget) */
.cs .faqs{background:var(--white)}
.cs .faq{max-width:900px;margin:0 auto;width:100%;border-top:3px solid var(--ink)}
.cs .faq .elementor-toggle-item{border-bottom:1px solid var(--stone)}
.cs .faq .elementor-tab-title{border:0!important;padding:24px 0!important;display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer}
.cs .faq .elementor-toggle-title{font:800 clamp(22px,2.4vw,28px)/1.1 var(--cond);text-transform:uppercase;color:var(--ink);transition:color .2s}
.cs .faq .elementor-tab-title:hover .elementor-toggle-title{color:var(--green)}
.cs .faq .elementor-toggle-icon{order:2;font:400 34px/1 var(--body);color:var(--accent);width:auto!important}
.cs .faq .elementor-toggle-icon svg{fill:var(--accent);width:22px;height:22px}
.cs .faq .elementor-tab-content{border:0!important;padding:0 48px 26px 0!important;color:#3d3f39;max-width:70ch}

/* quote */
.cs .quote{background:var(--green);color:var(--white)}
.cs .quote .eyebrow .elementor-heading-title{color:#ffd9b8}
.cs .qgrid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,6vw,96px)}
.cs .qgrid h2.elementor-heading-title{margin-bottom:22px}
.cs .contact-list{margin-top:30px;display:grid;gap:18px}
.cs .contact-list .elementor-icon-list-items{display:grid;gap:18px}
.cs .cl small{display:block;font:500 15px var(--body);color:#dfe5cf;margin-bottom:2px}
.cs .cl .elementor-widget-text-editor a,.cs .cl .big{text-decoration:none;font:800 clamp(26px,3vw,36px)/1.1 var(--cond);letter-spacing:.02em;text-transform:uppercase;border-bottom:2px solid transparent;transition:border-color .2s}
.cs .cl .elementor-widget-text-editor a:hover{border-color:var(--accent)}
.cs .ctaflex{--flex-direction:row;--flex-wrap:wrap;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cs .cta-band{padding:clamp(56px,7vw,88px) 0}
.cs .cta-band h2.elementor-heading-title{margin-bottom:12px}
.cs .quote .cs-btn.ghost .elementor-button{background:transparent}

/* page head */
.cs .pagehead{background:var(--char);color:var(--white);padding:170px 0 52px;border-bottom:4px solid var(--green)}
.cs .pagehead h1.elementor-heading-title{font-size:clamp(40px,6vw,84px)}
.cs .pagehead .eyebrow .elementor-heading-title{color:var(--accent)}

/* ===== responsive ===== */
@media(max-width:1000px){
  .cs .head,.cs .specs,.cs .about,.cs .qgrid,.cs .flow{grid-template-columns:1fr}
  .cs .facts>.wrap{grid-template-columns:1fr 1fr}.cs .fact{border-right:0;margin:0;padding:22px 12px 22px 0}
  .cs .svc{grid-template-columns:1fr 1fr}.cs .s7,.cs .s5,.cs .s4,.cs .s6{grid-column:span 1;min-height:300px}.cs .svc>.card:first-child{grid-column:1/-1}
  .cs .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:200px}
  .cs .stage{display:none}.cs .step{min-height:0;opacity:1;padding:30px 0 30px 24px}
  .cs .step .elementor-widget-image{display:block;margin-top:20px}.cs .step .elementor-widget-image img{border-radius:var(--r);aspect-ratio:16/10;object-fit:cover}
  .cs .reels{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(max-width:640px){
  body.cs{font-size:17px}
  .cs .svc,.cs .mosaic,.cs .pay{grid-template-columns:1fr}
  .cs .pay>.e-con{border-right:0;border-bottom:1px solid var(--line)}.cs .pay>.e-con:first-child{border-radius:var(--r) var(--r) 0 0}.cs .pay>.e-con:last-child{border-radius:0 0 var(--r) var(--r)}
  .cs .mosaic .t2{grid-column:auto}
  .cs .cta .cs-btn,.cs .cta .cs-btn .elementor-button{width:100%;justify-content:center}
  .cs .reels{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.cs .reels>*{flex:0 0 72%;scroll-snap-align:center}
  .cs .pagehead{padding:120px 0 40px}
}
@media(prefers-reduced-motion:reduce){.cs *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cs .hero .enter{opacity:1;transform:none}.cs .step{opacity:1}}
/* widgets inside row containers size to content */
.cs .cta>.elementor-widget,.cs .ctaflex>.e-con,.cs .head>.elementor-widget{--container-widget-width:auto;width:auto;max-width:none}
.cs .cta>.elementor-widget{flex:0 0 auto}
.cs .elementor-widget.lede{max-width:60ch}
.cs .e-con>.elementor-widget.lede,.cs .e-con>.e-con>.elementor-widget.lede{max-width:60ch}
.cs .stage img,.cs .card .card-img img,.cs .mosaic img{height:100%!important}
.cs .card .card-img,.cs .card .card-img>*{height:100%}
.cs .stage .elementor-widget-image>*{height:100%}
.admin-bar #hdr{top:32px}
@media(max-width:782px){.admin-bar #hdr{top:46px}}
/* plain-markup blocks from shortcodes (360 viewer) */
.cs .rig h2{font:800 clamp(38px,5vw,68px)/.98 var(--cond);text-transform:uppercase;letter-spacing:.01em;margin:0}
.cs .rig .eyebrow{font:700 15px/1 var(--cond);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;display:flex;gap:12px;align-items:center}
.cs .rig .eyebrow::before{content:"";width:28px;height:3px;background:currentColor}
.cs .rig .lede{margin:0}
.cs .rig .wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.cs .rig .rigframes img{height:100%}
/* form submit (Hello theme styles plain buttons; restore the site button) */
.cs #qf .btn{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 18px/1 var(--cond);letter-spacing:.08em;text-transform:uppercase;padding:18px 28px;border-radius:var(--r);border:2px solid var(--accent);background:var(--accent);color:var(--ink);cursor:pointer;min-height:54px;transition:transform .15s,background .15s}
.cs #qf .btn:hover{background:var(--accent-hi);border-color:var(--accent-hi);transform:translateY(-2px)}
.cs #qf .btn:active{transform:translateY(1px)}
.cs #qf .btn:disabled{opacity:.6;cursor:wait}
.cs #qf input,.cs #qf select,.cs #qf textarea{background:var(--char);color:var(--white);border:2px solid var(--line)}
.cs #qf input:focus,.cs #qf select:focus,.cs #qf textarea:focus{border-color:var(--accent);outline:none}
.cs #qf p{margin:0}
/* hero spacing: margins on the containers (Elementor resets widget margins) */
.cs .hero .e-con.h1w{margin-bottom:26px}
.cs .hero .e-con.enter3{margin-bottom:34px}
.cs .hero .e-con.enter:first-child{margin-bottom:18px}
/* fact strip: space on both sides of each hairline */
.cs .facts .fact{margin:0;padding:30px 28px}
.cs .facts .fact:first-child{padding-left:0}
.cs .facts .fact:last-child{padding-right:0}
@media(max-width:1000px){.cs .facts .fact{padding:22px 20px;border-right:0}.cs .facts .fact:nth-child(odd){padding-left:0;border-right:1px solid var(--line)}.cs .facts .fact:nth-child(-n+2){border-bottom:1px solid var(--line)}}
.cs .facts>.wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.cs .facts .fact{width:auto;max-width:none}@media(max-width:1000px){.cs .facts>.wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ===== footer (ported from Drive Green, Concrete Soldiers colours) ===== */
.cs-foot{--fmut:#a7a99f;--fglow:var(--accent);--fb:58%;--px:50%;--py:50%;--g:0;position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:var(--fmut);padding:0 0 calc(env(safe-area-inset-bottom));font-size:15px;border-top:4px solid var(--green)}
.cs-foot .footer-sky{position:absolute;inset:0;z-index:0;pointer-events:none}
.cs-foot>*:not(.footer-sky){position:relative;z-index:1}
.cs-foot .fs-beam{position:absolute;inset:0;filter:blur(26px);background:linear-gradient(118deg,transparent calc(var(--fb) - 11%),rgba(122,143,70,.08) calc(var(--fb) - 5%),rgba(122,143,70,.26) var(--fb),rgba(122,143,70,.07) calc(var(--fb) + 4%),transparent calc(var(--fb) + 9%))}
.cs-foot .fs-glow{position:absolute;inset:0;opacity:var(--g);background:radial-gradient(circle 360px at var(--px) var(--py),rgba(232,115,26,.12),transparent 70%)}
.cs-foot .footer-block{padding:clamp(48px,6vw,80px) 0 24px}
.cs-foot .footer-grid{display:grid;grid-template-columns:1.5fr 1.1fr 1fr 1.1fr;gap:40px}
.cs-foot .footer-brand img{height:84px;width:auto;margin:0 0 20px;display:block;transition:transform .3s ease}
.cs-foot .footer-brand a:hover img{transform:rotate(-3deg)}
.cs-foot .footer-brand p{font-size:15px;line-height:1.65;max-width:34em;margin:0}
.cs-foot .footer-heading{font:700 15px/1 var(--cond);letter-spacing:.18em;text-transform:uppercase;color:var(--white);margin:0 0 18px}
.cs-foot .footer-list,.cs-foot .footer-hours{list-style:none;margin:0;padding:0}
.cs-foot .footer-list li{padding:6px 0;font-size:15px}
.cs-foot .footer-list a{color:var(--fmut);text-decoration:none;transition:color .2s}
.cs-foot .footer-list a:hover{color:var(--fglow)}
.cs-foot .footer-contact li:first-child a{color:var(--white);font:800 22px/1.1 var(--cond);letter-spacing:.02em}
.cs-foot .footer-hours li{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.cs-foot .footer-hours li span:first-child{color:#d5d7cc}
.cs-foot .footer-hours li span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.cs-foot .copyright{border-top:1px solid var(--line);padding:22px 0}
.cs-foot .copyright-in{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
.cs-foot .copyright-in p{margin:0;font-size:14px;color:#8d8f85}
.cs-foot .copyright-in nav{display:flex;gap:22px;flex-wrap:wrap}
.cs-foot .copyright-in nav a{font-size:14px;color:var(--fmut);text-decoration:none;transition:color .2s}
.cs-foot .copyright-in nav a:hover{color:var(--fglow)}
.cs-foot .made-by{display:flex;align-items:center;gap:6px}
.cs-foot .made-by a{color:#d5d7cc;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.cs-foot .made-by a:hover{color:var(--fglow);border-color:var(--fglow)}
.cs-foot .made-by .heart{flex:none;transition:transform .3s}
.cs-foot .made-by:hover .heart{transform:scale(1.25)}
.cs-foot .fw-word-wrap{position:relative;overflow:hidden;padding:0 var(--gut);max-width:var(--wrap);margin:clamp(16px,3vw,40px) auto 0}
.cs-foot .fw-word{line-height:1;white-space:nowrap;user-select:none}
.cs-foot .fw-word span{display:inline-block;font-family:var(--fdisp);font-weight:400;text-transform:uppercase;color:transparent;-webkit-background-clip:text;background-clip:text;background-repeat:no-repeat;--wb:58%;--wx:50%;--wy:50%;--wg:0;
 background-image:radial-gradient(circle 320px at var(--wx) var(--wy),rgba(232,115,26,calc(var(--wg)*.85)),transparent 70%),linear-gradient(118deg,transparent calc(var(--wb) - 9%),rgba(169,192,98,.55) calc(var(--wb) - 1.5%),rgba(169,192,98,.75) var(--wb),rgba(169,192,98,.2) calc(var(--wb) + 3.5%),transparent calc(var(--wb) + 8%)),linear-gradient(180deg,#4b5b2c 0%,#0e0f0d 100%);
 transform:translateY(85%);transition:transform 1.3s cubic-bezier(.16,.84,.2,1) .15s}
.cs-foot.in .fw-word span{transform:none}
.cs-foot .fw-word-wrap:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;pointer-events:none;background:linear-gradient(180deg,transparent,var(--ink))}
@media(max-width:1000px){.cs-foot .footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.cs-foot .footer-grid{grid-template-columns:1fr;gap:32px}.cs-foot .copyright-in{flex-direction:column;align-items:flex-start}.cs-foot{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){.cs-foot .fw-word span{transform:none;transition:none}}
/* ===== gallery lightbox: tile grows into the viewer; drag down (or scroll down) to drop it back ===== */
.cs .mosaic .elementor-widget-image{cursor:zoom-in}
.cs .mosaic .elementor-widget-image:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.lb{position:fixed;inset:0;z-index:200;display:none;color:var(--white);touch-action:none;--bg:1}
.lb.open{display:block}
.lb-bg{position:absolute;inset:0;background:rgba(10,11,9,.94);opacity:var(--bg);backdrop-filter:blur(6px)}
.lb-bg::after{content:"";position:absolute;inset:0;opacity:.5;background:repeating-linear-gradient(-45deg,transparent 0 22px,rgba(232,115,26,.035) 22px 24px)}
.lb-stage{position:absolute;inset:84px 72px 132px;display:grid;place-items:center}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:var(--r);box-shadow:0 30px 80px -30px #000;will-change:transform;user-select:none;-webkit-user-drag:none;transform-origin:center}
.lb-top{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(16px,4vw,40px);opacity:var(--bg)}
.lb-count{font:400 clamp(30px,3.4vw,44px)/1 var(--fdisp);letter-spacing:.02em}
.lb-count b{color:var(--accent);font-weight:400}
.lb-count small{font-size:.5em;color:var(--muted);margin-left:6px}
.lb-close{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:rgba(14,15,13,.6);color:var(--white);font:400 28px/1 var(--body);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.lb-close:hover{background:var(--accent);border-color:var(--accent);color:var(--ink);transform:rotate(90deg)}
.lb-nav{position:absolute;top:50%;width:56px;height:56px;margin-top:-28px;border-radius:var(--r);border:2px solid rgba(255,255,255,.4);background:rgba(14,15,13,.6);color:var(--white);font:700 26px/1 var(--cond);cursor:pointer;opacity:var(--bg);transition:background .2s,color .2s,transform .15s}
.lb-nav:hover{background:var(--white);color:var(--ink)}.lb-nav:active{transform:scale(.94)}
.lb-prev{left:clamp(8px,2vw,20px)}.lb-next{right:clamp(8px,2vw,20px)}
.lb-foot{position:absolute;left:0;right:0;bottom:0;padding:0 clamp(16px,4vw,40px) 22px;opacity:var(--bg);display:grid;gap:14px;justify-items:center}
.lb-cap{font:700 15px/1.3 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:#d5d7cc;text-align:center;min-height:1.3em}
.lb-ticks{display:flex;gap:6px}
.lb-ticks button{width:34px;height:20px;border:0;background:none;padding:0;cursor:pointer;position:relative}
.lb-ticks button::before{content:"";position:absolute;left:0;right:0;top:9px;height:3px;background:rgba(255,255,255,.22);transition:background .25s,height .25s,top .25s}
.lb-ticks button:hover::before{background:rgba(255,255,255,.6)}
.lb-ticks button[aria-current="true"]::before{background:var(--accent);height:5px;top:8px}
.lb-hint{font:700 12px/1 var(--cond);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.lb-hint::before{content:"";width:2px;height:14px;background:linear-gradient(var(--accent),transparent);animation:lbhint 1.6s ease-in-out infinite}
@keyframes lbhint{0%{transform:translateY(-4px);opacity:0}50%{opacity:1}100%{transform:translateY(6px);opacity:0}}
.lb-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
html.lb-lock{overflow:hidden}
@media(max-width:640px){.lb-stage{inset:76px 0 120px}.lb-nav{display:none}.lb-img{border-radius:0}.lb-ticks button{width:22px}}
@media(prefers-reduced-motion:reduce){.lb-hint::before{animation:none}}
.admin-bar .lb-top{top:32px}@media(max-width:782px){.admin-bar .lb-top{top:46px}}
/* centre the photo inside the stage on every screen size */
.lb-stage{display:flex;align-items:center;justify-content:center}
.lb-img{max-width:calc(100vw - 144px);max-height:calc(100vh - 216px);max-height:calc(100svh - 216px);object-fit:contain}
@media(max-width:640px){.lb-img{max-width:100vw;max-height:calc(100svh - 196px)}}
.lb-hint{display:none}
/* Hello theme paints focused buttons pink; keep ours on brand */
.lb button:focus{background:rgba(14,15,13,.6);color:var(--white);outline:none}
.lb button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.lb .lb-ticks button,.lb .lb-ticks button:focus{background:none}
.lb .lb-close:hover,.lb .lb-close:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--ink)}
