:root{--control-ease:cubic-bezier(.2,.7,.3,1)}
/* Labels stay readable; the small arrow has a quick, contained movement. */
html .button[data-motion-button]{--motion-tile-size:40px;--motion-arrow-size:24px;--motion-tile-fill:var(--brand-carbon);--motion-arrow-ink:var(--brand-paper)}
html .button[data-motion-button]::after{content:none}
.motion-label-mask,.motion-label-track{display:block;min-width:0;line-height:inherit}
.motion-label-copy{display:none}
.motion-button-tile{position:relative;display:grid;place-items:center;flex:0 0 var(--motion-tile-size);width:var(--motion-tile-size);height:var(--motion-tile-size);overflow:hidden;isolation:isolate;color:var(--motion-arrow-ink);pointer-events:none}
.motion-tile-background{position:absolute;inset:0;z-index:-1;background:var(--motion-tile-fill)}
.motion-arrow{position:absolute;display:block;width:var(--motion-arrow-size);height:var(--motion-arrow-size);transition:transform .16s var(--control-ease)}
.motion-arrow-out{transform:translate(0,0)}.motion-arrow-in{transform:translate(-150%,150%)}
.button:is(:hover,:focus-visible) .motion-arrow-out{transform:translate(150%,-150%)}
.button:is(:hover,:focus-visible) .motion-arrow-in{transform:translate(0,0)}
html .header .button[data-motion-button]{--motion-tile-size:32px}
html .contact-layout #contact-form .button[data-motion-button]{--motion-tile-size:36px}
.desktop-nav>a,.mobile-nav>a{position:relative;isolation:isolate}
.desktop-nav>a::after,.mobile-nav>a::after{content:none}
.desktop-nav>a::before,.mobile-nav>a::before{content:"";position:absolute;z-index:-1;inset:3px -6px;background:var(--brand-acid);transform:scaleX(0);transform-origin:left;transition:transform .16s var(--control-ease)}
.motion-menu-label{position:relative;display:inline-block}
.desktop-nav>a:is(:hover,:focus-visible)::before,.mobile-nav>a:is(:hover,:focus-visible)::before{transform:scaleX(1)}
.desktop-nav>a:is(:hover,:focus-visible),.mobile-nav>a:is(:hover,:focus-visible){color:var(--brand-carbon)}
.mobile-nav>a{padding-left:12px}.mobile-nav>a::before{inset:0}
/* Language and footer rows share a fast wipe and arriving pixel arrow. */
.cj-footer-nav-links>a,.language-menu a{position:relative;isolation:isolate;overflow:hidden;transition:color .16s}
.cj-footer-nav-links>a::before,.language-menu a::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--brand-acid);transform:scaleX(0);transform-origin:left;transition:transform .16s var(--control-ease)}
.motion-footer-label{display:block;padding-right:1em;transition:transform .16s var(--control-ease)}
.motion-footer-arrow{position:absolute;right:12px;top:50%;width:24px;height:24px;opacity:0;transform:translate(6px,-50%);transition:transform .16s,opacity .16s}
.cj-footer-nav-links>a:is(:hover,:focus-visible){padding-left:0;color:var(--brand-carbon)}
.cj-footer-nav-links>a:is(:hover,:focus-visible)::before,.language-menu a:is(:hover,:focus-visible)::before{transform:scaleX(1)}
.cj-footer-nav-links>a:is(:hover,:focus-visible) .motion-footer-label,.language-menu a:is(:hover,:focus-visible) .motion-footer-label{transform:translateX(6px)}
.cj-footer-nav-links>a:is(:hover,:focus-visible) .motion-footer-arrow,.language-menu a:is(:hover,:focus-visible) .motion-footer-arrow{opacity:1;transform:translate(0,-50%)}
@media(max-width:620px){html .button[data-motion-button]{--motion-tile-size:36px}html .header .button[data-motion-button]{--motion-tile-size:26px;--motion-arrow-size:22px}}
@media(prefers-reduced-motion:reduce){.motion-arrow,.motion-footer-label,.motion-footer-arrow,.desktop-nav>a::before,.mobile-nav>a::before,.cj-footer-nav-links>a::before,.language-menu a::before{transition:none!important}.button:is(:hover,:focus-visible) .motion-arrow-out{transform:none}.motion-arrow-in{display:none}.cj-footer-nav-links>a:is(:hover,:focus-visible) .motion-footer-label,.language-menu a:is(:hover,:focus-visible) .motion-footer-label{transform:none}}
