/* Quiet feedback, shared by home and inner pages. No delayed access to content. */
:root{--bb-settle:cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:no-preference){
 /* Separate scale from existing transforms and colour transitions. */
 html body :is(.action,.quiet-action,.bb-cta,.bb-utility){
  transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,scale 160ms var(--bb-settle);
 }
 html body :is(.action,.quiet-action,.bb-cta,.bb-utility):active:not(:disabled){scale:.98;transition-duration:100ms}
 /* The short fade bridges a step change without moving fields or focus. */
 body[data-bb-inner="planner/index.html"] :is(#dates,#details,#review):not([hidden]){animation:bb-step-arrive 220ms var(--bb-settle)}
 .selected-label:not([hidden]){animation:bb-selection-arrive 180ms var(--bb-settle)}
 @keyframes bb-step-arrive{from{opacity:.65}to{opacity:1}}
 @keyframes bb-selection-arrive{from{opacity:0;translate:0 3px}to{opacity:1;translate:0 0}}
 /* Native details keeps keyboard semantics and can reverse mid-transition.
    Unsupported engines simply keep their normal instant disclosure. */
 @supports (interpolate-size:allow-keywords) and selector(details::details-content){
  :is(.faq,.faq-items) details{interpolate-size:allow-keywords}
  :is(.faq,.faq-items) details::details-content{
   height:0;overflow:clip;opacity:0;
   transition:height 280ms var(--bb-settle),opacity 180ms ease,content-visibility 280ms allow-discrete;
  }
  :is(.faq,.faq-items) details[open]::details-content{height:auto;opacity:1}
 }
}
@media(prefers-reduced-motion:reduce){
 html body :is(.action,.quiet-action,.bb-cta,.bb-utility){scale:none;translate:none;transition:none}
 body[data-bb-inner="planner/index.html"] :is(#dates,#details,#review),.selected-label{animation:none}
}
