:root{--ink:#25272b;--green:#25272b;--green2:#42464d;--red:#bd2d2f;--cream:#f7f5f0;--line:#dfded6;--muted:#737b75;--pale:#eeece5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #cf8e4d;outline-offset:3px}.wrap{width:min(1240px,calc(100% - 56px));margin:auto}.header{height:84px;background:rgba(247,245,240,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;backdrop-filter:blur(14px)}.nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{border:0;background:none;display:flex;align-items:center;gap:10px;padding:0;text-align:left;color:var(--ink)}.brand img{width:55px;height:55px;object-fit:contain}.brandtext{font:800 17px Manrope,sans-serif;letter-spacing:.08em}.brandtext span{display:block;font:600 9px 'DM Sans';letter-spacing:.19em;margin-top:4px}.navlinks{display:flex;align-items:center;gap:24px}.navlinks>button,.navdropdown>button{border:0;background:none;color:#3b433e;font-size:13px;font-weight:600;padding:12px 0;display:flex;align-items:center;gap:4px}.navlinks>button:hover,.navdropdown>button:hover{color:var(--red)}.navlinks .navcta{border:1px solid var(--green);padding:12px 15px;gap:8px}.navcta:hover{background:var(--green);color:white!important}.navdropdown{position:relative}.dropdown{position:absolute;top:43px;left:-20px;width:285px;max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--line);box-shadow:0 18px 45px #17241b22;padding:9px;display:none;z-index:60}.navdropdown:hover .dropdown,.navdropdown:focus-within .dropdown,.navdropdown.show .dropdown{display:block}.dropdown button{background:white;border:0;text-align:left;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;width:100%;font-size:13px;color:var(--ink)}.dropdown button:hover{background:var(--pale)}.mobile-toggle{display:none;background:none;border:0;font-size:24px}.hero{height:min(730px,calc(100vh - 84px));min-height:610px;position:relative;display:flex;align-items:center;overflow:hidden;background:#1b2922;color:white}.heroimage,.serviceheroimg{position:absolute;inset:0;background-position:center;background-size:cover}.heroimage:after,.serviceheroimg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(21,31,27,.88) 0%,rgba(21,31,27,.72) 42%,rgba(21,31,27,.1) 100%)}.herocontent{position:relative;z-index:1;padding-top:20px}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:10px;font-weight:700;letter-spacing:.19em;color:var(--green2);text-transform:uppercase}.eyebrow.light{color:#e9e9df}.eyedot{width:7px;height:7px;background:#c43a37;border-radius:50%}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-family:Manrope,sans-serif;letter-spacing:-.045em;font-weight:600}h1{font-size:clamp(44px,6vw,78px);line-height:1.04;margin:25px 0 22px;max-width:850px}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:#d7b18b}h2{font-size:clamp(32px,4vw,50px);line-height:1.12;margin:18px 0 24px}h3{font-family:Manrope,sans-serif;font-size:18px;letter-spacing:-.025em}.herocontent>p{max-width:610px;font-size:17px;line-height:1.8;color:#e2e5df}.herobuttons{display:flex;gap:12px;margin:30px 0}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:15px 19px;font-size:12px;font-weight:700;transition:.2s}.button:hover{transform:translateY(-2px)}.button-red{background:var(--red);color:#fff}.button-red:hover{background:#a92124}.button-outline-light{border-color:#ffffff99;color:white;background:#ffffff0a}.button-outline-light:hover{background:#ffffff18}.button-dark{background:var(--green);color:white}.button-dark:hover{background:#1c392b}.button-light{background:var(--cream);color:var(--ink)}.heroqualities{display:flex;gap:24px;flex-wrap:wrap;color:#e1e5df;font-size:11px;margin-top:45px}.herovertical{position:absolute;right:26px;bottom:40px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.22em;color:#ffffffa0}.section{padding:96px 0}.introgrid,.colourteasergrid,.whygrid,.detailgrid,.related,.contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.introgrid>div:nth-child(2)>p:not(.lead),.colourteasergrid>div>p,.detailgrid>div:nth-child(2)>p:not(.lead){font-size:15px;line-height:1.9;color:var(--muted)}.lead{font-size:19px;line-height:1.6;color:#3b4941}.textlink{display:inline-flex;align-items:center;gap:10px;border:0;background:none;padding:9px 0;color:var(--green);font-size:12px;font-weight:700;border-bottom:1px solid #aeb8ae}.textlink:hover{color:var(--red)}.pale{background:var(--pale)}.sectionhead{display:flex;align-items:end;justify-content:space-between;margin-bottom:36px}.sectionhead h2{margin-bottom:0}.servicegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.servicecard{padding:0;border:1px solid #deded6;background:#f9f8f4;text-align:left;color:var(--ink);transition:transform .25s,box-shadow .25s;overflow:hidden}.servicecard:hover{transform:translateY(-5px);box-shadow:0 14px 35px #263a2d12}.servicephoto{height:210px;background-size:cover;background-position:center;position:relative}.servicephoto:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#15231b66,transparent 55%)}.serviceicon{position:absolute;z-index:1;left:16px;bottom:15px;width:39px;height:39px;display:grid;place-items:center;background:var(--cream);color:var(--green);font-size:20px}.cardnumber{position:absolute;right:16px;bottom:24px;color:#fff;font-size:10px;letter-spacing:.15em;z-index:1}.servicecopy{padding:22px 22px 24px}.servicecopy h3{margin-bottom:10px}.servicecopy p{font-size:13px;line-height:1.65;color:var(--muted);min-height:44px}.cardlink{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;color:var(--green);padding-top:10px}.allservices{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.allservices button{border:1px solid #d4d5cc;background:transparent;padding:10px 13px;display:flex;align-items:center;gap:9px;color:#465149;font-size:11px}.allservices button:hover{background:white}.whygrid{grid-template-columns:1fr .9fr;gap:10%}.whyvisual{position:relative;padding:0 32px 36px 0}.whyvisual>img{width:100%;height:560px;object-fit:cover;display:block}.imagebadge{position:absolute;bottom:0;right:0;background:var(--red);color:white;padding:24px 28px;min-width:190px}.imagebadge span{font-size:9px;letter-spacing:.16em}.imagebadge strong{font:600 26px/1.15 Manrope;display:block;margin-top:16px}.whycontent h2{margin-bottom:14px}.whycontent h2 em,.colourteasergrid h2 em,.related h2 em,.contactgrid h2 em,.detailgrid h2 em{color:var(--green2)}.whycontent>.lead{font-size:16px;margin-bottom:27px}.reason{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--line)}.reason>span{font-size:11px;color:var(--red);font-weight:700;padding-top:3px}.reason h3{font-size:15px;margin:0 0 6px}.reason p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}.whycontent>.button{margin-top:22px}.teaserswatches{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;transform:rotate(-1deg)}.teaserswatches button{border:0;height:100px;box-shadow:0 6px 15px #17241b12;transition:.2s}.teaserswatches button:hover{transform:translateY(-5px)}.gallerygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.galleryitem{display:block;border:0;background:none;text-align:left;color:var(--ink);padding:0;min-width:0}.galleryitem img{width:100%;height:290px;object-fit:cover;display:block;transition:filter .2s}.galleryitem:hover img{filter:saturate(1.12)}.gallerylabel{display:block;font-size:9px;letter-spacing:.16em;font-weight:700;color:var(--green2);margin:18px 0 9px}.galleryitem h3{font-size:17px;display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.galleryitem h3 span{color:var(--red)}.galleryitem p{color:var(--muted);font-size:12px;line-height:1.7;margin:10px 0}.ctaBand{background:var(--green);color:white;padding:62px 0}.ctabox{display:flex;align-items:center;justify-content:space-between;gap:40px}.ctabox h2{font-size:clamp(30px,3.5vw,43px);max-width:680px;margin:16px 0 12px;color:white}.ctabox p{font-size:13px;color:#d0d9d1;margin:0}.footer{background:#1f2c25;color:#e9ebe4;padding:60px 0 20px}.footergrid{display:grid;grid-template-columns:1.4fr .7fr 1fr 1.1fr;gap:35px;padding-bottom:45px}.footerbrand{font:800 20px Manrope;letter-spacing:.08em}.footerbrand span{display:block;font:600 9px 'DM Sans';letter-spacing:.25em;margin-top:4px}.footer p{font-size:12px;color:#c1c9c1;line-height:1.8}.footer .small{max-width:250px;color:#96a59a}.footer h4{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#d5b18d;margin-bottom:18px}.footergrid>div>button:not(.footercta){display:block;background:none;border:0;color:#c1c9c1;font-size:12px;padding:6px 0;text-align:left}.footergrid>div>button:hover{color:white}.footercta{background:transparent;color:white;border:1px solid #6f8576;padding:11px 13px;display:flex;align-items:center;gap:9px;font-size:11px;margin-top:16px}.copyright{border-top:1px solid #ffffff20;padding-top:17px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#aab5ac}.pagehero{background:linear-gradient(110deg,#1b2d23,#314b3b);color:white;position:relative;overflow:hidden}.pagehero.compact{padding:76px 0 80px}.pagehero h1{font-size:clamp(42px,5vw,68px);margin:22px 0 20px}.pagehero p{max-width:650px;line-height:1.8;color:#d7ded7;font-size:15px;margin:0}.catalogueintro{display:grid;grid-template-columns:1.2fr .8fr;gap:10%;align-items:end;margin-bottom:38px}.catalogueintro h2{margin-bottom:0}.catalogueintro h2 em{color:var(--green2)}.catalogueintro>p{color:var(--muted);font-size:13px;line-height:1.8;margin-bottom:4px}.visualizer{background:#fff;border:1px solid var(--line);padding:20px;margin-bottom:38px}.visualtop,.visualfoot{display:flex;justify-content:space-between;align-items:center;gap:20px}.visualtop h3{font-size:21px;margin:7px 0 3px}.visualtop p{color:var(--muted);font-size:11px;margin:0}.modebuttons{display:flex;border:1px solid var(--line);padding:4px;gap:3px}.modebuttons button{background:transparent;border:0;padding:10px 13px;font-size:11px;color:var(--muted)}.modebuttons button.active{background:var(--green);color:white}.roompreview{height:380px;position:relative;overflow:hidden;background:#ddd5c7;isolation:isolate;margin-top:18px}.room-ceiling{position:absolute;top:0;left:0;right:0;height:12%;background:#f2eee5;clip-path:polygon(0 0,100% 0,93% 100%,7% 100%);z-index:2}.room-wall{position:absolute;inset:8% 0 23%;background:var(--paint);clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);transition:background .35s}.window{position:absolute;left:12%;top:15%;width:25%;height:57%;background:#b8d1d9;border:9px solid #f0eee6;box-shadow:inset 0 0 0 4px #b4b8b1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:5px}.window div{background:linear-gradient(135deg,#a6c5cf,#e4e3d6 55%,#a3c0ca)}.artframe{position:absolute;right:20%;top:18%;width:17%;height:31%;background:#e8dfcf;padding:8px;box-shadow:0 5px 13px #1b2d2340}.artframe div{height:100%;background:linear-gradient(140deg,#9a694e 0 33%,#d5c29d 34% 65%,#4e6655 66%)}.shelf{position:absolute;right:13%;top:57%;width:28%;height:7px;background:#9c7653}.plant{position:absolute;right:14%;bottom:0;width:52px;height:90px}.plant b{position:absolute;bottom:0;left:10px;width:34px;height:37px;background:#b47d53;clip-path:polygon(10% 0,90% 0,100% 100%,0 100%)}.plant i{position:absolute;bottom:29px;left:20px;width:15px;height:48px;background:#355b43;border-radius:100% 0 100% 0;transform:rotate(-28deg);transform-origin:bottom}.plant i:nth-child(2){transform:rotate(28deg);left:27px;background:#557454}.plant i:nth-child(3){transform:rotate(-5deg);left:15px;background:#45664d}.room-floor{position:absolute;bottom:0;height:25%;width:100%;background:linear-gradient(180deg,#b69b7d,#8b6e54);z-index:-1}.rug{position:absolute;bottom:0;left:25%;width:48%;height:90%;background:#d9d0bf;transform:perspective(150px) rotateX(10deg)}.sofa{position:absolute;left:35%;bottom:15%;height:65%;width:30%;background:#d4c9b6;border-radius:10px 10px 2px 2px;box-shadow:0 10px 0 #b5a58f}.sofa:before,.sofa:after{content:"";position:absolute;top:25%;height:60%;width:18%;background:#bcae99;border-radius:8px}.sofa:before{left:-8%}.sofa:after{right:-8%}.sofa i{position:absolute;left:7%;top:10%;width:42%;height:65%;background:#e7dfd1;border-radius:4px}.sofa i:nth-child(2){left:51%;background:#b9c0ad}.side-table{position:absolute;right:17%;bottom:18%;width:8%;height:27%;background:#715641}.side-table:after{content:"";position:absolute;top:-12px;left:-7px;right:-7px;height:12px;background:#a78360}.fencepreview{height:380px;position:relative;overflow:hidden;margin-top:18px;background:linear-gradient(#d9e4e3 0 55%,#9caa84 55% 100%)}.fenceground{position:absolute;bottom:0;height:24%;width:100%;background:linear-gradient(#7e916a,#52684b)}.fenceposts{position:absolute;inset:5% 4% 10%;display:flex;gap:8px;justify-content:space-around}.fenceposts span{height:100%;width:7%;background:var(--paint);border:1px solid #0002;box-shadow:inset 6px 0 7px #ffffff26,inset -5px 0 8px #00000012;transition:background .35s}.fencerails{position:absolute;inset:23% 0 23%;display:flex;flex-direction:column;justify-content:space-between}.fencerails span{height:10%;background:var(--paint);border-top:2px solid #ffffff28;border-bottom:3px solid #0002;transition:background .35s}.fenceplant{position:absolute;right:5%;bottom:0;width:18%;height:46%;background:#3d6543;clip-path:polygon(50% 0,62% 38%,100% 25%,70% 55%,100% 70%,57% 67%,50% 100%,40% 67%,0 80%,28% 54%,0 34%,39% 41%)}.fencecaption{position:absolute;left:18px;bottom:14px;background:#f7f5f0e8;padding:10px 12px;font-size:9px;letter-spacing:.16em}.visualfoot{padding:16px 2px 0}.visualfoot>span{font-size:12px;display:flex;align-items:center;gap:9px}.selecteddot{width:17px;height:17px;border-radius:50%;border:1px solid #0002;display:inline-block}.visualfoot small{color:var(--muted);font-size:10px}.cataloguecontrols{display:flex;flex-direction:column;gap:18px;margin-bottom:24px}.searchbox{height:48px;background:white;border:1px solid var(--line);display:flex;align-items:center;gap:11px;padding:0 15px;color:var(--muted)}.searchbox input{border:0;outline:0;flex:1;min-width:0;font-size:13px;background:transparent}.familytabs{display:flex;flex-wrap:wrap;gap:8px}.familytabs button{background:transparent;border:1px solid var(--line);padding:10px 13px;font-size:11px;color:#59635b}.familytabs button.selected,.familytabs button:hover{background:var(--green);border-color:var(--green);color:white}.swatchgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.swatchcard{background:#fff;border:1px solid #e3e2da;padding:8px;text-align:left;color:var(--ink);transition:transform .2s,border .2s}.swatchcard:hover{transform:translateY(-3px)}.swatchcard.chosen{border:2px solid var(--green);padding:7px}.swatch{height:105px;display:flex;align-items:center;justify-content:center;color:white}.swatchname{display:block;font-weight:700;font-size:12px;margin:12px 4px 5px}.swatchmeta{display:flex;justify-content:space-between;gap:4px;margin:0 4px 5px;font-size:9px;color:var(--muted)}.swatchmeta i{font-style:normal;text-align:right}.catalogue-note{margin-top:30px;padding:18px;background:#eeece5;display:flex;align-items:flex-start;gap:14px;color:var(--green)}.catalogue-note p{font-size:12px;line-height:1.7;margin:0;color:#606a62}.servicehero{position:relative;min-height:510px;display:flex;align-items:center;background:#1b2922;color:white;overflow:hidden}.serviceherocopy{position:relative;z-index:1;padding:60px 0}.serviceherocopy h1{font-size:clamp(44px,5.7vw,72px)}.serviceherocopy p{max-width:590px;font-size:16px;line-height:1.8;color:#e2e5df;margin-bottom:25px}.pointgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:35px}.point{background:#f8f7f2;padding:23px;min-height:200px;border-top:2px solid var(--green)}.point>span{font-size:10px;color:var(--red);font-weight:700}.point h3{font-size:16px;margin:22px 0 12px}.point p{font-size:12px;line-height:1.7;color:var(--muted)}.related{align-items:start}.relatedlinks{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.relatedlinks button{border:0;border-bottom:1px solid var(--line);background:none;padding:15px 0;display:flex;justify-content:space-between;align-items:center;text-align:left;font-size:12px;color:var(--ink)}.contactgrid{align-items:start;gap:8%}.contactform{background:#fff;border:1px solid var(--line);padding:32px}.contactform h3{font-size:24px;margin-bottom:8px}.contactform>p{font-size:11px;color:var(--muted)}.contactform label{display:block;font-size:11px;font-weight:700;margin:18px 0;color:#48544c}.contactform input,.contactform select,.contactform textarea{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #d9dcd5;background:#fbfaf7;color:var(--ink);font-size:12px;border-radius:0}.contactform textarea{resize:vertical}.contactform .button{width:100%;margin-top:8px}.contactdetail{display:flex;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--line);color:var(--green)}.contactdetail strong,.contactdetail a,.contactdetail span{display:block;font-size:12px}.contactdetail strong{margin-bottom:4px;color:var(--ink)}.contactdetail a{color:var(--green)}.contactnote{background:#eeece5;padding:16px;font-size:11px;line-height:1.8;color:#677168;margin-top:16px}.formnotice{background:#f5e7d9;padding:12px;color:#704c32!important;line-height:1.6}.formfine{font-size:10px!important;line-height:1.6;margin-top:15px}.empty{padding:30px;color:var(--muted)}
@media(max-width:1000px){.navlinks{gap:14px}.navlinks>button,.navdropdown>button{font-size:12px}.brandtext{font-size:15px}.servicegrid{grid-template-columns:repeat(2,1fr)}.swatchgrid{grid-template-columns:repeat(4,1fr)}.footergrid{grid-template-columns:1.2fr 1fr 1fr}.footergrid>div:last-child{grid-column:2/4}.pointgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.header{height:72px}.brand img{width:43px;height:43px}.brandtext{font-size:14px}.mobile-toggle{display:block}.navlinks{display:none;position:absolute;left:0;right:0;top:71px;background:var(--cream);padding:16px 22px 22px;border-bottom:1px solid var(--line);box-shadow:0 18px 30px #17241b12;align-items:stretch;gap:3px}.navlinks.open{display:flex;flex-direction:column}.navlinks>button,.navdropdown>button{width:100%;justify-content:space-between;padding:13px 3px;font-size:13px}.navlinks .navcta{justify-content:center;margin-top:8px}.dropdown{position:static;width:100%;max-height:240px;box-shadow:none;margin-bottom:10px}.hero{height:auto;min-height:680px;max-height:none}.heroimage{background-position:58% center}.herocontent{padding-top:65px;padding-bottom:55px}.hero h1{font-size:clamp(43px,11vw,60px)}.herocontent>p{font-size:15px}.heroqualities{gap:11px 17px;margin-top:35px}.herovertical{display:none}.section{padding:68px 0}.introgrid,.colourteasergrid,.whygrid,.detailgrid,.related,.contactgrid,.catalogueintro{grid-template-columns:1fr;gap:25px}.sectionhead{align-items:start;gap:18px;flex-direction:column}.servicegrid{grid-template-columns:1fr}.servicephoto{height:230px}.servicecopy p{min-height:0}.whyvisual{padding:0 20px 24px 0}.whyvisual>img{height:430px}.imagebadge{padding:18px 20px;min-width:155px}.imagebadge strong{font-size:23px}.whycontent{padding-top:20px}.teaserswatches{gap:7px}.teaserswatches button{height:76px}.gallerygrid{grid-template-columns:1fr;gap:30px}.galleryitem img{height:260px}.ctabox{align-items:flex-start;flex-direction:column;gap:25px}.ctabox h2{font-size:34px}.footergrid{grid-template-columns:1fr 1fr;gap:30px 20px}.footergrid>div:first-child{grid-column:1/3}.footergrid>div:last-child{grid-column:auto}.copyright{flex-direction:column;gap:8px;line-height:1.6}.pagehero.compact{padding:58px 0 62px}.catalogueintro{margin-bottom:26px}.catalogueintro h2{font-size:35px}.visualizer{padding:12px}.visualtop{align-items:flex-start;flex-direction:column}.modebuttons{width:100%}.modebuttons button{flex:1}.roompreview,.fencepreview{height:280px}.window{border-width:5px}.artframe{padding:4px}.plant{transform:scale(.8);transform-origin:bottom right}.visualfoot{align-items:flex-start;flex-direction:column;gap:9px}.familytabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.familytabs button{white-space:nowrap}.swatchgrid{grid-template-columns:repeat(2,1fr);gap:10px}.swatch{height:105px}.servicehero{min-height:570px}.serviceherocopy{padding-top:50px;padding-bottom:50px}.serviceherocopy h1{font-size:clamp(43px,10vw,58px)}.pointgrid{grid-template-columns:1fr 1fr;gap:9px}.point{padding:16px;min-height:190px}.point h3{font-size:14px}.relatedlinks{grid-template-columns:1fr}.contactform{padding:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* NorthPeak polish: motion, depth and accessible interaction */
html{scroll-padding-top:88px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E")}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--red);z-index:1001;transition:width .08s linear}
.header{box-shadow:0 3px 18px #1b2b2110}
.navlinks>button:not(.navcta):after,.navdropdown>button:after{content:"";height:1px;background:var(--red);position:absolute;bottom:5px;left:0;right:100%;transition:right .22s}
.navlinks>button:not(.navcta),.navdropdown>button{position:relative}
.navlinks>button:not(.navcta):hover:after,.navdropdown>button:hover:after{right:0}
.brand img{transition:transform .35s ease}.brand:hover img{transform:rotate(-4deg) scale(1.04)}
.heroimage{transform:scale(1.025);animation:heroImageIn 1.1s cubic-bezier(.2,.7,.2,1) both}
.herocontent>*{animation:fadeUp .7s cubic-bezier(.2,.7,.2,1) both}
.herocontent>*:nth-child(1){animation-delay:.05s}.herocontent>*:nth-child(2){animation-delay:.13s}.herocontent>*:nth-child(3){animation-delay:.22s}.herocontent>*:nth-child(4){animation-delay:.3s}.herocontent>*:nth-child(5){animation-delay:.38s}
.button{position:relative;overflow:hidden}.button:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff28 45%,transparent 70%);transform:translateX(-120%);transition:transform .55s}.button:hover:after{transform:translateX(120%)}
.servicephoto{transition:background-size .45s ease}.servicecard:hover .servicephoto{background-size:108%}
.servicecard,.galleryitem,.swatchcard,.point{will-change:transform}
.galleryitem img{transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s}.galleryitem:hover img{transform:scale(1.025)}
.teaserswatches button{position:relative;overflow:hidden}.teaserswatches button:after{content:"";position:absolute;inset:0;border:1px solid #ffffff70;opacity:0;transition:opacity .2s}.teaserswatches button:hover:after{opacity:1}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.reveal.in-view{opacity:1;transform:translateY(0)}
@keyframes fadeUp{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroImageIn{from{transform:scale(1.08);filter:saturate(.75)}to{transform:scale(1.025);filter:saturate(1)}}
@media(prefers-reduced-motion:reduce){.reveal,.heroimage,.herocontent>*{animation:none!important;transition:none!important;opacity:1;transform:none}}


/* Footer layout repair: keep each column within its grid track */
.footergrid{grid-template-columns:minmax(0,1.35fr) minmax(110px,.65fr) minmax(180px,1fr) minmax(210px,1.1fr);gap:28px;align-items:start}
.footergrid>div{min-width:0}
.footergrid>div:first-child{max-width:300px}
.footergrid>div:nth-child(3){min-width:0}
#footerServices{display:grid;grid-template-columns:1fr;gap:0}
.footergrid #footerServices button{display:block;width:100%;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.45;padding:7px 0;border:0;background:transparent;color:#c1c9c1;font-size:12px;text-align:left}
.footergrid #footerServices button:hover{color:#fff;transform:translateX(3px)}
.footergrid>div>button:not(.footercta){display:block;width:100%;max-width:100%;white-space:normal;line-height:1.45}
.footergrid .footercta{max-width:100%;white-space:normal;line-height:1.45}
.footer{overflow:hidden}
@media(max-width:1000px){.footergrid{grid-template-columns:1.1fr 1fr 1fr;gap:25px}.footergrid>div:last-child{grid-column:2/4}}
@media(max-width:760px){.footergrid{grid-template-columns:1fr 1fr;gap:25px 18px}.footergrid>div:first-child{grid-column:1/3}.footergrid>div:last-child{grid-column:auto}#footerServices button{font-size:11px}}


.navlinks>button{white-space:nowrap}
.navlinks>button:nth-of-type(4){color:var(--green);font-weight:700}
.navlinks>button:nth-of-type(4):hover{color:var(--red)}
.colourteasergrid{background:transparent}
.colourteasergrid .button{margin-top:10px}


.colour-nav-link{color:var(--green)!important;font-weight:800!important}
.colour-nav-link span{color:var(--red);margin-left:3px}
.catalogue-quicklink{position:fixed;right:0;top:46%;z-index:40;background:var(--green);color:#fff;text-decoration:none;padding:13px 10px;writing-mode:vertical-rl;letter-spacing:.12em;font-size:10px;font-weight:700;box-shadow:0 6px 22px #17241b22;transition:background .2s, padding .2s}
.catalogue-quicklink:hover{background:var(--red);padding-right:14px}
@media(max-width:760px){.catalogue-quicklink{top:auto;bottom:14px;right:12px;writing-mode:horizontal-tb;padding:12px 14px;letter-spacing:.04em;box-shadow:0 8px 24px #17241b35}.catalogue-quicklink:hover{padding-right:14px}}


:root{--ink:#252729;--green:#273b33;--green2:#3e5a4c;--red:#c52f32;--cream:#f7f5f1;--line:#dedbd4;--muted:#707875;--pale:#eeece6}
.hero{background:#202a26}
.button-red{background:#c52f32}
.button-red:hover{background:#a82328}
.ctaBand{background:#273b33}
.footer{background:#202723}
.eyebrow{color:#3e5a4c}
.imagebadge{background:#c52f32}


:root{--ink:#202124;--green:#292a2d;--green2:#4a4b4f;--red:#c9252c;--cream:#f7f5f1;--line:#dedbd5;--muted:#707177;--pale:#eeece7}
body{background:var(--cream);color:var(--ink)}
.eyebrow,.textlink,.cardlink,.gallerylabel{color:var(--red)}
.button-dark,.ctaBand,.catalogue-quicklink,.familytabs button.selected,.familytabs button:hover,.modebuttons button.active{background:#252629;color:#fff}
.button-red{background:#c9252c}.button-red:hover{background:#a91e24}
.footer{background:#202124}.imagebadge{background:#c9252c}
.reason>span{color:#c9252c}.point{border-top-color:#c9252c}

.recommend-panel{border:1px solid var(--line);background:#fff;padding:22px;margin:0 0 30px}
.recommend-head{display:flex;justify-content:space-between;align-items:end;gap:20px}
.recommend-head h3{font-size:23px;margin:8px 0}.recommend-head p{font-size:12px;color:var(--muted);margin:0}
.recommend-head select{min-width:210px;padding:12px;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-size:12px}
.recommendations{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.recommend-card{display:grid;grid-template-columns:66px 1fr;gap:12px;align-items:center;border:1px solid var(--line);padding:10px;background:#fbfaf7;text-align:left;color:var(--ink)}
.recommend-chip{height:64px;background:var(--chip)}.recommend-card strong{display:block;font-size:12px}
.recommend-card small{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.4}
.saved-head{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font-size:12px}
.saved-head span{color:var(--muted)}.saved-colours{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.saved-pill{display:flex;align-items:center;gap:8px;background:var(--cream);border:1px solid var(--line);padding:7px 10px;font-size:11px}
.saved-pill i{width:17px;height:17px;border-radius:50%;display:inline-block}.saved-pill button{border:0;background:none;color:var(--red);font-size:14px}
.saved-empty{font-size:11px;color:var(--muted);margin:0}.visual-actions{display:flex;align-items:center;gap:12px}
.save-colour-btn{border:1px solid #c9252c;background:#fff;color:#c9252c;padding:10px 13px;font-size:11px;font-weight:700}
.save-colour-btn.saved{background:#c9252c;color:#fff}
.calc-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);gap:20px;align-items:stretch}
.calc-form{border:1px solid var(--line);border-radius:16px;padding:28px;background:#fff}
.calc-progress-label{font-size:10px;letter-spacing:.15em;font-weight:700;color:var(--muted);text-transform:uppercase}
.calc-progress{height:5px;background:#e8e5df;margin:15px 0 28px;overflow:hidden}.calc-progress span{display:block;height:100%;background:#c9252c;transition:width .25s}
.calc-question{font:600 clamp(24px,3vw,32px)/1.15 Georgia,serif;margin-bottom:10px}.calc-help{font-size:13px;color:var(--muted);margin-bottom:24px}
.calc-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.calc-option{border:1px solid var(--line);background:#fff;padding:15px;text-align:left;color:var(--ink);font-size:12px;font-weight:600;min-height:54px}
.calc-option:hover,.calc-option.active{border-color:#c9252c;background:#fff5f5;box-shadow:inset 0 0 0 1px #c9252c}
.calc-result{background:#202124;color:#fff;border-radius:16px;padding:35px;display:flex;flex-direction:column;min-height:530px}
.calc-result .eyebrow{color:#e5bca0}.calc-result h2{font:600 clamp(34px,4vw,50px)/1.1 Georgia,serif;color:#fff;margin:23px 0 14px;letter-spacing:-.04em}
.calc-result p{font-size:12px;line-height:1.8;color:#d6d6d6}.calc-breakdown{border-top:1px solid #ffffff26;margin-top:10px;padding-top:16px}
.calc-breakdown div{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin:12px 0;color:#dedede}
.calc-disclaimer{margin-top:auto!important;padding-top:26px;color:#bfc0c3!important}
@media(max-width:900px){.calc-layout{grid-template-columns:1fr}.calc-result{min-height:420px}.recommendations{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.recommend-head{align-items:stretch;flex-direction:column}.recommend-head select{width:100%}.recommendations{grid-template-columns:1fr}.visual-actions{align-items:stretch;flex-direction:column;gap:8px}.calc-form{padding:20px}.calc-options{grid-template-columns:1fr}.calc-result{padding:25px;min-height:400px}}

/* NorthPeak brand override — no green theme */
:root{--ink:#202124!important;--green:#292a2d!important;--green2:#44464a!important;--red:#c9252c!important;--cream:#f7f5f1!important;--line:#dedbd5!important;--muted:#707177!important;--pale:#eeece7!important;--primary:#c9252c!important;--swatch:#c9252c!important}
body{background:#f7f5f1!important;color:#202124!important}
.header,.navbar,.nav,.navlinks{background:#fff!important}
.navcta,.button-red,.btn-primary,.catalogue-quicklink{background:#c9252c!important;color:#fff!important}
.footer,.ctaBand,.button-dark,.calc-result{background:#202124!important;color:#fff!important}
.eyebrow,.textlink,.cardlink,.gallerylabel,.reason>span{color:#c9252c!important}
.button-red:hover,.navcta:hover,.catalogue-quicklink:hover{background:#a91e24!important}


.calc-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);gap:20px;align-items:stretch}
.calc-form{border:1px solid var(--line);border-radius:16px;padding:28px;background:#fff}
.calc-progress-label{font-size:10px;letter-spacing:.15em;font-weight:700;color:var(--muted);text-transform:uppercase}
.calc-progress{height:5px;background:#e8e5df;margin:15px 0 28px;overflow:hidden}.calc-progress span{display:block;height:100%;background:#c9252c;transition:width .25s}
.calc-question{font:600 clamp(24px,3vw,32px)/1.15 Georgia,serif;margin-bottom:10px}.calc-help{font-size:13px;color:var(--muted);margin-bottom:24px}
.calc-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.calc-option{border:1px solid var(--line);background:#fff;padding:15px;text-align:left;color:var(--ink);font-size:12px;font-weight:600;min-height:54px}
.calc-option:hover,.calc-option.active{border-color:#c9252c;background:#fff5f5;box-shadow:inset 0 0 0 1px #c9252c}
.calc-result{background:#202124;color:#fff;border-radius:16px;padding:35px;display:flex;flex-direction:column;min-height:530px}
.calc-result .eyebrow{color:#e5bca0}.calc-result h2{font:600 clamp(34px,4vw,50px)/1.1 Georgia,serif;color:#fff;margin:23px 0 14px}
.calc-result p{font-size:12px;line-height:1.8;color:#d6d6d6}.calc-breakdown{border-top:1px solid #ffffff26;margin-top:10px;padding-top:16px}
.calc-breakdown div{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin:12px 0;color:#dedede}.calc-disclaimer{margin-top:auto!important;padding-top:26px;color:#bfc0c3!important}
.calculator-quicklink{position:fixed;right:0;top:63%;z-index:40;background:#c9252c;color:#fff!important;text-decoration:none;padding:12px 9px;writing-mode:vertical-rl;letter-spacing:.1em;font-size:10px;font-weight:800;box-shadow:0 6px 22px #17241b22}
.calculator-quicklink:hover{background:#a91e24!important}
@media(max-width:900px){.calc-layout{grid-template-columns:1fr}.calc-result{min-height:420px}}
@media(max-width:760px){.calc-options{grid-template-columns:1fr}.calc-form{padding:20px}.calc-result{padding:25px;min-height:400px}.calculator-quicklink{top:auto;bottom:65px;right:12px;writing-mode:horizontal-tb;padding:12px 14px}}

/* Colour studio live room visualizer refinements */
.preview-controls{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.room-select-label{display:flex;flex-direction:column;gap:6px;color:#c9252c;font-size:9px;font-weight:800;letter-spacing:.13em}
.room-select-label select{min-width:155px;padding:11px 32px 11px 12px;border:1px solid #d9d5ce;background:#fff;color:#202124;font:500 12px inherit;letter-spacing:0}
.room-select-label select:focus{outline:2px solid #c9252c;outline-offset:2px}
.photo-studio{position:relative;min-height:280px;background:#eee9df;overflow:hidden;border:1px solid #ddd8cf}.photo-studio img{display:block;width:100%;max-height:620px;min-height:280px;object-fit:contain;background:#eee9df}.photo-studio .photo-tint{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color;opacity:.48;transition:background-color .25s}.photo-studio .photo-caption{position:absolute;left:14px;bottom:14px;background:#252525e8;color:#fff;padding:10px 12px;font-size:10px;letter-spacing:.08em}.upload-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:15px 0}.upload-panel p{font-size:12px;line-height:1.6;color:var(--muted);margin:0;max-width:560px}.upload-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.upload-button{display:inline-flex;align-items:center;gap:8px;padding:12px 15px;background:#252525;color:#fff;font-size:11px;font-weight:700;cursor:pointer}.upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-button:hover{background:#bd2d2f}.upload-reset{border:1px solid var(--line);background:#fff;padding:12px 14px;font-size:11px;color:var(--ink)}.photo-studio[hidden],#scene[hidden]{display:none!important}.roompreview{transition:background-color .45s ease;box-shadow:inset 0 0 0 1px #ffffff50}
.room-wall{transition:background-color .45s ease,filter .45s ease}
.scene-enter{animation:sceneArrive .55s cubic-bezier(.2,.75,.25,1) both}
.scene-refresh .room-wall,.scene-refresh .fenceposts span,.scene-refresh .fencerails span{animation:paintReveal .65s ease both}
@keyframes sceneArrive{from{opacity:.3;transform:translateY(7px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes paintReveal{0%{filter:saturate(.7);opacity:.8}100%{filter:saturate(1);opacity:1}}
.roompreview .room-wall{overflow:hidden}
.roompreview .window,.roompreview .artframe,.roompreview .shelf,.roompreview .plant{transition:all .4s ease}
.roompreview.room-bedroom .window{left:8%;top:13%;width:22%;height:48%}
.roompreview.room-bedroom .artframe{right:15%;top:12%;width:19%;height:25%}
.roompreview.room-bedroom .shelf{display:none}
.roompreview.room-bedroom .plant{right:10%;transform:scale(.85)}
.bed-headboard{position:absolute;right:23%;bottom:0;width:36%;height:43%;background:#8a6b58;border-radius:5px 5px 0 0;box-shadow:0 5px 0 #6f5547}
.bed-frame{position:absolute;right:19%;bottom:-1%;width:44%;height:24%;background:#8c725f;clip-path:polygon(0 0,100% 0,95% 100%,5% 100%)}
.bed-mattress{position:absolute;right:21%;bottom:17%;width:40%;height:29%;background:#f2eee5;border-radius:7px 7px 0 0;box-shadow:0 7px 0 #c9c0b2}
.bed-mattress i{position:absolute;top:10%;left:5%;width:35%;height:37%;background:#fff;border-radius:5px}
.bed-mattress i:nth-child(2){left:44%;background:#d8dcd5}
.bed-duvet{position:absolute;right:22%;bottom:0;width:38%;height:26%;background:#aebbb0;border-radius:7px 7px 0 0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.bedside{position:absolute;right:12%;bottom:13%;width:8%;height:18%;background:#866b53;box-shadow:0 -7px 0 #a88a6c}
.bed-lamp{position:absolute;right:13.5%;bottom:32%;width:5%;height:10%;background:#e9dfc7;clip-path:polygon(25% 0,75% 0,100% 75%,0 75%)}
.roompreview.room-kitchen .window{left:8%;top:12%;width:22%;height:43%}
.roompreview.room-kitchen .artframe,.roompreview.room-kitchen .shelf{display:none}
.roompreview.room-kitchen .plant{display:none}
.kitchen-upper{position:absolute;right:12%;top:8%;width:46%;height:25%;display:flex;gap:5px}
.kitchen-upper i{flex:1;background:#eee9df;border:5px solid #c8beb0;box-shadow:inset 0 0 0 1px #ffffff}
.kitchen-counter{position:absolute;right:7%;top:36%;width:56%;height:5%;background:#d6d0c4;border-top:3px solid #fff;box-shadow:0 5px 8px #0002}
.kitchen-lower{position:absolute;right:9%;top:42%;width:52%;height:29%;display:flex;gap:5px}
.kitchen-lower i{flex:1;background:#f0ece3;border:5px solid #d1c7b8;box-shadow:inset 0 0 0 1px #fff}
.kitchen-sink{position:absolute;right:22%;top:35%;width:13%;height:5%;background:#9faeb0;border-radius:0 0 15px 15px;border:2px solid #eef0e8}
.kitchen-faucet{position:absolute;right:26%;top:27%;width:2%;height:9%;border:4px solid #9ba5a5;border-bottom:0;border-radius:10px 10px 0 0}
.roompreview.room-bathroom{background:#e8e4db}
.roompreview.room-bathroom .window{left:8%;top:12%;width:20%;height:42%}
.roompreview.room-bathroom .artframe,.roompreview.room-bathroom .shelf,.roompreview.room-bathroom .plant{display:none}
.roompreview.room-bathroom .room-wall{background:var(--paint)}
.roompreview.room-bathroom .room-wall:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.6%,#ffffff18 50%,transparent 50.4%),linear-gradient(0deg,transparent 49.6%,#ffffff18 50%,transparent 50.4%);background-size:80px 80px;opacity:.8;pointer-events:none}
.bath-mirror{position:absolute;right:18%;top:10%;width:27%;height:31%;border:9px solid #f4f0e7;background:linear-gradient(135deg,#b7d1d6,#e7eee8 45%,#9fb7c1);border-radius:3px;box-shadow:0 5px 14px #0002}
.bath-vanity{position:absolute;right:15%;bottom:0;width:34%;height:35%;background:#b6a18b;border-top:8px solid #f2eee5;box-shadow:0 -3px 0 #8f7964}
.bath-basin{position:absolute;right:23%;bottom:32%;width:18%;height:8%;background:#f7f5ef;border:2px solid #c9c8c1;border-radius:0 0 50% 50%}
.bath-faucet{position:absolute;right:30%;bottom:39%;width:3%;height:12%;border:4px solid #9fa7a5;border-bottom:0;border-radius:9px 9px 0 0}
.bath-tub{position:absolute;left:12%;bottom:0;width:30%;height:23%;background:#f5f3ed;border:7px solid #d3d4ce;border-radius:16px 16px 0 0;box-shadow:inset 0 -12px 0 #d5e1e1}
.bath-tileline{position:absolute;left:0;right:0;bottom:25%;height:2px;background:#ffffff6b;box-shadow:0 -28px 0 #ffffff35,0 -56px 0 #ffffff35}
@media(max-width:760px){.preview-controls{width:100%;justify-content:stretch;align-items:stretch}.room-select-label{flex:1}.room-select-label select{width:100%;min-width:0}.visualtop{align-items:flex-start;gap:15px;flex-direction:column}.roompreview,.fencepreview{height:300px}}


/* Refined architectural colour preview */
.roompreview{height:clamp(300px,34vw,460px)!important;position:relative!important;overflow:hidden!important;background:#eee9df!important;border:1px solid #e2ddd3;isolation:isolate}
.room-artwork{display:block;width:100%;height:100%;position:absolute;inset:0;filter:saturate(.96);transition:filter .45s ease}
.scene-refresh .room-artwork{animation:roomReveal .65s cubic-bezier(.2,.75,.25,1) both}
.scene-caption{position:absolute;left:16px;bottom:14px;padding:9px 11px;background:#fffdf2e8;color:#30322f;font-size:9px;font-weight:800;letter-spacing:.16em;border:1px solid #ffffffa8;box-shadow:0 3px 14px #252d2912}
@keyframes roomReveal{from{opacity:.72;transform:scale(1.012);filter:saturate(.7)}to{opacity:1;transform:scale(1);filter:saturate(1)}}
@media(max-width:760px){.roompreview{height:300px!important}.scene-caption{left:9px;bottom:9px;font-size:8px;padding:7px 8px}}

/* Room selector fix and refined preview artwork */
#scene{overflow:hidden;background:#f3eee4}
.roompreview{position:relative;width:100%;overflow:hidden;min-height:260px;background:#f3eee4;isolation:isolate}
.room-artwork{display:block;width:100%;height:auto;min-height:260px;max-height:560px;object-fit:contain;transition:opacity .35s ease,transform .45s ease}
.scene-caption{position:absolute;left:18px;bottom:16px;background:rgba(32,33,36,.78);color:#fff;padding:8px 11px;font-size:10px;letter-spacing:.14em;font-weight:700;border-radius:2px}
.scene-refresh .roompreview,.scene-refresh .fencepreview{animation:roomFade .42s ease both}
@keyframes roomFade{from{opacity:.35;transform:scale(.99)}to{opacity:1;transform:scale(1)}}
.room-select-label select{cursor:pointer;min-height:42px}
@media(max-width:700px){.room-artwork{min-height:220px}.scene-caption{left:10px;bottom:10px;font-size:9px}}

/* Premium interaction layer */
:root{scroll-padding-top:92px}
::selection{background:#bd2d2f;color:#fff}
a,button,.card,.servicecard,.projectcard,.colourcard,.swatch-card{ -webkit-tap-highlight-color:transparent}
.button,.navlinks>button,.navdropdown>button,.dropdown button,.colourcard,.swatch-card,.servicecard,.projectcard{
  transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease,color .22s ease
}
.button:hover{box-shadow:0 12px 26px #25272b18}
img{max-width:100%}
img[loading="lazy"]{background:linear-gradient(100deg,#eeeae2 20%,#f9f7f2 40%,#eeeae2 60%);background-size:200% 100%;animation:np-skeleton 1.4s ease infinite}
@keyframes np-skeleton{to{background-position:-200% 0}}
@keyframes np-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes np-fade{from{opacity:0}to{opacity:1}}
.js-motion .section .wrap,.js-motion .section>.wrap{animation:np-rise .55s ease both}
:focus-visible{scroll-margin:100px}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


.np-reveal-pending{opacity:0;transform:translateY(12px)}
.np-revealed{opacity:1;transform:translateY(0);transition:opacity .45s ease,transform .45s ease}
@media (prefers-reduced-motion:reduce){.np-reveal-pending{opacity:1;transform:none}}


/* Photo surface selection workspace */
.np-surface-tools{margin:18px 0;padding:18px;border:1px solid var(--line,#dedbd4);border-radius:14px;background:#fff}
.np-tools-title{font-size:15px;font-weight:750;margin:0 0 12px;color:var(--ink,#25272b)}
.np-surface-options{display:flex;flex-wrap:wrap;gap:8px}
.np-surface-choice,.np-brush-tools button{appearance:none;border:1px solid #d8d5ce;border-radius:999px;padding:10px 15px;background:#fff;color:#292a2d;font:inherit;font-size:13px;cursor:pointer;transition:all .18s ease}
.np-surface-choice:hover,.np-brush-tools button:hover{border-color:#bd2d2f;transform:translateY(-1px)}
.np-surface-choice.is-active{background:#292a2d;color:#fff;border-color:#292a2d;box-shadow:0 5px 14px #25272b20}
.np-tools-note{font-size:12px;line-height:1.5;color:#737b75;margin:12px 0}
.np-brush-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.np-brush-tools label{display:flex;align-items:center;gap:8px;font-size:12px;color:#5f625f}
.np-brush-tools input{width:120px;accent-color:#bd2d2f}
.np-brush-tools button[aria-pressed="true"]{background:#bd2d2f;color:#fff;border-color:#bd2d2f}
.np-photo-editor{position:relative;max-width:100%;overflow:hidden;border-radius:8px;background:#f6f3ed;touch-action:pan-y}
.np-photo-editor canvas{display:block;max-width:100%;height:auto;cursor:crosshair;touch-action:none}
.np-photo-editor .np-mask-help{position:absolute;left:12px;bottom:12px;background:#25272be8;color:white;padding:8px 11px;border-radius:4px;font-size:11px;pointer-events:none}
@media(max-width:640px){.np-surface-tools{padding:14px}.np-surface-choice{padding:9px 12px}.np-brush-tools{align-items:flex-start}}

/* Homepage process — refined editorial layout */
.np-home-process{background:#f7f5f1}
.np-process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid #ded9d2;border-bottom:1px solid #ded9d2;margin-top:34px}
.np-process-step{position:relative;padding:28px 24px 30px 0;min-width:0;transition:transform .28s ease,background .28s ease}
.np-process-step:not(:first-child){padding-left:24px;border-left:1px solid #ded9d2}
.np-process-step:hover{transform:translateY(-5px)}
.np-process-no{font-size:12px;letter-spacing:.15em;color:#b54a3a;font-weight:700}
.np-process-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin:24px 0 20px;border:1px solid #d9c7c0;border-radius:50%;color:#b54a3a;font-size:20px;transition:background .25s ease,color .25s ease,transform .25s ease}
.np-process-step:hover .np-process-icon{background:#b54a3a;color:white;transform:rotate(8deg)}
.np-process-step h3{font-size:19px;line-height:1.3;margin:0 0 10px}
.np-process-step p{font-size:14px;line-height:1.75;color:#6d6a66;margin:0}
.np-process-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:24px}
.np-process-bottom>span{font-size:13px;letter-spacing:.04em;color:#68645f}
.np-home-process .sectionhead{align-items:end}
.np-home-process .sectionhead h2{max-width:650px}
.gallerygrid .galleryitem img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.gallerygrid .galleryitem{min-width:0;overflow:hidden}
@media(max-width:900px){.np-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.np-process-step:nth-child(3){border-left:0;padding-left:0;border-top:1px solid #ded9d2}.np-process-step:nth-child(4){border-top:1px solid #ded9d2}}
@media(max-width:560px){.np-process-grid{grid-template-columns:1fr}.np-process-step,.np-process-step:not(:first-child),.np-process-step:nth-child(3),.np-process-step:nth-child(4){padding:22px 0;border-left:0;border-top:1px solid #ded9d2}.np-process-step:first-child{border-top:0}.np-process-icon{margin:14px 0}.np-process-bottom{align-items:flex-start;flex-direction:column}}


/* Painting techniques section — added to the existing NorthPeak visual system */
.np-techniques-section{background:var(--paper,#f7f5f0)}
.np-techniques-intro{max-width:880px;margin:0 0 34px auto;border-left:1px solid var(--line,#ddd8cf);padding:2px 0 2px 24px}
.np-techniques-intro p{margin:0;color:var(--muted,#706f6b);font-size:1.02rem;line-height:1.85}
.np-techniques-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line,#ddd8cf);border-bottom:1px solid var(--line,#ddd8cf)}
.np-technique{padding:28px 22px 30px;border-right:1px solid var(--line,#ddd8cf);min-width:0}
.np-technique:first-child{border-left:1px solid var(--line,#ddd8cf)}
.np-technique-icon{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line,#ddd8cf);border-radius:50%;font-size:25px;color:var(--accent,#c84b3a);margin-bottom:22px}
.np-technique-label{display:block;font-size:.68rem;letter-spacing:.16em;color:var(--accent,#c84b3a);margin-bottom:12px}
.np-technique h3{font-size:1.05rem;line-height:1.35;margin:0 0 12px}
.np-technique p{font-size:.9rem;line-height:1.8;color:var(--muted,#706f6b);margin:0}
.np-techniques-note{max-width:900px;margin:22px 0 0 auto;font-size:.82rem;line-height:1.75;color:var(--muted,#706f6b)}
@media(max-width:1050px){.np-techniques-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.np-technique:nth-child(4){border-left:1px solid var(--line,#ddd8cf)}}
@media(max-width:680px){.np-techniques-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.np-technique{padding:22px 16px}.np-technique:nth-child(3),.np-technique:nth-child(5){border-left:1px solid var(--line,#ddd8cf)}.np-technique:nth-child(4){border-left:0}.np-techniques-intro{margin-left:0;padding-left:16px}}
@media(max-width:420px){.np-techniques-grid{grid-template-columns:1fr}.np-technique,.np-technique:first-child,.np-technique:nth-child(3),.np-technique:nth-child(4),.np-technique:nth-child(5){border-left:1px solid var(--line,#ddd8cf);border-right:1px solid var(--line,#ddd8cf);border-bottom:1px solid var(--line,#ddd8cf)}}


/* Interactive card motion — subtle, consistent across the site */
.point,
.reason,
.np-technique,
.np-process-step,
.servicecard,
.portfoliocard,
.colour-card,
.color-card,
.calc-card,
.feature-card,
.why-card,
.review-card,
.benefit-card {
  transition: transform .28s cubic-bezier(.2,.75,.25,1),
              box-shadow .28s ease,
              border-color .28s ease,
              background-color .28s ease;
  transform: translateZ(0);
}
.point:hover,
.reason:hover,
.np-technique:hover,
.np-process-step:hover,
.servicecard:hover,
.portfoliocard:hover,
.colour-card:hover,
.color-card:hover,
.calc-card:hover,
.feature-card:hover,
.why-card:hover,
.review-card:hover,
.benefit-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(30, 32, 34, .09);
  border-color: rgba(200, 75, 58, .42);
}
.np-technique .np-technique-icon,
.np-process-step .np-process-icon,
.point > span:first-child,
.reason > span:first-child {
  transition: transform .3s ease, background-color .3s ease, color .3s ease;
}
.np-technique:hover .np-technique-icon,
.np-process-step:hover .np-process-icon {
  transform: scale(1.09) rotate(-4deg);
  background-color: rgba(200, 75, 58, .08);
}
.np-technique h3,
.point h3,
.reason h3,
.np-process-step h3 {
  transition: color .25s ease;
}
.np-technique:hover h3,
.point:hover h3,
.reason:hover h3,
.np-process-step:hover h3 {
  color: var(--accent, #c84b3a);
}
@media (prefers-reduced-motion: reduce) {
  .point, .reason, .np-technique, .np-process-step,
  .servicecard, .portfoliocard, .colour-card, .color-card,
  .calc-card, .feature-card, .why-card, .review-card, .benefit-card,
  .np-technique .np-technique-icon, .np-process-step .np-process-icon,
  .np-technique h3, .point h3, .reason h3, .np-process-step h3 {
    transition: none !important;
    transform: none !important;
  }
}


/* Top navigation: show all main pages directly; Services remains a dropdown */
.navlinks{gap:clamp(12px,1.7vw,26px)}
.navlinks>.navdropdown{position:relative}
.navlinks>.navdropdown>button{display:inline-flex;align-items:center;gap:7px}
.navlinks .dropdown{z-index:1000}
.explore-menu{min-width:210px}
.explore-menu button{width:100%;text-align:left;white-space:nowrap}
.navlinks .navcta{white-space:nowrap}
@media(max-width:900px){
  .navlinks{gap:10px}
}


/* Flat top navigation: no Explore dropdown */
.navlinks>.navdropdown.explore-dropdown,
.explore-menu{display:none!important}
.navlinks{gap:clamp(9px,1.25vw,20px)}
.navlinks>button:not(.navcta){white-space:nowrap}
@media(max-width:1120px){
  .navlinks{gap:8px}
  .navlinks>button:not(.navcta){font-size:.88rem}
}


/* Final navigation polish: logical ordering, consistent spacing, and aligned Services chevron */
.navlinks{display:flex;align-items:center;justify-content:flex-end;gap:clamp(8px,1.05vw,17px)}
.navlinks>button:not(.navcta),.navlinks .services-toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.navlinks .services-toggle{line-height:1.2}
.nav-chevron{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transform-origin:center;transition:transform .2s ease;margin-left:1px;flex:0 0 auto}
.services-dropdown.show .nav-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.navlinks .services-dropdown{position:relative;display:flex;align-items:center}
.navlinks .services-dropdown>.dropdown{top:calc(100% + 12px);left:0}
.navlinks .navcta{flex:0 0 auto;white-space:nowrap}
@media(max-width:1200px){.navlinks{gap:8px}.navlinks>button:not(.navcta),.navlinks .services-toggle{font-size:.84rem}}
@media(max-width:1050px){.navlinks{gap:6px}.navlinks>button:not(.navcta),.navlinks .services-toggle{font-size:.78rem}}


/* About NorthPeak — editorial layout refresh */
.about-hero{background:linear-gradient(115deg,#172b23 0%,#243d32 58%,#314c3e 100%);color:#fff;padding:clamp(56px,7vw,100px) 0;overflow:hidden}
.about-hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);gap:clamp(36px,6vw,90px);align-items:center}
.about-hero-copy h1{font-size:clamp(3.2rem,6.5vw,6.4rem);line-height:.98;letter-spacing:-.055em;margin:24px 0}
.about-hero-copy h1 em,.about-story-heading h2 em,.about-service-band h2 em,.about-accountability h2 em,.about-bottom-cta h2 em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.about-hero-lead{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.85;max-width:650px;color:rgba(255,255,255,.82)}
.about-hero .herobuttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.button-outline-light{border:1px solid rgba(255,255,255,.5);color:#fff;background:transparent}
.about-hero-note{display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);max-width:420px}
.about-note-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.35);font-family:Georgia,serif;font-size:1.1rem;color:#d9b08a}
.about-hero-note strong,.about-hero-note small{display:block}.about-hero-note strong{font-size:.88rem}.about-hero-note small{margin-top:4px;color:rgba(255,255,255,.65);font-size:.76rem;letter-spacing:.04em}
.about-hero-visual{position:relative;min-height:440px}
.about-hero-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.about-image-caption{position:absolute;left:-22px;bottom:28px;background:#f7f4ee;color:#202321;padding:18px 22px;min-width:220px;box-shadow:0 10px 35px #101a1633}
.about-image-caption span{display:block;font-size:.63rem;letter-spacing:.16em;color:#b44c3a;margin-bottom:7px}.about-image-caption strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}
.about-vertical-note{position:absolute;right:-25px;top:24px;writing-mode:vertical-rl;letter-spacing:.2em;font-size:.62rem;color:#fff}
.about-story-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(35px,9vw,140px)}
.about-story-heading h2,.about-service-band h2,.about-accountability h2,.about-bottom-cta h2{font-size:clamp(2.1rem,3.7vw,3.6rem);line-height:1.08;letter-spacing:-.04em;margin:18px 0}
.about-story-index{display:block;margin-top:45px;font-size:.68rem;letter-spacing:.16em;color:var(--accent,#c84b3a)}
.about-story-copy p{line-height:1.9;color:var(--muted,#706f6b)}.about-story-copy .lead{font-size:1.2rem;color:var(--ink,#202321)}
.about-values-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line,#ddd8cf)}
.about-value{padding:25px 23px 30px;border-right:1px solid var(--line,#ddd8cf);min-width:0;transition:transform .25s ease,box-shadow .25s ease}.about-value:last-child{border-right:0}.about-value:hover{transform:translateY(-5px);box-shadow:0 12px 26px #20232110}
.about-value>span{font-size:.72rem;letter-spacing:.16em;color:var(--accent,#c84b3a)}.about-value-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line,#ddd8cf);border-radius:50%;font-size:1.3rem;color:var(--accent,#c84b3a);margin:28px 0 20px}
.about-value h3{font-size:1.08rem;margin:0 0 12px}.about-value p{font-size:.9rem;line-height:1.8;color:var(--muted,#706f6b);margin:0}
.about-service-band{display:grid;grid-template-columns:1fr .9fr;gap:clamp(36px,8vw,110px);align-items:center}.about-service-band>div:first-child>p{max-width:560px;line-height:1.85;color:var(--muted,#706f6b)}
.about-service-list{border-top:1px solid var(--line,#ddd8cf)}.about-service-list a{display:grid;grid-template-columns:42px 1fr 20px;gap:10px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line,#ddd8cf);text-decoration:none;color:inherit;transition:padding .2s ease,color .2s ease}.about-service-list a:hover{padding-left:8px;color:var(--accent,#c84b3a)}.about-service-list a span{font-size:.7rem;color:var(--accent,#c84b3a)}.about-service-list a b{font-weight:400}
.about-accountability{background:#202522;color:#fff}.about-accountability-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(35px,8vw,120px)}.about-accountability h2 em{color:#d9b08a}.about-accountability-grid>div:first-child>p{max-width:470px;line-height:1.85;color:#c4cbc6}
.about-accountability-list article{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:20px 0;border-bottom:1px solid #ffffff25}.about-accountability-list article:first-child{border-top:1px solid #ffffff25}.about-accountability-list article>span{font-size:.72rem;color:#d9b08a}.about-accountability-list h3{margin:0 0 7px;font-size:1rem}.about-accountability-list p{margin:0;color:#c4cbc6;font-size:.88rem;line-height:1.8}
.about-bottom-cta{display:flex;align-items:center;justify-content:space-between;gap:35px}.about-bottom-cta>div:first-child{max-width:700px}.about-bottom-cta p{line-height:1.8;color:var(--muted,#706f6b)}.about-bottom-cta>div:last-child{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}
@media(max-width:900px){.about-hero-grid,.about-story-grid,.about-service-band,.about-accountability-grid{grid-template-columns:1fr}.about-hero-visual{min-height:360px;margin:10px 0 0 18px}.about-image-caption{left:-18px}.about-vertical-note{right:-19px}.about-story-index{margin-top:25px}.about-values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-value:nth-child(2){border-right:0}.about-value:nth-child(-n+2){border-bottom:1px solid var(--line,#ddd8cf)}.about-bottom-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.about-hero{padding:48px 0}.about-hero-copy h1{font-size:clamp(2.8rem,13vw,4.1rem)}.about-hero-visual{min-height:280px}.about-values-grid{grid-template-columns:1fr}.about-value,.about-value:last-child,.about-value:nth-child(2){border-right:0;border-bottom:1px solid var(--line,#ddd8cf)}.about-value:last-child{border-bottom:0}.about-bottom-cta>div:last-child{flex-direction:column;width:100%}.about-bottom-cta .button{width:100%;justify-content:center}}


/* Our Approach hero refresh — consistent with the About NorthPeak page */
.approach-hero{background:linear-gradient(115deg,#172b23 0%,#243d32 58%,#314c3e 100%);color:#fff;padding:clamp(56px,7vw,100px) 0;overflow:hidden}
.approach-hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);gap:clamp(36px,6vw,90px);align-items:center}
.approach-hero-copy h1{font-size:clamp(3.2rem,6.5vw,6.4rem);line-height:.98;letter-spacing:-.055em;margin:24px 0}
.approach-hero-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.approach-hero-lead{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.85;max-width:650px;color:rgba(255,255,255,.82)}
.approach-hero .herobuttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.approach-hero-note{display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);max-width:420px}
.approach-note-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.35);font-family:Georgia,serif;font-size:1.1rem;color:#d9b08a}
.approach-hero-note strong,.approach-hero-note small{display:block}.approach-hero-note strong{font-size:.88rem}.approach-hero-note small{margin-top:4px;color:rgba(255,255,255,.65);font-size:.76rem;letter-spacing:.04em}
.approach-hero-visual{position:relative;min-height:440px}
.approach-hero-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.approach-image-caption{position:absolute;left:-22px;bottom:28px;background:#f7f4ee;color:#202321;padding:18px 22px;min-width:220px;box-shadow:0 10px 35px #101a1633}
.approach-image-caption span{display:block;font-size:.63rem;letter-spacing:.16em;color:#b44c3a;margin-bottom:7px}.approach-image-caption strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}
.approach-vertical-note{position:absolute;right:-25px;top:24px;writing-mode:vertical-rl;letter-spacing:.2em;font-size:.62rem;color:#fff}
@media(max-width:900px){.approach-hero-grid{grid-template-columns:1fr}.approach-hero-visual{min-height:360px;margin:10px 0 0 18px}.approach-image-caption{left:-18px}.approach-vertical-note{right:-19px}}
@media(max-width:520px){.approach-hero{padding:48px 0}.approach-hero-copy h1{font-size:clamp(2.8rem,13vw,4.1rem)}.approach-hero-visual{min-height:280px}.approach-hero .herobuttons{flex-direction:column;align-items:stretch}.approach-hero .herobuttons .button{justify-content:center}}


/* Our Work hero refresh — aligned with About and Our Approach */
.work-hero{background:linear-gradient(115deg,#172b23 0%,#243d32 58%,#314c3e 100%);color:#fff;padding:clamp(56px,7vw,100px) 0;overflow:hidden}
.work-hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);gap:clamp(36px,6vw,90px);align-items:center}
.work-hero-copy h1{font-size:clamp(3.2rem,6.5vw,6.4rem);line-height:.98;letter-spacing:-.055em;margin:24px 0}
.work-hero-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.work-hero-lead{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.85;max-width:650px;color:rgba(255,255,255,.82)}
.work-hero .herobuttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.work-hero-note{display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);max-width:420px}
.work-note-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.35);font-family:Georgia,serif;font-size:1.1rem;color:#d9b08a}
.work-hero-note strong,.work-hero-note small{display:block}.work-hero-note strong{font-size:.88rem}.work-hero-note small{margin-top:4px;color:rgba(255,255,255,.65);font-size:.76rem;letter-spacing:.04em}
.work-hero-visual{position:relative;min-height:440px}
.work-hero-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.work-image-caption{position:absolute;left:-22px;bottom:28px;background:#f7f4ee;color:#202321;padding:18px 22px;min-width:220px;box-shadow:0 10px 35px #101a1633}
.work-image-caption span{display:block;font-size:.63rem;letter-spacing:.16em;color:#b44c3a;margin-bottom:7px}.work-image-caption strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}
.work-vertical-note{position:absolute;right:-25px;top:24px;writing-mode:vertical-rl;letter-spacing:.2em;font-size:.62rem;color:#fff}
@media(max-width:900px){.work-hero-grid{grid-template-columns:1fr}.work-hero-visual{min-height:360px;margin:10px 0 0 18px}.work-image-caption{left:-18px}.work-vertical-note{right:-19px}}
@media(max-width:520px){.work-hero{padding:48px 0}.work-hero-copy h1{font-size:clamp(2.8rem,13vw,4.1rem)}.work-hero-visual{min-height:280px}.work-hero .herobuttons{flex-direction:column;align-items:stretch}.work-hero .herobuttons .button{justify-content:center}}


/* Portfolio cards link directly to their matching service pages */
.galleryitem-link{display:block;width:100%;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .28s cubic-bezier(.2,.75,.25,1),box-shadow .28s ease}
.galleryitem-link:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(30,32,34,.10)}
.galleryitem-link:focus-visible{outline:2px solid var(--accent,#c84b3a);outline-offset:5px}
.gallery-card-link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:.82rem;font-weight:600;color:var(--accent,#c84b3a)}
.gallery-card-link span{display:inline-block;transition:transform .2s ease}
.galleryitem-link:hover .gallery-card-link span{transform:translate(3px,-3px)}
@media(prefers-reduced-motion:reduce){.galleryitem-link,.gallery-card-link span{transition:none!important;transform:none!important}}


/* Contact page hero — balanced two-column layout */
.contact-hero{background:linear-gradient(115deg,#172b23 0%,#243d32 58%,#314c3e 100%);color:#fff;padding:clamp(56px,7vw,100px) 0;overflow:hidden}
.contact-hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);gap:clamp(36px,6vw,90px);align-items:center}
.contact-hero-copy h1{font-size:clamp(3.1rem,6.2vw,6.1rem);line-height:.98;letter-spacing:-.055em;margin:24px 0}
.contact-hero-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.contact-hero-lead{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.85;max-width:650px;color:rgba(255,255,255,.82)}
.contact-hero .herobuttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.contact-hero-note{display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);max-width:420px}
.contact-note-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.35);font-family:Georgia,serif;font-size:1.1rem;color:#d9b08a}
.contact-hero-note strong,.contact-hero-note small{display:block}.contact-hero-note strong{font-size:.88rem}.contact-hero-note small{margin-top:4px;color:rgba(255,255,255,.65);font-size:.76rem;letter-spacing:.04em}
.contact-hero-visual{position:relative;min-height:440px}
.contact-hero-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.contact-image-caption{position:absolute;left:-22px;bottom:28px;background:#f7f4ee;color:#202321;padding:18px 22px;min-width:220px;box-shadow:0 10px 35px #101a1633}
.contact-image-caption span{display:block;font-size:.63rem;letter-spacing:.16em;color:#b44c3a;margin-bottom:7px}.contact-image-caption strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}
.contact-vertical-note{position:absolute;right:-25px;top:24px;writing-mode:vertical-rl;letter-spacing:.2em;font-size:.62rem;color:#fff}
@media(max-width:900px){.contact-hero-grid{grid-template-columns:1fr}.contact-hero-visual{min-height:360px;margin:10px 0 0 18px}.contact-image-caption{left:-18px}.contact-vertical-note{right:-19px}}
@media(max-width:520px){.contact-hero{padding:48px 0}.contact-hero-copy h1{font-size:clamp(2.7rem,12vw,4rem)}.contact-hero-visual{min-height:280px}.contact-hero .herobuttons{flex-direction:column;align-items:stretch}.contact-hero .herobuttons .button{justify-content:center}}


/* Province-wide service and subcontracting section */
.subcontract-band{display:flex;align-items:center;justify-content:space-between;gap:38px;padding-top:10px;padding-bottom:10px}
.subcontract-band>div:first-child{max-width:760px}
.subcontract-band h2{font-size:clamp(2rem,3.5vw,3.25rem);line-height:1.08;letter-spacing:-.04em;margin:16px 0}
.subcontract-band h2 em{font-family:Georgia,serif;font-weight:400;color:#cda783}
.subcontract-band p{line-height:1.85;color:var(--muted,#706f6b);max-width:720px}
.contactdetail a{color:inherit;text-decoration:none}
.contactdetail a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.subcontract-band{align-items:flex-start;flex-direction:column}.subcontract-band>div:last-child{width:100%}.subcontract-band .button{justify-content:center;width:100%}}


/* Cost calculator: keep pricing hidden until the visitor explicitly calculates */
.calc-validation{margin:14px 0 0;color:#c9222c;font-size:.9rem;font-weight:600}
.calc-result #calcOutput h2{overflow-wrap:anywhere}


/* Cost calculator visual redesign: premium, clear and quote-focused */
.calculator-hero{background:linear-gradient(115deg,#172b23 0%,#243d32 58%,#314c3e 100%);color:#fff;padding:clamp(48px,6vw,82px) 0;overflow:hidden}
.calculator-hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(30px,6vw,90px);align-items:center}
.calculator-hero h1{font-size:clamp(2.8rem,5.4vw,5.2rem);line-height:1;letter-spacing:-.055em;margin:22px 0}
.calculator-hero h1 em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.calculator-hero-grid>div:first-child>p{max-width:700px;line-height:1.85;color:rgba(255,255,255,.82);font-size:1.05rem}
.calculator-hero-points{display:flex;gap:12px 22px;flex-wrap:wrap;margin-top:26px;font-size:.72rem;letter-spacing:.08em;color:#e2c2a5}
.calculator-hero-card{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.055);padding:clamp(24px,3vw,38px);backdrop-filter:blur(8px)}
.calculator-card-label{display:block;font-size:.65rem;letter-spacing:.16em;color:#e2c2a5;margin-bottom:26px}
.calculator-hero-card>strong{display:block;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.1;letter-spacing:-.035em}
.calculator-hero-card>strong em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.calculator-hero-card p{margin:18px 0 0;color:rgba(255,255,255,.74);line-height:1.75;font-size:.9rem}
.calc-layout{align-items:start;gap:24px}
.calc-form,.calc-result{border-radius:18px}
.calc-form{border:1px solid var(--line,#dedbd5);box-shadow:0 12px 38px rgba(32,35,33,.035)}
.calc-result{background:#202321;padding:clamp(24px,3vw,40px);color:#fff;box-shadow:0 18px 50px rgba(20,30,24,.12)}
.calc-result>.eyebrow{color:#ed6464}
.calc-result #calcOutput h2{font-size:clamp(1.8rem,3vw,3.1rem);line-height:1.08;letter-spacing:-.04em;color:#fff;margin:22px 0 12px}
.calc-result #calcOutput>p{color:rgba(255,255,255,.76);line-height:1.75}
.calc-result .calc-breakdown{border-top:1px solid rgba(255,255,255,.18);margin-top:20px;padding-top:14px}
.calc-result .calc-breakdown>div{display:flex;justify-content:space-between;gap:18px;padding:8px 0;color:rgba(255,255,255,.76)}
.calc-result .calc-breakdown strong{text-align:right;color:#fff}
.calc-empty-mark{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(255,255,255,.3);color:#d9b08a;font-family:Georgia,serif;font-size:1.2rem;margin-top:22px}
.calc-company-note{display:grid;grid-template-columns:28px 1fr;gap:12px;margin-top:26px;padding:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13)}
.calc-note-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid #d9b08a;color:#d9b08a;border-radius:50%;font-size:.75rem}
.calc-company-note strong{font-size:.92rem}.calc-company-note p{margin:7px 0 0;color:rgba(255,255,255,.7);font-size:.83rem;line-height:1.7}
.calc-result .calc-disclaimer{margin-top:18px;color:rgba(255,255,255,.56);font-size:.78rem;line-height:1.75}
.calc-result-exact-note{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);font-size:.87rem;line-height:1.75;color:rgba(255,255,255,.78)}
.calc-result-exact-note strong{color:#fff}
.calc-option{transition:border-color .2s ease,background .2s ease,transform .2s ease}
.calc-option:hover{transform:translateY(-2px)}
.calc-option.active{border-color:#d1232a;background:#fff5f4;box-shadow:inset 0 0 0 1px #d1232a}
.calc-validation{padding:10px 12px;background:#fff3f3;border-left:3px solid #c9222c}
@media(max-width:900px){.calculator-hero-grid{grid-template-columns:1fr}.calculator-hero-card{max-width:520px}.calc-layout{grid-template-columns:1fr}}
@media(max-width:560px){.calculator-hero{padding:44px 0}.calculator-hero h1{font-size:clamp(2.55rem,11vw,3.6rem)}.calculator-hero-points{flex-direction:column;gap:9px}.calc-result .calc-breakdown>div{align-items:flex-start}.calc-result .calc-breakdown strong{max-width:58%}}


/* Square-footage entry in the cost calculator */
.calc-sqft-field{max-width:560px;margin:24px 0 30px}
.calc-sqft-field label{display:block;font-size:.9rem;font-weight:650;margin-bottom:10px;color:var(--ink,#242424)}
.calc-sqft-input-wrap{display:flex;align-items:center;border:1px solid var(--line,#dedbd5);background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.calc-sqft-input-wrap:focus-within{border-color:#c9222c;box-shadow:0 0 0 3px rgba(201,34,44,.08)}
.calc-sqft-input-wrap input{width:100%;min-width:0;padding:16px 18px;border:0;outline:0;background:transparent;color:#222;font:inherit}
.calc-sqft-input-wrap>span{padding:0 16px;color:#777;font-size:.85rem;white-space:nowrap;border-left:1px solid var(--line,#dedbd5)}
.calc-sqft-field small{display:block;margin-top:10px;color:#777;line-height:1.6}


/* Number input adapts to either square footage or cabinet-door count */
#calcQuantity{font-variant-numeric:tabular-nums}


/* Colour Studio hero: balanced split layout with an editorial palette panel */
.colour-studio-hero{padding:clamp(54px,6vw,88px) 0!important;background:radial-gradient(ellipse at 80% 45%,rgba(68,100,78,.45),transparent 42%),linear-gradient(112deg,#172b23 0%,#243d32 62%,#2e4838 100%)}
.colour-studio-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);gap:clamp(36px,7vw,105px);align-items:center}
.colour-studio-copy{max-width:720px}
.colour-studio-copy h1{font-size:clamp(43px,5.25vw,72px);line-height:1.04;letter-spacing:-.055em;margin:24px 0 22px}
.colour-studio-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#d9b08a}
.colour-studio-copy>p{max-width:650px;font-size:clamp(14px,1.15vw,16px);line-height:1.9;color:#e0e6e0}
.colour-hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:27px;color:#e2c2a5;font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.colour-hero-meta span:before{content:"↗";margin-right:7px;color:#e34b4b}
.colour-hero-art{position:relative;padding:24px 25px 20px;border:1px solid rgba(255,255,255,.19);background:rgba(255,255,255,.055);box-shadow:0 24px 70px rgba(0,0,0,.12);backdrop-filter:blur(5px);transform:translateY(3px)}
.colour-art-heading{display:flex;justify-content:space-between;gap:12px;color:#e2c2a5;font-size:9px;letter-spacing:.16em;margin-bottom:16px}
.colour-swatch-stack{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.colour-swatch{min-height:clamp(130px,18vw,220px);padding:12px 9px;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.colour-swatch:hover{transform:translateY(-5px);box-shadow:0 12px 24px rgba(0,0,0,.16)}
.colour-swatch span{font-size:8px;letter-spacing:.1em;font-weight:700;writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start}
.colour-swatch small{font-size:8px;line-height:1.4;writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start;opacity:.8}
.swatch-cream{background:#e8dfcc;color:#29372c}.swatch-sage{background:#9eab91;color:#1e2e24}.swatch-clay{background:#c88f70;color:#39271e}.swatch-olive{background:#68734d;color:#fff}.swatch-ink{background:#24392d;color:#fff}
.colour-hero-art>p{font-family:Georgia,serif;font-style:italic;color:#f2e8dc;font-size:16px;margin:16px 0 0}
@media(max-width:900px){.colour-studio-hero-grid{grid-template-columns:1fr;gap:34px}.colour-studio-copy{max-width:760px}.colour-hero-art{max-width:650px;width:100%}.colour-swatch{min-height:150px}}
@media(max-width:520px){.colour-studio-hero{padding:44px 0!important}.colour-studio-copy h1{font-size:clamp(39px,10vw,52px)}.colour-hero-meta{display:grid;gap:10px}.colour-hero-art{padding:17px}.colour-swatch-stack{gap:5px}.colour-swatch{min-height:130px;padding:8px 5px}.colour-swatch span,.colour-swatch small{font-size:7px}}


/* Colour Studio improvements: mood discovery, shade comparison and quote hand-off */
.mood-filter{margin:22px 0 10px}
.mood-filter>.eyebrow{display:block;margin-bottom:10px;color:#7b7b75}
.moodtabs{display:flex;gap:8px;flex-wrap:wrap}
.moodtabs button{border:1px solid var(--line,#dedbd5);background:transparent;border-radius:999px;padding:9px 14px;color:var(--ink,#242424);font:inherit;font-size:.82rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.moodtabs button:hover{transform:translateY(-1px);border-color:#cda783}
.moodtabs button.selected{background:#20382c;color:#fff;border-color:#20382c}
.swatch-card-wrap{min-width:0;display:flex;flex-direction:column;gap:8px}
.swatch-card-wrap .swatchcard{width:100%;height:100%}
.compare-toggle{border:1px solid var(--line,#dedbd5);background:#fff;color:#4e514d;padding:9px 10px;font:inherit;font-size:.78rem;cursor:pointer;transition:all .2s ease}
.compare-toggle:hover,.compare-toggle.selected{border-color:#cda783;background:#f6eee6;color:#252724}
.compare-empty{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--line,#dedbd5);margin-top:24px;background:#fbfaf7}
.compare-empty strong{font-size:.92rem}.compare-empty span{font-size:.85rem;color:#777}
.compare-tray{margin-top:24px}
.compare-tray-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px}
.compare-tray-head h3{margin:7px 0 0;font-size:1.6rem}
.compare-clear,.compare-remove{border:0;background:transparent;color:#a92a2f;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;font-size:.82rem}
.compare-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.compare-swatch-card{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:12px;border:1px solid var(--line,#dedbd5);background:#fff;min-width:0}
.compare-swatch-large{display:block;width:100%;height:94px;border:1px solid rgba(0,0,0,.08)}
.compare-swatch-card strong{font-size:.95rem}.compare-swatch-card small,.compare-hex{color:#777;font-size:.78rem}
.compare-swatch-card>button:not(.compare-remove){margin-top:5px;padding:0;border:0;background:transparent;color:#252724;font:inherit;font-size:.82rem;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.compare-swatch-card .compare-remove{margin-top:2px}
#projectMessage{white-space:pre-wrap}
@media(max-width:620px){.compare-swatches{grid-template-columns:1fr}.compare-swatch-large{height:70px}.compare-empty{align-items:flex-start;flex-direction:column}.moodtabs{gap:6px}.moodtabs button{font-size:.76rem;padding:8px 10px}}


/* Accurate shade preview behavior */
.photo-studio .photo-tint{display:none!important}
.photo-preview-notice{position:relative;margin:0;padding:14px 16px;background:#f6f0e7;border-top:1px solid #e2d8ca;color:#55564f;font-size:13px;line-height:1.6}
.photo-preview-notice[hidden]{display:none!important}
.preview-highlight{animation:previewFocus 1.1s ease}
@keyframes previewFocus{0%,100%{box-shadow:0 0 0 0 rgba(195,43,48,0)}35%{box-shadow:0 0 0 4px rgba(195,43,48,.26)}}
.compare-swatch-card>button:not(.compare-remove){cursor:pointer}


/* Uploaded-photo selective colour preview with a user-painted mask */
.photo-studio{border:1px solid var(--line);background:#f4f0e8;overflow:hidden}
.photo-canvas-wrap{position:relative;width:100%;line-height:0;background:#eee9df;overflow:hidden}
.photo-canvas-wrap #uploadedPhoto{display:block;width:100%;height:auto;max-height:620px;min-height:0;object-fit:contain;background:#eee9df}
#photoPaintCanvas{position:absolute;inset:0;width:100%;height:100%;opacity:.58;mix-blend-mode:color;touch-action:none;cursor:crosshair}
.photo-caption{z-index:2;line-height:1.3}
.photo-paint-tools{padding:16px;background:#fff}
.photo-paint-intro{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.photo-paint-intro strong{font-size:15px;color:var(--ink)}
.photo-paint-intro span{font-size:12px;line-height:1.6;color:var(--muted)}
.photo-paint-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.photo-tool{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 12px;font-size:12px;font-weight:650;cursor:pointer}
.photo-tool:hover,.photo-tool.active{border-color:#c62b31;background:#fff2f1;color:#b9232b}
.photo-brush-label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:6px 10px;font-size:12px;color:var(--ink)}
.photo-brush-label input{width:100px;accent-color:#c62b31}
.photo-brush-label span{min-width:42px;color:var(--muted)}
.photo-paint-tools .photo-preview-notice{padding:12px 0 0;background:transparent;border:0;margin:0;font-size:11px;line-height:1.6;color:var(--muted)}
@media(max-width:600px){.photo-paint-actions{gap:6px}.photo-tool{padding:9px 10px}.photo-brush-label{flex:1;justify-content:space-between}.photo-brush-label input{flex:1;min-width:65px}}

/* Colour Studio: compare, history and local save tools */
.photo-compare-control{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 16px;background:#f8f6f1;border-top:1px solid var(--line);font-size:11px;color:var(--ink)}
.photo-compare-control label{font-weight:700;white-space:nowrap}.photo-compare-control input{flex:1;min-width:100px;accent-color:#c62b31}.photo-compare-control span{min-width:95px;text-align:right;color:var(--muted)}
.photo-compare-divider{position:absolute;z-index:3;top:0;bottom:0;left:100%;width:2px;background:#fff;box-shadow:0 0 0 1px #1b292255;pointer-events:none;transition:left .04s linear}
.photo-compare-divider:after{content:'↔';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:#1b2922;font-size:14px;box-shadow:0 2px 10px #0002}
#photoPaintCanvas{transition:clip-path .04s linear}
.photo-tool:disabled{opacity:.38;cursor:not-allowed}.photo-download{border-color:#1b2922;background:#1b2922;color:#fff}.photo-download:hover{background:#304638;color:#fff}
.visual-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.visual-actions .photo-tool{font-family:inherit}.visual-actions .button{white-space:nowrap}
@media(max-width:600px){.photo-compare-control{gap:8px}.photo-compare-control label{width:100%}.photo-compare-control span{min-width:78px;font-size:10px}.photo-compare-divider:after{width:26px;height:26px}.visual-actions{width:100%;align-items:stretch}.visual-actions>*{flex:1}}

/* Colour Studio additions: saved projects, colour guidance and touch-friendly controls */
#photoStudio{display:block;overflow:auto;overscroll-behavior:contain;max-width:100%;-webkit-overflow-scrolling:touch}
#photoCanvasWrap{max-width:none;min-width:100%;transition:width .18s ease;flex-shrink:0}
#photoStudio.photo-zoomed .photo-canvas-wrap #uploadedPhoto{max-height:none}
#photoStudio.photo-zoomed #photoPaintCanvas{max-width:none}
#photoStudio.photo-zoomed .photo-caption{position:sticky;left:14px;display:inline-block;margin-left:14px;margin-top:-36px;bottom:auto}
.photo-zoom-tools{display:flex;align-items:center;gap:5px;margin-right:4px}
.photo-zoom-tools span{font-size:11px;min-width:38px;text-align:center;font-weight:700;color:var(--muted)}
.photo-zoom-tools .photo-tool{min-width:38px;min-height:38px;padding:8px}
.recommend-undertone{display:inline-block!important;width:max-content;max-width:100%;padding:3px 6px;background:#f0eee7;color:#4c5149!important;border-radius:3px;font-weight:700}
.photo-tool:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:700px){
  .photo-paint-actions{align-items:stretch}
  .photo-paint-actions>.photo-tool{min-height:44px;flex:1 1 calc(50% - 8px);font-size:13px}
  .photo-zoom-tools{width:100%;justify-content:flex-start;padding-bottom:4px}
  .photo-zoom-tools .photo-tool{flex:0 0 44px;min-height:44px}
  .photo-brush-label{min-height:44px;flex:1 1 100%;font-size:13px}
  .photo-brush-label input{min-height:32px}
  .photo-compare-control{gap:8px;padding:12px;align-items:center}
  .photo-compare-control input{min-height:32px}
  .upload-actions{gap:8px;flex-wrap:wrap}
  .upload-button,.upload-reset{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .recommend-card{grid-template-columns:56px minmax(0,1fr);gap:10px;padding:12px}
  .recommend-chip{height:56px}
}

/* Homepage refinement: concise trust strip, regional coverage and clearer Colour Studio CTA */
.np-trust-strip{background:#fffdfa;border-bottom:1px solid var(--line);border-top:1px solid #ffffff24}
.np-trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:22px 0}
.np-trust-grid>div{display:flex;align-items:center;gap:12px;min-width:0}
.np-trust-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;background:#eeece5;color:var(--red);font-size:18px}
.np-trust-grid strong,.np-trust-grid small{display:block}
.np-trust-grid strong{font-size:12px;line-height:1.4}
.np-trust-grid small{font-size:10px;line-height:1.5;color:var(--muted);margin-top:3px}
.np-home-regions{padding:74px 0;background:#eeece5}
.np-regions-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:20px 8%;align-items:center}
.np-regions-inner h2{font-size:clamp(30px,3.6vw,43px);margin:15px 0}
.np-regions-inner h2 em{color:var(--green2)}
.np-regions-inner p{font-size:13px;line-height:1.8;color:var(--muted);max-width:620px;margin:0}
.np-region-tags{display:flex;flex-wrap:wrap;gap:8px}
.np-region-tags span{border:1px solid #d3d3ca;background:#f8f7f2;padding:9px 12px;font-size:11px;color:#48544c}
.np-regions-inner>.button{justify-self:start;grid-column:1/-1}
@media(max-width:760px){.np-trust-grid{grid-template-columns:1fr 1fr;gap:18px 12px;padding:18px 0}.np-trust-grid>div{align-items:flex-start}.np-trust-icon{flex-basis:32px;width:32px;height:32px}.np-trust-grid strong{font-size:11px}.np-trust-grid small{font-size:10px}.np-regions-inner{grid-template-columns:1fr;gap:22px}.np-home-regions{padding:58px 0}.np-regions-inner>.button{grid-column:auto}}
@media(max-width:420px){.np-trust-grid{grid-template-columns:1fr}.np-trust-grid>div{align-items:center}}

/* Premium homepage motion: restrained, smooth, and accessible */
.heroimage{transform:scale(1.04);animation:npHeroSettle 1.8s cubic-bezier(.18,.65,.25,1) both}
.herocontent>.eyebrow{animation:npRise .7s .08s both}
.herocontent h1{animation:npRise .85s .18s both}
.herocontent>p{animation:npRise .85s .3s both}
.herocontent .herobuttons{animation:npRise .8s .42s both}
.herocontent .heroqualities{animation:npRise .8s .54s both}
.np-trust-grid>div{transition:transform .35s ease,background .35s ease}
.np-trust-grid>div:hover{transform:translateY(-4px)}
.np-trust-icon{transition:transform .35s ease,background .35s ease,color .35s ease}
.np-trust-grid>div:hover .np-trust-icon{transform:rotate(-6deg) scale(1.06);background:var(--red);color:white}
.servicecard,.galleryitem,.np-process-step,.np-region-tags span{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .35s ease}
.servicecard:hover,.galleryitem:hover{transform:translateY(-7px)}
.galleryitem{overflow:hidden}
.galleryitem img{transform:scale(1.001);transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.galleryitem:hover img{transform:scale(1.045);filter:saturate(1.08)}
.np-process-step{position:relative;overflow:hidden}
.np-process-step:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.np-process-step:hover{transform:translateY(-5px);box-shadow:0 16px 35px #17241b12}
.np-process-step:hover:after{transform:scaleX(1)}
.np-process-icon{transition:transform .4s ease,color .4s ease}
.np-process-step:hover .np-process-icon{transform:translateY(-3px) rotate(-8deg);color:var(--red)}
.np-region-tags span:hover{transform:translateY(-3px);border-color:#b7b8ac;box-shadow:0 7px 18px #17241b0b}
.teaserswatches button{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.teaserswatches button:hover{transform:translateY(-7px) rotate(1deg);box-shadow:0 12px 22px #17241b1d}
.button{transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}
.button:hover{box-shadow:0 8px 18px #17241b18}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
.reveal.in-view{opacity:1;transform:translateY(0)}
@keyframes npRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes npHeroSettle{from{opacity:.65;transform:scale(1.09)}to{opacity:1;transform:scale(1.04)}}
@media(max-width:760px){.heroimage{animation-duration:1.2s}.reveal{transform:translateY(14px)}.np-process-step:hover,.servicecard:hover,.galleryitem:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.heroimage,.herocontent>.eyebrow,.herocontent h1,.herocontent>p,.herocontent .herobuttons,.herocontent .heroqualities,.reveal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}.np-trust-grid>div,.np-trust-icon,.servicecard,.galleryitem,.galleryitem img,.np-process-step,.np-process-icon,.np-region-tags span,.button,.teaserswatches button{transition:none!important}}

/* Contact page: scannable BC service-community directory */
.np-contact-communities{margin-top:28px;padding:24px;background:var(--paper,#f5f3ee);border:1px solid rgba(38,42,38,.10);border-radius:4px}
.np-contact-communities h3{margin:0 0 8px;font-size:1.25rem}
.np-communities-intro{font-size:.9rem;line-height:1.6;color:var(--muted,#667068);margin:0 0 18px}
.np-community-region{padding:14px 0;border-top:1px solid rgba(38,42,38,.13)}
.np-community-region h4{font-size:.98rem;margin:0 0 6px;color:var(--ink,#242724)}
.np-community-region p{font-size:.9rem;line-height:1.7;margin:0;color:var(--muted,#555d57)}
@media(max-width:700px){.np-contact-communities{padding:18px 15px;margin-top:20px}.np-community-region{padding:12px 0}}

/* Services landing page and clear navigation affordance */
.services-index-hero{padding:82px 0 86px;background:linear-gradient(110deg,rgba(20,34,27,.96),rgba(20,34,27,.74)),url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=1800&q=85') center/cover no-repeat;color:#fff}
.services-index-hero h1{font-size:clamp(44px,6vw,76px);max-width:900px;margin:18px 0}
.services-index-hero p{max-width:650px;color:#e1e7e1;font-size:16px;line-height:1.8;margin-bottom:26px}
.services-index-note{margin-top:38px;padding:24px 26px;background:#eeece5;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.services-index-note strong{font-size:15px}.services-index-note span{flex:1;min-width:220px;color:#626c63;font-size:13px;line-height:1.6}
.navlinks .services-dropdown{gap:0}.navlinks .services-dropdown>.services-toggle{padding-right:5px}.navlinks .services-menu-toggle{background:transparent;border:0;color:inherit;padding:10px 7px;min-width:25px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.navlinks .services-menu-toggle:hover{color:var(--red)}.services-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}.services-dropdown.show .services-chevron{transform:rotate(225deg) translateY(-1px)}
@media(max-width:760px){.services-index-hero{padding:62px 0}.services-index-hero h1{font-size:clamp(42px,10vw,60px)}.services-index-note{align-items:flex-start;flex-direction:column}.navlinks .services-dropdown{display:grid;grid-template-columns:1fr auto}.navlinks .services-dropdown>.services-toggle{width:100%;text-align:left}.navlinks .services-menu-toggle{justify-self:end}}

/* Services page refinement: editorial grouping, premium motion, image-ready cards */
.services-index-hero{isolation:isolate;min-height:510px;display:flex;align-items:center;background:radial-gradient(ellipse at 82% 28%,#536454 0,transparent 34%),linear-gradient(115deg,#202b24 0%,#2c3e32 60%,#26352b 100%)}
.services-index-hero:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background:linear-gradient(115deg,transparent 0 54%,#d8c0a2 54.1%,transparent 54.3%),linear-gradient(115deg,transparent 0 68%,#ffffff 68.1%,transparent 68.2%);pointer-events:none}
.services-hero-content{position:relative;padding-top:82px;padding-bottom:70px;z-index:1}
.services-hero-content h1{max-width:850px;animation:npServiceHeadline .85s cubic-bezier(.2,.7,.2,1) both}
.services-hero-content>p{max-width:650px;animation:fadeUp .75s .16s both}
.services-hero-content .herobuttons{animation:fadeUp .75s .26s both}
.services-hero-foot{display:flex;gap:24px;flex-wrap:wrap;margin-top:26px;color:#d6ded6;font-size:10px;letter-spacing:.06em;animation:fadeUp .7s .34s both}
.services-hero-foot span{display:flex;align-items:center;gap:8px}.services-hero-foot i{width:5px;height:5px;border-radius:50%;background:#d6b28b;display:inline-block}
.services-hero-orbit{position:absolute;border:1px solid #ffffff18;border-radius:50%;pointer-events:none;z-index:0}
.orbit-one{width:390px;height:390px;right:7%;top:8%;animation:orbitDrift 16s ease-in-out infinite alternate}
.orbit-two{width:270px;height:270px;right:11%;top:20%;border-color:#d6b28b35;animation:orbitDrift 12s ease-in-out infinite alternate-reverse}
.services-intro-band{padding:60px 0 0;background:#f8f7f2}
.services-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:end}
.services-intro-grid h2{margin:16px 0 0}.services-intro-grid h2 em{color:var(--green2)}
.services-intro-grid>p{font-size:14px;line-height:1.9;color:var(--muted);max-width:580px;margin-bottom:5px}
.service-jump-links{display:flex;gap:10px;flex-wrap:wrap;padding-top:28px;padding-bottom:28px}
.service-jump-links a{display:flex;justify-content:space-between;align-items:center;gap:22px;border:1px solid #d9d9d0;background:#ffffffa8;padding:13px 16px;text-decoration:none;color:var(--ink);font-size:11px;font-weight:700;transition:background .25s,border-color .25s,transform .25s}
.service-jump-links a span{color:var(--red);transition:transform .25s}.service-jump-links a:hover{background:white;border-color:#b6b9ad;transform:translateY(-3px)}.service-jump-links a:hover span{transform:translateY(3px)}
.services-index-section{padding-top:70px}
.service-category-block{scroll-margin-top:105px;margin-bottom:88px}
.service-category-heading{display:grid;grid-template-columns:70px 1fr;gap:22px;align-items:start;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.service-category-number{font:500 40px/1 Manrope,sans-serif;color:#c3a17f;letter-spacing:-.06em}
.service-category-heading h2{font-size:clamp(30px,3.5vw,43px);margin:10px 0 10px}.service-category-heading h2 em{color:var(--green2)}
.service-category-heading p{font-size:13px;line-height:1.75;color:var(--muted);margin:0;max-width:610px}
.service-category-block .servicecard{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .3s;transition-delay:var(--card-delay,0ms)}
.service-category-block .servicecard.in-view{opacity:1;transform:translateY(0)}
.service-category-block .servicecard:hover{transform:translateY(-7px);box-shadow:0 20px 45px #1c2a2017}
.service-category-block .servicephoto{overflow:hidden;background-color:#e5e2d9;position:relative}
.service-category-block .servicephoto:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 20%,#ffffff30 45%,transparent 70%);transform:translateX(-120%);transition:transform .8s;z-index:1}
.service-category-block .servicecard:hover .servicephoto:before{transform:translateX(120%)}
.service-category-block .servicecopy{position:relative}.service-category-block .servicecopy:before{content:"";position:absolute;left:22px;right:22px;top:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s}.service-category-block .servicecard:hover .servicecopy:before{transform:scaleX(1)}
.services-index-note{display:grid;grid-template-columns:1fr 1.3fr auto;align-items:center;gap:22px;padding:27px 28px;background:#eeece5;border:1px solid #e2dfd5;margin-top:24px}.services-index-note strong{font:600 17px Manrope}.services-index-note>span{font-size:12px;line-height:1.7;color:var(--muted)}
@keyframes npServiceHeadline{from{opacity:0;transform:translateY(24px);letter-spacing:-.025em}to{opacity:1;transform:translateY(0);letter-spacing:-.045em}}
@keyframes orbitDrift{from{transform:translate3d(0,-8px,0) rotate(-4deg)}to{transform:translate3d(0,12px,0) rotate(5deg)}}
@media(max-width:900px){.services-intro-grid{gap:30px}.services-index-section{padding-top:54px}.services-index-note{grid-template-columns:1fr 1.3fr}.services-index-note .button{grid-column:1/-1;justify-self:start}}
@media(max-width:760px){.services-index-hero{min-height:0}.services-hero-content{padding-top:62px;padding-bottom:50px}.services-hero-content h1{font-size:clamp(40px,10vw,58px)}.services-hero-foot{gap:12px 18px}.orbit-one{width:240px;height:240px;right:-30px;top:12%}.orbit-two{width:160px;height:160px;right:10px;top:24%}.services-intro-band{padding-top:45px}.services-intro-grid{grid-template-columns:1fr;gap:16px}.service-jump-links{display:grid;grid-template-columns:1fr;padding-top:22px}.service-category-heading{grid-template-columns:42px 1fr;gap:12px}.service-category-number{font-size:30px}.service-category-block{margin-bottom:60px}.services-index-note{grid-template-columns:1fr;padding:22px;gap:12px}.services-index-note .button{grid-column:auto}.service-category-block .servicecard:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.services-hero-content h1,.services-hero-content>p,.services-hero-content .herobuttons,.services-hero-foot,.services-hero-orbit,.service-category-block .servicecard,.service-category-block .servicephoto:before{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
.service-jump-links button{display:flex;justify-content:space-between;align-items:center;gap:22px;border:1px solid #d9d9d0;background:#ffffffa8;padding:13px 16px;text-decoration:none;color:var(--ink);font-size:11px;font-weight:700;transition:background .25s,border-color .25s,transform .25s;text-align:left}.service-jump-links button span{color:var(--red);transition:transform .25s}.service-jump-links button:hover{background:white;border-color:#b6b9ad;transform:translateY(-3px)}.service-jump-links button:hover span{transform:translateY(3px)}

/* SEO content blocks: readable, restrained, and consistent with the existing design. */
.seo-service-area .lead{max-width:900px;line-height:1.8;margin:1.25rem 0 1.5rem}
.seo-service-area .np-region-tags{margin:1.5rem 0;display:flex;flex-wrap:wrap;gap:.65rem}
.seo-service-area .np-region-tags span{display:inline-flex;align-items:center;padding:.65rem .9rem;border:1px solid rgba(35,48,39,.14);border-radius:999px;background:rgba(255,255,255,.65);font-size:.9rem}
.seo-faq{max-width:940px}
.seo-faq h2{margin-bottom:1.5rem}
.seo-faq details{border-bottom:1px solid rgba(35,48,39,.16);padding:1.1rem 0}
.seo-faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.seo-faq summary::-webkit-details-marker{display:none}
.seo-faq summary:after{content:'+';font-size:1.25rem;line-height:1;color:#a62c2c;transition:transform .25s ease}
.seo-faq details[open] summary:after{transform:rotate(45deg)}
.seo-faq details p{max-width:780px;line-height:1.75;color:#666;margin:.85rem 0 .25rem}
@media(prefers-reduced-motion:reduce){.seo-faq summary:after{transition:none}}


/* NorthPeak portfolio — architectural editorial direction */
.np-portfolio-editorial{--np-ink:#26342d;--np-green:#344c3f;--np-paper:#f5f3ed;--np-sand:#d6c8b1;--np-muted:#73766f;color:var(--np-ink);background:#fbfaf7;overflow:hidden}
.np-portfolio-editorial *{box-sizing:border-box}.np-port-hero{background:var(--np-paper);padding:clamp(26px,4vw,58px) max(5vw,calc((100vw - 1320px)/2)) 0}.np-port-hero-inner{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(32px,6vw,92px);align-items:center;max-width:1320px;margin:auto;min-height:560px}.np-port-hero-copy{padding:30px 0 42px;animation:npPortRise .8s ease both}.np-port-kicker{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.17em;font-weight:700;color:#5d6d61}.np-port-kicker i{width:7px;height:7px;border-radius:50%;background:#9a805a;display:inline-block}.np-port-kicker b{color:#b6a58b}.np-port-hero h1,.np-port-intro h2,.np-port-gallery h2,.np-port-detail-copy h2,.np-port-cta h2{font-size:clamp(3rem,6.2vw,6rem);line-height:.98;letter-spacing:-.065em;font-weight:500;margin:30px 0 24px}.np-port-hero h1 em,.np-port-intro h2 em,.np-port-gallery h2 em,.np-port-detail-copy h2 em,.np-port-cta h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:#7c8a79;letter-spacing:-.055em}.np-port-hero-copy>p,.np-port-intro-copy>p,.np-port-gallery-head>p,.np-port-detail-copy>p,.np-port-cta>div:nth-child(2)>p{font-size:15px;line-height:1.85;color:#666d66;max-width:480px}.np-port-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:32px}.np-port-primary,.np-port-secondary{border:0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:0 22px;font-size:12px;font-weight:650;letter-spacing:.015em;transition:background .25s,transform .25s,color .25s}.np-port-primary{background:var(--np-green);color:white}.np-port-primary:hover{background:#24372c;transform:translateY(-2px)}.np-port-secondary{background:transparent;color:var(--np-ink);padding:0;border-bottom:1px solid #aab0a6}.np-port-secondary:hover{color:#788a77}.np-port-footnote{margin-top:64px;display:flex;justify-content:space-between;gap:12px;color:#85877f;font-size:9px;letter-spacing:.14em}.np-port-index{color:#3e5145}.np-port-hero-image{height:clamp(420px,53vw,650px);position:relative;overflow:hidden;background:#e3e0d7;animation:npPortReveal .9s .1s ease both}.np-port-hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,31,25,.48),transparent 36%,rgba(20,31,25,.04));pointer-events:none}.np-port-hero-image img,.np-port-project-image img,.np-port-detail-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.np-port-hero-image:hover img{transform:scale(1.025)}.np-port-image-vertical{position:absolute;z-index:1;right:18px;top:22px;writing-mode:vertical-rl;color:#fff;font-size:9px;letter-spacing:.18em}.np-port-image-caption{position:absolute;z-index:1;bottom:32px;left:32px;color:white;display:grid;gap:8px}.np-port-image-caption span{font-size:9px;letter-spacing:.17em}.np-port-image-caption strong{font:italic 27px Georgia,serif;font-weight:400}.np-port-image-index{position:absolute;right:25px;bottom:29px;z-index:1;color:white;font-size:12px;letter-spacing:.12em}.np-port-image-index span{color:#d6c8b1}.np-port-hero-rule{max-width:1320px;margin:auto;display:flex;justify-content:space-between;padding:22px 0;border-top:1px solid #dfddd5;color:#8a8b82;font-size:9px;letter-spacing:.15em}.np-port-hero-rule b{color:#526657;margin-left:8px}.np-port-intro{max-width:1120px;margin:auto;padding:clamp(78px,10vw,140px) 24px;display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.np-port-intro-label{display:flex;align-items:flex-start;gap:16px;padding-top:15px;color:#8b8d83;font-size:9px;letter-spacing:.15em}.np-port-intro-label span:first-child{color:#536b59}.np-port-intro h2,.np-port-gallery h2,.np-port-detail-copy h2,.np-port-cta h2{font-size:clamp(2.8rem,5vw,4.7rem);margin:0 0 24px}.np-port-intro-copy>p{max-width:610px}.np-port-gallery{background:#f0eee7;padding:clamp(70px,9vw,120px) max(5vw,calc((100vw - 1320px)/2)) clamp(80px,10vw,140px)}.np-port-gallery-head{max-width:1320px;margin:0 auto 35px;display:flex;align-items:flex-end;justify-content:space-between;gap:36px}.np-port-gallery-head h2{margin:18px 0 0}.np-port-gallery-head>p{max-width:280px;font-size:12px}.np-port-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 auto 34px;max-width:1320px;border-bottom:1px solid #d8d7ce;padding-bottom:15px}.np-port-filter{background:transparent;border:1px solid transparent;padding:11px 13px;color:#72776f;display:flex;gap:13px;align-items:center;font-size:11px;cursor:pointer;transition:all .2s}.np-port-filter span{font-size:9px;color:#9a9b91}.np-port-filter:hover,.np-port-filter.is-active{background:#fff;border-color:#d9d8ce;color:#26342d}.np-port-filter.is-active span{color:#8b7658}.np-port-grid{max-width:1320px;width:100%;box-sizing:border-box;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 28px}.np-port-project[hidden]{display:none!important}.np-port-project-featured{grid-column:span 2}.np-port-project-featured{display:block;width:100%;min-width:0}.np-port-project-featured .np-port-project-image{display:block;width:100%;max-width:none;grid-column:1/-1}.np-port-project-featured .np-port-project-info{width:100%;box-sizing:border-box}.np-port-project-image{position:relative;display:block;width:100%;height:clamp(250px,30vw,410px);padding:0;border:0;overflow:hidden;background:#dedbd2;cursor:pointer;text-align:left}.np-port-project-featured .np-port-project-image{height:clamp(360px,48vw,620px)}.np-port-project-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,30,24,.35),transparent 36%);pointer-events:none}.np-port-project:hover .np-port-project-image img{transform:scale(1.035)}.np-port-project-number,.np-port-project-arrow,.np-port-image-disclaimer{position:absolute;z-index:1;color:#fff}.np-port-project-number{top:20px;left:22px;font-size:10px;letter-spacing:.12em}.np-port-project-number i{font-style:normal;color:#d7c8ae;margin:0 5px}.np-port-project-arrow{right:18px;top:18px;width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;font-size:16px;transition:background .25s,transform .25s}.np-port-project:hover .np-port-project-arrow{background:#fff;color:#293b30;transform:rotate(45deg)}.np-port-image-disclaimer{bottom:17px;left:22px;font-size:8px;letter-spacing:.16em;opacity:.9}.np-port-project-info{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:18px 0 0}.np-port-project-type{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#788778}.np-port-project-info h3{font-size:clamp(19px,2vw,25px);font-weight:500;letter-spacing:-.035em;margin:8px 0}.np-port-project-info p{font-size:11px;color:#85867e;margin:0}.np-port-text-link{border:0;background:transparent;padding:8px 0;color:#344c3f;white-space:nowrap;font-size:11px;cursor:pointer;border-bottom:1px solid #c2c8bd}.np-port-text-link span{margin-left:10px;display:inline-block;transition:transform .2s}.np-port-text-link:hover span{transform:translate(3px,-3px)}.np-port-empty{padding:40px;text-align:center;color:#777}.np-port-detail-band{display:grid;grid-template-columns:1fr 1fr;max-width:1320px;margin:0 auto;padding:clamp(75px,9vw,125px) 24px;gap:clamp(40px,8vw,115px);align-items:center}.np-port-detail-image{height:clamp(390px,48vw,600px);position:relative;overflow:hidden;background:#e2dfd5}.np-port-detail-image span{position:absolute;left:20px;bottom:20px;color:white;font-size:9px;letter-spacing:.16em}.np-port-detail-image:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.3))}.np-port-detail-copy h2{margin-top:22px}.np-port-detail-copy>p{font-size:13px}.np-port-principles{margin:30px 0;border-top:1px solid #e1dfd7}.np-port-principles>div{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:17px 0;border-bottom:1px solid #e1dfd7}.np-port-principles>div>span{font-size:10px;color:#8a927f;padding-top:3px}.np-port-principles p{margin:0;display:grid;gap:5px}.np-port-principles strong{font-size:13px;font-weight:600}.np-port-principles small{font-size:11px;line-height:1.6;color:#7b7e76}.np-port-cta{background:#304638;color:#fff;padding:clamp(45px,7vw,85px) max(5vw,calc((100vw - 1320px)/2));display:grid;grid-template-columns:.5fr 1.3fr .7fr;gap:30px;align-items:center}.np-port-cta-mark{font-size:13px;letter-spacing:.12em;font-weight:700}.np-port-cta-mark span{color:#cdbb9d}.np-port-cta .np-port-kicker{color:#d4d9d1}.np-port-cta h2{font-size:clamp(2.5rem,4.5vw,4.4rem);margin:20px 0}.np-port-cta h2 em{color:#d4c4a8}.np-port-cta>div:nth-child(2)>p{color:#d4dbd4;font-size:12px}.np-port-cta-action{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.np-port-cta-action .np-port-primary{background:#f1eee6;color:#2c4033}.np-port-cta-action .np-port-primary:hover{background:#fff}.np-port-cta-action>span{font-size:9px;line-height:1.6;color:#d1d8d0}.np-portfolio-editorial button:focus-visible{outline:2px solid #a68b62;outline-offset:3px}@keyframes npPortRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes npPortReveal{from{opacity:0;clip-path:inset(0 0 12% 0)}to{opacity:1;clip-path:inset(0)}}@media(max-width:850px){.np-port-hero-inner{grid-template-columns:1fr;gap:26px;min-height:0}.np-port-hero-copy{padding-bottom:0}.np-port-hero h1{font-size:clamp(3.5rem,11vw,5.5rem)}.np-port-hero-image{height:clamp(360px,95vw,560px)}.np-port-footnote{margin-top:36px}.np-port-intro{grid-template-columns:1fr;gap:25px;padding-top:80px;padding-bottom:80px}.np-port-gallery-head{display:block}.np-port-gallery-head>p{margin-top:18px}.np-port-detail-band{grid-template-columns:1fr;gap:36px}.np-port-detail-image{height:420px}.np-port-cta{grid-template-columns:1fr;gap:22px}.np-port-cta-mark{margin-bottom:10px}.np-port-cta-action{flex-direction:row;align-items:center;flex-wrap:wrap}.np-port-cta-action>span{max-width:180px}}@media(max-width:560px){.np-port-hero{padding-left:20px;padding-right:20px}.np-port-hero h1{font-size:3.35rem}.np-port-kicker{font-size:8px;letter-spacing:.12em}.np-port-hero-rule{font-size:8px;letter-spacing:.09em}.np-port-gallery{padding-left:20px;padding-right:20px}.np-port-gallery h2,.np-port-intro h2,.np-port-detail-copy h2{font-size:2.85rem}.np-port-filters{gap:4px}.np-port-filter{padding:9px 8px;font-size:10px;gap:6px}.np-port-grid{grid-template-columns:1fr;gap:34px}.np-port-project-featured{grid-column:auto}.np-port-project-featured .np-port-project-image,.np-port-project-image{height:270px}.np-port-project-info{align-items:flex-start;flex-direction:column;gap:12px}.np-port-detail-band{padding-left:20px;padding-right:20px}.np-port-detail-image{height:330px}.np-port-cta{padding-left:20px;padding-right:20px}.np-port-footnote span:last-child{max-width:150px;text-align:right}}@media(prefers-reduced-motion:reduce){.np-portfolio-editorial *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* NorthPeak portfolio — cinematic motion layer */
.np-portfolio-editorial{position:relative;isolation:isolate;background:#fbfaf7}
.np-portfolio-editorial:before{content:"";position:absolute;z-index:-1;top:3%;right:-13rem;width:28rem;height:28rem;border:1px solid rgba(119,137,117,.13);border-radius:50%;box-shadow:0 0 0 42px rgba(119,137,117,.035),0 0 0 84px rgba(119,137,117,.025);pointer-events:none;animation:npOrbit 28s linear infinite}
.np-port-hero{position:relative}
.np-port-hero-copy .np-port-kicker{animation:npFadeSlide .7s .05s both}
.np-port-hero h1{animation:npFadeSlide .9s .12s both}
.np-port-hero-copy>p{animation:npFadeSlide .9s .22s both}
.np-port-actions{animation:npFadeSlide .9s .32s both}
.np-port-hero-image{box-shadow:0 28px 75px rgba(42,55,45,.13);transform:translateZ(0)}
.np-port-hero-image:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.28);transition:inset .7s cubic-bezier(.2,.7,.2,1)}
.np-port-hero-image:hover:before{inset:14px}
.np-port-image-caption{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.np-port-hero-image:hover .np-port-image-caption{transform:translateY(-7px)}
.np-port-image-index{width:58px;height:58px;border:1px solid rgba(255,255,255,.72);border-radius:50%;display:grid;place-items:center;backdrop-filter:blur(8px);background:rgba(35,49,39,.14);transition:transform .5s,background .5s}
.np-port-hero-image:hover .np-port-image-index{transform:rotate(-12deg);background:rgba(35,49,39,.45)}
.np-port-hero-rule span:last-child{animation:npNudge 2.4s ease-in-out infinite}
.np-port-intro,.np-port-gallery-head,.np-port-detail-image,.np-port-detail-copy,.np-port-cta>div{opacity:1;transform:none}
.np-port-project{transition:opacity .45s,transform .55s cubic-bezier(.2,.7,.2,1)}
.np-port-project:not([hidden]):hover{transform:translateY(-7px)}
.np-port-project-image{isolation:isolate}
.np-port-project-image:before{content:"";position:absolute;z-index:1;inset:12px;border:1px solid rgba(255,255,255,.55);opacity:0;transform:scale(.985);transition:opacity .5s,transform .7s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.np-port-project:hover .np-port-project-image:before{opacity:1;transform:scale(1)}
.np-port-project-image img{filter:saturate(.91);transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .6s}
.np-port-project:hover .np-port-project-image img{filter:saturate(1.08)}
.np-port-project-info h3{transition:color .25s}
.np-port-project:hover .np-port-project-info h3{color:#7b8b76}
.np-port-filter{position:relative}
.np-port-filter:after{content:"";position:absolute;bottom:-16px;left:13px;right:13px;height:2px;background:#71836f;transform:scaleX(0);transform-origin:left;transition:transform .35s}
.np-port-filter.is-active:after{transform:scaleX(1)}
.np-port-detail-image{box-shadow:20px 20px 0 #e8e4da}
.np-port-detail-image img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s}
.np-port-detail-image:hover img{transform:scale(1.045);filter:saturate(1.08)}
.np-port-principles>div{transition:padding-left .3s,background .3s}
.np-port-principles>div:hover{padding-left:9px;background:linear-gradient(90deg,rgba(120,139,117,.09),transparent)}
.np-port-cta{position:relative;overflow:hidden}
.np-port-cta:after{content:"NP";position:absolute;right:-.03em;bottom:-.42em;font-size:clamp(13rem,30vw,30rem);font-weight:700;letter-spacing:-.1em;line-height:1;color:rgba(255,255,255,.035);pointer-events:none;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.np-port-cta:hover:after{transform:translate(-12px,-8px) rotate(-3deg)}
.np-port-cta>*{position:relative;z-index:1}
.np-port-cta .np-port-primary{transition:transform .3s,box-shadow .3s,background .3s}
.np-port-cta .np-port-primary:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.14)}
@keyframes npFadeSlide{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes npOrbit{to{transform:rotate(360deg)}}
@keyframes npNudge{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@media(max-width:850px){.np-portfolio-editorial:before{width:18rem;height:18rem;right:-11rem}.np-port-project:not([hidden]):hover{transform:none}.np-port-detail-image{box-shadow:12px 12px 0 #e8e4da}}
@media(prefers-reduced-motion:reduce){.np-portfolio-editorial:before,.np-port-hero-rule span:last-child{animation:none!important}.np-port-project,.np-port-project-image img,.np-port-hero-image *,.np-port-cta:after{transition:none!important}}


/* NorthPeak signature portfolio experience */
.np-portfolio-editorial{--np-ink:#26342d;--np-green:#344c3f;--np-paper:#f5f3ed;--np-sand:#d6c8b1;--np-muted:#73766f}
.np-port-showcase{padding:clamp(64px,9vw,130px) max(5vw,calc((100vw - 1320px)/2));background:#e9e6dd;color:#26342d;position:relative;overflow:hidden}
.np-port-showcase:before{content:"NORTHPEAK";position:absolute;right:-.04em;top:4%;font-size:clamp(6rem,18vw,18rem);font-weight:700;letter-spacing:-.09em;color:rgba(52,76,63,.045);white-space:nowrap;pointer-events:none}
.np-port-showcase-top{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:1}.np-port-showcase-index{font-size:10px;letter-spacing:.16em;color:#687368}.np-port-showcase-index i{font-style:normal;color:#a68f6e;margin:0 8px}
.np-port-showcase-heading{display:grid;grid-template-columns:1.1fr .7fr;gap:clamp(28px,8vw,120px);align-items:end;position:relative;z-index:1;margin:30px 0 42px}.np-port-showcase-heading h2{font-size:clamp(2.8rem,6vw,6rem);line-height:.96;letter-spacing:-.065em;font-weight:500;margin:0}.np-port-showcase-heading h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:#7c8a79}.np-port-showcase-heading p{font-size:14px;line-height:1.9;color:#646b63;max-width:440px;margin:0 0 5px}
.np-port-explorer{height:clamp(300px,58vw,690px);max-height:690px;position:relative;overflow:hidden;background:#d8d5cb;isolation:isolate}.np-port-explorer-base,.np-port-explorer-finish{position:absolute;inset:0}.np-port-explorer-base img,.np-port-explorer-finish img{width:100%;height:100%;object-fit:cover;display:block}.np-port-explorer-base img{filter:saturate(.65) contrast(.92) brightness(.88)}.np-port-explorer-finish{clip-path:inset(0 0 0 54%);filter:saturate(1.08) contrast(1.04);will-change:clip-path}.np-port-explorer-label{position:absolute;top:22px;left:22px;padding:11px 14px;background:rgba(248,247,241,.92);color:#344c3f;font-size:9px;letter-spacing:.15em;font-weight:700;backdrop-filter:blur(8px)}.np-port-explorer-finish .np-port-explorer-label{left:auto;right:22px}.np-port-explorer-divider{position:absolute;top:0;bottom:0;left:54%;width:1px;background:#fff;transform:translateX(-50%);pointer-events:none;display:flex;align-items:center;justify-content:center}.np-port-explorer-divider span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#f8f7f1;color:#344c3f;border:1px solid rgba(52,76,63,.15);box-shadow:0 5px 25px #0002;font-size:19px}.np-port-explorer-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}.np-port-explorer-range:focus-visible{opacity:.02;outline:3px solid #a68f6e;outline-offset:-5px}.np-port-explorer-range-label{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:10px 14px;background:rgba(31,43,36,.78);color:#fff;font-size:10px;letter-spacing:.1em;pointer-events:none;white-space:nowrap;backdrop-filter:blur(8px)}.np-port-showcase-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:22px}.np-port-showcase-foot span{font-size:9px;letter-spacing:.13em;color:#667067}.np-port-showcase-foot b{font-weight:500;color:#9b825d;margin-right:10px}
.np-port-gallery{position:relative}.np-port-project{transition:opacity .45s ease,transform .55s cubic-bezier(.2,.7,.2,1)}.np-port-project[hidden]{display:none!important}.np-port-project-image{overflow:hidden}.np-port-project-image img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .8s ease;will-change:transform}.np-port-project:hover .np-port-project-image img{transform:scale(1.055);filter:saturate(1.05)}.np-port-project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(18,28,22,.2));opacity:.5;transition:opacity .4s ease;pointer-events:none}.np-port-project:hover .np-port-project-image:after{opacity:1}.np-port-primary,.np-port-secondary,.np-port-text-link{transition:transform .25s ease,background .3s ease,color .3s ease,letter-spacing .3s ease}.np-port-primary:hover,.np-port-secondary:hover{transform:translateY(-3px)}.np-port-text-link:hover{letter-spacing:.02em}.np-port-detail-image img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.np-port-detail-image:hover img{transform:scale(1.04)}
@media(max-width:700px){.np-port-showcase-heading{grid-template-columns:1fr;gap:18px}.np-port-showcase-foot{grid-template-columns:1fr;gap:10px}.np-port-explorer-label{top:12px;left:12px;padding:8px 9px;font-size:8px}.np-port-explorer-finish .np-port-explorer-label{right:12px}.np-port-explorer-range-label{bottom:10px;font-size:9px}.np-port-showcase:before{top:12%;font-size:24vw}}
@media(prefers-reduced-motion:reduce){.np-port-project,.np-port-project-image img,.np-port-detail-image img,.np-port-primary,.np-port-secondary,.np-port-text-link{transition:none!important;animation:none!important}.np-port-project:hover .np-port-project-image img,.np-port-detail-image:hover img{transform:none}}


/* Fix filtered portfolio whitespace: a lone matching project fills the gallery width. */
.np-port-grid.is-single-result{grid-template-columns:minmax(0,1fr)!important}
.np-port-grid.is-single-result .np-port-project{grid-column:1/-1!important;width:100%;min-width:0}
.np-port-grid.is-single-result .np-port-project-image{width:100%;max-width:none;height:clamp(360px,48vw,620px)}
@media(max-width:700px){.np-port-grid.is-single-result .np-port-project-image{height:clamp(260px,72vw,420px)}}

/* Our Approach — cinematic, editorial process story */
.np-approach-page{--npa-ink:#25352d;--npa-green:#344b3e;--npa-paper:#f4f1e9;--npa-sand:#d9b995;--npa-muted:#747a72}
.np-approach-hero{padding:clamp(54px,7vw,102px) 0 84px;position:relative;background:radial-gradient(ellipse at 78% 45%,rgba(126,151,128,.22),transparent 40%),linear-gradient(118deg,#172820,#2b4336 62%,#314b3c);isolation:isolate}
.np-approach-hero:after{content:"";position:absolute;z-index:-1;left:-15vw;bottom:-24vw;width:52vw;height:52vw;border:1px solid rgba(255,255,255,.075);border-radius:50%;box-shadow:0 0 0 6vw rgba(255,255,255,.018),0 0 0 12vw rgba(255,255,255,.014);pointer-events:none}
.np-approach-hero .approach-hero-grid{grid-template-columns:minmax(0,.9fr) minmax(350px,1.1fr);column-gap:clamp(36px,7vw,108px);row-gap:34px}
.np-approach-eyebrow{letter-spacing:.19em}.np-approach-hero .approach-hero-copy h1{animation:npApproachTitle .9s cubic-bezier(.2,.7,.2,1) both}.np-approach-hero .approach-hero-lead{max-width:490px}.np-approach-hero .herobuttons{animation:npApproachTitle .85s .14s both}
.np-approach-hero-visual{min-height:clamp(390px,46vw,620px);box-shadow:22px 22px 0 rgba(255,255,255,.055);transform:translateY(0);animation:npApproachImage .95s .12s both;isolation:isolate}
.np-approach-hero-visual:before{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.45);z-index:2;pointer-events:none}.np-approach-hero-visual>img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter 1s;filter:saturate(.75) contrast(1.04)}.np-approach-hero-visual:hover>img{transform:scale(1.035);filter:saturate(.95) contrast(1.02)}
.np-approach-hero-visual .approach-image-caption{z-index:3;left:-28px;bottom:38px;min-width:260px;padding:22px 26px;animation:npApproachTitle .9s .3s both}.np-approach-hero-visual .approach-image-caption span{color:#8b6d4e}.np-approach-image-index{position:absolute;right:28px;bottom:25px;z-index:3;color:#fff;font-size:10px;letter-spacing:.18em;text-shadow:0 1px 8px #0008}.np-approach-scrollcue{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin-top:14px;color:rgba(255,255,255,.55);font-size:9px;letter-spacing:.2em}.np-approach-scrollcue span{height:1px;width:46px;background:#d9b995;transform-origin:left;animation:npApproachLine 2.2s ease-in-out infinite}
.np-approach-process-section{background:var(--npa-paper);overflow:hidden}.np-approach-sectionhead{margin-bottom:clamp(36px,5vw,68px)}.np-approach-sectionhead h2,.np-approach-pillars-intro h2{font-size:clamp(2.6rem,5.6vw,5.2rem);letter-spacing:-.06em;line-height:.98}.np-approach-sectionhead h2 em,.np-approach-pillars-intro h2 em,.np-approach-stage-copy h3 em,.np-approach-cta h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:#8c9b88}
.np-approach-timeline{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.2vw,32px)}.np-approach-timeline-line{position:absolute;left:0;right:0;top:0;height:1px;background:#d8d8ce;overflow:hidden}.np-approach-timeline-line span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#a98b69,#536d5b,#a98b69);transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}.np-approach-process-section:has(.np-approach-stage.in-view) .np-approach-timeline-line span{transform:scaleX(1)}
.np-approach-stage{padding-top:24px;min-width:0}.np-approach-stage-image{position:relative;aspect-ratio:4/4.7;overflow:hidden;background:#dedbd1;margin-bottom:25px}.np-approach-stage-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(20,32,24,.32));pointer-events:none}.np-approach-stage-image img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.78);transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .6s}.np-approach-stage:hover .np-approach-stage-image img{transform:scale(1.06);filter:saturate(1)}.np-approach-stage-no{position:absolute;left:16px;top:16px;z-index:1;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--npa-paper);color:var(--npa-ink);font-size:12px}.np-approach-stage-kicker{display:block;color:#7a816f;font-size:9px;letter-spacing:.14em;line-height:1.7}.np-approach-stage-copy h3{font-size:clamp(1.55rem,2.2vw,2.15rem);line-height:1.08;letter-spacing:-.045em;font-weight:500;margin:12px 0}.np-approach-stage-copy h3 em{color:#778875}.np-approach-stage-copy p{font-size:13px;line-height:1.85;color:#686e67;margin:0;max-width:330px}
.np-approach-pillars-section{background:#e7e5dc;position:relative;overflow:hidden}.np-approach-pillars-section:before{content:"CRAFT";position:absolute;right:-.05em;top:8%;font-size:clamp(10rem,25vw,28rem);font-weight:700;letter-spacing:-.11em;color:rgba(48,68,55,.035);line-height:.8;pointer-events:none}.np-approach-pillars-intro{position:relative;max-width:730px;margin-bottom:clamp(36px,5vw,64px)}.np-approach-pillars-intro h2{margin:18px 0}.np-approach-pillars-intro>p{color:#666e65;max-width:480px;line-height:1.8}.np-approach-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #c8c9bf;border-bottom:1px solid #c8c9bf;position:relative}.np-approach-pillar{padding:30px clamp(18px,3vw,44px) 34px 0;position:relative}.np-approach-pillar+.np-approach-pillar{border-left:1px solid #c8c9bf;padding-left:clamp(18px,3vw,44px)}.np-approach-pillar-number{font-size:9px;letter-spacing:.17em;color:#788174}.np-approach-pillar-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #aeb6aa;border-radius:50%;color:#415a48;font-size:20px;margin:28px 0 22px;transition:background .35s,color .35s,transform .35s}.np-approach-pillar:hover .np-approach-pillar-icon{background:#344b3e;color:#fff;transform:rotate(-8deg)}.np-approach-pillar h3{font-size:clamp(1.25rem,2vw,1.75rem);letter-spacing:-.035em;font-weight:500;margin:0 0 12px}.np-approach-pillar p{font-size:13px;line-height:1.9;color:#676e66;max-width:330px;margin:0 0 26px}.np-approach-pillar-rule{display:block;width:32px;height:2px;background:#a98b69;transition:width .5s}.np-approach-pillar:hover .np-approach-pillar-rule{width:72px}
.np-approach-cta-section{background:#24392e;color:#fff;padding:clamp(64px,8vw,112px) 0;overflow:hidden;position:relative}.np-approach-cta-section:before{content:"";position:absolute;width:56vw;height:56vw;right:-24vw;top:-34vw;border:1px solid #ffffff12;border-radius:50%;box-shadow:0 0 0 5vw #ffffff05,0 0 0 10vw #ffffff03;pointer-events:none}.np-approach-cta{display:grid;grid-template-columns:.75fr 1.25fr;column-gap:clamp(32px,8vw,120px);row-gap:40px;position:relative}.np-approach-cta-mark{font-size:clamp(4rem,10vw,10rem);letter-spacing:-.11em;font-weight:700;line-height:.75;color:#ffffff0d;align-self:start}.np-approach-cta-mark span{display:block;font-size:10px;letter-spacing:.22em;color:#ffffff65;margin:18px 0 0 8px;font-weight:500}.np-approach-cta h2{font-size:clamp(3rem,6.5vw,6.5rem);letter-spacing:-.065em;line-height:.95;margin:18px 0}.np-approach-cta h2 em{color:#d9b995}.np-approach-cta-copy>p{color:#d2d9d2;line-height:1.9;max-width:560px;font-size:14px}.np-approach-cta .herobuttons{margin-top:28px}.np-approach-cta-footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid #ffffff25;color:#ffffff80;font-size:9px;letter-spacing:.15em}
@keyframes npApproachTitle{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes npApproachImage{from{opacity:0;clip-path:inset(0 0 0 12%)}to{opacity:1;clip-path:inset(0)}}@keyframes npApproachLine{0%,100%{transform:scaleX(.45);opacity:.55}50%{transform:scaleX(1);opacity:1}}
@media(max-width:900px){.np-approach-hero .approach-hero-grid{grid-template-columns:1fr}.np-approach-hero-visual{min-height:clamp(340px,65vw,520px);margin:12px 0 0 18px}.np-approach-timeline{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}.np-approach-timeline-line{display:none}.np-approach-cta{grid-template-columns:1fr}.np-approach-cta-mark{display:none}}
@media(max-width:560px){.np-approach-hero{padding:48px 0 54px}.np-approach-hero .approach-hero-copy h1{font-size:clamp(2.8rem,13vw,4.2rem)}.np-approach-hero-visual{min-height:310px;margin-left:10px}.np-approach-hero-visual .approach-image-caption{left:-10px;bottom:24px;min-width:215px;padding:16px 18px}.np-approach-scrollcue{font-size:8px}.np-approach-timeline{grid-template-columns:1fr;gap:32px}.np-approach-stage{display:grid;grid-template-columns:minmax(110px,.72fr) minmax(0,1.28fr);gap:18px;align-items:start;padding-top:0}.np-approach-stage-image{aspect-ratio:3/4;margin:0}.np-approach-stage-no{left:9px;top:9px;width:34px;height:34px}.np-approach-stage-copy h3{font-size:1.5rem}.np-approach-stage-copy p{font-size:12px;line-height:1.75}.np-approach-stage-kicker{font-size:8px}.np-approach-pillars{grid-template-columns:1fr}.np-approach-pillar,.np-approach-pillar+.np-approach-pillar{padding:26px 0;border-left:0}.np-approach-pillar+.np-approach-pillar{border-top:1px solid #c8c9bf}.np-approach-pillar-icon{margin:18px 0}.np-approach-cta-footer{flex-direction:column;gap:10px}.np-approach-cta .herobuttons{align-items:stretch;flex-direction:column}.np-approach-cta .herobuttons .button{justify-content:center}}
@media(prefers-reduced-motion:reduce){.np-approach-hero .approach-hero-copy h1,.np-approach-hero .herobuttons,.np-approach-hero-visual,.np-approach-hero-visual .approach-image-caption,.np-approach-scrollcue span{animation:none!important}.np-approach-hero-visual>img,.np-approach-stage-image img,.np-approach-pillar-icon,.np-approach-pillar-rule{transition:none!important}.np-approach-hero-visual:hover>img,.np-approach-stage:hover .np-approach-stage-image img{transform:none!important}}


/* Official Canadian paint-colour catalogue links */
.official-colour-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px}
.official-colour-links .button{display:inline-flex;align-items:center;justify-content:center;min-height:46px}
.official-colour-secondary{display:inline-flex;align-items:center;gap:8px;padding:12px 2px;color:var(--ink,#24362f);font-size:.92rem;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(53,70,61,.32);transition:color .22s ease,border-color .22s ease,transform .22s ease}
.official-colour-secondary:hover{color:var(--accent,#526a58);border-color:currentColor;transform:translateX(3px)}
@media(max-width:600px){.official-colour-links{align-items:stretch;flex-direction:column}.official-colour-links .button,.official-colour-secondary{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.official-colour-secondary{transition:none}}

/* Guided colour-combination recommendations */
.combo-recommendations{margin-top:24px;padding:clamp(18px,3vw,30px);background:linear-gradient(135deg,#f5f3ed 0%,#fbfaf7 65%,#eef1ec 100%);border:1px solid #e2dfd6;border-radius:4px;animation:comboReveal .45s ease both}
.combo-heading{max-width:760px}.combo-heading h3{font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.2;margin:8px 0}.combo-heading h3 em{font-family:Georgia,serif;font-weight:400}.combo-heading p{color:#62665f;line-height:1.65;margin:8px 0}.combo-heading .combo-context{font-size:.85rem;color:#77786f}
.combo-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.combo-swatch{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:0 0 12px;background:#fff;border:1px solid #e3e0d8;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;min-width:0}.combo-swatch:hover{transform:translateY(-3px);box-shadow:0 10px 24px #24271a12}.combo-swatch>span{display:block;width:100%;height:86px;border-bottom:1px solid #0000000d}.combo-swatch strong,.combo-swatch small,.combo-swatch em{margin-left:12px;margin-right:12px}.combo-swatch strong{font-size:.9rem}.combo-swatch small{font-size:.76rem;color:#76766f}.combo-swatch em{font-size:.72rem;font-style:normal;text-transform:uppercase;letter-spacing:.07em;color:#6d735f;margin-top:4px}.combo-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.combo-actions>span{font-size:.76rem;color:#77786f}.combo-actions .button{cursor:pointer}
@keyframes comboReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:620px){.combo-swatches{grid-template-columns:1fr 1fr}.combo-swatch>span{height:68px}.combo-swatch strong,.combo-swatch small,.combo-swatch em{margin-left:9px;margin-right:9px}}
@media(prefers-reduced-motion:reduce){.combo-recommendations{animation:none}.combo-swatch{transition:none}}

/* NorthPeak Colour Studio — premium interaction layer */
.colour-studio-hero{isolation:isolate;position:relative;overflow:hidden}
.colour-studio-hero:after{content:"";position:absolute;z-index:-1;inset:-40% -10%;background:linear-gradient(112deg,transparent 35%,rgba(255,255,255,.055) 48%,transparent 61%);transform:translateX(-70%);animation:npColourSheen 12s ease-in-out infinite;pointer-events:none}
.colour-studio-copy h1{animation:npColourRise .8s cubic-bezier(.2,.7,.2,1) both}
.colour-studio-copy>p{animation:npColourRise .8s .12s cubic-bezier(.2,.7,.2,1) both}
.colour-hero-art{animation:npColourFloatIn 1s .12s cubic-bezier(.2,.7,.2,1) both;box-shadow:0 30px 80px #0c1a1238}
.colour-swatch{transform-origin:center;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .4s,box-shadow .4s}
.colour-swatch-stack:hover .colour-swatch{filter:saturate(.82)}
.colour-swatch-stack:hover .colour-swatch:hover{transform:translateX(-10px) scale(1.025);filter:saturate(1.12);box-shadow:0 14px 32px #101d1630;z-index:2}
.visualizer,.recommend-panel{border-radius:8px;box-shadow:0 18px 60px rgba(34,43,34,.055);transition:box-shadow .35s,border-color .35s}
.visualizer:hover,.recommend-panel:hover{box-shadow:0 24px 70px rgba(34,43,34,.09)}
.visualtop{gap:24px}
#scene{overflow:hidden;isolation:isolate}
.scene-enter{animation:npSceneArrive .65s cubic-bezier(.2,.7,.2,1) both}
#scene svg{transform-origin:center;animation:npSceneArrive .65s cubic-bezier(.2,.7,.2,1) both}
.visualfoot{position:relative;gap:18px}
.selecteddot{box-shadow:0 0 0 5px color-mix(in srgb,currentColor 8%,transparent);transition:background .35s,transform .35s}
.visual-actions button,.modebuttons button,.upload-button,.upload-reset,.photo-tool{transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease}
.visual-actions button:hover,.upload-reset:hover,.photo-tool:hover{transform:translateY(-2px)}
.modebuttons button.active{box-shadow:0 5px 18px rgba(36,57,46,.13)}
.recommend-panel{padding:clamp(20px,3vw,34px);border:1px solid #e5e3dc;background:linear-gradient(145deg,#fff 0%,#fbfaf7 100%)}
.recommend-card{border-radius:5px;transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s,border-color .28s;background:linear-gradient(135deg,#fff,#faf9f5)}
.recommend-card:hover{transform:translateY(-5px);border-color:#b8c0b2;box-shadow:0 14px 30px #26372a12}
.recommend-chip{position:relative;overflow:hidden;border-radius:2px}
.recommend-chip:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#ffffff48 48%,transparent 68%);transform:translateX(-120%);transition:transform .6s}
.recommend-card:hover .recommend-chip:after{transform:translateX(120%)}
.combo-recommendations{border-radius:8px;box-shadow:0 14px 38px rgba(45,56,43,.06);position:relative;overflow:hidden}
.combo-recommendations:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#b69b7b,#637c65,#b69b7b)}
.combo-swatch{border-radius:5px;overflow:hidden}
.combo-swatch>span{height:clamp(76px,10vw,118px);transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .4s}
.combo-swatch:hover>span{transform:scale(1.04);filter:saturate(1.08)}
.combo-swatch:focus-visible,.recommend-card:focus-visible,.swatch-card:focus-visible{outline:2px solid #637c65;outline-offset:3px}
.swatchgrid{perspective:1000px}
.swatchgrid>*{animation:npSwatchIn .45s both;animation-delay:calc(min(var(--swatch-index,0),12)*24ms)}
.swatchgrid>*:hover{z-index:2}
.cataloguecontrols{position:relative}
.searchbox:focus-within{border-color:#849582;box-shadow:0 0 0 4px rgba(99,124,101,.12)}
.moodtabs button,.familytabs button{transition:color .2s,background .25s,border-color .25s,transform .2s}
.moodtabs button:hover,.familytabs button:hover{transform:translateY(-2px)}
.official-colour-links .button{box-shadow:0 7px 18px #25362c13;transition:transform .22s,box-shadow .22s}
.official-colour-links .button:hover{transform:translateY(-2px);box-shadow:0 12px 26px #25362c20}
.saved-colours:empty{display:none}
@keyframes npColourSheen{0%,35%{transform:translateX(-70%)}65%,100%{transform:translateX(70%)}}
@keyframes npColourRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes npColourFloatIn{from{opacity:0;transform:translateY(18px) rotate(1deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes npSceneArrive{from{opacity:.55;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes npSwatchIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.colour-hero-art{animation:none}.colour-swatch-stack:hover .colour-swatch:hover{transform:translateX(-4px) scale(1.01)}.visualizer,.recommend-panel{border-radius:5px}.combo-actions{align-items:stretch;flex-direction:column}.combo-actions .button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.colour-studio-hero:after,.colour-studio-copy h1,.colour-studio-copy>p,.colour-hero-art,.scene-enter,#scene svg,.swatchgrid>*{animation:none!important}.colour-swatch,.visualizer,.recommend-panel,.recommend-card,.recommend-chip:after,.combo-swatch>span,.visual-actions button,.modebuttons button,.upload-button,.upload-reset,.photo-tool,.moodtabs button,.familytabs button{transition:none!important}.colour-swatch-stack:hover .colour-swatch:hover,.recommend-card:hover,.visual-actions button:hover,.upload-reset:hover,.photo-tool:hover{transform:none!important}}

/* Colour Studio motion upgrade — layered, polished, and restrained */
.colour-studio-hero{background-image:radial-gradient(ellipse at 82% 18%,rgba(179,157,123,.14),transparent 34%),radial-gradient(ellipse at 8% 88%,rgba(100,127,103,.10),transparent 36%)}
.colour-studio-hero:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.2;pointer-events:none;background-image:radial-gradient(rgba(49,67,53,.18) .65px,transparent .65px);background-size:18px 18px;mask-image:linear-gradient(110deg,transparent,black 55%,transparent);animation:npColourGrainDrift 28s linear infinite}
.colour-hero-art{transform-origin:55% 60%;animation:npColourFloatIn 1s .12s cubic-bezier(.2,.7,.2,1) both,npColourBreath 8s 1.2s ease-in-out infinite}
.colour-hero-art:after{content:"";position:absolute;inset:10% -3% -3% 10%;border:1px solid rgba(178,157,125,.48);pointer-events:none;animation:npColourFrame 7s ease-in-out infinite alternate}
.colour-swatch-stack{perspective:1000px}
.colour-swatch-stack .colour-swatch:nth-child(1){animation:npSwatchHover 7s ease-in-out infinite}
.colour-swatch-stack .colour-swatch:nth-child(2){animation:npSwatchHover 7s 1.1s ease-in-out infinite}
.colour-swatch-stack .colour-swatch:nth-child(3){animation:npSwatchHover 7s 2.2s ease-in-out infinite}
.cataloguecontrols,.visualizer,.recommend-panel,.official-colour-links{animation:npSectionLift .75s cubic-bezier(.2,.7,.2,1) both;animation-delay:.08s}
.visualizer{position:relative;overflow:hidden}
.visualizer:before{content:"";position:absolute;top:0;left:-120%;width:55%;height:1px;background:linear-gradient(90deg,transparent,#b59a77,transparent);animation:npVisualSweep 6.5s 1s ease-in-out infinite;pointer-events:none;z-index:2}
#scene{transition:filter .45s ease,box-shadow .45s ease}
#scene:hover{filter:saturate(1.035)}
#scene svg{transform-origin:50% 60%}
.selecteddot{animation:npDotPulse 2.8s ease-in-out infinite}
.colour-swatch:active,.combo-swatch:active,.recommend-card:active{transform:scale(.985)}
.visual-actions button:active,.modebuttons button:active,.moodtabs button:active,.familytabs button:active{transform:scale(.97)}
.recommend-card{position:relative;overflow:hidden}
.recommend-card:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(181,154,119,.09) 48%,transparent 70%);transform:translateX(-120%);transition:transform .75s ease;pointer-events:none}
.recommend-card:hover:before{transform:translateX(120%)}
.combo-swatch{transform:translateZ(0)}
.combo-swatch:hover{transform:translateY(-5px) rotateX(2deg);box-shadow:0 15px 32px rgba(35,48,37,.12)}
.combo-swatch em{transition:letter-spacing .3s,color .3s}
.combo-swatch:hover em{letter-spacing:.12em;color:#405744}
.official-colour-secondary:after{content:"↗";display:inline-block;transition:transform .25s ease}
.official-colour-secondary:hover:after{transform:translate(3px,-3px)}
@keyframes npColourGrainDrift{from{background-position:0 0}to{background-position:180px 120px}}
@keyframes npColourBreath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.006)}}
@keyframes npColourFrame{from{transform:translate(0,0);opacity:.45}to{transform:translate(5px,-5px);opacity:.9}}
@keyframes npSwatchHover{0%,100%{translate:0 0}50%{translate:0 -3px}}
@keyframes npSectionLift{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes npVisualSweep{0%,15%{left:-120%;opacity:0}28%{opacity:1}55%,100%{left:150%;opacity:0}}
@keyframes npDotPulse{0%,100%{box-shadow:0 0 0 4px rgba(99,124,101,.08)}50%{box-shadow:0 0 0 7px rgba(99,124,101,.15)}}
@media(max-width:760px){.colour-hero-art{animation:npColourFloatIn 1s .12s cubic-bezier(.2,.7,.2,1) both}.colour-hero-art:after{display:none}.colour-swatch-stack .colour-swatch{animation:none!important}.cataloguecontrols,.visualizer,.recommend-panel,.official-colour-links{animation:none}.combo-swatch:hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.colour-studio-hero:before,.colour-hero-art,.colour-hero-art:after,.colour-swatch-stack .colour-swatch,.cataloguecontrols,.visualizer,.recommend-panel,.official-colour-links,.visualizer:before,.selecteddot{animation:none!important}.recommend-card:before,.combo-swatch em,.official-colour-secondary:after{transition:none!important}.combo-swatch:hover{transform:none!important}}

/* Refined colour catalogue layout + progressive disclosure */
.catalogueintro{align-items:end;gap:28px}
.catalogueintro h2 em{color:#71856b;font-style:italic}
.cataloguecontrols{padding:22px;background:linear-gradient(135deg,#f4f1e9,#fff 62%,#edf1eb);border:1px solid #e5e0d5;border-radius:12px;box-shadow:0 12px 34px rgba(43,51,40,.045)}
.searchbox{border-radius:7px;box-shadow:0 3px 12px #20251b08}
.familytabs button,.moodtabs button{border-radius:999px;transition:transform .22s ease,background .22s ease,box-shadow .22s ease}
.familytabs button:hover,.moodtabs button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #20251b12}
.swatchgrid{gap:18px}
.swatchcard{border-radius:9px;padding:9px;overflow:hidden;box-shadow:0 5px 16px rgba(28,33,27,.035);animation:catalogueCardIn .48s both;animation-delay:calc(var(--card-index,0)*24ms)}
.swatch-card-wrap:nth-child(1) .swatchcard{--card-index:0}.swatch-card-wrap:nth-child(2) .swatchcard{--card-index:1}.swatch-card-wrap:nth-child(3) .swatchcard{--card-index:2}.swatch-card-wrap:nth-child(4) .swatchcard{--card-index:3}.swatch-card-wrap:nth-child(5) .swatchcard{--card-index:4}.swatch-card-wrap:nth-child(6) .swatchcard{--card-index:5}
.swatchcard:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(28,33,27,.12)}
.swatch{height:125px;border-radius:5px;position:relative;overflow:hidden;transition:filter .3s ease}
.swatch:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.28) 48%,transparent 68%);transform:translateX(-130%);transition:transform .65s ease}
.swatchcard:hover .swatch:after{transform:translateX(130%)}
.swatchname{font-size:13px;letter-spacing:-.01em}
.compare-toggle{border-radius:5px;transition:background .2s ease,color .2s ease,transform .2s ease}
.compare-toggle:hover{transform:translateY(-1px)}
.catalogue-more-wrap,.recommend-more-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin:22px auto 34px;text-align:center}
.catalogue-more-wrap[hidden]{display:none}
.catalogue-more-wrap small,.recommend-more-wrap small{font-size:11px;color:#777c72;letter-spacing:.025em}
.catalogue-more-btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:220px;padding:14px 22px;border:1px solid #c9cfc4;border-radius:999px;background:#fff;color:#2e3c30;font:600 12px 'DM Sans',sans-serif;letter-spacing:.025em;cursor:pointer;box-shadow:0 6px 20px rgba(32,43,31,.055);transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.catalogue-more-btn span{font-size:17px;line-height:1;color:#71856b;transition:transform .22s ease}
.catalogue-more-btn:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(32,43,31,.11);background:#f7f8f4}
.catalogue-more-btn:hover span{transform:translateY(2px)}
.recommendations{align-items:stretch}
.recommend-card{border-radius:9px!important;overflow:hidden;box-shadow:0 6px 18px rgba(32,42,31,.045);transition:transform .24s ease,box-shadow .24s ease!important}
.recommend-card:hover{transform:translateY(-4px)!important;box-shadow:0 14px 28px rgba(32,42,31,.11)!important}
.recommend-chip{transition:transform .35s ease,filter .35s ease}
.recommend-card:hover .recommend-chip{filter:saturate(1.12)}
.combo-recommendations{border-radius:12px;background:linear-gradient(135deg,#f6f3ec,#fff 55%,#edf2eb);box-shadow:0 16px 42px rgba(45,56,43,.075)}
.combo-swatch{border-radius:8px;overflow:hidden}
.combo-swatch>span{height:105px;transition:height .25s ease,filter .25s ease}
.combo-swatch:hover>span{height:112px;filter:saturate(1.08)}
@keyframes catalogueCardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.cataloguecontrols{padding:15px;border-radius:9px}.swatchgrid{gap:11px}.swatch{height:112px}.catalogue-more-btn{width:100%;max-width:340px}.catalogue-more-wrap{margin:18px auto 26px}}
@media(prefers-reduced-motion:reduce){.swatchcard,.swatch,.swatch:after,.catalogue-more-btn,.catalogue-more-btn span,.recommend-card,.recommend-chip{animation:none!important;transition:none!important}}

/* Contrast correction: Colour Studio hero must keep readable text against its background */
section.pagehero.colour-studio-hero,
.colour-studio-hero.pagehero.compact{
  background: radial-gradient(ellipse at 78% 42%, rgba(105,132,99,.30), transparent 40%), linear-gradient(115deg,#172b23 0%,#20392e 58%,#2b4537 100%) !important;
  color:#fff !important;
  isolation:isolate;
}
section.pagehero.colour-studio-hero::before,
section.pagehero.colour-studio-hero::after{pointer-events:none}
.colour-studio-hero .colour-studio-copy,
.colour-studio-hero .colour-studio-copy h1,
.colour-studio-hero .colour-studio-copy h1 em{color:#fff !important}
.colour-studio-hero .colour-studio-copy h1{ text-shadow:0 2px 24px rgba(0,0,0,.12); }
.colour-studio-hero .colour-studio-copy h1 em{color:#e4b78e !important}
.colour-studio-hero .colour-studio-copy>p{color:#e6eee7 !important;max-width:620px}
.colour-studio-hero .eyebrow.light{color:#f0bd98 !important}
.colour-studio-hero .colour-hero-meta{color:#f1d4bb !important}
.colour-studio-hero .colour-hero-meta span:before{color:#f0a27e !important}
.colour-studio-hero .colour-hero-art{background:rgba(255,255,255,.075) !important;border-color:rgba(255,255,255,.22) !important;box-shadow:0 26px 75px rgba(0,0,0,.22) !important}
.colour-studio-hero .colour-art-heading{color:#f0c6a7 !important}
.colour-studio-hero .colour-hero-art>p{color:#f5e8db !important}
@media(max-width:900px){.colour-studio-hero .colour-studio-copy h1{max-width:800px}}

/* Cost calculator finishing pass: clearer hierarchy, useful progress and refined interactions */
.calc-layout{grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:clamp(22px,3vw,38px)}
.calc-form{padding:clamp(22px,3.2vw,38px);background:linear-gradient(155deg,#fff 0%,#fbfaf7 100%);border-color:#e4e0d8;box-shadow:0 18px 55px rgba(31,42,35,.07);position:relative;overflow:hidden}
.calc-form:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#d9b08a,#b74336,#254334)}
.calc-wizard-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.calc-progress-label{display:flex;align-items:center;gap:12px;color:#6e766f;font-size:.68rem;letter-spacing:.13em}
.calc-progress-label span{color:#293e32;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.calc-reset{border:0;background:transparent;color:#69736b;font-size:.78rem;padding:8px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.calc-reset:hover{color:#a33a30}
.calc-progress{height:6px;border-radius:99px;background:#e8e7e0;margin:13px 0 32px;overflow:hidden}
.calc-progress span{border-radius:99px;background:linear-gradient(90deg,#b94b3d,#d9b08a);box-shadow:0 0 12px rgba(185,75,61,.2);transition:width .45s cubic-bezier(.2,.75,.25,1)}
.calc-step-kicker{color:#b24b3d;font-size:.67rem;font-weight:750;letter-spacing:.16em;margin-bottom:9px}
.calc-question{font-size:clamp(1.55rem,2.6vw,2.2rem);line-height:1.15;letter-spacing:-.04em;color:#23372d;margin:0 0 10px;animation:calcFadeUp .38s ease both}
.calc-help{color:#68716a;line-height:1.7;font-size:.95rem;margin:0 0 23px;max-width:620px}
.calc-options{gap:12px}
.calc-option{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:68px;padding:16px 17px;border-radius:12px;border-color:#e2e0d9;background:#fff;color:#303b33;font-size:.88rem;line-height:1.45;box-shadow:0 3px 12px rgba(35,49,40,.025);text-align:left}
.calc-option:hover{border-color:#c6ad94;background:#fffdf9;box-shadow:0 9px 22px rgba(35,49,40,.07);transform:translateY(-2px)}
.calc-option.active{border-color:#2e4a3a;background:#eef3ed;box-shadow:inset 0 0 0 1px #2e4a3a,0 6px 18px rgba(35,68,49,.07);color:#20382b}
.calc-option-mark{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border:1px solid #d9dcd5;border-radius:50%;font-size:.9rem;color:#778176;background:#fff;transition:all .22s ease}
.calc-option.active .calc-option-mark{background:#294535;border-color:#294535;color:#fff}
.calc-nav{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:22px;border-top:1px solid #e8e5de}
.calc-nav .button{min-height:48px;border-radius:7px;padding:13px 20px}
.calc-result{position:sticky;top:24px;border-radius:18px;background:radial-gradient(circle at 100% 0%,rgba(217,176,138,.12),transparent 36%),linear-gradient(150deg,#1d3026,#202522 72%);border:1px solid rgba(217,176,138,.2);box-shadow:0 22px 58px rgba(20,35,26,.17)}
.calc-result>.eyebrow{font-size:.67rem;letter-spacing:.15em;color:#e4bd99}
.calc-result #calcOutput h2{font-size:clamp(2rem,3.3vw,3.25rem);letter-spacing:-.055em;color:#fff}
.calc-result #calcOutput .calc-breakdown>div{border-bottom:1px solid rgba(255,255,255,.07);padding:11px 0;font-size:.86rem}
.calc-result #calcOutput .calc-breakdown>div:last-child{border-bottom:0}
.calc-result #calcOutput .calc-breakdown span{color:rgba(255,255,255,.65)}
.calc-result #calcOutput .calc-breakdown strong{max-width:58%;font-weight:600}
.calc-company-note{border-radius:10px;background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.11)}
.calc-company-note p{color:rgba(255,255,255,.76)}
.calc-result .calc-disclaimer{color:rgba(255,255,255,.68)}
.calc-empty-mark{border-radius:12px;background:rgba(217,176,138,.06);font-weight:600;letter-spacing:.06em}
.calc-sqft-field{margin-top:25px;padding:20px;border-radius:13px;background:#f5f5f0;border:1px solid #e5e5dc}
.calc-sqft-field label{font-size:.86rem;color:#2b3b30}
.calc-sqft-input-wrap{border-radius:8px;border-color:#d9dcd4;overflow:hidden}
.calc-sqft-input-wrap input{min-height:54px}
.calc-sqft-field small{color:#657067;font-size:.8rem}
.calc-validation{border-radius:0 8px 8px 0;font-size:.84rem;line-height:1.5}
@keyframes calcFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.calc-layout{grid-template-columns:1fr}.calc-result{position:static;order:2}}
@media(max-width:560px){.calc-form{padding:23px 18px}.calc-wizard-top{align-items:flex-start}.calc-progress-label{flex-direction:column;align-items:flex-start;gap:5px}.calc-option{min-height:62px;padding:14px}.calc-nav .button{padding:12px 14px;font-size:.84rem}.calc-result #calcOutput .calc-breakdown>div{gap:12px}.calc-result #calcOutput .calc-breakdown strong{max-width:55%}}
@media(prefers-reduced-motion:reduce){.calc-question,.calc-progress span,.calc-option,.calc-option-mark{animation:none!important;transition:none!important}}

/* Calculator motion pass: polished, restrained and accessible */
.calculator-hero .calculator-hero-grid>div:first-child{animation:calcHeroEnter .8s cubic-bezier(.2,.7,.2,1) both}
.calculator-hero .calculator-hero-card{animation:calcCardEnter .9s .12s cubic-bezier(.2,.7,.2,1) both;transform-origin:center}
.calculator-hero .calculator-hero-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 25%,rgba(255,255,255,.12) 45%,transparent 62%);transform:translateX(-120%);animation:calcSheen 1.4s .65s ease-out both}
.calculator-hero .calculator-hero-card{position:relative;overflow:hidden}
.calc-form,.calc-result{animation:calcPanelEnter .7s cubic-bezier(.2,.7,.2,1) both}
.calc-result{animation-delay:.1s;transition:box-shadow .3s ease,transform .3s ease}
.calc-option{position:relative;overflow:hidden;transition:transform .26s cubic-bezier(.2,.7,.2,1),border-color .26s ease,box-shadow .26s ease,background .26s ease}
.calc-option:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,rgba(217,176,138,.16) 48%,transparent 70%);transform:translateX(-130%);transition:transform .65s ease}
.calc-option:hover:before{transform:translateX(130%)}
.calc-option.active{animation:calcSelectPulse .38s ease-out}
.calc-option-mark{transition:transform .25s ease,background .25s ease,color .25s ease}
.calc-option:hover .calc-option-mark{transform:rotate(8deg) scale(1.06)}
.calc-progress span{position:relative;overflow:hidden}
.calc-progress span:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:calcProgressShimmer 2.8s ease-in-out infinite}
.calc-sqft-input-wrap{transition:box-shadow .25s ease,border-color .25s ease,transform .25s ease}
.calc-sqft-input-wrap:focus-within{border-color:#b94b3d;box-shadow:0 0 0 4px rgba(185,75,61,.11);transform:translateY(-1px)}
.calc-nav .button,.calc-reset{transition:transform .22s ease,box-shadow .22s ease,color .22s ease}
.calc-nav .button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px rgba(25,40,30,.12)}
.calc-result #calcOutput h2{animation:calcPriceReveal .65s cubic-bezier(.2,.7,.2,1) both}
.calc-result #calcOutput .calc-breakdown>div{animation:calcRowReveal .38s ease both}
.calc-result #calcOutput .calc-breakdown>div:nth-child(2){animation-delay:.04s}.calc-result #calcOutput .calc-breakdown>div:nth-child(3){animation-delay:.08s}.calc-result #calcOutput .calc-breakdown>div:nth-child(4){animation-delay:.12s}.calc-result #calcOutput .calc-breakdown>div:nth-child(5){animation-delay:.16s}.calc-result #calcOutput .calc-breakdown>div:nth-child(6){animation-delay:.2s}.calc-result #calcOutput .calc-breakdown>div:nth-child(7){animation-delay:.24s}
.calc-company-note,.calc-disclaimer,.calc-result-exact-note{transition:background .28s ease,border-color .28s ease}
.calc-company-note:hover{background:rgba(255,255,255,.075);border-color:rgba(217,176,138,.35)}
@keyframes calcHeroEnter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes calcCardEnter{from{opacity:0;transform:translateY(16px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes calcPanelEnter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes calcSheen{0%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@keyframes calcSelectPulse{0%{transform:scale(.985)}65%{transform:scale(1.012)}100%{transform:scale(1)}}
@keyframes calcProgressShimmer{0%,55%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes calcPriceReveal{from{opacity:0;transform:translateY(10px) scale(.985);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes calcRowReveal{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.calculator-hero .calculator-hero-grid>div:first-child,.calculator-hero .calculator-hero-card,.calculator-hero .calculator-hero-card:after,.calc-form,.calc-result,.calc-option.active,.calc-progress span:after,.calc-result #calcOutput h2,.calc-result #calcOutput .calc-breakdown>div{animation:none!important}.calc-option:before{display:none}.calc-option,.calc-option-mark,.calc-sqft-input-wrap,.calc-nav .button,.calc-reset,.calc-result,.calc-company-note{transition:none!important}}

/* Cost calculator: clearer multi-project flow and restrained motion */
.calc-selection-hint{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 10px;color:var(--muted,#aeb6b1);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}
.calc-selection-hint span{color:#d9b08a;font-weight:700}
.calc-options-multi .calc-option{position:relative;overflow:hidden}
.calc-options-multi .calc-option.active{border-color:#d9b08a;box-shadow:0 8px 24px rgba(217,176,138,.12)}
.calc-options-multi .calc-option.active:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 15%,rgba(217,176,138,.12) 45%,transparent 75%);transform:translateX(-120%);animation:calcSelectionSweep .65s ease-out forwards;pointer-events:none}
.calc-measure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;animation:calcStepIn .42s cubic-bezier(.2,.75,.25,1) both}
.calc-measure-hint{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid rgba(217,176,138,.22);border-radius:12px;background:rgba(255,255,255,.035);color:#d4d8d4}
.calc-measure-hint p{margin:0;font-size:.88rem;line-height:1.65}
.calc-validation-show{animation:calcValidationIn .3s ease-out both;color:#ffb5ad}
.calc-result-enter{animation:calcResultIn .6s cubic-bezier(.2,.8,.2,1) both}
.calc-result-enter .calc-result-label{display:inline-block;color:#d9b08a;font-size:.72rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;animation:calcFadeUp .45s ease both}
.calc-result-enter h2{animation:calcCountReveal .7s cubic-bezier(.2,.8,.2,1) both;transform-origin:left center}
.calc-result-enter .calc-breakdown>div{animation:calcFadeUp .42s ease both}
.calc-result-enter .calc-breakdown>div:nth-child(1){animation-delay:.04s}.calc-result-enter .calc-breakdown>div:nth-child(2){animation-delay:.08s}.calc-result-enter .calc-breakdown>div:nth-child(3){animation-delay:.12s}.calc-result-enter .calc-breakdown>div:nth-child(4){animation-delay:.16s}.calc-result-enter .calc-breakdown>div:nth-child(5){animation-delay:.20s}.calc-result-enter .calc-breakdown>div:nth-child(6){animation-delay:.24s}.calc-result-enter .calc-breakdown>div:nth-child(7){animation-delay:.28s}.calc-result-enter .calc-breakdown>div:nth-child(8){animation-delay:.32s}
.calc-result-exact-note{margin-top:20px;padding:16px 18px;border:1px solid rgba(217,176,138,.38);border-radius:12px;background:linear-gradient(120deg,rgba(217,176,138,.1),rgba(255,255,255,.025));animation:calcFadeUp .5s .22s ease both}
.calc-result-exact-note strong{display:block;color:#f1cba8;margin-bottom:6px}.calc-result-exact-note p{margin:0;color:rgba(255,255,255,.78);font-size:.84rem;line-height:1.7}
@keyframes calcSelectionSweep{to{transform:translateX(120%)}}
@keyframes calcStepIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes calcResultIn{from{opacity:0;transform:translateY(16px) scale(.99);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes calcFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes calcCountReveal{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes calcValidationIn{from{opacity:0;transform:translateX(-5px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:680px){.calc-measure-grid{grid-template-columns:1fr}.calc-selection-hint{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){.calc-options-multi .calc-option.active:after,.calc-measure-grid,.calc-result-enter,.calc-result-enter h2,.calc-result-enter .calc-breakdown>div,.calc-result-exact-note,.calc-validation-show{animation:none!important}}

/* NorthPeak Signature Motion — distinctive, premium calculator experience */
.calculator-hero{isolation:isolate;overflow:hidden;position:relative}
.calculator-hero:before{content:"";position:absolute;z-index:-1;width:min(64vw,760px);aspect-ratio:1;border-radius:50%;right:-12%;top:-48%;background:radial-gradient(circle,rgba(218,176,138,.19),rgba(218,176,138,.045) 42%,transparent 69%);filter:blur(3px);animation:npAuraDrift 13s ease-in-out infinite alternate;pointer-events:none}
.calculator-hero:after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.17;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(90deg,transparent,black 60%,transparent);animation:npGridFloat 28s linear infinite}
.calculator-hero .calculator-hero-grid{position:relative;z-index:1}
.calculator-hero .calculator-hero-grid>div:first-child .eyebrow{display:inline-flex;align-items:center;gap:10px}
.calculator-hero .calculator-hero-grid>div:first-child .eyebrow:before{content:"";width:25px;height:1px;background:#d9b08a;transform-origin:left;animation:npRuleDraw .9s .2s both}
.calculator-hero h1{animation:npHeadlineReveal .95s cubic-bezier(.16,1,.3,1) both}
.calculator-hero .calculator-hero-grid>div:first-child>p{animation:calcHeroEnter .8s .2s both}
.calculator-hero-points span{animation:npChipReveal .55s cubic-bezier(.2,.8,.2,1) both;transition:background .25s ease,color .25s ease,transform .25s ease}
.calculator-hero-points span:nth-child(2){animation-delay:.12s}.calculator-hero-points span:nth-child(3){animation-delay:.24s}
.calculator-hero-points span:hover{transform:translateY(-3px);background:rgba(217,176,138,.13);color:#fff}
.calculator-hero-card{border:1px solid rgba(217,176,138,.25);box-shadow:0 24px 75px rgba(0,0,0,.15),inset 0 1px rgba(255,255,255,.08);animation:npCardFloatIn 1s .15s cubic-bezier(.16,1,.3,1) both, npCardBreath 7s 1.2s ease-in-out infinite}
.calculator-hero-card:before{content:"";position:absolute;inset:12px;border:1px solid rgba(217,176,138,.18);border-radius:inherit;pointer-events:none;opacity:.75}
.calculator-hero-card:after{background:linear-gradient(112deg,transparent 22%,rgba(255,255,255,.2) 48%,transparent 68%);animation:npCardGlint 5.8s 1.4s ease-in-out infinite}
.calc-form{border-radius:20px;box-shadow:0 22px 65px rgba(31,42,35,.09),0 2px 0 rgba(255,255,255,.8) inset;transition:box-shadow .4s ease,transform .4s ease}
.calc-form:hover{box-shadow:0 28px 78px rgba(31,42,35,.13),0 2px 0 rgba(255,255,255,.8) inset}
.calc-form:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(360px circle at var(--calc-x,50%) var(--calc-y,0%),rgba(217,176,138,.10),transparent 70%);opacity:0;transition:opacity .3s ease}
.calc-form:focus-within:after{opacity:1}
.calc-wizard-top,.calc-progress,.calc-step-kicker,.calc-question,.calc-help,.calc-options,.calc-measure-grid,.calc-nav{position:relative;z-index:1}
.calc-step-kicker{display:flex;align-items:center;gap:9px}
.calc-step-kicker:before{content:"";display:inline-block;width:22px;height:2px;background:#c15b49;animation:npRuleDraw .5s ease both}
.calc-question{animation:npStepTitle .55s cubic-bezier(.16,1,.3,1) both}
.calc-help{animation:calcFadeUp .55s .06s both}
.calc-option{transform:translateZ(0);will-change:transform}
.calc-option:focus-visible{outline:3px solid rgba(185,75,61,.28);outline-offset:3px}
.calc-options .calc-option:nth-child(4n+1){animation:npOptionRise .55s .02s cubic-bezier(.16,1,.3,1) both}
.calc-options .calc-option:nth-child(4n+2){animation:npOptionRise .55s .07s cubic-bezier(.16,1,.3,1) both}
.calc-options .calc-option:nth-child(4n+3){animation:npOptionRise .55s .12s cubic-bezier(.16,1,.3,1) both}
.calc-options .calc-option:nth-child(4n){animation:npOptionRise .55s .17s cubic-bezier(.16,1,.3,1) both}
.calc-option.active .calc-option-mark{animation:npMarkPop .36s cubic-bezier(.2,1.6,.4,1) both}
.calc-progress span{background-size:200% 100%;animation:npProgressGlow 4s ease-in-out infinite}
.calc-result{overflow:hidden;isolation:isolate;box-shadow:0 28px 75px rgba(20,35,26,.23),inset 0 1px rgba(255,255,255,.07);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}
.calc-result:before{content:"";position:absolute;z-index:-1;inset:-45% -25%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 68%,rgba(217,176,138,.12) 78%,transparent 86%);animation:npResultOrbit 22s linear infinite}
.calc-result:after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#e4bd99,transparent);opacity:.8;animation:npTopLine 3.5s ease-in-out infinite}
.calc-result:hover{transform:translateY(-4px);box-shadow:0 34px 88px rgba(20,35,26,.28),inset 0 1px rgba(255,255,255,.07)}
.calc-result .calc-company-note{position:relative;overflow:hidden}
.calc-result .calc-company-note:before{content:"";position:absolute;top:0;bottom:0;left:-55%;width:35%;background:linear-gradient(90deg,transparent,rgba(217,176,138,.09),transparent);transform:skewX(-18deg);animation:npNoteSweep 7s ease-in-out infinite}
.calc-note-icon{transition:transform .35s cubic-bezier(.2,1.5,.4,1),background .3s ease}
.calc-company-note:hover .calc-note-icon{transform:rotate(-12deg) scale(1.12)}
.calc-nav .button-red{position:relative;overflow:hidden;isolation:isolate}
.calc-nav .button-red:after{content:"";position:absolute;z-index:-1;top:-30%;bottom:-30%;left:-45%;width:24%;transform:skewX(-22deg);background:rgba(255,255,255,.23);animation:npButtonGleam 4.8s ease-in-out infinite}
.calc-nav .button-red:hover:after{animation-duration:1.2s}
.calc-result-enter{transform-origin:center top}
.calc-result-enter .calc-result-label{animation:npLabelTracking .7s ease both}
.calc-result-enter .calc-breakdown>div{position:relative}
.calc-result-enter .calc-breakdown>div:after{content:"";position:absolute;bottom:-1px;left:0;width:0;height:1px;background:rgba(217,176,138,.45);animation:npBreakdownRule .7s .25s ease-out forwards}
@keyframes npAuraDrift{0%{transform:translate3d(0,0,0) scale(.94)}100%{transform:translate3d(-7%,9%,0) scale(1.1)}}
@keyframes npGridFloat{from{background-position:0 0}to{background-position:108px 108px}}
@keyframes npRuleDraw{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes npHeadlineReveal{from{opacity:0;transform:translateY(28px);clip-path:inset(0 0 35% 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
@keyframes npChipReveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes npCardFloatIn{from{opacity:0;transform:translateY(26px) rotateX(4deg) scale(.97)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}
@keyframes npCardBreath{0%,100%{box-shadow:0 24px 75px rgba(0,0,0,.15),inset 0 1px rgba(255,255,255,.08)}50%{box-shadow:0 30px 86px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.12)}}
@keyframes npCardGlint{0%,68%,100%{transform:translateX(-120%)}82%{transform:translateX(120%)}}
@keyframes npStepTitle{from{opacity:0;transform:translateY(13px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes npOptionRise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes npMarkPop{0%{transform:scale(.75) rotate(-20deg)}65%{transform:scale(1.18) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
@keyframes npProgressGlow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes npResultOrbit{to{transform:rotate(360deg)}}
@keyframes npTopLine{0%,100%{opacity:.35;transform:scaleX(.7)}50%{opacity:1;transform:scaleX(1)}}
@keyframes npNoteSweep{0%,68%,100%{left:-55%}86%{left:130%}}
@keyframes npButtonGleam{0%,72%,100%{left:-45%}86%{left:135%}}
@keyframes npLabelTracking{from{opacity:0;letter-spacing:.28em;transform:translateY(6px)}to{opacity:1;letter-spacing:.14em;transform:translateY(0)}}
@keyframes npBreakdownRule{to{width:100%}}
@media(max-width:900px){.calc-result:hover{transform:none}.calculator-hero:before{right:-35%;top:-15%;width:90vw}}
@media(max-width:600px){.calculator-hero:after{background-size:38px 38px}.calc-form:hover{box-shadow:0 22px 65px rgba(31,42,35,.09)}.calculator-hero-card:before{inset:8px}}
@media(prefers-reduced-motion:reduce){.calculator-hero:before,.calculator-hero:after,.calculator-hero h1,.calculator-hero-points span,.calculator-hero-card,.calculator-hero-card:after,.calc-form:after,.calc-step-kicker:before,.calc-options .calc-option,.calc-option.active .calc-option-mark,.calc-progress span,.calc-result:before,.calc-result:after,.calc-result .calc-company-note:before,.calc-nav .button-red:after,.calc-result-enter .calc-result-label,.calc-result-enter .calc-breakdown>div:after{animation:none!important}.calc-form,.calc-result,.calc-option,.calc-note-icon{transition:none!important}}

/* NorthPeak About page — signature editorial motion and refined depth */
.about-hero{position:relative;isolation:isolate;background:radial-gradient(ellipse at 78% 22%,rgba(217,176,138,.18),transparent 34%),linear-gradient(118deg,#14261f 0%,#20392e 54%,#2d493b 100%)}
.about-hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(112deg,transparent 22%,rgba(255,255,255,.055) 48%,transparent 68%);background-size:220% 100%;animation:aboutLightSweep 12s ease-in-out infinite;pointer-events:none}
.about-hero:after{content:"";position:absolute;z-index:-1;width:34rem;height:34rem;border:1px solid rgba(217,176,138,.17);border-radius:50%;right:-10rem;top:-15rem;box-shadow:0 0 0 42px rgba(217,176,138,.025),0 0 0 84px rgba(217,176,138,.02);animation:aboutOrbit 28s linear infinite;pointer-events:none}
.about-hero-copy{animation:aboutRise .85s cubic-bezier(.2,.75,.25,1) both}.about-hero-copy h1{animation:aboutTitleIn 1s .08s cubic-bezier(.2,.75,.25,1) both}.about-hero-lead{animation:aboutRise .8s .18s both}.about-hero .herobuttons{animation:aboutRise .8s .28s both}
.about-hero-visual{overflow:visible;transform-style:preserve-3d;animation:aboutVisualIn 1.1s .1s cubic-bezier(.2,.75,.25,1) both}.about-hero-visual:before{content:"";position:absolute;inset:-12px 12px 12px -12px;border:1px solid rgba(217,176,138,.55);pointer-events:none;transition:transform .8s cubic-bezier(.2,.75,.25,1),opacity .5s;opacity:.7}.about-hero-visual>img{transition:transform 1.2s cubic-bezier(.2,.75,.25,1),filter .8s;will-change:transform}.about-hero-visual:hover>img{transform:scale(1.035);filter:saturate(1) contrast(1.03)}.about-hero-visual:hover:before{transform:translate(10px,-10px);opacity:1}
.about-image-caption{animation:aboutCaptionIn .85s .55s both;transition:transform .35s,box-shadow .35s}.about-hero-visual:hover .about-image-caption{transform:translateY(-5px);box-shadow:0 20px 45px #101a1640}
.about-story-grid,.about-values-grid,.about-service-band,.about-accountability-grid,.about-bottom-cta{animation:aboutRise .8s both}.about-value{position:relative;overflow:hidden;transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s,border-color .4s}.about-value:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:#c9a27e;transition:right .45s cubic-bezier(.2,.75,.25,1)}.about-value:hover{transform:translateY(-8px);box-shadow:0 18px 38px #20232112}.about-value:hover:after{right:0}.about-value-icon{transition:transform .45s cubic-bezier(.2,.75,.25,1),background .35s,color .35s}.about-value:hover .about-value-icon{transform:rotate(-8deg) scale(1.08);background:#20392e;color:#f6efe4;border-color:#20392e}
.about-service-list a{position:relative;overflow:hidden}.about-service-list a:before{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:#c9a27e;transition:width .4s}.about-service-list a:hover:before{width:100%}.about-service-list a b{transition:transform .3s}.about-service-list a:hover b{transform:translate(3px,-3px)}
.about-accountability{background:radial-gradient(ellipse at 88% 15%,#34463b 0%,transparent 42%),#202522}.about-accountability-list article{transition:padding-left .3s}.about-accountability-list article:hover{padding-left:8px}.about-bottom-cta{position:relative}.about-bottom-cta>div:first-child{position:relative}.about-bottom-cta>div:first-child:before{content:"";position:absolute;left:-20px;top:5px;bottom:5px;width:2px;background:linear-gradient(#c9a27e,transparent);transform:scaleY(0);transform-origin:top;animation:aboutRuleIn .8s .2s forwards}
@keyframes aboutLightSweep{0%,100%{background-position:120% 0}50%{background-position:-120% 0}}@keyframes aboutOrbit{to{transform:rotate(360deg)}}@keyframes aboutRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes aboutTitleIn{from{opacity:0;transform:translateY(18px);letter-spacing:-.025em}to{opacity:1;transform:translateY(0);letter-spacing:-.055em}}@keyframes aboutVisualIn{from{opacity:0;transform:translateX(22px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes aboutCaptionIn{from{opacity:0;transform:translate(-12px,12px)}to{opacity:1;transform:translate(0,0)}}@keyframes aboutRuleIn{to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.about-hero:before,.about-hero:after,.about-hero-copy,.about-hero-copy h1,.about-hero-lead,.about-hero .herobuttons,.about-hero-visual,.about-image-caption,.about-story-grid,.about-values-grid,.about-service-band,.about-accountability-grid,.about-bottom-cta{animation:none!important}.about-hero-visual>img,.about-value,.about-service-list a,.about-service-list a b{transition:none!important}}

/* NorthPeak Contact — signature motion and service-area explorer */
.contact-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 82% 18%,rgba(206,169,126,.18),transparent 32%),linear-gradient(115deg,#172820 0%,#20372d 54%,#16241e 100%)}
.contact-hero:before{content:"";position:absolute;inset:-25%;pointer-events:none;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.035) 48%,rgba(217,176,138,.10) 51%,transparent 62%);transform:translateX(-45%);animation:npContactLightSweep 12s ease-in-out infinite}
.contact-hero:after{content:"";position:absolute;width:440px;height:440px;right:18%;top:-250px;border:1px solid rgba(217,176,138,.22);border-radius:50%;box-shadow:0 0 0 42px rgba(217,176,138,.025),0 0 0 84px rgba(217,176,138,.02);animation:npContactOrbit 28s linear infinite;pointer-events:none}
.contact-hero-grid{position:relative;z-index:1}
.contact-hero-copy .eyebrow{animation:npContactRise .8s .05s both}.contact-hero-copy h1{animation:npContactRise .95s .15s both}.contact-hero-copy .contact-hero-lead{animation:npContactRise .9s .28s both}.contact-hero-copy .herobuttons{animation:npContactRise .9s .4s both}.contact-hero-note{animation:npContactRise .9s .52s both}
.contact-hero-visual{isolation:isolate;box-shadow:0 28px 80px rgba(0,0,0,.25);animation:npContactVisualIn 1.15s .18s both;transform-origin:center}
.contact-hero-visual:after{content:"";position:absolute;inset:12px;border:1px solid rgba(247,244,238,.42);pointer-events:none;z-index:1;transition:inset .6s cubic-bezier(.2,.75,.2,1),border-color .5s ease}
.contact-hero-visual:hover:after{inset:5px;border-color:rgba(217,176,138,.9)}
.contact-hero-visual>img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .7s ease;will-change:transform}.contact-hero-visual:hover>img{transform:scale(1.055);filter:saturate(.98)}
.contact-image-caption{animation:npContactCaptionIn .9s .7s both;transition:transform .45s ease,box-shadow .45s ease}.contact-hero-visual:hover .contact-image-caption{transform:translate(5px,-5px);box-shadow:0 18px 45px #101a164a}
.np-contact-communities{position:relative;overflow:hidden;margin-top:32px;padding:26px;background:linear-gradient(145deg,#f8f6f0,#eeece4);border:1px solid rgba(38,42,38,.12);border-radius:8px;box-shadow:0 18px 50px rgba(25,37,29,.07)}
.np-contact-communities:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#203d32,#d9b08a,#203d32);background-size:200% 100%;animation:npContactLine 7s linear infinite}
.np-community-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.np-community-heading .eyebrow{font-size:.66rem;letter-spacing:.16em;color:#7a5c42}.np-community-count{font-size:.62rem;letter-spacing:.12em;color:#727970}.np-contact-communities h3{font-size:clamp(1.45rem,2.5vw,1.9rem);letter-spacing:-.035em;margin:0 0 9px;color:#1d2e25}.np-communities-intro{font-size:.9rem;line-height:1.7;color:#606960;margin:0 0 18px;max-width:600px}
.np-community-search{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #d8d8ce;border-radius:6px;padding:0 13px;min-height:52px;transition:border-color .25s ease,box-shadow .3s ease,transform .3s ease}.np-community-search:focus-within{border-color:#8c9b8d;box-shadow:0 0 0 4px rgba(48,83,64,.10);transform:translateY(-1px)}.np-community-search>span{font-size:1.55rem;color:#8b694b;line-height:1}.np-community-search input{flex:1;min-width:0;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:14px 0!important;color:#24342b!important;font-size:.9rem}.np-community-search input::placeholder{color:#858b83}.np-community-search kbd{font:600 .58rem/1 system-ui,sans-serif;letter-spacing:.12em;color:#7a8079;background:#f1f0e9;border-radius:3px;padding:7px 8px}
.np-community-results{font-size:.72rem;color:#737a72;letter-spacing:.025em;padding:13px 2px 8px;min-height:34px}.np-community-region{padding:0;margin:0;border-top:1px solid rgba(38,42,38,.12);transition:background .3s ease,opacity .3s ease,transform .3s ease}.np-community-region[hidden]{display:none}.np-community-region summary{list-style:none;display:grid;grid-template-columns:34px 1fr 24px;align-items:center;gap:10px;cursor:pointer;padding:16px 3px;color:#26382e;font-weight:650;font-size:.91rem;transition:padding .3s ease,color .3s ease}.np-community-region summary::-webkit-details-marker{display:none}.np-community-region summary:hover{padding-left:8px;color:#7b573b}.np-region-index{display:grid;place-items:center;width:29px;height:29px;border:1px solid #d5c7b5;border-radius:50%;font-size:.65rem;color:#8b6848;font-weight:500}.np-community-region summary i{font-style:normal;font-size:1.2rem;font-weight:300;text-align:center;color:#987657;transition:transform .35s ease}.np-community-region[open] summary i{transform:rotate(45deg)}.np-community-region p{padding:0 6px 18px 47px;font-size:.85rem;line-height:1.8;color:#626b63;animation:npCommunityOpen .38s ease both}.np-community-region[open]{background:rgba(255,255,255,.48)}.np-community-region[open] summary{color:#203d32}
.contactdetail{transition:transform .35s ease,border-color .35s ease}.contactdetail:hover{transform:translateX(5px)}.contactdetail a{transition:color .25s ease}.contactdetail a:hover{color:#a56f43}
@keyframes npContactRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes npContactVisualIn{from{opacity:0;transform:translateX(22px) scale(.975);filter:blur(4px)}to{opacity:1;transform:translateX(0) scale(1);filter:blur(0)}}@keyframes npContactCaptionIn{from{opacity:0;transform:translate(-12px,14px)}to{opacity:1;transform:translate(0,0)}}@keyframes npContactLightSweep{0%,15%{transform:translateX(-48%)}65%,100%{transform:translateX(48%)}}@keyframes npContactOrbit{to{transform:rotate(360deg)}}@keyframes npContactLine{to{background-position:200% 0}}@keyframes npCommunityOpen{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.np-contact-communities{padding:20px 15px;margin-top:24px}.np-community-heading{align-items:flex-start;flex-direction:column;gap:5px}.np-community-region summary{padding:14px 0;grid-template-columns:30px 1fr 20px;font-size:.84rem}.np-community-region p{padding-left:40px;font-size:.82rem}.np-community-search kbd{display:none}.contact-hero:after{right:-200px}.contact-hero-visual{overflow:hidden}}
@media(prefers-reduced-motion:reduce){.contact-hero:before,.contact-hero:after,.contact-hero-copy .eyebrow,.contact-hero-copy h1,.contact-hero-copy .contact-hero-lead,.contact-hero-copy .herobuttons,.contact-hero-note,.contact-hero-visual,.contact-image-caption,.np-contact-communities:before,.np-community-region p{animation:none!important}.contact-hero-visual>img,.contact-hero-visual:after,.contact-image-caption,.np-community-search,.np-community-region,.np-community-region summary,.np-community-region summary i,.contactdetail{transition:none!important}}

/* Footer brand mark: use the supplied NorthPeak logo and tighten the closing area. */
.footerbrand-logo{display:block;width:100%;max-width:238px;margin:0 0 18px;overflow:hidden;border-radius:5px;line-height:0;background:#e6ddd0;box-shadow:0 10px 28px #0003;transition:box-shadow .4s ease,transform .4s cubic-bezier(.2,.7,.2,1);}
.footerbrand-logo img{display:block;width:100%;max-width:238px;height:auto;max-height:160px;object-fit:contain;object-position:center;filter:none;transition:transform .55s cubic-bezier(.2,.7,.2,1);transform-origin:center;}
.footerbrand-logo:hover{transform:translateY(-2px);box-shadow:0 15px 34px #0004;}
.footerbrand-logo img:hover{transform:scale(1.025);filter:none;}
.footergrid>div:first-child p{max-width:290px;}
.ctaBand{padding:48px 0;}
.footer{padding-top:42px;}
@media(max-width:760px){.footerbrand-logo{max-width:210px;margin-bottom:12px}.footerbrand-logo img{max-width:210px;max-height:140px}.ctaBand{padding:40px 0}.footer{padding-top:34px}}
@media(prefers-reduced-motion:reduce){.footerbrand-logo img{transition:none}.footerbrand-logo img:hover{transform:none}}

/* Footer navigation uses real hash links for dependable routing, keyboard access and open-in-new-tab support. */
.footer-link{display:block;width:100%;max-width:100%;padding:7px 0;color:#c1c9c1;text-decoration:none;font-size:12px;line-height:1.45;overflow-wrap:anywhere;transition:color .2s ease,transform .2s ease}
.footer-link:hover,.footer-link:focus-visible{color:#fff;transform:translateX(3px)}
.footer-contact-link{color:#c1c9c1;text-decoration:none;overflow-wrap:anywhere}
.footer-contact-link:hover{color:#fff;text-decoration:underline}
.footergrid .footercta{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:760px){.footer-link{font-size:12px;padding:8px 0}}
