.outfits-set {
    text-align: center;
}

.outfits-set label {
    display: block;
    font-size: 0.7em;
    color: grey;
    cursor: pointer;
}

.tooltip figcaption {
    margin-top: -5px;
    padding-bottom: 14px;
}

.tooltip {
    position: relative;
    border: 2px solid transparent;
}

.tooltip .tooltiptext {
    text-align: left;
    font-size: 0.9em;
    line-height: 1.4;
    visibility: hidden;
    width: 320px;
    background-color: #555;
    color: #fff;
    padding: 10px;
    border-radius: 10px;
    position: absolute;
    z-index: 1;
    left: 50%;
    transform: translateX(-50%);
    top: 110%;
    opacity: 0;
    transition: opacity 1s;
    white-space: pre-line;
}

.tooltip:hover .tooltiptext,
.tooltip:focus-visible .tooltiptext {
    visibility: visible;
    opacity: 1;
}

.tooltip:hover,
.tooltip:focus-visible {
    border: 2px solid #555;
    border-radius: 10px;
}

.tooltip .tooltiptext::after {
    content: " ";
    position: absolute;
    top: -5px;
    left: 50%;
    transform: translateX(-50%);
    margin-top: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent #555 transparent;
}

@media only screen and (min-width: 1125px) {
    .tooltip:nth-child(6n+1):not(:nth-last-child(-n+5)) .tooltiptext {
        transform: translateX(-30%);
    }
    .tooltip:nth-child(6n+1):not(:nth-last-child(-n+5)) .tooltiptext::after {
        transform: translateX(-700%);
    }
    .tooltip:nth-child(6n+6) .tooltiptext {
        transform: translateX(-70%);
    }
    .tooltip:nth-child(6n+6) .tooltiptext::after {
        transform: translateX(700%);
    }
}
@media only screen and (max-width: 1124px) and (min-width: 940px) {
    .tooltip:nth-child(5n+1):not(:nth-last-child(-n+4)) .tooltiptext {
        transform: translateX(-30%);
    }
    .tooltip:nth-child(5n+1):not(:nth-last-child(-n+4)) .tooltiptext::after {
        transform: translateX(-700%);
    }
    .tooltip:nth-child(5n+5) .tooltiptext {
        transform: translateX(-70%);
    }
    .tooltip:nth-child(5n+5) .tooltiptext::after {
        transform: translateX(700%);
    }
}
@media only screen and (max-width: 939px) and (min-width: 755px) {
    .tooltip:nth-child(4n+1):not(:nth-last-child(-n+3)) .tooltiptext {
        transform: translateX(-30%);
    }
    .tooltip:nth-child(4n+1):not(:nth-last-child(-n+3)) .tooltiptext::after {
        transform: translateX(-700%);
    }
    .tooltip:nth-child(4n+4) .tooltiptext {
        transform: translateX(-70%);
    }
    .tooltip:nth-child(4n+4) .tooltiptext::after {
        transform: translateX(700%);
    }
}
@media only screen and (max-width: 754px) and (min-width: 570px) {
    .tooltip:nth-child(3n+1):not(:nth-last-child(-n+2)) .tooltiptext {
        transform: translateX(-30%);
    }
    .tooltip:nth-child(3n+1):not(:nth-last-child(-n+2)) .tooltiptext::after {
        transform: translateX(-700%);
    }
    .tooltip:nth-child(3n+3) .tooltiptext {
        transform: translateX(-70%);
    }
    .tooltip:nth-child(3n+3) .tooltiptext::after {
        transform: translateX(700%);
    }
}
@media only screen and (max-width: 569px) and (min-width: 385px) {
    .tooltip:nth-child(2n+1):not(:nth-last-child(-n+1)) .tooltiptext {
        transform: translateX(-30%);
    }
    .tooltip:nth-child(2n+1):not(:nth-last-child(-n+1)) .tooltiptext::after {
        transform: translateX(-700%);
    }
    .tooltip:nth-child(2n+2) .tooltiptext {
        transform: translateX(-70%);
    }
    .tooltip:nth-child(2n+2) .tooltiptext::after {
        transform: translateX(700%);
    }
}
@media only screen and (max-width: 384px) {
    .tooltip .tooltiptext {
        width: 280px;
        top: 50%;
    }
}

@media only screen and (max-width: 620px) {
    .account-outfits .outfits {
        position: relative;
    }

    .account-outfits .tooltip {
        position: static;
    }

    .account-outfits .outfits .tooltip .tooltiptext {
        left: 50%;
        top: auto;
        transform: translate(-50%, 8px);
        width: min(320px, calc(100vw - 40px));
    }

    .account-outfits .tooltip .tooltiptext::after {
        content: none;
    }
}

input:checked + .outfits .tooltip {
    display: inline-flex;
    flex-direction: column;
}

input:checked + .outfits .tooltiptext.tooltiptext.tooltiptext {
    visibility: visible;
    opacity: 1;
    position: initial;
    transform: none;
    width: 146px;
    font-size: 0.7em;
}

input:checked + .outfits .tooltiptext::after {
    content: none;
}

#outfits-alpha-show-all, #outfits-beta-show-all {
    position: relative;
    display: block;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.outfits-hide-label,
.outfits-set:has(+ input:checked) .outfits-show-label {
    display: none;
}

.outfits-set:has(+ input:checked) .outfits-hide-label {
    display: inline;
}

.outfits-set:has(+ input:focus-visible) label {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
