/* ============ PSV2 COMPAT — legacy psl-* classes remapped onto psv2 tokens ============
   Covers surfaces NOT in the mockups: city pages 332/333/334, the support archive,
   ~65 support articles, 11 taxonomy archives and search. Restyles them without
   touching their markup. ==================================================== */

/* ---- layout ---- */
.psl-section{ padding:56px var(--psv2-pad-x); }
.psl-section--dark,.psl-bg-dark{ background:var(--psv2-band); }
.psl-bg-ultra-dark{ background:var(--psv2-bg-deep); }
.psl-section--base{ background:var(--psv2-bg); }
.psl-section__container{ width:100%; max-width:var(--psv2-container); margin-inline:auto; }
.psl-container__slim{ max-width:var(--psv2-slim); margin-inline:auto; }
.psl-grid-2{ display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.psl-grid-3{ display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.psl-stack{ display:flex; flex-direction:column; gap:16px; }
.psl-border-gold{ border-color:var(--psv2-gold-border); }
.psl-texture-pinstripe{ background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px); }
.psl-reveal{ opacity:1; transform:none; }
.psl-section-footer{ margin-top:24px; }
.psl-support-layout{ display:grid; gap:28px; max-width:var(--psv2-container); margin-inline:auto;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }

/* ---- section headers ---- */
.psl-section-header{ text-align:center; margin-bottom:36px; }
.psl-section-header--left{ text-align:left; }
.psl-section-header__rule,.psl-gold-rule{ width:32px; height:1px; background:var(--psv2-gold);
  border:0; margin:0 auto 12px; }
.psl-section-header--left .psl-section-header__rule{ margin-inline:0; }
.psl-section-header__label,.psl-label{ display:block; margin-bottom:12px; font-family:var(--psv2-caps);
  font-size:.78rem; font-weight:600; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--psv2-gold-eyebrow); }
.psl-section-header__title,.psl-section-heading{ margin:0 0 14px; font-family:var(--psv2-display);
  font-size:var(--psv2-h2); font-weight:700; line-height:1.1; color:var(--psv2-text-head);
  & em{ font-style:italic; color:var(--psv2-gold-em); } }
.psl-section-header__desc{ margin:0 auto; max-width:560px; font-size:var(--psv2-lg);
  line-height:1.7; color:var(--psv2-text-soft); text-wrap:balance; }

/* ---- typography ---- */
.psl-body{ font-size:var(--psv2-lg); line-height:1.75; color:var(--psv2-text-soft); }
.psl-body-sm{ font-size:var(--psv2-md); line-height:1.7; color:var(--psv2-text-soft); }
.psl-em{ font-style:italic; color:var(--psv2-gold-em); }
.psl-list{ margin:0; padding-left:1.2em; color:var(--psv2-text-soft); line-height:1.8;
  & li{ margin-bottom:6px; } }
.psl-list--dash{ list-style:none; padding-left:0;
  & li::before{ content:"— "; color:var(--psv2-gold); } }
.psl-list--check{ list-style:none; padding-left:0;
  & li::before{ content:"✓ "; color:var(--psv2-gold); } }
.psl-list--number{ list-style:decimal; }
.psl-booking-note{ font-size:var(--psv2-xs); color:var(--psv2-text-muted); font-style:italic; }

/* ---- buttons (doubled for specificity vs ACSS) ---- */
.psl-btn{ display:inline-flex; align-items:center; justify-content:center;
  min-height:var(--psv2-tap); padding:13px 26px; border-radius:var(--psv2-radius);
  font-family:var(--psv2-caps); font-size:.82rem; font-weight:600; letter-spacing:2px;
  text-transform:uppercase; text-decoration:none; cursor:pointer;
  color:var(--psv2-gold-em); background:var(--psv2-grad-btn);
  border:1px solid var(--psv2-gold-border);
  transition:color var(--psv2-t),border-color var(--psv2-t);
  &:hover{ color:var(--psv2-gold-bright); border-color:var(--psv2-gold-bright); } }
.psl-btn--primary{ color:var(--psv2-ink); background:var(--psv2-grad-gold);
  border-color:var(--psv2-gold-border); }
