/* Shared interaction motion for the club app, dialogs and platform admin. */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  :root body :is(button,a[href],summary,[data-action],[data-open],[data-nl-open],[role="button"],[role="tab"],[role="option"],[role="switch"],input:not([type="hidden"]),select,textarea,label[for],label:has(>input[type="checkbox"]),label:has(>input[type="radio"]),.p19-switch,.p19-color-tile,.member-choice-chip,.member-card[data-action],.event-card[data-open],.calendar-agenda-item.is-clickable,.member-choice-chip-button){
    transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,opacity .16s ease,filter .16s ease;
  }
  :where(a[href],.recovery-link){text-decoration-thickness:1px;text-underline-offset:3px}
  :root :is(.member-card[data-action],.event-card[data-open],.calendar-agenda-item.is-clickable,.attendance-row,.td-day,.p19-color-tile){
    transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,filter .16s ease;
  }
  :where(input.input,select.select,textarea.textarea):where(:not(:disabled):not([readonly]):not([type="checkbox"]):not([type="radio"])):hover{
    border-color:var(--club-control-border,#86a5cb);
  }
}

/* Touch/pen feedback is owned by interaction-touch.js and interaction-touch.css. */

/* Stable layouts for disclosure controls and noninteractive catalog cards. */
:root body .product-card{translate:none;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important;translate:none!important}}
:root body :is([role="button"],summary,a[href]):focus-visible{outline:2px solid var(--ui-focus,var(--club-control-border));outline-offset:3px}
@media(prefers-reduced-motion:reduce){:root body *,:root body *::before,:root body *::after{animation-duration:0s!important;transition-duration:0s!important;scroll-behavior:auto!important}}

/* Native disclosure remains usable when size interpolation is unsupported. */
@supports (interpolate-size:allow-keywords){
 @media(prefers-reduced-motion:no-preference){
  details:is(.p19-folder,.merch-cart-note,.td-templates,.theme-color-fine){interpolate-size:allow-keywords}
  details:is(.p19-folder,.merch-cart-note,.td-templates,.theme-color-fine)::details-content{block-size:0;overflow:clip;transition:block-size .16s ease,content-visibility .16s allow-discrete}
  details:is(.p19-folder,.merch-cart-note,.td-templates,.theme-color-fine)[open]::details-content{block-size:auto}
 }
}
