/* Façade Solutions — merged stylesheet (generated from the former per-page CSS files, in cascade order). */

/* ===== styles.css ===== */
:root{--ink:#111719;--ink2:#1b2224;--paper:#f5f5f3;--gold:#c9ab76;--muted:#9b9d9d;--white:#f7f7f4;--serif:'Manrope',sans-serif;--sans:'DM Sans',sans-serif;--gutter:6.1vw}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);font-family:var(--sans);color:var(--white);font-weight:400}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{position:absolute;z-index:5;top:0;left:0;width:100%;height:88px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff20}.brand{display:flex;align-items:center;gap:11px;font-size:13px;line-height:.98;font-weight:600;letter-spacing:.11em}.brand-mark{width:27px;height:42px;position:relative;display:block;clip-path:polygon(0 17%,56% 0,100% 15%,100% 84%,48% 100%,0 81%);background:#f0f0ec}.brand-mark:before{content:"";position:absolute;inset:4px;background:#24303a;clip-path:polygon(0 17%,56% 0,100% 15%,100% 84%,48% 100%,0 81%)}.brand-mark i{position:absolute;z-index:1;background:#f0f0ec;width:1px;height:44px;top:0;left:49%;transform:rotate(-2deg)}.brand-mark i:nth-child(2){height:25px;top:9px;left:26%;transform:rotate(-50deg)}.brand-mark i:nth-child(3){height:26px;top:9px;left:72%;transform:rotate(50deg)}.main-nav{display:flex;align-items:center;gap:clamp(15px,2.2vw,34px);margin-left:auto;margin-right:4vw}.main-nav a,.header-cta{font-size:9px;text-transform:uppercase;letter-spacing:.045em;font-weight:600;white-space:nowrap}.main-nav a{transition:color .2s}.main-nav a:hover,.footer a:hover{color:var(--gold)}.header-cta{padding:12px 16px;border:1px solid #ffffff8c}.header-cta span{padding-left:12px;color:var(--gold)}.menu-toggle{display:none}
.hero{position:relative;min-height:530px;height:min(75vh,780px);max-height:780px;display:flex;align-items:center;overflow:hidden;background:#182430}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{background-image:none;background-size:cover;background-position:center 48%;transform:scale(1.01)}.hero-shade{background:linear-gradient(90deg,rgba(9,16,20,.76) 0%,rgba(9,16,20,.47) 40%,rgba(9,16,20,.06) 100%),linear-gradient(0deg,rgba(9,16,20,.26),transparent 48%),linear-gradient(180deg,rgba(10,20,28,.27),transparent 26%)}.hero-content{position:relative;z-index:1;width:100%;padding:90px var(--gutter) 8px}.eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.36em;font-weight:600;margin:0 0 14px;color:#e4e4df}.hero h1{font-family:var(--serif);font-size:clamp(42px,5.1vw,76px);line-height:1.04;letter-spacing:-.05em;font-weight:300;margin:0;max-width:880px}.hero h1 em{font-style:normal;color:var(--gold)}.hero-copy{font-size:13px;line-height:1.65;max-width:370px;margin:17px 0 22px;color:#efefec}.hero-actions{display:flex;gap:12px}.button{height:42px;padding:0 20px;display:inline-flex;align-items:center;gap:15px;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.04em}.button-gold{background:var(--gold);color:#15191a}.button-gold:hover{background:#dfc797}.button-outline{border:1px solid #f3f3ee;color:#fff}.button-outline:hover{background:#ffffff1d}.hero-index{position:absolute;right:var(--gutter);top:32%;display:flex;flex-direction:column;gap:17px;padding-left:12px;border-left:1px solid #fff8;font-size:9px;color:#ffffffa8}.hero-index span:first-child{color:#fff}.hero-caption{position:absolute;right:var(--gutter);bottom:30px;text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:.06em}.hero-caption span{color:var(--gold);padding:0 6px}.scroll-cue{position:absolute;left:var(--gutter);bottom:28px;text-transform:uppercase;letter-spacing:.2em;font-size:8px;display:flex;gap:10px;align-items:center;color:#ffffffb3}.scroll-cue span{height:28px;width:1px;background:var(--gold)}
.section-light{background:var(--paper);color:var(--ink)}.section-dark{background:linear-gradient(115deg,#101516,#1a2020);color:var(--white)}.intro{min-height:230px;display:grid;grid-template-columns:1.2fr 1fr .92fr;align-items:center;padding:25px var(--gutter);position:relative;overflow:hidden}.intro-copy{max-width:430px;position:relative;z-index:1}.eyebrow-dark{color:#373a39}.intro h2,.section-heading h2,.delivery h2,.quality h2,.contact h2{font-family:var(--serif);font-weight:400;letter-spacing:-.04em;line-height:1.12}.intro h2{font-size:clamp(24px,2.35vw,35px);margin:0 0 9px}.intro-copy>p:not(.eyebrow){font-size:11px;line-height:1.55;color:#5f6260;max-width:405px;margin:0 0 13px}.text-link{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;white-space:nowrap}.text-link span{margin-left:7px}.text-link:hover span,.service-card:hover .arrow{color:var(--gold)}.stats{display:grid;grid-template-columns:1fr 1fr;max-width:380px;padding-left:28px;position:relative;z-index:1}.stats div{min-height:72px;display:flex;flex-direction:column;justify-content:center;padding-left:28px;border-left:1px solid #0000000c}.stats strong{font-size:16px;font-weight:600;letter-spacing:-.03em}.stats span{font-size:9px;color:#757775;margin-top:3px}.intro-photo{position:absolute;right:0;top:0;height:100%;width:31%;background:linear-gradient(90deg,var(--paper),transparent 34%),none center/cover;clip-path:polygon(36% 0,100% 0,100% 100%,0 100%)}
.services{padding:27px var(--gutter) 30px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.section-heading h2{font-size:27px;margin:0}.services .section-heading{margin-bottom:15px}.service-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.service-card{min-width:0}.service-image{aspect-ratio:1.46;overflow:hidden;background-color:#41494b;background-size:cover;background-position:center;transition:filter .25s,transform .3s}.service-card:hover .service-image{filter:brightness(1.15)}.img-curtain{background-image:none}.img-windows{background-image:none}.img-cladding{background-image:none}.img-louvres{background-image:none}.img-glass{background-image:none}.img-special{background-image:none}.service-card h3{font-size:11px;margin:9px 4px 4px;font-weight:600}.service-card p{font-size:9px;line-height:1.35;color:#b6b9b7;margin:0 4px}.service-card .arrow{display:block;font-size:12px;margin:4px 4px 0;transition:color .2s}
.projects{padding:27px var(--gutter) 30px;overflow:hidden}.projects .section-heading{margin-bottom:11px}.projects .section-heading h2{font-size:26px}.project-controls{display:flex;align-items:center;gap:8px}.project-controls .text-link{margin-right:24px}.circle-btn{width:31px;height:31px;border-radius:50%;border:1px solid #d6d8d5;background:transparent;color:var(--ink);cursor:pointer}.circle-btn:hover{background:var(--ink);color:white}.project-track{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:9px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}.project-track::-webkit-scrollbar{display:none}.project-card{min-width:0}.project-image{aspect-ratio:1.53;background-position:center;background-size:cover;background-color:#bec4c5;transition:transform .3s,filter .3s}.project-card:hover .project-image{filter:brightness(1.08)}.project-hyatt{background-image:none}.project-kupe{background-image:none}.project-cordis{background-image:none}.project-truro{background-image:none}.project-card h3{font-size:10px;text-transform:uppercase;letter-spacing:.04em;margin:10px 5px 4px;font-weight:700}.project-card p{font-size:9px;color:#777a78;margin:0 5px;position:relative;padding-right:20px}.project-card p b{font-weight:400;margin:0 5px}.project-card p span{position:absolute;right:4px;color:var(--ink)}
.delivery{padding:32px var(--gutter);display:grid;grid-template-columns:1fr 1.6fr;gap:30px;align-items:center}.delivery h2{font-size:clamp(23px,2.25vw,32px);margin:0}.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.steps>div{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.steps>div:not(:last-child):after{content:"";height:1px;background:#9b8562;position:absolute;left:46px;right:0;top:21px;transform:translateX(6px)}.step-icon{width:40px;height:40px;border:1px solid #ac9365;color:var(--gold);border-radius:50%;display:grid;place-items:center;font-size:20px;margin:0 0 9px;position:relative;z-index:1;background:#151a1b}.steps small{font-size:8px;color:var(--gold);margin-bottom:2px}.steps b{font-size:9px;line-height:1.25;font-weight:500}
.quality{position:relative;padding:27px var(--gutter);display:grid;grid-template-columns:1.05fr 2fr .5fr;align-items:center;gap:25px;min-height:155px;overflow:hidden}.quality-copy{position:relative;z-index:1}.quality h2{font-size:25px;margin:0 0 8px}.quality-copy>p:not(.eyebrow){font-size:10px;line-height:1.5;color:#686b69;max-width:310px;margin:0 0 9px}.quality-items{display:grid;grid-template-columns:repeat(6,1fr);position:relative;z-index:1}.quality-items div{min-height:70px;border-left:1px solid #0000000c;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3px}.quality-items span{font-family:var(--serif);font-size:21px;margin-bottom:7px}.quality-items small{font-size:8px;line-height:1.25}.quality-photo{position:absolute;right:0;top:0;width:19%;height:100%;background:linear-gradient(90deg,var(--paper),transparent 45%),none center/cover;opacity:.9}
.contact{min-height:230px;position:relative;display:flex;justify-content:space-between;align-items:center;padding:35px var(--gutter);overflow:hidden;background:#19222a}.contact-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,22,28,.32),rgba(13,22,28,.52) 66%,#121719 78%),none center 48%/cover}.contact-content,.contact address{position:relative;z-index:1}.contact h2{font-size:clamp(26px,3vw,42px);margin:0 0 12px}.contact address{font-style:normal;min-width:190px}.contact address p{display:grid;grid-template-columns:22px 1fr;column-gap:8px;margin:0 0 13px;font-size:10px}.contact address p>span{color:var(--gold);grid-row:span 2;font-size:15px}.contact address b{font-weight:500}.contact address small{grid-column:2;color:#c3c6c4;font-size:9px;margin-top:2px}.contact address a:hover{color:var(--gold)}footer{padding:19px var(--gutter);display:flex;align-items:center;justify-content:space-between;background:#101516;color:#d9dcda}footer .brand{font-size:10px}footer .brand-mark{width:20px;height:31px}footer small,footer>a:last-child{font-size:9px;color:#929795}
@media(min-width:1500px){:root{--gutter:max(6.1vw,calc((100vw - 1480px)/2))}.hero{max-height:900px}.intro{min-height:280px}.service-image{aspect-ratio:1.55}.projects{padding-top:38px;padding-bottom:38px}}
@media(max-width:900px){:root{--gutter:5vw}.site-header{height:74px}.main-nav{gap:15px;margin-right:2vw}.main-nav a{font-size:8px}.header-cta{font-size:8px;padding:10px}.brand{font-size:11px}.hero{min-height:550px;height:70vh}.intro{grid-template-columns:1.15fr .95fr;min-height:245px}.stats{padding-left:5px}.intro-photo{width:26%;opacity:.65}.service-grid{grid-template-columns:repeat(3,1fr);row-gap:17px}.service-image{aspect-ratio:1.9}.delivery{grid-template-columns:1fr;gap:22px}.quality{grid-template-columns:1fr 2fr;gap:14px}.quality-photo{width:13%;opacity:.45}.quality-items{padding-right:30px}.project-track{grid-template-columns:repeat(4,minmax(230px,1fr))}}
@media(max-width:640px){:root{--gutter:22px}.site-header{height:68px}.brand{font-size:10px}.brand-mark{height:36px;width:23px}.menu-toggle{display:flex;margin-left:auto;margin-right:15px;width:36px;height:36px;border:1px solid #ffffff55;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px}.menu-toggle span{width:15px;height:1px;background:white}.main-nav{display:none;position:absolute;top:68px;left:0;right:0;margin:0;padding:15px 22px 21px;background:#13191bf5;flex-direction:column;align-items:flex-start;gap:0}.main-nav.open{display:flex}.main-nav a{padding:12px 0;width:100%;font-size:10px;border-bottom:1px solid #ffffff19}.header-cta{font-size:8px;padding:9px 10px}.header-cta span{padding-left:5px}.hero{height:78vh;min-height:560px;max-height:700px;align-items:flex-end}.hero-image{background-position:61% center}.hero-shade{background:linear-gradient(0deg,rgba(9,16,20,.84),rgba(9,16,20,.28) 72%,rgba(9,16,20,.1))}.hero-content{padding:0 var(--gutter) 92px}.hero h1{font-size:clamp(38px,11.5vw,58px)}.hero-copy{font-size:12px;max-width:315px}.hero-index{top:94px;right:var(--gutter)}.hero-caption{display:none}.scroll-cue{bottom:22px}.intro{display:block;padding-top:29px;padding-bottom:25px}.intro-copy{max-width:470px}.intro h2{font-size:29px}.intro-photo{display:none}.stats{max-width:none;margin-top:19px;padding:0;grid-template-columns:1fr 1fr}.stats div{min-height:57px;padding-left:14px}.stats strong{font-size:15px}.services{padding-top:26px;padding-bottom:27px}.section-heading h2,.projects .section-heading h2{font-size:24px}.services .section-heading .text-link{font-size:8px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 9px}.service-image{aspect-ratio:1.45}.service-card h3{font-size:10px}.service-card p{font-size:8px}.projects{padding-top:26px;padding-bottom:26px}.projects .section-heading{align-items:flex-start}.project-controls{gap:5px}.project-controls .text-link{display:none}.circle-btn{height:28px;width:28px}.project-track{grid-template-columns:repeat(4,minmax(240px,82vw));gap:10px;margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter)}.delivery{padding-top:27px;padding-bottom:28px}.delivery h2{font-size:26px}.steps{grid-template-columns:repeat(3,1fr);row-gap:18px}.steps>div:not(:last-child):after{display:none}.step-icon{width:37px;height:37px}.quality{display:block;padding-top:27px;padding-bottom:28px}.quality h2{font-size:27px}.quality-copy>p:not(.eyebrow){max-width:300px}.quality-items{grid-template-columns:repeat(3,1fr);padding:18px 0 0;gap:6px}.quality-items div{border:1px solid #00000010;min-height:69px}.quality-photo{display:none}.contact{display:block;padding-top:32px;padding-bottom:22px}.contact-backdrop{background:linear-gradient(90deg,rgba(13,22,28,.56),#121719 100%),none 36% center/cover}.contact h2{font-size:30px}.contact address{margin-top:26px;display:grid;grid-template-columns:1fr;gap:0}.contact address p{margin-bottom:10px}footer{gap:8px;flex-wrap:wrap}footer small{order:3;width:100%}}

/* ===== enhancements.css ===== */
.project-feature{display:grid;grid-template-columns:1.08fr .92fr;min-height:390px}.feature-photo{min-height:390px;background:linear-gradient(0deg,#1117192a,#11171900),none center/cover}.feature-copy{padding:70px clamp(32px,7vw,110px);align-self:center;position:relative}.feature-number{font-size:9px;color:var(--gold);position:absolute;right:clamp(32px,7vw,110px);top:73px}.feature-copy h2,.capability-intro h2,.quality-detail h2,.careers-band h2{font-family:var(--serif);font-weight:300;letter-spacing:-.045em;line-height:1.12}.feature-copy h2{font-size:clamp(29px,3.1vw,46px);margin:28px 0 14px}.feature-copy>p:not(.eyebrow){font-size:12px;line-height:1.7;color:#c4c7c4;max-width:430px;margin:0 0 22px}.capabilities{padding:70px var(--gutter);display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw}.capability-intro h2{font-size:clamp(30px,3vw,43px);margin:0 0 14px}.capability-intro>p:not(.eyebrow){font-size:12px;color:#666a68;line-height:1.75;max-width:430px;margin:0 0 20px}.capability-list>div{display:grid;grid-template-columns:40px 1fr 20px;gap:14px;padding:17px 0;border-top:1px solid #d9dbd8;align-items:start}.capability-list>div:last-child{border-bottom:1px solid #d9dbd8}.capability-list>div>span{color:#a58c63;font-size:10px;padding-top:3px}.capability-list h3{font-size:14px;font-weight:500;margin:0 0 6px}.capability-list p{font-size:11px;line-height:1.55;color:#6f7370;margin:0;max-width:480px}.capability-list b{font-size:14px;font-weight:400}.quality-detail{padding:43px var(--gutter);display:grid;grid-template-columns:1fr 1.2fr .45fr;gap:5vw;align-items:center}.quality-detail h2{font-size:clamp(25px,2.6vw,36px);margin:0}.quality-detail>p{font-size:11px;line-height:1.75;color:#bec2bf;margin:0}.quality-detail>.text-link{color:#fff}.careers-band{padding:48px var(--gutter);background:#bda373;color:#131719;display:grid;grid-template-columns:1fr 1fr auto;gap:5vw;align-items:center}.careers-band .eyebrow{color:#2c2b25}.careers-band h2{font-size:clamp(27px,3vw,42px);margin:0}.careers-band>p{font-size:12px;line-height:1.7;max-width:390px;margin:0}.careers-band .button-outline{color:#15191a;border-color:#30312d}
@media(max-width:900px){.feature-copy{padding:48px 32px}.feature-number{top:50px;right:32px}.capabilities{gap:5vw;padding-top:55px;padding-bottom:55px}.quality-detail{grid-template-columns:1fr 1.2fr;gap:22px}.quality-detail>.text-link{grid-column:2}.careers-band{grid-template-columns:1fr 1fr;gap:20px}.careers-band .button{grid-column:2;justify-self:start}}
@media(max-width:640px){.project-feature{grid-template-columns:1fr}.feature-photo{min-height:230px}.feature-copy{padding:35px var(--gutter) 38px}.feature-number{top:39px;right:var(--gutter)}.feature-copy h2{font-size:31px;margin-top:25px}.capabilities{grid-template-columns:1fr;gap:30px;padding-top:38px;padding-bottom:40px}.capability-intro h2{font-size:31px}.capability-list>div{grid-template-columns:30px 1fr 15px;gap:9px;padding:14px 0}.quality-detail{grid-template-columns:1fr;gap:14px;padding-top:32px;padding-bottom:32px}.quality-detail h2{font-size:29px}.quality-detail>p{font-size:11px}.quality-detail>.text-link{grid-column:auto}.careers-band{grid-template-columns:1fr;gap:16px;padding-top:32px;padding-bottom:34px}.careers-band h2{font-size:32px}.careers-band .button{grid-column:auto}}

/* ===== image-overrides.css ===== */
.img-curtain{background-image:none}.img-windows{background-image:none}.img-cladding{background-image:none}.img-louvres{background-image:none}.img-glass{background-image:none}.img-special{background-image:none}
.project-hyatt{background-image:none}.project-kupe{background-image:none}.project-cordis{background-image:none}.project-truro{background-image:none}

/* ===== content-width.css ===== */
:root{--gutter:max(8vw,calc((100vw - 1280px)/2))}
.hero{height:88vh;min-height:680px;max-height:940px}
.intro{min-height:310px;padding-top:48px;padding-bottom:48px}
.services{padding-top:52px;padding-bottom:54px}
.service-image{aspect-ratio:1.2}
.projects{padding-top:52px;padding-bottom:54px}
.project-image{aspect-ratio:1.22}
.project-feature{min-height:500px}
.feature-photo{min-height:500px}
.feature-copy{padding-top:90px;padding-bottom:90px}
.capabilities{padding-top:88px;padding-bottom:88px}
.delivery{padding-top:52px;padding-bottom:52px}
.quality{min-height:210px;padding-top:46px;padding-bottom:46px}
.quality-detail{padding-top:58px;padding-bottom:58px}
.careers-band{padding-top:66px;padding-bottom:66px}
.contact{min-height:310px;padding-top:48px;padding-bottom:48px}
.service-hero{min-height:620px;height:76vh}
.service-overview{padding-top:88px;padding-bottom:88px}
.service-detail,.detail-image{min-height:520px}
.service-cta{padding-top:78px;padding-bottom:78px}
@media(max-width:1100px){:root{--gutter:7vw}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-image{aspect-ratio:1.42}.intro{min-height:280px}.feature-photo,.project-feature{min-height:430px}.capabilities{padding-top:66px;padding-bottom:66px}}
@media(max-width:640px){:root{--gutter:22px}.hero{height:88svh;min-height:620px;max-height:none}.intro{min-height:0;padding-top:40px;padding-bottom:40px}.services,.projects{padding-top:40px;padding-bottom:42px}.service-image{aspect-ratio:1.35}.project-image{aspect-ratio:1.18}.project-feature,.feature-photo{min-height:0}.feature-photo{height:280px}.feature-copy{padding-top:48px;padding-bottom:50px}.capabilities{padding-top:56px;padding-bottom:56px}.delivery{padding-top:42px;padding-bottom:42px}.quality{min-height:0;padding-top:39px;padding-bottom:39px}.quality-detail{padding-top:44px;padding-bottom:44px}.careers-band{padding-top:46px;padding-bottom:48px}.contact{min-height:0;padding-top:45px;padding-bottom:40px}.service-hero{height:82svh;min-height:580px}.service-overview{padding-top:58px;padding-bottom:58px}.service-detail,.detail-image{min-height:0}.detail-image{height:280px}.service-cta{padding-top:52px;padding-bottom:54px}}

/* ===== route-pages.css ===== */
body:has(#route-page){background:var(--paper);color:var(--ink)}.route-hero{height:min(76vh,800px);min-height:620px;position:relative;background:#17232a;color:#fff;display:flex;align-items:flex-end;overflow:hidden}.route-hero-image,.route-hero-shade{position:absolute;inset:0}.route-hero-image{background-position:center;background-size:cover}.route-bg-curtain{background-image:none}.route-bg-special{background-image:none}.route-bg-windows{background-image:none}.route-bg-glass{background-image:none}.route-hero-shade{background:linear-gradient(90deg,#0a1116d9 0%,#0a111687 52%,#0a11161c),linear-gradient(0deg,#0a111692,transparent 65%)}.route-hero-copy{position:relative;z-index:1;padding:0 var(--gutter) 82px;max-width:1050px}.route-hero-copy .eyebrow{color:#e1d0b0}.route-hero h1{font-family:var(--serif);font-size:clamp(48px,7vw,88px);font-weight:300;letter-spacing:-.05em;line-height:1.02;margin:0 0 18px}.route-hero-copy>p:last-child{font-size:17px;line-height:1.6;color:#ebeeed;max-width:740px;margin:0}.route-home-link{position:absolute;z-index:1;right:var(--gutter);bottom:34px;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.route-home-link:hover{color:var(--gold)}.route-intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:end;padding:88px var(--gutter);background:var(--paper)}.route-intro h2,.route-values-copy h2,.route-note h2,.route-contact h2{font-family:var(--serif);font-weight:300;letter-spacing:-.045em;line-height:1.1}.route-intro h2{font-size:clamp(34px,4.2vw,55px);margin:0}.route-intro>p,.route-values-copy>p:not(.eyebrow),.route-note>p:last-child,.route-contact>div>p:not(.eyebrow){font-size:14px;line-height:1.8;color:#656966;margin:0;max-width:720px}.route-values{display:grid;grid-template-columns:1fr 1fr;background:#141a1c;color:#fff}.route-visual{min-height:510px;background-position:center;background-size:cover}.route-photo-building{background-image:none}.route-values-copy{padding:72px clamp(35px,7vw,110px);align-self:center}.route-values-copy h2{font-size:clamp(33px,4vw,51px);margin:0 0 20px}.route-values-copy>p:not(.eyebrow){color:#c4c7c5;margin-bottom:17px}.route-values-copy .text-link{color:white}.route-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:50px var(--gutter);background:#e8e8e4}.route-stats div{padding:0 25px;border-left:1px solid #00000018;display:flex;flex-direction:column;gap:6px}.route-stats strong{font-size:20px;font-weight:500}.route-stats span{font-size:10px;color:#747875}.route-service-grid{padding:0 var(--gutter) 90px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 18px;background:var(--paper)}.route-service-grid>a{display:block}.route-service-grid .service-image{aspect-ratio:1.48}.route-service-grid h3{font-size:16px;font-weight:500;margin:13px 0 6px}.route-service-grid h3 span{float:right;color:#a88d63}.route-service-grid p{font-size:12px;line-height:1.55;color:#666b68;margin:0;max-width:390px}.route-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:46px 18px;padding:0 var(--gutter) 94px;background:var(--paper)}.route-project-grid .project-image{aspect-ratio:1.5}.route-project-grid h3{font-size:15px;text-transform:uppercase;letter-spacing:.04em;margin:13px 5px 6px}.route-project-grid p{font-size:11px;color:#777b78;margin:0 5px}.route-project-grid p b{font-weight:400;margin:0 7px}.route-quality-grid{padding:0 var(--gutter) 90px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#e9e9e5}.route-quality-grid article{padding:32px 24px 34px 0;border-top:1px solid #c9cbc8;min-height:190px}.route-quality-grid article:nth-child(3n+2),.route-quality-grid article:nth-child(3n){padding-left:25px;border-left:1px solid #d0d2cf}.route-quality-grid article>span{color:#a58c63;font-size:10px}.route-quality-grid h3{font-size:17px;font-weight:500;margin:14px 0 8px}.route-quality-grid p{font-size:12px;line-height:1.65;color:#666b68;margin:0;max-width:420px}.route-note{padding:68px var(--gutter);background:#151b1d;color:white}.route-note h2{font-size:clamp(31px,3.7vw,46px);margin:0 0 14px}.route-note>p:last-child{color:#c4c7c5}.route-contact{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;padding:90px var(--gutter);background:#f5f5f3}.route-contact h2{font-size:clamp(36px,4.5vw,58px);margin:0 0 17px}.route-contact>div>p:not(.eyebrow){max-width:640px;margin:0 0 23px}.route-contact address{font-style:normal;align-self:center;border-left:1px solid #d9dad7;padding:4px 0 4px 35px}.route-contact address p{display:grid;grid-template-columns:28px 1fr;column-gap:10px;margin:0 0 20px;font-size:14px}.route-contact address p>span{color:#a58c63;grid-row:span 2;font-size:18px}.route-contact address b{font-weight:500}.route-contact address small{grid-column:2;font-size:11px;color:#737775;margin-top:3px}.route-contact address a:hover{color:#a58c63}
@media(max-width:900px){.route-intro{gap:5vw;padding-top:65px;padding-bottom:65px}.route-visual{min-height:430px}.route-values-copy{padding:50px 35px}.route-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-quality-grid{grid-template-columns:repeat(2,1fr)}.route-quality-grid article:nth-child(3n+2),.route-quality-grid article:nth-child(3n){padding-left:0;border-left:0}.route-quality-grid article:nth-child(even){padding-left:22px;border-left:1px solid #d0d2cf}.route-contact{gap:5vw}}
@media(max-width:640px){.route-hero{height:78svh;min-height:590px}.route-hero-copy{padding-bottom:72px}.route-hero h1{font-size:52px}.route-hero-copy>p:last-child{font-size:14px}.route-home-link{left:var(--gutter);right:auto;bottom:27px}.route-intro{grid-template-columns:1fr;gap:19px;padding-top:55px;padding-bottom:55px}.route-intro h2{font-size:38px}.route-intro>p,.route-values-copy>p:not(.eyebrow),.route-note>p:last-child,.route-contact>div>p:not(.eyebrow){font-size:13px}.route-values{grid-template-columns:1fr}.route-visual{min-height:280px}.route-values-copy{padding:44px var(--gutter) 50px}.route-values-copy h2{font-size:37px}.route-stats{grid-template-columns:1fr;gap:18px;padding-top:33px;padding-bottom:33px}.route-stats div{padding:0 0 15px;border-left:0;border-bottom:1px solid #00000018}.route-stats div:last-child{border-bottom:0;padding-bottom:0}.route-service-grid{grid-template-columns:1fr;padding-bottom:60px;gap:25px}.route-service-grid .service-image{aspect-ratio:1.35}.route-project-grid{grid-template-columns:1fr;padding-bottom:60px;gap:27px}.route-project-grid .project-image{aspect-ratio:1.28}.route-quality-grid{grid-template-columns:1fr;padding-bottom:58px}.route-quality-grid article,.route-quality-grid article:nth-child(even){min-height:0;padding:23px 0;border-left:0;border-top:1px solid #c9cbc8}.route-note{padding-top:50px;padding-bottom:50px}.route-note h2{font-size:36px}.route-contact{grid-template-columns:1fr;gap:38px;padding-top:56px;padding-bottom:56px}.route-contact h2{font-size:42px}.route-contact address{padding-left:19px}}

/* ===== services/service-pages.css ===== */
body:has(#service-page){background:#f5f5f3;color:#151a1b}.service-hero{height:min(68vh,670px);min-height:510px;position:relative;display:flex;align-items:flex-end;background:#1a252c;color:#fff;overflow:hidden}.service-hero-image,.service-hero-shade{position:absolute;inset:0}.service-hero-image{background-size:cover;background-position:center}.service-bg-curtain{background-image:none}.service-bg-windows{background-image:none}.service-bg-cladding{background-image:none}.service-bg-louvres{background-image:none}.service-bg-glass{background-image:none}.service-bg-special{background-image:none}.service-hero-shade{background:linear-gradient(90deg,#091116d9 0%,#0911167a 51%,#09111616),linear-gradient(0deg,#0c1319a1,transparent 68%)}.service-hero-copy{position:relative;z-index:1;padding:0 var(--gutter) 70px;max-width:950px}.crumb{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:32px;color:#deded8}.crumb:hover{color:var(--gold)}.service-hero-copy .eyebrow{color:#e2d0ae}.service-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(46px,7vw,88px);letter-spacing:-.055em;line-height:1;margin:0 0 16px}.service-hero-copy>p:last-child{font-size:15px;line-height:1.6;max-width:520px;color:#e4e7e6;margin:0}.service-hero-index{position:absolute;right:var(--gutter);bottom:28px;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#ffffffc7}.service-overview{padding:76px var(--gutter);display:grid;grid-template-columns:1fr .8fr;gap:12vw;align-items:start;background:var(--paper);color:var(--ink)}.overview-copy{max-width:610px}.overview-copy h2,.detail-copy h2,.service-cta h2{font-family:var(--serif);font-weight:300;letter-spacing:-.04em;line-height:1.1}.overview-copy h2{font-size:clamp(31px,4vw,51px);margin:0 0 19px}.overview-copy>p:last-child,.detail-copy>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#646966;margin:0;max-width:620px}.scope-panel{padding-top:7px}.scope-panel ul{list-style:none;padding:0;margin:0}.scope-panel li{display:flex;gap:16px;align-items:center;border-top:1px solid #dbddda;padding:14px 0;font-size:12px}.scope-panel li:last-child{border-bottom:1px solid #dbddda}.scope-panel li span{font-size:9px;color:#a58c63}.service-detail{display:grid;grid-template-columns:1fr 1fr;background:#141a1c;color:#fff;min-height:430px}.detail-image{min-height:430px;background-size:cover;background-position:center}.detail-copy{padding:60px clamp(32px,7vw,100px);align-self:center}.detail-copy h2{font-size:clamp(31px,4vw,48px);margin:0 0 18px}.detail-copy>p:not(.eyebrow){color:#c3c7c5;margin-bottom:22px}.detail-copy .text-link{color:#fff}.service-cta{padding:62px var(--gutter);background:#e9e9e5;text-align:center;color:#161a1b}.service-cta h2{font-size:clamp(32px,4vw,50px);margin:0 0 24px}.service-cta .eyebrow{color:#565957}.service-cta .button{margin:auto}body:has(#service-page) footer{padding-top:21px;padding-bottom:21px}
@media(max-width:640px){.service-hero{height:76vh;min-height:530px}.service-hero-copy{padding-bottom:64px}.crumb{margin-bottom:27px}.service-hero h1{font-size:54px}.service-hero-copy>p:last-child{font-size:13px}.service-hero-index{font-size:8px;bottom:20px}.service-overview{grid-template-columns:1fr;gap:33px;padding-top:44px;padding-bottom:45px}.overview-copy h2{font-size:34px}.overview-copy>p:last-child,.detail-copy>p:not(.eyebrow){font-size:12px}.scope-panel{padding:0}.service-detail{grid-template-columns:1fr}.detail-image{min-height:240px}.detail-copy{padding:38px var(--gutter) 43px}.detail-copy h2{font-size:35px}.service-cta{padding-top:43px;padding-bottom:47px}.service-cta h2{font-size:34px}}

/* ===== lightbox.css ===== */
.project-image{cursor:zoom-in}.project-image:hover{filter:brightness(1.08)}.project-image:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.project-lightbox{width:min(92vw,1500px);max-width:none;max-height:94vh;padding:24px;border:1px solid #ffffff33;background:#151a1c;color:#fff;overflow:visible}.project-lightbox::backdrop{background:rgba(7,10,11,.9);backdrop-filter:blur(5px)}.project-lightbox figure{margin:0}.project-lightbox img{display:block;width:100%;height:min(78vh,1000px);object-fit:contain;background:#0a0d0e}.project-lightbox figcaption{padding-top:13px;font-size:13px;line-height:1.5;color:#e5e5df}.lightbox-close{position:absolute;top:-16px;right:-16px;width:42px;height:42px;border:1px solid #fff6;border-radius:50%;background:#171c1d;color:white;font-size:27px;line-height:1;cursor:pointer}.lightbox-close:hover{background:var(--gold);color:#131819}@media(max-width:640px){.project-lightbox{width:96vw;padding:12px}.project-lightbox img{height:76vh}.lightbox-close{top:-14px;right:-7px;width:36px;height:36px;font-size:23px}}

/* ===== gallery-controls.css ===== */
.lightbox-prev,.lightbox-next{position:absolute;z-index:1;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid #ffffff70;border-radius:50%;background:#111719e8;color:#fff;font-size:23px;display:grid;place-items:center;cursor:pointer}.lightbox-prev{left:-24px}.lightbox-next{right:-24px}.lightbox-prev:hover,.lightbox-next:hover{background:var(--gold);color:#111719}.lightbox-prev[hidden],.lightbox-next[hidden]{display:none}@media(max-width:640px){.lightbox-prev{left:4px}.lightbox-next{right:4px}.lightbox-prev,.lightbox-next{width:40px;height:40px}}

/* ===== visual-refine.css ===== */
:root{--gutter:max(7vw,calc((100vw - 1340px)/2));--ink:#202627;--ink2:#293132;--paper:#f3f2ee;--gold:#c2a16a;--white:#f8f8f5}
html,body,body *{font-family:'Roboto Condensed',sans-serif!important;font-weight:700!important}
.site-header{position:fixed;height:92px;background:rgba(247,247,244,.97);color:#171c1d;backdrop-filter:blur(14px);border-bottom:1px solid #151b1c20;padding-left:var(--gutter);padding-right:var(--gutter)}
.brand{display:block;width:210px;flex:0 0 auto}.brand img{display:block;width:100%;height:auto}.brand-mark{display:none}.main-nav{gap:clamp(18px,2.1vw,34px);margin-right:3vw}.main-nav a,.header-cta{font-size:10px;letter-spacing:.07em;color:#171c1d}.header-cta{padding:14px 19px;border-color:#171c1d8c;color:#171c1d}.header-cta span{color:#997744}.menu-toggle{border-color:#171c1d66}.menu-toggle span{background:#171c1d}
.hero{height:91vh;min-height:700px;max-height:980px}.hero-content{padding-top:150px}.hero h1{font-size:clamp(64px,7vw,108px);max-width:1050px}.hero-copy{font-size:15px;line-height:1.75;max-width:570px;margin:24px 0 30px}.button{height:48px;padding:0 23px;font-size:10px}.scroll-cue{bottom:34px}.hero-caption{bottom:37px}
.intro{grid-template-columns:1.35fr .95fr;min-height:380px;padding-top:68px;padding-bottom:68px}.intro h2{font-size:clamp(34px,3.25vw,48px);margin-bottom:18px}.intro-copy>p:not(.eyebrow){font-size:14px;line-height:1.8;max-width:670px;margin-bottom:22px}.stats{max-width:450px}.stats div{min-height:96px}.stats strong{font-size:20px}.stats span{font-size:11px}
.services{padding-top:82px;padding-bottom:86px}.section-heading{margin-bottom:31px}.section-heading h2,.projects .section-heading h2{font-size:clamp(32px,3.5vw,45px)}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 20px}.service-image{aspect-ratio:1.46}.service-card h3{font-size:16px;margin:16px 5px 7px}.service-card p{font-size:12px;line-height:1.55;margin:0 5px}.service-card .arrow{font-size:15px;margin:10px 5px 0}.services .text-link,.projects .text-link{font-size:10px}
.projects{padding-top:80px;padding-bottom:84px}.projects .section-heading{margin-bottom:29px}.project-track{grid-template-columns:repeat(4,minmax(calc((100% - 18px)/2),1fr));gap:18px}.project-image{aspect-ratio:1.42}.project-card h3{font-size:13px;margin:15px 6px 7px}.project-card p{font-size:11px;margin:0 6px}.project-controls .text-link{margin-right:28px}.circle-btn{width:38px;height:38px;font-size:15px}
.project-feature,.feature-photo{min-height:590px}.feature-copy{padding:100px clamp(46px,7vw,112px)}.feature-copy h2{font-size:clamp(38px,4.4vw,59px);margin:35px 0 20px}.feature-copy>p:not(.eyebrow){font-size:14px;line-height:1.8;max-width:610px;margin-bottom:30px}
.capabilities{padding-top:105px;padding-bottom:105px;gap:8vw}.capability-intro h2{font-size:clamp(38px,4vw,54px);margin-bottom:20px}.capability-intro>p:not(.eyebrow){font-size:14px;line-height:1.8;max-width:580px;margin-bottom:25px}.capability-list>div{padding:23px 0;grid-template-columns:48px 1fr 24px;gap:16px}.capability-list h3{font-size:17px;margin-bottom:8px}.capability-list p{font-size:13px;line-height:1.65;max-width:560px}
.delivery{padding-top:70px;padding-bottom:70px;grid-template-columns:.95fr 1.55fr;gap:5vw}.delivery h2{font-size:clamp(32px,3.4vw,47px)}.steps{gap:14px}.step-icon{width:48px;height:48px;font-size:23px;margin-bottom:12px}.steps>div:not(:last-child):after{left:53px;top:24px}.steps small{font-size:9px}.steps b{font-size:11px;line-height:1.4}
.quality{min-height:260px;padding-top:62px;padding-bottom:62px;grid-template-columns:1fr 2.3fr .25fr;gap:25px}.quality h2{font-size:clamp(31px,3.1vw,43px);margin-bottom:13px}.quality-copy>p:not(.eyebrow){font-size:13px;line-height:1.7;max-width:410px;margin-bottom:15px}.quality-items div{min-height:110px}.quality-items span{font-size:27px;margin-bottom:11px}.quality-items small{font-size:10px}.quality-detail{padding-top:72px;padding-bottom:72px;gap:6vw}.quality-detail h2{font-size:clamp(31px,3.4vw,46px)}.quality-detail>p{font-size:13px;line-height:1.8}
.careers-band{padding-top:77px;padding-bottom:77px;gap:6vw}.careers-band h2{font-size:clamp(35px,3.7vw,50px)}.careers-band>p{font-size:14px;line-height:1.8;max-width:500px}.contact{min-height:390px;padding-top:62px;padding-bottom:62px}.contact h2{font-size:clamp(36px,4.2vw,56px);margin-bottom:22px}.contact address{min-width:240px}.contact address p{font-size:12px;margin-bottom:17px}.contact address small{font-size:11px}
.route-hero{min-height:700px;height:88vh}.route-hero h1{font-size:clamp(60px,7vw,100px)}.route-hero-copy>p:last-child{font-size:18px;max-width:800px}.route-intro{padding-top:100px;padding-bottom:100px}.route-intro h2{font-size:clamp(42px,4.5vw,62px)}.route-intro>p{font-size:15px;line-height:1.9}.route-values-copy{padding-top:100px;padding-bottom:100px}.route-values-copy h2{font-size:clamp(40px,4.4vw,58px)}.route-values-copy>p:not(.eyebrow){font-size:14px;line-height:1.85}.route-service-grid{padding-bottom:110px;gap:50px 24px}.route-service-grid .service-image{aspect-ratio:1.48}.route-service-grid h3{font-size:19px;margin-top:17px}.route-service-grid p{font-size:13px;line-height:1.7}.route-project-grid{padding-bottom:110px;gap:54px 24px}.route-project-grid .project-image{aspect-ratio:1.42}.route-project-grid h3{font-size:16px;margin-top:16px}.route-project-grid p{font-size:12px}.route-quality-grid{padding-bottom:105px}.route-quality-grid article{min-height:220px;padding-top:38px}.route-quality-grid h3{font-size:19px}.route-quality-grid p{font-size:13px;line-height:1.75}.route-note{padding-top:86px;padding-bottom:86px}.route-contact{padding-top:105px;padding-bottom:105px}.route-contact h2{font-size:clamp(45px,5vw,68px)}.route-contact>div>p:not(.eyebrow){font-size:15px;line-height:1.8}
.section-dark,.delivery,.quality-detail,.feature-copy,.service-detail,.route-values,.route-note{color:var(--white)}.section-dark p,.delivery p,.quality-detail p,.feature-copy p,.service-detail p,.route-values p,.route-note p{color:#e0e2df}.site-header .brand{background:transparent}.site-header .brand img{width:100%}footer .brand{width:190px;background:#fff;padding:6px 8px}footer .brand img{display:block;width:100%;height:auto}
@media(max-width:1100px){:root{--gutter:6vw}.main-nav{gap:13px;margin-right:2vw}.main-nav a,.header-cta{font-size:9px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-feature,.feature-photo{min-height:480px}.delivery{grid-template-columns:1fr;gap:34px}.quality{grid-template-columns:1fr 2fr;gap:18px}.quality-photo{width:10%}.quality-items{padding-right:25px}.careers-band{grid-template-columns:1fr 1fr}.careers-band .button{grid-column:2;justify-self:start}}
@media(max-width:640px){:root{--gutter:22px}.site-header{height:72px}.brand{width:148px}.site-header .brand img{width:100%}.footer .brand{width:155px}.menu-toggle{margin-right:12px}.header-cta{font-size:8px;padding:9px 10px}.hero{height:88svh;min-height:630px;max-height:none}.hero-content{padding-top:0;padding-bottom:105px}.hero h1{font-size:clamp(43px,11.5vw,60px)}.hero-copy{font-size:13px;line-height:1.7;margin:18px 0 23px}.button{height:45px;font-size:9px}.hero-index{top:100px}.intro{grid-template-columns:1fr;min-height:0;padding-top:48px;padding-bottom:48px}.intro h2{font-size:34px}.intro-copy>p:not(.eyebrow){font-size:13px;line-height:1.75}.stats{max-width:none;margin-top:25px}.stats div{min-height:72px;padding-left:15px}.stats strong{font-size:17px}.services,.projects{padding-top:50px;padding-bottom:54px}.section-heading{margin-bottom:23px}.section-heading h2,.projects .section-heading h2{font-size:28px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 13px}.service-image{aspect-ratio:1.18}.service-card h3{font-size:12px;margin:10px 3px 5px}.service-card p{font-size:10px;margin:0 3px}.project-track{grid-template-columns:repeat(4,minmax(82vw,1fr));gap:12px}.project-image{aspect-ratio:1.24}.project-card h3{font-size:11px}.project-card p{font-size:10px}.project-controls .text-link{display:none}.circle-btn{width:32px;height:32px}.project-feature{grid-template-columns:1fr}.feature-photo{height:280px;min-height:0}.feature-copy{padding:47px var(--gutter) 50px}.feature-copy h2{font-size:35px;margin:25px 0 14px}.feature-copy>p:not(.eyebrow){font-size:12px;line-height:1.75}.capabilities{grid-template-columns:1fr;gap:28px;padding-top:57px;padding-bottom:60px}.capability-intro h2{font-size:35px}.capability-intro>p:not(.eyebrow){font-size:12px;line-height:1.75}.capability-list>div{grid-template-columns:32px 1fr 18px;gap:10px;padding:17px 0}.capability-list h3{font-size:14px}.capability-list p{font-size:11px}.delivery{padding-top:48px;padding-bottom:50px}.delivery h2{font-size:29px}.steps{grid-template-columns:repeat(3,1fr);gap:22px 12px}.steps>div:not(:last-child):after{display:none}.step-icon{width:39px;height:39px;font-size:19px}.steps b{font-size:10px}.quality{display:block;min-height:0;padding-top:43px;padding-bottom:45px}.quality h2{font-size:31px}.quality-copy>p:not(.eyebrow){font-size:11px}.quality-items{grid-template-columns:repeat(3,1fr);padding:22px 0 0;gap:7px}.quality-items div{min-height:80px}.quality-items small{font-size:9px}.quality-detail{grid-template-columns:1fr;gap:15px;padding-top:48px;padding-bottom:49px}.quality-detail h2{font-size:32px}.quality-detail>p{font-size:12px;line-height:1.7}.careers-band{grid-template-columns:1fr;gap:16px;padding-top:48px;padding-bottom:50px}.careers-band h2{font-size:35px}.careers-band>p{font-size:12px}.careers-band .button{grid-column:auto}.contact{min-height:0;padding-top:45px;padding-bottom:38px}.contact h2{font-size:31px}.contact address{min-width:0}.contact address p{font-size:11px}.route-hero{height:80svh;min-height:590px}.route-hero h1{font-size:54px}.route-hero-copy>p:last-child{font-size:14px}.route-intro{padding-top:60px;padding-bottom:60px}.route-intro h2{font-size:39px}.route-intro>p{font-size:13px;line-height:1.75}.route-values-copy{padding-top:48px;padding-bottom:53px}.route-values-copy h2{font-size:37px}.route-service-grid{padding-bottom:65px;gap:31px 13px}.route-service-grid h3{font-size:15px}.route-service-grid p{font-size:11px}.route-project-grid{padding-bottom:68px;gap:34px 13px}.route-project-grid h3{font-size:13px}.route-project-grid p{font-size:10px}.route-quality-grid{padding-bottom:62px}.route-quality-grid article{min-height:0;padding:26px 0}.route-quality-grid h3{font-size:16px}.route-quality-grid p{font-size:11px}.route-note{padding-top:55px;padding-bottom:57px}.route-contact{padding-top:63px;padding-bottom:63px}.route-contact h2{font-size:44px}.route-contact>div>p:not(.eyebrow){font-size:13px}}

/* ===== Site imagery (FSL project photography) ===== */
.hero-image{background-image:url('assets/img/taumata-o-kupe/2.webp');background-position:center 55%}
.intro-photo{background-image:url('assets/img/cordis-hotel-auckland/2-sm.webp');background-size:cover;background-position:center}
.feature-photo{background-image:url('assets/img/park-hyatt-auckland/1.webp');background-size:cover;background-position:center}
.quality-photo{background-image:url('assets/img/cordis-hotel-auckland/3-sm.webp');background-size:cover;background-position:center}
.contact-backdrop{background-image:url('assets/img/park-hyatt-auckland/2.webp');background-size:cover;background-position:center}
.route-photo-building{background-image:url('assets/img/cordis-hotel-auckland/2.webp');background-size:cover;background-position:center}
.img-curtain{background-image:url('assets/img/taumata-o-kupe/4-sm.webp');background-size:cover;background-position:center}
.img-windows{background-image:url('assets/img/services/windows-sm.webp');background-size:cover;background-position:center}
.img-cladding{background-image:url('assets/img/services/cladding-sm.webp');background-size:cover;background-position:center}
.img-louvres{background-image:url('assets/img/services/louvres-sm.webp');background-size:cover;background-position:center}
.img-glass{background-image:url('assets/img/services/balustrades-sm.webp');background-size:cover;background-position:center}
.img-special{background-image:url('assets/img/services/specialist-sm.webp');background-size:cover;background-position:center}
.service-bg-curtain,.route-bg-curtain{background-image:url('assets/img/taumata-o-kupe/4.webp');background-size:cover;background-position:center}
.service-bg-windows{background-image:url('assets/img/services/windows.webp');background-size:cover;background-position:center}
.route-bg-windows{background-image:url('assets/img/500-queen-st-auckland/2.webp');background-size:cover;background-position:center}
.service-bg-cladding,.route-bg-cladding{background-image:url('assets/img/services/cladding.webp');background-size:cover;background-position:center}
.service-bg-louvres,.route-bg-louvres{background-image:url('assets/img/services/louvres.webp');background-size:cover;background-position:center}
.service-bg-glass{background-image:url('assets/img/services/balustrades.webp');background-size:cover;background-position:center}
.route-bg-glass{background-image:url('assets/img/davies-ave-auckland/3.webp');background-size:cover;background-position:center}
.service-bg-special{background-image:url('assets/img/services/specialist.webp');background-size:cover;background-position:center}
.route-bg-special{background-image:url('assets/img/taumata-o-kupe/3.webp');background-size:cover;background-position:center}
.route-bg-windows{background-image:url('assets/img/500-queen-st-auckland/1.webp')}
.project-image{background-size:cover;background-position:center}

/* ===== Navigation: current page ===== */
.main-nav a[aria-current="page"]{color:var(--gold)}

/* ===== Contact enquiry form ===== */
.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:30px;max-width:720px}
.enquiry-form label{display:grid;gap:7px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4f5452}
.enquiry-form .full{grid-column:1/-1}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font:inherit;font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:#202627;background:#fff;border:1px solid #d6d7d3;border-radius:0;padding:12px 14px;width:100%;box-sizing:border-box}
.enquiry-form textarea{resize:vertical;min-height:130px}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{outline:2px solid var(--gold);outline-offset:-1px;border-color:var(--gold)}
.enquiry-form button{border:0;cursor:pointer;font-family:inherit}
.form-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.form-status{margin:0;font-size:13px;color:#5d6260}
@media (max-width:760px){.enquiry-form{grid-template-columns:1fr}.route-contact{grid-template-columns:1fr!important;gap:50px!important}.route-contact address{border-left:0!important;padding-left:0!important}}

/* ===== Homepage intro stats: stacked vertically, kept clear of the intro photo ===== */
@media (min-width:641px){
  .intro .stats{grid-template-columns:1fr;justify-self:start;align-self:center;width:220px;max-width:none;padding-left:0;border-left:1px solid var(--gold)}
  .intro .stats div{min-height:0;padding:16px 0 16px 26px;border-left:0}
  .intro .stats div+div{border-top:1px solid #0000001a}
}
@media (min-width:641px) and (max-width:1100px){
  .intro .stats{width:180px}
  .intro .stats div{padding-left:20px}
}

/* ===== Homepage hero slideshow (01 / 02 / 03, auto-advances every 5s) ===== */
.hero-image{opacity:0;transition:opacity 1.2s ease}
.hero-image.is-active{opacity:1}
.hero-image.slide-2{background-image:url('assets/img/park-hyatt-auckland/1.webp');background-position:center 45%}
.hero-image.slide-3{background-image:url('assets/img/cordis-hotel-auckland/1.webp');background-position:center 40%}
.hero-index{z-index:2}
.hero-index button{position:relative;background:none;border:0;padding:2px 0;margin:0;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;transition:color .2s}
.hero-index button:hover,.hero-index button.is-active{color:#fff}
.hero-index button.is-active::before{content:"";position:absolute;left:-13px;top:-3px;bottom:-3px;width:2px;background:var(--gold)}
.hero-index button:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.hero-image{transition:none}}

/* ===== Homepage quality section: icons in two rows of three, wider photo on the right ===== */
@media (min-width:641px){
  .quality{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:5vw;padding-right:calc(32% + 4vw)}
  .quality-items{grid-template-columns:repeat(3,minmax(0,1fr));padding-right:0}
  .quality-items div{min-height:104px;padding:12px 8px}
  .quality-items div:nth-child(n+4){border-top:1px solid #0000000c}
  .quality-photo{width:32%;opacity:1}
}
@media (min-width:641px) and (max-width:1100px){
  .quality{gap:28px;padding-right:calc(24% + 28px)}
  .quality-photo{width:24%}
}

/* ===== Project cards: in-card photo arrows ===== */
.project-image[data-project-id]{position:relative;overflow:hidden}
.tile-nav{position:absolute;z-index:1;top:50%;transform:translateY(-50%);width:40px;height:40px;padding:0;border:1px solid #ffffff8c;border-radius:50%;background:rgba(17,23,25,.55);color:#fff;font-size:17px;line-height:1;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s,color .2s}
.tile-prev{left:14px}.tile-next{right:14px}
.project-image:hover .tile-nav,.project-image:focus-within .tile-nav,.tile-nav:focus-visible{opacity:1}
.tile-nav:hover{background:var(--gold);border-color:var(--gold);color:#111719}
.tile-nav:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.tile-count{position:absolute;right:14px;bottom:12px;padding:4px 9px;font-size:10px;letter-spacing:.08em;color:#fff;background:rgba(17,23,25,.6);pointer-events:none}
@media (hover:none){.tile-nav{opacity:1;width:36px;height:36px}}

/* ===== Contact page hero: lobby photo ===== */
.route-bg-contact{background-image:url('assets/img/contact/lobby.webp');background-size:cover;background-position:center 58%}
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

/* =====================================================================
   Mobile / small-screen pass (reuses the 640 / 760 / 900 / 1100 breakpoints)
   ===================================================================== */

/* Lazy background photos: held back until site.js marks them .bg-ready (only when JS is running) */
.js .service-image:not(.bg-ready),.js .project-image:not(.bg-ready),.js .intro-photo:not(.bg-ready),.js .feature-photo:not(.bg-ready),
.js .quality-photo:not(.bg-ready),.js .contact-backdrop:not(.bg-ready),.js .route-visual:not(.bg-ready),.js .detail-image:not(.bg-ready),
.js .hero-image.slide-2:not(.bg-ready),.js .hero-image.slide-3:not(.bg-ready){background-image:none!important}

/* Form fields: 16px text stops iOS zooming on focus (iPads included) */
@media (max-width:1100px){
  .enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px;min-height:48px}
}

/* Header: switch to the menu button up to 900px (the full nav no longer fits at tablet widths) */
@media (max-width:900px){
  .site-header{height:72px}
  .menu-toggle{display:flex;flex:0 0 auto;margin-left:auto;margin-right:12px;width:44px;height:44px;padding:0;border:1px solid #171c1d66;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
  .menu-toggle span{width:16px;height:1.5px;background:#171c1d;transition:transform .2s}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:6px var(--gutter) 14px;background:rgba(247,247,244,.98);border-bottom:1px solid #151b1c20;box-shadow:0 14px 28px rgba(0,0,0,.14);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
  .main-nav.open{display:flex}
  .main-nav a{display:flex;align-items:center;min-height:48px;width:100%;padding:0;font-size:13px;letter-spacing:.08em;color:#171c1d;border-bottom:1px solid #151b1c1a}
  .main-nav a:last-child{border-bottom:0}
  .header-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:10px;flex:0 0 auto}
  body.menu-open{overflow:hidden}

  /* Readable body text: at least 16px */
  body main p:not(.eyebrow):not(.hero-caption),body main li,body main address p{font-size:16px;line-height:1.6}
  .enquiry-form label span{font-size:13px}
  body main .scope-panel li{font-size:16px}
  .quality-items small{font-size:12px}
  footer small{font-size:13px;line-height:1.5}
  h1,h2,h3{text-wrap:balance;overflow-wrap:normal;hyphens:manual}
  main p{text-wrap:pretty}

  /* Text links: 44px tall tap area without moving anything */
  .text-link,.crumb,.route-home-link,main address a,footer>a{display:inline-block;padding-block:17px;margin-block:-17px}
  .crumb{margin-bottom:15px}
  .scroll-cue{min-height:44px}
  footer>a{min-height:44px;display:inline-flex;align-items:center;margin-block:0;padding-block:0}

  /* Slider and carousel controls: 44px */
  .hero-index{gap:30px}
  .hero-index button::after{content:"";position:absolute;inset:-15px -18px}
  .circle-btn{width:44px;height:44px}
  .tile-nav{width:44px;height:44px;opacity:1}
  .lightbox-prev,.lightbox-next,.lightbox-close{width:44px;height:44px}
}
@media (hover:none){
  .tile-nav{width:44px;height:44px;opacity:1}
}

/* Phones */
@media (max-width:640px){
  .brand{width:140px}
  .header-cta{padding:0 11px;font-size:9px;letter-spacing:.05em}
  .header-cta span{padding-left:6px}
  .service-grid{grid-template-columns:1fr;gap:30px}
  .service-image{aspect-ratio:1.5}
  .hero-copy{font-size:16px}
  .route-hero h1,.service-hero h1{font-size:clamp(38px,11vw,52px)}
  .route-contact address p{font-size:16px}
  footer{gap:14px 20px}
}
@media (max-width:380px){
  .brand{width:120px}
  .header-cta span{display:none}
}

/* Phones turned sideways (short landscape screens): keep the hero headline and buttons on screen */
@media (max-width:1100px) and (max-height:500px) and (orientation:landscape){
  .hero,.route-hero,.service-hero{height:auto;min-height:100vh;min-height:100svh;max-height:none}
  .hero{align-items:flex-end}
  .hero-content{padding-top:96px;padding-bottom:40px}
  .hero h1{font-size:clamp(34px,6vw,48px)}
  .hero-copy{margin:12px 0 16px;max-width:520px}
  .hero-index{top:84px}
  .scroll-cue{display:none}
  .route-hero-copy,.service-hero-copy{padding-top:96px;padding-bottom:44px}
  .route-hero h1,.service-hero h1{font-size:clamp(34px,6vw,48px)}
}

/* Tap areas up to 1100px (tablets in landscape keep the desktop look, but every control gets a 44px target) */
@media (max-width:1100px){
  .site-header .brand{display:flex;align-items:center;min-height:44px}
  .main-nav a{padding-block:17px;margin-block:-17px}
  .text-link,.crumb,.route-home-link,main address a{display:inline-block;padding-block:17px;margin-block:-17px}
  .crumb{margin-bottom:15px}
  .scroll-cue,.header-cta{min-height:44px}
  footer>a{min-height:44px;display:inline-flex;align-items:center}
  .hero-index{gap:30px}
  .hero-index button::after{content:"";position:absolute;inset:-15px -18px}
  .circle-btn{width:44px;height:44px}
  .tile-nav{width:44px;height:44px}
}
@media (max-width:900px){
  .main-nav a{padding-block:0;margin-block:0}
}

/* Phones/tablets: card titles above their 16px descriptions; readable text over the homepage contact photo */
@media (max-width:900px){
  .service-card h3{font-size:20px;margin-top:14px}
  .project-card h3,.route-project-grid h3{font-size:18px}
  .contact-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,22,28,.55),rgba(13,22,28,.85))}
}

/* Header navigation: larger, easier-to-read links on desktop and small laptops */
@media (min-width:1281px){
  .main-nav{gap:clamp(20px,2.2vw,36px)}
  .main-nav a{font-size:13px;letter-spacing:.07em}
  .header-cta{font-size:12px;padding:15px 22px}
}
@media (min-width:1101px) and (max-width:1280px){
  .site-header .brand{width:180px}
  .main-nav{gap:18px;margin-right:2vw}
  .main-nav a{font-size:12px;letter-spacing:.05em}
  .header-cta{font-size:11px;padding:14px 18px}
}
@media (min-width:901px) and (max-width:1100px){
  .site-header .brand{width:170px}
  .main-nav{gap:12px;margin-right:2vw}
  .main-nav a{font-size:11px;letter-spacing:.04em}
  .header-cta{font-size:10px;padding:0 14px}
}

/* ===== Archimax Group: footer logo link + About page section ===== */
.footer-group{display:inline-flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#929795;transition:opacity .2s}
.footer-group img{display:block;width:120px;height:auto}
.footer-group:hover,.footer-group:focus-visible{opacity:.8}
.route-group{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:center;padding:80px var(--gutter);background:var(--paper)}
.route-group h2{font-family:var(--serif);font-size:clamp(34px,4vw,52px);letter-spacing:-.045em;line-height:1.1;margin:0}
.route-group-copy>p{font-size:15px;line-height:1.8;color:#656966;margin:0 0 26px;max-width:620px}
.group-logo{display:inline-block;margin-bottom:18px}
.group-logo img{display:block;width:min(320px,100%);height:auto;transition:transform .2s}
.group-logo:hover img{transform:translateY(-2px)}
.group-link{display:table;color:#ef8200}
.group-link span{color:#ef8200}
.group-link:hover,.group-link:hover span{color:#c96d00}
@media (max-width:900px){
  .route-group{gap:28px;padding-top:60px;padding-bottom:60px}
}
@media (max-width:640px){
  .route-group{grid-template-columns:1fr;padding-top:48px;padding-bottom:52px}
  .route-group h2{font-size:36px}
  .footer-group{order:2}
}
.footer-group{gap:14px}
.footer-group span{font-size:10px;letter-spacing:.12em;color:#b9bdbb;white-space:nowrap}
.footer-group span b{font-weight:400;color:#ef8200;margin-left:4px}
.footer-group:hover span{color:#fff}
@media (max-width:900px){
  footer{flex-wrap:wrap;column-gap:24px;row-gap:14px}
  footer small{order:3;width:100%}
}
/* Footer: Archimax logo matches the height of the Façade Solutions logo box (62px) */
.footer-group img{width:auto;height:62px}
@media (max-width:1100px){
  footer{flex-wrap:wrap;column-gap:24px;row-gap:14px}
  footer small{order:3;width:100%}
}

/* ===== 2026 Façade Solutions logo: dark logo in the header, white logo (no white box) in the footer ===== */
footer .brand{width:auto;background:none;padding:0}
footer .brand img{width:auto;height:62px}
/* Footer logos at 80% (62px -> 50px), both the same height */
footer .brand img,.footer-group img{width:auto;height:50px}

/* Homepage quality icons: larger labels (were 10px desktop / 12px mobile) */
.quality-items small{font-size:13px;line-height:1.35;letter-spacing:.01em}
@media (max-width:640px){
  .quality-items small{font-size:12.5px}
}

/* Footer text: larger copyright line and right-hand link (were 9px on desktop) */
footer small{font-size:12px;letter-spacing:.02em}
footer>a:last-child{font-size:12px;letter-spacing:.04em}
@media (max-width:900px){
  footer small,footer>a:last-child{font-size:13px}
}

/* About page stats: larger labels under 2016 / New Zealand owned / Nationwide (were 10px) */
.route-stats span{font-size:14px;color:#5f6361;letter-spacing:.01em}

/* Homepage delivery steps: labels match the quality icon labels (13px desktop/tablet, 12.5px phones) */
.steps b{font-size:13px;line-height:1.35}
.steps small{font-size:11px}
@media (max-width:640px){
  .steps b{font-size:12.5px}
}

/* Homepage intro stats: "Established" / "Nationwide" labels match the quality icon labels */
.stats span{font-size:13px;margin-top:4px}
@media (max-width:640px){
  .stats span{font-size:12.5px}
}

/* Homepage contact band: Copthorne Hotel photo (building centred, sky behind the heading) */
.contact-backdrop{background-image:url('assets/img/copthorne-hotel/5.webp');background-size:cover;background-position:center}
@media (min-width:901px){
  .contact-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,22,28,.62) 0%,rgba(13,22,28,.28) 45%,rgba(13,22,28,.2) 62%,rgba(13,22,28,.6) 100%)}
}

/* Projects page hero: Park Hyatt Auckland at dusk */
.route-bg-windows{background-image:url('assets/img/park-hyatt-auckland/1.webp');background-size:cover;background-position:center 12%}

/* Homepage featured projects: 5 cards per row so the 10 cards form two full rows (2 visible at a time, scroll for more) */
.project-track{grid-template-columns:repeat(5,minmax(calc((100% - 18px)/2),1fr))}
@media (max-width:640px){
  .project-track{grid-template-columns:repeat(5,minmax(82vw,1fr))}
}

/* Homepage featured projects: one horizontally scrolling row (two cards visible), so there are never empty slots */
.project-track{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 18px)/2)}
@media (max-width:640px){
  .project-track{grid-template-columns:none;grid-auto-columns:82vw}
}

/* Homepage featured projects: two rows (4 cards visible), scroll sideways for more.
   Cards fill top-then-bottom; an odd last card spans both rows so no slot is left empty. */
.project-track{grid-template-columns:none;grid-template-rows:auto auto;grid-auto-flow:column;grid-auto-columns:calc((100% - 18px)/2)}
.project-track>.project-card:last-child:nth-child(odd){grid-row:1 / span 2;display:flex;flex-direction:column}
.project-track>.project-card:last-child:nth-child(odd) .project-image{flex:1 1 auto;aspect-ratio:auto;min-height:0}
@media (max-width:640px){
  .project-track{grid-auto-columns:82vw}
}
