:root{--ink:#18221e;--dark:#141c18;--green:#b7ce99;--cream:#f3f2e9;--muted:#626d65;--line:#d8dcd1;--white:#fafbf5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #72924f;outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}p{line-height:1.65}h1,h2{font-weight:500;letter-spacing:-.055em}h2{font-size:clamp(36px,4.3vw,62px);line-height:1.05}h3{font-weight:500;font-size:24px;letter-spacing:-.03em}em{font-style:normal;color:var(--green)}.wrap{width:min(1320px,calc(100% - 100px));margin:auto}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.16em;line-height:1.6}.section{padding-top:108px;padding-bottom:108px}.skip{position:fixed;top:-80px;z-index:20;background:var(--green);padding:15px}.skip:focus{top:0}header{background:var(--ink);color:var(--white);border-bottom:1px solid #ffffff18}.nav{height:94px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:29px;letter-spacing:.04em;line-height:1}.brand small{display:block;font-size:8px;letter-spacing:.25em;margin-top:6px}.mark{font-size:45px;color:var(--green);border-right:1px solid #ffffff33;padding-right:12px;line-height:1}.brand img{max-width:170px;max-height:60px}nav{display:flex;align-items:center;gap:30px;font-size:12px}nav>a:not(.button):hover{color:var(--green)}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:32px;background:var(--green);color:var(--ink);border:1px solid transparent;padding:18px 22px;font-size:12px;font-weight:600;transition:background .2s}.button:hover{background:#cce0b4}nav .button{padding:15px 18px}.menu{display:none}.hero{background:var(--dark);color:var(--white)}.hero-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:64px;align-items:center;padding-top:70px;padding-bottom:62px}.hero .eyebrow{color:var(--green);margin-bottom:25px}h1{font-size:clamp(50px,6.4vw,92px);line-height:1.01;margin-bottom:28px}.intro{font-size:16px;color:#b9c2b9;max-width:440px}.actions{display:flex;align-items:center;gap:25px;margin:32px 0 45px;flex-wrap:wrap}.text-link{font-size:12px;border-bottom:1px solid #778472;padding:8px 0}.location{font-size:9px;letter-spacing:.1em;color:#b6bfb6}.hero-media{aspect-ratio:1;border-radius:16px;overflow:hidden;position:relative;background:#34463c}.hero-media>img,.hero-media>video{width:100%;height:100%;object-fit:cover}.hero-media>video{position:absolute;inset:0}.media-top,.media-bottom{position:absolute;left:25px;right:25px;display:flex;justify-content:space-between;gap:15px}.media-top{top:25px;font-size:9px;letter-spacing:.15em}.media-bottom{bottom:24px;align-items:end}.media-bottom small{font-size:8px;letter-spacing:.16em;color:#c5d5bc}.media-bottom p{font-size:16px;margin-top:5px}#media-badge{font-size:7px;letter-spacing:.08em;border:1px solid #ffffff50;padding:7px}#video-toggle{border:1px solid #fff;background:#17211ccc;color:white;padding:10px}.hero-foot{padding:22px 0;border-top:1px solid #ffffff20;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.13em;color:#aab5a8}.trust{border-bottom:1px solid var(--line);background:#e9ece2}.trust-row{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:31px;padding-bottom:31px}#trust-note{font-size:10px;color:var(--muted);margin-top:5px}#credentials{display:flex;flex:1;justify-content:space-around;gap:24px}.credential{font-size:18px;font-weight:700;letter-spacing:-.04em;color:#626e60;text-align:center;align-self:center}.credential small{display:block;font-size:8px;letter-spacing:.08em;font-weight:400;margin-top:5px}.credential img{max-width:130px;max-height:45px;object-fit:contain}.section-head{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:45px}.section-head .eyebrow{margin-bottom:18px}.section-head>p{max-width:345px;color:var(--muted);font-size:14px}#service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{text-align:left;padding:28px;background:transparent;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:242px;display:flex;flex-direction:column;transition:background .2s}.service-card:hover{background:#e5e9dc}.service-top{display:flex;justify-content:space-between;margin-bottom:30px;align-items:center;width:100%}.service-top span{font-size:11px;color:var(--muted)}.service-icon{width:35px;height:35px;stroke:#65795b;fill:none;stroke-width:1.3}.service-card h3{margin-bottom:9px}.service-card p{font-size:12px;color:var(--muted)}.explore{margin-top:auto;padding-top:22px;font-size:10px;display:flex;justify-content:space-between;width:100%}.projects{background:#e6e9df}#project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:30px}.project-card{grid-column:span 6;border:0;padding:0;text-align:left;background:transparent}.project-card:first-child{grid-column:span 7}.project-card:nth-child(2){grid-column:span 5;align-self:end}.project-card:nth-child(n+3){grid-column:span 4}.project-image{position:relative;overflow:hidden;background:#3c4c40;aspect-ratio:1.55}.project-card:first-child .project-image{aspect-ratio:1.35}.project-card:nth-child(2) .project-image{aspect-ratio:1.18}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.project-card:hover img{transform:scale(1.035)}.project-card:nth-child(2n) .placeholder{filter:sepia(.28)}.project-card:nth-child(3n) .placeholder{filter:hue-rotate(25deg)}.project-image span{position:absolute;left:16px;bottom:16px;color:#fff;font-size:8px;letter-spacing:.15em;background:#18221ecc;padding:9px}.project-meta{display:flex;align-items:center;justify-content:space-between;padding-top:16px;gap:10px}.project-meta h3{font-size:19px}.project-meta p{font-size:8px;letter-spacing:.12em;margin-top:7px;color:var(--muted)}.project-meta>span{border:1px solid #bcc5b4;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex-shrink:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:60px}.steps article{border-top:1px solid #acb9a5;padding-top:20px}.steps article>span{font-size:11px;color:var(--muted)}.steps h3{margin:28px 0 13px}.steps p{font-size:13px;color:var(--muted)}.contact-panel{background:var(--ink);color:var(--white)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-top:80px;padding-bottom:80px;align-items:center}.contact-map{border:1px solid #ffffff25;min-height:440px;display:flex;flex-direction:column;justify-content:space-between;padding:28px;background:repeating-linear-gradient(0deg,transparent,transparent 39px,#ffffff05 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ffffff05 40px);overflow:hidden}.contact-map>span{font-size:9px;letter-spacing:.16em;color:#b8c4ad}.bc-map{width:min(100%,300px);margin:18px auto;display:block}.bc-outline,.bc-island{fill:none;stroke:var(--green);stroke-width:1.35;stroke-linejoin:round;stroke-linecap:round;opacity:.92}.bc-service{fill:none;stroke:var(--green);stroke-width:1.5;opacity:.85}.bc-service-core{fill:var(--green);stroke:none;opacity:.9}.contact-copy{align-self:center}.contact-copy .eyebrow{color:var(--green);margin-bottom:22px}.contact-copy h2{font-size:clamp(32px,3.5vw,50px);margin-bottom:22px}.contact-lead{font-size:14px;color:#b7c2b7;max-width:420px;margin-bottom:36px}.contact-details{display:flex;flex-direction:column;gap:10px;border-top:1px solid #ffffff22;padding-top:28px}.contact-company{font-size:20px;font-weight:600;letter-spacing:-.02em}.contact-address{font-size:14px;color:#b7c2b7}.contact-phone{font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:-.04em;color:var(--green);width:fit-content;border-bottom:1px solid #90a88366;padding-bottom:4px;transition:color .25s,border-color .25s}.contact-phone:hover{color:#d4e6b8;border-color:#d4e6b8}.contact-map .bc-map{opacity:0;transform:translateY(8px);animation:map-in .8s ease .1s forwards}.bc-service{animation:map-pulse 2.8s ease-in-out 1s infinite}@keyframes map-in{to{opacity:1;transform:none}}@keyframes map-pulse{0%,100%{opacity:.55}50%{opacity:.95}}footer{background:var(--ink);color:#bdc7b9}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:32px;padding-bottom:32px;font-size:10px}.footer-row .brand{font-size:20px}.footer-row small{font-size:7px}dialog{border:0;background:var(--cream);color:var(--ink);width:min(620px,calc(100% - 32px));max-height:90dvh;overflow:auto;padding:45px}dialog::backdrop{background:#09100bd9;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.close{position:absolute;right:12px;top:10px;border:0;background:var(--cream);width:40px;height:40px;font-size:28px;z-index:2}dialog h2{font-size:38px;margin:18px 0}dialog p{font-size:14px;color:var(--muted)}dialog ul{padding-left:20px;margin:25px 0;line-height:2;font-size:14px}#gallery-dialog{width:min(1000px,calc(100% - 32px));padding:0;overflow:hidden}#gallery-dialog .close{background:#18221ecc;color:#fff;border-radius:50%;width:36px;height:36px;font-size:22px;line-height:1;right:12px;top:12px}#gallery-dialog .close:hover{background:#18221e}.gallery-stage{position:relative;background:var(--ink)}.gallery-stage>img{width:100%;height:min(62vh,640px);object-fit:contain;display:block}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:1px solid #ffffff40;background:#18221ecc;color:#fff;font-size:16px;line-height:1;display:grid;place-items:center;transition:background .2s,border-color .2s}.gallery-arrow:hover{background:#18221e;border-color:#ffffff90}.gallery-arrow:disabled{opacity:.3;cursor:default}#gallery-prev{left:12px}#gallery-next{right:12px}.gallery-info{padding:11px 18px;display:flex;align-items:baseline;gap:14px;min-height:0}.gallery-info .eyebrow{color:var(--muted);flex-shrink:0}.gallery-info h2{font-size:17px;margin:0;font-weight:500;letter-spacing:-.02em;line-height:1.3}#gallery-caption{font-size:12px;color:var(--muted);margin-left:auto;text-align:right}#gallery-caption:empty{display:none}[hidden]{display:none!important}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero-grid{gap:30px}h1{font-size:6.5vw}.actions{gap:15px}.actions .button{padding:16px;font-size:11px}.trust-row{align-items:start}#credentials{flex-wrap:wrap;gap:20px}.credential{font-size:16px}.contact-grid{gap:45px}nav{gap:22px}.media-bottom{left:16px;right:16px;flex-wrap:wrap}.service-card{padding:22px}.service-card h3{font-size:21px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.nav{height:78px;position:relative}.brand{font-size:24px}.mark{font-size:36px}.menu{display:block;background:transparent;border:1px solid #ffffff40;color:white;padding:12px;font-size:12px}nav{display:none;position:absolute;top:78px;left:-20px;right:-20px;z-index:5;background:var(--ink);padding:22px;align-items:stretch;flex-direction:column}nav.open{display:flex}nav>a{padding:8px}.hero-grid{grid-template-columns:1fr;padding-top:45px;padding-bottom:32px;gap:35px}h1{font-size:clamp(46px,10.5vw,76px);max-width:580px}.hero .eyebrow{font-size:9px;margin-bottom:22px}.intro{font-size:15px}.actions{margin:27px 0}.location{font-size:8px}.hero-media{max-width:540px;width:100%;justify-self:center}.hero-foot{font-size:7px;gap:20px;line-height:1.7}.trust-row{flex-direction:column;gap:24px;padding-top:26px;padding-bottom:26px}#credentials{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.credential{text-align:left}.section{padding-top:65px;padding-bottom:65px}.section-head{align-items:start;flex-direction:column;gap:23px;margin-bottom:30px}.section-head>p{max-width:440px;font-size:13px}#service-grid{grid-template-columns:repeat(2,1fr)}.service-card{min-height:240px;padding:18px}.service-card h3{font-size:21px}.service-top{margin-bottom:24px}#project-grid{gap:28px 18px}.project-card:first-child{grid-column:span 12}.project-card:nth-child(n+2){grid-column:span 6}.project-card:nth-child(n+2) .project-image{aspect-ratio:1}.project-meta h3{font-size:17px}.project-meta>span{display:none}.project-meta p{font-size:7px}.project-image span{left:8px;bottom:8px;font-size:7px;padding:6px;right:8px}.steps{grid-template-columns:1fr 1fr;gap:30px;margin-top:35px}.steps h3{margin-top:20px}.contact-grid{grid-template-columns:1fr;gap:38px;padding-top:50px;padding-bottom:55px}.contact-map{min-height:300px}.contact-copy h2{font-size:40px}.contact-phone{font-size:32px}.footer-row{align-items:start;flex-direction:column;gap:20px}dialog{padding:40px 25px 25px}.gallery-stage>img{height:auto;max-height:60vh}.gallery-info{flex-wrap:wrap;gap:6px 12px;padding:10px 14px}.gallery-info h2{font-size:15px}#gallery-caption{margin-left:0;text-align:left;flex-basis:100%}.gallery-arrow{width:32px;height:32px;font-size:14px}#gallery-prev{left:8px}#gallery-next{right:8px}}
@media(max-width:380px){#service-grid{grid-template-columns:1fr}.hero .eyebrow{font-size:8px}.media-bottom p{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Real media: preserve original logo colours and provide a clear backing. */
.credential{min-width:0;display:flex;align-items:center;justify-content:center}
.credential img{width:140px;height:58px;max-width:100%;max-height:58px;object-fit:contain}
#credentials{align-items:center}
.hero-media:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0007,transparent 25%,transparent 65%,#000b)}
.media-top,.media-bottom{z-index:1}
.service-photo{width:100%;height:220px;object-fit:cover;margin:18px 0 22px}
@media(max-width:760px){.nav .brand img{width:164px;height:auto}.nav .brand:has(img){padding:0}.credential{justify-content:flex-start}.credential img{width:130px;height:50px}.service-photo{height:180px}}
/* Compact contact and geographic service area. */
.contact-grid{grid-template-columns:1fr 1.1fr;gap:72px;padding-top:42px;padding-bottom:42px}
.contact-map{margin:0;padding:0 24px;min-height:0;border:0;background:none;display:block}
.contact-map img{width:100%;height:280px;object-fit:contain}
.contact-map figcaption{font-size:8px;letter-spacing:.12em;color:#aebba7;text-align:center;margin-top:8px;line-height:1.8}
.contact-copy .eyebrow{margin-bottom:14px}.contact-copy h2{font-size:30px;letter-spacing:-.025em;line-height:1.2;margin-bottom:12px}
.contact-lead{font-size:13px;line-height:1.7;margin-bottom:22px}
.contact-directory{margin:0;border-top:1px solid #ffffff22}
.contact-directory>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid #ffffff15;align-items:baseline}
.contact-directory dt{font-size:11px;color:#aebba7;letter-spacing:.04em}
.contact-directory dd{margin:0;min-width:0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.contact-directory a{display:inline-block;color:var(--white)}.contact-directory a:hover{color:var(--green)}
.contact-directory small{display:block;font-size:10px;color:#aebba7;margin-top:3px}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr;gap:26px;padding-top:36px;padding-bottom:30px}.contact-copy{grid-row:1}.contact-map{padding:0}.contact-map img{height:230px}.contact-copy h2{font-size:27px}.contact-directory>div{grid-template-columns:58px minmax(0,1fr);gap:12px}.contact-directory dd{font-size:14px}}

.hero .actions{gap:12px}.hero .actions .button{min-width:155px}
