@font-face{font-family:barlow;src:url(../fonts/Barlow-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:barlow;src:url(../fonts/Barlow-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:barlow;src:url(../fonts/Barlow-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--paper:#f0f2f1;--white:#fafbfa;--ink:#222b2f;--muted:#586369;--accent:#28695f;--accent-hover:#20574f;--accent-light:#8eb7b0;--on-accent:#f8faf9;--line:#cbd1d3;--dark:#1c2529;--ink-inverse:#edf2f3;--muted-inverse:#b4c1c6;--line-inverse:#455259;--control-surface:#263238;--footer-surface:#141d21;--gutter:3.5rem;--section-space:5rem;--content-space:3rem;--grid-space:1.5rem;--radius:2px;--container:82.5rem;--header-height:6rem;--control-size:2.75rem;--ease:cubic-bezier(0.16, 1, 0.3, 1)}*{box-sizing:border-box}html{font-size:100%;scroll-behavior:smooth;scroll-padding-top:2rem;touch-action:manipulation}body{display:flex;flex-direction:column;min-height:100dvh;margin:0;background:var(--paper);color:var(--ink);font-family:barlow,arial,sans-serif;font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}body>main{flex:1}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default}img,svg{display:block}img{max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{overflow-wrap:anywhere}h1,h2{font-weight:700;letter-spacing:-.025em;line-height:1.1}h1{font-size:clamp(2.75rem,5.4vw,4.5rem)}h2{font-size:clamp(2rem,3vw,2.5rem);text-wrap:balance}h1 span,h2 span{color:var(--muted)}h3{font-size:1.5625rem;font-weight:600;line-height:1.35;letter-spacing:-.02em}p{color:var(--muted)}[hidden]{display:none!important}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.container{width:min(var(--container),calc(100% - var(--gutter) - var(--gutter)));margin-inline:auto}.section{padding-block:var(--section-space)}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:600;color:var(--ink);line-height:1.5;margin-bottom:1.5rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:3.25rem;background:var(--accent);border:1px solid transparent;border-radius:var(--radius);padding:.875rem 1.5rem;color:var(--on-accent);font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.5;transition:background .18s ease,transform .16s var(--ease)}.button:active{transform:scale(.98)}.button svg{width:1.25rem;height:1.25rem;flex-shrink:0}.button-small{min-height:var(--control-size);padding:.625rem 1.25rem}.button:disabled{opacity:.6}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{min-height:var(--header-height);display:flex;justify-content:space-between;align-items:center;gap:2rem}.brand{display:inline-flex;align-items:center;gap:.625rem;flex-shrink:0}.company-logo{width:8.75rem;height:auto}.main-nav{display:flex;align-items:center;gap:2rem;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.main-nav>a:not(.button){display:inline-flex;align-items:center;min-height:var(--control-size);padding-block:.75rem;transition:color .18s ease}.menu-toggle{display:none}.hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(25rem,80svh,38.75rem);overflow:hidden;background:var(--dark);color:var(--white)}.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:saturate(.65);z-index:-2}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,27,32,.96) 0%,rgba(18,27,32,.88) 45%,rgba(18,27,32,.22) 100%)}.hero-content{padding-block:6rem}.hero h1{max-width:53.125rem;line-height:1.04;letter-spacing:-.015em;text-wrap:balance}.hero-description{max-width:33.125rem;margin:1.5rem 0 2rem;color:var(--white);font-size:1.125rem;line-height:1.75}.hero .button{min-width:10rem}.hero :focus-visible{outline-color:var(--accent-light)}.section-heading{margin-bottom:var(--content-space)}#services{padding-bottom:var(--content-space)}.services-grid{--service-icon-size:2rem;--service-icon-gap:0.75rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4.5rem;row-gap:var(--content-space)}.service-heading{display:flex;align-items:center;gap:var(--service-icon-gap)}.service-icon{display:block;flex:0 0 var(--service-icon-size);color:var(--accent)}.service-icon svg{width:var(--service-icon-size);height:var(--service-icon-size)}.service p{max-width:48ch;margin-top:.5rem;margin-inline-start:calc(var(--service-icon-size) + var(--service-icon-gap));font-size:1rem;line-height:1.75}#work{border-top:1px solid var(--line);padding-top:var(--content-space)}.gallery-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-space)}.project-image{display:block;position:relative;overflow:hidden;border-radius:var(--radius);background:var(--line);aspect-ratio:4/3}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s var(--ease)}.project-image:active img{transform:scale(1.015)}.contact-section,.site-footer{--ink:var(--ink-inverse);--muted:var(--muted-inverse);--line:var(--line-inverse);color:var(--ink)}.contact-section{background:var(--dark);padding-block:var(--section-space)}.contact-section :focus-visible,.site-footer :focus-visible,.lightbox :focus-visible{outline-color:var(--accent-light)}.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:4rem}.contact-details{display:grid;gap:0;margin-top:2rem}.contact-details a,.contact-details p{display:flex;align-items:center;gap:.75rem;min-height:var(--control-size);font-size:1rem;line-height:1.5;color:var(--ink);overflow-wrap:anywhere;text-decoration-thickness:1px;text-underline-offset:4px;transition:color .18s ease}.contact-details svg{width:1.25rem;height:1.25rem;flex-shrink:0}.contact-details .contact-pending{font-size:.875rem;line-height:1.8;color:var(--muted)}.contact-email-row{position:relative;display:flex;align-items:center;gap:.25rem;min-width:0}.contact-email-row a{min-width:0}.copy-email{display:grid;place-items:center;flex:0 0 var(--control-size);width:var(--control-size);height:var(--control-size);padding:.75rem;border:0;border-radius:var(--radius);background:0 0;color:var(--muted);transition:background .18s ease,color .18s ease,transform .16s var(--ease)}.copy-email svg{width:1.125rem;height:1.125rem;margin:0}.copy-email:active{transform:scale(.98)}.copy-email-done,.copy-email.is-copied .copy-email-icon{display:none}.copy-email.is-copied .copy-email-done{display:block}.copy-email.is-copied{color:var(--accent-light)}.copy-email-help{position:absolute;top:100%;left:2rem;z-index:1;max-width:min(17.5rem,calc(100% - 2rem));padding:.5rem .75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--footer-surface);color:var(--ink);font-size:.8125rem;line-height:1.5}.clipboard-buffer{position:fixed;top:0;left:0;width:1px;height:1px;padding:0;border:0;opacity:0;font-size:16px;pointer-events:none}.contact-enquiry{min-width:0}.contact-enquiry h3{font-size:1.5rem}.enquiry-intro{margin-top:.75rem;font-size:1rem;line-height:1.75}.enquiry-checklist{display:grid;gap:.625rem;margin:1.25rem 0 0;padding-left:1.25rem;color:var(--ink);line-height:1.6}.enquiry-checklist li{padding-left:.25rem}.enquiry-checklist li::marker{color:var(--accent-light)}.site-footer{border-top:1px solid var(--line);background:var(--footer-surface);padding-block:2.5rem}.site-footer .company-logo{filter:brightness(0)invert(1)}.footer-main{display:flex;justify-content:space-between;align-items:center;gap:2rem}.footer-main p{font-size:.8125rem}.footer-details{display:grid;gap:.25rem}.footer-socials{display:flex;align-items:center;gap:.75rem}.social-link{display:grid;place-items:center;width:var(--control-size);height:var(--control-size);border:1px solid var(--line);border-radius:var(--radius);transition:background .18s ease,border-color .18s ease,transform .16s var(--ease)}.social-link:active{transform:scale(.98)}.social-link svg{width:1.25rem;height:1.25rem}.lightbox{position:fixed;width:min(62.5rem,94vw);max-width:none;max-height:90dvh;border:0;border-radius:var(--radius);padding:0;overflow:hidden;background:var(--dark);color:var(--paper)}.lightbox::backdrop{background:#111a1ee8;backdrop-filter:blur(5px)}.lightbox-stage{display:grid;place-items:center;height:min(76dvh,50rem);touch-action:pan-y pinch-zoom;cursor:grab}.lightbox-stage:active{cursor:grabbing}.lightbox-stage img{width:100%;height:100%;min-height:0;object-fit:contain;user-select:none;-webkit-user-drag:none}.lightbox-close,.lightbox-nav{position:absolute;z-index:1;display:grid;place-items:center;width:var(--control-size);height:var(--control-size);border:1px solid #ffffff30;border-radius:var(--radius);background:#1c2529dc;color:var(--paper);transition:background .18s ease,transform .16s var(--ease)}.lightbox-close:active,.lightbox-nav:active{transform:scale(.98)}.lightbox-close svg,.lightbox-nav svg{width:1.5rem;height:1.5rem}.lightbox-close{right:1rem;top:1rem}.lightbox-nav{top:calc(50% - var(--control-size)/2)}.lightbox-prev{left:1rem}.lightbox-prev svg{transform:rotate(180deg)}.lightbox-next{right:1rem}.lightbox-count{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);padding:.3125rem .75rem;border-radius:var(--radius);background:#1c2529dc;font-size:.75rem;font-variant-numeric:tabular-nums;pointer-events:none}.lightbox-message{position:absolute;left:1.25rem;right:1.25rem;bottom:3.5rem;padding:.5rem .75rem;background:#1c2529ee;color:var(--paper);text-align:center;font-size:.8125rem;pointer-events:none}.error-page{min-height:60dvh}.error-page p{margin-block:1.5rem}@media(hover:hover) and (pointer:fine){.button:hover{background:var(--accent-hover)}.main-nav>a:not(.button):hover{color:var(--accent)}.contact-details a:hover{text-decoration:underline}.contact-details a:hover{color:var(--accent-light)}.copy-email:hover{background:var(--control-surface);color:var(--accent-light)}.project-image:hover img{transform:scale(1.035)}.social-link:hover{background:var(--accent);border-color:var(--accent)}.lightbox-close:hover,.lightbox-nav:hover{background:#3b4c54}}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:5;padding:.75rem 1.25rem;background:var(--accent);color:var(--on-accent);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.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}@media(max-width:68.75rem){:root{--gutter:2rem}.services-grid{column-gap:2.5rem}.contact-grid{gap:2.5rem}.main-nav{gap:1.5rem}}@media(max-width:48rem){:root{--gutter:1.25rem;--header-height:5rem;--section-space:3.5rem;--content-space:2.5rem;--grid-space:1rem}.hero{min-height:min(40rem,calc(100svh - var(--header-height) - 1px))}.hero-content{padding-block:4rem}.hero h1{max-width:36.25rem;font-size:clamp(2.625rem,8.5vw,3.75rem)}.hero-description{max-width:28.75rem;margin:1.5rem 0 2rem;font-size:1rem}.hero::before{background:linear-gradient(90deg,rgba(18,27,32,.94),rgba(18,27,32,.78))}.hero-background{object-position:56% center}.services-grid{grid-template-columns:1fr}.service h3{font-size:1.5rem}.company-logo{width:6.875rem}html{scroll-padding-top:1.5rem}.header-inner{min-height:var(--header-height);flex-wrap:wrap;gap:0}.header-inner>.brand{min-height:var(--header-height);min-width:0;max-width:calc(100% - var(--control-size))}.main-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;border-top:1px solid var(--line);padding:.75rem 0 1.25rem;gap:.5rem 1rem}.main-nav>a:not(.button){justify-content:center}.main-nav .button{grid-column:1/-1}.js-ready .main-nav{display:none}.js-ready .main-nav.is-open{display:grid}.js-ready .menu-toggle{display:grid;place-items:center;width:var(--control-size);height:var(--control-size);border:1px solid var(--line);border-radius:var(--radius);background:0 0;padding:.5625rem;transition:background .18s ease,transform .16s var(--ease)}.menu-toggle:active{transform:scale(.98)}.menu-toggle svg{width:1.5rem;height:1.5rem}.menu-icon-close,.menu-toggle[aria-expanded=true] .menu-icon-open{display:none}.menu-toggle[aria-expanded=true] .menu-icon-close{display:block}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-image{aspect-ratio:1}.contact-grid{grid-template-columns:1fr;gap:2rem}.footer-main{flex-wrap:wrap;gap:1.5rem}.footer-details{order:3;width:100%}.footer-socials{margin-left:auto}}@media(max-width:22rem){.main-nav{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}