/* Calm, purposeful movement; content remains visible without JavaScript.
   Hover effects only on elements that are actually clickable. */
:root{--ease-out:cubic-bezier(.22,1,.36,1)}
header{transition:background .3s ease,box-shadow .3s ease;isolation:isolate}
header.is-scrolled{background:rgba(245,244,236,.96);box-shadow:0 8px 30px #193d330b}
.main-nav a{position:relative;padding:8px 0}
.main-nav a:after{content:'';position:absolute;left:0;bottom:2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-out)}
.main-nav a:hover:after,.main-nav a:focus-visible:after,.main-nav a[aria-current]:after{transform:scaleX(1)}
.btn{transition:transform .3s var(--ease-out),background .25s ease,box-shadow .3s ease}
.btn span[aria-hidden]{display:inline-block;transition:transform .3s var(--ease-out)}
.btn:hover{background:var(--green-hover);box-shadow:0 8px 20px #193d331a;transform:translateY(-2px)}
.btn.ghost:hover{background:var(--paper);box-shadow:inset 0 0 0 1px var(--green)}
.btn.lime:hover{background:#e8f7b0}
.btn:hover span[aria-hidden]{transform:translate(3px,-3px)}
.btn:active{transform:translateY(0);box-shadow:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #7c964b;outline-offset:5px}
.photo-label{backdrop-filter:blur(12px)}
.cities a{transition:color .25s ease}.cities a:hover{color:var(--accent-strong)}
.service{transition:transform .4s var(--ease-out),box-shadow .4s ease,background .3s ease}
.service:hover{transform:translateY(-4px);box-shadow:0 18px 40px #193d3314;background:#f1f0e6}
.service-link span{display:inline-block;transition:transform .3s var(--ease-out)}
.service:hover .service-link span{transform:translateX(4px)}
.service:focus-within{box-shadow:0 0 0 3px #7c964b}
.service-link:focus-visible{outline:none}
summary{transition:color .25s ease}
summary:after{transition:transform .3s var(--ease-out)}
summary:hover{color:var(--accent-strong)}
.form input,.form select,.form textarea{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:#799546;background:white;box-shadow:0 0 0 3px #79954620}
@media(hover:none){.btn:hover,.service:hover{transform:none;box-shadow:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.btn:hover,.btn:hover span,.service:hover{transform:none}}
