:root{--bg:#0b0b0c;--char:#16171a;--char2:#1f2125;--line:#2c2f34;--red:#e01b1b;--red2:#b81414;--silver:#c9ccd1;--white:#f5f6f7;--muted:#9aa0a8;--head:'Oswald','Arial Narrow',Impact,sans-serif;--body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--silver);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}a{color:var(--white)}
.wrap{width:min(1160px,100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:var(--red);color:#fff;padding:8px 12px;z-index:99}
h1,h2,h3{font-family:var(--head);color:var(--white);text-transform:uppercase;letter-spacing:.5px;line-height:1.05;margin:0 0 .5em}
.red{color:var(--red)}
.eyebrow{font:600 13px/1 var(--body);letter-spacing:2px;text-transform:uppercase;color:var(--red);margin:0 0 14px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 17px/1 var(--head);text-transform:uppercase;letter-spacing:1px;text-decoration:none;padding:16px 26px;border-radius:4px;border:2px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.btn svg{width:18px;height:18px;fill:currentColor}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red2)}
.btn-ghost{border-color:var(--silver);color:var(--white)}.btn-ghost:hover{border-color:var(--red);color:#fff}
.btn-sm{padding:10px 16px;font-size:15px}.btn-block{width:100%}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,11,12,.94);backdrop-filter:blur(6px);border-bottom:3px solid var(--red)}
.header-inner{display:flex;align-items:center;gap:24px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:96px}
.brand-text{font:700 19px/1 var(--head);text-transform:uppercase;color:var(--white);letter-spacing:.5px}
.brand-text small{font-size:13px;color:var(--red);letter-spacing:3px}
.nav{margin-left:auto;display:flex;gap:26px}
.nav a{font:500 15px/1 var(--head);text-transform:uppercase;letter-spacing:1px;text-decoration:none;color:var(--silver)}
.nav a:hover{color:var(--red)}
/* hero */
.hero{position:relative;padding:72px 0 80px;background:
 radial-gradient(ellipse at 75% 40%,rgba(224,27,27,.16),transparent 55%),
 repeating-linear-gradient(0deg,transparent 0 38px,rgba(255,255,255,.035) 38px 40px),
 linear-gradient(180deg,#121316,#0b0b0c);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
 repeating-linear-gradient(90deg,transparent 0 78px,rgba(255,255,255,.03) 78px 80px);
 -webkit-mask:linear-gradient(90deg,transparent,#000 60%);mask:linear-gradient(90deg,transparent,#000 60%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(40px,6vw,72px);font-weight:700}
.lead{font-size:18px;max-width:560px;color:var(--silver);margin:0 0 30px}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:38px}
.hero-facts{list-style:none;padding:0;margin:0;display:flex;gap:0;border-top:1px solid var(--line);max-width:560px}
.hero-facts li{flex:1;padding:18px 14px 0;border-left:3px solid var(--red)}
.hero-facts li:first-child{padding-left:14px}
.hero-facts strong{display:block;font:700 30px/1 var(--head);color:var(--white)}
.hero-facts span{display:block;margin-top:6px;line-height:1.3;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.hero-art img{width:100%;filter:drop-shadow(0 18px 40px rgba(0,0,0,.7))}
/* slogan band */
.slogan-band{background:#000;border-block:1px solid var(--line)}
.slogan-inner{display:grid;grid-template-columns:minmax(0,480px) 1fr;gap:40px;align-items:center}
.slogan-inner img{width:100%}
.slogan-inner h2{font-size:clamp(28px,3.4vw,42px)}
.slogan-inner p{max-width:520px;margin:0}
/* sections */
.section{padding:88px 0;background:var(--char)}
.section-dark{background:var(--bg);background-image:linear-gradient(135deg,rgba(255,255,255,.02) 25%,transparent 25% 50%,rgba(255,255,255,.02) 50% 75%,transparent 75%);background-size:28px 28px}
.section-title{font-size:clamp(34px,4.4vw,52px);margin-bottom:36px}
.section-title::after{content:"";display:block;width:64px;height:5px;background:var(--red);margin-top:14px}
.icon{width:44px;height:44px;fill:var(--red);color:var(--red);flex:none}
/* services */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc{background:var(--char2);border:1px solid var(--line);border-top:4px solid var(--red);padding:28px;border-radius:4px}
.svc-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.svc-head h3{margin:0;font-size:28px}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding:9px 0 9px 26px;border-bottom:1px solid var(--line)}
.ticks li:last-child{border-bottom:0}
.ticks li::before{content:"";position:absolute;left:2px;top:17px;width:12px;height:7px;border-left:3px solid var(--red);border-bottom:3px solid var(--red);transform:rotate(-45deg)}
.note{margin:18px 0 0;padding:14px;background:rgba(224,27,27,.1);border-left:3px solid var(--red);font-size:15px}
/* why */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.why{background:rgba(22,23,26,.9);border:1px solid var(--line);padding:28px;border-radius:4px}
.why h3{font-size:24px;margin:16px 0 8px}.why p{margin:0}
.why-flag{background:#000}
.why-flag img{width:120px}
/* area */
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.addr{font-style:normal;margin-top:22px;padding:18px 20px;border-left:4px solid var(--red);background:var(--char2)}
.areas{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.areas li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 22px;background:var(--char2);border:1px solid var(--line);border-radius:4px;font:600 22px/1.1 var(--head);text-transform:uppercase;color:var(--white)}
.areas li::before{content:"";align-self:flex-start;margin-top:6px;width:12px;height:12px;background:var(--red);transform:rotate(45deg);flex:none}
.areas li span{flex:1}
.areas li small{display:block;margin-top:8px;font:400 14px/1.5 var(--body);text-transform:none;color:var(--muted);letter-spacing:0}
.areas em{align-self:flex-start}
.areas em{font:500 12px/1 var(--body);letter-spacing:1.5px;color:var(--red);font-style:normal}
/* contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.contact-cards{display:grid;gap:12px;margin-top:26px}
.ccard{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--char2);border:1px solid var(--line);border-radius:4px;text-decoration:none;font:600 20px/1.2 var(--head);color:var(--white);overflow-wrap:anywhere}
.ccard:hover{border-color:var(--red)}
.ccard svg{width:26px;height:26px;fill:var(--red);flex:none}
.ccard small{display:block;font:500 12px/1 var(--body);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.quote-form{background:var(--char2);border:1px solid var(--line);border-top:4px solid var(--red);padding:28px;border-radius:4px;display:grid;gap:14px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
input,select,textarea{width:100%;font:16px/1.4 var(--body);color:var(--white);background:#0f1012;border:1px solid var(--line);border-radius:3px;padding:12px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--red);border-color:var(--red)}
.form-note{font-size:13px;color:var(--muted);margin:0}
/* footer */
.site-footer{background:#000;border-top:3px solid var(--red);padding:36px 0}
.footer-inner{display:flex;flex-wrap:wrap;align-items:center;gap:28px}
.footer-inner p{margin:0}.footer-inner img{width:120px}
.copy{margin-left:auto !important;font-size:13px;color:var(--muted)}
/* responsive */
@media (max-width:960px){
 .hero-grid,.slogan-inner,.area-grid,.contact-grid{grid-template-columns:1fr}
 .hero-art{order:-1;max-width:440px}
 .svc-grid,.why-grid{grid-template-columns:1fr 1fr}
 .svc-who{grid-column:1/-1}
 .nav{display:none}.header-call{margin-left:auto}
 .slogan-inner img{max-width:420px}
}
@media (max-width:600px){
 .wrap{width:calc(100% - 32px)}
 .hero{padding:36px 0 56px}.section{padding:64px 0}
 .svc-grid,.why-grid,.row2{grid-template-columns:1fr}
 .brand img{width:76px}.brand-text{font-size:16px}.brand-text small{font-size:11px}
 .header-call span{display:none}.header-call{padding:12px}
 .cta-row .btn{flex:1 1 100%}
 .hero-facts strong{font-size:24px}.hero-facts span{font-size:11px}.hero-facts li{padding:14px 10px 0}
 .copy{margin-left:0 !important}
}
/* hero photo background */
.hero{background:
 linear-gradient(90deg,rgba(11,11,12,.93) 0%,rgba(11,11,12,.82) 45%,rgba(11,11,12,.58) 100%),
 radial-gradient(ellipse at 75% 40%,rgba(224,27,27,.18),transparent 55%),
 url("assets/hero-bg.jpg") center 60%/cover no-repeat,#0b0b0c}
.hero::before{display:none}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:120px;background:linear-gradient(transparent,#0b0b0c);pointer-events:none}
.hero-grid{z-index:1}
.hero h1,.lead{text-shadow:0 2px 14px rgba(0,0,0,.6)}
/* work gallery */
.section-work{background:var(--bg)}
.work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.work-item{margin:0;background:var(--char2);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.work-item a{display:block;aspect-ratio:4/3;overflow:hidden;background:#000}
.work-item img{width:100%;height:100%;object-fit:cover;object-position:50% 65%;transition:transform .3s,opacity .3s}
.work-item a:hover img,.work-item a:focus-visible img{transform:scale(1.05);opacity:.9}
.work-item figcaption{padding:12px 14px;font:500 15px/1.3 var(--head);text-transform:uppercase;letter-spacing:.5px;color:var(--white);border-top:3px solid var(--red)}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;padding:56px 64px}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}
.lightbox img{max-width:100%;max-height:calc(100vh - 150px);object-fit:contain;border:2px solid var(--line)}
.lightbox figcaption{margin-top:12px;font:500 18px/1.3 var(--head);text-transform:uppercase;color:var(--white);text-align:center}
.lb-btn{position:absolute;background:rgba(224,27,27,.9);color:#fff;border:0;width:48px;height:48px;border-radius:4px;font-size:32px;line-height:1;cursor:pointer}
.lb-btn:hover{background:var(--red2)}
.lb-close{top:12px;right:12px}.lb-prev{left:10px;top:50%;transform:translateY(-50%)}.lb-next{right:10px;top:50%;transform:translateY(-50%)}
@media (max-width:600px){
 .work-grid{grid-template-columns:1fr 1fr;gap:10px}
 .work-item figcaption{font-size:13px;padding:9px 10px}
 .lightbox{padding:64px 10px}
 .lb-prev,.lb-next{top:auto;bottom:12px;transform:none}
 .hero{background:linear-gradient(180deg,rgba(11,11,12,.86),rgba(11,11,12,.8)),url("assets/hero-bg.jpg") 30% center/cover no-repeat,#0b0b0c}
}
.legal{margin:22px 0 0;padding:14px 18px;border-left:4px solid var(--red);background:var(--char2);color:var(--white)}
.note a{color:var(--white);font-weight:600;overflow-wrap:anywhere}
/* gallery filter */
.work-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.work-filter button{font:600 15px/1 var(--head);text-transform:uppercase;letter-spacing:1px;color:var(--white);background:var(--char2);border:1px solid var(--line);border-radius:3px;padding:11px 16px;cursor:pointer}
.work-filter button span{color:var(--muted);font-weight:500;margin-left:4px}
.work-filter button:hover{border-color:var(--red)}
.work-filter button.active{background:var(--red);border-color:var(--red)}
.work-filter button.active span{color:#fff}
.work-item[hidden]{display:none}
