/* One motion language: architectural reveals, quiet depth and responsive controls. */
:root{--base:#fff;--motion-ease:cubic-bezier(.22,1,.36,1);--motion-short:240ms;--motion-long:760ms}
.brand{width:184px;background:#fff;border-radius:2px}.brand img{width:100%;height:auto}:root[data-theme=dark] .brand img{filter:none}.footer-brand .brand{width:230px}
.header-inner{min-height:92px}.reading-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;overflow:hidden}.reading-progress i{display:block;height:100%;background:var(--bronze);transform:scaleX(var(--read-progress,0));transform-origin:left}
.headline-line{display:block;overflow:clip;padding-bottom:.09em;margin-bottom:-.09em}.headline-line>span{display:block;transform-origin:left bottom}
:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .headline-line>span{animation:headline-rise 480ms var(--motion-ease) both}
:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .headline-line:nth-child(2)>span{animation-delay:45ms}
:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .hero-meta,:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .breadcrumb{animation:quiet-arrival 350ms var(--motion-ease) both}
:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .intro-side,:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .page-hero-grid>p{animation:quiet-arrival 420ms 60ms var(--motion-ease) both}
:root[data-motion=on]:not([data-native-entry]):not([data-fallback-entry]) .hero-image{animation:interior-unveil 500ms 60ms var(--motion-ease) both}
.hero-image>img{transform:translate3d(0,var(--hero-shift,0px),0) scale(1.055);transform-origin:center;backface-visibility:hidden}
.hero-image{--hero-shift:0px}.hero-image:focus-within{outline-offset:7px}
.detail-pin{min-width:40px;min-height:40px}.image-caption{align-items:center}
.section-head,.step,.registration-layout,.enquiry-band,.company-story>div,.capabilities-home>div:first-child{backface-visibility:hidden}
.footer-bottom{align-items:center;flex-wrap:wrap;padding-block:16px;gap:8px 25px}.motion-toggle{display:inline-flex;align-items:center;gap:8px;min-height:40px;border:0;background:none;color:var(--muted);font:inherit;padding:8px 4px}.motion-toggle:hover{color:var(--ink)}.motion-status{display:block;width:7px;height:7px;border-radius:50%;background:var(--forest);box-shadow:0 0 0 3px var(--soft)}:root[data-motion=off] .motion-status{background:var(--muted);box-shadow:none}.motion-toggle:disabled{opacity:.75}
:root[data-motion=off] .hero-image>img{transform:none}
:root[data-motion=off]{scroll-behavior:auto!important}
:root[data-motion=off] *, :root[data-motion=off] *:before, :root[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@keyframes headline-rise{from{transform:translate3d(0,108%,0) rotate(2deg);opacity:.25}to{transform:none;opacity:1}}
@keyframes quiet-arrival{from{transform:translate3d(0,18px,0);opacity:0}to{transform:none;opacity:1}}
@keyframes interior-unveil{from{clip-path:inset(8% 0 0 0 round 5px);opacity:.45;transform:translateY(18px)}to{clip-path:inset(0 round 5px);opacity:1;transform:none}}
@media(max-width:1199px){.brand{width:165px}.primary-navigation{gap:24px}}
@media(max-width:959px){.header-inner{min-height:82px}.brand{width:166px}.hero-image>img{transform:translate3d(0,var(--hero-shift,0px),0) scale(1.035)}}
@media(max-width:639px){.header-inner{min-height:76px}.header-inner>.brand{width:145px}.footer-brand .brand{width:205px}.hero-image>img{transform:none}.detail-pin{min-width:40px;min-height:40px}.detail-pin[data-detail=finishes]{top:43%}.detail-pin[data-detail=joinery]{top:28%}.footer-bottom{justify-content:space-between}.motion-toggle{font-size:10px}.footer-bottom>span:last-child{display:none}.headline-line{overflow:clip}}
@media(max-width:380px){.header-inner>.brand{width:128px}.header-inner{gap:4px}.header-actions{gap:1px}.header-actions .button{font-size:9px;padding:9px 7px}.theme-toggle,.nav-toggle{width:25px}.hero-meta .overline{font-size:11px}}
@media(prefers-reduced-motion:reduce){.hero-image>img{transform:none}.headline-line>span{transform:none!important;opacity:1!important}.reading-progress{display:none}html{scroll-behavior:auto}}

/* Keep layouts and controls usable on narrow and short viewports. */
.footer-main{grid-template-columns:1.2fr .9fr 1fr 1.1fr;gap:32px}.footer-brand .brand{width:min(230px,100%)}.footer-col{min-width:0;overflow-wrap:anywhere}.footer-business-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:20px;max-width:29ch}
.mobile-profile-link{display:none}
.hero-intro>*,.page-hero-grid>*,.contact-layout>*,.footer-main>*,.field-grid>*{min-width:0}
@media(max-width:959px){
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
  .theme-toggle,.nav-toggle{width:44px;height:44px;flex:none}
  .primary-navigation{max-height:calc(100vh - 83px);max-height:calc(100dvh - 83px);overflow-y:auto;overscroll-behavior:contain}
  .field input,.field select,.field textarea,.email-preview textarea{font-size:16px}
  .primary-navigation a{min-height:44px}
}
@media(max-width:639px){
  .footer-main{gap:28px 22px}.footer-renovation{grid-column:1/-1}.footer-business-note{font-size:11px;max-width:42ch}
  .header-actions{gap:4px}.header-inner{gap:8px}
  .primary-navigation{max-height:calc(100vh - 77px);max-height:calc(100dvh - 77px)}
  .page-hero h1{font-size:clamp(34px,9.7vw,47px)}
  .headline-line{overflow-wrap:anywhere}
  .detail-pin{min-width:44px;min-height:44px}
}
@media(max-width:479px){
  .header-actions>.button{display:none}
  .primary-navigation .mobile-profile-link{display:block;border-top:1px solid var(--line);margin-top:5px}
}
@media(max-width:380px){.detail-pin[data-detail=finishes]{top:35%}}