.psl-btn--ghost,.psl-btn--secondary{ color:var(--psv2-gold);
  background:transparent; border-color:var(--psv2-hairline);
  &:hover{ border-color:var(--psv2-gold); background:rgba(198,175,117,.10); } }
.psl-btn--lg{ padding:16px 34px; font-size:.88rem; }
.psl-btn--sm{ padding:9px 16px; font-size:.72rem; min-height:0; }
.psl-btn--full{ width:100%; }

/* ---- badges ---- */
.psl-badge{ display:inline-flex; align-items:center; padding:5px 11px; border-radius:var(--psv2-radius);
  font-family:var(--psv2-caps); font-size:.66rem; font-weight:600; letter-spacing:1.4px;
  text-transform:uppercase; color:var(--psv2-gold-eyebrow);
  background:rgba(17,17,17,.6); border:1px solid var(--psv2-hairline); }
.psl-badge--dark{ background:var(--psv2-surface-3); }
.psl-badge--outline{ background:transparent; }

/* ---- cards ---- */
.psl-section-card{ display:flex; flex-direction:column; gap:8px; padding:20px;
  background:var(--psv2-surface-2); border:1px solid var(--psv2-hairline);
  border-radius:var(--psv2-radius); text-decoration:none; transition:border-color var(--psv2-t);
  &:hover{ border-color:var(--psv2-gold); } }
.psl-section-card__icon-wrapper{ width:44px; height:44px; display:inline-flex; align-items:center;
  justify-content:center; border:1px solid var(--psv2-hairline); border-radius:var(--psv2-radius);
  color:var(--psv2-gold); }
.psl-section-card__icon{ width:22px; height:22px; }
.psl-section-card__name{ font-family:var(--psv2-display); font-size:1.25rem; font-weight:700;
  color:var(--psv2-text-head); }
.psl-section-card__count{ font-size:var(--psv2-xs); color:var(--psv2-text-muted); }
.psl-section-card__link{ margin-top:auto; font-size:var(--psv2-sm); color:var(--psv2-gold); }

/* Support doc list: number column, stacked title/excerpt, tag pinned right.
   The spans need explicit block display — as inline they run into one another. */
.psl-doc-list{ display:flex; flex-direction:column; }
.psl-doc-item{ display:grid; grid-template-columns:2.75rem 1fr auto; gap:2px 18px;
  align-items:start; padding:18px 0; border-top:1px solid var(--psv2-hairline-soft);
  text-decoration:none; color:inherit; transition:border-color var(--psv2-t);
  &:first-child{ border-top:0; }
  &:hover .psl-doc-item__title{ color:var(--psv2-gold); }
}
/* Doc numbers are GENERATED, never stored. The section half arrives as the
   --psl-sec custom property (a quoted string, so it is valid in `content`);
   the article half is a CSS counter, which makes the sequence contiguous by
   construction — no gaps, no numbers that disagree with their section, and
   nothing to maintain when an article is added or removed.
   aria-hidden on the element: it is wayfinding, and a screen reader announcing
   "seven point three" before every link is noise, not information. */
.psl-doc-list{ counter-reset: psl-doc; }
.psl-doc-item__num::before{
  counter-increment: psl-doc;
  content: var(--psl-sec, '') '.' counter(psl-doc);
}
.psl-doc-item__num{ font-family:var(--psv2-mono,var(--psv2-body)); font-size:.75rem;
  color:var(--psv2-text-muted); font-variant-numeric:tabular-nums; padding-top:.35em; }
