:root{--ink:#173f45;--ink-deep:#102e33;--yellow:#eac668;--text:#23383a;--muted:#617173;--line:#dbe2df;--paper:#f3f5f1;--white:#fff;--wrap:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--text);background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.1;letter-spacing:-.045em}h2{font-size:clamp(2.25rem,4vw,3.8rem);font-weight:500;margin-bottom:0}h3{font-size:1.5rem;font-weight:500}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bc8b20;outline-offset:5px}.wrap{width:calc(100% - 112px);max-width:var(--wrap);margin-inline:auto}.section{padding:100px 0}.eyebrow{font-size:.75rem;letter-spacing:.17em;font-weight:700;margin-bottom:23px;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:56px;padding:15px 24px;border:1px solid transparent;font-size:.9375rem;line-height:1.5;font-weight:600;border-radius:3px;transition:background .2s,transform .2s;white-space:normal;text-align:center}.button:hover{transform:translateY(-2px)}.button span{font-size:1.4rem;font-weight:400}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:var(--ink-deep)}.button-yellow{background:var(--yellow);color:var(--ink-deep)}.button-yellow:hover{background:#f0d384}.button-small{min-height:46px;padding:11px 17px;font-size:.875rem;gap:10px}.button svg{height:18px;width:18px;flex-shrink:0}.text-link{display:inline-flex;gap:19px;align-items:center;font-size:.9375rem;font-weight:600;border-bottom:1px solid #adb9b7;padding-bottom:5px}.text-link:hover{border-color:var(--ink)}.text-link span{font-size:1.25rem}.text-link.light{border-color:#668184;color:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:15px;top:-100px;z-index:100;background:var(--yellow);padding:12px 20px}.skip-link:focus{top:12px}
.topline{background:var(--ink-deep);color:#e2ebeb;font-size:.75rem;letter-spacing:.01em}.topline .wrap{display:flex;justify-content:space-between;gap:20px;padding-block:9px}.topline a{color:#eac668}.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:35px;min-height:104px}.brand{display:inline-flex;flex-direction:column;color:var(--ink);line-height:1;flex-shrink:0}.brand-name{font-size:2.8rem;letter-spacing:-.085em;font-weight:800;line-height:1}.brand-name>span{color:#af8430}.brand-description{font-size:.625rem;letter-spacing:.105em;margin-top:9px;font-weight:700}.header nav{display:flex;gap:30px;align-items:center;font-size:.875rem;font-weight:600}.header nav>a:not(.button):hover{color:#8a6517}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:680px;background:var(--ink);color:#fff}.hero-copy{padding:88px 56px 42px max(56px,calc((100vw - var(--wrap))/2));display:flex;flex-direction:column;align-items:flex-start}.hero .eyebrow{display:flex;align-items:center;gap:14px;color:#d9e5df}.short-rule{display:block;width:32px;height:1px;background:var(--yellow)}h1{font-size:clamp(4rem,6.45vw,6.4rem);font-weight:500;line-height:1.04;margin-bottom:26px;letter-spacing:-.055em}h1 em{color:var(--yellow);letter-spacing:-.065em}.hero-description{color:#d2dfdf;max-width:380px;font-size:1.0625rem;line-height:1.85;margin-bottom:33px}.hero-actions{display:flex;align-items:flex-start;gap:22px;flex-direction:column}.hero-actions .text-link{font-size:.875rem}.hero-details{display:flex;gap:20px;flex-wrap:wrap;font-size:.75rem;color:#d2dfdf;letter-spacing:.025em;border-top:1px solid #4b6b6f;margin-top:auto;padding-top:25px;width:100%}.hero-details span+span{border-left:1px solid #6e8587;padding-left:20px}.hero-visual{position:relative;min-width:0;overflow:hidden}.hero-visual>img{width:100%;height:100%;position:absolute;inset:0;object-position:center;transition:transform 1s}.hero-visual:hover>img{transform:scale(1.025)}.photo-caption{position:absolute;bottom:25px;left:25px;right:25px;background:#ffffffed;color:var(--ink);display:flex;align-items:center;gap:18px;padding:19px 22px;backdrop-filter:blur(10px)}.caption-number{font-size:1.125rem;color:#7d8b86}.photo-caption strong{display:block;font-size:.875rem;font-weight:600;line-height:1.4}.photo-caption div>span{display:block;font-size:.75rem;color:#596d6e;margin-top:4px}.photo-caption>a{font-size:1.8rem;margin-left:auto;padding:0 5px}
.intro-strip{padding-block:43px;display:grid;grid-template-columns:1fr 1.4fr 50px;align-items:center;gap:60px;border-bottom:1px solid var(--line)}.intro-strip p{font-size:1.5rem;line-height:1.3;letter-spacing:-.035em;margin:0}.intro-strip>span{color:var(--muted);max-width:490px;font-size:.9375rem}.round-link{display:flex;justify-content:center;align-items:center;border:1px solid #bbc7c3;border-radius:50%;width:48px;height:48px;font-size:1.5rem;transition:background .2s}.round-link:hover{background:var(--yellow)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:52px}.section-heading>p{max-width:315px;margin:0;color:var(--muted);font-size:.9375rem}.section-heading>.text-link{margin-bottom:7px;flex-shrink:0}.services-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line)}.service{position:relative;padding:32px 26px 29px;display:flex;flex-direction:column}.service+.service{border-left:1px solid var(--line)}.service-number{font-size:.75rem;color:#7b8987;position:absolute;right:23px;top:22px}.service-icon{height:45px;width:45px;margin:3px 0 42px;color:var(--ink)}.service h3{margin-bottom:17px;font-size:1.625rem}.service p{font-size:.875rem;color:var(--muted);margin-bottom:26px;line-height:1.85}.service a{margin-top:auto;font-size:.8125rem;font-weight:600;display:flex;justify-content:space-between;gap:10px;align-items:center}.service a span{font-size:1.25rem}.service:hover{background:#f6f8f5}
.projects-section{background:var(--paper)}.project-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:26px;align-items:start}.project:nth-child(2){margin-top:70px}.project:nth-child(3){margin-top:140px}.project-image{overflow:hidden;position:relative;background:#cfd7d0;aspect-ratio:4/5}.project-image img{width:100%;height:100%;transition:transform .6s}.project:hover img{transform:scale(1.04)}.project .image-open{display:flex;position:absolute;bottom:17px;right:17px;background:#fff;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;font-size:1.4rem}.project-label{margin-top:20px}.project-label h3{font-size:1.35rem;margin-bottom:9px}.project-label>span{font-size:.6875rem;letter-spacing:.12em;font-weight:600;color:var(--muted)}.about-section{padding:90px 0;border-bottom:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.about-grid h2{font-size:clamp(2.5rem,4vw,3.75rem)}.about-grid h2 em{color:#916f22}.about-copy{padding-top:10px}.about-copy p{color:var(--muted);font-size:.9375rem;line-height:1.9;margin-bottom:22px}.about-copy .text-link{font-size:.875rem;margin-top:7px}
.contact-section{background:#fff}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}.contact-copy h2{font-size:clamp(2.75rem,4.5vw,4.5rem);margin-bottom:26px}.contact-copy>p:not(.eyebrow){color:var(--muted);max-width:340px;font-size:.9375rem}.contact-phone{display:block;font-size:clamp(1.5rem,2.35vw,2.25rem);letter-spacing:-.04em;margin-top:35px;font-weight:500;line-height:1.4}.contact-phone span{padding-left:8px}.contact-email{font-size:1.05rem;border-bottom:1px solid #adb9b7;display:inline-block;margin-top:6px}.contact-location{display:flex;align-items:center;gap:9px;margin-top:32px}.contact-location svg{width:20px;height:20px}.enquiry-form{background:var(--paper);padding:36px 38px}.enquiry-form h3{font-size:1.6rem;margin-bottom:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{margin-bottom:20px}.field label{display:block;font-size:.875rem;font-weight:600;margin-bottom:7px}.field input,.field textarea,.field select{display:block;width:100%;padding:12px 13px;background:#fff;color:var(--text);border:1px solid #ced8d2;border-radius:2px;font-size:1rem;min-width:0}.field textarea{resize:vertical;min-height:115px}.field input::placeholder,.field textarea::placeholder{color:#798581;font-size:.875rem}.field select{min-height:51px}.form-submit{width:100%;justify-content:space-between}.form-note{font-size:.75rem;line-height:1.65;color:var(--muted);margin:14px 0 0}.form-status{font-size:.875rem;background:#e1ebdf;padding:12px;margin:16px 0 0}.form-status a{text-decoration:underline;font-weight:700}
footer{background:var(--ink-deep);color:#fff}.footer-main{display:flex;justify-content:space-between;align-items:center;padding-block:54px;gap:35px}.footer-brand{color:#fff}.footer-brand .brand-name>span{color:var(--yellow)}.footer-main>p{font-size:1.5rem;line-height:1.3;margin:0;font-family:Georgia,'Times New Roman',serif;font-style:italic;color:#cadbd5}.footer-main>a:last-child{font-size:.875rem}.footer-main>a:last-child span{margin-left:20px}.footer-bottom{border-top:1px solid #365357;padding-block:21px;display:flex;justify-content:space-between;gap:20px;color:#bbc9c8;font-size:.75rem}.footer-bottom a{color:var(--yellow)}
#lightbox{width:min(1100px,94vw);max-height:94dvh;border:0;padding:30px;background:var(--ink-deep);color:#fff;overflow:auto}#lightbox::backdrop{background:#05191dea;backdrop-filter:blur(5px)}#lightbox img{max-height:72dvh;max-width:100%;width:auto;margin:auto;object-fit:contain}#lightbox-caption{text-align:center;font-size:.875rem;margin:15px 25px 0}.lightbox-close{position:absolute;right:9px;top:5px;border:0;background:var(--ink-deep);color:#fff;width:42px;height:42px;font-size:2rem;z-index:1}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:15px}.lightbox-controls button{width:40px;height:40px;border:1px solid #607879;background:transparent;color:#fff;border-radius:50%;font-size:1.2rem}#photo-position{font-size:.875rem;color:#d3dddd}
@media(min-width:1600px){.hero-copy{padding-right:85px}.hero{min-height:760px}.hero-actions{flex-direction:row;align-items:center}h1{font-size:7rem}}
@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.services-grid{grid-template-columns:repeat(2,1fr)}.service:nth-child(odd){border-left:0}.service:nth-child(n+3){border-top:1px solid var(--line)}.service:last-child{grid-column:1/-1}.nav-wrap{gap:20px}.header nav{gap:19px}.brand-description{font-size:.5625rem}.brand-name{font-size:2.5rem}.hero-copy{padding:66px 32px 35px}.hero{min-height:670px}.service{padding:29px 20px}.service h3{font-size:1.375rem}.service p{font-size:.875rem}.service a{font-size:.75rem}.about-grid,.contact-grid{gap:55px}.enquiry-form{padding:30px}.project-grid{gap:20px}.intro-strip{gap:35px}}
@media(max-width:900px){.header nav{gap:17px}.header nav .button{font-size:.8125rem;padding-inline:12px}.header nav .button svg{display:none}.brand-description{max-width:180px;line-height:1.4;letter-spacing:.06em}.section{padding-block:75px}.hero{min-height:620px}.hero-copy{padding-top:58px}h1{font-size:4.5rem}.hero-description{font-size:1rem}.hero-details{gap:10px}.hero-details span+span{padding-left:0;border-left:0}.photo-caption{left:16px;right:16px;bottom:16px;padding:15px;gap:10px}.caption-number{display:none}.service{padding:30px}.service p{font-size:.9375rem}.service a{font-size:.875rem}.service-icon{margin-bottom:28px}.section-heading{gap:25px}.section-heading>p{max-width:260px}.project-grid{grid-template-columns:1fr 1fr}.project-large{grid-column:1/-1}.project-large .project-image{aspect-ratio:16/9}.project:nth-child(2),.project:nth-child(3){margin-top:10px}.about-grid,.contact-grid{gap:35px}.form-row{grid-template-columns:1fr;gap:0}.enquiry-form{padding:26px}}
@media(max-width:720px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 40px)}.topline .wrap{justify-content:center;padding-block:7px;font-size:.6875rem}.topline a{display:none}.nav-wrap{min-height:84px}.brand-name{font-size:2.4rem}.brand-description{max-width:none;font-size:.5625rem;margin-top:6px}.menu-toggle{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:3px}.menu-lines,.menu-lines:before,.menu-lines:after{width:20px;height:2px;display:block;background:var(--ink);position:relative}.menu-lines:before,.menu-lines:after{content:'';position:absolute;left:0}.menu-lines:before{top:-6px}.menu-lines:after{top:6px}.menu-toggle[aria-expanded=true] .menu-lines{background:transparent}.menu-toggle[aria-expanded=true] .menu-lines:before{top:0;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines:after{top:0;transform:rotate(-45deg)}.header nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:15px 20px 22px;align-items:stretch;gap:0;box-shadow:0 14px 18px #102e3310}.header nav.is-open{display:flex;flex-direction:column}.header nav>a:not(.button){padding:13px 4px}.header nav .button{margin-top:10px;font-size:.9375rem}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:49px 25px 32px}.hero .eyebrow{font-size:.6875rem;margin-bottom:21px}h1{font-size:clamp(3.8rem,13.7vw,6rem);margin-bottom:23px}.hero-description{max-width:410px;margin-bottom:27px}.hero-actions{gap:21px;flex-direction:row;flex-wrap:wrap;align-items:center}.hero-actions .button{min-height:53px;font-size:.875rem;padding:13px 19px}.hero-details{margin-top:34px;padding-top:20px;gap:14px;font-size:.6875rem}.hero-details span+span{border-left:1px solid #6e8587;padding-left:14px}.hero-visual{height:410px}.hero-visual>img{object-position:center 55%}.photo-caption{left:20px;right:20px;bottom:20px;padding:16px}.caption-number{display:block}.intro-strip{padding-block:30px;grid-template-columns:1fr 44px;gap:18px}.intro-strip p{font-size:1.4rem}.intro-strip>span{grid-row:2;grid-column:1/-1;font-size:.875rem;max-width:90%}.intro-strip .round-link{grid-column:2;grid-row:1}.section{padding-block:62px}.eyebrow{font-size:.6875rem;margin-bottom:16px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:2.65rem}.section-heading>p{margin-top:20px;max-width:100%;font-size:.9375rem}.section-heading>.text-link{margin-top:23px;font-size:.875rem}.service{padding:25px 19px}.service h3{font-size:1.35rem}.service-icon{width:39px;height:39px;margin-bottom:28px}.service p{font-size:.875rem;line-height:1.75;margin-bottom:21px}.service a{font-size:.8125rem;align-items:flex-end}.service-number{right:15px;top:16px}.project-grid{gap:26px 16px}.project-large .project-image{aspect-ratio:4/3}.project-label h3{font-size:1.125rem}.project-label>span{font-size:.625rem}.project-label{margin-top:14px}.project:nth-child(2),.project:nth-child(3){margin-top:0}.project .image-open{height:32px;width:32px;bottom:11px;right:11px;font-size:1.2rem}.about-section{padding-block:62px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:29px}.about-grid h2{font-size:2.7rem}.about-copy{padding:0}.about-copy p{font-size:.9375rem}.contact-copy h2{font-size:3.1rem}.contact-phone{font-size:2.15rem;margin-top:24px}.contact-location{margin-top:23px}.enquiry-form{padding:26px 22px}.enquiry-form h3{font-size:1.45rem}.form-row{grid-template-columns:1fr 1fr;gap:14px}.footer-main{padding-block:38px;flex-wrap:wrap;gap:28px}.footer-main>p{font-size:1.3rem}.footer-main>a:last-child{flex-basis:100%}.footer-bottom{flex-direction:column;gap:7px;padding-bottom:25px}.button:hover{transform:none}#lightbox{padding:37px 14px 18px}#lightbox img{max-height:65dvh}}
@media(max-width:380px){.hero-details{flex-direction:column;gap:6px}.hero-details span+span{border:0;padding:0}.services-grid{grid-template-columns:1fr}.service+.service{border-left:0;border-top:1px solid var(--line)}.service:last-child{grid-column:auto}.service a{font-size:.875rem}.service p{font-size:.9375rem}.form-row{grid-template-columns:1fr;gap:0}.footer-main>p{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
