.countdownTimer__section {
  width: 100%;
  padding: 30px 0 20px;
  position: relative;
  font-family: 'Hiragino Sans', sans-serif;
}

.countdownTimer__section .ribbon__wrapper {
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  filter: drop-shadow(0 1px 0 rgba(165, 75, 45, 1));
}

.countdownTimer__section .ribbon {
  display: inline-block;
  white-space: nowrap;
  padding: 2px 22px;
  background-color: #ff6b00;
  color: #fff;
  font-weight: bold;
  font-size: 16px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 40%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M 8,0 H 93 Q 95,0 94.8,4 L 92,20 L 94.8,36 Q 95,40 92,40 H 8 Q 5,40 5.2,36 L 8,20 L 5.2,4 Q 5,0 8,0 Z%27 fill=%27%23000%27/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 40%27 preserveAspectRatio=%27none%27%3E%3Cpath d=%27M 8,0 H 93 Q 95,0 94.8,4 L 92,20 L 94.8,36 Q 95,40 92,40 H 8 Q 5,40 5.2,36 L 8,20 L 5.2,4 Q 5,0 8,0 Z%27 fill=%27%23000%27/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.countdownTimer__section .countdownTimer__wrapper {
  background-color: #ffd24d;
  height: 84px;
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  border-radius: 10px;
}

.countdownTimer__section .countdownTimer {
  text-align: center;
  padding-top: 28px;
}

.countdownTimer__section .countdownTimer__digit {
  display: inline-block;
  background-color: #fff;
  width: 25px;
  height: 40px;
  border-radius: 2px;
  text-align: center;
  align-content: center;
  font-weight: bold;
  color: #444;
  font-size: 14px;
  line-height: 1;
}

.countdownTimer__section .count__tens {
  margin-right: 3px;
}

.countdownTimer__section .countdownTimer__txt,
.countdownTimer__section .count__separator {
  font-weight: bold;
  color: #444;
  font-size: 14px;
}
.countdownTimer__section .countdownTimer__txt {
  writing-mode: vertical-rl;
  vertical-align: bottom;
}

.countdownTimer__section .count__separator {
  margin-right: 2px;
}

.countdownTimer__section .countdownTimer__unit .countdownTimer__txt {
  margin-right: 2px;
}

.countdownTimer__loading {
  height: 100%;
  padding-top: 28px;
  box-sizing: border-box;
  text-align: center;
}

.countdownTimer__loading .loading__spinner {
  width: 25px;
  height: 25px;
  margin: 0 auto;
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  border-top-color: #ff6b00;
  animation: spin 1s ease-in-out infinite;
}

.countdownTimer__loading .loading__label {
  color: #444;
  font-size: 11px;
  margin-top: 3px;
}

@keyframes spin { to { transform: rotate(360deg); } }

@media screen and (max-width: 767px) {
  .countdownTimer__section {
    padding: clamp(24px, calc(30 * 100vw / 400), 58px) 0 clamp(16px, calc(20 * 100vw / 400), 38px);
  }
  .countdownTimer__section .ribbon__wrapper {
    top: clamp(9px, calc(18 * 100vw / 400), 34px);
  }
  .countdownTimer__section .ribbon {
    font-size: clamp(12px, calc(16 * 100vw / 400), 31px);
    padding: clamp(2px, calc(2 * 100vw / 400), 4px) clamp(18px, calc(22 * 100vw / 400), 42px);
  }
  .countdownTimer__section .countdownTimer__wrapper {
    max-width: none;
    border-radius: clamp(8px, calc(10 * 100vw / 400), 10px);
    height: clamp(67px, calc(84 * 100vw / 400), 161px);
  }

  .countdownTimer__section .countdownTimer,
  .countdownTimer__loading {
    padding-top: clamp(22px, calc(28 * 100vw / 400), 54px);
  }

  .countdownTimer__section .countdownTimer__digit {
    width: clamp(20px, calc(25 * 100vw / 400), 48px);
    height: clamp(32px, calc(40 * 100vw / 400), 77px);
    border-radius: clamp(2px, calc(2 * 100vw / 400), 4px);
    font-size: clamp(11px, calc(14 * 100vw / 400), 27px);
  }

  .countdownTimer__section .countdownTimer__digit-tens {
    margin-right: clamp(2px, calc(3 * 100vw / 400), 6px);
  }

  .countdownTimer__section .countdownTimer__txt,
  .countdownTimer__section .count__separator {
    font-size: clamp(11px, calc(14 * 100vw / 400), 27px);
    margin-right: clamp(2px, calc(2 * 100vw / 400), 4px);
  }

  .countdownTimer__section .count__separator {
    margin-left: clamp(1px, calc(1 * 100vw / 400), 2px);
  }

  .countdownTimer__loading .loading__spinner {
    width: clamp(20px, calc(25 * 100vw / 400), 48px);
    height: clamp(20px, calc(25 * 100vw / 400), 48px);
    border: clamp(3px, calc(4 * 100vw / 400), 8px) solid rgba(0, 0, 0, 0.1);
    border-top-color: #ff6b00;
  }

  .countdownTimer__loading .loading__label {
    font-size: clamp(11px, calc(11 * 100vw / 400), 21px);
    margin-top: clamp(2px, calc(3 * 100vw / 400), 6px);
  }
}
