.ros {
  --ros-open: #2e9e5b;
  --ros-soon: #e8a317;
  --ros-closed: #d64545;
  --ros-dot: 16px;
  --ros-ring: 7px;
  --ros-ring-op: .2;
  display: inline-flex;
  align-items: center;
  gap: 22px;
  padding: 18px 30px;
  background: #fff;
  border-radius: 18px;
  text-align: left;
  transition: opacity .2s ease;
}
.ros.ros--loading { opacity: 0; }
/* Each state: dot color, ring color (defaults to the dot color) and ring opacity. */
.ros.ros--open {
  --ros-color: var(--ros-open);
  --ros-ring-color: var(--ros-ring-open, var(--ros-open));
  --ros-ring-alpha: var(--ros-ring-op-open, var(--ros-ring-op));
}
.ros.ros--soon {
  --ros-color: var(--ros-soon);
  --ros-ring-color: var(--ros-ring-soon, var(--ros-soon));
  --ros-ring-alpha: var(--ros-ring-op-soon, var(--ros-ring-op));
}
.ros.ros--closed {
  --ros-color: var(--ros-closed);
  --ros-ring-color: var(--ros-ring-closed, var(--ros-closed));
  --ros-ring-alpha: var(--ros-ring-op-closed, var(--ros-ring-op));
}

/* Dot with a ring around it. Full size = Dot Size + 2 × Ring Padding.
   ::before = ring (fills the whole box, behind), ::after = dot (inset by the padding, on top). */
.ros .ros__dot {
  position: relative;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: calc(var(--ros-dot) + var(--ros-ring) * 2);
  height: calc(var(--ros-dot) + var(--ros-ring) * 2);
}
.ros .ros__dot::before,
.ros .ros__dot::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}
.ros .ros__dot::before {
  inset: 0;
  background: var(--ros-ring-color);
  opacity: var(--ros-ring-alpha);
  transition: background-color .3s ease, opacity .3s ease;
}
.ros .ros__dot::after {
  inset: var(--ros-ring);
  background: var(--ros-color);
  transition: background-color .3s ease;
}
@keyframes ros-pulse {
  0%   { transform: scale(.6); opacity: min(1, calc(var(--ros-ring-alpha) * 2)); }
  100% { transform: scale(1.4); opacity: 0; }
}

.ros .ros__text  { display: flex; flex-direction: column; min-width: 0; }
.ros .ros__title {
  display: block;
  margin: 0 0 4px;
  color: #0f3b2c;
  font-size: 30px;
  line-height: 1.1;
  text-transform: uppercase;
}
.ros .ros__sub {
  display: block;
  color: #5f6b66;
  font-size: 20px;
  line-height: 1.3;
}
