:root{--red:#B00000;--red2:#8A0000;--blk:#0b0b0b;--g:#f5f5f5}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--blk);line-height:1.65;padding-bottom:60px}
h1,h2,h3,h4,.wm,.btn,.top,.eyebrow{font-family:Montserrat,Arial,sans-serif}
img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.draftbar{background:#ffd54a;color:#111;text-align:center;font-size:12px;padding:4px;font-weight:600}
.hdr{position:sticky;top:0;z-index:50;background:rgba(11,11,11,.96);color:#fff;transition:box-shadow .3s}
.scrolled .hdr{box-shadow:0 6px 24px rgba(0,0,0,.35)}
.hin{max-width:1300px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:74px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.logoph{border:1.5px dashed #888;color:#aaa;font-size:10px;padding:7px 9px;letter-spacing:.1em}
.wm{font-weight:900;font-size:21px;letter-spacing:.14em;white-space:nowrap;padding:0 4px}.wm b{color:var(--red)}
.mainnav{display:flex;align-items:center;gap:4px;height:100%}
.mi{position:relative;height:100%;display:flex;align-items:center}
.top{color:#fff;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:0 14px;height:100%;display:flex;align-items:center;border-bottom:3px solid transparent}
.mi:hover .top{border-bottom-color:var(--red)}
.acc{display:none}
.mega{position:absolute;top:100%;left:0;min-width:280px;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.25);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;border-top:3px solid var(--red)}
.mi.has:hover .mega,.mi.has:focus-within .mega{opacity:1;visibility:visible;transform:none}
.megain{padding:18px 22px}.megain .mt{margin:0 0 8px;font:800 11px Montserrat;letter-spacing:.15em;text-transform:uppercase;color:var(--red)}
.megain a{display:block;color:var(--blk);text-decoration:none;padding:7px 0;font-size:14px;border-bottom:1px solid #eee}.megain a:hover{color:var(--red)}
.cta{display:flex;align-items:center;gap:14px;margin-left:12px}.tel{color:#fff;font-weight:700;text-decoration:none;font-size:14px}
.burger{display:none;background:none;border:0;color:#fff;font-size:28px;cursor:pointer}
.hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;background-size:cover;background-position:center;color:#fff;padding:120px 0 80px}
.hero h1{font-weight:900;text-transform:uppercase;font-size:clamp(34px,6vw,76px);line-height:1.02;max-width:950px;margin:.2em 0 .5em;animation:up 1s ease both}
@keyframes up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.hero .confirm{font-size:.35em;vertical-align:middle}
.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:800;color:var(--red);margin:0}
.hero .eyebrow{color:#fff;border-left:4px solid var(--red);padding-left:10px}
.hbtn{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--blk);color:#fff;padding:15px 26px;text-decoration:none;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--blk);transition:.2s;cursor:pointer}
.btn:hover{transform:translateY(-2px)}.btn.red:hover,.chatbtn:hover{background:var(--red2);border-color:var(--red2)}.btn.red{background:var(--red);border-color:var(--red)}.btn.ghost{background:transparent;border-color:#fff}
.btn.sm{padding:9px 16px;font-size:11px}
.illus{position:absolute;right:12px;bottom:12px;background:rgba(0,0,0,.72);color:#fff;font-size:11px;padding:3px 8px;letter-spacing:.05em;z-index:2}
.stats{background:var(--red);color:#fff}.sg{display:grid;grid-template-columns:repeat(4,1fr)}
.sg div{padding:34px 20px;border-right:1px solid rgba(255,255,255,.3)}.sg div:last-child{border:0}
.sg b{display:block;font:900 clamp(20px,2.4vw,30px) Montserrat;text-transform:uppercase}.sg span{font-size:14px;opacity:.9}
.sec{padding:90px 0}.dark{background:var(--blk);color:#fff}
.big{font-weight:900;text-transform:uppercase;font-size:clamp(30px,4.4vw,56px);line-height:1.05;margin:.2em 0 .6em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.card{background:#fff;color:var(--blk);text-decoration:none;border:1px solid #eee;transition:.3s;overflow:hidden}
.card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.12)}
.cimg{position:relative;aspect-ratio:4/3;overflow:hidden}.cimg img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.card:hover .cimg img{transform:scale(1.06)}
.cb{padding:20px 22px 24px;border-top:4px solid var(--red)}.cb h3{margin:6px 0 10px;font-size:18px;text-transform:uppercase}
.ico{font-size:24px}.more{font-weight:700;font-size:13px;color:var(--red)}
.split{display:grid;grid-template-columns:1fr 1fr;min-height:520px;background:var(--blk);color:#fff}
.split.rev{background:#fff;color:var(--blk)}.split.rev .media{order:2}
.media{position:relative;margin:0}.media img{width:100%;height:100%;object-fit:cover}
.stext{padding:70px 7vw;display:flex;flex-direction:column;justify-content:center}.stext .btn{align-self:flex-start}
.ba{position:relative;max-width:1000px;aspect-ratio:16/9;overflow:hidden;margin:20px 0}
.ba>img{width:100%;height:100%;object-fit:cover}.bab{position:absolute;inset:0;width:50%;overflow:hidden;border-right:3px solid #fff}
.bab img{width:min(1000px,calc(100vw - 48px));max-width:none;height:100%;object-fit:cover}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.tag{position:absolute;top:14px;background:var(--red);color:#fff;font:800 11px Montserrat;letter-spacing:.15em;padding:5px 10px;text-transform:uppercase}.tag.l{left:14px}.tag.r{right:14px;background:#000}
.content{max-width:900px}
.content h2{font-weight:900;text-transform:uppercase;font-size:clamp(24px,3vw,34px);line-height:1.15;margin:64px 0 16px;padding-top:18px;border-top:4px solid var(--red)}
.content h3{text-transform:uppercase;font-size:17px;letter-spacing:.03em;margin:30px 0 6px}
.small{font-size:13px;color:#666}.dark .small{color:#bbb}
.confirm{background:#fff3cd;color:#6b3a00;font-weight:600;padding:0 4px;font-family:Inter}
form.lead{background:var(--g);padding:28px;border-top:5px solid var(--red);display:grid;gap:12px;margin:24px 0}
form.lead label{display:grid;font-weight:600;font-size:14px}form.lead input,form.lead select,form.lead textarea{padding:12px;border:1px solid #ccc;font:inherit}
form.lead .chk{display:block;font-weight:400;font-size:13px}.formnote{margin:0;font-size:13px;color:#8a4b00}
footer{background:var(--blk);color:#bbb;padding:70px 0 40px;font-size:14px;border-top:6px solid var(--red)}footer a{color:#fff;text-decoration:none}
.fbrand{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.fbrand p{flex-basis:100%}.fbrand .wm{color:#fff}
.fcols{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin:36px 0;padding:30px 0;border-top:1px solid #333;border-bottom:1px solid #333}
.fcols h4{color:#fff;text-transform:uppercase;letter-spacing:.15em;font-size:12px;margin:0 0 12px}.fcols a{display:block;padding:4px 0;color:#ccc;font-size:13px}
.draftnote{color:#ffd54a;font-size:12px}
.js .reveal,.js .card,.js .split{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.js .in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal,.js .card,.js .split{opacity:1;transform:none;transition:none}.hero h1{animation:none}}
.mbar{display:none}
.chatbtn{position:fixed;right:20px;bottom:20px;z-index:60;background:var(--red);color:#fff;border:0;border-radius:40px;padding:14px 20px;font:800 13px Montserrat;box-shadow:0 10px 30px rgba(0,0,0,.3);cursor:pointer}
.chatbox{position:fixed;right:20px;bottom:84px;z-index:61;width:360px;max-width:calc(100vw - 24px);max-height:75vh;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.35);display:none;flex-direction:column;border-top:5px solid var(--red)}
.chatbox.open{display:flex}.chead{display:flex;justify-content:space-between;align-items:center;background:var(--blk);color:#fff;padding:12px 16px;font-family:Montserrat}
.chead button{background:none;border:0;color:#fff;font-size:24px;cursor:pointer}
.cnote{font-size:11px;color:#666;padding:8px 14px;background:#fafafa;border-bottom:1px solid #eee}
.clog{flex:1;overflow:auto;padding:12px 14px;min-height:140px}
.msg{padding:9px 12px;margin:6px 0;font-size:14px;max-width:88%}.msg.bot{background:var(--g)}.msg.me{background:var(--blk);color:#fff;margin-left:auto}.msg a{color:var(--red)}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}.chips button{border:1px solid #ccc;background:#fff;padding:5px 10px;font-size:12px;cursor:pointer}
.cform{display:flex;gap:6px;padding:8px 14px}.cform input{flex:1;padding:9px;border:1px solid #ccc}
.cfall{display:flex;gap:6px;padding:0 14px 14px}
@media(max-width:1020px){
 .burger{display:block}
 .mainnav{display:none;position:fixed;top:100px;left:0;right:0;bottom:56px;background:var(--blk);flex-direction:column;align-items:stretch;overflow:auto;padding:10px 0;height:auto}
 .menu .mainnav{display:flex}
 .mi{height:auto;flex-wrap:wrap;border-bottom:1px solid #222}.top{height:auto;padding:16px 24px;flex:1}
 .acc{display:block;background:none;border:0;color:#fff;font-size:24px;padding:0 24px;cursor:pointer}
 .mega{position:static;opacity:1;visibility:visible;transform:none;display:none;width:100%;box-shadow:none;background:#161616;border:0}
 .mi.has:hover .mega,.mi.has:focus-within .mega{display:none}.mi.open .mega,.mi.open:hover .mega{display:block}
 .megain a{color:#ddd;border-color:#262626;padding:10px 0}
 .cta{padding:20px 24px;margin:0}
 .sg{grid-template-columns:1fr 1fr}.sg div:nth-child(2){border-right:0}
 .split,.split.rev{grid-template-columns:1fr}.split.rev .media{order:0}.media{height:300px}
 .fcols{grid-template-columns:1fr 1fr}
 .mbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:55}
 .mbar a{flex:1;text-align:center;padding:16px;background:var(--blk);color:#fff;font:800 13px Montserrat;text-decoration:none;text-transform:uppercase}.mbar a.r{background:var(--red)}
 .chatbtn{bottom:70px;right:12px;padding:12px 16px}.chatbtn span{display:none}.chatbox{bottom:130px;right:12px}
 .hero{min-height:min(62vh,520px)}
}
.grevs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:24px 0}
.grev{margin:0;background:#fff;border-top:4px solid var(--red);box-shadow:0 2px 14px rgba(0,0,0,.08);padding:22px;display:flex;flex-direction:column;justify-content:space-between}
.grev blockquote{margin:0 0 16px;font-size:15px;line-height:1.6;color:#222}
.grev figcaption{display:flex;flex-direction:column;font-size:13px}.grev figcaption span{color:#666;text-transform:uppercase;letter-spacing:.08em;font-size:11px;margin-top:2px}
.btns .btn{margin:0 10px 10px 0}

/* layout consistency pass */
.grid{align-items:stretch}.card{display:flex;flex-direction:column;height:100%}.card .cb{flex:1;display:flex;flex-direction:column}.card .more{margin-top:auto}
.cimg{aspect-ratio:4/3}.cimg img,.media img{object-position:center 45%}
.split{min-height:480px}
.content figure,.content img{border-radius:0}.content img:not(.cimg img){width:100%;aspect-ratio:16/9;object-fit:cover}
.grevs{align-items:stretch}
@media(max-width:900px){.media{height:auto;aspect-ratio:16/10}}

/* portfolio gallery */
.pff{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 26px}.pfb{background:#fff;border:2px solid var(--blk);padding:9px 18px;font:600 14px Montserrat,sans-serif;cursor:pointer;text-transform:uppercase}.pfb.on,.pfb:hover{background:var(--red);border-color:var(--red);color:#fff}
.pfc{text-align:left;cursor:pointer;padding:0;font:inherit}.pfc .cb{padding:16px 18px}.pfc h3{margin:0 0 6px;font-size:18px}.pfc p{margin:0 0 6px}.pft{font-size:13px;color:#666}
.pfst,.pfn{position:absolute;bottom:10px;background:rgba(0,0,0,.75);color:#fff;font-size:12px;padding:4px 8px;font-weight:600}.pfst{left:10px;background:var(--red)}.pfn{right:10px}
.pflb{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9999;display:flex;align-items:center;justify-content:center}.pflb[hidden]{display:none}.pflb figure{margin:0;max-width:90vw;text-align:center}.pflb img{max-width:90vw;max-height:78vh}.pflb figcaption{color:#fff;margin-top:10px;font-size:14px}
.pflb button{background:none;border:0;color:#fff;font-size:44px;cursor:pointer;padding:10px 16px}.pfx{position:absolute;top:10px;right:16px}
