/* ============================================================
   THE TWO PATHS — the private terminal beat.

   His knowledge, and the strongest fact on the brief that nothing was
   using: Plaisance keeps a business-aviation terminal separate from the
   main one. Verified Aug 2026 — Jet Prime (jetprime.mu, Air Elite network)
   and General Aviation (Mauritius) Ltd, the FBO at the GAM Terminal,
   Plaine Magnien. Ground Services Ltd operates there too.

   ⚠️ WHAT THIS DRAWING MUST NOT SAY: that you skip immigration. You do not.
   Customs and immigration still happen — they happen in the lounge instead
   of in a hall, which is why the private row carries them ON the Lounge
   node rather than dropping them. Anyone who has actually flown privately
   knows border control does not go away, and claiming it does would fail
   the one audience this piece is written for.

   ⚠️ NO INVENTED TIME ON THE PRIVATE ROW. The airport publishes "two to
   three hours before departure" for a scheduled international flight, so
   that number is sourced and attributed in the copy. Jet Prime publishes no
   equivalent arrival figure, so none is printed. The drawing therefore
   encodes STEP COUNT, which is the thing it can honestly claim, and the
   rows are as long as their steps are many — nothing is scaled for effect.
   Same discipline as the empty-leg bars in legmap.css.

   Vocabulary is deliberately the other two drawings': hairline rules, mono
   labels, --accent only on the thing that matters. Costs no credits.
   ============================================================ */

.paths{ margin:2.6rem 0; }
.paths__set{ list-style:none; margin:0; padding:0; }

.paths__row{
  padding:1.4rem 0;
  border-top:1px solid var(--faint);
}
.paths__row:last-child{ border-bottom:1px solid var(--faint); }

.paths__label{
  display:block; margin-bottom:1.1rem;
  font:400 .78rem/1.2 'Geist Mono',ui-monospace,monospace;
  letter-spacing:.1em; text-transform:uppercase; color:var(--dim);
}
.paths__row--priv .paths__label{ color:var(--accent); }

.paths__steps{
  list-style:none; margin:0; padding:0;
  display:flex; align-items:flex-start;
}

/* Each step owns a fixed column, so six steps draw twice as far as three.
   The row length IS the step count — that is the whole argument. */
.paths__steps > li{
  position:relative;
  flex:0 0 7.2rem;
  padding-top:1.15rem;
  font:400 .74rem/1.35 'Geist Mono',ui-monospace,monospace;
  letter-spacing:.05em; text-transform:uppercase; color:var(--dim);
}

/* the connector, drawn behind the nodes */
.paths__steps > li::before{
  content:""; position:absolute; left:0; right:0; top:4px;
  height:1px; background:var(--faint);
}
.paths__steps > li:last-child::before{ right:auto; width:0; }

/* the node */
.paths__steps > li::after{
  content:""; position:absolute; left:0; top:0;
  width:9px; height:9px; border-radius:50%;
  background:var(--sky); border:1px solid var(--dim);
  box-sizing:border-box;
}
.paths__row--priv .paths__steps > li::after{
  border-color:var(--accent); background:var(--accent);
}

/* the sub-label that keeps the drawing honest: immigration and customs
   still happen, they just happen here */
/* ⚠️ nowrap and allowed to run past its own column. The private row has only
   three columns, so there is empty space to the right of it — and WIDENING
   the columns to fit this text was the wrong fix, because the row's length is
   the step count and must not be padded for typesetting. */
.paths__sub{
  display:block; margin-top:.3rem; white-space:nowrap;
  font-size:.66rem; letter-spacing:.04em;
  color:var(--faint-text,var(--dim)); opacity:.75; text-transform:none;
}

.paths__foot{
  margin-top:1.3rem;
  font:400 .78rem/1.5 'Geist Mono',ui-monospace,monospace;
  letter-spacing:.04em; color:var(--dim);
}
.paths__foot b{ color:var(--accent); font-weight:400; }

/* ---------------- narrow ----------------
   ⚠️ Six columns at 7.2rem is ~45rem and would blow straight through a
   375px viewport. The steps become a vertical list with the connector
   turned on its side, so the private path is still visibly the shorter
   walk — fewer rows instead of a shorter line. */
@media (max-width:47.99em){
  .paths__steps{ display:block; }
  .paths__steps > li{
    padding:0 0 .95rem 1.5rem;
  }
  .paths__steps > li:last-child{ padding-bottom:0; }
  .paths__steps > li::before{
    left:4px; right:auto; top:0; bottom:0;
    width:1px; height:auto;
  }
  .paths__steps > li:last-child::before{ bottom:auto; height:0; }
  .paths__steps > li::after{ top:0; left:0; }
}
