/* Motion enhances the page; reading and contacting Bob's never depends on it. */
@keyframes menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.nav nav.open{animation:menu-enter .22s ease-out}
[hidden]{display:none!important}.reading-progress{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--yellow);transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}
.service-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-10px 0 26px}.service-filters button{min-height:44px;padding:10px 18px;border:1px solid #b9c3b9;background:transparent;color:var(--ink);border-radius:30px;font:600 11px 'DM Sans',Arial,sans-serif;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.service-filters button:hover{background:#e6e9df}.service-filters button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.filter-status{font-size:10px;color:var(--muted);margin-left:auto}
.service{transition:background .25s,box-shadow .25s,transform .25s}.service-selected{box-shadow:inset 0 3px 0 var(--yellow);background:#eeeee3}.service-icon,.service-link b,.button span,.nav-contact span{transition:transform .3s}.service:hover .service-icon{transform:translateY(-4px)}.service:hover .service-link b,.button:hover span,.nav-contact:hover span{transform:translate(3px,-3px)}.service-link{position:relative}.service-link:after{content:'';position:absolute;bottom:-8px;left:0;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s}.service:hover .service-link:after{transform:scaleX(1)}nav a:not(.nav-contact){position:relative}nav a[aria-current=location]:not(.nav-contact):after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:#947600}.nav-contact[aria-current=location]{box-shadow:inset 0 -3px 0 var(--yellow)}
.request-progress-label{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin:20px 0 6px}.request-meter{height:3px;background:#d5dbce;margin-bottom:23px;overflow:hidden}.request-meter span{display:block;height:100%;width:0;background:#7a8f51;transition:width .25s}.service-context{font-size:11px;color:#465847;margin:0 0 15px;line-height:1.6}.service-context:empty{display:none}input,select,textarea{transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#7c8b72;box-shadow:0 0 0 3px #dce3d0;outline-offset:2px}
.faq{border-top:1px solid var(--border);display:grid;grid-template-columns:.85fr 1.15fr;gap:10%;padding-top:75px;padding-bottom:85px}.faq-heading>p:not(.eyebrow){font-size:14px;color:var(--muted)}.faq-list details{border-bottom:1px solid #cdd3c8}.faq-list details:first-child{border-top:1px solid #cdd3c8}.faq-list summary{min-height:64px;padding:21px 35px 21px 0;font-size:14px;font-weight:600;cursor:pointer;list-style:none;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:2px;top:16px;font-size:25px;font-weight:400;transition:transform .25s}.faq-list details[open] summary:after{transform:rotate(45deg)}.faq-list p{font-size:13px;color:var(--muted);line-height:1.85;padding-right:30px;margin:0 0 23px}.faq-list a{text-decoration:underline;text-underline-offset:3px}.faq-list summary:focus-visible{outline:3px solid #a97500;outline-offset:2px}
.back-top{position:fixed;right:22px;bottom:25px;z-index:25;border:1px solid #e4e9df;background:var(--navy);color:var(--yellow);height:46px;width:46px;border-radius:50%;box-shadow:0 4px 16px #142b3826;cursor:pointer;font-size:22px;transition:transform .2s,background .2s}.back-top:hover{transform:translateY(-4px);background:#234451}
@media(hover:hover) and (pointer:fine){a.service:hover{transform:translateY(-3px);box-shadow:0 9px 20px #142b380d;z-index:1}.hero-photo img{transition:filter .5s}.hero-photo:hover img{filter:brightness(1.06)}}
@media(max-width:760px){.faq{grid-template-columns:1fr;gap:20px;padding-top:55px;padding-bottom:55px}.service-filters{gap:7px;margin:0 0 23px}.service-filters button{font-size:10px;padding:10px 14px}.filter-status{width:100%;margin:3px 0 0}.back-top{bottom:calc(68px + env(safe-area-inset-bottom,0px));right:16px;width:44px;height:44px}nav a[aria-current=location]:not(.nav-contact):after{bottom:0}.faq-list summary{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.service:hover,.service-icon,.service-link b,.button span,.nav-contact span,.back-top:hover{transform:none!important}}
