/* Caring Hearts: calm, progressive-enhancement motion. */
:root{--motion-quick:220ms;--motion-settle:cubic-bezier(.22,1,.36,1)}
.reveal,.reveal.in{opacity:1;transform:none;transition:none}
.reveal.motion-pending{opacity:0}
.reveal.motion-pending:focus-within{opacity:1}
.hero__content>*{animation-duration:650ms}
.service-card,.service-card.reveal{transition:box-shadow 240ms var(--motion-settle),border-color 240ms var(--motion-settle);transform:none}
.service-card:hover,.service-card:focus-visible{transform:none;box-shadow:0 8px 20px rgb(34 54 69 / .09),0 20px 42px rgb(34 54 69 / .08)}
.service-card__img img{transition:transform 650ms var(--motion-settle)}
.service-card .link-arrow svg{transition:transform 220ms var(--motion-settle)}
.service-card:focus-visible .service-card__img img{transform:scale(1.025)}
.service-card:focus-visible .link-arrow svg{transform:translateX(4px)}
@media (hover:hover) and (pointer:fine){
  .service-card:hover .service-card__img img{transform:scale(1.025)}
  .service-card:hover .link-arrow svg{transform:translateX(4px)}
}
@media (hover:none){
  .service-card:hover .service-card__img img{transform:none}
  .service-card:active{box-shadow:0 2px 8px rgb(34 54 69 / .12)}
}
.btn{transition:background-color 220ms var(--motion-settle),color 220ms var(--motion-settle),border-color 220ms var(--motion-settle),box-shadow 220ms var(--motion-settle),transform 160ms var(--motion-settle)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:3px solid var(--color-gold);outline-offset:4px}
.nav>li>a:not(.btn),.nav>li>button{position:relative}
.nav>li>a:not(.btn)::after,.nav>li>button::after{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--motion-settle)}
.nav>li>a:hover::after,.nav>li>a:focus-visible::after,.nav>li>button:hover::after,.nav>li>button:focus-visible::after{transform:scaleX(1)}
.dropdown{transition:opacity 220ms var(--motion-settle),transform 220ms var(--motion-settle),visibility 220ms}
.mobile-nav{transition:transform 300ms var(--motion-settle),visibility 300ms}
.menu-btn{flex:0 0 48px}
.split>*{min-width:0}
.with-sidebar>*{min-width:0}
@media(max-width:420px){.btn-row .btn{max-width:100%;white-space:normal;text-align:center}.btn-row .btn span{min-width:0;overflow-wrap:anywhere}}
.stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.footer__top>*{min-width:0}
@media(max-width:420px){.footer__contact a[href^="mailto:"]{white-space:normal;overflow-wrap:anywhere}}
@media(max-width:420px){.stats{gap:8px}.stat__label{font-size:12px;letter-spacing:0;overflow-wrap:anywhere}.header .container{gap:8px}.header .brand,.mobile-nav .brand{margin-right:0}}
@media(max-width:420px){.header .brand,.mobile-nav .brand{gap:.45rem;min-width:0}.header .brand__name,.mobile-nav .brand__name{font-size:clamp(1rem,4.7vw,1.2rem)}.header .brand img,.mobile-nav .brand img{width:42px;height:42px;flex:none}.header .brand__sub,.mobile-nav .brand__sub{font-size:.65rem}}

/* Only these two approved photographs receive a camera push. */
.photo-motion-frame{overflow:hidden;border-radius:var(--radius-lg)}
.photo-motion-frame>img{transform-origin:50% 45%}
.photo-motion-active{animation:care-photo-push 4s var(--motion-settle) both}
@keyframes care-photo-push{from{transform:scale(1)}to{transform:scale(1.025)}}

/* A single fine line connects the steps; all copy remains visible. */
.care-journey{position:relative}
.care-journey>.step{opacity:1;transform:none}
.care-journey .step__num{position:relative;color:var(--color-text-muted);transition:color 350ms ease}
.journey-marker-active .step__num{color:var(--color-primary)}
.journey-marker-active .step__num::after{content:"";display:block;width:28px;height:2px;background:var(--color-gold);margin-top:10px;animation:care-marker 450ms var(--motion-settle) both}
/* Reserve the marker underline space before animation. */
.care-journey .step__num{padding-bottom:12px}
.journey-marker-active .step__num::after{position:absolute;bottom:0;margin:0}
@keyframes care-marker{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(min-width:900px){
  .care-journey{padding-top:25px}
  .care-journey::before,.care-journey::after{content:"";position:absolute;top:10px;left:calc(100% / 6);width:calc(100% * 2 / 3);height:1px;background:var(--color-surface-3)}
  .care-journey::after{background:var(--color-gold);transform:scaleX(0);transform-origin:left}
  .care-journey.journey-started::after{animation:care-line 1100ms var(--motion-settle) forwards}
  .care-journey>.step::before{content:"";position:absolute;width:9px;height:9px;top:-19px;left:calc(50% - 4px);border:2px solid var(--color-gold);border-radius:50%;background:var(--color-surface);z-index:1;transition:background-color 300ms}
  .care-journey>.journey-marker-active::before{background:var(--color-gold)}
}
@keyframes care-line{to{transform:scaleX(1)}}

.faq[open] .faq__body{animation:none}
.faq summary{transition:background-color 200ms ease,color 200ms ease}
.faq[open] summary{background-color:var(--color-primary-soft)}
.faq summary svg{transition:transform 260ms var(--motion-settle)}
.video-frame,.page-hero__img{position:relative}
.video-is-poster video{opacity:0}
.video-is-poster{background-image:var(--video-poster);background-size:cover;background-position:center}
video.motion-background{transition:opacity 180ms ease}

/* Native cross-document transitions; unsupported browsers navigate normally. */
@view-transition{navigation:auto}
/* Keep the outgoing page opaque beneath the incoming one so there is never a blank flash; the new page simply arrives. */
::view-transition-old(root){animation:none;opacity:1;mix-blend-mode:normal}
::view-transition-new(root){animation:care-page-in 280ms ease-out both;mix-blend-mode:normal}
@keyframes care-page-in{from{opacity:0}to{opacity:1}}

@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  .reveal.motion-pending{opacity:1}
  .photo-motion-active{animation:none;transform:none}
  .service-card:hover .service-card__img img,.service-card:focus-visible .service-card__img img,.service-card .link-arrow svg{transform:none}
  .care-journey::after{animation:none!important;transform:scaleX(1)}
  .journey-marker-active .step__num::after{animation:none}
  .hero__content>*{animation:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
