/* Vector icons render consistently without relying on emoji fonts. */
.ui-arrow{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.12em;pointer-events:none}
.note-arrow .ui-arrow,.meeting-mark .ui-arrow{width:.75em;height:.75em}
:where(a,button,summary,input,textarea,select):focus-visible{outline:2px solid #fff;outline-offset:4px}
.dialog-close{min-width:44px;min-height:44px}
.brand img{height:auto}
.scroll-progress{width:100%!important;transform:scaleX(0);transform-origin:left;will-change:transform}
@media(max-width:700px){.project-overview,.visit-site,.booking-alternatives a,.booking-alternatives button{min-height:44px;display:inline-flex;align-items:center}.booking-main input,.booking-main textarea{font-size:16px}.booking-dock{padding-bottom:max(12px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.motion-enabled .reveal:not(.visible){opacity:1;transform:none}}
/* Render primary content immediately instead of delaying the largest paint. */
.motion-enabled .hero-content h1,.motion-enabled .hero-bottom{animation:none}
