/* Motion enhances visible content; nothing depends on animation to be readable. */
.button,.nav-cta,.step-button,.menu-toggle{position:relative;overflow:hidden;isolation:isolate;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease}
.button:active,.nav-cta:active,.menu-toggle:active{transform:scale(.97)}
.button .arrow,.button-link span,.step-button .arrow{transition:transform .35s cubic-bezier(.22,1,.36,1)}
.button:hover .arrow,.button:focus-visible .arrow,.step-button:hover .arrow{transform:translate(4px,-4px)}
.button-link:hover span{transform:translateY(4px)}
.button-primary:hover,.nav-cta:hover{box-shadow:0 8px 24px #0b14532b}
.hero .button-primary:hover,.button-contact:hover{box-shadow:0 8px 28px #e5670055}
.tap-ripple{position:absolute;z-index:-1;width:22px;height:22px;pointer-events:none;border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%);animation:peps-ripple .65s ease-out forwards}
@keyframes peps-ripple{0%{opacity:.2;transform:translate(-50%,-50%) scale(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(35)}}
#nav a{position:relative}#nav a:not(.nav-cta):after{content:'';position:absolute;bottom:-7px;left:0;right:0;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
#nav a:not(.nav-cta):hover:after,#nav a[aria-current]:not(.nav-cta):after{transform:scaleX(1)}
#nav a[aria-current]:not(.nav-cta){color:var(--blue);font-weight:600}
.step-button{transition:background .3s ease,color .3s ease,box-shadow .3s ease,transform .3s ease}
.step-button:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--blue);opacity:0;transform:translateX(-100%);transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .4s ease}
.step-button[data-step='1']:before{background:var(--green)}.step-button[data-step='2']:before{background:var(--orange)}
.step-button[aria-pressed='true']:before{opacity:.07;transform:translateX(0)}
.step-button[aria-pressed='true'] .arrow{transform:rotate(45deg)}
.step-button:hover strong{transform:translateX(5px)}.step-button strong{transition:transform .3s ease}
.method-panel{transition:border-color .35s ease,box-shadow .35s ease}.method-panel:hover{box-shadow:0 15px 35px #0b14530a}
.offer-card,.project-card{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease}
.offer-card:hover,.offer-card:focus-within{transform:translateY(-8px);box-shadow:0 20px 40px #0002}
.project-card:hover,.project-card:focus-within{transform:translateY(-5px);box-shadow:0 18px 38px #0b145314}
.project-featured{overflow:hidden}.project-featured>img{transition:transform .8s cubic-bezier(.22,1,.36,1)}.project-featured:hover>img{transform:scale(1.025)}
.project-detail summary,.faq-list summary{transition:color .25s ease}.project-detail summary:hover,.faq-list summary:hover{color:#994200}
.faq-list summary:after{transition:transform .3s ease}.faq-list details[open] summary:after{transform:rotate(180deg)}
.form-field input,.form-field textarea,.form-field select{transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--green);box-shadow:0 0 0 3px #49ae491a}
.top-link{transition:transform .25s ease,background .25s ease}.top-link:hover{transform:translateY(-5px);background:var(--beige)}
.hero-photo{animation:peps-hero-photo 1.6s cubic-bezier(.22,1,.36,1) both}
.hero-copy>.eyebrow{animation:peps-rise .7s .05s both}.hero-copy>h1{animation:peps-rise .85s .15s both}.hero-intro{animation:peps-rise .85s .28s both}.hero-actions{animation:peps-rise .85s .4s both}.hero-bottom{animation:peps-rise .85s .5s both}
@keyframes peps-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes peps-hero-photo{from{opacity:.5;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
.reveal-in{animation:peps-rise .75s var(--reveal-delay,0ms) cubic-bezier(.22,1,.36,1) both}
@media(max-width:800px){#nav.open{animation:peps-menu .25s ease both}#nav a:not(.nav-cta):after{bottom:7px;right:auto;width:28px}.offer-card:hover,.project-card:hover{transform:none;box-shadow:none}}
@keyframes peps-menu{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@media(hover:none){.step-button:hover strong{transform:none}.project-featured:hover>img{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.tap-ripple{display:none}}
