/* Shared feedback; no resting geometry, content, or brand colors are changed. */
body[data-sp-motion] .sp-arrived,
body[data-sp-motion] .connect-card{animation:none}
:where(.button,.connect-signin,.menubtn,.inline-link,.email-link){transition:background-color 210ms ease,border-color 210ms ease,box-shadow 210ms ease,transform 210ms ease,color 180ms ease}
:where(.services>article,.price-card,.principles-grid>article,.resource-guides>article,.contact-options>article,.service-hero-card){transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease}
body :is(.services>article,.price-card,.principles-grid>article,.resource-guides>article,.contact-options>article,.service-hero-card):focus-within{border-color:#a8935b;box-shadow:0 12px 28px #062e2614}
body :is(main,.header,footer) :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #8b6d2f;outline-offset:5px}
body .header :is(a,button):focus-visible,body .hero :is(a,button):focus-visible,body .closing :is(a,button):focus-visible{outline-color:#e6bf70}
.sp-arrow{transition:transform 200ms ease}
.inline-link{transition:text-decoration-color 200ms ease,color 200ms ease;text-decoration-thickness:1px}
.inline-link:focus-visible .sp-arrow{transform:translateX(3px)}
.header nav>a:not(.button):not(.connect-signin){position:relative;text-decoration:none}
.header nav>a:not(.button):not(.connect-signin)::after{content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 200ms ease}
.header nav>a[aria-current=page]::after,.header nav>a:focus-visible::after{transform:scaleX(1)}
:where(.button,.connect-signin,.menubtn):active{transform:translateY(1px);box-shadow:0 2px 6px #062e2614}
.service-hero-card:hover,.connect-card:hover,.connect-card:focus-within{transform:none}
@media(hover:hover) and (pointer:fine){
 body :is(.services>article,.price-card,.principles-grid>article,.resource-guides>article,.contact-options>article,.service-hero-card):hover{transform:translateY(-4px);border-color:#a8935b;box-shadow:0 14px 32px #062e2614}
 .home-page .services article:hover,.home-page .service-hero-card:hover,.home-page .price-card:hover{transform:translateY(-4px)}
 .button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #062e2624}
 .button:active{transform:translateY(1px)}
 :where(a,button):hover>.sp-arrow{transform:translateX(3px)}
 .header nav>a:hover::after{transform:scaleX(1)}
 .inline-link:hover{color:#17604a;text-decoration-thickness:1px;text-decoration-color:#a8935b}
 .hero .inline-link:hover,.closing .inline-link:hover{color:#e6bf70}
}
/* The existing process list remains a readable list; its line carries no information. */
.sp-process{position:relative;isolation:isolate}
.sp-process::before,.sp-process::after{content:'';position:absolute;pointer-events:none;z-index:-1;left:var(--sp-line-start,16px);right:var(--sp-line-end,33%);top:16px;height:1px;background:var(--line)}
.sp-process::after{background:#a8935b;transform:scaleX(var(--sp-progress,0));transform-origin:left}
.sp-process li>span{position:relative;background:var(--paper);transition:background-color 220ms ease,border-color 220ms ease,color 220ms ease,box-shadow 220ms ease}
.sp-process li.sp-step-active>span{background:var(--dark);color:var(--paper);border-color:var(--dark);box-shadow:0 0 0 4px var(--paper)}
/* On desktop the connector uses the existing gap instead of crossing body text. */
.sp-process[data-direction=horizontal]::before,.sp-process[data-direction=horizontal]::after{top:-14px;left:var(--sp-line-start,16px);right:var(--sp-line-end,33%)}
.sp-process[data-direction=vertical]::before,.sp-process[data-direction=vertical]::after{left:16px;right:auto;top:16px;bottom:var(--sp-line-bottom,48px);width:1px;height:auto}
.sp-process[data-direction=vertical]::after{transform:scaleY(var(--sp-progress,0));transform-origin:top}
@media(max-width:1100px) and (prefers-reduced-motion:no-preference){
 .header nav.open{animation:sp-nav-open 180ms ease-out}
 @keyframes sp-nav-open{from{opacity:.5;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 :where(.button,.connect-signin,.menubtn,.inline-link,.email-link,.sp-arrow,.services>article,.price-card,.principles-grid>article,.resource-guides>article,.contact-options>article,.service-hero-card,.connect-card,.header nav>a,.steps li>span){transition:none!important;animation:none!important;transform:none!important}
 .header nav>a::after{transition:none!important}
 .sp-process::before,.sp-process::after{display:none}
}

@media(prefers-reduced-motion:no-preference){
 .about-faq .faq summary::after{transition:color 220ms ease}
 .about-faq .faq details[open] summary::after{color:#8b6d2f}
}
