I want to change the background color of elements coming after the 9th with :nth-child(n+10), bypassing some elements that are already hidden with display: none.
I am using .item:not(.hidden):nth-child(n+10) selector but it is not working. When I use as an example .item:not(.hidden):hover selector, it is working.
This sample code:
/********** just for ex. **********/
body {
  background-color: #333;
}
.item {
  height: 20px;
  width: 80%;
  background-color: #aaa;
  margin-bottom: 10px;
  color: #fff;
  padding-left: 20px;
}
/********** just for ex. **********/
.hidden {
  display: none;
}
.item:not(.hidden):hover {
  background-color: #00f;
}
.item:not(.hidden):nth-child(n+10) {
  background-color: #f00;
}
<ol>
  <li class="item">1</li>
  <li class="item">2</li>
  <li class="item hidden">3</li>
  <li class="item">4</li>
  <li class="item hidden">5</li>
  <li class="item">6</li>
  <li class="item">7</li>
  <li class="item hidden">8</li>
  <li class="item">9</li>
  <li class="item">10</li>
  <li class="item hidden">11</li>
  <li class="item">12</li>
  <li class="item hidden">13</li>
  <li class="item">14</li>
  <li class="item">15</li>
  <li class="item">16</li>
  <li class="item">17</li>
</ol>
And I want:
Why :nth-child(n+10) does not affect the entire selection like :hover? And how can I fix it?

