/* Architectural microinteractions: real links own the linework, never widget wrappers. */
.jl-site.jl-site{--jl-interaction-time:240ms;--jl-arrow-x:3px;--jl-arrow-y:-3px;--jl-link-over:var(--red)}
.jl-site.jl-site .cta{--jl-cta-pad:16px 21px;--jl-cta-gap:20px;--jl-cta-height:50px;--jl-cta-bg:var(--red);--jl-cta-fg:#fff;--jl-cta-edge:var(--red);--jl-cta-over:#b42819}
.jl-site.jl-site .cta-secondary{--jl-cta-bg:transparent;--jl-cta-fg:var(--ink);--jl-cta-edge:#a99b8e;--jl-cta-over:var(--ink);--jl-cta-height:48px}
.jl-site.jl-site :is(.dark,.espresso-section,.final-cta,.site-footer) .cta-secondary{--jl-cta-fg:var(--paper);--jl-cta-edge:#b0a394;--jl-cta-over:#49382b;color:var(--paper)}
.jl-site.jl-site :is(.dark,.espresso-section,.final-cta,.site-footer){--jl-link-over:#f7a396}
.jl-site.jl-site :is(.dark,.espresso-section,.final-cta,.site-footer) .text-link{color:var(--paper);border-color:#b0a394}
/* Elementor puts the source class on its outer Button widget. Transfer only
   the actual button surface; retain the wrapper's layout and responsive font. */
.jl-site.jl-site :is(.cta,.text-link,.nav-cta,.motion-toggle).elementor-widget-button{display:block;min-height:0;padding:0;border:0;background:none;border-radius:0;gap:0;box-shadow:none;transform:none;animation:none;transition:none}
.jl-site.jl-site :is(.cta,.text-link,.nav-cta).elementor-widget-button::before,
.jl-site.jl-site :is(.cta,.text-link,.nav-cta).elementor-widget-button::after{content:none}
.jl-site.jl-site :is(.menu-toggle,.dd-toggle).elementor-widget-button{padding:0;border:0;background:none;box-shadow:none;transform:none;animation:none;transition:none}
.jl-site.jl-site .dd-toggle .elementor-button{padding:12px 3px;border:0;border-radius:0;background:none;color:inherit;font:inherit;box-shadow:none}
.jl-site.jl-site .menu-toggle .elementor-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:1px solid #ffffff45;border-radius:0;background:transparent;color:var(--paper);box-shadow:none}
.jl-site.jl-site .menu-toggle.elementor-widget-button>.elementor-widget-container{width:100%;height:100%}
/* Elementor's intermediate wrapper must carry the toggle's height. The two
   label spans are accessible-only, so they cannot supply intrinsic height. */
.jl-site.jl-site .menu-toggle.elementor-widget-button .elementor-button-wrapper{display:flex;width:100%;height:100%;min-height:inherit}
.jl-site.jl-site :is(.cta,.text-link,.nav-cta) .elementor-button{font:inherit;letter-spacing:inherit;line-height:inherit;box-shadow:none}
.jl-site.jl-site :is(.cta,.text-link,.nav-cta) .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:inherit;min-width:0}
.jl-site.jl-site :is(.cta,.text-link,.nav-cta) .elementor-button-text{flex-grow:0;min-width:0}
.jl-site.jl-site .cta .elementor-button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--jl-cta-gap);min-height:var(--jl-cta-height);padding:var(--jl-cta-pad);color:var(--jl-cta-fg);background:var(--jl-cta-bg);border:1px solid var(--jl-cta-edge);border-radius:3px}
.jl-site.jl-site .text-link .elementor-button{display:inline-flex;align-items:center;gap:24px;padding:8px 0;border:0;border-bottom:1px solid #b0a394;border-radius:0;background:none;color:inherit;text-align:start}
.jl-site.jl-site .nav-cta .elementor-button{padding:11px 16px;border:1px solid #a49a9166;border-radius:0;background:none;color:#f5f3ef}
.jl-site.jl-site .final-cta .cta .elementor-button{min-width:240px}
.jl-site.jl-site :is(.cta,.text-link) .elementor-button::after{content:'↗';flex:none;font-size:20px;font-weight:400;line-height:1}
/* Content links stay text-like in native navigation/footer Buttons. Functional
   dropdown/menu toggles are excluded, as are all viewer and form controls. */
.jl-site.jl-site :is(.nav-desktop,.nav-mobile,.footer-col) .elementor-widget-button:where(:not(.nav-cta,.dd-toggle,.menu-toggle)) .elementor-button{padding:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;letter-spacing:inherit;text-align:start}
.jl-site.jl-site :is(.nav-desktop,.nav-desktop>.e-con-inner,.dd,.dd>.e-con-inner)>.elementor-widget-button:not(.nav-cta):not(.dd-toggle) .elementor-button{padding-block:31px}
.jl-site.jl-site .dd-menu .elementor-widget-button .elementor-button{padding:12px}
.jl-site.jl-site .nav-mobile .elementor-widget-button .elementor-button{width:100%;padding:13px 0}
.jl-site.jl-site .nav-mobile .elementor-widget-button.sub .elementor-button{padding-left:18px;font-size:12px;color:#baaa9c}
.jl-site.jl-site .nav-mobile .elementor-widget-button.active .elementor-button{color:#f09080}
.jl-site.jl-site .lang-switch .elementor-widget-button.active .elementor-button{opacity:1}
.jl-site.jl-site .footer-col a{width:fit-content;max-width:100%}
/* Two opposing drafting corners draw inside the button, without a sheen or
   moving the hit target. The existing brand background remains visible. */
.jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.nav-cta,.nav-cta .elementor-button){position:relative;isolation:isolate;transition:background-color var(--jl-interaction-time),border-color var(--jl-interaction-time),color var(--jl-interaction-time)}
.jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.nav-cta,.nav-cta .elementor-button)::before{content:'';position:absolute;inset:5px;pointer-events:none;opacity:.65;background:linear-gradient(currentColor,currentColor) left top,linear-gradient(currentColor,currentColor) left top,linear-gradient(currentColor,currentColor) right bottom,linear-gradient(currentColor,currentColor) right bottom;background-repeat:no-repeat;background-size:0 1px,1px 0,0 1px,1px 0;transition:background-size var(--jl-interaction-time) cubic-bezier(.2,.65,.25,1)}
.jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.text-link,.text-link .elementor-button)::after{transform:none;transition:transform var(--jl-interaction-time) cubic-bezier(.2,.65,.25,1)}
/* A measured baseline extends under reading/navigation links. Active nav
   indicators retain their original ::after; the new rule uses ::before. */
.jl-site.jl-site :is(a.text-link,.text-link .elementor-button){position:relative;transition:color var(--jl-interaction-time),border-color var(--jl-interaction-time)}
.jl-site.jl-site :is(.nav-desktop,.nav-mobile,.footer-col) a:where(:not(.nav-cta,.dd-toggle,.menu-toggle,.nav-cta .elementor-button,.dd-toggle .elementor-button,.menu-toggle .elementor-button)){position:relative;--jl-rule-bottom:0px;transition:color var(--jl-interaction-time)}
.jl-site.jl-site .nav-desktop a{--jl-rule-bottom:20px}
.jl-site.jl-site .dd-menu a{--jl-rule-bottom:7px}
.jl-site.jl-site .lang-switch a{--jl-rule-bottom:-3px}
.jl-site.jl-site :is(a.text-link,.text-link .elementor-button)::before,
.jl-site.jl-site :is(.nav-desktop,.nav-mobile,.footer-col) a:where(:not(.nav-cta,.dd-toggle,.menu-toggle,.nav-cta .elementor-button,.dd-toggle .elementor-button,.menu-toggle .elementor-button))::before{content:'';position:absolute;left:0;right:0;bottom:var(--jl-rule-bottom,-1px);height:1px;background:currentColor;pointer-events:none;transform:scaleX(0);transform-origin:left center;transition:transform var(--jl-interaction-time) cubic-bezier(.2,.65,.25,1)}
.jl-site.jl-site .nav-desktop .elementor-widget-button.active:not(.lang-switch .active) .elementor-button::after{content:'';position:absolute;left:0;right:0;bottom:20px;height:2px;background:var(--logo-red)}
/* Paragraph/list links (including FAQ text) keep their inline geometry. Each
   wrapped fragment paints its own baseline; service-viewer controls opt out. */
.jl-site.jl-site main :is(p,li) a:where(:not(.cta,.text-link,.elementor-button,.sh-viewer a,[role="button"])){background-image:linear-gradient(currentColor,currentColor),linear-gradient(#94704d55,#94704d55);background-position:0 100%,0 100%;background-repeat:no-repeat;background-size:0 1px,100% 1px;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size var(--jl-interaction-time),color var(--jl-interaction-time)}
/* Keyboard access gets the same complete linework and a clear focus ring. */
.jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button):focus-visible{background:var(--jl-cta-over);border-color:var(--jl-cta-over);color:#fff}
.jl-site.jl-site :is(a.nav-cta,.nav-cta .elementor-button):focus-visible{border-color:#f7a396;color:#f7a396}
.jl-site.jl-site :is(a.text-link,.text-link .elementor-button):focus-visible{color:var(--jl-link-over);border-color:var(--jl-link-over)}
.jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.nav-cta,.nav-cta .elementor-button):focus-visible::before{background-size:18px 1px,1px 12px,18px 1px,1px 12px}
.jl-site.jl-site :is(a.text-link,.text-link .elementor-button):focus-visible::before,
.jl-site.jl-site :is(.nav-desktop,.nav-mobile,.footer-col) a:focus-visible::before{transform:scaleX(1)}
.jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.text-link,.text-link .elementor-button):focus-visible::after{transform:translate(var(--jl-arrow-x),var(--jl-arrow-y))}
.jl-site.jl-site main :is(p,li) a:where(:not(.cta,.text-link,.elementor-button,.sh-viewer a,[role="button"])):focus-visible{background-size:100% 1px,100% 1px;color:var(--jl-link-over)}
@media(hover:hover) and (pointer:fine){
 .jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button):hover{background:var(--jl-cta-over);border-color:var(--jl-cta-over);color:#fff}
 .jl-site.jl-site :is(a.nav-cta,.nav-cta .elementor-button):hover{border-color:#f7a396;color:#f7a396}
 .jl-site.jl-site :is(a.text-link,.text-link .elementor-button):hover{color:var(--jl-link-over);border-color:var(--jl-link-over)}
 .jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.nav-cta,.nav-cta .elementor-button):hover::before{background-size:18px 1px,1px 12px,18px 1px,1px 12px}
 .jl-site.jl-site :is(a.text-link,.text-link .elementor-button):hover::before,.jl-site.jl-site :is(.nav-desktop,.nav-mobile,.footer-col) a:hover::before{transform:scaleX(1)}
 .jl-site.jl-site :is(a.cta,button.cta,.cta .elementor-button,a.text-link,.text-link .elementor-button):hover::after{transform:translate(var(--jl-arrow-x),var(--jl-arrow-y))}
 .jl-site.jl-site main :is(p,li) a:where(:not(.cta,.text-link,.elementor-button,.sh-viewer a,[role="button"])):hover{background-size:100% 1px,100% 1px;color:var(--jl-link-over)}
}
@media(max-width:1250px){.jl-site.jl-site .nav-cta .elementor-button{padding:10px}}
@media(max-width:1100px){.jl-site.jl-site .cta{--jl-cta-pad:14px 16px;--jl-cta-gap:15px;--jl-cta-height:47px}}
@media(max-width:760px){.jl-site.jl-site .cta{--jl-cta-height:48px;--jl-cta-gap:16px}.jl-site.jl-site .final-cta .cta .elementor-button{min-width:230px}}
@media(max-width:360px){.jl-site.jl-site .hero-actions .cta .elementor-button{width:100%}}
/* Static states keep all copy, focus indicators and the button hit area intact. */
@media(prefers-reduced-motion:reduce){.jl-site.jl-site{--jl-interaction-time:0s;--jl-arrow-x:0px;--jl-arrow-y:0px}}
.jl-site.jl-site.motion-paused,.elementor-editor-active .jl-site.jl-site,.jl-site.jl-site.elementor-editor-active{--jl-interaction-time:0s;--jl-arrow-x:0px;--jl-arrow-y:0px}
