html{scroll-behavior:smooth;scroll-padding-top:110px}body{overflow-x:hidden}.nav{transition:transform .3s ease}a:focus-visible,button:focus-visible,summary:focus-visible,[role=tab]:focus-visible,[role=button]:focus-visible{outline:2px solid #fa6939;outline-offset:4px}[hidden]{display:none!important}html:not(.wf-design-mode) [data-animate='stagger-children']>*{opacity:1;visibility:visible}.ph{font-style:normal}.ph-arrow-right:before{content:'→'}.ph-arrow-left:before{content:'←'}.ph-arrow-up-right:before{content:'↗'}.ph-caret-down:before{content:'⌄'}.ph-plus:before{content:'+'}.ph-x:before{content:'×'}.ph-check:before{content:'✓'}.ph-arrow-down:before{content:'↓'}.ph-envelope:before{content:'✉'}.w-tab-link{cursor:pointer}.w-tab-pane.w--tab-active{display:block}.accordion-content{height:auto!important;opacity:1!important}.testimonial-card .rich-text p{color:inherit}.project-card_image{object-fit:cover}.marquee-content{animation:marquee-scroll 45s linear infinite}.marquee:hover .marquee-content,.marquee-team:hover .marquee-content{animation-play-state:paused}@keyframes marquee-scroll{to{transform:translateX(-100%)}}#enquiry-form{display:grid;gap:20px}#enquiry-form label{display:grid;gap:8px;font-size:14px}#enquiry-form input,#enquiry-form textarea{width:100%;background:#ffffff6e;border:1px solid #d8d6d2;padding:15px;color:#1d1c1f;font:inherit;border-radius:2px}#enquiry-form input:focus,#enquiry-form textarea:focus{outline:1px solid #fa6939}#enquiry-form button{justify-self:start;cursor:pointer}#form-status{margin-top:0;min-height:20px}dialog{color:#1d1c1f;border:0;border-radius:4px;max-width:760px;width:calc(100% - 32px);padding:48px;background:#f5f5f4;max-height:85vh;overflow:auto}dialog::backdrop{background:#1d1c1f99;backdrop-filter:blur(8px)}dialog h2{margin:22px 0}dialog img{width:100%;margin-bottom:24px}.dialog-close{position:absolute;top:12px;right:18px;border:0;background:none;font-size:30px;cursor:pointer}.demo-chat{position:fixed;bottom:24px;right:24px;width:70px;height:70px;border-radius:50%;border:0;color:white;background:black;display:flex;align-items:center;justify-content:center;z-index:999;box-shadow:0 4px 12px #0003;cursor:pointer;transition:transform .2s}.demo-chat:hover{transform:scale(1.08)}.hero .h1{overflow:visible}.custom-cursor{display:none}@media(pointer:fine){.custom-cursor{display:flex}}@media(max-width:991px){.nav-menu.menu-open{display:block!important;position:absolute;left:0;right:0;top:100%;background:#f5f5f4;max-height:calc(100dvh - 100px);overflow:auto}.nav-menu.menu-open .nav-menu_container{display:flex;flex-direction:column;align-items:stretch;padding:24px}.nav-menu.menu-open .nav-link{padding:16px}.nav-menu.menu-open .nav-dropdown_overlay{display:none}.demo-chat{width:56px;height:56px;right:16px;bottom:16px}dialog{padding:35px 22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.h1-word{opacity:1!important;transform:none!important;filter:none!important}}
.calendar-demo{display:grid;grid-template-columns:1fr 1.25fr;background:#141414;color:#f5f5f4;border:1px solid #333;border-radius:12px;min-height:520px}.calendar-intro,.calendar-picker{padding:28px}.calendar-intro{border-right:1px solid #333}.calendar-intro h3{margin:36px 0 24px;font-size:30px;line-height:1.1;letter-spacing:-1px}.calendar-intro p{font-size:14px;line-height:1.8;color:#aaa}.calendar-note{font-size:11px;color:#888;line-height:1.5;margin-top:30px}.calendar-month{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}.calendar-month button,.calendar-days button,.slot-buttons button{background:none;color:inherit;border:1px solid #444;border-radius:5px;padding:9px;cursor:pointer;font:inherit}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:30px;font-size:12px}.calendar-days span{text-align:center;padding:8px 0;color:#888}.calendar-days button{padding:9px 0}.calendar-days button:hover,.calendar-days .selected{background:#f5f5f4;color:#141414}.calendar-days button:disabled{opacity:.3;cursor:default}.calendar-slots{font-size:13px;margin-top:24px}.slot-buttons{display:flex;flex-wrap:wrap;gap:8px}.slot-buttons button:hover{border-color:white}#calendar-status{font-size:12px;color:#aaa;margin-top:15px}@media(max-width:1100px){.calendar-demo{grid-template-columns:1fr}.calendar-intro{border-right:0;border-bottom:1px solid #333}.calendar-intro h3{margin-top:20px}.calendar-days{gap:8px}.calendar-intro,.calendar-picker{padding:24px}}

/* Reference Home Marquee: continuous 90-second half-track loop. */
.banner-marquee{overflow:hidden}
.banner-marquee_inner{width:max-content;flex:none;will-change:transform;animation:banner-scroll 90s linear infinite;animation-play-state:paused}
.banner-marquee_inner.is-in-view,.banner-marquee:hover .banner-marquee_inner.is-in-view{animation-play-state:running}
.banner-marquee_group{flex:none}
.service-marquee_card{flex:0 0 50.6875rem;width:50.6875rem;max-width:none}
.service-marquee_image{display:block;width:100%;object-fit:cover}
@keyframes banner-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(max-width:767px){.service-marquee_card{flex-basis:85vw;width:85vw}}
@media(prefers-reduced-motion:reduce){.banner-marquee{overflow-x:auto}.banner-marquee_inner{animation:none;transform:none}.banner-marquee_group[aria-hidden=true]{display:none}}
