/*
 * FxVPSPRO — pricing table and tools carousel.
 *
 * No backdrop-filter anywhere: this sits over the fixed WebGL canvas, and
 * blurring a moving backdrop on this many elements is what made the page
 * stutter before. Solid tints instead. See globe.css for the full note.
 */

.fxvps-globe-page .pricing{position:relative;z-index:1}

.fxvps-globe-page .pricing-draft{
  max-width:720px;margin:-24px auto 34px;padding:11px 16px;border-radius:10px;
  border:1px solid rgba(255,210,122,.34);background:rgba(255,210,122,.07);
  color:var(--gold);font-size:12.5px;line-height:1.55;text-align:center;
}
.fxvps-globe-page .pricing-draft strong{color:#ffe6b8}

/* ── controls ─────────────────────────────────────────────────────────── */
.fxvps-globe-page .pricing-controls{
  display:flex;flex-direction:column;align-items:center;gap:16px;
  margin-bottom:clamp(30px,4vw,44px);
}

.fxvps-globe-page .pricing-tabs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.fxvps-globe-page .pricing-tab{
  display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;
  border:1px solid var(--line);background:rgba(10,15,33,.6);
  font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;
  transition:color .18s ease,border-color .18s ease,background .18s ease;
}
.fxvps-globe-page .pricing-tab:hover{color:var(--ink);border-color:var(--line-strong)}
.fxvps-globe-page .pricing-tab.is-active{
  color:var(--accent-ink);border-color:transparent;
  background:linear-gradient(180deg,var(--accent),var(--accent-2));
  box-shadow:0 10px 26px -12px rgba(var(--accent-rgb),.7);
}
.fxvps-globe-page .pricing-tab em{
  font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.08em;
  padding:2px 5px;border-radius:5px;background:rgba(255,210,122,.16);color:var(--gold);
}
.fxvps-globe-page .pricing-tab.is-active em{background:rgba(3,32,24,.22);color:var(--accent-ink)}

/* segmented billing switch with a sliding thumb */
.fxvps-globe-page .pricing-cycles{
  position:relative;display:flex;gap:2px;padding:4px;border-radius:14px;
  border:1px solid var(--line-strong);background:rgba(8,13,28,.8);
  overflow-x:auto;scrollbar-width:none;max-width:100%;
}
.fxvps-globe-page .pricing-cycles::-webkit-scrollbar{display:none}
.fxvps-globe-page .pricing-cycles-slider{
  position:absolute;top:4px;left:0;height:calc(100% - 8px);width:0;border-radius:11px;
  background:rgba(var(--accent-rgb),.13);border:1px solid rgba(var(--accent-rgb),.32);
  transition:transform .3s cubic-bezier(.22,.7,.2,1),width .3s cubic-bezier(.22,.7,.2,1),opacity .2s ease;
  opacity:0;pointer-events:none;
}
.fxvps-globe-page .pricing-cycles.ready .pricing-cycles-slider{opacity:1}
.fxvps-globe-page .pricing-cycle{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;
  padding:9px 15px;border:0;border-radius:11px;background:none;cursor:pointer;
  font-size:13.5px;font-weight:600;color:var(--muted);white-space:nowrap;
  transition:color .18s ease;
}
.fxvps-globe-page .pricing-cycle:hover{color:var(--ink)}
.fxvps-globe-page .pricing-cycle.is-active{color:var(--accent)}
.fxvps-globe-page .pricing-cycle em{
  font-style:normal;font-size:10px;font-weight:800;padding:2px 5px;border-radius:5px;
  background:rgba(var(--accent-rgb),.14);color:var(--accent);
}
.fxvps-globe-page .pricing-cycle.is-active em{background:rgba(var(--accent-rgb),.22)}

/* ── plans ────────────────────────────────────────────────────────────── */
.fxvps-globe-page .pricing-panel[hidden]{display:none}
.fxvps-globe-page .pricing-tagline{
  margin:0 0 20px;text-align:center;font-size:14px;color:var(--muted-2);
}
.fxvps-globe-page .plan-grid{
  display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:16px;align-items:stretch;
}

.fxvps-globe-page .plan{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  border-radius:16px;background:var(--glass);border:1px solid var(--line);
  transition:transform .28s cubic-bezier(.22,.7,.2,1),border-color .28s ease,box-shadow .28s ease;
}
.fxvps-globe-page .plan:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.fxvps-globe-page .plan.is-popular{
  border-color:rgba(var(--accent-rgb),.45);
  box-shadow:0 0 0 1px rgba(var(--accent-rgb),.12),0 30px 70px -34px rgba(var(--accent-rgb),.55);
}

/* title strip, like a window chrome bar */
.fxvps-globe-page .plan-head{
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  border-bottom:1px solid var(--line);background:rgba(255,255,255,.028);
}
.fxvps-globe-page .plan.is-popular .plan-head{
  background:linear-gradient(90deg,rgba(var(--accent-rgb),.1),rgba(var(--accent-rgb),.02));
  border-bottom-color:rgba(var(--accent-rgb),.26);
}
.fxvps-globe-page .plan-dots{display:inline-flex;gap:4px;flex:0 0 auto}
.fxvps-globe-page .plan-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2)}
.fxvps-globe-page .plan.is-popular .plan-dots i:nth-child(3){background:var(--accent)}
.fxvps-globe-page .plan-slug{
  font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em;
}
.fxvps-globe-page .plan-flag{
  margin-left:auto;padding:3px 9px;border-radius:999px;white-space:nowrap;
  font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--accent-ink);background:linear-gradient(180deg,var(--accent),var(--accent-2));
}