.psl-doc-item__body{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.psl-doc-item__title{ display:block; font-family:var(--psv2-display); font-size:1.2rem;
  font-weight:700; line-height:1.25; color:var(--psv2-text-head); }
.psl-doc-item__excerpt{ display:block; font-size:var(--psv2-sm); line-height:1.65;
  color:var(--psv2-text-soft); }
.psl-doc-item__tags{ justify-self:end; white-space:nowrap; }
@media (max-width: 700px){
  .psl-doc-item{ grid-template-columns:2.75rem 1fr; }
  .psl-doc-item__tags{ grid-column:2; justify-self:start; margin-top:6px; }
}

.psl-sidebar-card{ padding:18px; background:var(--psv2-surface); border:1px solid var(--psv2-hairline);
  border-radius:var(--psv2-radius); }
.psl-sidebar-card__title{ margin:0 0 10px; font-family:var(--psv2-caps); font-size:.68rem;
  letter-spacing:1.6px; text-transform:uppercase; color:var(--psv2-gold-eyebrow); }
.psl-sidebar-link{ display:block; padding:7px 0; font-size:var(--psv2-sm);
  color:var(--psv2-text-soft); text-decoration:none;
  &:hover{ color:var(--psv2-gold); } }

/* ---- pricing (city pages) ---- */
.psl-pricing{ background:var(--psv2-surface-2); border:1px solid var(--psv2-hairline);
  border-radius:var(--psv2-radius); padding:28px 24px; text-align:center; position:relative; }
.psl-pricing--featured{ border-color:var(--psv2-gold); }
.psl-pricing__name{ font-family:var(--psv2-display); font-size:1.4rem; font-weight:700;
  color:var(--psv2-text-head); margin-bottom:6px; }
.psl-pricing__subtitle{ font-size:var(--psv2-xs); color:var(--psv2-text-muted); }
.psl-pricing__divider{ width:32px; height:1px; background:var(--psv2-gold); margin:14px auto; border:0; }
.psl-pricing__body{ text-align:left; }
.psl-pricing__price{ font-family:var(--psv2-display); font-size:1.9rem; color:var(--psv2-gold-bright); }
.psl-pricing__unit{ font-size:var(--psv2-xs); color:var(--psv2-text-soft); }
.psl-policies{ display:flex; flex-wrap:wrap; gap:24px; justify-content:center; margin-top:18px;
  padding-top:20px; border-top:1px solid var(--psv2-hairline); }
.psl-policy{ display:flex; align-items:center; gap:8px; font-size:var(--psv2-sm);
  color:var(--psv2-text-soft); }
.psl-policy__icon{ width:18px; height:18px; color:var(--psv2-gold); }

/* ---- legacy hero (city pages) ---- */
.psl-lounge-hero{ position:relative; overflow:hidden; padding:84px var(--psv2-pad-x) 64px;
  border-bottom:1px solid var(--psv2-hairline);
  & > *{ position:relative; z-index:2; } }
.psl-lounge-hero__bg,.psl-lounge-hero__bg-image{ position:absolute; inset:0; z-index:0;
  & img{ width:100%; height:100%; object-fit:cover; display:block; } }
.psl-lounge-hero__overlay{ position:absolute; inset:0; z-index:1;
  /* Left-weighted as well as top-to-bottom. All three /indoor-golf/ heroes put
     their eyebrow, h1, lead and CTA on the LEFT, so a purely vertical scrim
     leaves the headline sitting on whatever the photograph is doing there —
     which, once these pages started using real interior shots, is a brightly
     lit simulator screen. This keeps the room visible on the right and gives
     the type a dark ground on the left. */
  background:
    linear-gradient(90deg,rgba(17,17,17,.88) 0%,rgba(17,17,17,.72) 42%,rgba(17,17,17,.32) 100%),
    linear-gradient(180deg,rgba(17,17,17,.5),rgba(17,17,17,.9)); }
.psl-lounge-hero__content{ position:relative; z-index:2; max-width:var(--psv2-container);
  margin-inline:auto; }
.psl-lounge-hero__title{ margin:0 0 12px; font-family:var(--psv2-display);
  font-size:clamp(2rem,5vw,3.25rem); font-weight:700; line-height:1.06; color:var(--psv2-text-hero);
  & em{ font-style:italic; color:var(--psv2-gold-em); } }
.psl-lounge-hero__sub{ font-size:var(--psv2-lg); line-height:1.7; color:var(--psv2-text-soft); }
.psl-hero__tag{ display:inline-flex; margin-bottom:12px; font-family:var(--psv2-caps);
  font-size:.74rem; letter-spacing:2.5px; text-transform:uppercase; color:var(--psv2-gold-eyebrow); }
.psl-hero__accent-tl,.psl-hero__accent-br{ position:absolute; width:120px; height:120px;
  border:1px solid rgba(198,175,117,.35); z-index:1; }
.psl-hero__accent-tl{ top:24px; left:24px; border-right:0; border-bottom:0; }
.psl-hero__accent-br{ bottom:24px; right:24px; border-left:0; border-top:0; }

/* ---- FAQ (contact-style, used on city pages) ---- */
.psl-contact-faq{ display:block; }
.psl-contact-faq__item{ padding-block:16px; border-top:1px solid var(--psv2-hairline);
  &:last-child{ border-bottom:1px solid var(--psv2-hairline); } }
.psl-contact-faq__question{ margin:0 0 6px; font-family:var(--psv2-display); font-size:1.2rem;
  font-weight:700; color:var(--psv2-text-head); }
.psl-contact-faq__answer{ margin:0; font-size:var(--psv2-sm); line-height:1.7; color:var(--psv2-text-soft); }

/* ---- alerts / emergency ---- */
.psl-alert{ display:flex; gap:12px; padding:16px 18px; border-radius:var(--psv2-radius);
  background:var(--psv2-surface); border:1px solid var(--psv2-hairline); }
.psl-alert--warning{ border-color:var(--psv2-gold-border); background:rgba(198,175,117,.06); }
.psl-alert__icon{ color:var(--psv2-gold); flex:none; }
.psl-alert__title{ margin:0 0 4px; font-family:var(--psv2-display); font-size:1.05rem;
  font-weight:700; color:var(--psv2-text-head); }
.psl-alert__link{ color:var(--psv2-gold); text-decoration:none; &:hover{ text-decoration:underline; } }
.psl-emergency-cta{ display:flex; flex-direction:column; gap:8px; padding:18px;
  background:var(--psv2-surface); border:1px solid var(--psv2-gold-border);
  border-radius:var(--psv2-radius); }
.psl-emergency-cta__icon{ color:var(--psv2-gold); }
.psl-emergency-cta__title{ font-family:var(--psv2-display); font-size:1.1rem; font-weight:700;
  color:var(--psv2-text-head); }
.psl-emergency-cta__text{ font-size:var(--psv2-sm); color:var(--psv2-text-soft); }

/* ---- search / inputs ---- */
.psl-search{ position:relative; display:flex; align-items:center; gap:8px; }
.psl-search--inline{ max-width:420px; }
.psl-search__icon{ color:var(--psv2-text-muted); flex:none; }
.psl-search__input,.psl-input{ width:100%; padding:11px 14px; border-radius:var(--psv2-radius);
  background:var(--psv2-surface-3); border:1px solid var(--psv2-hairline);
  color:var(--psv2-text); font-family:var(--psv2-body); font-size:var(--psv2-sm);
  &::placeholder{ color:var(--psv2-text-muted); }
  &:focus{ outline:2px solid var(--psv2-gold); outline-offset:2px; border-color:var(--psv2-gold); } }
.psl-input--sm{ padding:8px 12px; font-size:var(--psv2-xs); }

/* ---- breadcrumb ---- */
.psl-breadcrumb{ display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  font-size:var(--psv2-xs); color:var(--psv2-text-muted);
  & a{ color:var(--psv2-text-soft); text-decoration:none; &:hover{ color:var(--psv2-gold); } } }
.psl-breadcrumb__sep{ color:var(--psv2-text-muted); }
.psl-breadcrumb__current{ color:var(--psv2-gold-eyebrow); }

/* ---- generic CTA band ---- */
.psl-cta{ position:relative; overflow:hidden; padding:56px var(--psv2-pad-x); text-align:center;
  background:var(--psv2-band); border-block:1px solid var(--psv2-hairline-soft); }
.psl-cta__pattern{ position:absolute; inset:0; opacity:.25; z-index:0; }
.psl-cta__content{ position:relative; z-index:1; max-width:var(--psv2-slim); margin-inline:auto; }
.psl-cta__label{ font-family:var(--psv2-caps); font-size:.72rem; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--psv2-gold-eyebrow); }
.psl-cta__title{ margin:10px 0 10px; font-family:var(--psv2-display); font-size:var(--psv2-h2);
  font-weight:700; color:var(--psv2-text-head);
  & em{ font-style:italic; color:var(--psv2-gold-em); } }
