
:root{--red:#d30913;--green:#0f8a41;--yellow:#fecf04;--ink:#151515;--bg:#fbfbf6;--mut:#4a4a45;--line:#e4e2d8}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;font:18px/1.6 "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif;line-height:1.05;margin:0 0 .5em;letter-spacing:.005em}
h2{font-size:clamp(2rem,4.5vw,3rem);font-weight:800}h3{font-size:1.7rem;font-weight:700}
a{color:inherit}img{max-width:100%;display:block}.w{max-width:1120px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}header .w{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px}
header img{height:52px;width:auto}nav{display:flex;align-items:center;gap:22px;font-weight:600}nav a{text-decoration:none}
.btn{display:inline-block;background:var(--red);color:#fff;font-weight:700;text-decoration:none;padding:14px 26px;border:0;border-radius:4px;font-size:1.05rem;cursor:pointer}.btn:hover{background:#a90710}.btn.g{background:var(--green)}.btn.o{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.hero{position:relative;min-height:min(78vh,680px);display:flex;align-items:center;color:#fff;background:#222}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.82) 0,rgba(10,10,10,.6) 45%,rgba(10,10,10,.1) 100%)}
.hero .w{position:relative;z-index:2;padding-top:56px;padding-bottom:56px}.hero h1{font-size:clamp(2.6rem,7vw,5.2rem);font-weight:800;max-width:11em}
.hero p{max-width:34em;font-size:1.2rem}.hero .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
section{padding:72px 0}.alt{background:#fff;border-block:1px solid var(--line)}
.tldr{background:#fff;border:1px solid var(--line);padding:24px 28px;max-width:860px}.tldr h2{font-size:2rem}.tldr ul{margin:0;padding-left:1.2em}.tldr li{margin:.3em 0}
.svc{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin:0 0 64px}.svc:nth-child(even) .pic{order:2}.svc img{width:100%;height:auto;border-radius:4px}.svc img.p{max-width:420px;margin:0 auto}
.svc.i{--c:var(--green)}.svc.e{--c:var(--red)}.svc.d{--c:var(--yellow)}.svc .txt{padding-top:0}.svc ul{padding-left:1.2em;margin:.6em 0 1em}
table{width:100%;border-collapse:collapse;background:#fff;font-size:1rem}th,td{text-align:left;padding:12px 14px;border:1px solid var(--line);vertical-align:top}th{background:var(--ink);color:#fff;font-weight:600}.sc{overflow-x:auto}
ol.steps{list-style:none;counter-reset:s;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}ol.steps li{counter-increment:s}ol.steps li:before{content:counter(s);font:800 2.4rem "Barlow Condensed",sans-serif;color:var(--red);display:block}ol.steps b{display:block;font-size:1.15rem}
.gal{align-items:start;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gal figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;height:100%;display:flex;flex-direction:column}.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.gal figcaption{font-size:.94rem;color:var(--mut);margin:0;padding:10px 12px;line-height:1.4;flex:1}figure{margin:0}
.areas{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none}.areas li{background:#fff;border:1px solid var(--line);padding:8px 16px;border-radius:99px;font-weight:600}
details{background:#fff;border:1px solid var(--line);margin:0 0 10px;border-radius:4px;max-width:860px}summary{cursor:pointer;font-weight:700;padding:16px 20px;font-size:1.1rem}details[open] summary{border-bottom:1px solid var(--line)}details p{margin:0;padding:16px 20px}
form{display:grid;gap:14px;max-width:620px}label{font-weight:600;display:grid;gap:4px}input,select,textarea{font:inherit;padding:12px;border:2px solid #bdbbb0;border-radius:4px;background:#fff;width:100%}
footer{background:var(--ink);color:#e8e8e2;padding:44px 0 96px}footer .w{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between}footer b{font:700 1.6rem "Barlow Condensed",sans-serif;color:#fff}footer button{background:transparent;color:#fff;border:2px solid #fff;border-radius:4px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer}footer a{color:var(--yellow)}
.bar{display:none}
@media(max-width:980px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){nav a:not(.btn){display:none}header img{height:42px}.svc{grid-template-columns:1fr;gap:20px}.svc:nth-child(even) .pic{order:0}ol.steps{grid-template-columns:1fr 1fr}.gal{grid-template-columns:repeat(2,minmax(0,1fr))}.hero:after{background:rgba(10,10,10,.68)}section{padding:52px 0}
.bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;inset:auto 0 0 0;z-index:30;}.bar a{text-align:center;padding:16px 8px;font-weight:700;text-decoration:none;color:#fff;background:var(--green)}.bar a+a{background:var(--red)}}
@media(max-width:560px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gal figcaption{font-size:.88rem;padding:8px 10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Compact project gallery: explicit fixed thumbnail height, never portrait stretched. */
.gal{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
.gal figure{min-width:0;height:auto;align-self:stretch}
.gal figure img{display:block;width:100%;height:155px;max-height:155px;aspect-ratio:auto;object-fit:cover;object-position:center center}
.gal figcaption{font-size:13px;line-height:1.35;padding:9px 10px;flex:initial}
@media(max-width:850px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gal figure img{height:145px;max-height:145px}}
@media(max-width:480px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gal figure img{height:115px;max-height:115px}.gal figcaption{font-size:12px;padding:7px 8px}}

.btn.dark-cta{background:var(--ink)}
