/* data-state="initiating" gets manipulated by the Catalog initiation component. */
main > div:has(> aside + dialog + section):has(aside[data-state="initiating"]) > *:not(aside[data-state="initiating"], section, dialog[open]),
aside[data-state="initiating"] > div > form > *:not(:has(input[name="FiltersType"])),
aside[data-state="initiating"] > div > div:first-child,
aside[data-state="initiating"] > div > div:last-child {
    display: none;
}

aside[data-state="initiating"] details:has(input[name="FiltersType"]:checked:not([value="RU"], [value="COR-PA"])) ~ details:has(input[name="FiltersColor"][value="BL"]) {
    display: block;
}

aside[data-state="initiating"] details[open] summary:after {
    color: var(--secondaryColor);
}

main > div:has(> aside + dialog + section):has(aside[data-state="initiating"]) > section {
    --totalTransitionDuration: 1250ms;
    --catalogInitiationCollapseEasing: cubic-bezier(0.65, 0, 0.35, 1);
    --catalogInitiationFadeEasing: ease-out;
    --catalogInitiationTravelEasing: cubic-bezier(0.45, 0.05, 0.2, 1);

    width: 0;
    height: 0;
    opacity: 0;
    animation: none;
}

main > div:has(> aside + dialog + section):has(aside[data-state="initiating"]) > section::after {
    content: none;
    animation: none;
}

/* The Catalog initiation component removes data-state="initiating". */
main > div:has(> aside + dialog + section):not(:has(aside[data-state="initiating"])) > section {
    --totalTransitionDuration: 1250ms;
    
    height: 100%;    
    opacity: 1;
}

main > div:has(> aside + dialog + section) > aside:not([data-state="initiating"]) > div {
    opacity: 1;
    animation: none;
}

main > div:has(> aside + dialog + section) > aside:not([data-state="initiating"]) > div > div:first-child:has(> a) a:focus-visible {
    padding: calc(var(--smallSpacing) / 2) var(--smallSpacing);
    border-radius: var(--borderRadius);
    outline: 2px solid var(--primaryColor);
    outline-offset: 2px;
    background-color: var(--contrastColor);
    box-shadow: var(--boxShadow_subtle);
}

@media only screen and (max-width: 1000px) {

    main > div:has(> aside + dialog + section) > aside:has(> div > label input[name="FiltersPanel"]) {
        transition: top 550ms cubic-bezier(0.65, 0, 0.35, 1), transform 550ms cubic-bezier(0.65, 0, 0.35, 1);
    }

    main > div:has(> aside + dialog + section) > aside:not([data-state="initiating"]):has(> div > label input[name="FiltersPanel"]:not(:checked)) {
        overflow: visible;
    }

    main > div:has(> aside + dialog + section) > aside:not([data-state="initiating"]):has(> div > label input[name="FiltersPanel"]:not(:checked)) > div {
        overflow: visible;
    }

    main > div:has(> aside + dialog + section):has(aside[data-state="initiating"]) > section {
        width: auto;
    }
    
    main > div:has(> aside + dialog + section) aside[data-state="initiating"] {
        top: var(--mediumSpacing);
        bottom: var(--mediumSpacing);
        height: auto;
        transform: none;
        cursor: unset;
    }

    main > div:has(> aside + dialog + section) aside[data-state="initiating"] > div {
        width: auto;
        background-color: var(--contrastColor);
    }

    main > div:has(> aside + dialog + section) > aside[data-state="initiating"]:has(> div > label input[name="FiltersPanel"]) > div > label:has(input[name="FiltersPanel"]),
    main > div:has(> aside + dialog + section) > aside[data-state="initiating"]:has(> div > label input[name="FiltersPanel"]) > div > label:has(input[name="FiltersPanel"]:focus) {
		color: var(--contrastOverlayColor);
		margin-top: 0;
		background-color: transparent;
		cursor: default;
		pointer-events: none;
    }

    main > div:has(> aside + dialog + section) aside[data-state="initiating"] > div > label:has(input):after {
        display: none;
    }

    main > div:has(> aside + dialog + section) aside[data-state="initiating"] form {
        display: flex;
        max-height: calc(var(--panelMaxBlockSize) - (var(--largeSpacing) * 4));
        transform: unset;
        overflow-y: auto;
    }

    main > div:has(> aside + dialog + section) > aside[data-state="initiating"]:has(> div > label input[name="FiltersPanel"]) > div > form {
        display: flex;
        max-height: calc(var(--panelMaxBlockSize) - (var(--largeSpacing) * 4));
        transform: unset;
        overflow-y: auto;
    }

    main > div:has(> aside + dialog + section):has(> aside[data-state="initiating"]) > section > div {
        display: none;
    }

}

@media (prefers-reduced-motion: reduce) {

    main > div:has(> aside + dialog + section):not(:has(aside[data-state="initiating"])) > section,
    main > div:has(> aside + dialog + section) > aside:has(> div > label input[name="FiltersPanel"]) {
        transition: none;
        animation: none;
    }

    main > div:has(> aside + dialog + section):not(:has(aside[data-state="initiating"])) > section > div:first-child,
    aside[data-state="initiating"] details[open] > div,
    aside[data-state="initiating"] details[open] > div > label {
        opacity: 1;
        filter: none;
        transform: none;
        animation: none;
    }

    aside[data-state="initiating"] details[open] > div {
        max-height: 50vh;
        padding: calc(var(--largeSpacing) / 2) var(--largeSpacing) calc(var(--largeSpacing) / 4);
    }

}
