/* OPEN ANIMATION HANDLING
   These styles are used along with the `expand-animation.js` script
   to animation the opening process of an element

   The animation works by having the height as 0 when closed
   Then we animate the open to a specific height calculated by the 
      javascript scrollHeight property of the element which the --openHeight variable is set to
   When the animation completes the height is set to auto so that everything is responsive at that point

   IMPORTANT NOTE: `flex-direction: column` is necessary for the scrollHeight to calculate properly
                       despite not being a flex element...
*/
.js-animate-open:not(input[type="checkbox"]) {
    transition: height 0.3s ease-out,
                translate 0.3s ease-out;
    overflow: hidden;
    height: 0;
    flex-wrap: nowrap;
    flex-direction: column;
}
.js-animate-open:not(.js-animate-open--auto):not(input[type="checkbox"]) {
    display: flex;
}
.js-animate-open--show:not(input[type="checkbox"]) {
    height: var(--openHeight) !important;
}
.js-animate-open--auto:not(input[type="checkbox"]) {
    height: auto;
}