/* Shared, lightweight motion accents. No layout-changing hover effects. */
.site-header{transition:box-shadow .35s ease,background .35s ease}
.site-header.has-scrolled{box-shadow:0 8px 28px #0d314810;background:#fffffff9}
.header-inner nav>a:not(.button):before{content:'';position:absolute;left:0;bottom:10px;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.header-inner nav>a:not(.button):hover:before,.header-inner nav>a:not(.button):focus-visible:before{transform:scaleX(1)}
.button{position:relative;isolation:isolate;overflow:hidden;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.button:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#ffffff26 48%,transparent 72%);transform:translateX(-120%);transition:transform .7s ease}
.button:hover:after{transform:translateX(120%)}
.button>.icon{transition:transform .25s ease}
.button:hover>.icon{transform:translateX(4px)}
.button:active{transform:translateY(0) scale(.98)}
.service-card,.resource-card,.value-card{transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease,border-color .35s ease}
.service-card .icon-box,.value-card .icon-box{transition:transform .4s cubic-bezier(.2,.75,.25,1),background .3s ease,box-shadow .3s ease}
.card-link>.icon{transition:transform .3s ease}
.service-card:hover .card-link>.icon,.resource-card:hover .card-link>.icon{transform:translateX(4px)}
.photo-frame .family-photo,.about-image .family-photo{transition:transform 1.2s cubic-bezier(.2,.6,.3,1)}
.resource-art>.icon{transition:transform .55s cubic-bezier(.2,.75,.25,1)}
.resource-art{transition:background .4s ease}
.contact-method .icon-box{transition:transform .3s ease,background .3s ease}
.faq-list summary .icon{transition:transform .28s ease,color .28s ease}
.faq-list summary:hover{color:var(--blue)}
.field input,.field select,.field textarea{transition:border-color .2s ease,box-shadow .2s ease}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 4px #2876b10c}
.cta-panel{isolation:isolate}
.cta-panel:before{content:'';position:absolute;pointer-events:none;z-index:-1;width:280px;height:280px;right:-90px;top:-150px;border-radius:50%;background:radial-gradient(circle,#52bedb26,transparent 68%);transition:transform 1s ease,opacity 1s ease;opacity:.6}
.cta-panel:hover:before{transform:translate(-60px,70px) scale(1.3);opacity:1}
.footer-grid a:not(.brand){transition:color .2s ease,transform .2s ease}
@media(hover:hover) and (pointer:fine){
 .primary:hover{box-shadow:0 10px 25px #2876b130}
 .service-card:hover{transform:translateY(-7px);box-shadow:0 16px 35px #10375012}
 .service-card:hover .icon-box,.value-card:hover .icon-box{transform:translateY(-3px) rotate(-6deg);box-shadow:0 6px 15px #1037500b}
 .resource-card:hover{transform:translateY(-6px);box-shadow:0 16px 35px #1037500e}
 .resource-card:hover .resource-art>.icon{transform:scale(1.12) rotate(-7deg)}
 .photo-frame:hover .family-photo,.about-image:hover .family-photo{transform:scale(1.035)}
 .contact-method:hover .icon-box{transform:rotate(-6deg);background:#deeff8}
 .footer-grid a:not(.brand):hover{transform:translateX(3px)}
}
@media(hover:none){.button:hover,.service-card:hover,.resource-card:hover{transform:none}.button:after{display:none}}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .button:hover,.button:active,.service-card:hover,.resource-card:hover,.service-card:hover .icon-box,.value-card:hover .icon-box,.resource-card:hover .resource-art>.icon,.photo-frame:hover .family-photo,.about-image:hover .family-photo,.contact-method:hover .icon-box,.footer-grid a:not(.brand):hover{transform:none!important}
 .button:after,.cta-panel:before{display:none}
}
