.factory-program-usage .Pricing-section-price-features--more .list-icons-item {
  padding-right: 0;
}

.factory-program-usage .factory-program-add {
  display: inline-grid;
  flex: none;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  transition: transform 150ms ease;
}

.factory-program-usage .factory-program-add:hover,
.factory-program-usage .factory-program-add:focus-visible {
  transform: scale(1.12);
}

.factory-program-builder {
  box-sizing: border-box;
  width: 100%;
  margin: 36px 0 8px;
  padding: 28px;
  border: 2px dashed #89aaaa;
  border-radius: 4px;
  background: transparent;
  color: #0c2222;
}

.factory-program-builder[hidden] { display: none; }

.factory-program-heading,
.factory-program-summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
}

.factory-program-eyebrow {
  color: #f4513d;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.factory-program-heading h3 {
  margin: 4px 0 0;
  font-size: 28px;
  line-height: 1.2;
}

.factory-program-reset {
  border: 0;
  background: transparent;
  color: #365556;
  font: 700 14px Manrope, sans-serif;
  text-decoration: underline;
  cursor: pointer;
}

.factory-program-sequence {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 24px 18px;
  min-height: 300px;
  margin: 20px 0 14px;
}

.factory-program-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  width: 100%;
  height: 300px;
  padding: 34px 8px 12px;
  color: #0c2222;
  text-align: center;
}

.factory-program-step.factory-program-dragging { opacity: .42; }
.factory-program-step.factory-program-drop-target { outline: 2px dashed #f4513d; outline-offset: 3px; }
.factory-program-step::after {
  position: absolute;
  top: 116px;
  right: -16px;
  color: #4f8989;
  content: "→";
  font-size: 24px;
  font-weight: 600;
}
.factory-program-step:nth-child(5n)::after,
.factory-program-step:last-child::after,
.factory-program-ghost::after { display: none; }
.factory-program-symbol-stack {
  position: relative;
  flex: none;
  width: 116px;
  height: 116px;
  margin: 0 auto 6px;
}
.factory-program-symbol {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  isolation: isolate;
  width: 116px;
  height: 116px;
  color: #fff;
  font-size: 21px;
  font-weight: 800;
}
.factory-program-symbol[data-layer="3"] { z-index: 1; transform: translate(-12px, -12px); }
.factory-program-symbol[data-layer="2"] { z-index: 2; transform: translate(-6px, -6px); }
.factory-program-symbol[data-layer="1"] { z-index: 3; }
.factory-program-symbol::before {
  position: absolute;
  z-index: -1;
  box-sizing: border-box;
  border: 2px solid currentColor;
  background: var(--factory-symbol-color);
  content: "";
}
.factory-program-symbol--360 { --factory-symbol-color: #168d91; }
.factory-program-symbol--360::before { width: 108px; height: 108px; border-radius: 50%; }
.factory-program-symbol--pov {
  --factory-symbol-color: #d85e49;
}
.factory-program-symbol--pov::before { width: 88px; height: 88px; border-radius: 3px; }
.factory-program-symbol--roleplay {
  --factory-symbol-color: #8260a9;
}
.factory-program-symbol--roleplay::before {
  width: 76px;
  height: 76px;
  border-radius: 3px;
  transform: rotate(45deg);
}
.factory-program-symbol--brief {
  --factory-symbol-color: #195252;
  font-size: 15px;
}
.factory-program-symbol--brief::before { width: 66px; height: 66px; border-radius: 3px; }
.factory-program-symbol--service {
  --factory-symbol-color: #367b79;
  font-size: 14px;
}
.factory-program-symbol--service::before { width: 110px; height: 78px; border-radius: 3px; }
.factory-program-step--slot .factory-program-symbol { color: var(--factory-symbol-color); }
.factory-program-step--slot .factory-program-symbol::before { background: transparent; border-color: var(--factory-symbol-color); }
.factory-program-ghost {
  position: fixed;
  z-index: 30000;
  pointer-events: none;
  opacity: .88;
  transform: translate(-50%, -50%);
  background: transparent;
}
.factory-program-ghost .factory-program-drag,
.factory-program-ghost .factory-program-remove { display: none; }

.factory-program-drag,
.factory-program-remove {
  position: absolute;
  top: 7px;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #365556;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.factory-program-drag { left: 8px; touch-action: none; cursor: grab; }
.factory-program-drag:active { cursor: grabbing; }
.factory-program-remove { right: 8px; font-size: 25px; }
.factory-program-remove:hover { color: #f4513d; }
@media (hover: hover) and (pointer: fine) {
  .factory-program-drag,
  .factory-program-remove { opacity: 0; pointer-events: none; transition: opacity 150ms ease; }
  .factory-program-step:hover .factory-program-drag,
  .factory-program-step:hover .factory-program-remove,
  .factory-program-step:focus-within .factory-program-drag,
  .factory-program-step:focus-within .factory-program-remove {
    opacity: 1;
    pointer-events: auto;
  }
}

.factory-program-category {
  color: #4b6d6e;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.factory-program-name { font-size: 15px; line-height: 1.25; }
.factory-program-detail { color: #526667; font-size: 12px; line-height: 1.3; }
.factory-program-points {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  margin-top: auto;
  border-radius: 50%;
  background: #0c2222;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.factory-program-foundation {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  width: 100%;
  margin-top: 22px;
  padding: 17px 20px 21px;
  border: 1px solid #6db5b3;
  border-radius: 4px;
  background: #e9f5f4;
  color: #0c2222;
  font-size: 14px;
  text-align: center;
}
.factory-program-foundation strong {
  font-size: 19px;
  line-height: 1.3;
}
.factory-program-foundation strong::after {
  display: block;
  width: 110px;
  height: 4px;
  margin: 7px auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, #aa77ba, #fb8c76, #60d7d1);
  content: "";
}

.factory-program-summary {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid #b3c8c8;
}

.factory-program-total,
.factory-program-recommendation { display: flex; flex-direction: column; gap: 5px; }
.factory-program-total span,
.factory-program-recommendation span { color: #526667; font-size: 13px; }
.factory-program-total strong { font-size: 30px; }
.factory-program-recommendation { align-items: flex-end; text-align: right; }
.factory-program-recommendation strong { font-size: 25px; }
.factory-program-recommendation small { color: #365556; font-size: 13px; }

@media (max-width: 1199px) {
  .factory-program-sequence { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .factory-program-step:nth-child(5n)::after { display: block; }
  .factory-program-step:nth-child(3n)::after,
  .factory-program-step:last-child::after { display: none; }
}

@media (max-width: 850px) {
  .factory-program-sequence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .factory-program-step:nth-child(3n)::after { display: block; }
  .factory-program-step:nth-child(2n)::after,
  .factory-program-step:last-child::after { display: none; }
}

@media (max-width: 700px) {
  .factory-program-builder { padding: 20px; }
  .factory-program-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .factory-program-heading h3 { font-size: 22px; }
  .factory-program-sequence { grid-template-columns: 1fr; justify-items: center; gap: 25px; }
  .factory-program-step { width: min(100%, 220px); }
  .factory-program-step::after,
  .factory-program-step:nth-child(2n)::after,
  .factory-program-step:nth-child(3n)::after,
  .factory-program-step:nth-child(5n)::after {
    top: auto;
    right: auto;
    bottom: -26px;
    left: 50%;
    display: block;
    content: "↓";
    transform: translateX(-50%);
  }
  .factory-program-step:last-child::after { display: none; }
  .factory-program-summary { align-items: flex-start; flex-direction: column; }
  .factory-program-recommendation { align-items: flex-start; text-align: left; }
}
