/* Word masks keep the final typographic footprint, including ascenders and
   Greek accents. The outer hero spans still own their original three rows. */
.normal-motion :is(h1,h2,h3,.story-title) .motion-word,
.normal-motion :is(h1,h2,h3,.story-title) .motion-word-inner{
 font:inherit!important;letter-spacing:inherit!important;line-height:inherit!important;
 color:inherit!important;max-width:none!important;white-space:nowrap!important;
 display:inline-block!important;text-wrap:initial!important
}
.normal-motion :is(h1,h2,h3,.story-title) .motion-word{
 overflow:clip;vertical-align:top;padding:.16em .015em!important;margin:-.16em -.015em!important
}
.normal-motion :is(h1,h2,h3,.story-title) .motion-word-inner{padding:0!important;margin:0!important}
.normal-motion .story-image,.normal-motion .process-visual{isolation:isolate}
/* The image can settle on entrance while pointer zoom and interrupted image
   dissolves continue independently inside it. The outside crop never moves. */
.rate-photo-reveal{width:100%;height:100%;transform-origin:50% 50%;transform:translate3d(0,0,0) scale(1)}
.story-photo-reveal{display:block;position:absolute;inset:0;transform-origin:50% 50%;transform:translate3d(0,0,0) scale(1)}
.normal-motion .process-count{transform:translate3d(0,0,0) scale(1)}

.service-story .story-link{position:relative}
.service-story .story-link:after{
 content:'';position:absolute;left:0;right:0;top:-1px;height:1px;
 background:currentColor;transform:scaleX(0);transform-origin:0 50%;
 transition:transform .5s cubic-bezier(.16,1,.3,1)
}
.faq-detail summary>svg{transition:transform .32s cubic-bezier(.22,.75,.25,1),background-color .25s ease,color .25s ease}
.faq .faq-detail[data-expanded=true]>summary>svg{background:var(--blue);color:#fff}
.faq .faq-detail[data-expanded=false]>summary>svg{background:#edf3f8;color:var(--ink)}
.service-inclusions summary{transition:color .24s ease}
.service-inclusions[data-expanded=true]>summary{color:var(--blue)}
.extra-disclosure summary{transition:background-color .25s ease}
.extra-disclosure[data-expanded=true]>summary{background:#eaf1fb}
.city-options .city-option[aria-selected=true]{transition:background-color .22s ease,color .22s ease}
@media(hover:hover) and (pointer:fine){
 .service-story:hover .story-link:after{transform:scaleX(1)}
 .service-story:hover .story-link svg{transform:translate(4px,-3px)}
 .text-link:hover svg{transform:translate(4px,-3px)}
}
.button:active{transform:scale(.985)}
@media(prefers-reduced-motion:reduce){
 .service-story .story-link:after,
 .faq-detail summary>svg,.service-inclusions summary,.extra-disclosure summary{transition:none}
}
