/* PostRoost marketing site. Purple/rooster identity from the product (accent #7c3aed, plum ink, lavender ground).
   One stylesheet, no framework. Sections: tokens · base · layout · header/nav · hero · buttons · content blocks ·
   components (plans, tables, directory, facts, forms, tools) · footer · utilities · motion. */

@font-face {
  font-family: "Fredoka";
  src: url("../fonts/fredoka-600-subset.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* Metric-matched fallback so the swap does not shift headings. */
@font-face {
  font-family: "Fredoka Fallback";
  src: local("Segoe UI Semibold"), local("SegoeUI-Semibold"), local("Arial");
  size-adjust: 101%;
  ascent-override: 97%;
  descent-override: 24%;
}

:root {
  --plum-950: #170a30;
  --plum-900: #2a1257;
  --plum-800: #3b1a78;
  --plum-700: #4c1d95;
  --violet: #7c3aed;
  --violet-hover: #6d28d9;
  --violet-soft: #ede9fe;
  --lavender: #f6f4fb;
  --lavender-2: #efebf8;
  --comb: #e44bd0;
  --ink: #1b1530;
  --muted: #554f6b;
  --line: #e3ddf0;
  --paper: #fff;
  --on-plum: #fff;
  --on-plum-muted: #ddd2f7;
  --ok: #17734a;
  --bad: #b42318;
  --focus: #7c3aed;
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --display: "Fredoka", "Fredoka Fallback", ui-rounded, system-ui, sans-serif;
  --step--2: 0.875rem;
  --step--1: clamp(0.9375rem, 0.92rem + 0.08vw, 1rem);
  --step-0: 1.125rem;
  --step-1: clamp(1.25rem, 1.14rem + 0.45vw, 1.5rem);
  --step-2: clamp(1.5rem, 1.28rem + 0.95vw, 2.125rem);
  --step-3: clamp(1.875rem, 1.48rem + 1.75vw, 3rem);
  --step-4: clamp(2.25rem, 1.66rem + 2.75vw, 4.125rem);
  --step-5: clamp(2.5rem, 1.7rem + 3.9vw, 5rem);
  --space-s: clamp(0.75rem, 0.6rem + 0.5vw, 1rem);
  --space-m: clamp(1.25rem, 1rem + 1vw, 2rem);
  --space-l: clamp(2.75rem, 2rem + 3.2vw, 5rem);
  --space-xl: clamp(3.75rem, 2.6rem + 5vw, 7.5rem);
  --gutter: clamp(1rem, 4vw, 3rem);
  --night: #0e0626;
  --lilac: #c4b5fd;
  --on-night-muted: #d6ccf3;
  --radius: 14px;
  --radius-s: 9px;
  --shadow: 0 1px 2px rgb(23 10 48 / 0.06), 0 8px 24px -6px rgb(23 10 48 / 0.14);
  --shadow-lg: 0 2px 4px rgb(23 10 48 / 0.08), 0 28px 60px -18px rgb(23 10 48 / 0.45);
  --wrap: 100rem; /* 1600px content container */
  --read: 46rem;  /* ~68 characters at 18px */
  color-scheme: light;
  accent-color: var(--violet);
}

/* ---------------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 5rem; }
body { margin: 0; font: 400 var(--step-0)/1.65 var(--font); color: var(--ink); background: var(--paper); text-rendering: optimizeLegibility; caret-color: var(--violet); }
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4 { margin: 0; line-height: 1.15; text-wrap: balance; color: var(--plum-900); }
h1, h2 { font-family: var(--display); font-weight: 600; letter-spacing: -0.01em; }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-1); font-weight: 700; letter-spacing: -0.005em; }
h4 { font-size: var(--step-0); font-weight: 700; }
p { margin: 0; text-wrap: pretty; }
a { color: var(--violet-hover); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; color: var(--plum-800); }
::selection { background: #e4d4ff; color: var(--plum-950); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
strong { font-weight: 700; }
code { font: 0.9em/1.4 ui-monospace, "Cascadia Mono", Consolas, monospace; background: var(--lavender-2); padding: 0.1em 0.35em; border-radius: 5px; }
table { font-variant-numeric: tabular-nums; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pr-skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--plum-900); color: #fff; padding: 0.75rem 1rem; border-radius: var(--radius-s); font-weight: 700; }
.pr-skip:focus { top: 1rem; color: #fff; }
.pr-main:focus { outline: none; }

/* ---------------------------------------------------------------- layout */
.pr-wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.pr-wrap--read { width: min(100% - 2 * var(--gutter), var(--read)); }
.pr-wrap--measure > * { max-width: 48rem; }
.pr-wrap--narrow { width: min(100% - 2rem, 40rem); }
.pr-wrap--tool { width: min(100% - 2 * var(--gutter), 56rem); }
.pr-section { padding-block: var(--space-l); }
.pr-section > .pr-wrap > h2 { margin-bottom: var(--space-m); }
.pr-section--plans { background: var(--lavender); }
.pr-hero + .pr-section--plans { padding-top: 0; }
.pr-section__more { margin-top: var(--space-m); font-weight: 600; }
.pr-section__more a, .pr-related__list a, .pr-directory__link { display: inline-flex; align-items: center; gap: 0.4rem; }
.pr-transaction { padding-block: var(--space-l); }
.pr-transaction > h1 { font-size: var(--step-3); margin-bottom: var(--space-m); }
.pr-plain { padding-block: var(--space-l); }

/* ---------------------------------------------------------------- header + navigation */
.pr-header { position: sticky; top: 0; z-index: 50; background: rgb(255 255 255 / 0.97); border-bottom: 1px solid var(--line); }
.admin-bar .pr-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .pr-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .pr-header { top: 0; } }
.pr-header__bar { display: flex; align-items: center; gap: 1rem; min-height: 4.25rem; position: relative; }
.pr-brand { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; color: var(--plum-900); margin-right: auto; }
.pr-brand img { width: 48px; height: 38px; }
.pr-brand__name { font: 600 1.5rem/1 var(--display); letter-spacing: -0.01em; }
.pr-brand:hover { color: var(--plum-900); }
.pr-menu-toggle { display: none; align-items: center; gap: 0.4rem; font: 600 1rem var(--font); color: var(--plum-900); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-s); padding: 0.55rem 0.8rem; cursor: pointer; }
.pr-nav { display: flex; align-items: center; gap: 1.25rem; }
.pr-nav__list { list-style: none; display: flex; gap: 0.25rem; margin: 0; padding: 0; align-items: center; }
.pr-nav__list > li > a, .pr-nav__group > summary { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.55rem 0.7rem; font-size: 1.0625rem; border-radius: var(--radius-s); color: var(--ink); font-weight: 600; text-decoration: none; cursor: pointer; list-style: none; }
.pr-nav__group > summary::-webkit-details-marker { display: none; }
.pr-nav__list > li > a:hover, .pr-nav__group > summary:hover { background: var(--lavender); color: var(--plum-900); }
.pr-nav__list a[aria-current], .pr-nav__group > summary.is-active { color: var(--violet-hover); }
.pr-nav__group { position: relative; }
.pr-nav__group .pr-icon--chevron { width: 16px; height: 16px; transition: transform 0.2s; }
.pr-nav__group[open] .pr-icon--chevron { transform: rotate(180deg); }
.pr-nav__sub { list-style: none; margin: 0; padding: 0.5rem; position: absolute; top: calc(100% + 0.4rem); left: 0; min-width: 19rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); z-index: 60; }
.pr-nav__sub a { display: flex; align-items: center; gap: 0.7rem; padding: 0.45rem 0.75rem 0.45rem 0.45rem; border-radius: var(--radius-s); color: var(--ink); text-decoration: none; font-weight: 550; font-size: 1rem; }
.pr-nav__sub .pr-icon { width: 2.125rem; height: 2.125rem; padding: 0.45rem; border-radius: 0.6rem; background: var(--violet-soft); color: var(--violet-hover); flex: none; transition: background-color 0.15s, color 0.15s; }
.pr-nav__sub a:hover .pr-icon, .pr-nav__sub a[aria-current] .pr-icon { background: var(--violet); color: #fff; }
.pr-nav__sub a:hover, .pr-nav__sub a[aria-current] { background: var(--lavender); color: var(--plum-900); }
.pr-nav__actions { display: flex; align-items: center; gap: 0.75rem; }
.pr-nav__signin { color: var(--ink); font-weight: 600; text-decoration: none; padding: 0.55rem 0.4rem; }
.pr-nav__signin:hover { color: var(--violet-hover); text-decoration: underline; }

@media (max-width: 68rem) {
  .js .pr-menu-toggle { display: inline-flex; }
  .pr-header__bar { flex-wrap: wrap; }
  .pr-nav { flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0.75rem; padding-bottom: 1rem; }
  .js .pr-nav { display: none; position: absolute; top: 100%; left: calc(-1 * var(--gutter)); right: calc(-1 * var(--gutter)); background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); padding: 0.75rem var(--gutter) 1.25rem; max-height: calc(100dvh - 4.25rem); overflow-y: auto; }
  .js .pr-nav.is-open { display: flex; }
  .pr-nav__list { flex-direction: column; align-items: stretch; }
  .pr-nav__list > li > a, .pr-nav__group > summary { width: 100%; justify-content: space-between; padding: 0.8rem 0.5rem; font-size: 1.0625rem; }
  .pr-nav__sub { position: static; box-shadow: none; border: 0; padding: 0 0 0.5rem 0.75rem; min-width: 0; }
  .pr-nav__actions { justify-content: space-between; border-top: 1px solid var(--line); padding-top: 0.75rem; }
}

