/* Phone Pricing page (13 Oct 2026). The phone home page's language: the navy ground,
   the raised navy cards, the logo blue and the Terminal greys; headings in the hero
   face, copy in IBM Plex Sans. Two scenes, as on the desktop: the opening (eyebrow,
   sentence, the one line that says how the plans differ) → the three plans, one under
   another, all three actions alike (D-08) → the footer. No comparison surface.
   Desktop is unchanged. */
#mobile-pricing { display: none; }

@media (max-width: 760px) {
  body[data-page="pricing"] { --psv-bg-deep-rgb: 13 31 61; background: #132d58; }
  /* a window wider than the phone column (481–760 px, a narrow desktop window or a tablet): the navy runs to both edges, the scrollbar gutter included */
  /* this sheet is loaded by this page alone, so the root can be painted directly (no :has(), which made every
     DOM change re-check the whole page while scrolling) */
  html { background-color: #132d58; }
  /* the site footer's social icons stand once on phones, in the page foot (D-107) */
  .footer-social { display: none; }
  body[data-page="pricing"] > #main-content { background: transparent; }
  body[data-page="pricing"] .pricing-route { width: 100%; max-width: none; margin: 0; padding: 0; display: block; }
  body[data-page="pricing"] .pricing-route > :not(#mobile-pricing) { display: none; }

  /* The legal links and copyright under the page, as on the phone home page. */
  body[data-page="pricing"] > .site-footer { display: block; padding-block: 22px 32px; background: #132d58; border-top: 0; color: #7f93a8; }
  body[data-page="pricing"] > .site-footer .footer-inner { flex-direction: column-reverse; align-items: flex-start; gap: 14px; width: 100%; max-width: 480px; margin-inline: auto; padding-inline: 26px; box-sizing: border-box; }
  body[data-page="pricing"] > .site-footer .footer-links { flex-wrap: wrap; gap: 10px 20px; padding-top: 18px; border-top: 1px solid rgb(145 184 216 / .18); width: 100%; }
  body[data-page="pricing"] > .site-footer .footer-links a { color: #a9b8c8; text-decoration: none; }
  body[data-page="pricing"] > .site-footer .footer-company { color: #a9b8c8; } /* the company lines in the legal links' colour (owner, 18 Oct 2026, D-208) */

  #mobile-pricing {
    --navy: #132d58; --surface: #163567; --blue: #338cff;
    --text: #e6edf5; --copy: #a9b8c8; --muted: #7f93a8;
    --heading: #f3f7fe; --accent: #8bbcff; --body: #c0cfe3; --action: #174c91;
    --line: rgb(145 184 216 / .18); --line-strong: rgb(151 196 230 / .34);
    --sans: "Inter", "IBM Plex Sans", Arial, sans-serif; --psv-font-hero: "IBM Plex Sans", Arial, sans-serif; --psv-hero-weight: 700; --mono: "IBM Plex Mono", Consolas, monospace;
    --pad: 26px; --radius: 12px;
    display: block; width: 100%; max-width: 480px; margin: 0 auto; padding: 0;
    color: var(--text); background: var(--navy);
    font: 400 16px/1.5 var(--sans); font-variant-numeric: tabular-nums;
    -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  }
  #mobile-pricing * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

  /* 1 · The opening: the eyebrow, the sentence and how the plans differ. */
  #mobile-pricing .pm-open { padding: 52px var(--pad) 0; }
  #mobile-pricing .pm-eyebrow { margin: 0 0 14px; color: var(--copy); font: 600 11px/1.3 var(--sans); letter-spacing: 1.4px; text-transform: uppercase; }
  #mobile-pricing .pm-hero { margin: 0; color: var(--heading); font: 800 clamp(29px, 8.4vw, 36px)/1.08 var(--psv-font-hero); letter-spacing: -.035em; text-wrap: balance; }
  #mobile-pricing .pm-hero span { display: block; }
  #mobile-pricing .pm-hero span + span { color: var(--blue); margin-top: 4px; }
  #mobile-pricing .pm-intro { margin: 18px 0 0; color: var(--body); font: 400 15px/1.55 var(--sans); text-wrap: pretty; }

  /* 2 · The three plans, one under another: alike in every part, Ultimate marked
     only by a hairline (D-08). */
  #mobile-pricing .pm-plans { display: grid; gap: 16px; padding: 52px var(--pad) 0; }
  #mobile-pricing .pm-card { position: relative; padding: 22px 20px 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
  #mobile-pricing .pm-card[data-plan-card="ultimate"]::before { content: ""; position: absolute; top: 0; left: 20px; right: 20px; height: 1px; background: var(--blue); }
  #mobile-pricing .pm-mark { display: flex; align-items: center; gap: 9px; margin: 0; color: var(--copy); font: 600 11px/1.3 var(--sans); letter-spacing: 1.4px; text-transform: uppercase; }
  #mobile-pricing .pm-mark::before { content: ""; flex: none; width: 6px; height: 6px; background: var(--blue); border-radius: 1px; }
  #mobile-pricing .pm-no::after { content: " ·"; }
  #mobile-pricing .pm-name { margin-left: -4px; color: var(--text); }
  #mobile-pricing .pm-price { --psv-font-hero: "Inter", Arial, sans-serif; margin: 18px 0 0; color: var(--heading); font: 800 44px/1 var(--psv-font-hero); letter-spacing: -.03em; }
  #mobile-pricing .pm-price small { margin-left: 4px; color: var(--copy); font: 500 13px/1 var(--mono); letter-spacing: .06em; }
  #mobile-pricing .pm-term { margin: 10px 0 0; color: var(--body); font: 400 15px/1.45 var(--sans); }
  #mobile-pricing .pm-coverage { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line); }
  #mobile-pricing .pm-label { display: block; margin: 0 0 10px; color: var(--copy); font: 600 11px/1.3 var(--sans); letter-spacing: 1.4px; text-transform: uppercase; }
  #mobile-pricing .pm-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  #mobile-pricing .pm-chip { padding: 5px 8px; border: 1px solid var(--line-strong); border-radius: 4px; color: var(--text); font: 500 11px/1 var(--mono); letter-spacing: .04em; }
  #mobile-pricing .pm-list { margin: 16px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
  #mobile-pricing .pm-list li { padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--body); font: 400 15px/1.4 var(--sans); }
  #mobile-pricing .pm-select { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; margin-top: 20px; padding: 11px 16px;
    border: 1px solid #5686bf; border-radius: 8px; color: #fff; background: var(--action); font: 600 12px/1.3 var(--sans); letter-spacing: 1.6px; text-decoration: none; }
  #mobile-pricing .pm-select svg { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  #mobile-pricing .pm-select:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

  #mobile-pricing .end { height: 52px; }
  #mobile-pricing .hn-foot { padding: 28px var(--pad) 0; border-top: 1px solid var(--line); }
  #mobile-pricing .hn-pages { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin: 0; padding: 0; list-style: none; }
  #mobile-pricing .hn-pages a { display: inline-block; padding: 4px 0; font: 500 15px/1.3 var(--sans); color: #c0cfe3; text-decoration: none; }

  /* Reveal only when JavaScript can observe the cards; without it the plans stay visible. */
  html.js #mobile-pricing .rv { opacity: 0; transform: translateY(18px); transition: opacity 700ms cubic-bezier(.2,.7,.2,1), transform 700ms cubic-bezier(.2,.7,.2,1); }
  html.js #mobile-pricing .rv.in { opacity: 1; transform: none; }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  html.js #mobile-pricing .rv { opacity: 1; transform: none; transition: none; }
}

/* Headings in capitals (owner, 13 Oct 2026, D-125); capitals take a little less negative tracking. */
@media (max-width: 760px) {
  #mobile-pricing :is(.pm-hero) { text-transform: uppercase; letter-spacing: -.015em; }
  /* One heading standard on every phone page (owner, 13 Oct 2026, D-126): the page and section headings are
     28 px on a 390 px phone (the card headings reach the same size on their narrower measure), and the first
     line of text sits 52 px under the header: the label where there is one, the heading below it at the same gap. */
  #mobile-pricing .pm-hero { font-size: clamp(22px, calc((100vw - 52px) / 12.07), 29px); line-height: 1.08; }
}