.psl-cta__desc{ font-size:var(--psv2-md); line-height:1.7; color:var(--psv2-text-soft); }

/* ---- article + feedback ---- */
.psl-article{ max-width:var(--psv2-slim); margin-inline:auto; color:var(--psv2-text-soft);
  line-height:1.8;
  & h2{ margin:32px 0 12px; font-family:var(--psv2-display); font-size:1.75rem; font-weight:700;
    color:var(--psv2-text-head); }
  & h3{ margin:24px 0 10px; font-family:var(--psv2-display); font-size:1.35rem; font-weight:700;
    color:var(--psv2-text-head); }
  & p{ margin:0 0 16px; }
  & a{ color:var(--psv2-gold); }
  & ul,& ol{ margin:0 0 16px; padding-left:1.3em; }
  & li{ margin-bottom:8px; }
  & table{ width:100%; border-collapse:collapse; margin:0 0 20px;
    & th,& td{ padding:10px 12px; border:1px solid var(--psv2-hairline); text-align:left; }
    & th{ background:var(--psv2-surface-2); color:var(--psv2-text-head); } } }
.psl-article-cta{ margin-top:32px; padding:20px; background:var(--psv2-surface);
  border:1px solid var(--psv2-hairline); border-radius:var(--psv2-radius); }
