/* Real control feedback; keyboard and reduced-motion changes settle immediately. */
:root {
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --press-duration: 100ms;
  --release-duration: 160ms;
  --control-duration: 200ms;
}
.button, .nav-cta, .menu-toggle, .copy-button, .filter, .scenario-button {
  transition: transform var(--release-duration) var(--ease-out),
    background-color var(--control-duration) ease, color var(--control-duration) ease,
    border-color var(--control-duration) ease;
}
html[data-input=pointer] :is(.button, .nav-cta, .menu-toggle, .copy-button, .filter, .scenario-button):active {
  transform: scale(.97);
  transition-duration: var(--press-duration);
}
.dropdown { transform-origin: top left; }
#main-navigation { transform-origin: top right; }
.faq-plus { transition: background-color var(--control-duration) ease, border-color var(--control-duration) ease; }
.js .faq-plus:after { display: block; transition: transform var(--control-duration) var(--ease-out); }
.js .faq-item[data-expanded=true] .faq-plus:after { transform: rotate(0deg); }
.js .faq-item[data-expanded=false] .faq-plus:after { transform: rotate(90deg); }
.js .faq-item[data-expanded=false] .faq-plus { background: transparent; border-color: #a5a5a5; }
.js .faq-item[open] .faq-plus:after { display: block; }
html[data-input=keyboard] *, html[data-input=keyboard] *:before, html[data-input=keyboard] *:after {
  transition-duration: 0s !important;
}
@media (hover: hover) and (pointer: fine) {
  .button:hover, .nav-cta:hover, .copy-button:hover { transform: translateY(-1px); }
}
@media (prefers-reduced-motion: reduce) {
  .button, .nav-cta, .menu-toggle, .copy-button, .filter, .scenario-button { transform: none !important; }
  *, *:before, *:after { transition: none !important; animation: none !important; }
}
