:root{
  --char:#171916;--char2:#23251f;--ivory:#f6f0e5;--ivory2:#ebe3d5;--paper:#fffaf1;
  --sage:#6f8467;--sage2:#e4ebdf;--copper:#bd7542;--copper2:#d89455;--clay:#874832;
  --blue:#3f6573;--muted:#7c7b70;--dim:#a3a08f;--line:#d7d0bf;--line2:#33352d;--serif:'Cormorant Garamond',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Outfit,system-ui,sans-serif;background:var(--ivory);color:var(--char);overflow-x:hidden}
img{display:block;max-width:100%;object-fit:cover}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
::selection{background:var(--copper);color:#fff}
#progress-bar{position:fixed;top:0;left:0;height:3px;background:var(--copper);z-index:900;width:0}
#site-view{display:block}
#tool-view{display:none}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--copper);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-family:var(--serif);font-style:italic;font-size:.9rem;letter-spacing:.08em;font-weight:400}
.eyebrow:before{content:"";width:24px;height:1px;background:currentColor}
em{font-style:italic;color:var(--copper);font-family:var(--serif);font-size:1.06em;font-weight:300;letter-spacing:.01em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:0;min-height:48px;padding:0 24px;font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;transition:.2s}
.btn:hover{transform:translateY(-2px)}
.btn.dark{background:var(--char);color:var(--ivory)}
.btn.copper{background:var(--copper);color:#fff}
.btn.ghost{background:transparent;color:var(--ivory);border:1px solid rgba(246,240,229,.45)}
.btn.light{background:var(--ivory);color:var(--char)}
.btn.hero-quote{min-height:64px;padding:0 42px;background:var(--copper);color:#fff;font-size:.84rem;letter-spacing:.16em;box-shadow:0 18px 48px rgba(0,0,0,.28)}
#nav{position:fixed;top:3px;left:0;right:0;z-index:700;height:62px;padding:0 clamp(22px,4vw,58px);display:flex;align-items:center;justify-content:center;background:rgba(246,240,229,.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.logo{position:absolute;left:clamp(22px,4vw,58px);top:50%;transform:translateY(-50%);display:flex;align-items:center;width:clamp(150px,14vw,220px);line-height:1}
.logo-img{display:block;width:100%;height:auto;object-fit:contain}
.logo strong{font-family:"Big Shoulders Display";font-size:1.16rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.logo span{margin-top:4px;color:var(--muted);font-size:.54rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase}
.nav-links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:2px}
.nav-actions{position:absolute;right:clamp(22px,4vw,58px);top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:12px}
.nav-links a{padding:10px 13px;border:0;background:none;color:var(--muted);font-size:.64rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;position:relative}.nav-links a::after{content:"";position:absolute;bottom:4px;left:13px;right:13px;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.nav-links a:hover::after{transform:scaleX(1)}
.nav-links a:hover,.tool-nav-btn:hover,.tool-nav-btn.active{color:var(--copper)}
.tool-nav-btn{margin:0;min-height:42px;padding:0 24px;background:var(--char);color:var(--ivory);font-size:.7rem;letter-spacing:.15em;transition:.2s}
.tool-nav-btn:hover,.tool-nav-btn.active{background:var(--copper);color:#fff;transform:translateY(-1px)}
.nav-wa{min-height:42px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;background:#25d366;color:#fff;font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;transition:.2s}
.nav-wa:hover{transform:translateY(-1px);filter:saturate(1.08)}
.hamb{position:absolute;right:clamp(22px,4vw,58px);top:50%;transform:translateY(-50%)}
.hamb{display:none;background:none;border:0;flex-direction:column;gap:5px;padding:8px}
.hamb span{height:2px;background:var(--char);display:block}.hamb span:nth-child(1),.hamb span:nth-child(3){width:24px}.hamb span:nth-child(2){width:15px}
#mob{position:fixed;inset:0;z-index:680;background:var(--char);display:flex;flex-direction:column;justify-content:center;padding:58px;gap:8px;transform:translateY(-100%);transition:.55s cubic-bezier(.16,1,.3,1)}
#mob.open{transform:translateY(0)}
#mob a,#mob button{font-family:"Big Shoulders Display";font-size:3.4rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:rgba(246,240,229,.18);background:none;border:0;text-align:left}
#mob a:hover,#mob button:hover{color:var(--ivory)}
#mob-x{position:absolute;top:25px;right:32px!important;font-size:2.2rem!important;color:rgba(246,240,229,.48)!important}
#hero{min-height:100vh;padding-top:65px;position:relative;overflow:hidden;background:#111;display:flex;align-items:flex-end;cursor:ew-resize;user-select:none}
.hero-ba{position:absolute;inset:0}
.hba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hba-after{clip-path:inset(0 0 0 28%);z-index:2}
.hero-shade{position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,rgba(10,10,9,.78),rgba(10,10,9,.25) 58%,rgba(10,10,9,.12))}
.hero-grid{position:absolute;inset:0;z-index:4;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:90px 90px;opacity:.22}
.hba-line{position:absolute;top:0;bottom:0;left:28%;z-index:5;width:2px;background:rgba(255,255,255,.85)}
.hba-knob{position:absolute;left:28%;top:50%;z-index:6;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;transform:translate(-50%,-50%);background:var(--ivory);color:var(--char);box-shadow:0 15px 45px rgba(0,0,0,.35)}
.hba-label{position:absolute;z-index:6;bottom:34px;padding:8px 13px;background:rgba(0,0,0,.58);color:#fff;font-size:.64rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hba-label.before{left:34px}.hba-label.after{right:34px}
.hero-content{position:relative;z-index:7;width:100%;padding:0 clamp(24px,5vw,74px) clamp(34px,7vw,82px)}
.hero-kicker{color:var(--copper2);font-size:.76rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hero-h1{font-family:"Big Shoulders Display";max-width:980px;margin-top:14px;color:var(--ivory);font-size:clamp(4.3rem,12vw,12.8rem);font-weight:900;letter-spacing:.02em;line-height:.75;text-transform:uppercase}
.hero-h1 span{display:block}.hero-h1 .thin{font-weight:400;color:rgba(246,240,229,.74)}
.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-top:30px;border-top:1px solid rgba(246,240,229,.3);padding-top:26px}
.hero-sub{max-width:620px;color:rgba(246,240,229,.78);font-size:1.05rem;line-height:1.7}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
#counter-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--char);color:var(--ivory)}
.cs-item{position:relative;min-height:236px;padding:28px 28px 92px;border-right:1px solid rgba(246,240,229,.12);overflow:hidden}
.cs-item:before{content:attr(data-bg);position:absolute;right:14px;bottom:-30px;font-family:"Big Shoulders Display";font-size:8rem;font-weight:900;color:rgba(246,240,229,.09)}
.cs-num{font-family:"Big Shoulders Display";font-size:4.2rem;font-weight:900;line-height:.85;color:var(--copper2)}
.cs-label{margin-top:12px;font-size:.78rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.cs-sub{margin-top:6px;color:rgba(246,240,229,.5);font-size:.85rem}
section{position:relative}
#about{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;padding:120px clamp(24px,5vw,74px);align-items:center}
.about-h2,.svc-h2,.gal-h2,.proc-h2,.testi-h2,.contact-h2,.tool-h2,.tvh-h,.t-q{font-family:"Big Shoulders Display";font-weight:900;letter-spacing:.02em;text-transform:uppercase;line-height:.88}
.about-h2{font-size:clamp(3.8rem,7vw,7.4rem);margin:20px 0}
.about-copy p{color:var(--muted);font-size:1.05rem;line-height:1.8;margin-bottom:14px}
.about-img-wrap{position:relative;min-height:620px;background:var(--char);overflow:hidden}
.about-img-wrap img{width:100%;height:100%;position:absolute;inset:0}
.about-tag{position:absolute;left:22px;bottom:22px;background:var(--ivory);padding:13px 18px;font-size:.7rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:4px;background:var(--char)}
.ast{padding:22px;color:var(--ivory);border-right:1px solid rgba(246,240,229,.12)}
.ast-n{font-family:"Big Shoulders Display";font-size:3.4rem;font-weight:900;color:var(--copper2)}
.ast-l{font-size:.72rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase;color:rgba(246,240,229,.64)}
#services{padding:110px clamp(24px,5vw,74px);background:var(--char);color:var(--ivory)}
.svc-hdr{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:42px}
.svc-h2{font-size:clamp(4rem,8vw,8rem)}
.svc-note{max-width:330px;color:rgba(246,240,229,.55);line-height:1.7}
.svc-rows{list-style:none;border-top:1px solid rgba(246,240,229,.14)}
.svc-row{border-bottom:1px solid rgba(246,240,229,.14);border-left:3px solid transparent;transition:.25s}
.svc-row:hover{background:rgba(255,255,255,.025)}.svc-row.open{border-left-color:var(--copper)}
.sr-head{display:grid;grid-template-columns:80px 1fr 170px 46px;gap:20px;align-items:center;padding:28px 0}
.sr-n{color:var(--copper2);font-family:"Big Shoulders Display";font-size:2rem;font-weight:900;transition:transform .3s,color .25s}.svc-row.open .sr-n{transform:scale(1.18);color:var(--copper)}
.sr-name{font-family:"Big Shoulders Display";font-size:clamp(2rem,4vw,4.4rem);font-weight:800;text-transform:uppercase;line-height:.9}
.sr-price{color:rgba(246,240,229,.52);font-size:.82rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.sr-tog{width:42px;height:42px;border:1px solid rgba(246,240,229,.22);display:grid;place-items:center;transition:.25s}
.svc-row.open .sr-tog{background:var(--copper);border-color:var(--copper);transform:rotate(180deg)}
.svc-panel{max-height:0;overflow:hidden;transition:max-height .55s cubic-bezier(.16,1,.3,1);display:grid;grid-template-columns:1fr 360px;gap:36px}
.svc-row.open .svc-panel{max-height:430px;padding-bottom:34px}
.sp-desc{max-width:640px;color:rgba(246,240,229,.72);font-size:1.02rem;line-height:1.75}
.sp-inc{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}
.sp-li{display:flex;align-items:center;gap:10px;color:rgba(246,240,229,.72);font-size:.92rem}
.sp-li:before{content:"";width:14px;height:1px;background:var(--copper)}
.sp-img{height:240px;overflow:hidden}.sp-img img{width:100%;height:100%}
#finish-lab{display:grid;grid-template-columns:1.08fr .92fr;min-height:700px;background:var(--char);color:var(--ivory)}
.fl-stage{position:relative;min-height:700px;overflow:hidden;background:var(--char)}
.fl-stage img{width:100%;height:100%;position:absolute;inset:0;filter:saturate(.9) contrast(1.02)}
.fl-stage:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(15,16,14,.18),rgba(15,16,14,.6)),linear-gradient(rgba(246,240,229,.08) 1px,transparent 1px);background-size:auto,100% 82px;mix-blend-mode:multiply}
.fl-wash{position:absolute;inset:0;z-index:1;background:linear-gradient(120deg,rgba(189,117,66,.56),rgba(111,132,103,.18));mix-blend-mode:multiply;transition:background .45s ease}
.fl-panel{position:absolute;left:34px;right:34px;bottom:34px;z-index:3;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;padding:24px;background:rgba(15,16,14,.72);border:1px solid rgba(246,240,229,.16);backdrop-filter:blur(16px)}
.fl-panel span{color:var(--copper2);font-size:.66rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.fl-panel strong{display:block;margin-top:8px;font-family:"Big Shoulders Display";font-size:3.2rem;line-height:.86;text-transform:uppercase}
.fl-panel small{max-width:300px;color:rgba(246,240,229,.62);line-height:1.65}
.fl-copy{padding:110px clamp(24px,5vw,74px);display:flex;flex-direction:column;justify-content:center}
.fl-h{font-family:"Big Shoulders Display";font-size:clamp(3.6rem,7vw,7rem);font-weight:900;line-height:.86;text-transform:uppercase;margin:20px 0}
.fl-body{max-width:560px;color:rgba(246,240,229,.64);font-size:1.03rem;line-height:1.8}
.finish-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:30px}
.finish-card{position:relative;min-height:128px;text-align:left;padding:16px;border:1px solid rgba(246,240,229,.16);background:rgba(246,240,229,.045);color:var(--ivory);overflow:hidden;transition:.25s}
.finish-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--sw),transparent 72%);opacity:.35;transition:.25s}
.finish-card:hover{border-color:var(--copper2);transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,.24)}.finish-card.on{border-color:var(--copper2);transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,.24)}
.finish-card.on{background:rgba(246,240,229,.08)}
.finish-card b,.finish-card span{position:relative;z-index:1;display:block}
.finish-card b{font-family:"Big Shoulders Display";font-size:2rem;text-transform:uppercase}
.finish-card span{margin-top:5px;color:rgba(246,240,229,.58);font-size:.84rem;line-height:1.55}
.tool-section{display:grid;grid-template-columns:.9fr 1.1fr;min-height:620px}
.tool-left{padding:110px clamp(24px,5vw,74px);background:var(--ivory)}
.tool-h2{font-size:clamp(3.5rem,7vw,7rem);margin:20px 0}
.tool-body{max-width:600px;color:var(--muted);line-height:1.8;font-size:1.05rem}
.tool-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:28px 0}
.tool-step{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);background:#fff}
.tool-step-n{width:28px;height:28px;background:var(--char);color:var(--ivory);display:grid;place-items:center;font-size:.75rem;font-weight:900}
.tool-right{position:relative;display:flex;align-items:end;padding:42px;background:linear-gradient(rgba(0,0,0,.12),rgba(0,0,0,.58)),url("../img/extension2-before.jpg") center/cover;color:#fff;cursor:pointer}
.tool-card{max-width:480px;padding:30px;background:rgba(20,20,18,.74);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18)}
.tool-card h3{font-family:"Big Shoulders Display";font-size:4rem;line-height:.9;text-transform:uppercase}
.tool-card p{margin:14px 0 22px;color:rgba(255,255,255,.7);line-height:1.7}
#gallery{padding:110px 0;background:var(--ivory)}
.gal-hdr{display:flex;justify-content:space-between;align-items:end;padding:0 clamp(24px,5vw,74px);margin-bottom:30px}
.gal-h2{font-size:clamp(4rem,8vw,8rem)}
.gal-sub{color:var(--muted);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem}
.gal-carousel{position:relative;padding:0 clamp(24px,5vw,74px)}
.gal-viewport{overflow:hidden}
.gal-track{display:flex;gap:6px;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.gal-slide{position:relative;flex:0 0 auto;height:430px;overflow:hidden;background:#ddd}
.gal-slide img{width:100%;height:100%;transition:.65s cubic-bezier(.16,1,.3,1)}.gal-slide:hover img{transform:scale(1.07)}
.gi-ov{position:absolute;left:0;right:0;bottom:0;padding:24px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff}
.gi-cat{color:var(--copper2);font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.gi-name{font-family:"Big Shoulders Display";font-size:2.4rem;font-weight:850;text-transform:uppercase}
.gi-loc{color:rgba(255,255,255,.68)}
.gal-btn{position:absolute;top:50%;z-index:3;width:48px;height:48px;border:0;background:var(--char);color:var(--ivory);display:grid;place-items:center}.gal-btn:disabled{opacity:.35}.gal-btn.prev{left:24px}.gal-btn.next{right:24px}
.gal-dots{display:flex;justify-content:center;gap:7px;margin-top:20px}.gal-dot{width:8px;height:8px;border:0;border-radius:50%;background:var(--line)}.gal-dot.on{background:var(--copper)}
#projects{padding:110px clamp(24px,5vw,74px);background:#fff}
.projects-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}
.projects-h{font-family:"Big Shoulders Display";font-size:clamp(4rem,8vw,8rem);font-weight:900;line-height:.86;text-transform:uppercase;margin-top:18px}
.projects-copy{max-width:420px;color:var(--muted);line-height:1.75}
.project-grid{display:grid;grid-template-columns:1.08fr .96fr .96fr;gap:10px}
.project-card{position:relative;background:var(--ivory);border:1px solid var(--line);overflow:hidden;transition:.32s cubic-bezier(.16,1,.3,1)}
.project-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(23,25,22,.16)}
.pc-img{height:310px;overflow:hidden;background:#ddd}
.project-card.featured .pc-img{height:430px}
.pc-img img{width:100%;height:100%;transition:.6s}.project-card:hover .pc-img img{transform:scale(1.06)}
.pc-body{padding:24px}
.pc-meta{color:var(--copper);font-size:.68rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.pc-title{font-family:"Big Shoulders Display";font-size:2.8rem;line-height:.9;text-transform:uppercase;margin:12px 0}
.pc-copy{color:var(--muted);line-height:1.72}
.pc-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:22px;background:var(--line)}
.pc-spec{background:var(--paper);padding:13px}
.pc-spec span{display:block;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.pc-spec strong{display:block;margin-top:4px;font-size:.84rem}
#process{padding:110px clamp(24px,5vw,74px);background:#fff}
.proc-hdr{display:flex;justify-content:space-between;align-items:end;margin-bottom:34px}
.proc-h2{font-size:clamp(4rem,8vw,8rem)}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.ps{background:var(--ivory);position:relative;overflow:hidden}
.ps-img{height:210px;overflow:hidden}.ps-img img{width:100%;height:100%;transition:.45s}.ps:hover .ps-img img{transform:scale(1.05)}
.ps-inner{padding:24px}
.ps-n{font-family:"Big Shoulders Display";font-size:4rem;color:rgba(189,117,66,.28);font-weight:900}
.ps-kicker{color:var(--copper);font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.ps-title{font-family:"Big Shoulders Display";font-size:2.2rem;text-transform:uppercase}
.ps-body{color:var(--muted);line-height:1.7}
#testimonials{background:var(--char);color:var(--ivory);padding:110px clamp(24px,5vw,74px)}
.testi-hdr{display:flex;justify-content:space-between;align-items:end;margin-bottom:34px}
.testi-h2{font-size:clamp(4rem,8vw,8rem)}
.g-badge{display:flex;gap:14px;align-items:center;border:1px solid rgba(246,240,229,.16);padding:14px 18px}
.gb-stars{color:var(--copper2);letter-spacing:2px}.gb-rating{font-family:"Big Shoulders Display";font-size:2.2rem;font-weight:900}
.tf{display:grid;grid-template-columns:300px 1fr;gap:34px;padding:34px 0;border-top:1px solid rgba(246,240,229,.14)}
.tf:last-child{border-bottom:1px solid rgba(246,240,229,.14)}
.tf-stars{color:var(--copper2);letter-spacing:2px}.tf-name{margin-top:12px;font-weight:900}.tf-role{color:rgba(246,240,229,.48);font-size:.9rem}.tf-tag{display:inline-block;margin-top:14px;border:1px solid rgba(246,240,229,.2);padding:7px 10px;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.tf-text{font-size:clamp(1.25rem,2.4vw,2.3rem);line-height:1.25;color:rgba(246,240,229,.86)}
#contact{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--ivory)}
.contact-left{position:relative;min-height:720px;padding:110px clamp(24px,5vw,74px);background:var(--char);color:var(--ivory);overflow:hidden}
.contact-ghost{position:absolute;right:-40px;bottom:-80px;font-family:"Big Shoulders Display";font-size:24rem;font-weight:900;color:rgba(246,240,229,.035)}
.contact-h2{font-size:clamp(4rem,8vw,8rem);margin:20px 0}
.contact-body{max-width:520px;color:rgba(246,240,229,.65);line-height:1.8}
.contact-links{display:grid;gap:10px;margin-top:30px;max-width:440px}
.contact-link{display:flex;gap:12px;padding:16px;border:1px solid rgba(246,240,229,.16);align-items:center}
.contact-ico{width:42px;height:42px;background:var(--copper);display:grid;place-items:center}
.contact-ico svg{width:20px;height:20px}.contact-lbl{color:rgba(246,240,229,.48);font-size:.7rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.contact-val{font-weight:900}
.contact-right{padding:110px clamp(24px,5vw,74px);display:flex;align-items:center}
.map-card{width:100%;background:#fff;border:1px solid var(--line);box-shadow:0 24px 70px rgba(23,25,22,.1);overflow:hidden}
.map-card iframe{display:block;width:100%;height:520px;border:0;filter:saturate(.86) contrast(.96)}
.map-info{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:24px;background:var(--paper);border-top:1px solid var(--line)}
.map-info h3{font-family:"Big Shoulders Display";font-size:3.2rem;line-height:.9;text-transform:uppercase}
.map-info p{color:var(--muted);line-height:1.6;margin-top:8px}
footer{background:#0f100e;color:var(--ivory);padding:54px clamp(24px,5vw,74px) 24px}
.ft-top{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:34px}.ft-name{font-family:"Big Shoulders Display";font-size:2rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.ft-sub,.ft-desc,footer li{color:rgba(246,240,229,.55)}.ft-desc{max-width:380px;margin-top:14px;line-height:1.7}.ft-h{color:var(--copper2);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}footer ul{list-style:none;display:grid;gap:8px}.ft-bot{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(246,240,229,.12);margin-top:44px;padding-top:20px;color:rgba(246,240,229,.42);font-size:.84rem}
#tool-view{min-height:100vh;background:var(--ivory)}
.tv-nav{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,58px);background:var(--char);color:var(--ivory)}
.tv-back{display:flex;align-items:center;gap:9px;background:none;border:0;color:var(--ivory);font-size:.72rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.tv-back svg{width:18px}
.tv-crumb{color:rgba(246,240,229,.48);font-size:.78rem}
.tv-header{padding:80px clamp(24px,5vw,74px) 34px}
.tvh-tag{color:var(--copper);font-size:.76rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.tvh-h{font-size:clamp(4rem,8vw,8rem);margin-top:12px}
.tvh-sub{max-width:630px;color:var(--muted);font-size:1.06rem;line-height:1.8}
.t-prog{padding:0 clamp(24px,5vw,74px)}.t-prog-steps{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:#fff}.t-prog-step{padding:14px;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;border-right:1px solid var(--line);cursor:pointer}.t-prog-step.on{background:var(--char);color:var(--ivory)}.t-prog-step.done{color:var(--copper)}
.t-body{padding:34px clamp(24px,5vw,74px) 80px}.t-step{display:none}.t-step.on{display:block}
.t-label{color:var(--copper);font-size:.76rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;margin-bottom:12px}.t-q{font-size:clamp(3.2rem,6vw,6.4rem);max-width:880px}.t-hint{color:var(--muted);font-size:1.05rem;margin:12px 0 28px;max-width:690px;line-height:1.7}
.t-opts{display:grid;gap:12px}.t-opts.c2{grid-template-columns:repeat(2,1fr)}.t-opts.c3{grid-template-columns:repeat(3,1fr)}
.t-opt{position:relative;padding:24px;background:#fff;border:1px solid var(--line);min-height:118px;display:flex;align-items:end;transition:.2s}
.t-opt:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--copper);transform:scaleY(0);transition:.2s}.t-opt:hover,.t-opt.on{border-color:var(--char)}.t-opt:hover:before,.t-opt.on:before{transform:scaleY(1)}
.t-opt-name{font-family:"Big Shoulders Display";font-size:2rem;font-weight:850;text-transform:uppercase}.t-opt-desc{color:var(--muted)}
.t-tones{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.t-tone{background:#fff;border:1px solid var(--line);padding:10px;cursor:pointer}.t-tone.on{outline:3px solid rgba(189,117,66,.4);border-color:var(--char)}.t-swatch{height:66px}.t-tone-name{margin-top:8px;font-size:.78rem;font-weight:850}
.t-nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.t-next,.t-back,.t-restart,.t-enq-btn{min-height:48px;border:0;padding:0 22px;font-size:.72rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.t-next,.t-enq-btn{background:var(--char);color:var(--ivory)}.t-back,.t-restart{background:#fff;color:var(--char);border:1px solid var(--line)}.t-next:disabled{opacity:.35;cursor:not-allowed}
.t-result-head{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:end;margin-bottom:28px}.t-result-title{font-family:"Big Shoulders Display";font-size:clamp(3.5rem,7vw,7rem);line-height:.9;text-transform:uppercase}.t-result-intro{color:var(--muted);font-size:1.05rem;line-height:1.7}
.t-bar{display:grid;grid-template-columns:repeat(5,1fr);height:120px;margin:24px 0}.t-col{position:relative}.t-col span{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.52);color:#fff;padding:6px 8px;font-size:.68rem;font-weight:850}
.t-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.t-card{background:#fff;border:1px solid var(--line)}.t-card-top{height:90px}.t-card-body{padding:13px}.t-card-name{font-weight:900}.t-card-use{color:var(--muted);font-size:.82rem;margin-top:4px}.t-card-hex{font-size:.72rem;color:var(--copper);font-weight:850;margin-top:10px}
.t-tips,.t-estimate,.t-enquiry{background:#fff;border:1px solid var(--line);padding:24px;margin-top:18px}.t-tips h3,.t-estimate h3,.t-enquiry h3{font-family:"Big Shoulders Display";font-size:2.6rem;text-transform:uppercase}.t-tips ul{list-style:none;display:grid;gap:10px;margin-top:12px}.t-tips li{display:flex;gap:10px;color:var(--muted)}.t-tips li:before{content:"->";color:var(--copper);font-weight:900}
.t-estimate{display:grid;grid-template-columns:.85fr 1.15fr;gap:22px;align-items:start}.t-estimate-copy{color:var(--muted);line-height:1.65;margin-top:8px}.t-estimate-value{font-family:"Big Shoulders Display";font-size:clamp(3.4rem,7vw,6.8rem);font-weight:900;line-height:.85;color:var(--copper);margin-top:18px}.t-estimate-note{color:var(--muted);font-size:.86rem;margin-top:8px}.t-calc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.t-calc-field{display:grid;gap:7px}.t-calc-field label{font-size:.7rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.t-calc-field input,.t-calc-field select{border:1px solid var(--line);background:var(--paper);padding:13px;min-height:48px;outline:none}.t-calc-field input:focus,.t-calc-field select:focus{border-color:var(--copper)}.t-calc-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.t-calc-pill{background:var(--ivory);padding:12px}.t-calc-k{color:var(--muted);font-size:.64rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.t-calc-v{font-weight:900;margin-top:3px}
.t-enq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}.t-enq-input,.t-enq-ta{width:100%;border:1px solid var(--line);padding:13px;background:var(--paper)}.t-enq-ta{min-height:105px;resize:vertical}.t-enq-success{display:none;margin-top:14px;padding:20px;background:var(--sage2);border-left:4px solid var(--sage)}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.is-in{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.mq-track{animation:none}}
@media(max-width:1050px){.nav-links,.nav-actions{display:none}.hamb{display:flex}#about,.tool-section,#contact,.tv-header{grid-template-columns:1fr}.proc-grid{grid-template-columns:repeat(2,1fr)}.ft-top{grid-template-columns:1fr 1fr}.hero-bottom,.svc-hdr,.testi-hdr,.proc-hdr,.gal-hdr{display:block}.hero-actions{margin-top:18px}.svc-panel{grid-template-columns:1fr}.svc-row.open .svc-panel{max-height:700px}.t-result-head{grid-template-columns:1fr}.contact-right{padding:60px clamp(24px,5vw,74px)}}
@media(max-width:720px){#nav{height:58px}#hero{min-height:100svh;padding-top:58px;align-items:flex-end}.hero-ba{touch-action:pan-y}.hero-shade{background:linear-gradient(180deg,rgba(10,10,9,.18),rgba(10,10,9,.08) 35%,rgba(10,10,9,.76) 100%)}.hero-grid{background-size:54px 54px;opacity:.12}.hba-img{object-position:24% center}.hba-after{object-position:76% center}.hba-line{width:3px;background:rgba(255,255,255,.92);box-shadow:0 0 28px rgba(255,255,255,.32)}.hba-knob{width:58px;height:58px;background:var(--copper);color:#fff;border:2px solid rgba(255,255,255,.78);box-shadow:0 18px 54px rgba(0,0,0,.45)}.hba-knob:after{content:"Drag";position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);padding:5px 8px;background:rgba(0,0,0,.58);color:#fff;font-size:.52rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.hba-label{top:76px;bottom:auto;padding:7px 10px;font-size:.56rem}.hba-label.before{left:18px}.hba-label.after{right:18px}.hero-h1{max-width:360px;font-size:clamp(2.85rem,13.5vw,4.25rem);line-height:.82;letter-spacing:.01em}.hero-kicker{font-size:.63rem;letter-spacing:.12em}.hero-content{padding:0 18px 24px}.hero-bottom{padding-top:14px;margin-top:18px}.hero-sub{max-width:340px;font-size:.88rem;line-height:1.55}.hero-actions{margin-top:16px}.btn.hero-quote{min-height:58px;font-size:.72rem;letter-spacing:.13em}.btn{width:100%}#counter-strip,.about-stats,.sp-inc,.tool-steps,.t-opts.c2,.t-opts.c3,.t-tones,.t-cards,.t-bar,.t-enq-grid,.t-estimate,.t-calc-grid,.t-calc-summary,.proc-grid,.ft-top{grid-template-columns:1fr}.sr-head{grid-template-columns:44px 1fr 42px}.sr-price{display:none}.sr-name{font-size:2.5rem}.gal-slide{height:360px}.tf{grid-template-columns:1fr}.t-prog-steps{grid-template-columns:1fr}.tv-crumb{display:none}.contact-left{min-height:auto}.contact-ghost{display:none}.about-img-wrap{min-height:420px}}
@media(max-width:1050px){#finish-lab,.project-grid{grid-template-columns:1fr}.fl-stage{min-height:520px}.project-card.featured .pc-img,.pc-img{height:340px}.projects-head{display:block}.projects-copy{margin-top:14px}}
@media(max-width:720px){.fl-copy{padding:72px 22px}.fl-stage{min-height:460px}.fl-panel{left:18px;right:18px;bottom:18px;display:block}.fl-panel strong{font-size:2.5rem}.finish-grid,.pc-specs{grid-template-columns:1fr}.project-card.featured .pc-img,.pc-img{height:280px}#projects{padding:72px 22px}.pc-title{font-size:2.35rem}}

/* ── Grain texture for dark sections ──────────────────────── */
.grain-layer{pointer-events:none;position:absolute;inset:0;z-index:0;opacity:1}
#counter-strip,#services,#finish-lab,#tool-view,.wa-float-trigger{position:relative}
#counter-strip::after,#services::after,#finish-lab::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23g)' opacity='1'/%3E%3C/svg%3E");
  opacity:.038;mix-blend-mode:overlay;
}
#counter-strip>*,#services>*,#finish-lab>*{position:relative;z-index:1}

/* ── Diagonal section break ──────────────────────────────── */
#about{overflow:visible}
#about::before{
  content:'';position:absolute;top:-72px;left:0;right:0;height:72px;
  background:var(--ivory);
  clip-path:polygon(0 100%,100% 0,100% 100%);
  z-index:3;
}

/* ── Mobile sticky CTA bar ───────────────────────────────── */
#mob-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:62px;z-index:650;border-top:1px solid rgba(246,240,229,.12)}
@media(max-width:720px){
  #mob-bar{display:flex}
  body{padding-bottom:62px}
  .cs-item{min-height:168px;padding:28px}
  .cs-item:last-child{min-height:236px;padding-bottom:92px}
  .map-card iframe{height:360px}
  .map-info{grid-template-columns:1fr}
}
.mbb-quote{flex:1;display:flex;align-items:center;justify-content:center;background:var(--copper);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;gap:7px}
.mbb-wa{width:72px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#25D366;color:#fff;font-size:1.3rem;border-left:1px solid rgba(255,255,255,.18)}

/* ── Testimonial serif pull quote ────────────────────────── */
.tf-text{font-family:var(--serif);font-size:1.22rem;font-style:italic;font-weight:300;line-height:1.72;letter-spacing:.01em}
.tf-text::before{content:open-quote;font-size:1.8em;color:var(--copper);font-family:var(--serif);line-height:0;vertical-align:-.28em;margin-right:.06em}
.tf-text::after{content:close-quote;font-size:1.8em;color:var(--copper);font-family:var(--serif);line-height:0;vertical-align:-.28em;margin-left:.06em}

/* ── Generic page / 404 / search fallback (page.php, index.php, 404.php, search.php) ── */
.cbo-basic-page{max-width:820px;margin:0 auto;padding:140px clamp(24px,5vw,74px) 100px;min-height:60vh}
.cbo-basic-page h1{font-family:"Big Shoulders Display";font-size:clamp(2.6rem,6vw,4.2rem);font-weight:900;text-transform:uppercase;line-height:.95;margin-bottom:20px}
.cbo-basic-page h2{font-family:"Big Shoulders Display";font-size:1.8rem;font-weight:800;text-transform:uppercase;margin-bottom:8px}
.cbo-basic-page article{margin-bottom:34px;padding-bottom:34px;border-bottom:1px solid var(--line)}
.cbo-basic-page p{color:var(--muted);line-height:1.8}
.cbo-basic-page a{color:var(--copper);text-decoration:underline}
