
:root{--red:#c90000;--red-dark:#960000;--ink:#111318;--charcoal:#1b1e24;--grey:#676d76;--silver:#b9bcc4;--line:rgba(17,19,24,.12);--paper:#f4f4f6;--white:#fff;--radius:24px;--shadow:0 20px 55px rgba(12,14,18,.13);--container:min(1180px,calc(100% - 48px));font-family:Inter,Arial,Helvetica,sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);line-height:1.65}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}p{margin:0 0 1rem}h1,h2,h3{margin-top:0;line-height:1.08;letter-spacing:-.035em}button,input,select,textarea{font:inherit}.container{width:var(--container);margin-inline:auto}.section{padding:96px 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}.skip-link{position:fixed;left:18px;top:-80px;z-index:1000;padding:12px 16px;border-radius:10px;background:var(--ink);color:#fff}.skip-link:focus{top:18px}.eyebrow{display:flex;align-items:center;gap:11px;margin-bottom:18px;color:var(--red);font-size:.76rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.eyebrow:before{content:"";width:34px;height:2px;background:currentColor}.eyebrow.light{color:#fff}.section-title{max-width:780px;font-size:clamp(2.25rem,4.5vw,4.25rem)}.section-title.light{color:#fff}.large-copy{font-size:1.08rem;color:#4e535c}.large-copy-single{font-size:1.1rem;color:#50555e}.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:0 22px;border:1px solid transparent;border-radius:999px;font-weight:800;transition:.2s ease;cursor:pointer}.button:hover{transform:translateY(-2px)}.button.primary{color:#fff;background:linear-gradient(135deg,var(--red),var(--red-dark));box-shadow:0 12px 28px rgba(201,0,0,.25)}.button.secondary{background:var(--ink);color:#fff}.button.ghost{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(0,0,0,.12)}.light-button{background:#fff;color:var(--ink)}.text-link{display:inline-flex;margin-top:22px;color:var(--red);font-weight:800;border-bottom:1px solid currentColor}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.nav-wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand img{width:145px;height:auto}.main-nav{display:flex;align-items:center;gap:28px}.main-nav>a{position:relative;font-weight:750;font-size:.94rem}.main-nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:.2s}.main-nav>a:hover:after,.main-nav>a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.main-nav .nav-cta{padding:12px 18px;border-radius:999px;background:var(--red);color:#fff}.menu-button{display:none;background:none;border:0;padding:8px}.menu-button span:not(.sr-only){display:block;width:26px;height:2px;margin:5px;background:var(--ink)}
.home-hero{position:relative;min-height:720px;display:grid;align-items:center;color:#fff;background:url('assets/home-hero-banner.jpg') center/cover no-repeat}.home-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,10,.84) 0%,rgba(5,7,10,.62) 48%,rgba(5,7,10,.18) 100%)}.home-hero-content{position:relative;z-index:1;padding-block:92px}.home-hero h1{max-width:920px;margin-bottom:24px;font-size:clamp(3rem,6.4vw,6.5rem)}.home-hero-content>p:not(.eyebrow){max-width:820px;color:#e0e3e8;font-size:clamp(1.05rem,2vw,1.3rem)}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero-points{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:40px;color:#d7dbe0;font-size:.88rem}.hero-points span:before{content:"";display:inline-block;width:7px;height:7px;margin-right:9px;border-radius:50%;background:#ff4747}.seo-ribbon{background:#fff;border-bottom:1px solid var(--line)}.seo-ribbon .container{display:flex;flex-wrap:wrap;gap:10px;padding:18px 0}.seo-ribbon span{padding:8px 13px;border-radius:999px;background:#f0f1f3;color:#3c4149;font-size:.84rem;font-weight:700}.split-heading{display:grid;grid-template-columns:.9fr 1.1fr;gap:88px;align-items:start}.split-heading h2,.service-grid h2,.section-heading-row h2,.contact-info h2,.enquiry-form h2{font-size:clamp(2.2rem,4.5vw,4rem)}
.dark-section{color:#fff;background:linear-gradient(145deg,#17191e,#0d0f12)}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:48px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.12)}.capability-grid article{min-height:310px;padding:30px;background:#121419}.capability-grid span{display:block;margin-bottom:58px;color:#ff5a5a;font-size:.77rem;font-weight:850;letter-spacing:.14em}.capability-grid h3{font-size:1.35rem}.capability-grid p{color:#bfc4cc}.service-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.service-grid.reverse{grid-template-columns:.95fr 1.05fr}.service-image{height:560px;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow);background:#111}.service-image img{width:100%;height:100%;object-fit:cover}.tick-list{display:grid;gap:12px;padding:0;margin:24px 0 0;list-style:none}.tick-list li{position:relative;padding-left:24px}.tick-list li:before{content:"";position:absolute;left:0;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--red)}.section-heading-row{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;margin-bottom:42px}.section-heading-row h2{max-width:860px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.project-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 12px 35px rgba(10,12,16,.07);transition:.25s}.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.project-card-image{position:relative;display:block;height:270px;overflow:hidden;background:#17191e}.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project-card:hover .project-card-image img{transform:scale(1.04)}.project-card-image span{position:absolute;right:18px;bottom:18px;padding:9px 13px;border-radius:999px;color:#fff;background:rgba(15,17,21,.82);font-size:.78rem;font-weight:800}.project-card-copy{padding:24px}.project-card-copy p{margin:0 0 7px;color:var(--red);font-size:.72rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.project-card-copy h3{margin-bottom:9px;font-size:1.35rem}.project-card-copy span{color:var(--grey);font-size:.88rem}.process-section{background:#fff}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:45px}.process-grid article{padding:28px;border-left:3px solid var(--red);background:#f3f4f6}.process-grid b{color:var(--red);font-size:.78rem;letter-spacing:.13em}.process-grid h3{margin-top:44px}.process-grid p{color:var(--grey)}.cta-section{padding:80px 0;color:#fff;background:linear-gradient(120deg,var(--red-dark),var(--red),#e12a2a)}.cta-inner{display:grid;grid-template-columns:1fr auto;gap:42px;align-items:end}.cta-inner h2{max-width:900px;margin-bottom:16px;font-size:clamp(2.2rem,4.5vw,4.3rem)}.cta-inner p:not(.eyebrow){max-width:760px;color:#ffecec}
.page-photo-hero,.projects-hero,.contact-hero{position:relative;min-height:550px;display:grid;align-items:end;padding:90px 0;color:#fff;background-position:center;background-size:cover}.about-photo-hero{background-image:url('assets/about-hero.jpg');background-position:center 42%}.photo-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,10,.88),rgba(5,7,10,.32))}.page-photo-hero .container{position:relative;z-index:1}.page-photo-hero h1,.projects-hero h1,.contact-hero h1{max-width:940px;margin-bottom:22px;font-size:clamp(3rem,6vw,6rem)}.page-photo-hero .container>p:last-child,.projects-hero .container>p:last-child,.contact-hero .container>p:last-child{max-width:760px;color:#e2e5e9;font-size:1.16rem}.leadership-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:45px}.leadership-grid article{padding:38px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.04)}.role-line{width:54px;height:4px;margin-bottom:28px;background:var(--red)}.leadership-grid .role{color:#ff7777;font-size:.76rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.leadership-grid h3{font-size:2rem}.leadership-grid article>p:last-child{color:#c2c7cd}.values-section{background:#fff}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:45px}.values-grid article{padding:28px;border-top:4px solid var(--red);background:#f1f2f4}.values-grid p{color:var(--grey)}
.projects-hero{background-image:linear-gradient(90deg,rgba(8,10,13,.82),rgba(8,10,13,.26)),url('assets/projects/mother-of-mercy-the-shrine/mother-of-mercy-the-shrine-03.jpg');background-position:center}.projects-hero .container,.contact-hero .container{position:relative;z-index:1}.portfolio-intro{max-width:420px;color:var(--grey)}.all-projects{grid-template-columns:repeat(3,1fr)}
.contact-hero{background-image:linear-gradient(90deg,rgba(8,10,13,.85),rgba(8,10,13,.35)),url('assets/projects/uoj-rooftop-balcony/uoj-rooftop-balcony-01.jpg');background-position:center}.contact-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:48px;align-items:start}.contact-info{display:grid;gap:14px}.contact-info>h2{margin-bottom:20px}.contact-panel{display:grid;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff}.contact-panel span{margin-bottom:6px;color:var(--red);font-size:.72rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.contact-panel strong{font-size:1rem}.enquiry-form{padding:38px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-grid label{display:grid;gap:7px;font-size:.85rem;font-weight:800}.full-field{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fafafa;outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:rgba(201,0,0,.5);box-shadow:0 0 0 4px rgba(201,0,0,.08)}.form-help{margin:12px 0 0;color:var(--grey);font-size:.8rem}.map-section{padding:70px 0;color:#fff;background:#15171c}.map-section .container{display:flex;justify-content:space-between;gap:30px;align-items:end}.map-section h2{font-size:2.8rem}
.project-detail-hero{position:relative;min-height:570px;display:grid;align-items:end;padding:80px 0;color:#fff;background-image:var(--project-image);background-size:cover;background-position:center}.project-detail-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,10,.88),rgba(5,7,10,.18))}.project-detail-hero .container{position:relative;z-index:1}.back-link{display:inline-flex;margin-bottom:42px;color:#fff;font-weight:800}.project-detail-hero h1{max-width:960px;margin-bottom:16px;font-size:clamp(3.2rem,6vw,6.2rem)}.project-detail-hero .container>p:last-child{font-size:1.1rem;color:#dfe3e8}.project-gallery-section{background:#0d0f12}.carousel{outline:none}.carousel-viewport{position:relative;height:min(72vh,760px);overflow:hidden;border-radius:var(--radius);background:#050608;box-shadow:0 24px 70px rgba(0,0,0,.35)}.carousel-slide{position:absolute;inset:0;margin:0;opacity:0;pointer-events:none;transition:opacity .4s}.carousel-slide.active{opacity:1;pointer-events:auto}.carousel-slide img{width:100%;height:100%;object-fit:contain}.carousel-slide figcaption{position:absolute;left:18px;bottom:18px;padding:9px 13px;border-radius:999px;color:#fff;background:rgba(0,0,0,.72);font-size:.78rem}.carousel-arrow{position:absolute;top:50%;z-index:2;width:52px;height:52px;border:1px solid rgba(255,255,255,.35);border-radius:50%;color:#fff;background:rgba(0,0,0,.45);font-size:2.3rem;line-height:1;cursor:pointer;transform:translateY(-50%)}.carousel-arrow.previous{left:18px}.carousel-arrow.next{right:18px}.slide-count{position:absolute;right:18px;bottom:18px;z-index:2;padding:9px 13px;border-radius:999px;color:#fff;background:rgba(0,0,0,.72);font-size:.78rem}.carousel-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:20px}.carousel-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#646972;cursor:pointer}.carousel-dots button.active{width:28px;border-radius:99px;background:var(--red)}.project-info-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:90px}.project-info-grid h2{font-size:clamp(2.1rem,4vw,3.8rem)}.project-info-grid aside{padding:32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.project-navigation{padding:38px 0;border-block:1px solid var(--line);background:#fff}.project-navigation .container{display:grid;grid-template-columns:1fr 1fr;gap:30px}.project-navigation a{display:grid;gap:6px}.project-navigation span{color:var(--grey);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.project-navigation strong{font-size:1.05rem}.next-project{text-align:right}
.site-footer{padding:68px 0 28px;color:#c5cad1;background:#0e1013}.footer-grid{display:grid;grid-template-columns:1.45fr .75fr 1fr 1fr;gap:48px}.footer-brand img{width:160px;margin-bottom:18px}.footer-brand p{max-width:390px}.footer-grid>div:not(.footer-brand){display:grid;align-content:start;gap:9px}.footer-grid h2{margin-bottom:9px;color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}.footer-grid a:hover{color:#ff6969}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:50px;padding-top:23px;border-top:1px solid rgba(255,255,255,.1);color:#858d96;font-size:.78rem}
@media(max-width:1020px){.split-heading,.service-grid,.service-grid.reverse,.contact-layout,.project-info-grid{grid-template-columns:1fr;gap:48px}.capability-grid,.process-grid,.values-grid{grid-template-columns:repeat(2,1fr)}.project-grid,.all-projects{grid-template-columns:repeat(2,1fr)}.service-image{height:480px}.footer-grid{grid-template-columns:repeat(2,1fr)}.menu-button{display:block}.main-nav{position:absolute;top:88px;left:0;right:0;display:grid;gap:0;padding:12px 24px 24px;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-130%);opacity:0;pointer-events:none;transition:.25s}.main-nav.open{transform:translateY(0);opacity:1;pointer-events:auto}.main-nav>a{padding:14px 0;border-bottom:1px solid var(--line)}.main-nav .nav-cta{text-align:center;margin-top:10px;border:0}.main-nav>a:not(.nav-cta):after{display:none}}
@media(max-width:680px){:root{--container:min(100% - 28px,1180px);--radius:18px}.section{padding:70px 0}.nav-wrap{min-height:74px}.brand img{width:120px}.main-nav{top:74px}.home-hero{min-height:690px}.home-hero h1{font-size:clamp(2.8rem,13vw,4.6rem)}.capability-grid,.process-grid,.values-grid,.project-grid,.all-projects,.leadership-grid,.form-grid,.footer-grid,.cta-inner,.project-navigation .container{grid-template-columns:1fr}.section-heading-row{grid-template-columns:1fr;align-items:start}.project-card-image{height:245px}.service-image{height:390px}.cta-inner{align-items:start}.page-photo-hero,.projects-hero,.contact-hero,.project-detail-hero{min-height:530px;padding:62px 0}.page-photo-hero h1,.projects-hero h1,.contact-hero h1,.project-detail-hero h1{font-size:clamp(2.7rem,13vw,4.7rem)}.about-photo-hero{background-position:59% center}.carousel-viewport{height:56vh;min-height:390px}.carousel-arrow{width:44px;height:44px}.project-navigation .next-project{text-align:left}.map-section .container,.footer-bottom{flex-direction:column;align-items:flex-start}.capability-grid article{min-height:260px}.capability-grid span{margin-bottom:35px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Products page */
.products-hero{position:relative;min-height:680px;display:grid;align-items:center;overflow:hidden;color:#fff;background:linear-gradient(135deg,#121419 0%,#080a0d 100%)}
.products-hero:after{content:"";position:absolute;right:-160px;top:-180px;width:560px;height:560px;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 65px rgba(255,255,255,.025),0 0 0 130px rgba(255,255,255,.018)}
.products-hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(201,0,0,.22),transparent 42%)}
.products-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .62fr;gap:80px;align-items:center;padding-block:82px}
.products-hero h1{max-width:860px;margin-bottom:24px;font-size:clamp(3rem,6vw,6.1rem)}
.products-hero-copy>p:not(.eyebrow){max-width:780px;color:#d8dce2;font-size:1.14rem}
.brochure-cover-link{position:relative;justify-self:end;width:min(100%,430px);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:22px;background:#fff;box-shadow:0 28px 70px rgba(0,0,0,.42);transition:.25s}
.brochure-cover-link:hover{transform:translateY(-7px) rotate(-.5deg)}
.brochure-cover-link img{width:100%;aspect-ratio:1/1;object-fit:cover}
.brochure-cover-link span{position:absolute;right:16px;bottom:16px;padding:9px 14px;border-radius:999px;background:rgba(9,11,14,.84);color:#fff;font-size:.78rem;font-weight:850}
.brochure-section{background:#fff}
.brochure-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:75px;align-items:start}
.brochure-facts{display:grid;gap:14px}
.brochure-facts div{padding:25px;border-left:4px solid var(--red);background:#f1f2f4}
.brochure-facts strong,.brochure-facts span{display:block}
.brochure-facts strong{margin-bottom:5px;font-size:1.08rem}
.brochure-facts span{color:var(--grey)}
.product-range-section{background:#f1f2f4}
.product-range-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.product-range-card{position:relative;min-height:165px;display:flex;align-items:flex-end;padding:26px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(10,12,16,.05);transition:.22s}
.product-range-card:hover{transform:translateY(-5px);border-color:rgba(201,0,0,.28);box-shadow:var(--shadow)}
.product-range-card span{position:absolute;right:18px;top:12px;color:rgba(201,0,0,.11);font-size:3.2rem;font-weight:900;line-height:1}
.product-range-card h3{position:relative;z-index:1;margin:0;font-size:1.4rem}
.product-design-section .product-light-copy{color:#c7ccd4}
.product-service-panel{padding:38px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);background:rgba(255,255,255,.05)}
.product-service-panel h3{margin-bottom:24px;font-size:1.8rem}
.product-service-panel .tick-list li{color:#e2e5e9}
.product-service-panel .tick-list li:before{background:#ff5757}
@media(max-width:1020px){.products-hero-grid,.brochure-grid{grid-template-columns:1fr;gap:48px}.brochure-cover-link{justify-self:start;width:min(72%,430px)}.product-range-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.products-hero{min-height:auto}.products-hero-grid{padding-block:62px}.products-hero h1{font-size:clamp(2.7rem,13vw,4.7rem)}.brochure-cover-link{width:100%}.product-range-grid{grid-template-columns:1fr}.product-range-card{min-height:135px}}