.fxvps-globe-page .plan-body{display:flex;flex-direction:column;padding:18px 16px 16px;flex:1}
.fxvps-globe-page .plan-blurb{
  margin:0 0 16px;font-size:12.5px;line-height:1.45;color:var(--muted-2);min-height:2.6em;
}

.fxvps-globe-page .plan-price{display:flex;align-items:baseline;gap:5px;margin:0}
.fxvps-globe-page .plan-amount{
  font-size:clamp(28px,2.9vw,38px);font-weight:800;letter-spacing:-.035em;line-height:1;
  color:var(--ink);transition:opacity .16s ease,transform .16s ease;
}
.fxvps-globe-page .plan.is-popular .plan-amount{color:var(--accent)}
.fxvps-globe-page .plan-amount.is-swapping{opacity:0;transform:translateY(-4px)}
.fxvps-globe-page .plan-per{font-size:13px;font-weight:600;color:var(--muted-2)}

/* struck baseline + saving pill; both empty on the plan's shortest term */
.fxvps-globe-page .plan-compare{
  display:flex;align-items:center;gap:8px;margin:9px 0 0;min-height:22px;
}
.fxvps-globe-page .plan-was{font-size:13px;color:var(--muted-2);text-decoration-thickness:1px}
.fxvps-globe-page .plan-off:not(:empty){
  padding:2px 7px;border-radius:6px;font-size:11px;font-weight:800;
  color:var(--accent);background:rgba(var(--accent-rgb),.14);border:1px solid rgba(var(--accent-rgb),.26);
}
.fxvps-globe-page .plan-saved{
  margin:7px 0 0;min-height:1.2em;font-size:12.5px;font-weight:700;color:var(--accent);
}
.fxvps-globe-page .plan-billed{margin:3px 0 0;min-height:1.2em;font-size:11.5px;color:var(--muted-2)}

/* a plan that does not sell the selected term: "from $2.40 /mo" + the note */
.fxvps-globe-page .plan-from{display:none;font-size:13px;font-weight:600;color:var(--muted-2)}
.fxvps-globe-page .plan.is-na .plan-from{display:inline}
.fxvps-globe-page .plan.is-na .plan-amount{color:var(--muted)}
.fxvps-globe-page .plan.is-na .plan-billed{color:var(--gold)}

/* capacity meter */
.fxvps-globe-page .plan-meter{
  display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:18px 0 0;
  padding-top:16px;border-top:1px solid var(--line);
}
.fxvps-globe-page .meter-label{
  font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);
}
.fxvps-globe-page .meter-value{
  font-size:11.5px;font-weight:700;color:var(--ink);text-align:right;
}
.fxvps-globe-page .meter-track{
  grid-column:1/-1;height:3px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;
}
.fxvps-globe-page .meter-track i{
  display:block;height:100%;border-radius:2px;
  background:linear-gradient(90deg,var(--accent-2),var(--accent));
}
.fxvps-globe-page .meter-track.is-full i{width:100%;opacity:.55}

