:root{--red:#a32b23;--black:#151515;--paper:#f6f6f3;--muted:#666}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--black);font-family:Arial,"Microsoft YaHei",sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #d76a49;outline-offset:6px}.skip{position:absolute;top:-80px;padding:12px;background:white;z-index:10}.skip:focus{top:0}header{background:#080808;color:white;display:flex;align-items:center;gap:44px;padding:22px 6%;border-bottom:1px solid #333}.brand{margin-right:auto;display:flex;width:222px}.brand img{width:100%;height:auto;object-fit:contain}nav{display:flex;gap:32px;font-size:14px}nav a:hover{color:#f0a29a}.languages{display:flex;gap:8px;align-items:center;font-size:14px}.languages button{border:0;background:none;color:#aaa;cursor:pointer;padding:6px}.languages button[aria-pressed=true]{color:white;border-bottom:2px solid #c5463b}.hero{background:var(--black);color:white;display:grid;grid-template-columns:1.45fr 1fr;padding:88px 6% 86px;gap:7%;min-height:600px}.eyebrow{font-size:13px;letter-spacing:2px;font-weight:bold;color:#dedede;margin:0 0 30px}.eyebrow.dark{color:var(--red)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(44px,5.7vw,86px);line-height:1.06;letter-spacing:-3px;font-weight:600;margin-bottom:30px;white-space:pre-line}h2{font-size:clamp(34px,3.5vw,54px);line-height:1.15;letter-spacing:-1.6px;white-space:pre-line}h3{font-size:23px;line-height:1.25;letter-spacing:-.5px}.intro{max-width:500px;color:#bfbfbf;font-size:19px;line-height:1.6;margin-bottom:38px}.button{background:var(--red);color:white;display:inline-flex;align-items:center;justify-content:space-between;gap:44px;padding:15px 22px;font-weight:bold;font-size:15px}.button:hover{background:#bc382e}.hero-aside{border-left:1px solid #4d4d4d;align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding-left:13%;position:relative}.service-word{font-size:clamp(24px,3vw,45px);line-height:1.65;font-weight:800;letter-spacing:-1px;color:#f1f1ed}.accent{color:#e46f61}.hero-aside p{color:#aaa;font-size:15px;white-space:pre-line;margin:24px 0 42px}.aside-number{font-size:12px;letter-spacing:3px;color:#969696}.sectors{padding:23px 6%;background:#e9e9e5;display:flex;gap:25px;justify-content:space-between;align-items:center;flex-wrap:wrap}.sectors span{font-size:12px;letter-spacing:1.5px;color:var(--muted)}.sectors p{font-size:15px;margin:0;font-weight:bold}.section{padding:90px 6%}.about{display:grid;grid-template-columns:1fr 1.6fr;gap:8%;border-bottom:1px solid #d7d7d1}.about>div{max-width:740px}.about p:not(.eyebrow){color:#626262}.about .body-large{font-size:23px;line-height:1.6;color:var(--black)!important}.section-top{display:grid;grid-template-columns:1fr 1.6fr;gap:8%;margin-bottom:30px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ccc;border-left:1px solid #ccc}.service-grid article{padding:32px;border-right:1px solid #ccc;border-bottom:1px solid #ccc;min-height:305px}.index{display:block;color:var(--red);font-size:13px;letter-spacing:2px;margin-bottom:34px}.service-grid ul{padding-left:18px;color:#636363;font-size:15px}.service-grid li{margin:8px 0}.service-grid p{font-size:15px;color:#636363}.maintenance{background:#e9e9e5}.maintenance a{color:var(--red);font-size:15px;font-weight:bold}.contact{background:#852319;color:white;display:grid;grid-template-columns:1.4fr 1fr;gap:10%}.contact h2{font-size:clamp(38px,4.3vw,65px)}.contact p:not(.eyebrow){max-width:490px;color:#f1d6d0}.contact-details{align-self:center}.contact-name{font-weight:bold;font-size:20px;margin-bottom:12px}.contact-details>a:not(.button){display:block;font-size:clamp(19px,2.1vw,29px);margin-bottom:9px;overflow-wrap:anywhere}.hours{border-top:1px solid #b5675e;margin:30px 0 24px;padding-top:22px}.hours span{font-size:12px;letter-spacing:1.5px}.hours p{margin:7px 0}.button.light{background:white;color:#852319}.button.light:hover{background:#f5e9e4}footer{background:#101010;color:#a9a9a9;padding:27px 6%;display:flex;justify-content:space-between;gap:20px;font-size:13px}html[lang=zh] h1{letter-spacing:0;font-size:clamp(42px,5vw,72px)}html[lang=zh] h2{letter-spacing:0}html[lang=zh] .service-word{letter-spacing:2px}@media(max-width:800px){header{padding:18px 5%;gap:18px;flex-wrap:wrap}.brand{width:175px}nav{order:3;width:100%;justify-content:space-between;border-top:1px solid #333;padding-top:12px}.hero{padding:58px 5%;grid-template-columns:1fr;gap:50px;min-height:0}h1{letter-spacing:-2px}.hero-aside{border-left:0;border-top:1px solid #555;padding:24px 0 0}.service-word{display:inline;font-size:26px}.hero-aside p{margin:16px 0}.sectors{padding:24px 5%;gap:16px 30px}.sectors span{width:100%}.section{padding:60px 5%}.about,.section-top,.contact{grid-template-columns:1fr;gap:20px}.service-grid{grid-template-columns:repeat(2,1fr)}.service-grid article{padding:24px}.contact-details{padding-top:12px}.about .body-large{font-size:20px}}@media(max-width:480px){.service-grid{grid-template-columns:1fr}.service-grid article{min-height:0}.index{margin-bottom:18px}footer{flex-direction:column}.sectors p{font-size:14px}h3{font-size:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.booking-section{border-top:1px solid #ccc;background:#ecece8}.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;margin-top:30px}.booking-form label{display:flex;flex-direction:column;gap:8px;font-size:15px}.booking-form input,.booking-form select,.booking-form textarea{font:inherit;padding:13px;border:1px solid #aaa;border-radius:0;background:white;width:100%;color:#151515}.booking-form .wide{grid-column:1/-1}.booking-form .consent{display:flex;flex-direction:row;align-items:flex-start}.consent input{width:20px;flex-shrink:0;margin-top:5px}.booking-form .honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.button{border:0;cursor:pointer}.button:disabled{opacity:.55;cursor:wait}.booking-card{padding:26px;margin:24px 0;background:white;color:#151515;border:1px solid #ccc;overflow-wrap:anywhere}.booking-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px}.booking-actions a{color:#852319;text-decoration:underline}.booking-ref{font-size:13px;color:#666}.whatsapp-float{position:fixed;bottom:22px;right:22px;background:#175c38;color:white;padding:12px 20px;border:1px solid white;box-shadow:0 3px 16px #0003;z-index:8;border-radius:30px;font-weight:bold;font-size:14px}footer{padding-bottom:85px}@media(max-width:600px){.booking-form{grid-template-columns:1fr}.booking-form .wide{grid-column:auto}nav{gap:12px;font-size:13px}.booking-card{padding:18px}}
.contact-details .additional-contact{margin-top:24px;margin-bottom:6px;font-size:16px}
.photo-hero{grid-template-columns:1fr 1.15fr;gap:5%;padding-top:64px;padding-bottom:64px;align-items:center;min-height:640px}.photo-hero h1{font-size:clamp(42px,4.8vw,72px);letter-spacing:-2px;max-width:600px}.hero-project{margin:0;min-width:0}.hero-project img{width:100%;height:440px;object-fit:cover;display:block}.hero-project figcaption{border-top:3px solid var(--red);padding-top:15px;margin-top:14px;font-size:16px}.hero-project figcaption span{display:block;font-size:14px;color:#bbb}.values{padding-top:65px;background:#eeeee8}.values h2{max-width:800px}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:40px}.values-grid article{border-top:2px solid #b8b8ae;padding-top:22px}.values-grid .index{margin-bottom:18px}.values-grid p{color:#626262;font-size:16px}.values-grid h3{font-size:21px}.products{display:grid;grid-template-columns:1fr 1.6fr;gap:8%;margin-top:40px;padding:32px;background:#e9e9e5}.products .eyebrow{margin-bottom:15px}.products p:not(.eyebrow){color:#626262}.text-link{color:var(--red);font-weight:bold}.projects{background:#fff;border-top:1px solid #ddd}.project-feature{margin-top:48px}.project-heading{margin-bottom:22px}.project-heading h3{font-size:30px;margin-bottom:8px}.project-heading p{color:#636363;margin-bottom:8px}.marriott-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.marriott-gallery img{width:100%;height:auto;display:block}.marriott-gallery a,.portrait-gallery a{display:block;overflow:hidden}.parkroyal-feature{border-top:1px solid #ccc;padding-top:42px;margin-top:48px;display:grid;grid-template-columns:1fr 1.7fr;gap:40px;align-items:center}.portrait-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,250px));gap:12px;justify-content:end}.portrait-gallery img{width:100%;height:auto;display:block}.project-note{max-width:360px}.client-references{margin-top:55px;padding-top:32px;border-top:1px solid #ccc}.client-names{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 32px;font-size:20px;font-weight:600}.client-names span{padding:12px 0}.service-grid p,.service-grid ul,.booking-form label{font-size:16px}nav{gap:22px;font-size:14px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:3px}.section{scroll-margin-top:20px}html[lang=zh] .photo-hero h1{font-size:clamp(38px,4.4vw,64px);line-height:1.25}
@media(max-width:1000px){.values-grid{grid-template-columns:repeat(2,1fr)}.photo-hero{grid-template-columns:1fr 1fr}.hero-project img{height:380px}.parkroyal-feature{grid-template-columns:1fr;gap:15px}.portrait-gallery{justify-content:start}header{gap:20px}.brand{width:180px}}
@media(max-width:800px){.photo-hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:40px;gap:32px}.hero-project img{height:auto;max-height:440px;object-fit:cover}.photo-hero h1{max-width:600px}.products{grid-template-columns:1fr;gap:12px;padding:24px}.client-names{grid-template-columns:repeat(2,1fr);font-size:18px}nav{flex-wrap:wrap;justify-content:flex-start;gap:12px 22px}}
@media(max-width:480px){.values-grid{grid-template-columns:1fr;gap:20px}.marriott-gallery{grid-template-columns:1fr}.portrait-gallery{gap:8px}.project-heading h3{font-size:25px}.client-names{font-size:16px;gap:12px}.photo-hero h1{font-size:44px}.values h2{font-size:32px}}
.text-hero{grid-template-columns:1.4fr 1fr;min-height:560px}.text-hero .hero-main{max-width:740px}.scope-photo{position:relative;isolation:isolate;background:#fff;overflow:hidden}.scope-photo:before{content:"";position:absolute;inset:0;background-image:var(--scope-photo);background-size:cover;background-position:center;opacity:.5;z-index:-1}.scope-photo h3,.scope-photo ul,.scope-photo p,.scope-photo>a,.scope-photo .index{position:relative;background:rgba(255,255,255,.88);width:fit-content;max-width:100%;padding:4px 8px;color:#151515}.scope-photo ul{padding:8px 12px 8px 28px}.scope-photo .index{color:#852319}.scope-photo>a{color:#852319}.logo-carousel{overflow:hidden;width:100%;background:#fff}.logo-track{display:flex;width:max-content;animation:client-scroll 65s linear infinite}.logo-group{display:flex;flex-shrink:0;gap:20px;padding-right:20px;align-items:center}.client-logo{width:220px;height:130px;padding:15px;display:flex;align-items:center;justify-content:center;background:white}.client-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.logo-carousel:hover .logo-track,.logo-carousel:focus-within .logo-track,.logo-carousel.paused .logo-track{animation-play-state:paused}.logo-toggle{margin-top:18px;background:transparent;border:1px solid #aaa;padding:8px 16px;color:#333;cursor:pointer}.client-references{min-width:0}@keyframes client-scroll{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.logo-track{animation:none}.logo-carousel{overflow-x:auto}}@media(max-width:800px){.text-hero{grid-template-columns:1fr;min-height:0}.client-logo{width:180px;height:110px}}
header{position:sticky;top:0;z-index:20;padding:16px 4%;gap:26px}nav{gap:22px;font-size:13px;letter-spacing:.4px}.brand{width:190px}nav a[aria-current]{color:#f0a29a}.service-grid{border:0;gap:26px}.service-grid article{border:1px solid #d7d7d1;border-radius:8px;min-height:340px;box-shadow:0 5px 18px #00000006}.scope-photo:before{opacity:.5}.scope-photo h3,.scope-photo ul,.scope-photo p,.scope-photo>a,.scope-photo .index{border-radius:3px}.products{border-radius:8px}.product-showcase{margin-top:28px}.gallery-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}.gallery-tools p{margin:0;font-size:16px;color:#666}.gallery-tools button{background:white;border:1px solid #bbb;width:42px;height:42px;cursor:pointer;margin-left:8px;font-size:21px}.horizontal-gallery{display:flex!important;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px;scrollbar-color:#a32b23 #e9e9e5;scroll-behavior:smooth}.horizontal-gallery>*{flex:none;scroll-snap-align:start}.product-gallery figure{margin:0;width:240px}.product-gallery img{display:block;width:240px;height:240px;object-fit:contain;background:#f0eee9;border-radius:6px}.product-gallery figcaption{padding:12px 0;font-size:16px}.marriott-gallery a{width:340px}.marriott-gallery img{width:340px;height:255px;object-fit:contain;background:#f3f1ee}.portrait-gallery a{width:200px}.portrait-gallery img{width:200px;height:266px;object-fit:contain}.parkroyal-feature{display:block}.project-scroll{min-width:0}.careers{display:grid;grid-template-columns:1fr 1.4fr;gap:8%;background:#ecece8;border-top:1px solid #ccc}.career-email{margin:18px 0 0;overflow-wrap:anywhere}.booking-contact{margin-bottom:26px}.client-logo{padding:22px;width:240px;height:140px}.client-logo img{object-fit:contain;mix-blend-mode:normal}.dark-logo{background:#242424;border-radius:4px}.section{scroll-margin-top:95px}.client-references .logo-carousel{padding:12px 0}@media(max-width:1050px){header{flex-wrap:wrap;gap:12px}header nav{order:3;width:100%;justify-content:space-between;flex-wrap:wrap}.section{scroll-margin-top:135px}}@media(max-width:800px){.careers{grid-template-columns:1fr}.service-grid{gap:20px}.marriott-gallery a,.marriott-gallery img{width:280px}.marriott-gallery img{height:210px}.product-gallery figure,.product-gallery img{width:210px}.product-gallery img{height:210px}.section{scroll-margin-top:150px}header nav{gap:9px 15px;font-size:12px}.brand{width:165px}}@media(prefers-reduced-motion:reduce){.horizontal-gallery{scroll-behavior:auto}}
.combined-project-gallery a{width:300px;height:240px}.combined-project-gallery img{display:block;width:100%;height:100%;object-fit:contain;background:#f2f0eb}.auto-gallery{scroll-snap-type:none;scroll-behavior:auto}.gallery-pause{font-size:14px!important;width:auto!important;padding:0 12px}.project-scroll{margin-top:30px}@media(max-width:600px){.combined-project-gallery a{width:260px;height:210px}}
/* All 24 client logos arranged in three rows, moving as one strip. */
.logo-group{display:grid;grid-template-rows:repeat(3,140px);grid-auto-flow:column;grid-auto-columns:240px;gap:18px 20px;padding-right:20px}.logo-track{animation-duration:48s}.logo-group .client-logo{width:240px;height:140px}.logo-carousel:hover .logo-track{animation-play-state:running}.logo-carousel.paused .logo-track,.logo-carousel:focus-within .logo-track{animation-play-state:paused}@media(max-width:800px){.logo-group{grid-template-rows:repeat(3,105px);grid-auto-columns:180px;gap:12px 16px;padding-right:16px}.logo-group .client-logo{width:180px;height:105px;padding:16px}}
.logo-group{grid-template-rows:repeat(3,96px);grid-auto-columns:170px;gap:12px 16px;padding-right:16px}.logo-group .client-logo{width:170px;height:96px;padding:20px}.logo-track{animation-duration:40s}@media(max-width:800px){.logo-group{grid-template-rows:repeat(3,78px);grid-auto-columns:140px;gap:10px 12px;padding-right:12px}.logo-group .client-logo{width:140px;height:78px;padding:16px}}
.lighting-column{display:grid;grid-template-rows:repeat(2,auto);gap:20px;align-content:start}.lighting-gallery .lighting-column{width:240px}.lighting-gallery figure{width:240px}.lighting-gallery{align-items:stretch}@media(max-width:800px){.lighting-gallery .lighting-column,.lighting-gallery figure{width:210px}}
