/* CK Construction Unlimited Inc. */
:root{
  --black:#000;--coal:#141414;--steel:#222;--line:#353535;
  --orange:#D2643A;--orange-hi:#E8784C;--orange-dim:#6e3620;
  --paper:#F2F0EC;--mute:#9a958e;--soft:#c9c4bc;
  --display:"Barlow Condensed",Impact,sans-serif;--body:"Barlow",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#000;color:var(--paper)}
html{scroll-behavior:smooth}
body{font:400 16px/1.55 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit;border-radius:0}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:var(--orange)}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--display);text-transform:uppercase;line-height:.95;letter-spacing:.005em}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* header */
.bar{position:sticky;top:0;z-index:60;background:rgba(0,0,0,.93);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar .wrap{display:flex;align-items:center;gap:12px;height:66px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--paper)}
.brand img{width:42px;height:42px}
.brand b{font:700 20px/1 var(--display);text-transform:uppercase;letter-spacing:.03em}
.brand span{display:block;font:500 11px/1.3 var(--body);color:var(--mute);letter-spacing:.02em}
nav.menu{margin-left:auto;display:flex;gap:4px}
nav.menu a{padding:9px 13px;font:700 16px/1 var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--mute);text-decoration:none}
nav.menu a:hover{color:var(--paper)}
nav.menu a[aria-current="page"]{background:var(--orange);color:#000}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--orange);background:var(--orange);color:#000;font:700 17px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;padding:15px 22px;text-decoration:none}
.btn:hover{background:var(--orange-hi);border-color:var(--orange-hi)}
.btn.ghost{background:transparent;color:var(--orange)}
.btn.ghost:hover{background:var(--orange);color:#000}
.btn.wide{width:100%}
.btn.sm{font-size:14px;padding:10px 15px}
.btn[disabled]{opacity:.45;pointer-events:none}

/* sections */
.sec{padding:72px 0;border-bottom:1px solid var(--line)}
.sec h2{font-size:clamp(38px,5.6vw,64px);margin-bottom:14px}
.sec .intro{color:var(--soft);max-width:54ch;margin-bottom:34px}
.eyebrow{font:700 14px/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:12px}

/* hero */
.hero{padding:44px 0 58px;border-bottom:1px solid var(--line)}
.hero .grid{display:grid;grid-template-columns:1fr 1.15fr;gap:42px;align-items:center}
.hero h1{font-size:clamp(54px,8.4vw,110px);line-height:.84;letter-spacing:-.01em}
.hero p.lede{color:var(--soft);font-size:18px;max-width:42ch;margin-top:22px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.bp{position:relative;border:1px solid var(--line);background:
  linear-gradient(rgba(210,100,58,.07) 1px,transparent 1px) 0 0/24px 24px,
  linear-gradient(90deg,rgba(210,100,58,.07) 1px,transparent 1px) 0 0/24px 24px,#050505}
.bp svg{display:block;width:100%;height:auto}
.bp .d{fill:none;stroke:var(--orange);stroke-width:2;stroke-linecap:square;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s ease-out forwards}
.bp .d.thin{stroke-width:1;stroke:var(--mute)}
.bp text{fill:var(--mute);font:500 12px var(--body);opacity:0;animation:fade .5s 2.6s forwards}
.bp .fill{fill:var(--orange);opacity:0;animation:fillin .8s 2.8s forwards}
.bp .stampline{border-top:1px solid var(--line);padding:9px 12px;font:600 12px var(--display);letter-spacing:.08em;color:var(--mute);text-transform:uppercase;text-align:right;line-height:1.35}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@keyframes fillin{to{opacity:.12}}
.creds{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:44px}
.creds div{padding:18px 18px 0 0}
.creds b{display:block;font:700 26px/1 var(--display);text-transform:uppercase}
.creds span{font-size:14px;color:var(--mute)}

/* cards and grids */
.work{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.work div{padding:24px 22px 28px 0;border-right:1px solid var(--line);margin-right:22px}
.work div:last-child{border-right:0;margin-right:0}
.work h3{font-size:28px;color:var(--orange);margin-bottom:10px}
.work p{color:var(--soft);font-size:15px}
.how{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.how div{border-top:3px solid var(--orange);padding-top:14px}
.how div::before{counter-increment:s;content:counter(s);font:800 44px/1 var(--display);color:var(--orange-dim);display:block;margin-bottom:6px}
.how h3{font-size:24px;margin-bottom:6px}
.how p{color:var(--soft);font-size:15px}
.towns{font:800 clamp(30px,5.4vw,62px)/1.04 var(--display);text-transform:uppercase;color:transparent;-webkit-text-stroke:1px #4a4a4a}
.towns span{color:var(--paper);-webkit-text-stroke:0}
.show{display:grid;grid-template-columns:1.1fr 1fr;border:3px solid var(--orange)}
.show .l{padding:36px}
.show .l p{color:var(--soft);max-width:44ch}
.show .r{background:var(--orange);color:#000;padding:36px;display:flex;flex-direction:column;justify-content:center}
.show .r b{font:800 clamp(56px,8vw,104px)/.85 var(--display)}
.show .r span{font:700 19px/1.1 var(--display);text-transform:uppercase;margin-top:8px}

/* gallery */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.filters button{background:none;border:1px solid var(--line);padding:9px 15px;font-size:14px;color:var(--mute)}
.filters button[aria-pressed="true"]{border-color:var(--orange);color:var(--paper);background:rgba(210,100,58,.12)}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.proj{border:1px solid var(--line);background:var(--coal);text-align:left;padding:0;overflow:hidden;color:inherit}
.proj .shot{aspect-ratio:4/3;background:#0c0c0c;position:relative;overflow:hidden}
.proj .shot img{width:100%;height:100%;object-fit:cover}
.proj .shot .ph{position:absolute;inset:0;display:grid;place-items:center;color:#4a4a4a;font:700 15px var(--display);letter-spacing:.1em;text-transform:uppercase;
  background:repeating-linear-gradient(45deg,#101010 0 14px,#0b0b0b 14px 28px)}
.proj .meta{padding:16px 16px 20px}
.proj h3{font-size:24px;margin-bottom:4px}
.proj p{color:var(--mute);font-size:14px}
.proj:hover{border-color:var(--orange)}

/* before and after */
.ba{position:relative;border:1px solid var(--line);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.ba img,.ba svg{display:block;width:100%;height:auto}
.ba .after{position:absolute;inset:0;clip-path:inset(0 0 0 50%)}
.ba .handle{position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--orange);transform:translateX(-50%);pointer-events:none}
.ba .handle::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;border:3px solid var(--orange);border-radius:50%;background:#000;transform:translate(-50%,-50%)}
.ba .handle i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;color:var(--orange);font:700 16px var(--display);font-style:normal;letter-spacing:2px;white-space:nowrap}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba .lab{position:absolute;top:12px;padding:4px 10px;background:#000;font:700 14px var(--display);text-transform:uppercase;letter-spacing:.06em}
.ba .lab.l{left:12px;color:var(--mute)}
.ba .lab.r{right:12px;color:var(--orange)}

/* shop */
.shop{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.item{border:1px solid var(--line);display:flex;flex-direction:column}
.item .pic{aspect-ratio:1;background:#0c0c0c;position:relative;overflow:hidden}
.item .pic img{width:100%;height:100%;object-fit:cover}
.item .pic .ph{position:absolute;inset:0;display:grid;place-items:center;
  background:repeating-linear-gradient(45deg,#101010 0 14px,#0b0b0b 14px 28px)}
.item .pic .ph svg{width:46%;height:46%;fill:none;stroke:#3d3d3d;stroke-width:1.5}
.item .body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.item h3{font-size:24px}
.item p{color:var(--soft);font-size:14px;flex:1}
.item .price{font:700 26px/1 var(--display);color:var(--orange)}
.item .opts{display:flex;flex-wrap:wrap;gap:6px}
.item .opts button{border:1px solid var(--line);background:none;color:var(--mute);padding:6px 11px;font-size:13px}
.item .opts button[aria-pressed="true"]{border-color:var(--orange);color:var(--paper)}
.soon{border:1px solid var(--line);color:var(--mute);padding:14px;text-align:center;font-size:14px}

/* forms */
.wiz{border:1px solid var(--line);background:var(--coal);max-width:840px}
.wiz .prog{height:4px;background:var(--steel)}
.wiz .prog i{display:block;height:100%;background:var(--orange);width:16%;transition:width .35s}
.wiz .body{padding:30px}
.wiz .count{color:var(--mute);font-size:14px;margin-bottom:6px}
.wiz h3{font-size:clamp(28px,4.2vw,40px);margin-bottom:22px}
.step{display:none}.step.on{display:block;animation:rise .35s}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tiles.two{grid-template-columns:repeat(2,1fr)}
.tile{background:#000;border:2px solid var(--line);padding:18px 16px;text-align:left;min-height:82px}
.tile b{display:block;font:700 22px/1 var(--display);text-transform:uppercase}
.tile span{display:block;color:var(--mute);font-size:13px;margin-top:6px;line-height:1.35}
.tile[aria-pressed="true"]{border-color:var(--orange);background:rgba(210,100,58,.1)}
.f{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.f label{font-size:14px;color:var(--mute);font-weight:500}
.f input,.f textarea{background:#000;border:1px solid var(--line);padding:13px;font-size:16px;width:100%}
.f textarea{min-height:110px;resize:vertical}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wnav{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px}
.back{background:none;border:0;color:var(--mute);font:600 15px var(--body);padding:8px 0}
.sms{max-width:340px;background:#1c1c1e;border-radius:18px;padding:14px;margin:18px 0 22px;font:15px/1.4 -apple-system,system-ui,sans-serif}
.sms small{display:block;color:#8e8e93;font-size:12px;margin-bottom:8px;text-align:center}
.sms div{background:#2c2c2e;border-radius:16px;padding:10px 13px;color:#fff}

/* footer */
footer{padding:44px 0 66px;color:var(--mute);font-size:14px}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:28px;margin-bottom:26px}
footer b{color:var(--paper);font-family:var(--display);font-size:20px;text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:8px}
footer a{color:var(--soft);text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:var(--orange)}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:90;display:none;overflow:auto;padding:24px 16px 60px}
.lb.on{display:block}
.lb .inner{max-width:900px;margin:0 auto}
.lb .x{position:sticky;top:0;margin-left:auto;display:block;background:none;border:2px solid var(--line);color:var(--paper);width:44px;height:44px;font-size:20px}
.lb h2{font-size:clamp(30px,5vw,48px);margin:10px 0 6px}
.lb .sub{color:var(--mute);margin-bottom:20px}
.lb .shots{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}
.lb .shots .ph{aspect-ratio:4/3;display:grid;place-items:center;color:#4a4a4a;font:700 14px var(--display);letter-spacing:.08em;
  background:repeating-linear-gradient(45deg,#101010 0 14px,#0b0b0b 14px 28px)}

.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,180%);background:var(--paper);color:#000;padding:13px 18px;font-weight:600;z-index:99;transition:transform .3s;max-width:92vw;border-left:5px solid var(--orange);visibility:hidden}
.toast.show{transform:translate(-50%,0);visibility:visible}

@media (max-width:900px){
  .hero .grid,.show,.how{grid-template-columns:1fr}
  .hero .bp{order:-1}
  .work,.gal,.shop{grid-template-columns:1fr 1fr}
  .work div{border-right:0;margin-right:0;border-bottom:1px solid var(--line)}
  footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .brand span{display:none}
  .brand img{width:36px;height:36px}
  .brand b{font-size:16px;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bar .wrap{height:58px;gap:8px}
  nav.menu a{padding:8px 8px;font-size:14px}
}
@media (max-width:640px){
  .creds{grid-template-columns:1fr}
  .creds div{padding:14px 0;border-bottom:1px solid var(--steel)}
  .work,.gal,.shop,.tiles,.fr{grid-template-columns:1fr}
  .tiles,.tiles.two{grid-template-columns:1fr 1fr}
  .tile{min-height:62px;padding:14px 12px}
  .tile b{font-size:19px}
  .wiz .body{padding:22px 18px}
  .show .l,.show .r{padding:24px}
  .lb .shots{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}}

/* checkout */
.co{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;align-items:start}
.co-right{border:1px solid var(--line);padding:20px;position:sticky;top:86px}
.co-right h3{font-size:22px;margin-bottom:10px}
.co .row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--steel);font-size:15px}
.co .row em{font-style:normal;color:var(--mute);font-size:13px;display:block}
.co .tot{border-top:2px solid var(--line);margin-top:12px;padding-top:12px}
.co .tot div{display:flex;justify-content:space-between;padding:5px 0;font-size:15px}
.co .tot .due{font:700 24px/1 var(--display);border-top:1px solid var(--steel);margin-top:8px;padding-top:12px}
.ship{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;background:#000;border:2px solid var(--line);padding:14px;margin-bottom:10px;align-items:center}
.ship[aria-pressed="true"]{border-color:var(--orange);background:rgba(210,100,58,.1)}
.ship b{font-weight:600}
.ship em{font-style:normal;color:var(--mute);font-size:13px;display:block}
.ship .amt{font:700 20px/1 var(--display);white-space:nowrap}
.coerr{color:#e0715a;font-size:14px;margin-top:10px;min-height:18px}
#payEl{margin-top:8px}
@media (max-width:900px){.co{grid-template-columns:1fr}.co-right{position:static;order:-1}}
