html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}

/* Layout: black/white/concrete section bands, 1200px column, one brand look in every theme */
:root{
  --black:#000000; --steel:#1A1B1D; --line:#2A2B2E; --ink:#2E3135; --mute:#55595E;
  --silver:#C3C6CA; --pale:#E9EAEC; --concrete:#F2F2F3; --white:#FFFFFF; --border:#8E9297;
  --font:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box}
body{background:var(--white);color:var(--black);font-family:var(--font);font-size:16px;line-height:1.5}
a{color:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--silver);outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding-inline:24px}
h1,h2,h3{margin:0;font-weight:700;text-transform:uppercase;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(2.1rem,5vw,3.4rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.4rem)}
h3{font-size:1.2rem}
p{margin:0}
.eyebrow{font-weight:600;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.dark{background:var(--black);color:var(--white)}
.dark .eyebrow{color:var(--silver)}
.steel{background:var(--steel);color:var(--white)}
.gray{background:var(--concrete)}
.sec{padding-block:88px}
.stack{display:flex;flex-direction:column;gap:20px}
.row{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.row>*{flex:1 1 420px;min-width:0}
.row.rev{flex-wrap:wrap-reverse}
.lead{font-size:1.1rem;line-height:1.65;max-width:38rem}
.dark .lead{color:var(--pale)}
.body{font-size:1.05rem;line-height:1.7;color:var(--ink)}
.dark .body{color:var(--silver)}
ul.list,ol.list{margin:0;padding-left:1.3rem;font-size:1.05rem;line-height:1.85}
.btns{display:flex;flex-wrap:wrap;gap:14px}
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:16px;padding:15px 26px;border:2px solid var(--black);background:var(--black);color:var(--white);cursor:pointer;font-family:inherit}
.btn.ghost{background:transparent;color:var(--black)}
.dark .btn,.steel .btn{background:var(--white);color:var(--black);border-color:var(--white)}
.dark .btn.ghost,.steel .btn.ghost{background:transparent;color:var(--white)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{text-decoration:none;border:1px solid var(--mute);font-weight:500;font-size:14px;padding:9px 14px}
.chip:hover{border-color:var(--white)}
.ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;min-height:360px;border:2px dashed var(--border);background:var(--concrete);color:var(--mute);font-size:15px}
.dark .ph{background:#111214;border-color:var(--mute);color:#A7ABB0}
.gray .ph{background:var(--white)}
.ph.sm{min-height:200px;font-size:14px}
.pic{display:block;width:100%;max-width:100%;height:400px;object-fit:cover;background:var(--concrete)}
.pic.tall{height:440px}
.pic.card{height:200px}
.pic.sm{height:240px}
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.shots figure{margin:0;display:flex;flex-direction:column;gap:10px}
.shots figcaption{font-size:.95rem;color:var(--ink);line-height:1.5}
.shots figcaption b{display:block;text-transform:uppercase;font-size:.85rem;letter-spacing:.08em;color:var(--black)}
@media (max-width:600px){.pic,.pic.tall{height:280px}}

/* preview bar + header */
.preview-unused{background:var(--steel);color:var(--silver);font-size:13px;text-align:center;padding:8px 16px}
.preview-unused b{color:var(--white)}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--black);color:var(--white);border-bottom:1px solid var(--line)}
.hbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark{position:relative;width:70px;height:56px;overflow:hidden;flex:none}
.mark img{position:absolute;left:-15px;top:-17px;width:212px;height:auto;max-width:none}
.vr{width:1px;height:48px;background:var(--white)}
.wm{display:flex;flex-direction:column;gap:3px}
.wm b{font-weight:600;font-size:16px;line-height:1.05;text-transform:uppercase}
.wm span{font-weight:600;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--silver)}
nav.main{display:flex;align-items:center;gap:22px;font-weight:500;font-size:15px}
nav.main a{text-decoration:none;padding:8px 0;border-bottom:2px solid transparent}
nav.main a.on{border-bottom-color:var(--white);font-weight:700}
nav.main .tel{font-weight:700;font-size:16px;white-space:nowrap}
nav.main .quote{background:var(--white);color:var(--black);font-weight:600;padding:11px 18px;border:none}
.menu{display:none;background:none;border:1px solid var(--mute);color:var(--white);font:inherit;font-weight:600;padding:9px 14px;cursor:pointer}
@media (max-width:980px){
  .menu{display:block}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--black);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 20px;border-bottom:1px solid var(--line)}
  nav.main.open{display:flex}
  nav.main a{padding:14px 0;border-bottom:1px solid var(--line)}
  nav.main a.on{border-bottom-color:var(--line)}
  nav.main .quote{margin-top:14px;text-align:center}
}