/* ---------------------------------------------------------------- hero */
.pr-hero { background: var(--lavender); padding-block: var(--space-l) var(--space-l); }
.pr-hero__grid { display: grid; gap: var(--space-l); align-items: center; }
.pr-hero.has-media .pr-hero__grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 64rem) { .pr-hero.has-media .pr-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.pr-hero__text { display: grid; gap: var(--space-s); justify-items: start; max-width: 42rem; }
.pr-hero__text > h1 { margin-top: 0.25rem; }
.pr-hero__context { font-weight: 700; color: var(--violet-hover); }
.pr-lede { font-size: var(--step-1); line-height: 1.5; color: var(--muted); max-width: 38rem; }
.pr-hero .pr-actions { margin-top: 0.5rem; }
.pr-hero__media .pr-screen { margin: 0; }
.pr-entry > .pr-screen { margin: var(--space-m) auto; }
.pr-hero--read { padding-block: var(--space-m) var(--space-l); }
.pr-hero--read .pr-hero__text { max-width: var(--read); }
.pr-hero--read .pr-wrap { width: min(100% - 2 * var(--gutter), var(--read)); }
.pr-hero--centered .pr-hero__text { margin-inline: auto; justify-items: center; text-align: center; }
.pr-hero--centered .pr-crumbs ol { justify-content: center; }
.pr-hero--plan .pr-hero__text { max-width: 52rem; }

.pr-availability { display: flex; gap: 0.5rem; align-items: flex-start; margin-top: 0.75rem; font-size: var(--step--1); color: var(--muted); max-width: 36rem; }
.pr-availability .pr-icon { flex: none; margin-top: 0.15rem; color: var(--violet); }

/* Breadcrumbs */
.pr-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; font-size: var(--step--1); }
.pr-crumbs li { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--muted); }
.pr-crumbs li + li::before { content: "/"; color: #9a93b3; }
.pr-crumbs a { color: var(--muted); }
.pr-crumbs a:hover { color: var(--plum-900); }

/* Plan hero facts */
.pr-plan-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1px; margin: var(--space-m) 0 0; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; width: 100%; }
.pr-plan-facts > div { background: var(--paper); padding: 1rem 1.1rem; }
.pr-plan-facts dt { font-size: var(--step--1); color: var(--muted); }
.pr-plan-facts dd { margin: 0.2rem 0 0; }
.pr-plan-facts strong { font: 600 var(--step-2)/1.1 var(--display); color: var(--plum-900); }
.pr-plan-facts span { font-size: var(--step--1); color: var(--muted); }

