:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.hero{overflow:clip}
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:#ad8b53;transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}
.button{transition:background 220ms,border-color 220ms,transform 240ms var(--motion-ease),box-shadow 240ms var(--motion-ease)}
.button:active{transform:translateY(1px) scale(.98)}
.text-link{position:relative;border-bottom-color:transparent;background:linear-gradient(#ad8b53,#ad8b53) left bottom/100% 1px no-repeat;transition:background-size 300ms var(--motion-ease),color 220ms}
.nav a:not(.button){position:relative}
.nav a:not(.button)::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:#ad8b53;transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--motion-ease)}
.nav a[aria-current=page]::after{transform:scaleX(1)}
.feature-picture,.gallery button{overflow:hidden}
.feature-picture img,.gallery button img{transition:transform 650ms var(--motion-ease),filter 300ms}
.feature-picture .image-label,.gallery .image-label{transition:transform 350ms var(--motion-ease),background 250ms}
.service-card{transition:background-color 250ms}
.field input,.field textarea,.field select,.choice{transition:border-color 200ms,box-shadow 200ms,background-color 200ms}
.field input:focus,.field textarea:focus,.field select:focus{border-color:#ad8b53;box-shadow:0 0 0 3px #ad8b5314}
.choice:has(input:checked){box-shadow:0 0 0 1px #ad8b53}
.steps li{transition:border-color 250ms,color 250ms}
.button:disabled{cursor:default;opacity:.5}
@media(prefers-reduced-motion:no-preference){
 .hero-copy>.eyebrow{animation:content-enter 700ms var(--motion-ease) both}
 .hero-copy>h1{animation:content-enter 800ms 100ms var(--motion-ease) both}
 .hero-copy>p:not(.eyebrow){animation:content-enter 800ms 200ms var(--motion-ease) both}
 .hero-copy>.actions{animation:content-enter 800ms 300ms var(--motion-ease) both}
 .hero-media{animation:photo-enter 1100ms var(--motion-ease) both}
 .page-top h1{animation:content-enter 700ms var(--motion-ease) both}
 .page-top p:not(.eyebrow){animation:content-enter 700ms 120ms var(--motion-ease) both}
 .lightbox[open]{animation:dialog-enter 320ms var(--motion-ease) both}
 .lightbox[open]::backdrop{animation:backdrop-enter 220ms ease-out both}
 .form-result:not(:empty){animation:content-enter 350ms var(--motion-ease) both}
 @media(max-width:1180px){.nav.open{animation:menu-enter 280ms var(--motion-ease) both}}
 @media(hover:hover) and (pointer:fine){
  .button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 7px 18px #172d3a18}
  .button:active{transform:translateY(1px) scale(.98)}
  .nav a:not(.button):hover::after{transform:scaleX(1)}
  .text-link:hover{background-size:42% 1px;color:#8c6c3b}
  a.feature-picture:hover img,.gallery button:hover img{transform:scale(1.045)}
  a.feature-picture:hover .image-label,.gallery button:hover .image-label{transform:translateY(-4px);background:#142934d9}
  .service-card:hover{background-color:#ad8b5308}
 }
}
@keyframes content-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes photo-enter{from{opacity:.3;transform:translateX(22px)}to{opacity:1;transform:none}}
@keyframes dialog-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.hero-media img{transform:none!important}.scroll-progress{display:none}}