.fxvps-globe-page .plan-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  margin-top:16px;padding:12px 16px;border-radius:10px;
  font-size:13.5px;font-weight:700;text-decoration:none;white-space:nowrap;
  color:var(--ink);background:rgba(255,255,255,.05);border:1px solid var(--line-strong);
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.fxvps-globe-page .plan-cta:hover{background:rgba(255,255,255,.1);border-color:rgba(var(--accent-rgb),.4)}
.fxvps-globe-page .plan-cta svg{transition:transform .18s ease}
.fxvps-globe-page .plan-cta:hover svg{transform:translate(2px,-2px)}
.fxvps-globe-page .plan.is-popular .plan-cta{
  color:var(--accent-ink);border-color:transparent;
  background:linear-gradient(180deg,var(--accent),var(--accent-2));
  box-shadow:0 12px 30px -14px rgba(var(--accent-rgb),.8);
}
.fxvps-globe-page .plan.is-popular .plan-cta:hover{filter:brightness(1.06)}

/* 2x2 spec tiles, hairline-separated like a table */
.fxvps-globe-page .plan-stats{
  display:grid;grid-template-columns:1fr 1fr;margin-top:18px;
  border:1px solid var(--line);border-radius:11px;overflow:hidden;
}
.fxvps-globe-page .stat{
  display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;
  padding:10px 11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
}
.fxvps-globe-page .stat:nth-child(2n){border-right:0}
.fxvps-globe-page .stat:nth-last-child(-n+2){border-bottom:0}
.fxvps-globe-page .stat svg{grid-row:1/3;color:var(--muted-2)}
.fxvps-globe-page .stat b{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.15}
.fxvps-globe-page .stat span{
  font-size:8.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2);
}

/* feature rows */
.fxvps-globe-page .plan-rows{
  list-style:none;margin:10px 0 0;padding:0;
  border:1px solid var(--line);border-radius:11px;overflow:hidden;
}
.fxvps-globe-page .plan-rows li{
  display:flex;align-items:center;gap:9px;padding:9px 11px;list-style:none;
  font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--line);
}
.fxvps-globe-page .plan-rows li:last-child{border-bottom:0}
.fxvps-globe-page .plan-rows svg{color:var(--muted-2);flex:0 0 auto}

/* ── included-on-every-plan strip ─────────────────────────────────────── */
.fxvps-globe-page .plan-includes{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;
  margin-top:clamp(24px,3vw,34px);padding:16px 18px;border-radius:14px;
  background:rgba(255,255,255,.028);border:1px solid var(--line);
}
.fxvps-globe-page .plan-includes-label{
  font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-2);margin-right:4px;
}
.fxvps-globe-page .plan-chip{
  display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;
  font-size:12.5px;font-weight:600;color:var(--muted);
  background:rgba(10,15,33,.6);border:1px solid var(--line);
}
.fxvps-globe-page .plan-chip svg{color:var(--accent)}

.fxvps-globe-page .pricing-note{
  max-width:760px;margin:16px auto 0;text-align:center;
  font-size:11.5px;line-height:1.6;color:var(--muted-2);
}

/* ── tools carousel ───────────────────────────────────────────────────── */
.fxvps-globe-page .tools{margin-top:clamp(48px,6vw,72px)}
.fxvps-globe-page .tools-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;
}
.fxvps-globe-page .tools-head h3{
  font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);
}
.fxvps-globe-page .tools-nav{display:flex;gap:8px}
.fxvps-globe-page .tools-btn{
  display:grid;place-items:center;width:36px;height:36px;border-radius:10px;cursor:pointer;
  border:1px solid var(--line-strong);background:rgba(255,255,255,.05);color:var(--muted);
  transition:color .18s ease,background .18s ease,opacity .18s ease;
}
.fxvps-globe-page .tools-btn:hover{color:var(--ink);background:rgba(255,255,255,.1)}
.fxvps-globe-page .tools-btn[disabled]{opacity:.3;cursor:default}
.fxvps-globe-page [data-tools-prev] svg{transform:rotate(90deg)}
.fxvps-globe-page [data-tools-next] svg{transform:rotate(-90deg)}

