/* Forest green, citrus accents, authentic project imagery. */
:root{--ink:#163e33;--muted:#5b7067;--line:#d9e3db;--paper:#f2f6f0;--accent:#17654e;--lime:#d7f27b;--radius:26px}
body{color:var(--ink)}p{text-wrap:pretty}.wrap{width:min(1320px,calc(100% - 96px))}a,button{transition:transform .22s,background-color .22s,color .22s,box-shadow .22s}a:focus-visible,button:focus-visible{outline-color:#226b50;outline-width:3px}button:disabled{cursor:default;opacity:.6}.site-header{border-color:#e4eae4;background:#fffffff2}.header-inner{height:90px}.brand-icon{background:var(--ink);color:var(--lime);width:42px;height:42px;font-size:1rem;border-radius:12px}.desktop-nav{gap:30px}.nav-link{color:#4d6559;font-size:.94rem}.button{background:var(--ink);border-color:var(--ink);min-height:53px;padding:14px 25px;gap:28px;font-size:.94rem}.button:hover{background:#215f49;box-shadow:0 8px 20px #183e3315}.button.light{background:transparent;color:var(--ink);border-color:#b8cbbb}.button.small{min-height:45px;padding:11px 22px;font-size:.9rem}.eyebrow{font-size:.79rem;letter-spacing:.13em;color:#52705b}.hero{padding-top:64px}.hero-top{grid-template-columns:1.55fr 1fr;gap:55px;padding-bottom:44px}.hero h1{font-size:clamp(3.25rem,5.7vw,5.95rem);letter-spacing:-.067em;line-height:1.035}.hero h1 span{color:#568062}.hero-intro .lead{font-size:1.04rem;max-width:420px}.hero-intro .actions{gap:23px}.hero-intro{padding-bottom:4px}.hero-composition{position:relative}.hero-media{height:515px;background:#c8dfd5;isolation:isolate;border-radius:28px}.hero-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.65,.3,1)}.hero-media:hover img{transform:scale(1.022)}.hero-media:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#082e26bd);pointer-events:none;z-index:1}.hero-image-link{position:absolute;inset:0;z-index:2}.media-caption{background:none;text-shadow:none;left:34px;right:34px;bottom:27px;padding:0;border-radius:0;align-items:end;color:white;font-size:.82rem;z-index:3;pointer-events:none}.caption-title{display:block;font-size:1.6rem;letter-spacing:-.035em;line-height:1.3;margin-top:7px}.image-link{display:inline-flex;align-items:center;gap:22px;min-height:45px;color:white;border-bottom:1px solid #ffffff85;font-size:.9rem;pointer-events:auto}.hero-note{position:absolute;right:28px;top:25px;background:var(--lime);padding:19px 23px;display:flex;align-items:center;gap:17px;border-radius:16px;z-index:3;font-size:.88rem;line-height:1.5}.note-icon{font-size:2.1rem;line-height:1}.hero-note strong{font-weight:600}.facts{padding:33px 0;gap:30px}.fact strong{font-size:1.6rem;color:var(--ink)}.fact span{font-size:.88rem}.section{padding:100px 0}.section-head{margin-bottom:36px}.section-head h2{font-size:clamp(2.4rem,4.2vw,4.2rem)}.section-head .text-link{flex-shrink:0}.cards{gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card{padding:0;overflow:hidden;background:#f1f6ef;min-height:unset}.photo-card:hover{background:#eaf3e6;transform:translateY(-5px)}.service-photo{height:285px;overflow:hidden;position:relative;background:#d6e3d9}.service-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s}.photo-card:hover img{transform:scale(1.045)}.service-number{position:absolute;top:20px;left:20px;color:var(--ink);background:var(--lime);border-radius:100%;width:43px;height:43px;display:grid;place-items:center;font-size:.85rem}.service-copy{padding:30px 32px 28px;display:flex;flex-direction:column;flex:1}.service-copy h3{font-size:1.8rem;max-width:none;margin-bottom:14px}.service-copy p{max-width:450px;font-size:.98rem}.card-bottom{padding-top:24px;font-size:.88rem}.circle-arrow{border-color:#c2d4c1}.photo-card:hover .circle-arrow{background:var(--ink);color:var(--lime)}.subtle{background:#f0f5ed}.about-composition{position:relative;padding:0 0 28px}.photo-link{display:block;position:relative;overflow:hidden;background:#dae5da;border-radius:22px;isolation:isolate}.photo-link img{display:block;object-fit:cover;width:100%;height:100%;transition:transform .65s}.photo-link:hover img{transform:scale(1.035)}.photo-expand{display:grid;place-items:center;position:absolute;bottom:18px;right:18px;z-index:2;border-radius:50%;background:#fff;color:var(--ink);width:42px;height:42px;font-size:1.2rem;box-shadow:0 3px 20px #0002}.about-photo{height:550px}.experience-label{position:absolute;bottom:0;left:30px;right:30px;background:var(--ink);color:white;border-radius:20px;padding:23px 27px;display:flex;gap:25px;align-items:center}.experience-label strong{font-size:3.5rem;line-height:1;font-weight:500;letter-spacing:-.065em;color:var(--lime)}.experience-label span{font-size:.88rem;line-height:1.5}.split{gap:80px}.split h2{font-size:clamp(2.4rem,4vw,4.2rem)}.split .lead{font-size:1.15rem}.portfolio-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.portfolio-preview figure{margin:0;min-width:0}.portfolio-preview .photo-link{height:355px}.portfolio-preview figcaption{padding:18px 2px}.portfolio-preview figcaption span{display:block;font-size:1.1rem;letter-spacing:-.025em}.portfolio-preview figcaption small{display:block;font-size:.83rem;color:var(--muted);margin-top:5px}.step{border-top:2px solid #c0d4ba}.step .number{color:#42634d}.cta{background:var(--ink);color:white;padding:66px}.cta h2{color:white}.cta .eyebrow{color:var(--lime)}.cta p{color:#d2e3d6;max-width:520px}.cta>.button{background:var(--lime);border-color:var(--lime);color:var(--ink)}.cta>.button:hover{background:#e5ffa0}.footer-bottom a{padding-block:7px}.page-intro{padding-top:60px}.page-intro h1{font-size:clamp(3rem,5.6vw,5.6rem);line-height:1.07}.page-intro .lead{max-width:730px}.breadcrumb{font-size:.86rem}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.detail-photo{margin:0 0 40px}.detail-photo .photo-link{height:430px}.detail-photo figcaption{color:var(--muted);font-size:.82rem;padding:12px 0}.prose h2{font-size:2.15rem}.prose li::marker{color:#469368}.prose a{overflow-wrap:anywhere}.aside-card{border:1px solid #d6e3d3}.aside-card .button{gap:13px}.gallery-section{padding-bottom:95px}.gallery-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:0 0 30px}.gallery-filters{display:none;gap:9px;flex-wrap:wrap}.js .gallery-filters{display:flex}.filter-button{border:1px solid #d5e2d3;background:white;color:var(--ink);padding:12px 19px;border-radius:100px;font-size:.88rem;min-height:46px}.filter-button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.filter-button:hover{transform:scale(1.025)}.gallery-count{font-size:.85rem;color:var(--muted);white-space:nowrap}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px;align-items:start}.gallery figure{background:none;border-radius:0}.gallery .photo-link{height:340px;border-radius:22px}.gallery figure:nth-child(6n+2) .photo-link{height:405px}.gallery img{height:100%}.gallery figcaption{padding:17px 2px}.gallery figcaption h2{font-size:1.13rem;letter-spacing:-.03em;line-height:1.3;color:var(--ink)}.gallery figcaption span{font-size:.77rem;color:var(--muted);display:block;margin-top:7px}.gallery-source{margin-top:40px;font-size:.84rem;color:var(--muted);max-width:750px}.gallery-source a{text-decoration:underline;text-underline-offset:3px}.form-card{border:1px solid #d8e5d4;background:#f2f7ef}.choices{grid-template-columns:1fr 1fr}.choice{font-size:.95rem;min-height:70px}.choice:has(input:checked){background:#e1edce;border-color:#3d744e}.field{font-size:.94rem}.field input,.field select,.field textarea{font-size:1rem;min-height:49px}.form-card .intro{font-size:1rem}.form-actions button{min-width:120px}.contact-details a.phone{font-size:1.95rem}.notice{background:#eaf1e4;border-color:#d1dfc9}.form-card .notice{margin-top:20px}.mobile-contact{display:none}.lightbox{border:0;background:#0d211c;color:white;padding:0;max-width:min(1240px,96vw);width:1240px;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px #0008}.lightbox::backdrop{background:#06100ddc;backdrop-filter:blur(5px)}.lightbox-header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 23px}.lightbox-heading{font-size:1rem;letter-spacing:0;font-weight:400}.lightbox-close,.lightbox-prev,.lightbox-next{border:1px solid #81998b80;color:white;background:#ffffff0b;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;flex-shrink:0;font-size:1.35rem}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#ffffff25}.lightbox-stage{height:min(68vh,760px);position:relative;background:#091913;display:flex;align-items:center;justify-content:center}.lightbox-stage img{width:100%;height:100%;object-fit:contain}.lightbox-prev,.lightbox-next{position:absolute;top:calc(50% - 23px);background:#17362de6;z-index:2}.lightbox-prev{left:14px}.lightbox-next{right:14px}.lightbox-caption{padding:17px 24px;display:flex;justify-content:space-between;gap:20px;font-size:.87rem;color:#d8e5de}.lightbox-caption a{text-decoration:underline;text-underline-offset:4px}.lightbox-count{white-space:nowrap;color:var(--lime)}html.modal-open{overflow:hidden}.page-intro,.hero{animation:none}.js .menu-button{display:none}summary{min-height:35px;padding-right:10px}summary:hover{color:var(--accent)}
@media(min-width:1600px){.wrap{width:min(1400px,calc(100% - 120px))}.hero-media{height:570px}}
@media(max-width:1100px){.wrap{width:calc(100% - 56px)}.hero-top{gap:30px;grid-template-columns:1.4fr 1fr}.hero h1{font-size:clamp(3rem,5.9vw,5rem)}.hero-intro .lead{font-size:1rem}.hero-media{height:450px}.split{gap:42px}.service-photo{height:240px}.service-copy{padding:25px}.gallery{grid-template-columns:1fr 1fr}.gallery .photo-link,.gallery figure:nth-child(6n+2) .photo-link{height:360px}.gallery-toolbar{align-items:start}.portfolio-preview .photo-link{height:280px}.cta{padding:45px}.facts{gap:18px}.fact{gap:15px}.fact strong{font-size:1.4rem}.fact:not(:first-child){padding-left:22px}.fact span{font-size:.82rem}.desktop-nav{gap:22px}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}body{padding-bottom:85px}.brand-icon{width:36px;height:36px;border-radius:10px;font-size:.9rem}.brand-text{font-size:.9rem}.brand-text small{font-size:.62rem}.js .menu-button{display:block;background:var(--paper);color:var(--ink);min-height:44px;border:1px solid var(--line);font-size:.85rem}.desktop-nav{position:static;display:flex;flex-direction:column;padding:16px 0;box-shadow:none;grid-column:1/-1}.header-inner{height:auto;min-height:74px;display:grid;grid-template-columns:1fr auto}.js .desktop-nav{display:none;position:absolute;top:74px;left:0;right:0;padding:20px 22px 27px;border-bottom:1px solid #d8e3d6;box-shadow:0 16px 18px #183e330b}.js .desktop-nav.open{display:flex}.nav-link{font-size:1rem;padding:11px 0}.hero{padding-top:35px}.hero-top{grid-template-columns:1fr;gap:23px;padding-bottom:27px}.hero h1{font-size:clamp(2.55rem,10.7vw,4.2rem);line-height:1.08;letter-spacing:-.06em}.hero .eyebrow{font-size:.73rem;letter-spacing:.105em;margin-bottom:20px}.hero-intro .lead{font-size:1rem;line-height:1.7;max-width:none}.hero-intro .actions{margin-top:22px;gap:18px}.hero-intro .text-link{font-size:.87rem}.button{font-size:.9rem;gap:20px;padding:13px 20px}.hero-media{height:380px;border-radius:22px}.hero-media img{object-position:48% 50%!important}.hero-note{top:16px;right:14px;padding:11px 14px;font-size:.74rem;border-radius:12px;gap:10px}.note-icon{font-size:1.65rem}.media-caption{left:21px;right:21px;bottom:20px;display:block;font-size:.74rem}.caption-title{font-size:1.38rem}.media-caption .image-link{display:none}.facts{padding:11px 0;margin-top:7px;gap:0}.fact{padding:14px 0!important}.fact strong{font-size:1.43rem}.fact span{font-size:.82rem}.section{padding:62px 0}.section-head{margin-bottom:28px}.section-head h2,.split h2{font-size:2.4rem}.section-head .text-link{margin-top:17px}.cards{gap:22px;grid-template-columns:1fr}.service-photo{height:250px}.service-copy{padding:25px}.service-copy h3{font-size:1.75rem}.service-copy p{font-size:.98rem}.about-photo{height:400px}.about-composition{padding-bottom:25px}.experience-label{left:18px;right:18px;padding:20px 23px;gap:20px}.experience-label strong{font-size:3rem}.experience-label span{font-size:.85rem}.split{gap:36px}.split .lead{font-size:1.06rem}.portfolio-preview{grid-template-columns:repeat(3,85%);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:0 0 5px}.portfolio-preview figure{scroll-snap-align:start}.portfolio-preview .photo-link{height:310px}.portfolio-preview figcaption span{font-size:1rem}.steps{margin-top:33px}.cta{padding:32px 27px;margin-bottom:50px}.cta h2{font-size:2.5rem}.cta .button{margin-top:26px}.footer-grid{gap:29px}.footer-bottom{font-size:.8rem}.footer-links a{display:inline-block;min-height:34px}.page-intro{padding:38px 0 40px}.page-intro h1{font-size:clamp(2.45rem,10vw,3.6rem)}.page-intro .lead{font-size:1.07rem;margin-top:23px}.breadcrumb{font-size:.8rem;overflow-wrap:anywhere}.content-grid{gap:35px}.detail-photo .photo-link{height:310px}.prose h2{font-size:1.95rem}.prose h3{font-size:1.4rem}.aside-card{padding:28px}.gallery-toolbar{display:block;padding-bottom:22px}.gallery-filters{gap:8px}.filter-button{padding:10px 14px;font-size:.8rem;min-height:44px}.gallery-count{display:block;margin-top:15px;font-size:.84rem}.gallery{grid-template-columns:1fr;gap:25px}.gallery .photo-link,.gallery figure:nth-child(6n+2) .photo-link{height:380px}.gallery-source{font-size:.85rem}.gallery-section{padding-bottom:62px}.form-card{padding:27px 21px;scroll-margin-top:100px}.form-card h2{font-size:1.8rem}.choices{grid-template-columns:1fr}.form-actions{gap:10px}.form-actions button{min-width:0}.field-row{grid-template-columns:1fr;gap:0}.contact-layout{padding-bottom:55px;gap:25px}.contact-details a.phone{font-size:1.75rem}.review-list div{grid-template-columns:85px 1fr;gap:10px}.form-card .actions button{width:100%;white-space:normal;overflow-wrap:anywhere;font-size:.88rem;padding:14px 16px}.mobile-contact{position:fixed;display:grid;grid-template-columns:1fr 1.35fr;gap:10px;bottom:0;left:0;right:0;z-index:18;padding:11px 18px calc(11px + env(safe-area-inset-bottom));background:#ffffffed;backdrop-filter:blur(20px);border-top:1px solid #d9e5d5;box-shadow:0 -8px 20px #173b3207}.mobile-contact a{min-height:45px;display:flex;justify-content:center;align-items:center;gap:10px;font-size:.9rem;border-radius:100px}.mobile-contact .call{color:var(--ink);background:#eaf1e4}.mobile-contact .enquire{background:var(--ink);color:white}.lightbox{max-width:calc(100vw - 16px);max-height:calc(100dvh - 20px);border-radius:14px}.lightbox-header{padding:13px 15px}.lightbox-heading{font-size:.91rem;line-height:1.4}.lightbox-stage{height:62dvh}.lightbox-caption{padding:14px 17px;font-size:.8rem}.lightbox-caption a{display:none}.lightbox-prev,.lightbox-next{width:42px;height:42px}.lightbox-prev{left:7px}.lightbox-next{right:7px}.lightbox-close{width:44px;height:44px}}
@media(max-width:360px){.wrap{width:calc(100% - 28px)}.hero h1{font-size:2.45rem}.hero-intro .actions{gap:10px}.hero-intro .button{padding-inline:16px}.hero-intro .text-link{gap:12px}.hero-media{height:340px}.gallery .photo-link,.gallery figure:nth-child(6n+2) .photo-link{height:330px}.form-card{padding:23px 17px}.progress-label{font-size:.72rem}.mobile-contact{padding-inline:14px}}
.media-caption .caption-title{display:block}
.service-directory{padding-bottom:90px}.service-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:35px}.service-jumps a{padding:10px 17px;border:1px solid var(--line);border-radius:100px;font-size:.86rem;min-height:44px}.service-jumps a:hover{background:var(--paper);transform:scale(1.025)}.catalogue-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.catalogue-group{padding:27px;background:var(--paper);border-radius:24px;min-width:0;scroll-margin-top:112px}.catalogue-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:15px}.catalogue-heading h3{font-size:1.4rem;line-height:1.25;letter-spacing:-.025em}.catalogue-heading>span{font-size:.78rem;white-space:nowrap;color:var(--muted);padding-top:5px}.catalogue-item{padding:18px 0;scroll-margin-top:120px}.catalogue-item:last-child{border-bottom:0}.catalogue-item summary{font-size:1.01rem;line-height:1.5;font-weight:500;min-height:30px;overflow-wrap:anywhere}.catalogue-item[open] summary{color:var(--accent)}.catalogue-body p{font-size:.95rem;line-height:1.65;padding-top:13px}.catalogue-body h4{margin:23px 0 0;font-size:.92rem;font-weight:600}.catalogue-body .button{margin-top:23px}.catalogue-source{color:var(--muted);font-size:.86rem;margin-top:30px;max-width:850px}.catalogue-source a{text-decoration:underline;text-underline-offset:3px}.additional-service{display:flex;justify-content:space-between;align-items:center;gap:25px;background:#e4efda;border-radius:18px;padding:23px 26px;margin-top:28px}.additional-service strong{font-weight:500}.all-services-cta{margin-top:30px;display:flex;justify-content:space-between;gap:25px;align-items:center}.all-services-cta p{color:var(--muted);max-width:550px}.related-services ul{list-style:none;padding:0}.related-services li{padding:0;border-bottom:1px solid var(--line)}.related-services li a{display:flex;justify-content:space-between;gap:18px;padding:13px 0;color:var(--ink);font-size:.96rem}.related-services li a:hover{color:var(--accent)}.selected-service{font-size:1rem;color:var(--ink);font-weight:500;margin-bottom:19px;overflow-wrap:anywhere}.selected-service:empty{display:none}.field select{max-width:100%;text-overflow:ellipsis}.form-card{min-width:0}
@media(max-width:760px){.service-directory{padding-bottom:55px}.service-jumps{gap:8px;margin-bottom:25px}.service-jumps a{font-size:.8rem;padding:10px 13px}.catalogue-grid{grid-template-columns:1fr;gap:19px}.catalogue-group{padding:23px 20px}.catalogue-heading{gap:15px}.catalogue-heading h3{font-size:1.25rem}.catalogue-heading>span{font-size:.72rem}.catalogue-item summary{font-size:1rem}.catalogue-body .button{max-width:100%;gap:12px}.additional-service,.all-services-cta{display:block}.additional-service a,.all-services-cta .button{margin-top:17px}.related-services h2{overflow-wrap:anywhere}.form-card select{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
