/* Configuration page (+ the "orbit" drawing reused by Partner Program and Contact):
   a product in the middle, the project inputs around it, thin lines as in schemes.js. */

/* ---------- orbit: drawing + labels + connectors in one fixed-ratio box ---------- */
.orb { position: relative; width: 100%; aspect-ratio: 100 / var(--h, 80); margin: 0; }
.orb svg.orb__lines { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; overflow: visible; }
.orb { --sw: 0.17; }
.orb__frame { fill: none; stroke: var(--sch-soft); stroke-width: var(--sw); stroke-dasharray: 0.6 0.8; }
.orb__ln, .orb__run { fill: none; stroke-width: var(--sw); stroke-linecap: round; stroke-linejoin: round; }
.orb__ln { stroke: var(--sch-line); opacity: 0.7; }
.orb__run { stroke: var(--lime); stroke-width: calc(var(--sw) * 2.2); stroke-dasharray: 0.06 0.94; stroke-dashoffset: 1; animation: orb-run 2.6s linear infinite; animation-delay: calc(var(--i) * -0.43s); }
@keyframes orb-run { to { stroke-dashoffset: 0; } }
.orb__art { position: absolute; transform: translate(-50%, -50%); }
.orb__art svg { max-height: none; margin: 0; }
.orb__node {
  position: absolute; z-index: 1; max-width: 25%; padding: 7px 10px; border-radius: 4px;
  background: var(--green); box-shadow: inset 0 0 0 1px var(--line);
  font-size: 11px; line-height: 1.3; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cream);
}
.orb__node[data-at="r"] { transform: translate(-100%, -50%); text-align: right; }
.orb__node[data-at="l"] { transform: translate(0, -50%); }
.orb__node[data-at="c"] { transform: translate(-50%, -50%); text-align: center; }
.orb__node[data-at="t"] { transform: translate(-50%, 0); text-align: center; }
.orb__node[data-at="b"] { transform: translate(-50%, -100%); text-align: center; }
.orb__node.is-lime { background: var(--lime); color: var(--green); box-shadow: none; }

/* drawn in when the hero art comes into view (the hero already carries data-draw="in") */
.js [data-draw="in"] .orb__ln { stroke-dasharray: 1 1.001; stroke-dashoffset: 1.0005; transition: stroke-dashoffset 1.4s var(--ease); transition-delay: calc(0.6s + var(--i) * 0.12s); }
.js [data-draw="in"].is-drawn .orb__ln { stroke-dashoffset: 0; }
.js [data-draw="in"] .orb__node, .js [data-draw="in"] .orb__frame { opacity: 0; transition: opacity 0.9s var(--ease); transition-delay: calc(1s + var(--i, 0) * 0.1s); }
.js [data-draw="in"].is-drawn .orb__node, .js [data-draw="in"].is-drawn .orb__frame { opacity: 1; }
.js [data-draw="in"] .orb__run { opacity: 0; transition: opacity 0.6s; transition-delay: 2.2s; }
.js [data-draw="in"].is-drawn .orb__run { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .orb__run { display: none; } }

@media (max-width: 900px) {
  .pgh__art .orb { max-width: 560px; margin-inline: auto; }
}
@media (max-width: 600px) {
  /* room for the outer labels inside the screen */
  .pgh__art .orb { width: 86%; }
}
@media (max-width: 600px) {
  .orb { --sw: 0.3; }
  .orb__node { max-width: 31%; padding: 5px 6px; font-size: 9px; letter-spacing: 0.03em; }
}

/* ---------- Configuration: the proof strip carries words, not figures ---------- */
.pg-cfg .figband .figures dt { font-size: clamp(22px, 2.1vw, 32px); line-height: 1.12; letter-spacing: -0.03em; max-width: 16ch; white-space: normal; }
.pg-cfg .figband .figures dd:empty { display: none; }

/* ---------- Partner Program ---------- */
.tbl-link { margin-top: clamp(28px, 3vw, 44px); font-size: 18px; }