.fxvps-globe-page .tools-rail{
  display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;scrollbar-width:none;padding:2px 2px 6px;
}
.fxvps-globe-page .tools-rail::-webkit-scrollbar{display:none}
.fxvps-globe-page .tools-rail:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:14px}
.fxvps-globe-page .tool{
  flex:0 0 232px;scroll-snap-align:start;
  display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:var(--radius);
  background:var(--glass);border:1px solid var(--line);text-decoration:none;
  transition:transform .2s cubic-bezier(.22,.7,.2,1),border-color .2s ease,background .2s ease;
}
.fxvps-globe-page .tool:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.36);background:var(--glass-2)}
.fxvps-globe-page .tool-icon{
  display:grid;place-items:center;width:38px;height:38px;border-radius:11px;margin-bottom:6px;
  color:var(--accent);background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.18);
}
.fxvps-globe-page .tool-label{font-size:14.5px;font-weight:700;color:var(--ink)}
.fxvps-globe-page .tool-desc{font-size:12.5px;line-height:1.5;color:var(--muted-2)}

/* ── responsive ───────────────────────────────────────────────────────── */
@media (max-width:1180px){
  .fxvps-globe-page .plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .fxvps-globe-page .pricing-cycles{align-self:stretch;justify-content:flex-start}
  .fxvps-globe-page .pricing-cycle{padding:9px 12px;font-size:13px}
  .fxvps-globe-page .plan-blurb{min-height:0}
}
@media (max-width:560px){
  .fxvps-globe-page .plan-grid{grid-template-columns:1fr}
  .fxvps-globe-page .tool{flex-basis:200px}
}

@media (prefers-reduced-motion:reduce){
  .fxvps-globe-page .pricing *{transition:none !important}
  .fxvps-globe-page .tools-rail{scroll-behavior:auto}
}

/* =========================================================================
   v0.18 — the controls as one bar.
   Before this, the heading, a staging notice, the category tabs, the term
   switcher and the group tagline were five separate centred blocks stacked
   down the middle of the globe with a lot of air between them. They are now
   one bordered control: categories left, terms right, tagline underneath.
   ========================================================================= */

.fxvps-globe-page .pricing .section-head{margin-bottom:clamp(20px,2.4vw,30px)}

.fxvps-globe-page .pricing-controls{
  flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;
  gap:14px 18px;padding:12px 14px;border-radius:18px;
  max-width:1180px;margin:0 auto clamp(18px,2.2vw,26px);
  background:rgba(8,13,28,.82);border:1px solid var(--line);
}

/* the two halves no longer need borders of their own */
.fxvps-globe-page .pricing-tabs{gap:5px;justify-content:flex-start}
.fxvps-globe-page .pricing-tab{padding:9px 16px;font-size:13.5px}

.fxvps-globe-page .pricing-controls .pricing-cycles{
  border:0;background:rgba(255,255,255,.04);padding:3px;border-radius:12px;
}
.fxvps-globe-page .pricing-cycles-slider{top:3px;height:calc(100% - 6px)}
.fxvps-globe-page .pricing-cycle{padding:8px 11px;font-size:12.5px}
.fxvps-globe-page .pricing-cycle em{font-size:9.5px;padding:2px 4px}

/* tagline: one quiet line under the bar, not a floating sentence */
.fxvps-globe-page .pricing-tagline{
  margin:0 0 18px;font-size:13px;color:var(--muted-2);
}

/* the staging notice is a developer note; it sits with the price footnote */
.fxvps-globe-page .pricing-draft{
  max-width:760px;margin:12px auto 0;padding:9px 14px;font-size:11.5px;
}

@media (max-width:980px){
  .fxvps-globe-page .pricing-controls{flex-direction:column;align-items:stretch}
  .fxvps-globe-page .pricing-tabs{justify-content:center}
  .fxvps-globe-page .pricing-controls .pricing-cycles{justify-content:center}
}

/* Three categories plus six terms came to 1112px inside an 1104px bar and
   wrapped by eight pixels. Trimming the padding keeps them on one line. */
.fxvps-globe-page .pricing-controls{gap:12px 12px}
.fxvps-globe-page .pricing-tabs{flex:0 0 auto;gap:4px}
.fxvps-globe-page .pricing-tab{padding:9px 14px}
.fxvps-globe-page .pricing-controls .pricing-cycles{flex:0 1 auto}
.fxvps-globe-page .pricing-cycle{padding:8px 10px}

/* ── v0.18.3: the tagline joins the bar, and the two footnotes get a shape ─ */

/* second row of the control bar, under a hairline */
.fxvps-globe-page .pricing-bar-note{
  flex:1 0 100%;order:9;margin:2px 0 0;padding-top:11px;
  border-top:1px solid var(--line);
  text-align:center;font-size:12.5px;line-height:1.5;color:var(--muted-2);
}
.fxvps-globe-page .pricing-bar-note span[hidden]{display:none}
.fxvps-globe-page .pricing-tagline{display:none} /* superseded by the bar row */

