.taxo-grid-menu {
    --tile-min-spacing: 10px;
    --tile-width: calc(16.6666666667% - var(--tile-min-spacing));
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    font-size: clamp(8px, 2.5vmin, 2em);
}

.taxo-grid-menu.firma {
    --tile-width: calc(25% - var(--tile-min-spacing));
    font-size: clamp(8px, 3vmin, 2.5em);
}

.taxo-grid-menu.wirtulne {
    --tile-width: calc(75% - var(--tile-min-spacing));
    font-size: clamp(8px, 3vmin, 2.5em);
}

.taxo-tile {
    width: var(--tile-width);
    height: calc(70vh / 3);
    max-height: 272px;
    min-height: 50px;
    border: 1px solid #E7E7E7;
    box-sizing: border-box;
    background-color: var(--cialo-tlo);
    cursor: pointer;
    position: relative;
    overflow: hidden;
    margin: calc(var(--tile-min-spacing) / 2);
    display: grid;
    grid-template-rows: 1fr 1fr;
    justify-items: center;
    border-radius: var(--border-radius);
}

.taxo-tile.active::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 0;
    padding-top: 0;
    border-radius: 100%;
    background-color: var(--kolor-akcent-zabarwienie);
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    transition: width .2s ease-out, padding-top .2s ease-out;
}

.taxo-tile.active:hover::before {
  width: 200%;
  padding-top: 200%;
}

.taxo-tile.active svg {
    color: var(--kolor-akcent);
    background: var(--kolor-akcent-zabarwienie);
    padding: 0.3em;
}

.taxo-tile.inactive {
    color: var(--kolor-nieaktywny);
    cursor: not-allowed;
}

.taxo-tile.inactive svg {
    color: var(--kolor-nieaktywny);
    background: var(--kolor-nieaktywny-zabarwienie);
}

.taxo-tile svg {
    height: 2em;
    border-radius: var(--border-radius);
    align-self: end;
}

.taxo-tile [part="text"] {
    font-weight: 700;
    color: var(--taxo-black);
    align-self: start;
    padding-top: 0.7em;
}