.out_frame{
  text-align: center;
  width: 100%;
}
.out{
  position: relative;
  margin: 0 auto;
  width:80%;
}
.in img{
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: .5s;
  z-index: 0;
}
.out img{
  display: block;
  width: 100%;
  height: auto;
}
input{
  display: none;
}
.in{
  display: flex;
  justify-content: center;
}
label span{
  display: block;
  width: 15px;
  height: 15px;
  padding: 7px;
  margin: -40px 0 0;
  border-radius: 100%;
  cursor: pointer;
  position: relative;
  z-index: 2;
}
label span::before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #4287f5;
  opacity: 0.5;
  border-radius: 100%;
}            
input:nth-of-type(1):checked ~ .in label:nth-of-type(1) span::before,
input:nth-of-type(2):checked ~ .in label:nth-of-type(2) span::before,
input:nth-of-type(3):checked ~ .in label:nth-of-type(3) span::before,
input:nth-of-type(4):checked ~ .in label:nth-of-type(4) span::before,
input:nth-of-type(5):checked ~ .in label:nth-of-type(5) span::before{
  background: #000;
  opacity: 1;
}
label span::before{
  animation: slidebutton 25s infinite;
}
@keyframes slidebutton{
  0%{opacity: 0.5;background: #4287f5;}
  5%{opacity: 1;background: #000;}/* b÷x×100=y */
  25%{opacity: 1;background: #000;}/* 100÷c=z */
  30%{opacity: 0.5;background: #4287f5;}/* y+z */
}            
label:nth-of-type(2) span::before,label:nth-of-type(2) img{
  animation-delay: 5s;
}            
label:nth-of-type(3) span::before,label:nth-of-type(3) img{
  animation-delay: 10s;
}            
label:nth-of-type(4) span::before,label:nth-of-type(4) img{
  animation-delay: 15s;
}
label:nth-of-type(5) span::before,label:nth-of-type(5) img{
  animation-delay: 20s;
} 
input:nth-of-type(1):checked ~ .in label:nth-of-type(1) img,
input:nth-of-type(2):checked ~ .in label:nth-of-type(2) img,
input:nth-of-type(3):checked ~ .in label:nth-of-type(3) img,
input:nth-of-type(4):checked ~ .in label:nth-of-type(4) img,
input:nth-of-type(5):checked ~ .in label:nth-of-type(5) img{
  opacity: 1;
  z-index: 1;
}
.in img{
  animation: slide 25s infinite;/* (a+b)×c=x */
  opacity: 0;
}
@media screen and (max-width: 768px) {
  label span{
    display: block;
    width: 10px;
    height: 10px;
    padding: 7px;
    margin: -20px 0 0;
    border-radius: 100%;
    cursor: pointer;
    position: relative;
    z-index: 2;
  }
}
@keyframes slide{
  0%{opacity: 0;}
  5%{opacity: 1;z-index: 1;}/* b÷x×100=y */
  25%{opacity: 1;}/* 100÷c=z */
  30%{opacity: 0;z-index: 0;}/* y+z */
}
input:checked ~ .in img,input:checked ~ .in span::before{
  animation: none;
}
.in:hover img,.in:hover span::before{
  animation-play-state:paused;/* マウスを載せると一時停止 */
}