:root{--red:#C8102E;--red2:#8E0B20;--ink:#1d1d22;--mut:#5b5b66;--line:#e4e4e8;--soft:#f4f4f6;--mx:1200px}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font:17px/1.65 Barlow,system-ui,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff}
h1,h2,h3{font-family:"Barlow Condensed",Impact,Arial Narrow,sans-serif;line-height:1.05;letter-spacing:.01em}
h1{font-size:clamp(40px,6vw,78px);font-weight:700}h2{font-size:clamp(30px,4vw,46px);font-weight:700}h3{font-size:25px;font-weight:600}
a{color:inherit}img{display:block;max-width:100%}.wrap{max-width:var(--mx);margin:auto;padding:0 24px}
:focus-visible{outline:3px solid #fff;outline-offset:3px}main :focus-visible{outline-color:var(--red)}
header{position:fixed;top:0;left:0;right:0;z-index:30;transition:.3s;color:#fff}
header.sc{background:rgba(142,11,32,.97);box-shadow:0 4px 20px rgba(0,0,0,.25)}
.nav{display:flex;align-items:center;justify-content:space-between;height:128px;max-width:1440px;padding:14px 64px 0;transition:.3s}
header.sc .nav{height:84px;padding-top:0}
.brand img{width:92px;height:auto;transition:.3s;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}header.sc .brand img{width:64px}
nav ul{display:flex;gap:2px;list-style:none;padding:0;align-items:center}
nav a{display:block;white-space:nowrap;padding:8px 11px;text-decoration:none;font-weight:600;font-size:15px;border-bottom:2px solid transparent;text-shadow:0 1px 6px rgba(0,0,0,.3)}
nav a:hover,nav a.on{border-color:#fff}
nav a.btn{background:#fff;color:var(--red);border:0;margin-left:10px;padding:10px 18px;text-shadow:none;font-size:15px}nav a.btn:hover{background:var(--ink);color:#fff}
.tg{display:none;background:0;border:2px solid #fff;color:#fff;padding:7px 14px;font:600 15px Barlow,sans-serif}
.btn{display:inline-block;background:var(--red);color:#fff;padding:15px 30px;font:600 17px Barlow,sans-serif;text-decoration:none;border:2px solid var(--red);cursor:pointer;transition:.2s}
.btn:hover{background:var(--red2);border-color:var(--red2)}.btn.o{background:0;color:var(--ink);border-color:var(--ink)}.btn.o:hover{background:var(--ink);color:#fff}
.btn.w{background:#fff;color:var(--red);border-color:#fff}.btn.w:hover{background:var(--ink);border-color:var(--ink);color:#fff}.btn.ow{background:0;border-color:#fff;color:#fff}.btn.ow:hover{background:#fff;color:var(--red)}
/* slider */
.sl{position:relative;height:min(100vh,860px);min-height:640px;overflow:hidden;background:var(--red2);color:#fff}
.s{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s,visibility .9s;background-size:cover;background-position:center}
.s.on{opacity:1;visibility:visible}.s.on .sc2{transform:none;opacity:1}
.s:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(110,8,24,.92) 0%,rgba(142,11,32,.7) 45%,rgba(0,0,0,.2) 100%)}
.s:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:conic-gradient(rgba(255,255,255,.03) 25%,transparent 0 50%,rgba(255,255,255,.03) 0 75%,transparent 0);background-size:8px 8px}
.sc2{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;gap:24px;max-width:var(--mx);margin:auto;padding:130px 24px 90px;transform:translateY(24px);opacity:0;transition:.9s .25s}
.sc2 h1{max-width:760px;font-size:clamp(32px,4.4vw,58px)}.sc2 p{font-size:18px;max-width:580px;opacity:.95}.sc2 .btn{padding:13px 26px;font-size:16px}.acts{display:flex;gap:14px;flex-wrap:wrap}
.ct{position:absolute;left:0;right:0;bottom:34px;z-index:5}.ct .wrap{display:flex;align-items:center;gap:18px;max-width:var(--mx)}
.dots{display:flex;gap:10px}.dots button{width:44px;height:5px;border:0;background:rgba(255,255,255,.4);cursor:pointer;padding:0}.dots button.on{background:#fff}
.ar{margin-left:auto;display:flex;gap:8px}.ar button,.cb button{width:48px;height:48px;border:2px solid #fff;background:0;color:#fff;font:700 22px Barlow,sans-serif;cursor:pointer}.ar button:hover{background:#fff;color:var(--red)}
/* sub banner */
.pb{position:relative;padding:190px 0 84px;color:#fff;background-size:cover;background-position:center;background-color:var(--red)}
.pb:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(200,16,46,.3),rgba(200,16,46,.8))}
.pb .wrap{position:relative}.pb p{font-size:21px;max-width:760px;margin-top:18px}.pb.gsb .wrap{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center}.gl{background:#fff;padding:34px 38px;box-shadow:0 18px 40px rgba(0,0,0,.25)}.gl img{width:100%}
strong{font-weight:600}
section{padding:90px 0}.soft{background:var(--soft)}
.hd{max-width:720px;margin-bottom:44px;display:grid;gap:14px}.hd p{color:var(--mut)}.bar{width:64px;height:6px;background:var(--red)}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.card{background:#fff;border:1px solid var(--line);border-bottom:5px solid var(--red);display:grid;align-content:start;transition:.25s}
.card:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(0,0,0,.12)}
.card .ci2{aspect-ratio:4/3;overflow:hidden}.card .ci2 img{width:100%;height:100%;object-fit:cover}
.card .cb2{padding:24px;display:grid;gap:10px}.card p{color:var(--mut);font-size:16px}.card a.m{color:var(--red);font-weight:600;text-decoration:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.split p+p{margin-top:16px}.lead{font-size:20px}
.im{position:relative}.im:before{content:"";position:absolute;inset:18px -18px -18px 18px;border:4px solid var(--red)}.im img{position:relative;width:100%;aspect-ratio:4/3;object-fit:cover}
.rows>div{padding:44px 0}.rows>div:nth-child(even) .im{order:2}.rows>div+div{border-top:1px solid var(--line)}
.rows h2{margin-bottom:16px}.rows .acts{margin-top:24px}
.gs{background:var(--soft);border-top:6px solid var(--red);padding:70px 0}.gs .wrap{display:grid;grid-template-columns:320px 1fr auto;gap:56px;align-items:center}.gs img{width:100%}.gs p{margin-top:14px;max-width:640px}
.car{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:var(--red) var(--line)}
.car .card{flex:0 0 min(380px,82%);scroll-snap-align:start}.cb{display:flex;gap:8px;margin-bottom:24px}.cb button{border-color:var(--ink);color:var(--ink)}.cb button:hover{background:var(--red);border-color:var(--red);color:#fff}
.hh{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}.hh .hd{margin-bottom:24px}
.tag{display:inline-block;font:600 14px Barlow,sans-serif;color:var(--red);background:#fdecee;padding:3px 10px;width:max-content}
.stat{font:700 44px "Barlow Condensed",sans-serif;color:var(--red);line-height:1}
.loc{color:var(--mut);font-weight:500}
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.logos div{height:84px;border:2px dashed #cfcfd6;display:grid;place-items:center;color:#9a9aa5;font-size:13px;background:#fff}
.vm{display:grid;grid-template-columns:1fr 1fr}.vm>div{padding:56px max(24px,5vw);display:grid;gap:14px;align-content:start}.vm>div:first-child{background:var(--red);color:#fff}.vm>div:last-child{background:var(--ink);color:#fff}
.brk{position:relative;min-height:440px;display:grid;place-items:center;text-align:center;color:#fff;background:#222 center/cover fixed no-repeat}.brk:before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(110,8,24,.82),rgba(30,30,36,.78))}.brk h2{position:relative;max-width:900px;padding:0 24px;font-size:clamp(34px,5vw,64px)}
.gal.gal4{grid-template-columns:repeat(4,1fr)}
.car{scrollbar-width:none}.car::-webkit-scrollbar{display:none}.cd{display:flex;justify-content:center;gap:10px;margin-top:22px}.cd button{width:12px;height:12px;border-radius:50%;border:0;background:#c9c9d1;padding:0;cursor:pointer;transition:.3s}.cd button.on{background:var(--red);width:34px;border-radius:6px}
.pil{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line)}.pil>div{padding:34px;border:1px solid var(--line);display:grid;gap:8px;background:#fff}.pil p{color:var(--mut)}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gal a{display:block;overflow:hidden;cursor:zoom-in;position:relative}
.gal img{width:100%;height:100%;object-fit:cover;transition:.4s}.gal a:hover img{transform:scale(1.07)}.gal a:after{content:"+";position:absolute;right:12px;bottom:12px;width:38px;height:38px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:24px;opacity:0;transition:.25s}.gal a:hover:after{opacity:1}
.lb{position:fixed;inset:0;background:rgba(15,15,20,.94);z-index:60;display:none;place-items:center;padding:30px;cursor:zoom-out}.lb.on{display:grid}.lb img{max-width:100%;max-height:88vh;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb button{position:absolute;top:18px;right:22px;background:0;border:0;color:#fff;font-size:44px;cursor:pointer}
.pn{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}
form{display:grid;gap:18px}.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:grid;gap:6px;font-weight:600;font-size:15px}
input,textarea{font:inherit;padding:13px 14px;border:1.5px solid #c9c9d1;background:#fff;width:100%;border-radius:0}
input:focus,textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.15)}textarea{min-height:150px;resize:vertical}.hp{position:absolute;left:-9999px}
.fb{padding:40px;background:#fff;border:1px solid var(--line);border-top:5px solid var(--red)}.note{font-size:15px;color:var(--mut)}
.msg{padding:16px 18px;margin-bottom:20px;font-weight:600;display:none}.msg.ok{display:block;background:#e8f6ec;color:#17612b;border-left:5px solid #17612b}.msg.er{display:block;background:#fdecee;color:var(--red2);border-left:5px solid var(--red)}
.ci div{border-left:5px solid var(--red);padding-left:18px}.ci{display:grid;gap:22px}.ci b{display:block;font:600 22px "Barlow Condensed",sans-serif}
iframe{width:100%;height:420px;border:0;display:block}
.cta{background:var(--ink);color:#fff;padding:64px 0}.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
footer{background:#15151a;color:#c9c9d1;padding:64px 0 24px;font-size:15px}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:40px}footer h3{color:#fff;font-size:20px;margin-bottom:12px}footer img{width:96px;margin-bottom:14px}
footer ul{list-style:none;padding:0;display:grid;gap:6px}footer a{text-decoration:none}footer a:hover{color:#fff}
.cp{border-top:1px solid #2e2e36;margin-top:40px;padding-top:20px;font-size:14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.cp a{color:#fff;font-weight:600}
@media(max-width:1180px){nav a{padding:8px 8px;font-size:14px}}
@media(max-width:1020px){.split,.g2,.vm,.fg,.pb.gsb .wrap{grid-template-columns:1fr}.split{gap:48px}.rows>div:nth-child(even) .im{order:0}.g4,.g3,.gal{grid-template-columns:1fr 1fr}.logos{grid-template-columns:repeat(3,1fr)}.gal.gal4{grid-template-columns:1fr 1fr}.brk{background-attachment:scroll}.gs .wrap{grid-template-columns:1fr;justify-items:start}.gs img{width:180px}.gl{max-width:300px}
.nav{height:96px;padding:10px 24px 0}.brand img{width:74px}.tg{display:block}nav ul{display:none;position:absolute;left:0;right:0;top:100%;background:rgba(142,11,32,.98);flex-direction:column;align-items:stretch;padding:12px 24px 20px}nav ul.open{display:flex}nav a.btn{margin:10px 0 0;text-align:center}}
@media(max-width:600px){.g4,.g3,.row,.pil,.gal{grid-template-columns:1fr}.fb{padding:24px}section{padding:60px 0}.im:before{inset:10px -8px -10px 10px}.sc2 p{font-size:18px}.ar{display:none}.gal.gal4{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Projects banner: the red overlay is already baked into the image */
.pb.photo:before{background:none}

/* Client logos: auto-scrolling carousel, 5 visible, no boxes */
.logos{display:block;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.logos .logos-track{display:flex;height:auto;border:0;background:none;place-items:initial;width:calc(26 * 20%);will-change:transform}
.logos{cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.logos.drag{cursor:grabbing}
.logos .lg img{pointer-events:none;-webkit-user-drag:none}
.logos .lg{flex:0 0 calc(100% / 26);height:120px;border:0;background:none;padding:0 22px;display:flex;align-items:center;justify-content:center}
.logos .lg img{max-width:100%;max-height:92px;width:auto;height:auto;object-fit:contain}
@media (max-width:1020px){.logos .logos-track{width:calc(26 * 33.333%)}.logos .lg{padding:0 18px}}
@media (max-width:560px){.logos .logos-track{width:calc(26 * 50%)}}
.logos .lg img{filter:grayscale(1);opacity:.7;transition:filter .25s,opacity .25s}
.logos .lg:hover img{filter:none;opacity:1}


.logos .lg{padding:0 14px}.logos .lg img{max-height:none;max-width:100%;height:auto}
.lb img{width:auto;height:auto;max-width:min(92vw,1400px);max-height:86vh;min-height:min(70vh,560px);object-fit:contain;cursor:pointer;user-select:none}
.lb .lb-pv,.lb .lb-nx{top:50%;transform:translateY(-50%);right:auto;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:40px;line-height:54px;display:grid;place-items:center;transition:background .2s}
.lb .lb-pv{left:22px}.lb .lb-nx{left:auto;right:22px}
.lb .lb-pv:hover,.lb .lb-nx:hover{background:var(--red)}
.lb .lb-pv[hidden],.lb .lb-nx[hidden]{display:none}
.lb-ct{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-size:14px;letter-spacing:.08em;opacity:.8}
@media(max-width:560px){.lb .lb-pv,.lb .lb-nx{width:44px;height:44px;font-size:30px}.lb .lb-pv{left:8px}.lb .lb-nx{right:8px}.lb img{min-height:0}}
