/* Shared finishing touches. Map layout, geographic transforms and hit targets remain local to atlas.css. */
:root{--wf-ease:cubic-bezier(.2,.65,.3,1);--wf-focus:#aa774e;--wf-heart:#97434b}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:#d7c3a6;color:#24372e}
:is(.section-button,.wf-button,.j-button,.header-plan,.contact-primary,.city-front-actions>a,.city-closing>a){transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s;box-shadow:0 1px 0 #17382b08}
:is(.section-button,.wf-button,.j-button,.contact-primary):hover{filter:brightness(1.07)}
:is(.header-plan,.section-button,.wf-button,.j-button,.hero-primary):active{filter:brightness(.94)}
:is(.site-nav a,.footer-column a,.j-text-link,.text-link,.section-link){transition:color .2s,border-color .2s}
:is(.footer-column a,.j-text-link,.text-link,.section-link):hover{color:#a36b48}
:is(.j-city-card,.service-grid article,.nearby-grid>a){transition:border-color .2s,box-shadow .25s var(--wf-ease)}
:is(.j-city-card,.service-grid article):hover{border-color:#b6a78d}
.j-card-image img,.service-image img{filter:saturate(.93);transition:transform .6s var(--wf-ease),filter .4s}
.j-city-card:hover .j-card-image img{filter:saturate(1)}
:is(.j-kicker,.section-kicker,.city-eyebrow){line-height:1.6}
:is(.j-hero-copy>p,.section-heading>p,.city-front-copy>p,.about-copy>p){text-wrap:pretty}
:is(.form-grid input,.j-search input,.plan-copy textarea,.plan-copy select){transition:border-color .2s,background-color .2s,box-shadow .2s}
:is(.form-grid input,.j-search input,.plan-copy textarea,.plan-copy select):focus-visible{outline:2px solid var(--wf-focus);outline-offset:4px;border-color:#9d7959}
.form-grid input::placeholder{color:#78867d}
.faq summary,.j-prep summary{transition:color .2s}.faq summary:hover,.j-prep summary:hover{color:#92514a}
.wf-heart-button{color:var(--wf-heart)}
.wf-heart-icon{width:23px;height:23px;flex:0 0 23px;display:inline-block;vertical-align:middle;fill:transparent;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:fill .18s,stroke .18s}
.wf-heart-button[aria-pressed=true]>.wf-heart-icon{fill:currentColor;stroke:currentColor}
:is([data-save],[data-detail-save])>.wf-heart-icon{display:block;margin:auto}
#city-save.wf-heart-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.wf-heart-feedback{position:fixed;width:96px;height:96px;margin:-48px 0 0 -48px;z-index:10000;pointer-events:none;color:var(--wf-heart);contain:layout style;overflow:visible}
.wf-heart-feedback>.wf-heart-icon{position:absolute;left:36px;top:36px;width:24px;height:24px;stroke-width:1.5;fill:currentColor;animation:wf-heart-pop .68s var(--wf-ease) both}
.wf-heart-feedback.is-removing>.wf-heart-icon{fill:transparent;animation:wf-heart-release .43s ease-out both}
.wf-heart-ring{position:absolute;left:29px;top:29px;width:38px;height:38px;border:1px solid #ac606b88;border-radius:50%;animation:wf-heart-ring .65s ease-out both}
.is-removing .wf-heart-ring{border-style:dashed;animation-duration:.4s}
.wf-heart-particle{position:absolute;left:46px;top:46px;width:4px;height:4px;border-radius:50%;background:#b78566;animation:wf-heart-particle .65s var(--wf-ease) both;animation-delay:var(--delay,0ms)}
.wf-heart-particle:nth-of-type(2n){background:#a85762;width:3px;height:3px}
@keyframes wf-heart-pop{0%{transform:scale(.8);opacity:.2}28%{transform:translateY(-4px) scale(1.4) rotate(-7deg);opacity:1}56%{transform:translateY(0) scale(.94) rotate(3deg);opacity:1}80%{transform:scale(1.04);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes wf-heart-release{0%{transform:scale(1.2);opacity:.85}60%{transform:scale(.78);opacity:.65}100%{transform:scale(.9);opacity:0}}
@keyframes wf-heart-ring{0%{transform:scale(.45);opacity:0}25%{opacity:.8}100%{transform:scale(1.7);opacity:0}}
@keyframes wf-heart-particle{0%,12%{transform:translate(0,0) scale(.4);opacity:0}25%{opacity:.85}100%{transform:translate(var(--dx),var(--dy)) scale(.4);opacity:0}}
@media(hover:hover){.wf-heart-button:hover{background-color:#fbf5ef}.wf-heart-button:hover>.wf-heart-icon{stroke-width:1.7}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.wf-heart-icon,.wf-heart-feedback>*{animation:none!important;transition:none!important}.wf-heart-feedback{display:none!important}:is(.section-button,.wf-button,.j-button,.header-plan,.contact-primary,.city-front-actions>a,.city-closing>a,.site-nav a,.footer-column a,.j-text-link,.text-link,.section-link,.j-city-card,.service-grid article,.nearby-grid>a,.j-card-image img,.service-image img,.form-grid input,.j-search input,.faq summary,.j-prep summary){transition:none!important}}