.psl-feedback{ margin-top:28px; padding-top:18px; border-top:1px solid var(--psv2-hairline); }
.psl-feedback__text{ font-size:var(--psv2-sm); color:var(--psv2-text-soft); margin-bottom:10px; }
.psl-feedback__buttons{ display:flex; gap:10px; flex-wrap:wrap; }

/* ---- misc ---- */
.psl-reviews-summary-slot{ display:block; }

/* ---------- Fluent Forms (contact) ---------- */
.fluentform{ margin-top:18px; }
.fluentform .ff-el-group{ margin-bottom:16px; }
.fluentform .ff-el-input--label label{ display:block; margin-bottom:6px;
  font-family:var(--psv2-caps); font-size:12px; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--psv2-gold-eyebrow); }
.fluentform .ff-el-form-control{ width:100%; padding:13px 15px; border-radius:6px;
  background:var(--psv2-surface-3); border:1px solid var(--psv2-hairline);
  color:var(--psv2-text); font-family:var(--psv2-body); font-size:16px; line-height:1.5;
  &::placeholder{ color:var(--psv2-text-muted); }
  &:focus{ outline:2px solid var(--psv2-gold); outline-offset:2px; border-color:var(--psv2-gold); } }
.fluentform textarea.ff-el-form-control{ min-height:130px; resize:vertical; }
.fluentform .ff-btn-submit,.fluentform button[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center; min-height:var(--psv2-tap);
  padding:14px 30px; border-radius:6px; cursor:pointer;
  font-family:var(--psv2-caps); font-size:.82rem; font-weight:600; letter-spacing:2px;
  text-transform:uppercase; color:var(--psv2-gold-em);
  background:var(--psv2-grad-btn); border:1px solid var(--psv2-gold-border);
  &:hover{ color:var(--psv2-gold-bright); border-color:var(--psv2-gold-bright); } }
