:root {
  --circulationItemW: 33vw;
  --circulationItemH: 33vw;
}
.circulationDiagram {
  position: relative;
  width: 100vw;
  height: auto;
  margin: 0 calc(50% - 50vw);
  padding-bottom: calc(100vw + (4vw * 2));
  background-image: url(/corporate/csr/ecology/resources/images/bg_circulatio_smt.png);
  background-size: calc(100vw - 32px);
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}
.circulationDiagram-item {
  position: absolute;
  top: calc(50% - (var(--circulationItemH) / 2));
  left: calc(50% - (var(--circulationItemW) / 2));
}
.circulationDiagram-item a {
  color: #333333;
  text-decoration: none;
}
.circulationDiagram-item-body {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--circulationItemW);
  height: var(--circulationItemH);
  font-size: 4vw;
  background-color: #fff;
  border-radius: 100vw;
  transition: 0.4s ease;
  background-repeat: no-repeat;
  background-size: 49%;
  background-position-x: center;
  background-position-y: 38%;
  scale: 1;
  box-sizing: border-box;
}
.circulationDiagram-item-body:hover {
  scale: 1;
}
.circulationDiagram-item-body::after {
  content: "";
  position: absolute;
  bottom: 16px;
  width: 7px;
  height: 7px;
  border-bottom: 2px solid #6a6a6a;
  border-right: 2px solid #6a6a6a;
  transform: rotate(45deg);
}
.circulationDiagram-item-body::before {
  content: "";
  position: absolute;
  top: calc(50% - (var(--circulationItemW) / 2));
  left: calc(50% - (var(--circulationItemH) / 2));
  width: 33vw;
  height: 33vw;
  border-radius: 100vw;
  box-sizing: border-box;
  animation-duration: 5s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}
.circulationDiagram-item-body > span {
  position: relative;
  top: 6vw;
  font-size: 4.2vw;
}
.circulationDiagram-item:nth-child(1) {
  transform: translateY(-27vw);
}
.circulationDiagram-item:nth-child(1) .circulationDiagram-item-body {
  border: 2px solid #a4d982;
  background-image: url(/corporate/csr/ecology/resources/images/ico_circulatio01.png);
  background-size: 45%;
  background-position-y: 25%;
}
.circulationDiagram.is-roop .circulationDiagram-item:nth-child(1) .circulationDiagram-item-body::before {
  animation-name: ripples01;
}
.circulationDiagram-item:nth-child(2) {
  transform: translateX(30vw) translateY(-6vw);
}
.circulationDiagram-item:nth-child(2) .circulationDiagram-item-body {
  border: 2px solid #f9da65;
  background-image: url(/corporate/csr/ecology/resources/images/ico_circulatio02.png);
  background-size: 29%;
  background-position-y: 23%;
}
.circulationDiagram.is-roop .circulationDiagram-item:nth-child(2) .circulationDiagram-item-body::before {
  animation-name: ripples02;
}
.circulationDiagram-item:nth-child(3) {
  transform: translateX(18vw) translateY(27vw);
}
.circulationDiagram-item:nth-child(3) .circulationDiagram-item-body {
  border: 2px solid #f2ac61;
  background-image: url(/corporate/csr/ecology/resources/images/ico_circulatio03.png);
  background-size: 45%;
  background-position-y: 32%;
}
.circulationDiagram.is-roop .circulationDiagram-item:nth-child(3) .circulationDiagram-item-body::before {
  animation-name: ripples03;
}
.circulationDiagram-item:nth-child(4) {
  transform: translateX(-18vw) translateY(27vw);
}
.circulationDiagram-item:nth-child(4) .circulationDiagram-item-body {
  border: 2px solid #eca2b5;
  background-image: url(/corporate/csr/ecology/resources/images/ico_circulatio04.png);
  background-size: 36%;
  background-position-y: 31%;
}
.circulationDiagram.is-roop .circulationDiagram-item:nth-child(4) .circulationDiagram-item-body::before {
  animation-name: ripples04;
}
.circulationDiagram-item:nth-child(5) {
  transform: translateX(-30vw) translateY(-6vw);
}
.circulationDiagram-item:nth-child(5) .circulationDiagram-item-body {
  border: 2px solid #b1dbe8;
  background-image: url(/corporate/csr/ecology/resources/images/ico_circulatio05.png);
  background-size: 33%;
  background-position-y: 20%;
}
.circulationDiagram.is-roop .circulationDiagram-item:nth-child(5) .circulationDiagram-item-body::before {
  animation-name: ripples05;
}
@keyframes ripples01 {
  0% {
    scale: 1;
    border: 4px solid #a4d982;
    opacity: 1;
  }
  20% {
    scale: 1.4;
    border: 1px solid #a4d982;
    opacity: 0;
  }
  100% {
    scale: 1.4;
    border: 1px solid #a4d982;
    opacity: 0;
  }
}
@keyframes ripples02 {
  0% {
    scale: 1;
    border: 0px solid #f9da65;
    opacity: 0;
  }
  9% {
    scale: 1;
    border: 0px solid #f9da65;
    opacity: 0;
  }
  10% {
    scale: 1;
    border: 4px solid #f9da65;
    opacity: 1;
  }
  30% {
    scale: 1.4;
    border: 1px solid #f9da65;
    opacity: 0;
  }
  100% {
    scale: 1;
    border: 0px solid #f9da65;
    opacity: 0;
  }
}
@keyframes ripples03 {
  0% {
    scale: 1;
    border: 0px solid #f2ac61;
    opacity: 0;
  }
  19% {
    scale: 1;
    border: 0px solid #f2ac61;
    opacity: 0;
  }
  20% {
    scale: 1;
    border: 4px solid #f2ac61;
    opacity: 1;
  }
  40% {
    scale: 1.4;
    border: 1px solid #f2ac61;
    opacity: 0;
  }
  100% {
    scale: 1;
    border: 0px solid #f2ac61;
    opacity: 0;
  }
}
@keyframes ripples04 {
  0% {
    scale: 1;
    border: 0px solid #eca2b5;
    opacity: 0;
  }
  29% {
    scale: 1;
    border: 0px solid #eca2b5;
    opacity: 0;
  }
  30% {
    scale: 1;
    border: 4px solid #eca2b5;
    opacity: 1;
  }
  50% {
    scale: 1.4;
    border: 1px solid #eca2b5;
    opacity: 0;
  }
  100% {
    scale: 1;
    border: 0px solid #eca2b5;
    opacity: 0;
  }
}
@keyframes ripples05 {
  0% {
    scale: 1;
    border: 0px solid #b1dbe8;
    opacity: 0;
  }
  39% {
    scale: 1;
    border: 0px solid #b1dbe8;
    opacity: 0;
  }
  40% {
    scale: 1;
    border: 4px solid #b1dbe8;
    opacity: 1;
  }
  60% {
    scale: 1.4;
    border: 1px solid #eca2b5;
    opacity: 0;
  }
  100% {
    scale: 1.4;
    border: 1px solid #b1dbe8;
    opacity: 0;
  }
}
