/* Interaction-only motion. No scroll, section-reveal or logo timing changes. */
:root{--interaction-ease:cubic-bezier(.22,.61,.36,1);--interaction-time:360ms}
.language-switch button,.policy-language button{
  transition:color var(--interaction-time) var(--interaction-ease),opacity var(--interaction-time) var(--interaction-ease);
}
.language-switch button::after,.text-link::after{
  transition:transform 440ms var(--interaction-ease);
}
.motion-button,body:not(.menu-open) .global-motion-button,.global-motion-button,
.contact-close,.contact-submit,.contact-retry,.header-contact,.nav-contact{
  transition:background-color var(--interaction-time) var(--interaction-ease),border-color var(--interaction-time) var(--interaction-ease),color var(--interaction-time) var(--interaction-ease),opacity var(--interaction-time) var(--interaction-ease);
}
/* State changes take effect immediately; only their appearance interpolates. */
.contact-submit:disabled{transition-duration:180ms}
.contact-submit:disabled:hover{background:#123625}
.contact-field input,.contact-field textarea{
  transition:background-color var(--interaction-time) var(--interaction-ease),border-color var(--interaction-time) var(--interaction-ease),color var(--interaction-time) var(--interaction-ease);
}
.contact-field input:hover,.contact-field textarea:hover{border-color:#637d6a}
.contact-field input[aria-invalid=true],.contact-field textarea[aria-invalid=true]{border-color:#942044}
.contact-field input:disabled,.contact-field textarea:disabled{border-color:#9baa9c}
.header-contact:hover,.nav-contact:hover{color:var(--green)}
body:not(.menu-open) .header-contact:hover{color:var(--chrome-mark)}
.contact-retry:hover{color:#153324;border-color:#153324}
.text-link,.text-link:hover{gap:40px}
.text-link{transition:color var(--interaction-time) var(--interaction-ease),border-color var(--interaction-time) var(--interaction-ease)}
.text-link>span:last-child,.header-contact>span:last-child,.nav-contact>span:last-child,.contact-submit>span:last-child{
  transition:transform 440ms var(--interaction-ease);
}
.text-link:hover>span:last-child,.header-contact:hover>span:last-child,.nav-contact:hover>span:last-child,.contact-submit:enabled:hover>span:last-child{transform:translateX(6px)}
.text-link:active>span:last-child,.header-contact:active>span:last-child,.nav-contact:active>span:last-child,.contact-submit:enabled:active>span:last-child{transform:translateX(3px)}
.section-nav a,body:not(.menu-open) .section-nav a{
  transition:color var(--interaction-time) var(--interaction-ease),transform 440ms var(--interaction-ease);
}
.section-bottom a{transition:color var(--interaction-time) var(--interaction-ease),transform 440ms var(--interaction-ease)}
.section-bottom a:hover{transform:translateY(4px)}
.menu-button span{transition:transform 440ms var(--interaction-ease),background-color var(--interaction-time) var(--interaction-ease)}
footer a,.privacy-inline-link,.policy-page a{
  transition:color var(--interaction-time) var(--interaction-ease),text-decoration-color var(--interaction-time) var(--interaction-ease);
}
footer a:hover{color:var(--green)}
.contact-dialog .privacy-inline-link:hover{color:#153324}
.policy-language button:hover{color:#b9e3cc}
@media(max-width:991px){
  .section-nav{
    display:flex;visibility:hidden;opacity:0;pointer-events:none;animation:none;
    transition:opacity 360ms var(--interaction-ease),visibility 0s linear 360ms;
  }
  .section-nav.menu-open{
    visibility:visible;opacity:1;pointer-events:auto;animation:none;
    transition:opacity 440ms var(--interaction-ease),visibility 0s;
  }
  .section-nav a,.section-nav.menu-open a{animation:none}
}
/* Native dialog lifecycle stays synchronous: no close timers, request races,
   delayed focus restoration, or changes to either contact implementation. */
.contact-dialog[open]{animation:contact-enter 440ms var(--interaction-ease)}
.contact-dialog:not([open]){pointer-events:none}
@supports (transition-behavior:allow-discrete) and (overlay:auto){
  .contact-dialog{
    opacity:0;transform:translateY(8px);
    transition:opacity 360ms var(--interaction-ease),transform 440ms var(--interaction-ease),display 440ms allow-discrete,overlay 440ms allow-discrete;
  }
  .contact-dialog[open]{opacity:1;transform:translateY(0);animation:none}
  .contact-dialog::backdrop{
    opacity:0;
    transition:opacity 360ms var(--interaction-ease),display 440ms allow-discrete,overlay 440ms allow-discrete;
  }
  .contact-dialog[open]::backdrop{opacity:1}
  @starting-style{
    .contact-dialog[open]{opacity:0;transform:translateY(8px)}
    .contact-dialog[open]::backdrop{opacity:0}
  }
}
/* Focus outlines are deliberately absent from every transition list. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  .text-link>span:last-child,.header-contact>span:last-child,
  .nav-contact>span:last-child,.contact-submit>span:last-child,
  .section-bottom a,.section-nav a{transform:none!important}
}
html[data-motion='reduced'] *,html[data-motion='reduced'] *::before,html[data-motion='reduced'] *::after,
html[data-motion='paused'] *,html[data-motion='paused'] *::before,html[data-motion='paused'] *::after{transition:none!important}
html[data-motion='paused'] .contact-dialog[open],html[data-motion='reduced'] .contact-dialog[open]{animation:none}