.fluentform .ff-el-is-error .ff-el-form-control{ border-color:#b04a4a; }
.fluentform .error,.fluentform .text-danger{ color:#e79b9b; font-size:13px; margin-top:4px; }
.fluentform .ff-message-success{ padding:16px 18px; border-radius:6px;
  background:rgba(74,124,89,.12); border:1px solid #4a7c59; color:var(--psv2-text); }
.ff-el-group.ff-el-form-top .ff-el-input--content{ margin:0; }

/* ================= SUPPORT ARCHIVE (template 87) =================
   The archive keeps its legacy psl-section-card markup because it comes from a
   loop over the support_section taxonomy — restyled here rather than rebuilt.
   Mockup: 240px-min auto-fit grid, gap 12, text-only bordered cards. */
.psv2-seccards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
.psl-section-card{ position:relative; padding:20px 18px; background:none;
  border:1px solid var(--psv2-hairline); border-radius:var(--psv2-radius);
  transition:border-color var(--psv2-t);
  &:hover{ border-color:var(--psv2-gold); } }
.psl-section-card__icon-wrapper{ display:none; }        /* mockup card is text-only */
.psl-section-card__name{ display:block; font-family:var(--psv2-display); font-size:21px;
  font-weight:700; line-height:1.2; color:var(--psv2-text-head); margin-bottom:4px; }
.psl-section-card__count{ display:block; font-size:16px; color:var(--psv2-text-soft); }
/* the whole card is the link in the mockup — stretch it and hide its label */
.psl-section-card__link{ position:absolute; inset:0; overflow:hidden;
  text-indent:-200vw; white-space:nowrap; }

/* Support archive — "Need Help Right Now?" rows and the Contact Support card.
   Both render from the archive template as unclassed divs; classed via Etch. */
.psv2-issues{ border:1px solid var(--psv2-hairline); border-radius:var(--psv2-radius);
  overflow:hidden; }
.psv2-issue{ display:flex; align-items:baseline; gap:10px; padding:14px 18px;
  font-size:16px; line-height:1.6; color:var(--psv2-text-soft);
  border-top:1px solid var(--psv2-hairline);
  &:first-child{ border-top:0; }
  & > span{ flex:none; }
  & > div{ flex:1; }
  & strong{ color:var(--psv2-text-head); }
  & a{ color:var(--psv2-gold); text-decoration:none; white-space:nowrap;
    &:hover{ text-decoration:underline; } } }

.psv2-supportcta{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px;
  padding:24px 22px; background:var(--psv2-surface-3);
  border:1px solid var(--psv2-hairline); border-radius:var(--psv2-radius);
  & > :is(p,h2){ flex-basis:100%; margin:0; }
  & > .psv2-lede{ flex:1; min-width:260px; flex-basis:auto; }
  & > .psv2-btn{ margin-left:auto; } }

/* Support search. The Etch build shipped a bare browser input here; give it the
   same surface language as the cards it sits above. */
.psl-support-search{ display:flex; margin:0 0 28px; }
.psl-support-search input[type="search"]{
  width:100%; max-width:520px; padding:13px 16px;
  font-family:var(--psv2-body); font-size:16px; color:var(--psv2-text);
  background:var(--psv2-surface); border:1px solid var(--psv2-hairline);
  border-radius:var(--psv2-radius); outline:none;
  &::placeholder{ color:var(--psv2-text-muted); }
  &:focus-visible{ border-color:var(--psv2-gold); }
}
.screen-reader-text{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}

/* ---- support article header ----
   breadcrumb -> badges -> title -> excerpt -> rule. Under Etch these carried
   inline margins that did not survive the port, and .psl-doc-badges never had
   a rule at all, so the whole header collapsed into one crammed block.
   Set the rhythm here rather than per-element in the template. */
.psl-breadcrumb{ margin:0 0 28px; font-size:var(--psv2-sm); }
/* Taxonomy header has no badge row between the breadcrumb and the title, so it
   needs the space the article gets from those chips. */
.psl-tax-head{ margin:0 0 34px; }
.psl-tax-head .psv2-h2{ margin:0 0 18px; }
.psl-tax-head .psv2-lede{ margin:0; max-width:70ch; }
.psl-doc-badges{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; }
.psl-article-head .psl-section-heading{ margin:0 0 18px; }
.psl-article-head .psl-body{ margin:0 0 30px; max-width:66ch; }
/* the rule is a divider between the standfirst and the body, not a centred
   flourish — align it left with the text it separates */
.psl-article-head .psl-gold-rule{ width:56px; margin:0 0 34px; }

/* Document number on a single article. Quieter than the classifier badges
   beside it — it is a reference, not a category. */
.psl-badge--num{ font-family:var(--psv2-mono,var(--psv2-body)); letter-spacing:.04em;
  background:transparent; border:1px dashed var(--psv2-border,rgba(255,255,255,.18));
  color:var(--psv2-text-muted); font-variant-numeric:tabular-nums; }
