/* Shared site finish. Cards and functional widgets retain their own surfaces. */
body.jpsp-polish{--jp-site-background:#ffede6;--jp-focus:#744693;background-color:var(--jp-site-background)!important}
body.jpsp-polish #page,body.jpsp-polish #content,body.jpsp-polish #masthead,
body.jpsp-polish #masthead .ast-above-header-bar,body.jpsp-polish #masthead .ast-primary-header-bar,
body.jpsp-polish #masthead .ast-below-header-bar,
body.jpsp-polish.jpsp-view .site-content,body.jpsp-polish.jp-stock-catalog #content{background-color:var(--jp-site-background)!important}
/* Keep icon placement independent of the generic step-number span styles. */
body.jpsp-polish .jpsp-page .jpsp-icon{display:inline-flex;align-items:center;justify-content:center}
body.jpsp-polish .jpsp-how .jp-step-grid .jpsp-icon{display:flex;width:44px;height:44px;position:relative;top:auto;left:auto;right:auto;align-items:center;justify-content:center;margin:0 0 16px;background:transparent;box-shadow:none;border:0;border-radius:0;padding:0}
body.jpsp-polish .jpsp-how .jp-step-grid .jpsp-icon svg{display:block;width:36px;height:36px;flex:none;transform:none;position:static}
/* Button feedback, without moving whole Elementor containers. */
body.jpsp-polish :where(main,#primary,.jpsp-page) :is(button:not([disabled]),a.button,.jpsp-button,input[type=submit]){transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease}
body.jpsp-polish :where(main,#primary,.jpsp-page) :is(button:not([disabled]),a.button,.jpsp-button,input[type=submit]):active{filter:brightness(.94)}
body.jpsp-polish :where(main,#primary) :is(input:not([type=hidden]):not([type=radio]):not([type=checkbox]),textarea,select){transition:border-color .18s ease,box-shadow .18s ease}
body.jpsp-polish :where(main,#primary) :is(input,textarea,select):focus-visible{outline:2px solid var(--jp-focus);outline-offset:3px;box-shadow:0 0 0 4px #74469312}
body.jpsp-polish :is(a,button,input[type=submit]):focus-visible{outline:2px solid var(--jp-focus);outline-offset:4px}
body.jpsp-polish .woocommerce-invalid :is(input,select,textarea){border-color:#b32636!important}
body.jpsp-polish .woocommerce-validated :is(input,select,textarea){border-color:#537d62}
body.jpsp-polish :is(button[disabled],input[type=submit][disabled],.button.disabled){cursor:not-allowed;filter:saturate(.55)}
body.jpsp-polish .woocommerce .button.loading{cursor:progress}
/* Menu underline uses a background so Astra's submenu arrow remains intact. */
body.jpsp-polish #masthead .main-header-menu>.menu-item>.menu-link{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:center calc(100% - 8px);background-size:0 2px;transition:color .18s ease,background-size .18s ease}
body.jpsp-polish #masthead .main-header-menu>.current-menu-item>.menu-link{background-size:calc(100% - 24px) 2px}
body.jpsp-polish :is(.jpsp-page .jp-card,.jpsp-page .jpsp-pillars>article,.jpsp-page .jpsp-contact-paths>article,.woocommerce ul.products li.product){transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
@media(hover:hover) and (pointer:fine){
 body.jpsp-polish :where(main,#primary,.jpsp-page) :is(button:not([disabled]),a.button,.jpsp-button,input[type=submit]):hover{box-shadow:0 5px 14px #49325820}
 body.jpsp-polish #masthead .main-header-menu>.menu-item>.menu-link:hover{background-size:calc(100% - 24px) 2px}
 body.jpsp-polish :is(.jpsp-page .jp-card,.jpsp-page .jpsp-pillars>article,.jpsp-page .jpsp-contact-paths>article,.woocommerce ul.products li.product):hover{transform:translateY(-3px);border-color:#cdb6dd;box-shadow:0 10px 26px #49325812}
}
@media(max-width:600px){
 body.jpsp-polish .jpsp-how .jp-step-grid .jpsp-icon{position:absolute;left:18px;top:24px;margin:0;width:44px;height:44px}
 body.jpsp-polish .jpsp-how .jp-step-grid .jpsp-icon svg{width:34px;height:34px}
}
@media(prefers-reduced-motion:reduce){
 body.jpsp-polish :is(.jpsp-page .jp-card,.jpsp-page .jpsp-pillars>article,.jpsp-page .jpsp-contact-paths>article,.woocommerce ul.products li.product){transform:none!important;transition:none!important}
 body.jpsp-polish :is(a,button,input,select,textarea){transition:none!important}
}
/* Contact's legacy outer Elementor section has its own opaque white surface. */
body.jpsp-polish.jpsp-view-contact .elementor-8388>.elementor-element-4fbfe44{background-color:transparent!important}