/* ---------------------------------------------------------------- buttons */
.pr-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.pr-button, .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem; min-height: 2.875rem; padding: 0.7rem 1.25rem; border-radius: var(--radius-s); border: 1.5px solid transparent; font: 650 1.0625rem/1.2 var(--font); text-decoration: none; cursor: pointer; transition: background-color 0.15s, border-color 0.15s, transform 0.15s; text-align: center; }
.pr-button--primary, .wp-block-button__link { background: var(--violet); color: #fff; }
.pr-button--primary:hover, .wp-block-button__link:hover { background: var(--violet-hover); color: #fff; }
.pr-button--secondary { background: var(--paper); color: var(--plum-900); border-color: #cbc1e3; }
.pr-button--secondary:hover { border-color: var(--plum-800); color: var(--plum-900); }
.pr-button--light { background: #fff; color: var(--plum-900); }
.pr-button--light:hover { background: var(--violet-soft); color: var(--plum-900); }
.pr-button--outline-light { background: transparent; color: #fff; border-color: rgb(255 255 255 / 0.6); }
.pr-button--outline-light:hover { border-color: #fff; color: #fff; background: rgb(255 255 255 / 0.08); }
.pr-button:active { transform: translateY(1px); }
.pr-button[disabled] { opacity: 0.55; cursor: not-allowed; }
.pr-button .pr-icon { width: 18px; height: 18px; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* ---------------------------------------------------------------- page content (core blocks) */
.pr-entry { padding-block: var(--space-l); }
.pr-entry:empty { display: none; }
.pr-entry > * { width: min(100% - 2 * var(--gutter), var(--read)); margin-inline: auto; }
.pr-entry > * + * { margin-top: 1.1em; }
.pr-entry > h2 { margin-top: 2.2em; }
.pr-entry > h3 { margin-top: 1.8em; }
.pr-entry > h2 + *, .pr-entry > h3 + * { margin-top: 0.6em; }
.pr-entry > :first-child { margin-top: 0; }
.pr-entry :is(ul, ol):not([role="list"]) { padding-left: 1.25rem; }
.pr-entry :is(ul, ol):not([role="list"]) > li + li { margin-top: 0.4em; }
.pr-entry li::marker { color: var(--violet); }
.pr-entry > .wp-block-columns, .pr-entry > .pr-plans, .pr-entry > .wp-block-table, .pr-entry > .pr-wide, .pr-entry > .pr-split, .pr-entry > .wp-block-shortcode, .pr-entry > .pr-table-scroll, .pr-entry > .pr-screen { width: min(100% - 2 * var(--gutter), var(--wrap)); }
/* Landing pages: text keeps a reading measure but shares the left edge of the wide sections. */
.pr-entry:not(.pr-entry--read) > :is(p, ul, ol, h2, h3, h4, .wp-block-buttons, .wp-block-details, .wp-block-group:not(.pr-band, .pr-ai-band, .pr-cta-band)) { width: min(100% - 2 * var(--gutter), var(--wrap)); padding-inline-end: max(0px, calc(min(100vw - 2 * var(--gutter), var(--wrap)) - var(--read))); }

.wp-block-columns { display: grid; gap: var(--space-m) var(--space-l); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); align-items: start; }
.wp-block-columns.pr-split { grid-template-columns: minmax(0, 1fr); align-items: center; padding-block: 40px; }
@media (min-width: 60rem) { .wp-block-columns.pr-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } .wp-block-columns.pr-split.pr-split--flip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } .pr-split--flip > :first-child { order: 2; } }
.wp-block-column > * + * { margin-top: 0.9em; }
.wp-block-column > h2 { font-size: var(--step-2); }

/* Full-bleed band inside content */
.pr-entry > .pr-band { width: 100%; max-width: none; background: var(--lavender); padding-block: var(--space-l); margin-block: var(--space-l); }
.pr-entry > .pr-band:last-child { margin-bottom: calc(-1 * var(--space-l)); }
.pr-band > * { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.pr-band > * + * { margin-top: 1em; }
.pr-band > p, .pr-band > ul { max-width: var(--read); margin-left: max(var(--gutter), calc((100% - var(--wrap)) / 2)); }
.pr-band--plum { background: var(--plum-900) !important; color: var(--on-plum); }
.pr-band--plum h2, .pr-band--plum h3 { color: #fff; }
.pr-band--plum a { color: #e9d5ff; }

/* Workflow steps: an ordered list whose numbers carry the sequence. */
.pr-steps { counter-reset: step; list-style: none; padding: 0 !important; display: grid; gap: var(--space-m); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.wp-block-group.pr-steps ol { all: unset; display: contents; }
.pr-steps li { counter-increment: step; position: relative; margin: 0 !important; color: var(--muted); }
.pr-steps .pr-step__title { display: flex; align-items: center; gap: 0.85rem; margin-bottom: 0.6rem; font: 600 clamp(1.375rem, 1.2rem + 0.65vw, 1.875rem)/1.15 var(--display); color: var(--plum-900); text-wrap: balance; }
.pr-steps .pr-step__title::before { content: counter(step); flex: none; width: 3.25rem; height: 3.25rem; border-radius: 50%; display: grid; place-items: center; background: var(--plum-900); color: #fff; font: 600 1.5rem/1 var(--display); box-shadow: 0 0 0 6px var(--violet-soft); }
.pr-steps li:not(.has-title)::before { content: counter(step); display: grid; place-items: center; width: 3.25rem; height: 3.25rem; margin-bottom: 0.6rem; border-radius: 50%; background: var(--plum-900); color: #fff; font: 600 1.5rem/1 var(--display); }
.pr-steps li::marker { content: none; }

/* Check list for benefits */
.pr-checks ul, ul.pr-checks { list-style: none; padding-left: 0 !important; }
.pr-checks li { position: relative; padding-left: 1.85rem; }
.pr-checks li::before { content: ""; position: absolute; left: 0; top: 0.3em; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--violet-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d28d9' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center/0.8rem no-repeat; }

.pr-callout { background: var(--lavender); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.25rem; }
.pr-callout p { margin: 0; }
.pr-callout--warn { background: #fff8eb; border-color: #f3dfb5; }

/* Tables */
.wp-block-table { margin-inline: auto; overflow-x: auto; }
.wp-block-table table, .pr-compare { width: 100%; border-collapse: collapse; font-size: var(--step--1); }
.wp-block-table th, .wp-block-table td { text-align: left; vertical-align: top; padding: 0.75rem 0.9rem; border-bottom: 1px solid var(--line); }
.wp-block-table thead th { background: var(--lavender); color: var(--plum-900); font-weight: 700; border-bottom: 2px solid #d6cdea; }
.wp-block-table tbody th, .wp-block-table td:first-child { font-weight: 600; color: var(--plum-900); }
.wp-block-table figcaption { font-size: var(--step--1); color: var(--muted); margin-top: 0.5rem; }

/* Details (FAQ blocks inside content) */
.wp-block-details, .pr-faq__item { border-bottom: 1px solid var(--line); padding-block: 0.25rem; }
.wp-block-details summary, .pr-faq__item summary { cursor: pointer; padding: 0.9rem 0; font-weight: 700; color: var(--plum-900); display: flex; justify-content: space-between; gap: 1rem; list-style: none; }
.wp-block-details summary::-webkit-details-marker, .pr-faq__item summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-weight: 400; color: var(--violet); font-size: 1.4rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "–"; }
.pr-faq__item summary .pr-icon { flex: none; color: var(--violet); transition: transform 0.2s; }
.pr-faq__item[open] summary .pr-icon { transform: rotate(180deg); }
.wp-block-details > p, .pr-faq__item > p { padding-bottom: 1rem; color: var(--ink); }

/* ---------------------------------------------------------------- screenshots */
.pr-screen { margin: 0; }
.pr-screen picture { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--paper); box-shadow: var(--shadow); }
.pr-screen img { width: 100%; }
.pr-screen figcaption { font-size: var(--step--1); color: var(--muted); padding: 0.6rem 0.1rem 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; justify-content: space-between; }
.pr-demo-note { font-size: 0.8125rem; color: var(--muted); }
.pr-screen--tall { max-width: 24rem; margin-inline: auto; }
.pr-hero__media .pr-screen img { aspect-ratio: 16 / 11; object-fit: cover; object-position: top left; }

/* ---------------------------------------------------------------- plans */
.pr-interval { border: 0; padding: 0.3rem; margin: 0 auto var(--space-m); display: flex; width: fit-content; background: var(--paper); border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line); }
.pr-interval legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pr-interval input { position: absolute; opacity: 0; pointer-events: none; }
.pr-interval label { padding: 0.5rem 1.15rem; border-radius: 999px; font-weight: 650; cursor: pointer; color: var(--muted); }
.pr-interval input:checked + label { background: var(--plum-900); color: #fff; }
.pr-interval input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 2px; }
.pr-plan { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem 1.4rem 1.4rem; }
.pr-plan__name { font: 600 var(--step-2)/1.1 var(--display); }
.pr-plan__name a { color: inherit; text-decoration: none; }
.pr-plan__name a:hover { text-decoration: underline; }
.pr-plan__for { color: var(--muted); font-size: var(--step--1); }
.pr-plan__price strong { font: 600 clamp(2.25rem, 2rem + 0.8vw, 2.75rem)/1 var(--display); color: var(--plum-900); }
.pr-plan__price span span { font-size: var(--step--1); color: var(--muted); }
.pr-plan__capacity { font-weight: 650; color: var(--plum-900); font-size: var(--step--1); }
.pr-plan__cta .pr-button { width: 100%; padding-inline: .75rem; white-space: nowrap; }
.pr-plan__note { font-size: 0.8125rem; color: var(--muted); }
.pr-plan__lead { font-size: var(--step--1); font-weight: 700; margin-top: 0.4rem; color: var(--plum-900); }
.pr-plan__lines { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.45rem; font-size: var(--step--1); }
.pr-plan__lines li { display: grid; grid-template-columns: 1.1rem 1fr; gap: 0.45rem; }
.pr-plan__lines .pr-icon { width: 1.1rem; height: 1.1rem; color: var(--violet); margin-top: 0.15rem; }
.pr-plan--agency { background: var(--plum-900); border-color: var(--plum-900); color: var(--on-plum); }
.pr-plan--agency .pr-plan__name, .pr-plan--agency .pr-plan__price strong, .pr-plan--agency .pr-plan__capacity, .pr-plan--agency .pr-plan__lead { color: #fff; }
.pr-plan--agency .pr-plan__for, .pr-plan--agency .pr-plan__note, .pr-plan--agency .pr-plan__price span span { color: var(--on-plum-muted); }
.pr-plan--agency .pr-plan__lines .pr-icon { color: #d8b4fe; }
.pr-plan--agency .pr-button--primary { background: #fff; color: var(--plum-900); }
.pr-plan--agency .pr-button--primary:hover { background: var(--violet-soft); }
.pr-plan--agency :focus-visible { outline-color: #e9d5ff; }
.pr-when-year { display: none; }
.pr-plans:has(.pr-interval__year:checked) .pr-when-year { display: revert; }
.pr-plans:has(.pr-interval__year:checked) .pr-when-month { display: none; }
.pr-plan__cta .pr-when-month, .pr-plan__cta .pr-when-year { display: block; }
.pr-plans:not(:has(.pr-interval__year:checked)) .pr-plan__cta .pr-when-year { display: none; }
.pr-plans:has(.pr-interval__year:checked) .pr-plan__cta .pr-when-month { display: none; }

/* Plan includes */
.pr-includes__groups { display: grid; gap: var(--space-m) var(--space-l); grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.pr-includes__group h3 { margin-bottom: 0.6rem; font-size: var(--step-0); text-transform: none; color: var(--plum-900); }
.pr-includes__group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.pr-includes__group li { display: grid; grid-template-columns: 1.2rem 1fr; gap: 0.5rem; font-size: var(--step--1); }
.pr-includes__group .pr-icon { width: 1.2rem; height: 1.2rem; margin-top: 0.1rem; color: var(--violet); }
.pr-includes__group li.is-no { color: #6a6482; }
.pr-includes__group li.is-no .pr-icon { color: #a39cba; }

/* ---------------------------------------------------------------- comparison tables */
.pr-table-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.pr-table-scroll:focus-visible { outline-offset: 3px; }
.pr-compare caption { text-align: left; padding: 1rem 1rem 0.75rem; font: 600 var(--step-2)/1.2 var(--display); color: var(--plum-900); }
.pr-compare caption span { font: 400 var(--step--1) var(--font); color: var(--muted); }
@media (min-width: 64rem) { .pr-compare caption span { display: none; } }
.pr-compare th, .pr-compare td { padding: 0.7rem 0.85rem; border-top: 1px solid var(--line); text-align: center; vertical-align: middle; }
.pr-compare thead th { font-weight: 700; color: var(--plum-900); min-width: 7.5rem; }
.pr-compare thead a { color: inherit; display: block; font: 600 1.15rem/1.2 var(--display); }
.pr-compare__price { display: block; font-weight: 500; color: var(--muted); font-size: 0.8125rem; }
.pr-compare tbody th[scope="row"] { text-align: left; font-weight: 500; color: var(--ink); min-width: 13rem; position: sticky; left: 0; background: var(--paper); z-index: 1; box-shadow: 1px 0 0 var(--line); }
.pr-compare thead td { position: sticky; left: 0; background: var(--paper); z-index: 1; }
.pr-compare__group th { text-align: left !important; background: var(--lavender); color: var(--plum-900); font-weight: 700; padding-top: 0.9rem; position: static !important; }
.pr-compare .pr-icon--check { color: var(--violet); margin-inline: auto; }
.pr-compare .pr-icon--minus { color: #a39cba; margin-inline: auto; }
.pr-compare--networks th, .pr-compare--networks td { text-align: left; }
.pr-compare--networks tbody th[scope="row"] { min-width: 8rem; font-weight: 700; }

/* ---------------------------------------------------------------- hub directory + related */
.pr-directory { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 0 var(--space-l); }
.pr-directory__item { border-top: 1px solid var(--line); padding: 1.1rem 0 1.3rem; }
.pr-directory__link { font: 600 var(--step-1)/1.25 var(--display); color: var(--plum-900); text-decoration: none; }
.pr-directory__link:hover { color: var(--violet-hover); text-decoration: underline; }
.pr-directory__link .pr-icon { color: var(--violet); transition: transform 0.2s; }
.pr-directory__link:hover .pr-icon { transform: translateX(3px); }
.pr-directory__item p { margin-top: 0.35rem; color: var(--muted); font-size: var(--step--1); max-width: 34rem; }
.pr-related { background: var(--lavender); padding-block: var(--space-l); }
.pr-related h2 { font-size: var(--step-2); margin-bottom: var(--space-s); }
.pr-related__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.25rem var(--space-l); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.pr-related__list li { padding: 0.8rem 0; border-bottom: 1px solid var(--line); }
.pr-related__list a { font-weight: 650; color: var(--plum-900); text-decoration: none; }
.pr-related__list a:hover { color: var(--violet-hover); text-decoration: underline; }
.pr-related__list .pr-icon { color: var(--violet); width: 18px; height: 18px; }
.pr-related__list p { font-size: var(--step--1); color: var(--muted); margin-top: 0.2rem; }
.pr-related__list--plain { padding-block: var(--space-m) var(--space-l); }

/* ---------------------------------------------------------------- FAQ section */
.pr-faq { padding-block: var(--space-l); }

/* ---------------------------------------------------------------- network facts, sources, downloads */
.pr-facts { margin-top: var(--space-l); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-m); }
.pr-facts h2 { font-size: var(--step-2); }
.pr-facts__list { margin: var(--space-s) 0 0; display: grid; gap: 0; }
.pr-facts__list > div { display: grid; gap: 0.2rem 1.5rem; padding: 0.8rem 0; border-top: 1px solid var(--line); }
@media (min-width: 40rem) { .pr-facts__list > div { grid-template-columns: 12rem 1fr; } }
.pr-facts dt { font-weight: 700; color: var(--plum-900); }
.pr-facts dd { margin: 0; }
.pr-facts__needs { margin-top: var(--space-s); background: var(--lavender); border-radius: var(--radius-s); padding: 1rem 1.2rem; }
.pr-facts__needs h3 { font-size: var(--step-0); margin-top: 0.75rem; }
.pr-facts__needs h3:first-child { margin-top: 0; }
.pr-facts__needs p, .pr-facts__needs ul { margin-top: 0.35rem; }
.pr-facts__needs ul { padding-left: 1.2rem; }
.pr-sources { margin-block: var(--space-m) var(--space-l); border-top: 1px solid var(--line); padding-top: var(--space-m); font-size: var(--step--1); }
.pr-sources h2 { font-size: var(--step-1); font-family: var(--font); font-weight: 700; margin-bottom: 0.5rem; }
.pr-sources ul { padding-left: 1.2rem; margin: 0.6rem 0 0; display: grid; gap: 0.35rem; }
.pr-downloads { margin-top: var(--space-l); background: var(--lavender); border-radius: var(--radius); padding: var(--space-m); }
.pr-downloads h2 { font-size: var(--step-2); }
.pr-downloads > p { margin-top: 0.4rem; color: var(--muted); }
.pr-downloads__list { list-style: none; padding: 0; margin: var(--space-s) 0 0; display: grid; gap: 0.6rem; }
.pr-download { display: grid; grid-template-columns: auto 1fr; gap: 0 0.75rem; align-items: center; padding: 0.9rem 1rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-s); text-decoration: none; color: var(--plum-900); }
.pr-download:hover { border-color: var(--violet); color: var(--plum-900); }
.pr-download .pr-icon { grid-row: span 2; color: var(--violet); width: 24px; height: 24px; }
.pr-download__label { font-weight: 700; }
.pr-download__meta { font-size: var(--step--1); color: var(--muted); }

/* ---------------------------------------------------------------- forms + tools */
.pr-form, .pr-tool__form { display: grid; gap: 1.1rem; }
.pr-field { display: grid; gap: 0.35rem; }
.pr-field label, .pr-tool__result > label { font-weight: 700; color: var(--plum-900); }
.pr-optional { font-weight: 400; color: var(--muted); }
.pr-hint { font-size: var(--step--1); color: var(--muted); }
input[type="text"], input[type="email"], input[type="url"], input:not([type]), input[type="search"], select, textarea {
  width: 100%; font: inherit; color: var(--ink); background: var(--paper); border: 1.5px solid #c9c0dd; border-radius: var(--radius-s); padding: 0.7rem 0.85rem; min-height: 2.875rem; }
textarea { resize: vertical; line-height: 1.5; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; border-color: var(--violet); }
.has-error input, .has-error select, .has-error textarea { border-color: var(--bad); }
.pr-error { color: var(--bad); font-weight: 650; font-size: var(--step--1); display: flex; gap: 0.35rem; }
.pr-error::before { content: "!"; flex: none; display: grid; place-items: center; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--bad); color: #fff; font-size: 0.75rem; margin-top: 0.15rem; }
.pr-form-errors, .pr-form-success { border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.pr-form-errors { border: 2px solid var(--bad); background: #fff5f4; }
.pr-form-errors h2, .pr-form-success h2 { font: 700 var(--step-1)/1.3 var(--font); color: inherit; }
.pr-form-errors ul { margin: 0.5rem 0 0; padding-left: 1.2rem; }
.pr-form-errors a { color: var(--bad); font-weight: 650; }
.pr-form-success { border: 2px solid var(--ok); background: #f0faf4; color: #0f4d31; }
.pr-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pr-form .pr-button { justify-self: start; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 0.9rem; }
legend { font: 600 var(--step-1)/1.2 var(--display); color: var(--plum-900); padding: 0; margin-bottom: 0.5rem; }
.pr-choice { display: flex; gap: 0.6rem; align-items: flex-start; }
.pr-choice input { width: 1.2rem; height: 1.2rem; margin: 0.2rem 0 0; flex: none; }
.pr-choice label { font-weight: 500; }

.pr-section--tool { padding-top: 0; background: linear-gradient(var(--lavender) 0 4rem, var(--paper) 4rem); }
.pr-tool { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: var(--space-m); display: grid; gap: var(--space-m); }
.pr-tool__grid { display: grid; gap: 1rem var(--space-m); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.pr-tool__summary { font-size: var(--step--1); color: var(--muted); font-variant-numeric: tabular-nums; }
.pr-tool__summary span { font-weight: 700; color: var(--plum-900); }
.pr-tool__table td, .pr-tool__table th { text-align: left; }
.pr-tool__table .pr-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pr-tool__basis { display: block; font-size: 0.75rem; color: var(--muted); font-weight: 400; }
.pr-tool__table tr.is-over td[data-out="status"] { color: var(--bad); font-weight: 700; }
.pr-tool__table tr.is-over [data-out="used"] { color: var(--bad); font-weight: 700; }
.pr-unit { color: var(--muted); font-size: 0.8125rem; }
.pr-tool__extra:empty, .pr-tool__warning:empty { display: none; }
.pr-tool__extra, .pr-tool__warning { font-size: var(--step--1); background: #fff8eb; border: 1px solid #f3dfb5; border-radius: var(--radius-s); padding: 0.6rem 0.8rem; }
.pr-tool__result { background: var(--lavender); border-radius: var(--radius-s); padding: 1rem 1.2rem; display: grid; gap: 0.5rem; min-height: 7.5rem; align-content: start; }
.pr-tool__big { font: 600 clamp(2.5rem, 2rem + 2vw, 3.5rem)/1 var(--display); color: var(--plum-900); font-variant-numeric: tabular-nums; }
.pr-tool__big .pr-unit { font-size: 0.5em; margin-left: 0.1em; }
.pr-tool__status { font-weight: 650; color: var(--ok); min-height: 1.5em; }
#utm-output { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 0.9375rem; background: var(--paper); word-break: break-all; }
output { display: block; }
.js .pr-js-hide { display: none; }
.no-js .pr-js-show { display: none; }

/* ---------------------------------------------------------------- closing CTA band */
.pr-cta-band { background: var(--plum-900); color: var(--on-plum); padding-block: var(--space-l); overflow: clip; }
.pr-cta-band__inner { display: grid; gap: var(--space-m); align-items: center; }
@media (min-width: 56rem) { .pr-cta-band__inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: var(--space-l); } }
.pr-cta-band h2 { color: #fff; max-width: 22ch; }
.pr-cta-band p { color: var(--on-plum-muted); margin-top: 0.75rem; max-width: 40rem; font-size: var(--step-1); }
.pr-cta-band .pr-actions { margin-top: var(--space-m); }
.pr-cta-band :focus-visible { outline-color: #e9d5ff; }
.pr-cta-band__art img { width: 100%; height: auto; }
@media (max-width: 55.99rem) { .pr-cta-band__art { max-width: 30rem; } }

/* ---------------------------------------------------------------- footer */
.pr-footer { background: var(--plum-950); color: #d9d0ee; padding-block: var(--space-l) var(--space-m); font-size: var(--step--1); }
.pr-footer__top { display: grid; gap: var(--space-m); grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr)); }
.pr-footer__brand { grid-column: 1 / -1; max-width: 28rem; }
@media (min-width: 72rem) { .pr-footer__top { grid-template-columns: 1.6fr repeat(5, 1fr); } .pr-footer__brand { grid-column: auto; } }
.pr-footer__logo { display: inline-flex; align-items: center; gap: 0.6rem; margin-bottom: 0.9rem; text-decoration: none; }
.pr-footer__logo img { width: 72px; height: auto; }
.pr-footer__name { font: 600 1.75rem/1 var(--display); color: #fff; }
.pr-footer h2 { font: 700 0.9375rem/1.3 var(--font); color: #fff; margin-bottom: 0.6rem; }
.pr-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.pr-footer a { color: #d9d0ee; text-decoration: none; }
.pr-footer a:hover { color: #fff; text-decoration: underline; }
.pr-footer :focus-visible { outline-color: #e9d5ff; }
.pr-footer__legal { margin-top: var(--space-l); padding-top: var(--space-s); border-top: 1px solid rgb(255 255 255 / 0.12); color: #b9aed6; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; }

/* ---------------------------------------------------------------- icons */
.pr-icon { flex: none; }

/* ---------------------------------------------------------------- motion + print */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .pr-header, .pr-footer, .pr-cta-band, .pr-skip { display: none; }
}

/* ---------------------------------------------------------------- refinements after visual review */
.pr-entry:has(> .pr-band:first-child) { padding-top: 0; }
.pr-entry > .pr-band:first-child { margin-top: var(--space-m); }
.pr-family-checkout .pr-footer, .pr-family-billing-account .pr-footer { padding-block: var(--space-s); }
.pr-family-checkout .pr-footer__legal, .pr-family-billing-account .pr-footer__legal { margin-top: 0; border-top: 0; }
@media (max-width: 40rem) {
  .pr-compare tbody th[scope="row"] { min-width: 8.5rem; max-width: 9.5rem; font-size: 0.8125rem; }
  .pr-compare th, .pr-compare td { padding: 0.6rem 0.55rem; }
}
.pr-entry--read > h2 { font-size: var(--step-2); margin-top: 2em; }
.pr-tool__table .pr-unit { display: block; font-size: 0.75rem; }
@media (max-width: 40rem) {
  .pr-tool { padding: 1rem; }
  .pr-tool__table th, .pr-tool__table td { padding: 0.55rem 0.5rem; }
  .pr-tool__table thead th:first-child, .pr-tool__table tbody th { min-width: 7.5rem; }
}

/* ================================================================ 2026-10 revision: orbit heroes, blog, testimonials, plans */

/* ---------------------------------------------------------------- sprite + pills */
.pr-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.pr-pill { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.4rem 0.95rem; border: 1px solid rgb(196 181 253 / 0.35); border-radius: 999px; font: 650 var(--step--2)/1.2 var(--font); letter-spacing: 0.04em; color: #e9d5ff; background: rgb(255 255 255 / 0.04); }
.pr-pill__pulse { width: 8px; height: 8px; border-radius: 50%; background: #fcd34d; box-shadow: 0 0 10px #fcd34d; animation: pr-pill 2.6s ease-in-out infinite; }
.pr-pill--light { color: var(--violet-hover); border-color: #d9ccf5; background: var(--paper); }
@keyframes pr-pill { 50% { opacity: 0.45; transform: scale(0.75); } }

/* ---------------------------------------------------------------- orbit heroes (home, features, solutions, blog) */
.pr-orbit { position: relative; isolation: isolate; overflow: clip; color: #fff; background: radial-gradient(120% 70% at 50% -10%, rgb(139 92 246 / 0.34), transparent 60%), radial-gradient(70% 55% at 90% 30%, rgb(228 75 208 / 0.14), transparent 70%), radial-gradient(70% 60% at 5% 90%, rgb(42 18 87 / 0.9), transparent 70%), var(--night); }
/* Starfield: two tiled layers of soft dots (no canvas, no script); the second layer twinkles. */
.pr-orbit::before, .pr-orbit::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-repeat: repeat; }
.pr-orbit::before { opacity: 0.7; background-image: radial-gradient(1px 1px at 23px 41px, #fff 50%, transparent 52%), radial-gradient(1px 1px at 141px 97px, #e9e4ff 50%, transparent 52%), radial-gradient(1.5px 1.5px at 77px 173px, #fff 50%, transparent 52%), radial-gradient(1px 1px at 201px 15px, #d8ccff 50%, transparent 52%), radial-gradient(1px 1px at 189px 211px, #fff 50%, transparent 52%); background-size: 233px 241px; }
.pr-orbit::after { opacity: 0.5; background-image: radial-gradient(1.5px 1.5px at 61px 89px, #fff 50%, transparent 52%), radial-gradient(1px 1px at 251px 31px, #f5d0fe 50%, transparent 52%), radial-gradient(2px 2px at 177px 263px, #e9d5ff 50%, transparent 52%), radial-gradient(1px 1px at 311px 199px, #fff 50%, transparent 52%); background-size: 347px 317px; animation: pr-twinkle 5s ease-in-out infinite alternate; }
@keyframes pr-twinkle { to { opacity: 0.12; } }
.pr-orbit h1 { color: #fff; }
.pr-orbit .pr-lede { color: var(--on-night-muted); }
.pr-orbit .pr-crumbs li, .pr-orbit .pr-crumbs a { color: #cbbff0; }
.pr-orbit .pr-crumbs a:hover { color: #fff; }
.pr-orbit .pr-crumbs li + li::before { color: #8f80bf; }
.pr-orbit .pr-hero__context { color: #e9d5ff; }
.pr-orbit .pr-button--secondary { background: transparent; color: #fff; border-color: rgb(255 255 255 / 0.5); }
.pr-orbit .pr-button--secondary:hover { background: rgb(255 255 255 / 0.1); border-color: #fff; color: #fff; }
.pr-orbit :focus-visible { outline-color: #e9d5ff; }
.pr-orbit .pr-availability { color: var(--on-night-muted); }
.pr-orbit .pr-availability .pr-icon { color: var(--lilac); }
.pr-orbit .pr-availability a { color: #e9d5ff; }
.pr-orbit .pr-screen figcaption, .pr-orbit .pr-demo-note { color: #cbbff0; }
.pr-orbit .pr-screen picture { border-color: rgb(196 181 253 / 0.35); box-shadow: 0 30px 80px -30px rgb(0 0 0 / 0.7); }

.pr-hero--home { padding-block: var(--space-l) var(--space-xl); }
.pr-hero--home .pr-hero__grid { align-items: center; gap: var(--space-l); }
.pr-hero--home h1 { font-size: var(--step-5); max-width: 16ch; letter-spacing: -0.015em; }
.pr-hero--home .pr-hero__text { max-width: 46rem; gap: var(--space-s); }
@media (min-width: 64rem) { .pr-hero--home .pr-hero__grid, .pr-hero--blog .pr-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); } }
.pr-orbit__instrument { width: 100%; max-width: 36rem; aspect-ratio: 1; margin-inline: auto; }
@media (max-width: 63.99rem) { .pr-orbit__instrument { max-width: 22rem; } }
.pr-orbit__svg { width: 100%; height: 100%; overflow: visible; }
.pr-orbit__label { font: 600 15px/1 var(--display); letter-spacing: 0.04em; }

/* Light variant: rings and satellites behind the hero screenshot. */
.pr-orbit--light .pr-hero__media { position: relative; }
.pr-orbit__behind { position: absolute; left: 50%; top: 50%; width: 116%; aspect-ratio: 1; translate: -50% -50%; z-index: -1; pointer-events: none; opacity: 0.9; }
.pr-orbit--light .pr-screen { position: relative; }

/* Motion. Transform/opacity on compositor-friendly groups; dash offsets on a few thin strokes. Paused offscreen
   (site.js toggles .is-paused) and removed entirely under prefers-reduced-motion (motion section below). */
.pr-orbit__spin { transform-box: view-box; transform-origin: 50% 50%; animation: pr-spin 70s linear infinite; }
.pr-orbit__spin--rev { animation-duration: 110s; animation-direction: reverse; }
.pr-orbit__glow { animation: pr-breathe 9s ease-in-out infinite; }
.pr-orbit__sweep { animation: pr-sweep 8s cubic-bezier(0.55, 0, 0.45, 1) infinite; }
.pr-orbit__pulse { stroke-dashoffset: 18; animation: pr-travel 4.8s cubic-bezier(0.4, 0, 0.2, 1) infinite; }
.pr-orbit__pulse--1 { animation-delay: 1.2s; }
.pr-orbit__pulse--2 { animation-delay: 2.4s; }
.pr-orbit__pulse--3 { animation-delay: 3.6s; }
.pr-orbit__pulse--4 { animation-delay: 0.6s; }
.pr-orbit__pulse--5 { animation-delay: 3s; }
.pr-orbit__day { transform-box: fill-box; transform-origin: 50% 50%; animation: pr-day 4.8s ease-in-out infinite; }
.pr-orbit__day--2 { animation-delay: 1.6s; }
.pr-orbit__day--3 { animation-delay: 3.2s; }
.pr-orbit__hand { transform-box: view-box; transform-origin: 0 0; /* local origin = badge centre (parent group is translated) */ animation: pr-spin 12s linear infinite; }
.pr-orbit.is-paused *, .pr-orbit.is-paused::after { animation-play-state: paused; }
@keyframes pr-spin { to { transform: rotate(360deg); } }
@keyframes pr-breathe { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
@keyframes pr-sweep { from { stroke-dashoffset: 1560; } to { stroke-dashoffset: 0; } }
@keyframes pr-travel { 0% { stroke-dashoffset: 18; opacity: 0; } 12% { opacity: 1; } 80% { opacity: 1; } 100% { stroke-dashoffset: -300; opacity: 0; } }
@keyframes pr-day { 0%, 100% { opacity: 0.35; transform: scale(0.86); } 20%, 45% { opacity: 1; transform: scale(1); } }

/* ---------------------------------------------------------------- band + steps */
.pr-band > p:first-of-type { margin-bottom: var(--space-l); }
.pr-steps { gap: var(--space-m) var(--space-l); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.pr-reveal li { opacity: 0; translate: 0 1.75rem; }
.pr-reveal .pr-step__title::before { scale: 0.4; }
.pr-reveal.is-in li { opacity: 1; translate: 0 0; transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), translate 0.7s cubic-bezier(0.16, 1, 0.3, 1); }
.pr-reveal.is-in .pr-step__title::before { scale: 1; transition: scale 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s; }
.pr-reveal.is-in li:nth-child(2), .pr-reveal.is-in li:nth-child(2) .pr-step__title::before { transition-delay: 0.1s; }
.pr-reveal.is-in li:nth-child(3), .pr-reveal.is-in li:nth-child(3) .pr-step__title::before { transition-delay: 0.2s; }
.pr-reveal.is-in li:nth-child(4), .pr-reveal.is-in li:nth-child(4) .pr-step__title::before { transition-delay: 0.3s; }
.pr-reveal.is-in li:nth-child(n+5) { transition-delay: 0.4s; }

/* ---------------------------------------------------------------- full-bleed sections inside content */
.pr-entry > :is(.pr-cta-band, .pr-testimonials, .pr-ai-band) { width: 100%; max-width: none; margin-inline: 0; padding-inline-end: 0; }
.pr-entry > .pr-cta-band { margin-block: var(--space-l) 0; }
.pr-entry > .pr-cta-band:last-child { margin-bottom: calc(-1 * var(--space-l)); }
.pr-entry > .pr-latest--end { width: 100%; max-width: none; margin-block: 0 calc(-1 * var(--space-l)); padding-inline-end: 0; }
.pr-entry > .pr-latest:not(.pr-latest--end) { margin-top: var(--space-m); }
.pr-cta-band .wp-block-heading { color: #fff; max-width: 22ch; }
.pr-cta-band .wp-block-buttons { margin-top: var(--space-m); }
.pr-cta-band .wp-block-button:first-child .wp-block-button__link { background: #fff; color: var(--plum-900); }
.pr-cta-band .wp-block-button:first-child .wp-block-button__link:hover { background: var(--violet-soft); }
.pr-cta-band .wp-block-button + .wp-block-button .wp-block-button__link { background: transparent; color: #fff; border-color: rgb(255 255 255 / 0.6); }
.pr-cta-band__text > * + * { margin-top: 0.75rem; }
.pr-entry > .pr-ai-band { background: var(--night) radial-gradient(90% 70% at 85% 10%, rgb(139 92 246 / 0.32), transparent 65%); color: var(--on-night-muted); padding-block: var(--space-l); margin-block: var(--space-l); }
.pr-ai-band > * { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.pr-ai-band :is(h2, h3) { color: #fff; }
.pr-ai-band a:not(.wp-block-button__link) { color: #e9d5ff; }
.pr-ai-band .pr-screen figcaption, .pr-ai-band .pr-demo-note { color: #cbbff0; }

/* ---------------------------------------------------------------- testimonials carousel */
.pr-testimonials { padding-block: var(--space-l); background: linear-gradient(var(--lavender), var(--paper)); }
.pr-entry > h2:has(+ .pr-testimonials), .pr-testimonials__title { font-size: var(--step-5); letter-spacing: -0.02em; max-width: 18ch; }
.pr-entry > h2:has(+ .pr-testimonials) { margin-bottom: calc(-1 * var(--space-l) + var(--space-m)); position: relative; z-index: 1; }
.pr-testimonials__head { width: min(100% - 2 * var(--gutter), var(--wrap)); margin: 0 auto var(--space-m); display: grid; gap: var(--space-s); justify-items: start; }
.pr-carousel__track { list-style: none; margin: 0; padding: 0.5rem max(var(--gutter), calc((100% - var(--wrap)) / 2)) 1.25rem; display: grid; grid-auto-flow: column; grid-auto-columns: min(86%, 31rem); gap: 1.25rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2)); scrollbar-width: thin; scrollbar-color: #cbbff0 transparent; }
.pr-carousel__track:focus-visible { outline-offset: -3px; }
.pr-carousel__slide { scroll-snap-align: start; display: flex; }
.pr-quote { margin: 0; display: flex; flex-direction: column; gap: 1.25rem; width: 100%; padding: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); background: var(--paper); border: 1px solid var(--line); border-radius: 1.25rem; box-shadow: var(--shadow); }
.pr-quote__mark { width: 2.5rem; height: auto; color: var(--violet); }
.pr-quote blockquote { margin: 0; flex: 1; }
.pr-quote blockquote p { font-size: var(--step-1); line-height: 1.5; color: var(--ink); }
.pr-quote figcaption { display: flex; align-items: center; gap: 0.85rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.pr-quote figcaption strong { display: block; color: var(--plum-900); }
.pr-quote figcaption span span { display: block; font-size: var(--step--1); color: var(--muted); }
.pr-quote__avatar { flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; background: var(--violet-soft); color: var(--violet-hover); font: 600 1.15rem/1 var(--display); }
.pr-carousel__controls { width: min(100% - 2 * var(--gutter), var(--wrap)); margin: 0.5rem auto 0; display: flex; align-items: center; gap: 0.9rem; }
.pr-carousel__btn { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid #cbc1e3; background: var(--paper); color: var(--plum-900); cursor: pointer; transition: background-color 0.15s, border-color 0.15s, color 0.15s; }
.pr-carousel__btn:hover:not(:disabled) { background: var(--plum-900); border-color: var(--plum-900); color: #fff; }
.pr-carousel__btn:disabled { opacity: 0.4; cursor: default; }
.pr-carousel__status { font-variant-numeric: tabular-nums; color: var(--muted); font-size: var(--step--1); min-width: 4.5rem; text-align: center; }

/* ---------------------------------------------------------------- plans: 3 per row, subgrid-aligned cards */
.pr-plans__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 1.25rem; }
@media (min-width: 40rem) { .pr-plans__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .pr-plans__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pr-plan { display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0.75rem; align-content: start; }
.pr-plans__list--compact .pr-plan { grid-row: span 6; }
.pr-plan > * { margin: 0; }
.pr-plan__name { align-self: end; }
.pr-plan__price { align-self: end; }
.pr-plan__price .pr-when-month, .pr-plan__price .pr-when-year { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.5rem; }
.pr-plans:has(.pr-interval__year:checked) .pr-plan__price .pr-when-month { display: none; }
.pr-plans:not(:has(.pr-interval__year:checked)) .pr-plan__price .pr-when-year { display: none; }
.pr-plan__trial { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 650; font-size: var(--step--1); color: var(--violet-hover); }
.pr-plan__trial .pr-icon { width: 1.15rem; height: 1.15rem; }
.pr-plan--agency .pr-plan__trial { color: #e9d5ff; }
.pr-plan__cta { align-self: end; }
.pr-plan__info { border-top: 1px solid var(--line); padding-top: 0.75rem; }
.pr-plan__info > summary { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; list-style: none; font-weight: 650; font-size: var(--step--1); color: var(--plum-900); padding: 0.35rem 0; border-radius: 6px; }
.pr-plan__info > summary::-webkit-details-marker { display: none; }
.pr-plan__info > summary .pr-icon--chevron { margin-left: auto; transition: transform 0.2s; }
.pr-plan__info[open] > summary .pr-icon--chevron { transform: rotate(180deg); }
.pr-plan__info > summary .pr-icon--info { color: var(--violet); }
.pr-plan__details { display: grid; gap: 0.6rem; padding-top: 0.6rem; }
.pr-plan--agency .pr-plan__info { border-color: rgb(255 255 255 / 0.18); }
.pr-plan--agency .pr-plan__info > summary { color: #fff; }
.pr-plan--agency .pr-plan__info > summary .pr-icon--info { color: #d8b4fe; }
.pr-plan--agency .pr-plan__note a { color: #e9d5ff; }
.pr-plan--agency .pr-plan__lines { color: var(--on-plum-muted); }

/* ---------------------------------------------------------------- FAQ section */
.pr-faq__grid { display: grid; gap: var(--space-m) var(--space-l); }
@media (min-width: 64rem) { .pr-faq__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: start; } .pr-faq__head { position: sticky; top: 6.5rem; } }
.pr-faq__head h2 { max-width: 14ch; }
.pr-faq__count { margin-top: 0.6rem; color: var(--muted); font-size: var(--step--1); }
.pr-faq__list { border-top: 1px solid var(--line); max-width: 56rem; }
.pr-faq__item summary { font-size: var(--step-0); padding: 1.1rem 0; align-items: center; }
.pr-faq__item > p { max-width: var(--read); color: var(--muted); }
.pr-faq__item > p a { font-weight: 600; }

/* ---------------------------------------------------------------- article cards + latest posts */
.pr-latest { padding-block: var(--space-l); }
.pr-latest--end { background: var(--lavender); }
.pr-latest__inner { width: 100%; }
.pr-latest__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 0.75rem 2rem; margin-bottom: var(--space-m); }
.pr-latest__head h2 { font-size: var(--step-3); }
.pr-latest__more { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 650; }
.pr-cards { display: grid; gap: var(--space-m) 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 40rem) { .pr-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 60rem) { .pr-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pr-card { display: grid; grid-template-rows: auto 1fr; background: var(--paper); border: 1px solid var(--line); border-radius: 1.1rem; overflow: hidden; transition: box-shadow 0.25s, translate 0.25s; }
.pr-card:hover { box-shadow: var(--shadow); translate: 0 -2px; }
.pr-card__media { display: block; overflow: hidden; background: var(--plum-900); }
.pr-card__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: scale 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.pr-card:hover .pr-card__media img { scale: 1.035; }
.pr-card__body { display: flex; flex-direction: column; gap: 0.6rem; padding: 1.15rem 1.3rem 1.35rem; }
.pr-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; font-size: var(--step--2); color: var(--muted); }
.pr-card__cats, .pr-post__cats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.pr-card__cats a, .pr-post__cats a { display: inline-block; padding: 0.2rem 0.6rem; border-radius: 999px; background: var(--violet-soft); color: var(--violet-hover); font-weight: 650; font-size: var(--step--2); text-decoration: none; }
.pr-card__cats a:hover, .pr-post__cats a:hover { background: var(--violet); color: #fff; }
.pr-card__title { font: 600 var(--step-1)/1.25 var(--display); }
.pr-card__title a { color: var(--plum-900); text-decoration: none; }
.pr-card__title a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.pr-card__excerpt { color: var(--muted); font-size: var(--step--1); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pr-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 650; font-size: var(--step--1); text-decoration: none; }
.pr-card__more:hover { text-decoration: underline; }
.pr-card__more .pr-icon { width: 18px; height: 18px; transition: translate 0.2s; }
.pr-card__more:hover .pr-icon { translate: 3px 0; }

/* ---------------------------------------------------------------- blog hero, chips, proof */
.pr-hero--blog { padding-block: var(--space-m) var(--space-l); }
.pr-hero--blog h1 { font-size: var(--step-5); }
.pr-hero--blog .pr-hero__text { max-width: 48rem; }
.pr-hero__text { min-width: 0; }
.pr-hero--blog .pr-hero__text { grid-template-columns: minmax(0, 1fr); }
.pr-chips { justify-self: stretch; min-width: 0; margin-top: 0.4rem; }
.pr-chips ul { list-style: none; margin: 0; padding: 0.2rem 0.1rem 0.6rem; display: flex; gap: 0.5rem; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #5b4691 transparent; }
.pr-chips a { display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap; padding: 0.45rem 0.9rem 0.45rem 0.7rem; border-radius: 999px; border: 1px solid rgb(196 181 253 / 0.3); background: rgb(255 255 255 / 0.05); color: #efe9ff; font-weight: 600; font-size: var(--step--1); text-decoration: none; transition: background-color 0.15s, border-color 0.15s; }
.pr-chips a:hover { background: rgb(255 255 255 / 0.12); border-color: var(--lilac); color: #fff; }
.pr-chips a[aria-current] { background: #fff; color: var(--plum-900); border-color: #fff; }
.pr-chips .pr-icon { width: 18px; height: 18px; color: var(--lilac); }
.pr-chips a[aria-current] .pr-icon { color: var(--violet); }
.pr-proof { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 0.75rem 0 0; padding-top: 1.25rem; border-top: 1px solid rgb(196 181 253 / 0.18); }
.pr-proof > div { display: flex; flex-direction: column-reverse; }
.pr-proof dt { color: #cbbff0; font-size: var(--step--1); }
.pr-proof dd { margin: 0; font: 600 var(--step-2)/1.15 var(--display); color: #fff; }
.pr-orbit__instrument--blog { max-width: 32rem; }

/* Intro with "Read more" */
.pr-intro { padding-block: var(--space-l) 0; }
.pr-intro__grid { display: grid; gap: var(--space-m) var(--space-l); align-items: center; }
@media (min-width: 64rem) { .pr-intro__grid.has-media { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.pr-intro__img img { width: 100%; border-radius: 1.25rem; aspect-ratio: 16 / 10; object-fit: cover; }
.pr-intro__body.is-clamped { max-height: 14.5em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 62%, transparent); mask-image: linear-gradient(#000 62%, transparent); }
.pr-intro__more { margin-top: 0.75rem; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0; background: none; border: 0; font: 650 var(--step-0) var(--font); color: var(--violet-hover); cursor: pointer; }
.pr-intro__more[aria-expanded="true"] .pr-icon { transform: rotate(180deg); }
.pr-intro__more[hidden] { display: none; }

/* Topic tiles */
.pr-tiles-section { padding-block: var(--space-l) 0; }
.pr-tiles-section h2:not(.screen-reader-text) { font-size: var(--step-3); margin-bottom: var(--space-m); }
.pr-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 22rem) { .pr-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 56rem) { .pr-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pr-tile { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: center; gap: 0.15rem 0.75rem; padding-bottom: 1rem; border-radius: 1.1rem; overflow: hidden; text-decoration: none; color: var(--plum-900); background: var(--paper); border: 1px solid var(--line); transition: box-shadow 0.25s, border-color 0.25s; }
.pr-tile__img { grid-column: 1 / -1; display: block; overflow: hidden; margin-bottom: 0.75rem; }
.pr-tile__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: scale 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.pr-tile__name { grid-column: 1 / -1; display: flex; align-items: center; gap: 0.5rem; padding-inline: 1.1rem; font: 600 var(--step-1)/1.2 var(--display); }
.pr-tile__name .pr-icon { color: var(--violet); }
.pr-tile__count { grid-column: 1 / -1; padding-inline: 1.1rem; font-size: var(--step--2); color: var(--muted); }
.pr-tile:hover { color: var(--plum-900); border-color: #cbbff0; box-shadow: var(--shadow); }
.pr-tile:hover .pr-tile__name { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.18em; }
.pr-tile:hover .pr-tile__img img { scale: 1.04; }

/* Featured */
.pr-featured { padding-block: var(--space-l) 0; }
.pr-featured h2 { font-size: var(--step-3); margin-bottom: var(--space-m); }
.pr-featured__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 40rem) { .pr-featured__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .pr-featured__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pr-featured__list > li { display: grid; }
.pr-feature { position: relative; display: grid; border-radius: 1.25rem; overflow: hidden; text-decoration: none; color: #fff; background: var(--plum-900); isolation: isolate; min-height: 22rem; }
.pr-feature > * { grid-area: 1 / 1; }
.pr-feature__img img { width: 100%; height: 100%; object-fit: cover; transition: scale 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
.pr-feature::after { content: ""; grid-area: 1 / 1; background: linear-gradient(transparent 30%, rgb(14 6 38 / 0.92)); z-index: 0; }
.pr-feature__text { z-index: 1; align-self: end; display: grid; gap: 0.4rem; padding: clamp(1rem, 0.8rem + 1vw, 1.75rem); }
.pr-feature__cat { font-size: var(--step--2); font-weight: 650; letter-spacing: 0.04em; color: #f5d0fe; }
.pr-feature__title { font: 600 var(--step-1)/1.25 var(--display); max-width: 32ch; }
.pr-feature:hover { color: #fff; }
.pr-feature:hover .pr-feature__img img { scale: 1.04; }
.pr-feature:hover .pr-feature__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.18em; }

/* Article listing, search, pagination */
.pr-articles { padding-block: var(--space-l); }
.pr-articles__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: var(--space-m); }
.pr-articles__head h2 { font-size: var(--step-3); }
.pr-articles__head p { color: var(--muted); margin-top: 0.35rem; }
.pr-search { display: flex; gap: 0.5rem; width: min(100%, 28rem); }
.pr-search input[type="search"] { flex: 1; min-width: 0; }
.pr-search .pr-button { flex: none; }
.pr-pagination { margin-top: var(--space-l); }
.pr-pagination ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; }
.pr-pagination a, .pr-pagination span { display: inline-flex; align-items: center; gap: 0.3rem; min-width: 2.75rem; min-height: 2.75rem; justify-content: center; padding: 0 0.8rem; border-radius: var(--radius-s); border: 1px solid var(--line); text-decoration: none; font-weight: 650; color: var(--plum-900); }
.pr-pagination a:hover { border-color: var(--violet); color: var(--violet-hover); }
.pr-pagination [aria-current] { background: var(--plum-900); border-color: var(--plum-900); color: #fff; }
.pr-pagination .dots { border: 0; }
.pr-search-results { padding-block: var(--space-l); display: grid; gap: var(--space-l); }
.pr-search-results h2 { font-size: var(--step-2); margin-bottom: var(--space-s); }
.pr-hero--search .pr-search { margin-top: 0.5rem; }

/* ---------------------------------------------------------------- single post + legal long-form */
.pr-post__head { background: var(--lavender); padding-block: var(--space-m) calc(var(--space-xl) + 2rem); }
.pr-post__head .pr-wrap { display: grid; gap: var(--space-s); justify-items: start; max-width: 64rem; }
.pr-post__head h1 { font-size: var(--step-4); max-width: 26ch; }
.pr-post__head .pr-lede { max-width: 46rem; }
.pr-post__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; color: var(--muted); font-size: var(--step--1); }
.pr-post__meta > span { display: inline-flex; align-items: center; gap: 0.4rem; }
.pr-post__meta .pr-icon { width: 18px; height: 18px; color: var(--violet); }
.pr-post__figure { margin-top: calc(-1 * var(--space-xl)); max-width: 72rem; }
.pr-post__cover img { width: 100%; border-radius: 1.4rem; aspect-ratio: 21 / 8; object-fit: cover; box-shadow: var(--shadow-lg); }
.pr-longform { padding-block: var(--space-l); display: grid; gap: var(--space-m); justify-content: center; grid-template-columns: minmax(0, var(--read)); }
@media (min-width: 64rem) { .pr-longform.has-toc { grid-template-columns: 17rem minmax(0, var(--read)); gap: clamp(2.5rem, 4vw, 5rem); } .pr-longform__aside { position: sticky; top: 6rem; align-self: start; max-height: calc(100dvh - 7rem); overflow-y: auto; } }
.pr-toc { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; background: var(--paper); }
.pr-toc__title { display: flex; align-items: center; gap: 0.5rem; font-weight: 700; color: var(--plum-900); font-size: var(--step--1); margin-bottom: 0.5rem; }
.pr-toc__title .pr-icon { color: var(--violet); }
.pr-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; display: grid; gap: 0.15rem; }
.pr-toc li { counter-increment: toc; }
.pr-toc a { display: grid; grid-template-columns: 1.6rem 1fr; padding: 0.35rem 0.4rem; border-radius: 6px; font-size: var(--step--1); line-height: 1.4; color: var(--muted); text-decoration: none; }
.pr-toc a::before { content: counter(toc) "."; color: var(--violet); font-variant-numeric: tabular-nums; font-weight: 600; }
.pr-toc a:hover { background: var(--lavender); color: var(--plum-900); }
.pr-updated { display: flex; gap: 0.45rem; align-items: center; color: var(--muted); font-size: var(--step--1); }
.pr-updated .pr-icon { color: var(--violet); width: 18px; height: 18px; }

/* Long-form prose (posts, legal pages, blog intro) */
.pr-prose { font-size: var(--step-0); line-height: 1.75; min-width: 0; }
.pr-prose > * + * { margin-top: 1.15em; }
.pr-prose > :first-child { margin-top: 0; }
.pr-prose h2 { font-size: var(--step-3); margin-top: 1.9em; scroll-margin-top: 6rem; }
.pr-prose h3 { font-size: var(--step-1); margin-top: 1.6em; }
.pr-prose :is(h2, h3) + * { margin-top: 0.55em; }
.pr-prose ul, .pr-prose ol { padding-left: 1.35rem; }
.pr-prose li + li { margin-top: 0.45em; }
.pr-prose li::marker { color: var(--violet); }
.pr-prose a { font-weight: 550; }
.pr-prose strong { color: var(--plum-900); }
.pr-prose blockquote { margin-inline: 0; padding: 0.25rem 0 0.25rem 1.25rem; border-left: 1px solid var(--violet); font-size: var(--step-1); color: var(--plum-900); }
.pr-prose .wp-block-table { margin-inline: 0; }
.pr-prose .wp-block-table table { font-size: var(--step--1); }
.pr-prose .pr-callout { font-size: var(--step--1); }
.pr-prose .pr-screen { margin-block: 1.5em; }

/* ---------------------------------------------------------------- refinements for the 18px base */
.pr-hero__text { max-width: 46rem; }
.pr-entry > .pr-band { padding-block: var(--space-xl); }
.pr-band > h2 { font-size: var(--step-4); }
.wp-block-column > h2 { font-size: var(--step-3); }
.pr-related h2 { font-size: var(--step-3); }
.pr-cta-band { padding-block: var(--space-xl); }
.pr-cta-band h2 { font-size: var(--step-4); }
@media (max-width: 40rem) { .pr-search { flex-wrap: wrap; } .pr-search .pr-button { width: 100%; } }

/* Reduced motion: static, fully visible states (the global rule above stops every animation and transition). */
@media (prefers-reduced-motion: reduce) {
  .pr-reveal li, .pr-reveal .pr-step__title::before { opacity: 1 !important; translate: none !important; scale: none !important; }
  .pr-orbit__sweep { stroke-dashoffset: 0; }
  .pr-orbit__pulse { opacity: 0.8; }
  .pr-card:hover, .pr-card:hover .pr-card__media img, .pr-tile:hover .pr-tile__img img, .pr-feature:hover .pr-feature__img img { translate: none; scale: none; }
}

/* Content-placed components: full width where they carry their own layout; button rows side by side in the CTA band. */
.pr-entry > .pr-plans { margin-block: var(--space-m); }
.pr-entry > .pr-ai-band + .pr-band, .pr-entry > .pr-band + .pr-ai-band, .pr-entry > .pr-testimonials + .pr-cta-band { margin-top: 0; }
.pr-entry > h2:has(+ .pr-plans) { margin-top: var(--space-l); }
.pr-cta-band__text > .wp-block-buttons { display: inline-flex; vertical-align: top; margin-right: 0.75rem; }
.pr-cta-band__text > .wp-block-buttons, .pr-cta-band__text > .wp-block-buttons + .wp-block-buttons { margin-top: var(--space-m); }
.pr-cta-band__text > .wp-block-buttons + .wp-block-buttons .wp-block-button__link { background: transparent; color: #fff; border-color: rgb(255 255 255 / 0.6); }
.pr-cta-band__text > .wp-block-buttons + .wp-block-buttons .wp-block-button__link:hover { background: rgb(255 255 255 / 0.1); border-color: #fff; }
.pr-plan__capacity span { white-space: nowrap; }
@media (max-width: 40rem) { .pr-post__cover img { aspect-ratio: 16 / 9; } }
/* Legal pages: hero text shares the left edge of the prose column beside the table of contents. */
@media (min-width: 64rem) { .pr-family-legal .pr-hero--read .pr-wrap { width: min(100% - 2 * var(--gutter), calc(var(--read) + 17rem + clamp(2.5rem, 4vw, 5rem))); } .pr-family-legal .pr-hero--read .pr-hero__text { margin-left: auto; width: var(--read); } }
.pr-feature__img img { object-position: 50% 15%; }
@media (max-width: 40rem) {
  .pr-orbit__instrument--blog { max-width: 15rem; }
  .pr-tile__name { font-size: var(--step-0); padding-inline: 0.8rem; }
  .pr-tile__name .pr-icon { display: none; }
  .pr-tile__count { padding-inline: 0.8rem; }
}
