/* Pricing (v2.22). Neutral general page: the plan cards come from app.js (plansHTML), the rest is here. */
.pr-ph { min-height: 640px; }
@media (max-width: 980px) { .pr-ph { min-height: 1800px; } }
body[data-page="pricing"] .plan .mini { display: none; }
.pr-plans { padding-top: 0; }

/* what Ultra adds: four cards, the Lab's blue */
.ux { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1080px) { .ux { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ux { grid-template-columns: minmax(0, 1fr); } }
.ux-c { display: grid; align-content: start; gap: 8px; padding: 16px 16px 18px; border-radius: 22px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line), var(--shadow-1); min-width: 0; }
.ux-c .k { color: var(--blue); font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
:root:not([data-theme="light"]) .ux-c .k { color: #8a9bff; }
.ux-c h3 { margin: 0; font-size: 22px; }
.ux-c p { margin: 0; color: var(--muted); font-size: 14.5px; line-height: 1.5; }
.ux-c ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 5px; font-size: 13.5px; }
.ux-c li { display: flex; gap: 8px; } .ux-c li::before { content: "✓"; color: var(--blue); font-weight: 700; }
:root:not([data-theme="light"]) .ux-c li::before { color: #8a9bff; }
.ux-art { aspect-ratio: 16 / 9; border-radius: 14px; background: #121527; display: grid; place-items: center; overflow: hidden; margin-bottom: 6px; }
.ux-art svg { width: 100%; height: 100%; }
.ux-fr rect, .ux-tl rect, .ux-nd rect, .ux-sc { fill: rgba(46, 75, 255, .22); stroke: rgba(138, 155, 255, .55); stroke-width: 1.2; }
.ux-fr rect:nth-child(2) { fill: #2e4bff; stroke: none; }
.ux-pl { fill: #fff; }
.ux-ln { fill: rgba(255, 255, 255, .55); }
.ux-tr rect { fill: rgba(138, 155, 255, .45); } .ux-tr rect:nth-child(3) { fill: #d6ff3d; } .ux-tr rect:nth-child(2) { fill: #ff3d8b; }
.ux-hd { fill: #fff; }
.ux-ic, .ux-wi { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ux-wi { stroke: rgba(138, 155, 255, .8); stroke-dasharray: 4 4; }
.ux-tl rect:nth-child(1), .ux-tl rect:nth-child(5) { fill: #2e4bff; stroke: none; }
.ux-nd rect:nth-child(4) { fill: #2e4bff; stroke: none; }
@media (prefers-reduced-motion: no-preference) {
  .ux-c:hover .ux-hd { transform: translateX(-60px); transition: transform 1.4s cubic-bezier(.4, 0, .2, 1); }
  .ux-hd { transition: transform .4s; }
  .ux-c:hover .ux-wi { animation: uxflow 1s linear infinite; }
  .ux-c:hover .ux-fr { transform: translateY(-3px); } .ux-fr { transition: transform .3s; }
}
@keyframes uxflow { to { stroke-dashoffset: -16; } }

/* every feature, side by side */
.cmp-w { position: relative; overflow-x: auto; border-radius: 22px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line), var(--shadow-1); }
.cmp { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 14.5px; }
.cmp th, .cmp td { padding: 11px 14px; text-align: center; border-bottom: 1px solid var(--line); }
.cmp tbody th[scope="row"] { text-align: start; font-weight: 500; }
.cmp thead th { vertical-align: bottom; padding-top: 18px; position: relative; }
.cmp thead th > span:first-child { display: block; font: 800 22px/1 var(--display); letter-spacing: -.02em; }
.cmp thead .c-prime > span:first-child { color: var(--fg); }
.cmp thead .c-prime::before, .cmp thead .c-ultra::before { content: ""; position: absolute; top: 0; inset-inline: 14px; height: 5px; border-radius: 0 0 3px 3px; background: var(--lime); }
.cmp thead .c-ultra::before { background: var(--l3h, linear-gradient(90deg, #d6ff3d 0 33%, #2e4bff 0 66%, #ff3d8b 0)); }
.cmp-p { display: grid; gap: 2px; margin-top: 8px; }
.cmp-p b { font: 800 20px/1 var(--display); }
.cmp-p small { color: var(--muted); font-size: 12px; }
.cmp-you { display: inline-block; margin-top: 6px; padding: 2px 8px; border-radius: 999px; background: rgba(var(--ov), .1); font: 500 11px/1.4 var(--body); }
.cmp th:not(:first-child), .cmp td { width: 17%; }
.cmp td svg { width: 18px; height: 18px; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.cmp td.y svg { stroke: var(--fg); }
.cmp td.n svg { stroke: var(--muted); opacity: .5; }
.cmp td:nth-child(4) { background: rgba(var(--ov), .035); }
.cmp-g th { text-align: start; padding-top: 18px; font: 500 11px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.cmp-g th::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-inline-end: 8px; background: var(--muted); vertical-align: 1px; }
.cmp-g.g-lime th::before { background: var(--lime); } .cmp-g.g-pink th::before { background: var(--pink); } .cmp-g.g-blue th::before { background: var(--blue); }
.cmp tfoot td, .cmp tfoot th { border-bottom: 0; padding-block: 16px 20px; }
.cmp tbody tr:not(.cmp-g):hover { background: rgba(var(--ov), .03); }

/* how you pay */
.pr-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: s; }
.pr-steps li { counter-increment: s; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 2px 12px; padding: 14px 16px; border-radius: 18px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.pr-steps li::before { content: "0" counter(s); grid-row: span 2; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font: 600 12px/1 var(--mono); background: var(--lime); color: var(--dark); }
.pr-steps li:nth-child(2)::before { background: var(--blue); color: #fff; } .pr-steps li:nth-child(3)::before { background: var(--pink); color: var(--dark); }
.pr-steps li:nth-child(4)::before { background: var(--fg); color: var(--bg); }
.pr-steps span { color: var(--muted); font-size: 14px; }
/* phones: the feature column stays put while the plans scroll */
.cmp tbody th[scope="row"], .cmp thead th:first-child, .cmp tfoot th { position: sticky; inset-inline-start: 0; z-index: 1; background: var(--card); }
.cmp-g th { position: sticky; inset-inline-start: 0; }
@media (max-width: 640px) {
  .cmp { min-width: 540px; font-size: 13.5px; }
  .cmp tbody th[scope="row"] { min-width: 168px; box-shadow: 1px 0 0 var(--line); }
  .cmp th, .cmp td { padding: 10px 10px; }
  .ux-art { aspect-ratio: 2 / 1; }
}