/* credentials */
.creds{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px;padding-block:30px}
.creds b{display:block;font-size:15px;text-transform:uppercase}
.creds span{font-size:13px;color:#A7ABB0}

/* service cards */
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.g4{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.svc{text-decoration:none;background:var(--white);display:flex;flex-direction:column;transition:transform .15s}
.svc:hover{transform:translateY(-3px)}
.svc .ph{border:none;background:#E6E7E9;min-height:190px}
.svc .in{display:flex;flex-direction:column;gap:12px;padding:24px 24px 28px}
.svc .t{font-weight:700;font-size:1.25rem;text-transform:uppercase}
.svc .d{color:var(--ink);line-height:1.6}
.svc .l{font-size:.95rem;line-height:1.8;color:var(--ink)}
.more{font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
.job .t{font-weight:600;text-transform:uppercase;margin-top:12px}
.job .d{font-size:.95rem;color:var(--ink);margin-top:4px}
figure.q{margin:0;background:var(--white);padding:28px;border-top:4px solid var(--black);display:flex;flex-direction:column;gap:18px}
figure.q blockquote{margin:0;font-size:1.05rem;line-height:1.6}
figure.q figcaption{font-weight:600;font-size:.95rem}
.sig{border-left:4px solid var(--black);padding-left:16px}
.sig b{display:block}
.sig span{color:var(--mute);font-size:.95rem}
.ruled{border-top:2px solid currentColor;padding-top:18px;display:flex;flex-direction:column;gap:8px}
.ruled .n{font-weight:700;font-size:2rem}
.ruled .t{font-weight:600;font-size:1.1rem;text-transform:uppercase}
.ruled .d{line-height:1.6;color:var(--silver)}
.box{background:var(--concrete);border-top:4px solid var(--black);padding:26px 24px;display:flex;flex-direction:column;gap:10px}
.box .t{font-weight:700;font-size:1.1rem;text-transform:uppercase}
.box .d{color:var(--ink);line-height:1.6}
.cta{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding-block:68px}
.cta h2{flex:1 1 420px;font-size:clamp(1.5rem,3vw,2rem)}

/* floor systems */
.sys{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.sys button{text-align:left;font:inherit;cursor:pointer;padding:24px;display:flex;flex-direction:column;gap:10px;background:var(--concrete);color:var(--black);border:2px solid var(--silver)}
.sys button[aria-pressed="true"]{background:var(--black);color:var(--white);border-color:var(--black)}
.sys .k{font-weight:600;font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.75}
.sys .t{font-weight:700;font-size:1.2rem;line-height:1.2;text-transform:uppercase}
.sys .d{font-size:.95rem;line-height:1.55;opacity:.85}
.panel{border:2px solid var(--black);padding:32px;display:flex;flex-wrap:wrap;gap:36px;align-items:center}
.panel>*{min-width:0}
.panel .fig{flex:1 1 520px}
.panel .fig svg{display:block;width:100%;height:auto}
.panel .txt{flex:1 1 280px;display:flex;flex-direction:column;gap:14px}
.panel ol{margin:0;padding-left:1.4rem;line-height:1.65;color:var(--ink)}
details{background:var(--white);padding:18px 22px}
.gray details{background:var(--white)}
.wh details{background:var(--concrete)}
summary{font-weight:600;font-size:1.05rem;cursor:pointer}
details p{margin-top:12px;line-height:1.7;color:var(--ink)}
.faq{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.svcblock .num{font-weight:600;font-size:13px;letter-spacing:.2em;color:var(--mute)}

/* contact */
.info{display:flex;flex-direction:column;gap:16px}
.info small{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.info b{font-size:1.2rem}
form{background:var(--concrete);padding:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;align-content:start}
form .f{display:flex;flex-direction:column;gap:6px;min-width:0}
form .full{grid-column:1/-1}
label{font-weight:600;font-size:14px}
input,select,textarea{font:inherit;font-size:16px;padding:12px;border:1px solid var(--border);background:var(--white);color:var(--black);border-radius:0;width:100%}
textarea{resize:vertical}
.note{grid-column:1/-1;background:var(--black);color:var(--white);padding:14px 16px;font-size:.95rem}

.gfilters{display:flex;flex-wrap:wrap;gap:10px}
.gfilters button{font:inherit;font-weight:600;font-size:14px;padding:10px 16px;border:2px solid var(--black);background:var(--white);color:var(--black);cursor:pointer}
.gfilters button[aria-pressed="true"]{background:var(--black);color:var(--white)}
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px 22px}
.gitem{margin:0;display:flex;flex-direction:column;gap:12px}
.gitem figcaption{font-size:.95rem;line-height:1.55;color:var(--ink)}
.gitem figcaption b{display:block;font-size:1rem;text-transform:uppercase;letter-spacing:.04em;color:var(--black);margin-bottom:2px}
.gopen{display:block;padding:0;border:0;background:none;cursor:zoom-in;width:100%}
.gopen img{height:260px;transition:opacity .15s}
.gopen:hover img{opacity:.88}
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 16px;padding-top:calc(24px + env(safe-area-inset-top,0px))}
.lightbox img{max-width:100%;max-height:78vh;object-fit:contain}
.lightbox p{color:#E9EAEC;margin:0;max-width:52rem;text-align:center;line-height:1.5}
.lightbox p b{display:block;color:#FFFFFF;text-transform:uppercase;letter-spacing:.04em}
.lbclose{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:16px;font:inherit;font-weight:700;font-size:15px;background:#FFFFFF;color:#000000;border:0;padding:10px 16px;cursor:pointer}
.lightbox[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.gopen img{transition:none}}

footer{background:var(--black);color:var(--white);border-top:1px solid var(--line)}
.fbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px;padding-block:44px}
.fnav{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px 22px;font-size:14px}
.fnav a,.fcol a{text-decoration:none}
.fnav a:hover{text-decoration:underline}
.fcol{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--silver)}
@media (prefers-reduced-motion:reduce){.svc{transition:none}.svc:hover{transform:none}}
@media (max-width:600px){.sec{padding-block:60px}.panel{padding:20px}form{padding:20px}}