/* the grid now follows the bar directly */
.fxvps-globe-page .pricing-panel{margin-top:0}

/* footnote: an icon and a line, centred under the content, not loose text */
.fxvps-globe-page .pricing-note{
  display:flex;align-items:flex-start;justify-content:center;gap:8px;
  max-width:720px;margin:18px auto 0;padding:11px 16px;border-radius:12px;
  background:rgba(255,255,255,.028);border:1px solid var(--line);
  text-align:left;font-size:11.5px;line-height:1.6;color:var(--muted-2);
}
.fxvps-globe-page .pricing-note svg{flex:0 0 auto;margin-top:2px;color:var(--muted-2)}

/* staging notice: a quiet label and one line, not a yellow slab */
.fxvps-globe-page .pricing-draft{
  display:flex;align-items:flex-start;justify-content:center;gap:9px;
  max-width:720px;margin:8px auto 0;padding:9px 14px;border-radius:12px;
  background:none;border:1px dashed rgba(255,210,122,.3);
  text-align:left;font-size:11px;line-height:1.55;color:var(--muted-2);
}
.fxvps-globe-page .pricing-draft em{
  flex:0 0 auto;font-style:normal;font-size:8.5px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
  padding:2px 6px;border-radius:5px;background:rgba(255,210,122,.12);
}

/* =========================================================================
   The plan section's moving backdrop.
   Two soft lights drifting behind the cards, plus a static grid. Only the
   lights move and they move on transform, so this is two composited layers
   and no main-thread work — it sits over the WebGL canvas on the home page.
   ========================================================================= */

.fxvps-globe-page .pricing{isolation:isolate;overflow:hidden}
.fxvps-globe-page .pricing-bg{
  position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
}
.fxvps-globe-page .pricing-bg i{
  position:absolute;display:block;border-radius:50%;
  width:46vw;max-width:680px;aspect-ratio:1;
  will-change:transform;
}
.fxvps-globe-page .pricing-bg .a{
  top:-16%;left:-8%;
  background:radial-gradient(circle,rgba(var(--accent-rgb),.13),transparent 66%);
  animation:fx-bg-a 26s ease-in-out infinite;
}
.fxvps-globe-page .pricing-bg .b{
  bottom:-20%;right:-10%;
  background:radial-gradient(circle,rgba(90,160,255,.11),transparent 66%);
  animation:fx-bg-b 32s ease-in-out infinite;
}
@keyframes fx-bg-a{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  33%    {transform:translate3d(28vw,14vh,0) scale(1.18)}
  66%    {transform:translate3d(8vw,30vh,0) scale(.9)}
}
@keyframes fx-bg-b{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  40%    {transform:translate3d(-26vw,-16vh,0) scale(1.12)}
  70%    {transform:translate3d(-6vw,-32vh,0) scale(.94)}
}

