@charset "UTF-8";
.px-counter {
  position: relative;
  z-index: 1;
}
.px-counter-inner {
  max-width: var(--maxWidth);
  width: var(--baseWidth);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 640px) {
  .px-counter-inner {
    flex-direction: column;
  }
}
.px-counter-inner .item {
  padding: 20px 10px;
  flex: 0 0 23%;
  position: relative;
}
@media (max-width: 1200px) {
  .px-counter-inner .item {
    flex: 0 0 47%;
    text-align: center;
  }
}
@media (max-width: 640px) {
  .px-counter-inner .item {
    flex: 0 0 100%;
  }
}
.px-counter-inner .item .number-wrap {
  display: flex;
  align-items: baseline;
}
@media (max-width: 1200px) {
  .px-counter-inner .item .number-wrap {
    text-align: center;
    justify-content: center;
  }
}
.px-counter-inner .item .number-wrap .number {
  font-weight: 700;
  font-size: clamp(1.25rem, 1.0810810811rem + 0.8445945946vw, 1.875rem);
  font-style: normal;
  font-weight: 700;
  line-height: 59px;
}
.px-counter-inner .item .number-wrap .unit {
  font-weight: 700;
  font-size: 49px;
  font-style: normal;
  font-weight: 700;
  line-height: 59px;
}
@media (max-width: 1200px) {
  .px-counter-inner .item .number-wrap .unit {
    text-align: center;
  }
}
.px-counter-inner .item .number-wrap p {
  margin-bottom: 8px;
}
.px-counter-inner .item .title {
  font-size: 19px;
  font-style: normal;
  font-weight: 300;
  line-height: 48px;
  margin-bottom: 0;
  text-align: center;
}
@media (max-width: 1200px) {
  .px-counter-inner .item .title {
    text-align: center;
  }
}
.container {
  max-width: 420px;
  max-height: 420px;
  position: relative;
  width: 100%;
  margin: 50px auto;
  aspect-ratio: 1;
}
@media (max-width: 640px) {
  .container {
    width: var(--baseWidth);
    max-width: 100%;
    max-height: 100%;
    margin: 0 auto;
    aspect-ratio: inherit;
  }
}
.container .gear {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 50px;
  height: 50px;
  padding: 20px;
  box-sizing: content-box;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 15px 0 rgba(var(--contrastColorRGB), 0.1);
}
@media (max-width: 640px) {
  .container .gear {
    display: none;
  }
}
.container .gear img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.container .boxes {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  transform-origin: center center;
  transform: translate(-50%, -50%) rotate(0deg);
  animation: rotate 30s linear infinite;
  z-index: 1;
  border: 2px dashed var(--formBorderColor);
  border-radius: 50%;
}
@media (max-width: 640px) {
  .container .boxes {
    animation: none;
    position: relative;
    top: auto;
    left: auto;
    transform: translate(0, 0);
    border: 0;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }
}
.container .boxes:has(.box:nth-child(3)):not(:has(.box:nth-child(4))) .box:nth-child(1) {
  top: 50%;
  left: 95.5%;
  /* = (200+150)/400 * 100 */
}
.container .boxes:has(.box:nth-child(3)):not(:has(.box:nth-child(4))) .box:nth-child(2) {
  top: 91.5%;
  /* ≈ (200+150*0.866)/400 *100 */
  left: 31.25%;
  /* = (200+150*(-0.5))/400*100 */
}
.container .boxes:has(.box:nth-child(3)):not(:has(.box:nth-child(4))) .box:nth-child(3) {
  top: 8.5%;
  /* ≈ (200-150*0.866)/400*100 */
  left: 31.25%;
}
.container .boxes .box {
  display: flex;
  width: clamp(9.375rem, 9.0371621622rem + 1.6891891892vw, 10.625rem);
  height: clamp(9.375rem, 9.0371621622rem + 1.6891891892vw, 10.625rem);
  min-width: fit-content;
  min-height: fit-content;
  aspect-ratio: 1;
  padding: 20px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  position: absolute;
  background: var(--contrastColorInverted);
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow: 0 2px 15px 0 rgba(var(--contrastColorRGB), 0.1);
}
.container .boxes .box:nth-child(1) {
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
}
.container .boxes .box:nth-child(4) {
  top: 50%;
  left: 100%;
  transform: translate(-50%, -50%);
}
.container .boxes .box:nth-child(2) {
  top: 100%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.container .boxes .box:nth-child(3) {
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
}
@media (max-width: 640px) {
  .container .boxes .box {
    position: relative;
    top: auto !important;
    left: auto !important;
    transform: translate(0, 0) !important;
    aspect-ratio: inherit;
    border-radius: 10px;
    width: 100%;
    height: auto;
  }
}
.container .boxes .box .content {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(----mainColor);
  transform-origin: center center;
  animation: counterRotate 30s linear infinite;
  flex-direction: column;
}
@media (max-width: 640px) {
  .container .boxes .box .content {
    animation: none;
  }
}
.container .boxes .box .content .number-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--mainGradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: var(--headline);
  font-size: clamp(1.5625rem, 1.3935810811rem + 0.8445945946vw, 2.1875rem);
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
.container .boxes .box .content .number-wrap .unit {
  margin-top: 0;
}
.container .boxes .box .content .title {
  color: var(--fontColorLight);
  text-align: center;
  font-family: var(--headline);
  text-transform: uppercase;
  hyphens: auto;
  line-height: normal;
  font-size: var(--miniFontSize);
}
@keyframes rotate {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
@keyframes counterRotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg);
  }
}
.block-editor-block-list__block .px-counter .gear {
  animation: none;
}
.block-editor-block-list__block .px-counter .boxes {
  animation: none;
}
.block-editor-block-list__block .px-counter .boxes .box .content {
  animation: none;
}