/* a faint grid so the lights have something to move behind — static */
.fxvps-globe-page .pricing-bg u{
  position:absolute;inset:0;display:block;
  background-image:
    linear-gradient(rgba(150,175,230,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(150,175,230,.05) 1px,transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 45%,#000,transparent 78%);
  mask-image:radial-gradient(70% 60% at 50% 45%,#000,transparent 78%);
}

@media (prefers-reduced-motion:reduce){
  .fxvps-globe-page .pricing-bg i{animation:none}
}

/* ===========================================================================
   THE FLAT PLAN TABLE — every plan in one table, no category tabs.
   Rendered by fxvps_render_plan_table(); driven by the same pricing.js as
   the card grid, so the term switch above it needs no styling of its own.
   ======================================================================== */

.pricing-flat .pricing-bar{justify-content:center}

/* Sideways scroll beats crushing seven columns onto a phone. The region is
   focusable so it can also be reached from the keyboard. */
.ptable-scroll{
  overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  border-radius:18px;border:1px solid var(--line);
  background:rgba(255,255,255,.022);
}
.ptable-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.ptable{
  width:100%;border-collapse:separate;border-spacing:0;
  min-width:780px;
  font-size:13.5px;
}

.ptable thead th{
  position:sticky;top:0;z-index:2;
  padding:13px 14px;text-align:left;white-space:nowrap;
  font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-2);
  background:#0a0e1a;
  border-bottom:1px solid var(--line-strong);
}

/* group banner rows */
.ptable-group th{
  padding:15px 14px 11px;text-align:left;
  background:rgba(var(--accent-rgb),.045);
  border-bottom:1px solid var(--line);
  border-top:1px solid var(--line);
}
.ptable tbody:first-of-type .ptable-group th{border-top:0}
.ptable-group b{
  display:inline-block;margin-right:10px;
  font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);
}
.ptable-group span{font-size:12px;font-weight:400;color:var(--muted-2)}

.ptable tbody tr[data-plan] > *{
  padding:13px 14px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
  transition:background-color .16s ease;
}
.ptable tbody tr[data-plan]:hover > *{background:rgba(255,255,255,.028)}
.ptable tbody tr[data-plan].is-popular > *{background:rgba(var(--accent-rgb),.05)}
.ptable tbody tr[data-plan].is-popular:hover > *{background:rgba(var(--accent-rgb),.08)}

/* plan name column */
.ptable th.ptable-plan{text-align:left;font-weight:400}
.ptable tbody th.ptable-plan b{
  display:inline;font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.01em;
}
.ptable tbody th.ptable-plan em{
  display:inline-block;margin-left:7px;padding:2px 7px;border-radius:5px;vertical-align:1px;
  font-style:normal;font-size:8.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent-ink);background:var(--accent);
}
.ptable tbody th.ptable-plan span{
  display:block;margin-top:3px;font-size:12px;font-weight:400;color:var(--muted-2);
}

/* spec cells */
.ptable tbody td b{
  display:block;font-size:13.5px;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.ptable tbody td i{
  display:block;margin-top:2px;font-style:normal;
  font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);
}

/* price cell */
.ptable .ptable-price{white-space:nowrap}
.ptable-amt{display:flex;align-items:baseline;gap:3px}
.ptable-amt .plan-amount{
  font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
  transition:opacity .13s ease;
}
.ptable-amt .plan-amount.is-swapping{opacity:0}
.ptable-amt i{font-style:normal;font-size:11px;color:var(--muted-2)}

.ptable .plan-was{
  display:inline;margin-right:6px;font-size:11px;color:var(--muted-2);text-decoration:line-through;
}
.ptable .plan-off{
  display:inline;font-style:normal;font-size:10px;font-weight:800;color:var(--accent);
}
.ptable .plan-saved{display:none}   /* the row is tight; the card grid carries this */
.ptable .plan-billed{
  display:block;margin-top:2px;font-size:10.5px;color:var(--muted-2);
}
/* a term this plan does not sell: the figure is its shortest term instead */
.ptable tr[data-plan].is-na .ptable-amt::before{
  content:"from";margin-right:4px;align-self:center;
  font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);
}
.ptable tr[data-plan].is-na .plan-was,
.ptable tr[data-plan].is-na .plan-off{display:none}

/* order button */
.ptable-go{text-align:right;white-space:nowrap}
.ptable .btn-sm{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:9px;
  font-size:12.5px;font-weight:700;text-decoration:none;
  color:var(--ink);background:rgba(255,255,255,.055);border:1px solid var(--line-strong);
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease;
}
.ptable .btn-sm svg{transition:transform .18s ease}
.ptable .btn-sm:hover{
  background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.5);
  transform:translateY(-1px);
}
.ptable .btn-sm:hover svg{transform:translateX(2px)}
.ptable tr[data-plan].is-popular .btn-sm{
  color:var(--accent-ink);background:var(--accent);border-color:transparent;
}
.ptable tr[data-plan].is-popular .btn-sm:hover{filter:brightness(1.07);background:var(--accent)}

.ptable tbody:last-of-type tr.plan:last-child > *{border-bottom:0}

.ptable-foot{
  display:flex;align-items:flex-start;gap:9px;
  margin:14px auto 0;max-width:900px;
  font-size:12px;line-height:1.7;color:var(--muted-2);text-align:left;
}
.ptable-foot svg{flex:0 0 auto;margin-top:4px;color:var(--accent)}

/* A hint that the table scrolls, on the screens where it does. */
@media (max-width:820px){
  .ptable-scroll{position:relative}
  .ptable-scroll::after{
    content:"";position:absolute;top:0;right:0;bottom:0;width:36px;pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(4,6,15,.85));
    border-radius:0 18px 18px 0;
  }
}
