/* ==========================================================================================
   PHYSIOTHERAPIST INDIA 2.0 — pti2.css
   One stylesheet for the whole site. Phase B (design system), October 2026. NOT DEPLOYED.

   Spec:      redesign/PTI-2.0-LAYOUT-PLAN-AND-RULES.md  (Part 3 design system, Part 6 layouts,
              Part 8 motion, Part 9.2 accessibility, Part 11 Rule Book G1–G12)
   Approved:  redesign/APPROVED-DECISIONS.md  (blend palette; Playfair Display + DM Sans; one hub)

   What it does
   1. Restyles the EXISTING page markup — `.ptipg` / `.ptipg__*` (inner pages), `.ptihome__*`
      (homepage), and the theme's header, menu, footer and reading-aid classes (`.pti-*`) —
      without any change to page content.
   2. Adds the new shared components of Part 3.5 under the `pti-` prefix (pti-btn, pti-card,
      pti-chip, pti-trust, pti-callout, pti-search, pti-libnav, pti-rail, pti-tools …).

   Intended to replace, in one step, all eight theme stylesheets in assets/css:
   pti-core.css · pti-header-footer.css · pti-pages.css · pti-v2.css · pti-v2-nav.css ·
   pti-v2-menu.css · pti-v2-learn.css · pti-v3-aparc.css. Rollback = re-enqueue those eight and
   dequeue this one. Selector-by-selector coverage: README.md.

   Specificity. Elementor's kit styles `.elementor-kit-NNNN h2/a` at (0,1,1). Every content rule
   here is scoped `.pti .ptipg …` or `.pti .ptihome …` (body class `pti` + wrapper), i.e. (0,2,1)
   or higher, so it wins on specificity and never depends on load order. `!important` is used
   where page content carries inline style attributes that must be overridden (gold colours, the
   hero photo, inline heading colours/sizes on cards, figure captions, table cells), on component
   colours that the old stylesheets also forced, and in the reduced-motion and print blocks.
   Once the eight old stylesheets are removed, most of the non-inline cases can be relaxed.

   Colour rules (G5): teal #0EAEAB is never text and never the only carrier of meaning (2.74:1);
   teal text is #086A68. Gold is retired — none is used, and inline gold in page content is
   overridden. Status colours always appear with an icon and a word.
   Contrast for every text/background pair: see CONTRAST-CHECK.md.
   ========================================================================================== */


/* ------------------------------------------------------------------------------------------
   1. DESIGN TOKENS
   ------------------------------------------------------------------------------------------ */
:root{
  /* Colour — Part 3.2 (exact values) */
  --pti-navy:#013584;          /* primary navy — headings, header, dark sections   11.39:1 on white */
  --pti-navy-deep:#012A6B;     /* hero and footer backgrounds                      13.59:1 */
  --pti-blue:#2563EB;          /* links, primary buttons, focus ring                5.17:1 */
  --pti-blue-strong:#1D4ED8;   /* hover / text on blue tint                        6.70:1 */
  --pti-teal:#0EAEAB;          /* decoration, icons on dark, borders — NEVER TEXT   2.74:1 */
  --pti-teal-text:#086A68;     /* eyebrows and labels in teal                       6.42:1 */
  --pti-cyan:#22D3EE;          /* illustrations / animation on dark navy only */
  --pti-bg:#F7FAFC;            /* alternating sections */
  --pti-white:#FFFFFF;
  --pti-ink:#1E293B;           /* body text                                        14.63:1 */
  --pti-muted:#64748B;         /* captions, metadata — white or #F7FAFC only        4.76 / 4.54 */
  --pti-muted-strong:#475569;  /* metadata on tints                                 ≥ 6.8:1 on tints */
  --pti-tint-teal:#EAF8F8;
  --pti-tint-blue:#EEF4FB;
  --pti-red:#B42318;   --pti-red-tint:#FEF3F2;   --pti-red-line:#F5C2BC;
  --pti-amber:#B54708; --pti-amber-tint:#FFFAEB; --pti-amber-line:#F6D9A8;
  --pti-green:#067647; --pti-green-tint:#ECFDF3; --pti-green-line:#B7E4C9;
  --pti-line:#E2E8F0;          /* hairlines (decorative) */
  --pti-line-strong:#94A3B8;   /* control borders that must be seen: 2.56:1 → used with 1.5px + label */
  --pti-control-border:#7B8BA1;/* form-field border, 3.53:1 on white (WCAG 1.4.11) */

  /* On dark (navy-deep / navy / hero gradient) */
  --pti-on-dark:#FFFFFF;
  --pti-on-dark-soft:#DCE6F5;  /* lede and body on dark */
  --pti-on-dark-muted:#BFD3F2; /* eyebrows, labels on dark */
  --pti-focus-on-dark:#93C5FD; /* focus ring on dark: 7.54:1 on navy-deep */

  /* Gradients — hero and dark sections ONLY (navy → blue → teal) */
  --pti-grad-hero:linear-gradient(118deg,#012A6B 0%,#013584 45%,#1E40AF 80%,#075E63 100%);  /* every stop keeps white ≥ 4.8:1 and #BFD3F2 ≥ 4.9:1 */
  --pti-grad-dark:linear-gradient(160deg,#012A6B 0%,#013584 70%,#0B5E7A 100%);

  /* Type — Part 3.3 */
  --pti-font-display:'Playfair Display',Georgia,'Times New Roman',serif;
  --pti-font-ui:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --pti-fs-display:clamp(2.25rem,1.786rem + 1.905vw,3.5rem);   /* 36 → 56 */
  --pti-fs-h1:clamp(1.875rem,1.55rem + 1.333vw,2.75rem);       /* 30 → 44 */
  --pti-fs-h2:clamp(1.5rem,1.361rem + .571vw,1.875rem);        /* 24 → 30 */
  --pti-fs-h3:clamp(1.1875rem,1.141rem + .19vw,1.3125rem);     /* 19 → 21 */
  --pti-fs-body:clamp(1.0625rem,1.039rem + .095vw,1.125rem);   /* 17 → 18 */
  --pti-fs-ui:1rem;            /* 16 */
  --pti-fs-ui-sm:.9375rem;     /* 15 */
  --pti-fs-eyebrow:.8125rem;   /* 13 */
  --pti-fs-small:.875rem;      /* 14 — the minimum */
  --pti-lh-body:1.7;
  --pti-lh-tight:1.1;
  --pti-lh-heading:1.2;
  --pti-measure:34em;          /* 612 px at 18 px ≈ 70 characters of DM Sans; boxes, figures, tables use the full 720 px */
  --pti-text-scale:1;          /* text-size control multiplies this */

  /* Space — Part 3.4 */
  --pti-s1:4px; --pti-s2:8px; --pti-s3:12px; --pti-s4:16px; --pti-s5:24px;
  --pti-s6:32px; --pti-s7:48px; --pti-s8:64px; --pti-s9:96px;
  --pti-section:clamp(48px,30.17px + 4.571vw,96px);
  --pti-gutter:24px;
  --pti-container:1200px;
  --pti-container-read:1320px;
  --pti-read:720px;
  --pti-header-h:64px;

  /* Radius and shadow — Part 3.4 (two shadow levels only) */
  --pti-r-card:12px; --pti-r-ctl:8px; --pti-r-chip:999px;
  --pti-shadow-1:0 1px 2px rgba(1,42,107,.06),0 2px 8px rgba(1,42,107,.05);
  --pti-shadow-2:0 6px 14px rgba(1,42,107,.08),0 18px 36px rgba(1,42,107,.10);

  /* Motion — Part 8 (150–350 ms) */
  --pti-dur-fast:150ms; --pti-dur:200ms; --pti-dur-slow:350ms;
  --pti-ease:cubic-bezier(.2,.7,.2,1);

  /* Compatibility names used by the old stylesheets and theme scripts */
  --pti-font-body:var(--pti-font-ui);
  --pti-font-eyebrow:var(--pti-font-ui);

  /* Contextual (flip inside dark areas) */
  --pti-eyebrow:var(--pti-teal-text);
  --pti-focus:var(--pti-blue);
}
@media (max-width:599px){ :root{ --pti-gutter:16px; } }

/* Dark contexts re-point the contextual tokens */
.pti .ptipg__hero, .pti .ptipg__sec--navy, .pti .pti-dark, .pti .pti-footer,
.pti .ptihome__hero, .pti .ptihome__sec--navy{
  --pti-eyebrow:var(--pti-on-dark-muted);
  --pti-focus:var(--pti-focus-on-dark);
}


/* ------------------------------------------------------------------------------------------
   2. BASE
   ------------------------------------------------------------------------------------------ */
body.pti{ margin:0; }
.pti{ background:var(--pti-white); color:var(--pti-ink); font-family:var(--pti-font-ui);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
.pti *, .pti *::before, .pti *::after{ box-sizing:border-box; }
.pti img, .pti svg{ max-width:100%; }
.pti img{ height:auto; }
html:has(body.pti){ scroll-padding-top:calc(var(--pti-header-h) + 16px); }
@media (prefers-reduced-motion:no-preference){ html:has(body.pti){ scroll-behavior:smooth; } }

/* Focus — Part 9.2: visible on everything interactive, 2 px #2563EB with offset */
.pti a:focus-visible, .pti button:focus-visible, .pti summary:focus-visible,
.pti input:focus-visible, .pti select:focus-visible, .pti textarea:focus-visible,
.pti [tabindex]:focus-visible{
  outline:2px solid var(--pti-focus); outline-offset:2px; border-radius:4px; box-shadow:none;
}
.pti :focus:not(:focus-visible){ outline:none; }

.pti ::selection{ background:#CFE0FB; color:var(--pti-ink); }

.pti .screen-reader-text, .pti .pti-sr{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* Skip link */
.pti .pti-skip{ position:absolute; left:16px; top:-100px; z-index:1000; padding:12px 18px;
  background:var(--pti-navy); color:#fff; font:700 var(--pti-fs-ui)/1.2 var(--pti-font-ui);
  border-radius:var(--pti-r-ctl); text-decoration:none; }
.pti .pti-skip:focus{ top:12px; }
.pti .pti-main:focus{ outline:none; }

/* Icon helper (sprite: icons.svg) */
.pti .pti-icon{ width:1.25em; height:1.25em; flex:none; display:inline-block; vertical-align:-.22em;
  stroke:currentColor; fill:none; }


/* ------------------------------------------------------------------------------------------
   3. TYPOGRAPHY AND THE READING COLUMN  (.ptipg content)
   ------------------------------------------------------------------------------------------ */
.pti .ptipg, .pti .pti-page{
  font-family:var(--pti-font-ui); color:var(--pti-ink);
  font-size:calc(var(--pti-fs-body) * var(--pti-text-scale)); line-height:var(--pti-lh-body);
}
.pti .ptipg p{ margin:0 0 1.1em; }
.pti .ptipg ul, .pti .ptipg ol{ margin:0 0 1.2em; padding:0; list-style:none; }
.pti .ptipg strong, .pti .ptipg b{ font-weight:700; color:#0F1F38; }
.pti .ptipg em{ font-style:italic; }
.pti .ptipg small{ font-size:var(--pti-fs-small); }

.pti .ptipg h1, .pti .ptipg h2, .pti .ptipg h3, .pti .ptipg h4,
.pti .pti-page h1, .pti .pti-page h2, .pti .pti-page h3{
  color:var(--pti-navy); margin:0 0 .5em; text-transform:none; letter-spacing:0;
}
.pti .ptipg h1, .pti .pti-page h1{ font:700 var(--pti-fs-h1)/var(--pti-lh-tight) var(--pti-font-display); letter-spacing:-.01em; }
.pti .ptipg h2, .pti .pti-page h2{ font:700 var(--pti-fs-h2)/var(--pti-lh-heading) var(--pti-font-display); letter-spacing:-.005em; }
.pti .ptipg h3, .pti .pti-page h3{ font:700 var(--pti-fs-h3)/1.35 var(--pti-font-ui); color:var(--pti-ink); }
.pti .ptipg h4, .pti .pti-page h4{ font:700 1.0625rem/1.4 var(--pti-font-ui); color:var(--pti-ink); }

/* Links in running text — :where() keeps this at (0,2,1) so every component link rule wins */
.pti .ptipg a:where(:not([class]):not(:is(.pti-mega,.pti-libnav,.pti-toc,.pti-crumbs,.pti-card__links,.pti-sheet,.pti-footer) a)){ color:var(--pti-blue); text-decoration:underline; text-decoration-thickness:1px;
  text-underline-offset:3px; text-decoration-color:rgba(37,99,235,.45);
  transition:color var(--pti-dur-fast) var(--pti-ease),text-decoration-color var(--pti-dur-fast) var(--pti-ease); }
.pti .ptipg a:where(:not([class]):not(:is(.pti-mega,.pti-libnav,.pti-toc,.pti-crumbs,.pti-card__links,.pti-sheet,.pti-footer) a)):hover{ color:var(--pti-blue-strong); text-decoration-color:currentColor; text-decoration-thickness:2px; }

.pti a.pti-card, .pti a.pti-chip, .pti a.pti-btn, .pti a.pti-tool, .pti a.pti-pn__card{ text-decoration:none; }
.pti .ptipg h1, .pti .ptipg h2, .pti .ptipg__metric b, .pti .pti-pn__title, .pti .pti-footer__wordmark{ font-variant-numeric:lining-nums; }

/* Eyebrow / label */
.pti .ptipg__eyebrow, .pti .pti-eyebrow, .pti .ptihome__eyebrow{
  font:700 var(--pti-fs-eyebrow)/1.4 var(--pti-font-ui); letter-spacing:.12em; text-transform:uppercase;
  color:var(--pti-eyebrow); margin:0 0 var(--pti-s3);
}
/* Inline gold left in page content is retired (G5): re-point it to the contextual eyebrow colour */
.pti .ptipg [style*="E0BE63" i], .pti .ptipg [style*="C9A84C" i], .pti .ptipg [style*="EBCE86" i],
.pti .ptipg [style*="7A6320" i], .pti .ptihome [style*="E0BE63" i], .pti .ptihome [style*="C9A84C" i]{
  color:var(--pti-eyebrow)!important;
}

/* WordPress template titles (search results, 404) and the legacy .pti-prose wrapper */
.pti .page-header .entry-title{ font:700 var(--pti-fs-h1)/var(--pti-lh-tight) var(--pti-font-display); color:var(--pti-navy); margin:0 0 var(--pti-s4); }
.pti .pti-prose{ max-width:var(--pti-read); margin-inline:auto; font-size:var(--pti-fs-body); line-height:var(--pti-lh-body); color:var(--pti-ink); }
.pti .pti-prose > p, .pti .pti-prose > ul, .pti .pti-prose > ol{ max-width:var(--pti-measure); margin:0 0 1.1em; }
.pti .pti-prose a{ color:var(--pti-blue); text-underline-offset:3px; }

/* Containers */
.pti .ptipg__w, .pti .pti-wrap, .pti .ptihome__w{
  width:100%; max-width:calc(var(--pti-container) + 2 * var(--pti-gutter));
  margin-inline:auto; padding-inline:var(--pti-gutter);
}

/* Sections */
.pti .ptipg__sec{ padding-block:var(--pti-section); background:var(--pti-white); }
.pti .ptipg__sec--warm, .pti .ptipg__sec--cool{ background:var(--pti-bg); }
.pti .ptipg__sec--navy{ background:var(--pti-grad-dark); color:var(--pti-on-dark-soft); }
.pti .ptipg__sec--navy h2, .pti .ptipg__sec--navy h3{ color:var(--pti-on-dark); }
.pti .ptipg__sec--navy a:not([class]){ color:#fff; text-decoration-color:rgba(255,255,255,.55); }

/* The reading column: 720 px; running text held to ≈ 68–72 characters */
.pti .ptipg__prose{ max-width:var(--pti-read); margin-inline:auto; }
.pti .ptipg__prose--wide,
.pti .ptipg__prose:has(> .ptipg__subjgrid), .pti .ptipg__prose:has(> .ptipg__grid){ max-width:var(--pti-container); }
.pti .ptipg__prose > p, .pti .ptipg__prose > ul:not([class]), .pti .ptipg__prose > ol:not([class]),
.pti .ptipg__prose > h2, .pti .ptipg__prose > h3, .pti .ptipg__prose > h4{ max-width:var(--pti-measure); }

.pti .ptipg__prose > h2{ margin-top:2.6em; scroll-margin-top:calc(var(--pti-header-h) + 24px); }
.pti .ptipg__prose > h2::before{ content:""; display:block; width:32px; height:3px; border-radius:2px;
  background:var(--pti-teal); margin-bottom:var(--pti-s4); }            /* decorative accent */
.pti .ptipg__prose > h2:first-child, .pti .ptipg__prose > p + h2:first-of-type{ margin-top:1.4em; }
.pti .ptipg__prose > h3{ margin-top:1.8em; }

/* Lists in running text */
.pti .ptipg__prose > ul:not([class]) > li, .pti .ptipg__faq ul:not([class]) > li, .pti .ptipg__note ul > li, .pti .ptipg__evi ul > li,
.pti .pti-callout ul > li, .pti .ptipg__osce ul > li, .pti .ptipg__case ul > li{
  position:relative; padding-left:1.4em; margin:0 0 .55em;
}
.pti .ptipg__prose > ul:not([class]) > li::before, .pti .ptipg__faq ul:not([class]) > li::before, .pti .ptipg__note ul > li::before,
.pti .ptipg__evi ul > li::before, .pti .pti-callout ul > li::before,
.pti .ptipg__osce ul > li::before, .pti .ptipg__case ul > li::before{
  content:""; position:absolute; left:.25em; top:.68em; width:6px; height:6px; border-radius:50%;
  background:var(--pti-navy);
}
.pti .ptipg__prose > ol:not([class]){ counter-reset:pti-ol; }
.pti .ptipg__prose > ol:not([class]) > li{ counter-increment:pti-ol; position:relative; padding-left:2em; margin:0 0 .55em; }
.pti .ptipg__prose > ol:not([class]) > li::before{ content:counter(pti-ol) "."; position:absolute; left:0;
  font-weight:700; color:var(--pti-navy); }

.pti .ptipg__prose blockquote{ margin:1.6em 0; padding:var(--pti-s4) var(--pti-s5);
  border-left:3px solid var(--pti-teal); background:var(--pti-bg); border-radius:0 var(--pti-r-ctl) var(--pti-r-ctl) 0;
  font-family:var(--pti-font-display); font-size:1.15em; line-height:1.55; color:var(--pti-navy); }

.pti .ptipg hr{ border:0; border-top:1px solid var(--pti-line); margin:var(--pti-s7) 0; }


/* ------------------------------------------------------------------------------------------
   4. READING LAYOUT — Part 6.1 (three columns on desktop, one on phones)
      Works with today's script output (nav.pti-toc inserted beside .ptipg__prose and the
      class .pti-has-toc on its .ptipg__w) and with the Phase D server markup:
      <aside class="pti-libnav"> · .ptipg__prose · <aside class="pti-rail"> (contents + tools)
   ------------------------------------------------------------------------------------------ */
.pti .pti-libnav, .pti .pti-rail{ display:none; }

@media (min-width:1024px){
  .pti .ptipg__w.pti-has-toc{
    display:grid; grid-template-columns:minmax(0,var(--pti-read)) 220px; column-gap:40px;
    justify-content:start; align-items:start; max-width:calc(1000px + 2 * var(--pti-gutter));
  }
  .pti .ptipg__w.pti-has-toc > *{ grid-column:1; }
  .pti .ptipg__w.pti-has-toc > .ptipg__prose{ margin:0; max-width:none; }
  .pti .ptipg__w.pti-has-toc > .pti-toc,
  .pti .ptipg__w.pti-has-toc > .pti-rail{ display:block; grid-column:2; grid-row:1 / span 20;
    position:sticky; top:calc(var(--pti-header-h) + 24px); max-height:calc(100vh - var(--pti-header-h) - 48px); overflow:auto; }
  .pti .ptipg__w.pti-has-toc > .pti-libnav{ display:block; grid-column:1; order:10; margin-top:var(--pti-s7); }
  /* hero text lines up with the reading column */
  .pti .ptipg:has(.pti-has-toc) .ptipg__hero .ptipg__w,
  .pti .ptipg:has(.ptipg__byline) .ptipg__hero .ptipg__w{ max-width:calc(1000px + 2 * var(--pti-gutter)); }
}
@media (min-width:1280px){
  .pti .ptipg__w.pti-has-toc{
    grid-template-columns:240px minmax(0,var(--pti-read)) 240px; column-gap:48px;
    justify-content:center; max-width:calc(var(--pti-container-read) + 2 * var(--pti-gutter));
  }
  .pti .ptipg__w.pti-has-toc > *{ grid-column:2; }
  .pti .ptipg__w.pti-has-toc > .pti-toc, .pti .ptipg__w.pti-has-toc > .pti-rail{ grid-column:3; }
  .pti .ptipg__w.pti-has-toc > .pti-libnav{ grid-column:1; grid-row:1 / span 20; order:0; margin-top:0;
    position:sticky; top:calc(var(--pti-header-h) + 24px); max-height:calc(100vh - var(--pti-header-h) - 48px); overflow:auto; }
  /* prose is centred between equal side columns, so the hero simply centres a 720 px column */
  .pti .ptipg:has(.pti-has-toc) .ptipg__hero .ptipg__w,
  .pti .ptipg:has(.ptipg__byline) .ptipg__hero .ptipg__w{ max-width:calc(var(--pti-read) + 2 * var(--pti-gutter)); }
}
@media (max-width:1023px){
  .pti .ptipg__w.pti-has-toc{ display:flex; flex-direction:column; }
  .pti .ptipg__w.pti-has-toc > .pti-toc{ display:none; }          /* phones use the Contents sheet */
  .pti .ptipg__w.pti-has-toc > .ptipg__prose{ width:100%; }
  .pti .ptipg__w.pti-has-toc > .pti-rail{ display:block; order:5; width:100%; max-width:var(--pti-read); margin:var(--pti-s6) auto 0; }
  .pti .ptipg__w.pti-has-toc > .pti-rail .pti-toc{ display:none; }
  .pti .ptipg__w.pti-has-toc > .pti-libnav{ display:block; order:10; width:100%; max-width:var(--pti-read); margin:var(--pti-s6) auto 0; }
}
/* General hero column for every other page */
.pti .ptipg__hero .ptipg__w, .pti .ptipg__hero__inner{ max-width:calc(var(--pti-read) + 2 * var(--pti-gutter)); }

/* Left column: the section of the library you are in */
.pti .pti-libnav{ font-size:var(--pti-fs-ui-sm); }
.pti .pti-libnav details{ border:0; }
.pti .pti-libnav summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  min-height:44px; font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui); letter-spacing:.12em; text-transform:uppercase;
  color:var(--pti-teal-text); border-radius:var(--pti-r-ctl); }
.pti .pti-libnav summary::-webkit-details-marker{ display:none; }
.pti .pti-libnav summary .pti-icon{ transition:transform var(--pti-dur) var(--pti-ease); }
.pti .pti-libnav details[open] summary .pti-icon{ transform:rotate(180deg); }
.pti .pti-libnav ul{ list-style:none; margin:var(--pti-s2) 0 0; padding:0; border-left:1px solid var(--pti-line); }
.pti .pti-libnav a{ display:flex; align-items:center; min-height:40px; padding:8px 12px 8px 16px; margin-left:-1px;
  border-left:2px solid transparent; color:var(--pti-muted-strong); text-decoration:none; line-height:1.35;
  transition:color var(--pti-dur-fast) var(--pti-ease),border-color var(--pti-dur-fast) var(--pti-ease),background-color var(--pti-dur-fast) var(--pti-ease); }
.pti .pti-libnav a:hover{ color:var(--pti-navy); background:var(--pti-bg); }
.pti .pti-libnav a[aria-current="page"]{ color:var(--pti-navy); font-weight:700; border-left-color:var(--pti-navy); background:var(--pti-tint-blue); }
.pti .pti-libnav__all{ display:inline-flex; margin-top:var(--pti-s3); }
@media (max-width:1023px){
  .pti .pti-libnav{ border:1px solid var(--pti-line); border-radius:var(--pti-r-card); padding:var(--pti-s2) var(--pti-s4); background:var(--pti-white); }
  .pti .pti-libnav ul{ columns:2; column-gap:var(--pti-s5); border-left:0; }
  .pti .pti-libnav li{ break-inside:avoid; }
  .pti .pti-libnav a{ min-height:44px; padding-left:0; border-left:0; }
  .pti .pti-libnav a[aria-current="page"]{ background:none; text-decoration:underline; }
}
@media (max-width:599px){ .pti .pti-libnav ul{ columns:1; } }

/* Right column: contents + tools */
.pti .pti-rail > * + *{ margin-top:var(--pti-s6); }

/* "On this page" — the theme's .pti-toc (script today, server in Phase D) */
.pti .pti-toc{ font-size:var(--pti-fs-ui-sm); }
.pti .pti-toc__title, .pti .pti-tools__title, .pti .pti-libnav__title{
  font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui); letter-spacing:.12em; text-transform:uppercase;
  color:var(--pti-teal-text); margin:0 0 var(--pti-s3);
}
.pti .pti-toc__where{ margin:0 0 var(--pti-s4); padding-bottom:var(--pti-s4); border-bottom:1px solid var(--pti-line); font-size:var(--pti-fs-small); }
.pti .pti-toc__where a{ display:block; font-weight:700; color:var(--pti-navy); text-decoration:none; }
.pti .pti-toc__where span{ color:var(--pti-muted); }
.pti .pti-toc__list{ list-style:none; margin:0; padding:0; border-left:1px solid var(--pti-line); }
.pti .pti-toc__list li{ margin:0; padding:0; }
.pti .pti-toc__list li::before{ content:none; }
.pti .ptipg .pti-toc__list a, .pti .pti-toc__list a{
  display:flex; align-items:center; min-height:44px; padding:6px 0 6px 16px; margin-left:-1px;
  border-left:2px solid transparent; color:var(--pti-muted-strong); text-decoration:none; line-height:1.35;
  transition:color var(--pti-dur-fast) var(--pti-ease),border-color var(--pti-dur) var(--pti-ease);
}
.pti .ptipg .pti-toc__list a:hover, .pti .pti-toc__list a:hover{ color:var(--pti-navy); }
.pti .ptipg .pti-toc__list a[aria-current="true"], .pti .pti-toc__list a[aria-current="true"]{
  color:var(--pti-navy); font-weight:700; border-left-color:var(--pti-teal);   /* weight change, not colour alone */
}

/* Tools: text size · print · cite (Phase D) */
.pti .pti-tools{ font-size:var(--pti-fs-ui-sm); }
.pti .pti-tools__row{ display:flex; flex-wrap:wrap; gap:var(--pti-s2); }
.pti .pti-tool{ display:inline-flex; align-items:center; gap:8px; min-height:44px; min-width:44px; padding:8px 12px;
  border:1px solid var(--pti-line); border-radius:var(--pti-r-ctl); background:var(--pti-white);
  font:500 var(--pti-fs-ui-sm)/1.2 var(--pti-font-ui); color:var(--pti-navy); cursor:pointer; text-decoration:none;
  transition:border-color var(--pti-dur-fast) var(--pti-ease),background-color var(--pti-dur-fast) var(--pti-ease); }
.pti .pti-tool:hover{ border-color:var(--pti-blue); background:var(--pti-tint-blue); }
.pti .pti-tool[aria-pressed="true"]{ background:var(--pti-navy); border-color:var(--pti-navy); color:#fff; }
.pti .pti-tool .pti-icon{ width:20px; height:20px; }
.pti .pti-textsize{ display:inline-flex; border:1px solid var(--pti-line); border-radius:var(--pti-r-ctl); overflow:hidden; }
.pti .pti-textsize .pti-tool{ border:0; border-radius:0; }
.pti .pti-textsize .pti-tool + .pti-tool{ border-left:1px solid var(--pti-line); }
.pti .pti-textsize .pti-tool{ flex:1 1 0; justify-content:center; }
.pti .pti-textsize .pti-tool[data-size="sm"]{ font-size:.875rem; }
.pti .pti-textsize .pti-tool[data-size="md"]{ font-size:1.0625rem; }
.pti .pti-textsize .pti-tool[data-size="lg"]{ font-size:1.3125rem; }
@media (min-width:1024px){ .pti .pti-rail .pti-tools__row{ flex-direction:column; align-items:stretch; }
  .pti .pti-rail .pti-tools__row > .pti-tool{ justify-content:flex-start; } }
html[data-pti-text="lg"]{ --pti-text-scale:1.12; }
html[data-pti-text="xl"]{ --pti-text-scale:1.24; }

/* Cite box */
.pti .pti-cite{ margin-top:var(--pti-s3); padding:var(--pti-s4); background:var(--pti-bg); border:1px solid var(--pti-line);
  border-radius:var(--pti-r-ctl); font-size:var(--pti-fs-small); line-height:1.55; color:var(--pti-ink); }
.pti .pti-cite[hidden]{ display:none; }


/* ------------------------------------------------------------------------------------------
   5. HEADER, MEGA-MENU, DRAWER — restyles the theme markup (.pti-header …)
   ------------------------------------------------------------------------------------------ */
.pti .pti-header{ position:sticky; top:0; z-index:200; background:var(--pti-white);
  border-bottom:1px solid var(--pti-line); transition:transform var(--pti-dur-slow) var(--pti-ease),box-shadow var(--pti-dur) var(--pti-ease); }
.pti .pti-header.is-scrolled{ box-shadow:var(--pti-shadow-1); }
.pti .pti-header.is-hidden{ transform:translateY(-100%); }      /* hide on scroll down, return on scroll up */
.pti .pti-header:focus-within{ transform:none; }                 /* never hide what has focus */
.pti .pti-strip{ display:none; }                                 /* kept hidden, as today */
.pti .pti-masthead{ position:relative; }
.pti .pti-masthead__inner{ display:flex; align-items:center; gap:var(--pti-s5); min-height:var(--pti-header-h);
  max-width:calc(var(--pti-container-read) + 2 * var(--pti-gutter)); }
.pti .pti-brand{ flex:none; display:flex; align-items:center; }
.pti .pti-brand a{ display:flex; align-items:center; min-height:44px; border-radius:6px; }
.pti .pti-brand img{ display:block; height:44px; width:auto; }

.pti .pti-nav{ margin-left:auto; }
.pti .pti-nav__list, .pti .pti-mega--bar{ display:flex; align-items:stretch; gap:2px; list-style:none; margin:0; padding:0; }
.pti .pti-mega__item{ position:relative; display:flex; align-items:center; }
.pti .pti-mega__item.is-wide{ position:static; }
.pti .pti-mega__top{ display:flex; align-items:center; min-height:44px; padding:0 6px 0 12px;
  font:500 var(--pti-fs-ui)/1 var(--pti-font-ui); color:var(--pti-ink); text-decoration:none; border-radius:var(--pti-r-ctl);
  transition:color var(--pti-dur-fast) var(--pti-ease); white-space:nowrap; }
.pti .pti-mega__item:not(.has-panel) > .pti-mega__top{ padding-right:12px; }
span.pti-mega__top{ cursor:default; }
.pti a.pti-mega__top:hover, .pti .pti-mega__item.is-open > .pti-mega__top{ color:var(--pti-navy); }
.pti .pti-mega__item.is-current > .pti-mega__top, .pti .pti-mega__top[aria-current]{ color:var(--pti-navy); font-weight:700;
  box-shadow:inset 0 -2px 0 var(--pti-navy); border-radius:0; }
.pti .pti-mega__toggle{ display:inline-grid; place-items:center; width:32px; min-height:44px; padding:0; margin:0;
  border:0; background:transparent; color:var(--pti-muted-strong); border-radius:var(--pti-r-ctl); cursor:pointer; }
.pti .pti-mega__toggle::after{ content:""; position:absolute; inset:0 -6px; }      /* 44 px hit area */
.pti .pti-mega__toggle{ position:relative; }
.pti .pti-mega__toggle:hover{ color:var(--pti-navy); background:var(--pti-bg); }
.pti .pti-mega__toggle svg{ width:14px; height:14px; transition:transform var(--pti-dur) var(--pti-ease); }
.pti .pti-mega__item.is-open > .pti-mega__toggle svg{ transform:rotate(180deg); }

.pti .pti-mega__panel{ display:none; position:absolute; z-index:210; top:100%; left:0; min-width:300px;
  background:var(--pti-white); border:1px solid var(--pti-line); border-radius:0 0 var(--pti-r-card) var(--pti-r-card);
  box-shadow:var(--pti-shadow-2); font-family:var(--pti-font-ui); }
.pti .pti-mega__item.is-wide > .pti-mega__panel{ left:0; right:0; min-width:0; border-radius:0; border-inline:0;
  max-height:calc(100vh - var(--pti-header-h) - 24px); overflow-y:auto; }
.pti .pti-nav .pti-mega > .pti-mega__item:last-child > .pti-mega__panel{ left:auto; right:0; }
.pti .pti-mega__item.is-open > .pti-mega__panel{ display:block; }
@media (hover:hover) and (min-width:1024px){
  .pti .pti-mega__item:hover > .pti-mega__panel, .pti .pti-mega__item:focus-within > .pti-mega__panel{ display:block; }
  .pti .pti-mega.is-dismissed .pti-mega__item:not(.is-open) > .pti-mega__panel{ display:none; }
}
.pti .pti-mega__inner{ padding:var(--pti-s6) var(--pti-gutter) var(--pti-s5); }
.pti .pti-mega__item:not(.is-wide) .pti-mega__inner{ padding:var(--pti-s5); }
.pti .pti-mega__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:var(--pti-s5) var(--pti-s6); }
.pti .pti-mega__head{ font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui); letter-spacing:.12em; text-transform:uppercase;
  color:var(--pti-teal-text); margin:0 0 var(--pti-s3); padding-bottom:var(--pti-s2); border-bottom:1px solid var(--pti-line); }
.pti .pti-mega__links{ list-style:none; margin:0; padding:0; }
.pti .pti-mega__links li{ margin:0; }
.pti .pti-mega__links a{ display:flex; flex-direction:column; justify-content:center; min-height:34px; padding:4px 0;
  font:400 var(--pti-fs-ui-sm)/1.35 var(--pti-font-ui); color:var(--pti-ink); text-decoration:none; }
.pti .pti-mega__links a:hover{ color:var(--pti-blue-strong); text-decoration:underline; text-underline-offset:3px; }
.pti .pti-mega__links a .pti-mega__desc, .pti .pti-mega__desc{ display:block; margin-top:2px; font-size:var(--pti-fs-small);
  color:var(--pti-muted); font-weight:400; }    /* one-line description under each item (Part 3.5) */
@media (pointer:coarse){ .pti .pti-mega__links a{ min-height:44px; } }
.pti .pti-mega__foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--pti-s3);
  margin-top:var(--pti-s5); padding-top:var(--pti-s4); border-top:1px solid var(--pti-line);
  font-size:var(--pti-fs-small); color:var(--pti-muted); }
.pti .pti-mega__foot a{ display:inline-flex; align-items:center; min-height:44px; font-weight:700; color:var(--pti-blue-strong); text-decoration:none; }
.pti .pti-mega__foot a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* Text brand (used when no custom logo is set) */
.pti .pti-brand__mark{ display:grid; place-items:center; width:40px; height:40px; border-radius:var(--pti-r-ctl); background:var(--pti-navy); color:#fff; font:700 1.125rem/1 var(--pti-font-display); }
.pti .pti-brand__text{ display:flex; flex-direction:column; margin-left:10px; line-height:1.1; }
.pti .pti-brand__name{ font:700 1.25rem/1.1 var(--pti-font-display); color:var(--pti-navy); }
.pti .pti-brand__name em{ font-style:normal; color:var(--pti-teal-text); }
.pti .pti-brand__tag{ font:500 .75rem/1.3 var(--pti-font-ui); letter-spacing:.06em; color:var(--pti-muted); }
.pti .pti-brand--image a{ display:flex; }
/* WordPress fallback menu markup (only if the mega-menu function is not used) */
.pti .pti-nav__list > li.menu-item{ position:relative; display:flex; align-items:center; }
.pti .pti-nav__list > li.menu-item > a{ display:flex; align-items:center; min-height:44px; padding:0 12px; font:500 var(--pti-fs-ui)/1 var(--pti-font-ui); color:var(--pti-ink); text-decoration:none; }
.pti .pti-nav__list > li.current-menu-item > a, .pti .pti-nav__list > li.current_page_item > a{ color:var(--pti-navy); font-weight:700; box-shadow:inset 0 -2px 0 var(--pti-navy); }
.pti .pti-nav__list .sub-menu{ display:none; position:absolute; top:100%; left:0; z-index:210; min-width:240px; margin:0; padding:var(--pti-s2) 0; list-style:none;
  background:#fff; border:1px solid var(--pti-line); border-radius:0 0 var(--pti-r-card) var(--pti-r-card); box-shadow:var(--pti-shadow-2); }
.pti .pti-nav__list > li:hover > .sub-menu, .pti .pti-nav__list > li:focus-within > .sub-menu{ display:block; }
.pti .pti-nav__list .sub-menu a{ display:flex; align-items:center; min-height:44px; padding:0 var(--pti-s4); color:var(--pti-ink); text-decoration:none; }
.pti .pti-nav__list .sub-menu a:hover{ background:var(--pti-bg); color:var(--pti-blue-strong); }
/* Mega-menu groups: one quiet colour marker per group (decorative — the group name is the signal) */
.pti .pti-mega__group{ min-width:0; }
.pti .pti-mega__group .pti-mega__head{ position:relative; padding-left:14px; }
.pti .pti-mega__group .pti-mega__head::before{ content:""; position:absolute; left:0; top:.2em; width:4px; height:1em; border-radius:2px; background:var(--pti-group,var(--pti-teal)); }
.pti .pti-mega__group--foundation{ --pti-group:var(--pti-teal); }
.pti .pti-mega__group--physio{ --pti-group:var(--pti-blue); }
.pti .pti-mega__group--clinical{ --pti-group:var(--pti-navy); }
.pti .pti-mega__group--practice{ --pti-group:#64748B; }
.pti .pti-strip__inner, .pti .pti-strip__note, .pti .pti-strip__link{ display:none; }   /* strip stays hidden, as today */

/* Burger and drawer (below 1024 px) */
.pti .pti-burger{ display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:44px; height:44px; padding:0; border:1px solid var(--pti-line); border-radius:var(--pti-r-ctl);
  background:var(--pti-white); cursor:pointer; }
.pti .pti-burger__bar{ display:block; width:20px; height:2px; border-radius:2px; background:var(--pti-navy);
  transition:transform var(--pti-dur) var(--pti-ease),opacity var(--pti-dur-fast) var(--pti-ease); }
.pti .pti-burger[aria-expanded="true"] .pti-burger__bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.pti .pti-burger[aria-expanded="true"] .pti-burger__bar:nth-child(2){ opacity:0; }
.pti .pti-burger[aria-expanded="true"] .pti-burger__bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:1023px){
  .pti .pti-nav{ display:none; }
  .pti .pti-burger{ display:flex; margin-left:var(--pti-s2); }
  .pti .pti-masthead__inner{ gap:var(--pti-s3); }
  .pti .pti-search{ margin-left:auto; }
}
@media (min-width:1024px){ .pti .pti-drawer{ display:none!important; } }
.pti .pti-drawer{ border-top:1px solid var(--pti-line); background:var(--pti-white);
  max-height:calc(100vh - var(--pti-header-h)); overflow-y:auto; padding-block:var(--pti-s3) var(--pti-s6); }
.pti .pti-drawer[hidden]{ display:none; }
.pti .pti-drawer__nav{ padding:0; }
.pti .pti-drawer__list, .pti .pti-drawer .pti-mega--drawer{ display:block; list-style:none; margin:0; padding:0; }
.pti .pti-drawer .pti-mega--drawer > li::before{ content:none; }
.pti .pti-drawer__list > li{ border-bottom:1px solid var(--pti-line); }
.pti .pti-drawer summary, .pti .pti-acc summary, .pti .pti-drawer__list > li > a{ display:flex; align-items:center; justify-content:space-between;
  min-height:52px; font:700 1.0625rem/1.2 var(--pti-font-ui); color:var(--pti-navy); text-decoration:none; cursor:pointer; list-style:none; }
.pti .pti-drawer summary::-webkit-details-marker, .pti .pti-acc summary::-webkit-details-marker{ display:none; }
.pti .pti-drawer summary::after{ content:""; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-2px,-2px); transition:transform var(--pti-dur) var(--pti-ease); }
.pti .pti-drawer details[open] > summary::after{ transform:rotate(-135deg); }
.pti .pti-acc__body{ padding:0 0 var(--pti-s4); }
.pti .pti-drawer .pti-mega__head{ margin-top:var(--pti-s4); }
.pti .pti-drawer .pti-mega__links a{ min-height:44px; }
.pti .pti-acc__all, .pti .pti-drawer__policy{ display:inline-flex; align-items:center; min-height:44px; font-weight:700; color:var(--pti-blue-strong); }

/* Reading progress (theme script appends .pti-progress to the header) */
.pti .pti-progress{ position:absolute; left:0; right:0; bottom:-1px; height:3px; background:transparent; pointer-events:none; }
.pti .pti-progress span{ display:block; height:100%; width:0; background:var(--pti-teal); transition:width 80ms linear; }


/* ------------------------------------------------------------------------------------------
   6. SEARCH — header toggle + large hero version (Part 5.2)
   ------------------------------------------------------------------------------------------ */
.pti .pti-search{ display:flex; align-items:center; }
.pti .pti-search__toggle{ display:inline-flex; align-items:center; gap:8px; min-height:44px; min-width:44px; padding:0 14px;
  border:1px solid var(--pti-line); border-radius:var(--pti-r-ctl); background:var(--pti-bg);
  font:500 var(--pti-fs-ui-sm)/1 var(--pti-font-ui); color:var(--pti-muted-strong); cursor:pointer;
  transition:border-color var(--pti-dur-fast) var(--pti-ease),background-color var(--pti-dur-fast) var(--pti-ease),color var(--pti-dur-fast) var(--pti-ease); }
.pti .pti-search__toggle:hover, .pti .pti-search__toggle[aria-expanded="true"]{ border-color:var(--pti-blue); color:var(--pti-navy); background:var(--pti-white); }
.pti .pti-search__toggle .pti-icon{ width:20px; height:20px; }
@media (max-width:599px){ .pti .pti-search__label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); } .pti .pti-search__toggle{ padding:0; justify-content:center; } }
.pti .pti-search__panel{ position:absolute; left:0; right:0; top:100%; z-index:220; background:var(--pti-white);
  border-top:1px solid var(--pti-line); border-bottom:1px solid var(--pti-line); box-shadow:var(--pti-shadow-2);
  padding:var(--pti-s5) var(--pti-gutter); }
.pti .pti-search__panel[hidden]{ display:none; }
.pti .pti-search__form{ display:flex; gap:var(--pti-s2); max-width:var(--pti-read); margin-inline:auto; }
.pti .pti-search__field{ flex:1; min-width:0; min-height:48px; padding:12px 16px 12px 44px;
  border:1.5px solid var(--pti-control-border); border-radius:var(--pti-r-ctl); background:var(--pti-white)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.4' cy='10.4' r='6.6'/%3E%3Cpath d='M15.2 15.2 21 21'/%3E%3C/svg%3E") no-repeat 14px 50% / 20px;
  font:400 var(--pti-fs-ui)/1.3 var(--pti-font-ui); color:var(--pti-ink);
  transition:border-color var(--pti-dur) var(--pti-ease),box-shadow var(--pti-dur) var(--pti-ease); }
.pti .pti-search__field::placeholder{ color:var(--pti-muted); opacity:1; }
.pti .pti-search__field:focus{ outline:none; border-color:var(--pti-blue); box-shadow:0 0 0 3px rgba(37,99,235,.18); }
.pti .pti-search__field:focus-visible{ outline:2px solid var(--pti-blue); outline-offset:2px; }
/* Hero version */
.pti .pti-search--hero{ display:block; margin-top:var(--pti-s6); }
.pti .pti-search--hero .pti-search__form{ max-width:640px; margin:0; background:var(--pti-white); padding:6px;
  border-radius:calc(var(--pti-r-ctl) + 4px); box-shadow:0 10px 30px rgba(1,24,64,.25); transition:max-width var(--pti-dur) var(--pti-ease); }
.pti .pti-search--hero .pti-search__field{ min-height:52px; border-color:transparent; font-size:1.0625rem; }
.pti .pti-search--hero .pti-search__field:focus{ border-color:var(--pti-blue); }
.pti .pti-search--hero .pti-search__form:focus-within{ max-width:680px; }   /* field widens, 200 ms */
.pti .pti-search__popular{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--pti-s2); margin-top:var(--pti-s4);
  font-size:var(--pti-fs-small); color:var(--pti-on-dark-muted); }
@media (max-width:599px){ .pti .pti-search__form{ flex-direction:column; } .pti .pti-search--hero .pti-search__form{ padding:8px; } }


/* ------------------------------------------------------------------------------------------
   7. BREADCRUMBS — .pti-crumbs (script today; server-rendered in Phase D, same markup)
   ------------------------------------------------------------------------------------------ */
.pti .pti-crumbs{ margin:0 0 var(--pti-s5); font:500 var(--pti-fs-small)/1.4 var(--pti-font-ui); }
.pti .pti-crumbs__list{ display:flex; flex-wrap:wrap; align-items:center; list-style:none; margin:0; padding:0; }
.pti .pti-crumbs__list li{ display:inline-flex; align-items:center; margin:0; padding:0; }
.pti .pti-crumbs__list li + li::before{ content:""; width:6px; height:6px; margin:0 10px 0 6px;
  border-right:1.5px solid currentColor; border-top:1.5px solid currentColor; transform:rotate(45deg); opacity:.7; }
.pti .pti-crumbs__list li::before{ background:none; position:static; }
.pti .ptipg .pti-crumbs a, .pti .pti-crumbs a{ display:inline-flex; align-items:center; min-height:44px; color:var(--pti-muted-strong);
  text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px; }
.pti .ptipg .pti-crumbs a:hover, .pti .pti-crumbs a:hover{ color:var(--pti-navy); text-decoration-color:currentColor; }
.pti .pti-crumbs [aria-current="page"]{ color:var(--pti-ink); font-weight:700; }
/* on dark */
.pti .ptipg__hero .pti-crumbs, .pti .pti-dark .pti-crumbs{ color:var(--pti-on-dark-muted); }
.pti .ptipg .ptipg__hero .pti-crumbs a, .pti .pti-dark .pti-crumbs a{ color:var(--pti-on-dark-muted); }
.pti .ptipg .ptipg__hero .pti-crumbs a:hover{ color:#fff; }
.pti .ptipg__hero .pti-crumbs [aria-current="page"], .pti .pti-dark .pti-crumbs [aria-current="page"]{ color:#fff; }
@media (max-width:599px){ .pti .pti-crumbs__list li:not(:nth-last-child(-n+2)){ display:none; }      /* phones: parent › page */
  .pti .pti-crumbs__list li:nth-last-child(2)::before{ content:none; } }


/* ------------------------------------------------------------------------------------------
   8. BUTTONS — primary (blue), secondary (outline), text link with arrow
      .ptipg__btn--gold / --navy → primary; .ptipg__btn--ghost → secondary; .ptipg__more → text
   ------------------------------------------------------------------------------------------ */
.pti .pti-btn, .pti .ptipg .ptipg__btn, .pti .ptihome .ptihome__btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 22px;
  border:1.5px solid transparent; border-radius:var(--pti-r-ctl);
  font:700 var(--pti-fs-ui)/1.2 var(--pti-font-ui); letter-spacing:0; text-decoration:none; text-align:center; cursor:pointer;
  transition:background-color var(--pti-dur) var(--pti-ease),border-color var(--pti-dur) var(--pti-ease),color var(--pti-dur) var(--pti-ease),box-shadow var(--pti-dur) var(--pti-ease);
}
.pti .pti-btn svg, .pti .ptipg .ptipg__btn svg, .pti .ptihome .ptihome__btn svg{ width:18px; height:18px; flex:none;
  transition:transform var(--pti-dur) var(--pti-ease); }
/* primary */
.pti .pti-btn--primary, .pti .ptipg .ptipg__btn, .pti .ptipg .ptipg__btn--gold, .pti .ptipg .ptipg__btn--navy,
.pti .ptihome .ptihome__btn--gold{
  background:var(--pti-blue)!important; color:#fff!important; border-color:var(--pti-blue)!important; box-shadow:none!important;
}
.pti .pti-btn--primary:hover, .pti .ptipg .ptipg__btn:hover, .pti .ptipg .ptipg__btn--gold:hover,
.pti .ptipg .ptipg__btn--navy:hover, .pti .ptihome .ptihome__btn--gold:hover{
  background:var(--pti-blue-strong)!important; border-color:var(--pti-blue-strong)!important; transform:none;
}
/* secondary */
.pti .pti-btn--secondary, .pti .ptipg .ptipg__btn--ghost, .pti .ptihome .ptihome__btn--ghost{
  background:transparent!important; color:var(--pti-blue-strong)!important; border-color:currentColor!important;
}
.pti .pti-btn--secondary:hover, .pti .ptipg .ptipg__btn--ghost:hover, .pti .ptihome .ptihome__btn--ghost:hover{
  background:var(--pti-tint-blue)!important;
}
/* on dark */
.pti .pti-dark .pti-btn--primary, .pti .ptipg__hero .ptipg__btn, .pti .ptipg__sec--navy .ptipg__btn:not(.ptipg__btn--ghost),
.pti .ptihome__hero .ptihome__btn--gold, .pti .ptihome__sec--navy .ptihome__btn--gold{
  background:#fff!important; color:var(--pti-navy)!important; border-color:#fff!important;
}
.pti .pti-dark .pti-btn--primary:hover, .pti .ptipg__hero .ptipg__btn:hover, .pti .ptihome__hero .ptihome__btn--gold:hover{
  background:var(--pti-tint-blue)!important; border-color:var(--pti-tint-blue)!important; }
.pti .pti-dark .pti-btn--secondary, .pti .ptipg__hero .ptipg__btn--ghost, .pti .ptipg__sec--navy .ptipg__btn--ghost,
.pti .ptihome__hero .ptihome__btn--ghost, .pti .ptihome__sec--navy .ptihome__btn--ghost{
  background:transparent!important; color:#fff!important; border-color:rgba(255,255,255,.7)!important; }
.pti .pti-dark .pti-btn--secondary:hover, .pti .ptipg__hero .ptipg__btn--ghost:hover{ background:rgba(255,255,255,.1)!important; }
/* text link with arrow */
.pti .pti-btn--text, .pti .ptipg .ptipg__more, .pti .ptihome .ptihome__more{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0; background:none; border:0;
  font:700 var(--pti-fs-ui)/1.2 var(--pti-font-ui); color:var(--pti-blue-strong); text-decoration:none;
}
.pti .pti-btn--text:hover, .pti .ptipg .ptipg__more:hover{ text-decoration:underline; text-underline-offset:4px; }
.pti .pti-btn--text svg, .pti .ptipg .ptipg__more svg{ width:18px; height:18px; transition:transform var(--pti-dur) var(--pti-ease); }
.pti .pti-btn:hover svg, .pti .pti-btn--text:hover svg, .pti .ptipg .ptipg__btn:hover svg,
.pti a.ptipg__card:hover .ptipg__more svg, .pti .pti-card:hover .pti-btn--text svg{ transform:translateX(4px); }
.pti .ptipg .ptipg__btns, .pti .pti-btns{ display:flex; flex-wrap:wrap; gap:var(--pti-s3); margin-top:var(--pti-s2); }


/* ------------------------------------------------------------------------------------------
   9. HERO — .ptipg__hero (all inner pages)
      The hero photograph set inline on some guides is replaced by the navy → blue → teal
      gradient (no stock photography in heroes, Part 3.6; also removes the LCP image).
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__hero{
  position:relative; overflow:hidden; isolation:isolate; color:var(--pti-on-dark-soft);
  background:var(--pti-grad-hero)!important; background-image:var(--pti-grad-hero)!important;
  padding-block:clamp(40px,24px + 4vw,80px) clamp(40px,28px + 3vw,64px);
}
.pti .ptipg .ptipg__hero::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  /* faint survey grid, fades out to the right: structure, not decoration blobs */
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:linear-gradient(100deg,#000 0%,transparent 60%); mask-image:linear-gradient(100deg,#000 0%,transparent 60%); }
.pti .ptipg .ptipg__hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:var(--pti-teal); }
.pti .ptipg .ptipg__hero h1{ color:var(--pti-on-dark); margin:0 0 var(--pti-s4); max-width:20ch; }
.pti .ptipg .ptipg__hero .ptipg__eyebrow{ color:var(--pti-on-dark-muted); }
.pti .ptipg .ptipg__lede, .pti .ptipg .ptipg__hero p{ color:var(--pti-on-dark-soft); }
.pti .ptipg .ptipg__lede{ font-size:clamp(1.0625rem,1rem + .3vw,1.25rem); line-height:1.6; max-width:var(--pti-measure); margin:0 0 var(--pti-s5); }
.pti .ptipg .ptipg__hero a:not([class]):not(.pti-crumbs a){ color:#fff; text-decoration-color:rgba(255,255,255,.6); }
.pti .ptipg .ptipg__hero .ptipg__w + .ptipg__w{ margin-top:var(--pti-s5); }

/* Evidence line in the hero */
.pti .ptipg .ptipg__std{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; margin-top:var(--pti-s5);
  padding-top:var(--pti-s4); border-top:1px solid rgba(255,255,255,.18); font-size:var(--pti-fs-small); line-height:1.5; }
.pti .ptipg .ptipg__std span{ font-weight:700; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--pti-on-dark-muted); margin-right:4px; }
.pti .ptipg .ptipg__std b{ font-weight:500; color:#fff; }
.pti .ptipg .ptipg__std i{ font-style:normal; color:var(--pti-on-dark-muted); }
/* …and outside a hero (light) */
.pti .ptipg .ptipg__sec .ptipg__std{ border-top-color:var(--pti-line); }
.pti .ptipg .ptipg__sec .ptipg__std span{ color:var(--pti-teal-text); }
.pti .ptipg .ptipg__sec .ptipg__std b{ color:var(--pti-ink); }
.pti .ptipg .ptipg__sec .ptipg__std i{ color:var(--pti-muted); }

/* Metrics (real counts printed in the page, e.g. "13 Sections") — quiet, no count-up */
.pti .ptipg .ptipg__metrics{ display:flex; flex-wrap:wrap; gap:0; margin:0; padding:0; border:1px solid rgba(255,255,255,.18);
  border-radius:var(--pti-r-card); overflow:hidden; max-width:var(--pti-read); }
.pti .ptipg .ptipg__metric{ flex:1 1 25%; min-width:110px; padding:14px 16px; background:rgba(255,255,255,.04); text-align:left; }
.pti .ptipg .ptipg__metric + .ptipg__metric{ border-left:1px solid rgba(255,255,255,.18); }
.pti .ptipg .ptipg__metric b{ display:block; font:700 1.75rem/1.1 var(--pti-font-display); color:#fff; letter-spacing:0; background:none; -webkit-text-fill-color:currentColor; }
.pti .ptipg .ptipg__metric span{ display:block; margin-top:4px; font-size:.8125rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--pti-on-dark-muted); }
.pti .ptipg .ptipg__sec .ptipg__metrics{ border-color:var(--pti-line); }
.pti .ptipg .ptipg__sec .ptipg__metric{ background:var(--pti-white); }
.pti .ptipg .ptipg__sec .ptipg__metric + .ptipg__metric{ border-left-color:var(--pti-line); }
.pti .ptipg .ptipg__sec .ptipg__metric b{ color:var(--pti-navy); }
.pti .ptipg .ptipg__sec .ptipg__metric span{ color:var(--pti-muted); }
@media (max-width:599px){ .pti .ptipg .ptipg__metric{ flex-basis:50%; }
  .pti .ptipg .ptipg__metric:nth-child(3){ border-left:0; }
  .pti .ptipg .ptipg__metric:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.18); } }

/* Section heads on hubs */
.pti .ptipg .ptipg__head{ max-width:44rem; margin:0 auto var(--pti-s7); text-align:center; }
.pti .ptipg .ptipg__head p:not(.ptipg__eyebrow){ font-size:1.0625rem; color:var(--pti-muted-strong); margin:0; }
.pti .ptipg .ptipg__head--left{ margin-left:0; text-align:left; }
.pti .ptipg .ptipg__sec--navy .ptipg__head p:not(.ptipg__eyebrow){ color:var(--pti-on-dark-soft); }


/* ------------------------------------------------------------------------------------------
   10. TRUST STRIP — Written by · Reviewed by · Last reviewed · Next review · Reading time
       Filled only from the page's own byline/metadata (Decision 7). Condition guides, clinical
       pages and articles only; learn topics keep Rule D5 (team line at the end).
   ------------------------------------------------------------------------------------------ */
.pti .pti-trust{ display:flex; flex-wrap:wrap; gap:1px; margin:var(--pti-s5) 0 0; padding:0; overflow:hidden;
  background:var(--pti-line); border:1px solid var(--pti-line); border-radius:var(--pti-r-card); font-size:var(--pti-fs-small); line-height:1.4; }
.pti .pti-trust__item{ display:flex; align-items:flex-start; gap:10px; flex:1 1 210px; margin:0; padding:12px 16px; background:var(--pti-white); }
.pti .pti-trust__item .pti-icon{ width:20px; height:20px; margin-top:1px; color:var(--pti-teal-text); }
.pti .pti-trust dt{ font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--pti-muted); margin:0 0 2px; }
.pti .pti-trust dd{ margin:0; font-weight:500; color:var(--pti-ink); }
/* in the hero: solid deep-navy cells so every label is measured against one known colour */
.pti .ptipg__hero .pti-trust, .pti .pti-dark .pti-trust{ background:rgba(255,255,255,.2); border-color:rgba(255,255,255,.2); }
.pti .ptipg__hero .pti-trust__item, .pti .pti-dark .pti-trust__item{ background:var(--pti-navy-deep); }
.pti .ptipg__hero .pti-trust .pti-icon{ color:var(--pti-teal); }          /* decorative icon on dark: 5.2:1 vs navy-deep */
.pti .ptipg__hero .pti-trust dt{ color:var(--pti-on-dark-muted); }
.pti .ptipg__hero .pti-trust dd{ color:#fff; }
@media (max-width:599px){ .pti .pti-trust__item{ flex-basis:40%; padding:10px 12px; } }


/* ------------------------------------------------------------------------------------------
   11. KEY POINTS AND SUMMARY
   ------------------------------------------------------------------------------------------ */
/* "In plain words" summary */
.pti .ptipg .ptipg__summary{ margin:0 0 var(--pti-s6); padding:var(--pti-s5) var(--pti-s5) var(--pti-s5) var(--pti-s6);
  background:var(--pti-tint-blue); border-radius:var(--pti-r-card); position:relative; font-size:1.0625em; line-height:1.7; }
.pti .ptipg .ptipg__summary::before{ content:""; position:absolute; left:0; top:var(--pti-s5); bottom:var(--pti-s5); width:4px;
  border-radius:0 3px 3px 0; background:var(--pti-navy); }
.pti .ptipg .ptipg__summary p:last-child{ margin-bottom:0; }
.pti .ptipg .ptipg__summary > p:first-child > strong:first-child{ color:var(--pti-navy); font-family:var(--pti-font-display); font-size:1.1em; }

/* Key points box — .ptipg__takeaways (existing) and .pti-keypoints (new, with its own title) */
.pti .ptipg .ptipg__takeaways, .pti .pti-keypoints{
  margin:0 0 var(--pti-s6); padding:var(--pti-s5) var(--pti-s6); list-style:none;
  background:var(--pti-tint-teal); border:1px solid #CDEDEC; border-radius:var(--pti-r-card);
  counter-reset:pti-kp;
}
.pti .ptipg .ptipg__takeaways > li, .pti .pti-keypoints li{ counter-increment:pti-kp; position:relative; padding:0 0 0 2.4em; margin:0 0 .85em; }
.pti .ptipg .ptipg__takeaways > li:last-child, .pti .pti-keypoints li:last-child{ margin-bottom:0; }
.pti .ptipg .ptipg__takeaways > li::before, .pti .pti-keypoints li::before{
  content:counter(pti-kp); position:absolute; left:0; top:.15em; width:1.55em; height:1.55em; border-radius:50%;
  display:grid; place-items:center; background:var(--pti-white); border:1.5px solid var(--pti-teal-text);
  font:700 .8125rem/1 var(--pti-font-ui); color:var(--pti-teal-text);
}
.pti .pti-keypoints__title{ display:flex; align-items:center; gap:8px; margin:0 0 var(--pti-s4);
  font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui); letter-spacing:.12em; text-transform:uppercase; color:var(--pti-teal-text); }
.pti .pti-keypoints ul, .pti .pti-keypoints ol{ list-style:none; margin:0; padding:0; }
.pti .ptipg .ptipg__ticks li{ position:relative; padding-left:1.8em; margin-bottom:.5em; }
.pti .ptipg .ptipg__ticks li::before{ content:""; position:absolute; left:0; top:.45em; width:1em; height:.55em;
  border-left:2px solid var(--pti-teal-text); border-bottom:2px solid var(--pti-teal-text); transform:rotate(-45deg); background:none!important; }


/* Phones: boxes give the text more room */
@media (max-width:599px){
  .pti .ptipg .ptipg__summary{ padding:var(--pti-s4) var(--pti-s4) var(--pti-s4) var(--pti-s5); }
  .pti .ptipg .ptipg__takeaways, .pti .pti-keypoints{ padding:var(--pti-s4); }
  .pti .ptipg .ptipg__takeaways > li, .pti .pti-keypoints li{ padding-left:2.1em; }
}


/* ------------------------------------------------------------------------------------------
   12. CALLOUTS — Red flag · Clinical pearl · Patient tip · Caution (icon + word, never colour alone)
       New: <aside class="pti-callout pti-callout--redflag"><p class="pti-callout__label">…</p>…</aside>
       Existing: .ptipg__note (neutral), --alert (red-flag styling; carries its own icon and heading),
                 --gold (pearl styling), .ptipg__case, .ptipg__osce, .ptipg__coi
   ------------------------------------------------------------------------------------------ */
.pti .pti-callout, .pti .ptipg .ptipg__note, .pti .ptipg .ptipg__case, .pti .ptipg .ptipg__osce{
  --c-fg:var(--pti-navy); --c-bg:var(--pti-tint-blue); --c-line:#D3E1F3; --c-bar:var(--pti-navy);
  position:relative; margin:var(--pti-s6) 0; padding:var(--pti-s5) var(--pti-s5) var(--pti-s5) calc(var(--pti-s5) + 4px);
  background:var(--c-bg)!important; border:1px solid var(--c-line)!important; border-left:4px solid var(--c-bar)!important;
  border-radius:var(--pti-r-card); color:var(--pti-ink)!important;
}
.pti .pti-callout > :last-child, .pti .ptipg .ptipg__note > :last-child, .pti .ptipg .ptipg__case > :last-child{ margin-bottom:0; }
.pti .pti-callout__label, .pti .ptipg .ptipg__notehead{
  display:flex; align-items:center; gap:10px; margin:0 0 var(--pti-s3)!important;
  font:700 var(--pti-fs-ui)/1.35 var(--pti-font-ui)!important; letter-spacing:0; color:var(--c-fg)!important;
}
.pti .pti-callout__label{ font-size:var(--pti-fs-eyebrow)!important; letter-spacing:.1em!important; text-transform:uppercase; }
.pti .pti-callout__label .pti-icon, .pti .ptipg .ptipg__notehead svg{ width:22px; height:22px; flex:none; color:var(--c-fg); }
.pti .pti-callout li::before, .pti .ptipg .ptipg__note li::before{ background:var(--c-fg)!important; }

.pti .pti-callout--redflag, .pti .ptipg .ptipg__note--alert{ --c-fg:var(--pti-red); --c-bg:var(--pti-red-tint); --c-line:var(--pti-red-line); --c-bar:var(--pti-red); }
.pti .pti-callout--pearl, .pti .ptipg .ptipg__note--gold{ --c-fg:var(--pti-teal-text); --c-bg:var(--pti-tint-teal); --c-line:#C3E8E6; --c-bar:var(--pti-teal-text); }
.pti .pti-callout--tip{ --c-fg:var(--pti-blue-strong); --c-bg:var(--pti-tint-blue); --c-line:#CCDCF6; --c-bar:var(--pti-blue); }
.pti .pti-callout--caution, .pti .ptipg .ptipg__case{ --c-fg:var(--pti-amber); --c-bg:var(--pti-amber-tint); --c-line:var(--pti-amber-line); --c-bar:var(--pti-amber); }
.pti .ptipg .ptipg__case .ptipg__notehead{ color:var(--pti-amber)!important; }
.pti .ptipg .ptipg__osce{ --c-fg:var(--pti-navy); --c-bg:var(--pti-white); --c-line:var(--pti-line); --c-bar:var(--pti-navy); }
.pti .ptipg .ptipg__osce ol{ padding-left:1.4em; list-style:decimal; }

@media (max-width:599px){
  .pti .pti-callout, .pti .ptipg .ptipg__note, .pti .ptipg .ptipg__case, .pti .ptipg .ptipg__osce{ padding:var(--pti-s4) var(--pti-s4) var(--pti-s4) calc(var(--pti-s4) + 2px); }
  .pti .ptipg .ptipg__fig, .pti .pti-figure{ padding:var(--pti-s3); }
}
/* Existing alert boxes get a printed "Red flag" label above their own heading (approved 15 Oct).
   The words are drawn by CSS. `content: "Red flag" / ""` gives the generated text an empty
   alternative, so screen readers that support it skip the label and go straight to the box's own
   heading (which already states the urgency). Browsers without the alt syntax use the first
   declaration and announce "Red flag" once — accepted: it is a short, accurate prefix, not a
   repeat of the heading. The flag icon is a background image (no text, nothing announced). */
.pti .ptipg .ptipg__note--alert::before{
  content:"Red flag";
  content:"Red flag" / "";
  display:inline-flex; align-items:center; min-height:24px; margin:0 0 var(--pti-s3); padding:2px 10px 2px 30px;
  border-radius:var(--pti-r-chip); background:#fff no-repeat 9px 50% / 16px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B42318' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.2 21.4V3'/%3E%3Cpath d='M5.2 4c2.4-1.2 4.6-1.2 6.8 0s4.4 1.2 6.8 0v8.4c-2.4 1.2-4.6 1.2-6.8 0s-4.4-1.2-6.8 0'/%3E%3C/svg%3E");
  border:1px solid var(--pti-red-line);
  font:700 var(--pti-fs-eyebrow)/1.2 var(--pti-font-ui); letter-spacing:.1em; text-transform:uppercase; color:var(--pti-red);
}
@media (forced-colors:active){ .pti .ptipg .ptipg__note--alert::before{ border-color:CanvasText; } }

/* Navigation note (e.g. "Jump to" on /conditions/) keeps the neutral look but quieter */
.pti .ptipg nav.ptipg__note{ --c-bar:var(--pti-teal); background:var(--pti-bg)!important; }

/* Conflict-of-interest / disclosure */
.pti .ptipg .ptipg__coi{ margin:var(--pti-s6) 0; padding:var(--pti-s4) var(--pti-s5)!important; background:var(--pti-bg)!important;
  border:1px solid var(--pti-line)!important; border-left:4px solid var(--pti-navy)!important; border-radius:0 var(--pti-r-card) var(--pti-r-card) 0;
  font-size:var(--pti-fs-ui-sm); }
.pti .ptipg .ptipg__coi, .pti .ptipg .ptipg__coi p{ color:var(--pti-ink)!important; }
.pti .ptipg .ptipg__coi a{ color:var(--pti-blue-strong)!important; }


/* ------------------------------------------------------------------------------------------
   13. EVIDENCE — supported / not supported grid, grade chips
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__eviGrid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--pti-s4); margin:var(--pti-s5) 0 var(--pti-s6); }
@media (max-width:767px){ .pti .ptipg .ptipg__eviGrid{ grid-template-columns:1fr; } }
.pti .ptipg .ptipg__evi{ --e-fg:var(--pti-green); --e-tint:var(--pti-green-tint);
  margin:0; padding:0 0 var(--pti-s4); background:var(--pti-white); border:1px solid var(--pti-line); border-radius:var(--pti-r-card);
  overflow:hidden; font-size:.95em; }
.pti .ptipg .ptipg__evi--no{ --e-fg:var(--pti-red); --e-tint:var(--pti-red-tint); }
.pti .ptipg .ptipg__evi h3{ display:flex; align-items:center; gap:10px; margin:0 0 var(--pti-s4)!important; padding:12px var(--pti-s5);
  background:var(--e-tint); border-bottom:1px solid var(--pti-line); font:700 var(--pti-fs-ui)/1.3 var(--pti-font-ui)!important; color:var(--e-fg)!important;
  letter-spacing:.04em; text-transform:uppercase; }
.pti .ptipg .ptipg__evi h3::before{ content:""; width:22px; height:22px; flex:none; background:currentColor;
  -webkit-mask:var(--e-icon) center / contain no-repeat; mask:var(--e-icon) center / contain no-repeat; }
.pti .ptipg .ptipg__evi--yes h3::before, .pti .ptipg .ptipg__evi:not(.ptipg__evi--no) h3::before{
  --e-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M7.8 12.4l2.8 2.8 5.6-6'/%3E%3C/svg%3E"); }
.pti .ptipg .ptipg__evi--no h3::before{
  --e-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M8.8 8.8l6.4 6.4M15.2 8.8l-6.4 6.4'/%3E%3C/svg%3E"); }
.pti .ptipg .ptipg__evi ul{ margin:0; padding:0 var(--pti-s5); }
.pti .ptipg .ptipg__evi li{ margin-bottom:.8em; line-height:1.6; }
.pti .ptipg .ptipg__evi li::before{ background:var(--e-fg)!important; }

/* Grade / state chips: the word is always printed; colour reinforces */
.pti .ptipg .ptipg__grade, .pti .ptipg .ptipg__grade--a, .pti .pti-chip--grade{
  display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:var(--pti-r-chip);
  font:700 .8125rem/1.4 var(--pti-font-ui); letter-spacing:.02em; white-space:nowrap;
  background:var(--pti-tint-teal); color:var(--pti-teal-text); border:1px solid #BFE6E4; vertical-align:middle;
}
.pti .ptipg .ptipg__grade::before, .pti .pti-chip--grade::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.pti .ptipg .ptipg__grade--b{ background:var(--pti-tint-blue); color:var(--pti-navy); border-color:#CFDDF2; }
.pti .ptipg .ptipg__grade--c{ background:var(--pti-amber-tint); color:var(--pti-amber); border-color:var(--pti-amber-line); }


/* ------------------------------------------------------------------------------------------
   14. TABLES — header cells, striped rows, horizontal scroll on phones
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__tablewrap, .pti .pti-tablewrap{
  margin:var(--pti-s5) 0 var(--pti-s6); overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); background:var(--pti-white);
  /* scroll hint: soft edge shadows appear only when there is more to scroll */
  background:
    linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)) left center / 40px 100% no-repeat local,
    linear-gradient(270deg,#fff 30%,rgba(255,255,255,0)) right center / 40px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(1,42,107,.14),transparent) left center / 14px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%,rgba(1,42,107,.14),transparent) right center / 14px 100% no-repeat scroll,
    #fff;
  box-shadow:none;
}
.pti .ptipg table, .pti .pti-table{ width:100%; border-collapse:collapse; border-spacing:0; margin:0;
  font-size:.9em; line-height:1.55; font-variant-numeric:tabular-nums; }
.pti .ptipg .ptipg__tablewrap table{ min-width:560px; }
.pti .ptipg th, .pti .pti-table th{ text-align:left; vertical-align:bottom; padding:12px 16px;
  font:700 var(--pti-fs-small)/1.35 var(--pti-font-ui)!important; letter-spacing:.02em; text-transform:none!important;
  color:var(--pti-navy)!important; background:var(--pti-tint-blue)!important; border:0!important; border-bottom:2px solid #C9D8EE!important; }
.pti .ptipg td, .pti .pti-table td{ padding:12px 16px; vertical-align:top; border:0!important; border-bottom:1px solid var(--pti-line)!important; color:var(--pti-ink); background:transparent; }
.pti .ptipg tbody tr:nth-child(even) td, .pti .pti-table tbody tr:nth-child(even) td{ background:rgba(247,250,252,.9)!important; }
.pti .ptipg tbody tr:last-child td{ border-bottom:0!important; }
.pti .ptipg tbody td:first-child, .pti .ptipg tbody th[scope="row"]{ font-weight:700; color:#0F1F38; }
.pti .ptipg caption, .pti .pti-table caption{ caption-side:top; text-align:left; padding:12px 16px 4px; font-weight:700; color:var(--pti-navy); }
@media (max-width:599px){ .pti .ptipg th, .pti .ptipg td{ padding:10px 12px; } }


/* ------------------------------------------------------------------------------------------
   15. FIGURES — title, image or SVG, caption
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__fig, .pti .pti-figure{ margin:var(--pti-s6) 0; padding:var(--pti-s4); background:var(--pti-white);
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); }
.pti .ptipg .ptipg__fig--warm{ background:var(--pti-bg); }
.pti .ptipg .ptipg__figtitle, .pti .pti-figure__title{ margin:0 0 var(--pti-s3)!important; padding:0 var(--pti-s1);
  font:700 var(--pti-fs-ui-sm)/1.4 var(--pti-font-ui)!important; letter-spacing:0!important; text-transform:none!important; color:var(--pti-navy)!important; }
.pti .ptipg .ptipg__fig img, .pti .ptipg .ptipg__plate{ display:block; width:100%; height:auto; border-radius:var(--pti-r-ctl)!important; background:var(--pti-bg); }
.pti .ptipg .ptipg__fig svg{ display:block; width:100%; height:auto; }
.pti .ptipg .ptipg__fig figcaption, .pti .ptipg .ptipg__figcap, .pti .pti-figure figcaption{
  margin:var(--pti-s3) 0 0!important; padding:0 var(--pti-s1); font-size:var(--pti-fs-small)!important; line-height:1.6; color:var(--pti-muted-strong)!important; }
.pti .ptipg .ptipg__fig figcaption strong, .pti .ptipg .ptipg__figcap strong{ color:var(--pti-ink); }


/* ------------------------------------------------------------------------------------------
   16. COMMON QUESTIONS (details) and SELF-TEST (MCQ)
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__faq{ margin:var(--pti-s4) 0 var(--pti-s6); border-top:1px solid var(--pti-line); }
.pti .ptipg .ptipg__faq details{ border-bottom:1px solid var(--pti-line); }
.pti .ptipg .ptipg__faq summary{ position:relative; display:flex; align-items:center; min-height:56px; padding:14px 48px 14px 0;
  list-style:none; cursor:pointer; font:700 1.0625rem/1.45 var(--pti-font-ui); color:var(--pti-navy);
  transition:color var(--pti-dur-fast) var(--pti-ease); }
.pti .ptipg .ptipg__faq summary::-webkit-details-marker{ display:none; }
.pti .ptipg .ptipg__faq summary::after{ content:""; position:absolute; right:8px; top:50%; width:24px; height:24px; margin-top:-12px;
  border-radius:50%; border:1.5px solid var(--pti-line-strong);
  background:linear-gradient(var(--pti-navy),var(--pti-navy)) center / 10px 2px no-repeat,
             linear-gradient(var(--pti-navy),var(--pti-navy)) center / 2px 10px no-repeat;
  transition:transform var(--pti-dur) var(--pti-ease); }
.pti .ptipg .ptipg__faq details[open] > summary::after{ transform:rotate(45deg); }
.pti .ptipg .ptipg__faq summary:hover{ color:var(--pti-blue-strong); }
.pti .ptipg .ptipg__faq details > div, .pti .ptipg .ptipg__faq details > p, .pti .ptipg .ptipg__faq details > ol{ padding-right:48px; }
.pti .ptipg .ptipg__faq details > :last-child{ margin-bottom:var(--pti-s5); }

.pti .ptipg .ptipg__mcq{ display:grid; gap:8px; margin:0 0 var(--pti-s4)!important; padding:0!important; list-style:none; }
.pti .ptipg .ptipg__mcq li{ margin:0; padding:10px 14px!important; border:1px solid var(--pti-line); border-radius:var(--pti-r-ctl);
  background:var(--pti-white); font-size:.95em; line-height:1.5; list-style:none; }
.pti .ptipg .ptipg__mcq li::before{ content:none!important; }
.pti .ptipg .ptipg__mcq li strong{ color:var(--pti-navy); margin-right:4px; }
.pti .ptipg .ptipg__mcq + p strong:first-child{ color:var(--pti-green); }


/* ------------------------------------------------------------------------------------------
   17. REFERENCES, CITATIONS, BYLINE
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__refs{ counter-reset:pti-ref; margin:var(--pti-s4) 0 var(--pti-s6)!important; padding:0!important; list-style:none;
  font-size:var(--pti-fs-ui-sm); line-height:1.6; }
.pti .ptipg .ptipg__refs > li{ counter-increment:pti-ref; position:relative; margin:0; padding:14px 0 14px 44px; border-bottom:1px solid var(--pti-line); }
.pti .ptipg .ptipg__refs > li:first-child{ border-top:1px solid var(--pti-line); }
.pti .ptipg .ptipg__refs > li::before{ content:counter(pti-ref); position:absolute; left:0; top:14px; width:28px; height:28px;
  display:grid; place-items:center; border-radius:6px; background:var(--pti-tint-blue); color:var(--pti-navy);
  font:700 .8125rem/1 var(--pti-font-ui); }
.pti .ptipg .ptipg__refs > li:target{ background:var(--pti-tint-teal); outline:none; border-radius:var(--pti-r-ctl); }
.pti .ptipg .ptipg__refs a{ display:inline-flex; align-items:center; min-height:24px; margin-right:6px; padding:0 2px;
  font-size:.875rem; word-break:break-word; }
.pti .ptipg .ptipg__reftag{ display:inline-flex; margin:6px 0 0; padding:2px 10px; border-radius:var(--pti-r-chip);
  background:var(--pti-bg); border:1px solid var(--pti-line); font-size:.8125rem; font-weight:500; color:var(--pti-muted-strong); }
.pti .ptipg .ptipg__refs > li > .ptipg__reftag{ display:table; }
.pti .ptipg .ptipg__cite{ font-size:.7em; line-height:0; vertical-align:super; margin-left:1px; font-weight:700; }
.pti .ptipg .ptipg__cite a{ color:var(--pti-teal-text); text-decoration:none; padding:0 1px; }
.pti .ptipg .ptipg__cite a:hover{ text-decoration:underline; }

/* Byline ("About this guide") */
.pti .ptipg .ptipg__byline{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin:var(--pti-s4) 0 var(--pti-s6); padding:0;
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); overflow:hidden; background:var(--pti-white); }
.pti .ptipg .ptipg__byline > div{ margin:0; padding:var(--pti-s4) var(--pti-s5); border-bottom:1px solid var(--pti-line); }
.pti .ptipg .ptipg__byline > div:nth-child(odd){ border-right:1px solid var(--pti-line); }
.pti .ptipg .ptipg__byline > div:last-child:nth-child(odd){ grid-column:1 / -1; border-right:0; }
.pti .ptipg .ptipg__byline dt{ margin:0 0 4px; font:700 .75rem/1.3 var(--pti-font-ui); letter-spacing:.1em; text-transform:uppercase; color:var(--pti-muted); }
.pti .ptipg .ptipg__byline dd{ margin:0; font-weight:700; color:var(--pti-ink); line-height:1.45; }
.pti .ptipg .ptipg__byline dd small{ display:block; margin-top:4px; font-weight:400; font-size:var(--pti-fs-small); color:var(--pti-muted); }
.pti .ptipg .ptipg__byline--pending dd{ color:var(--pti-amber); }
.pti .ptipg .ptipg__byline--guest{ background:var(--pti-tint-blue); border-color:#D3E1F3; }   /* guest-author byline (was beige) */
@media (max-width:599px){ .pti .ptipg .ptipg__byline{ grid-template-columns:1fr; }
  .pti .ptipg .ptipg__byline > div:nth-child(odd){ border-right:0; } }
.pti .ptipg .ptipg__byline > div:last-child{ border-bottom:0; }
@media (min-width:600px){ .pti .ptipg .ptipg__byline > div:nth-last-child(2):nth-child(odd){ border-bottom:0; } }

/* "This website explains; it does not treat" panel */
.pti .ptipg .ptipg__care{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:var(--pti-s6); align-items:center;
  max-width:var(--pti-container-read); margin-inline:auto; padding:var(--pti-s6); background:var(--pti-white);
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); box-shadow:var(--pti-shadow-1); }
.pti .ptipg .ptipg__care h2{ font-size:var(--pti-fs-h2); margin-bottom:var(--pti-s3); }
.pti .ptipg .ptipg__care p{ color:var(--pti-muted-strong); margin-bottom:0; max-width:var(--pti-measure); }
.pti .ptipg .ptipg__care .ptipg__eyebrow{ color:var(--pti-teal-text)!important; margin-bottom:var(--pti-s2); }
.pti .ptipg .ptipg__careact{ display:flex; flex-direction:column; align-items:stretch; gap:var(--pti-s3); }
@media (max-width:767px){ .pti .ptipg .ptipg__care{ grid-template-columns:1fr; padding:var(--pti-s5); gap:var(--pti-s5); } }


/* ------------------------------------------------------------------------------------------
   18. CARDS — one family: audience · specialty · resource · subject · person
   ------------------------------------------------------------------------------------------ */
.pti .pti-card, .pti .ptipg .ptipg__card, .pti .ptipg .ptipg__idx, .pti .ptipg .ptipg__subj,
.pti .ptipg .ptipg__soon, .pti .ptipg .ptipg__person, .pti .ptipg .ptipg__pubitem, .pti .ptipg .ptipg__role{
  position:relative; display:flex; flex-direction:column; min-width:0; margin:0;
  padding:var(--pti-s5); background:var(--pti-white); color:var(--pti-ink);
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); box-shadow:var(--pti-shadow-1);
  text-decoration:none;
  transition:transform var(--pti-dur) var(--pti-ease),box-shadow var(--pti-dur) var(--pti-ease),border-color var(--pti-dur) var(--pti-ease);
}
.pti a.pti-card:hover, .pti .pti-card--link:hover, .pti .ptipg a.ptipg__card:hover, .pti .ptipg a.ptipg__idx:hover,
.pti .ptipg .ptipg__subj:hover, .pti .ptipg .ptipg__person:hover{
  transform:translateY(-4px); box-shadow:var(--pti-shadow-2); border-color:#CBD8E8;
}
.pti .pti-card h3, .pti .ptipg .ptipg__card h3, .pti .ptipg .ptipg__idx h3, .pti .ptipg .ptipg__subj h3{
  font:700 1.375rem/1.25 var(--pti-font-display)!important; color:var(--pti-navy)!important; margin:0 0 var(--pti-s2);
  -webkit-text-fill-color:currentColor; background:none;
}
.pti .pti-card p, .pti .ptipg .ptipg__card p, .pti .ptipg .ptipg__idx p{ font-size:var(--pti-fs-ui); line-height:1.6; color:var(--pti-muted-strong); margin:0 0 var(--pti-s4); }
.pti .pti-card > :last-child, .pti .ptipg .ptipg__card > :last-child{ margin-bottom:0; }
.pti .pti-card__foot{ margin-top:auto; padding-top:var(--pti-s3); }
/* a whole-card link: the title link stretches over the card */
.pti .pti-card__link{ color:inherit; text-decoration:none; }
.pti .pti-card__link::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.pti .pti-card__link:focus-visible{ outline:none; }
.pti .pti-card:has(.pti-card__link:focus-visible){ outline:2px solid var(--pti-blue); outline-offset:2px; }
.pti .pti-card__icon{ display:grid; place-items:center; width:48px; height:48px; margin-bottom:var(--pti-s4);
  border-radius:var(--pti-r-card); background:var(--pti-tint-teal); color:var(--pti-teal-text); }
.pti .pti-card__icon .pti-icon{ width:26px; height:26px; }
.pti .pti-card__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin:0 0 var(--pti-s3); font-size:var(--pti-fs-small); color:var(--pti-muted); }
.pti .pti-card__meta .pti-icon{ width:16px; height:16px; margin-right:4px; }
.pti .pti-card__meta span{ display:inline-flex; align-items:center; }
.pti .pti-card__links{ list-style:none; margin:0 0 var(--pti-s3); padding:0; border-top:1px solid var(--pti-line); }
.pti .pti-card__links a{ display:flex; align-items:center; justify-content:space-between; min-height:44px; border-bottom:1px solid var(--pti-line);
  color:var(--pti-ink); font-weight:500; text-decoration:none; position:relative; z-index:1; }
.pti .pti-card__links a:hover{ color:var(--pti-blue-strong); }
.pti .pti-card__links a .pti-icon{ width:18px; height:18px; color:var(--pti-muted); }

/* Audience card: accent edge + larger title */
.pti .pti-card--audience{ padding:var(--pti-s6); border-top:4px solid var(--pti-accent,var(--pti-teal)); }
.pti .pti-card--audience h3{ font-size:1.625rem!important; }
.pti .pti-card--audience[data-accent="blue"]{ --pti-accent:var(--pti-blue); }
.pti .pti-card--audience[data-accent="blue"] .pti-card__icon{ background:var(--pti-tint-blue); color:var(--pti-blue-strong); }
.pti .pti-card--audience[data-accent="navy"]{ --pti-accent:var(--pti-navy); }
.pti .pti-card--audience[data-accent="navy"] .pti-card__icon{ background:var(--pti-tint-blue); color:var(--pti-navy); }

/* Specialty tile: compact, icon left */
.pti .pti-card--specialty{ flex-direction:row; align-items:center; gap:var(--pti-s4); padding:var(--pti-s4) var(--pti-s5); }
.pti .pti-card--specialty .pti-card__icon{ margin:0; width:44px; height:44px; }
.pti .pti-card--specialty h3{ font:700 1.0625rem/1.3 var(--pti-font-ui)!important; color:var(--pti-ink)!important; margin:0 0 2px; }
.pti .pti-card--specialty p{ margin:0; font-size:var(--pti-fs-small); color:var(--pti-muted); }

@media (max-width:599px){
  .pti .pti-grid:has(> .pti-card--specialty){ --cols:2!important; gap:var(--pti-s3); }
  .pti .pti-grid > .pti-card--specialty{ flex-basis:calc((100% - var(--pti-s3)) / 2); }
  .pti .pti-card--specialty{ flex-direction:column; align-items:flex-start; gap:var(--pti-s3); padding:var(--pti-s4); }
}
/* Resource card */
.pti .pti-card--resource .pti-chip{ align-self:flex-start; margin-bottom:var(--pti-s3); }
.pti .pti-card--resource h3{ font-size:1.25rem!important; }

/* Subject card */
.pti .pti-card--subject h3{ font-size:1.25rem!important; }

/* Person card */
.pti .pti-card--person{ flex-direction:row; align-items:center; gap:var(--pti-s4); }
.pti .pti-card__avatar, .pti .ptipg .ptipg__initials{ display:grid; place-items:center; flex:none; width:56px; height:56px; border-radius:50%;
  background:var(--pti-navy)!important; color:#fff!important; font:700 1.125rem/1 var(--pti-font-display); text-shadow:none!important; }
.pti .pti-card--person h3{ font-size:1.125rem!important; margin:0; }
.pti .pti-card--person p{ margin:2px 0 0; font-size:var(--pti-fs-small); }

/* Existing .ptipg__card: --bar / --gold get a solid teal top edge (no gradient bars) */
.pti .ptipg .ptipg__card--bar, .pti .ptipg .ptipg__card--gold{ border-top:3px solid var(--pti-teal); }
.pti .ptipg .ptipg__card--bar::before, .pti .ptipg .ptipg__card--gold::before{ content:none!important; }
.pti .ptipg .ptipg__card h3[style]{ color:var(--pti-navy)!important; }
/* 4-up metric cards (e.g. "25+") — Playfair numerals, no Bebas, no gradient text */
.pti .ptipg .ptipg__grid--4:not(.ptipg__grid--text) .ptipg__card--bar h3{ font:700 2.5rem/1 var(--pti-font-display)!important; letter-spacing:0!important; }
.pti .ptipg .ptipg__ico, .pti .ptipg .ptipg__ico--gold{ display:grid; place-items:center; width:48px; height:48px; margin-bottom:var(--pti-s4); border-radius:var(--pti-r-card);
  background:var(--pti-tint-teal)!important; color:var(--pti-teal-text)!important; }
.pti .ptipg .ptipg__ico svg{ width:24px; height:24px; }
/* cards on the dark section */
.pti .ptipg .ptipg__sec--navy .ptipg__card{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); border-top-color:var(--pti-teal); box-shadow:none; }
.pti .ptipg .ptipg__sec--navy .ptipg__card h3, .pti .ptipg .ptipg__sec--navy .ptipg__card h3[style]{ color:#fff!important; font-size:1.25rem!important; }
.pti .ptipg .ptipg__sec--navy .ptipg__card p{ color:var(--pti-on-dark-soft); }

/* Condition index card (.ptipg__idx) */
.pti .ptipg .ptipg__idx{ padding:0 0 var(--pti-s5); overflow:hidden; color:var(--pti-ink); }
.pti .ptipg .ptipg__idx::before{ content:none!important; }
.pti .ptipg .ptipg__idxthumb{ margin:0 0 var(--pti-s4); padding:var(--pti-s3) var(--pti-s3) var(--pti-s2); background:var(--pti-navy-deep);
  border-bottom:3px solid var(--pti-teal); height:auto!important; overflow:visible!important; }   /* no more cropped chart text */
.pti .ptipg .ptipg__idxthumb svg{ display:block; width:100%; height:auto; }
.pti .ptipg .ptipg__idx h3, .pti .ptipg .ptipg__idx p, .pti .ptipg .ptipg__idxmeta{ padding-inline:var(--pti-s5); }
.pti .ptipg .ptipg__idx h3{ font-size:1.25rem!important; }
.pti .ptipg .ptipg__idx p{ font-size:var(--pti-fs-ui-sm); }
.pti .ptipg .ptipg__idxmeta{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.pti .ptipg .ptipg__idxmeta span, .pti .ptipg .ptipg__chip, .pti .pti-chip{
  display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:3px 12px; border-radius:var(--pti-r-chip);
  font:500 .8125rem/1.3 var(--pti-font-ui)!important; letter-spacing:.01em!important; white-space:nowrap;
  background:var(--pti-tint-blue)!important; color:var(--pti-navy)!important; border:1px solid #D3E0F3!important;
}
.pti .ptipg .ptipg__idxmeta span:first-child{ background:var(--pti-tint-teal)!important; color:var(--pti-teal-text)!important; border-color:#BFE6E4!important; font-weight:700!important; }

/* Learn subject card (.ptipg__subj) */
.pti .ptipg .ptipg__subjgrid{ align-items:start; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:var(--pti-s5); margin:var(--pti-s5) 0 var(--pti-s7); }
@media (max-width:599px){ .pti .ptipg .ptipg__subjgrid{ grid-template-columns:1fr; } }
.pti .ptipg .ptipg__subj{ gap:var(--pti-s2); }
.pti .ptipg .ptipg__subj h3{ font-size:1.25rem!important; margin:0; }
.pti .ptipg .ptipg__subj h3 a{ color:var(--pti-navy); text-decoration:none; }
.pti .ptipg .ptipg__subj h3 a:hover{ text-decoration:underline; text-underline-offset:4px; }
.pti .ptipg .ptipg__subjblurb{ margin:0; font-size:var(--pti-fs-ui-sm); color:var(--pti-muted-strong); }
.pti .ptipg .ptipg__subjmeta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 var(--pti-s2);
  font-size:var(--pti-fs-small); color:var(--pti-muted); }
.pti .ptipg .ptipg__slinks{ display:flex; flex-direction:column; margin-top:var(--pti-s2); border-top:1px solid var(--pti-line); }
.pti .ptipg .ptipg__auto{ display:contents; }
.pti .ptipg .ptipg__slink{ display:flex; align-items:center; min-height:36px; padding:6px 0; border-bottom:1px solid var(--pti-line);
  font-size:var(--pti-fs-ui-sm); line-height:1.35; color:var(--pti-ink); text-decoration:none; }
.pti .ptipg .ptipg__slink:last-child{ border-bottom:0; }
.pti .ptipg .ptipg__slink:hover{ color:var(--pti-blue-strong); text-decoration:underline; text-underline-offset:3px; }
@media (pointer:coarse){ .pti .ptipg .ptipg__slink{ min-height:44px; } }
.pti .ptipg .ptipg__subj .ptipg__soon{ display:block; padding:0; border:0; box-shadow:none; background:none; font-size:var(--pti-fs-small); color:var(--pti-muted); font-style:italic; }
.pti .ptipg .ptipg__soon{ background:var(--pti-bg); box-shadow:none; border-style:dashed; }
.pti .ptipg .ptipg__soon h3{ font:700 1rem/1.3 var(--pti-font-ui)!important; color:var(--pti-ink)!important; margin:0 0 var(--pti-s3); }
.pti .ptipg .ptipg__soon ul{ display:flex; flex-wrap:wrap; gap:8px; margin:0; }
.pti .ptipg .ptipg__soon li{ padding:3px 12px; border-radius:var(--pti-r-chip); border:1px solid var(--pti-line); background:#fff; font-size:var(--pti-fs-small); color:var(--pti-muted-strong); }

/* /learn/ hub — markup added by the theme's pti-v2-learn.js (search box, group chips,
   card colours, "Show all N topics"). Replaces pti-v2-learn.css. Gold (physio group) retired. */
.pti .ptipg .pti-learn__card[hidden], .pti .ptipg .pti-learn__grid[hidden], .pti .ptipg .ptipg__prose h2[hidden],
.pti .ptipg .ptipg__slink[hidden], .pti .ptipg .pti-learn__more[hidden], .pti .ptipg .pti-learn__chips[hidden],
.pti .ptipg .pti-learn__empty[hidden]{ display:none!important; }      /* [hidden] must beat the cards' display:flex */
.pti .ptipg .pti-learn__bar{ position:relative; margin:0 0 var(--pti-s7); padding:var(--pti-s5); background:var(--pti-white);
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); box-shadow:var(--pti-shadow-1); }
.pti .ptipg .pti-learn__label{ display:block; margin:0 0 var(--pti-s3); font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui);
  letter-spacing:.12em; text-transform:uppercase; color:var(--pti-teal-text); }
.pti .ptipg .pti-learn__field{ position:relative; }
.pti .ptipg .pti-learn__field::before{ content:""; position:absolute; left:14px; top:50%; width:20px; height:20px; margin-top:-10px; pointer-events:none;
  background:no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.4' cy='10.4' r='6.6'/%3E%3Cpath d='M15.2 15.2 21 21'/%3E%3C/svg%3E"); }
.pti .ptipg .pti-learn__field::after{ content:none; }
.pti .ptipg .pti-learn__input{ width:100%; min-height:52px; padding:12px 16px 12px 44px; border:1.5px solid var(--pti-control-border);
  border-radius:var(--pti-r-ctl); background:var(--pti-white); font:400 1.0625rem/1.3 var(--pti-font-ui); color:var(--pti-ink);
  transition:border-color var(--pti-dur) var(--pti-ease),box-shadow var(--pti-dur) var(--pti-ease); }
.pti .ptipg .pti-learn__input::placeholder{ color:var(--pti-muted); opacity:1; }
.pti .ptipg .pti-learn__input:focus{ outline:none; border-color:var(--pti-blue); box-shadow:0 0 0 3px rgba(37,99,235,.18); }
.pti .ptipg .pti-learn__input:focus-visible{ outline:2px solid var(--pti-blue); outline-offset:2px; }
.pti .ptipg .pti-learn__chips{ display:flex; flex-wrap:wrap; gap:var(--pti-s2); margin-top:var(--pti-s4); }
.pti .ptipg .pti-learn__chip{ --tone:var(--pti-teal); display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:0 8px 0 14px;
  border:1px solid var(--pti-line); border-left:4px solid var(--tone); border-radius:var(--pti-r-ctl); background:var(--pti-white);
  font:500 var(--pti-fs-ui-sm)/1.2 var(--pti-font-ui); color:var(--pti-ink); text-decoration:none;
  transition:border-color var(--pti-dur-fast) var(--pti-ease),background-color var(--pti-dur-fast) var(--pti-ease); }
.pti .ptipg .pti-learn__chip:hover{ background:var(--pti-bg); border-color:var(--pti-line-strong); border-left-color:var(--tone); color:var(--pti-navy); }
.pti .ptipg .pti-learn__chip b{ display:inline-grid; place-items:center; min-width:28px; height:24px; padding:0 7px; border-radius:var(--pti-r-chip);
  background:var(--pti-tint-blue); color:var(--pti-navy); font:700 .8125rem/1 var(--pti-font-ui); }
.pti .ptipg .pti-learn__chip--foundation, .pti .ptipg .pti-learn__card--foundation{ --tone:var(--pti-teal); }
.pti .ptipg .pti-learn__chip--physio, .pti .ptipg .pti-learn__card--physio{ --tone:var(--pti-blue); }
.pti .ptipg .pti-learn__chip--clinical, .pti .ptipg .pti-learn__card--clinical{ --tone:var(--pti-navy); }
.pti .ptipg .pti-learn__chip--practice, .pti .ptipg .pti-learn__card--practice{ --tone:#64748B; }
.pti .ptipg .pti-learn__status{ margin:var(--pti-s3) 0 0; min-height:1em; font-size:var(--pti-fs-ui-sm); color:var(--pti-muted-strong); }
.pti .ptipg .pti-learn__status:empty{ margin:0; min-height:0; }
.pti .ptipg .pti-learn__empty{ margin:var(--pti-s3) 0 0; padding:12px 14px; border-radius:var(--pti-r-ctl); background:var(--pti-amber-tint);
  border:1px solid var(--pti-amber-line); color:var(--pti-ink); font-size:var(--pti-fs-ui-sm); }
.pti .ptipg .ptipg__prose h2 .pti-learn__count{ display:inline-block; margin-left:12px; padding:4px 10px; vertical-align:middle; border-radius:var(--pti-r-chip);
  background:var(--pti-tint-blue); font:500 .8125rem/1.2 var(--pti-font-ui); letter-spacing:0; color:var(--pti-navy); }
.pti .ptipg .pti-learn__grid{ gap:var(--pti-s4); }
.pti .ptipg .pti-learn__card{ overflow:hidden; padding-top:calc(var(--pti-s5) + 4px); }
.pti .ptipg .pti-learn__card::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--tone); }   /* decorative; the group heading names it */
.pti .ptipg .pti-learn__card h3{ font-size:1.25rem!important; }
.pti .ptipg .pti-learn__card h3 a{ text-decoration:none; }
.pti .ptipg .pti-learn__card h3 a:hover{ color:var(--pti-blue-strong); text-decoration:underline; }
.pti .ptipg .pti-learn__card .ptipg__slinks{ margin-top:var(--pti-s2); }
.pti .ptipg .pti-learn__card .ptipg__slink.is-hit{ margin-inline:-8px; padding-inline:8px; border-radius:6px; background:var(--pti-tint-teal);
  color:var(--pti-ink); font-weight:700; text-decoration:underline; text-decoration-color:var(--pti-teal-text); }   /* weight + underline, not colour alone */
.pti .ptipg .pti-learn__more{ align-self:flex-start; display:inline-flex; align-items:center; min-height:44px; margin-top:var(--pti-s3); padding:8px 14px;
  border:1px solid var(--pti-line); border-radius:var(--pti-r-ctl); background:var(--pti-white); cursor:pointer;
  font:700 var(--pti-fs-ui-sm)/1.2 var(--pti-font-ui); letter-spacing:normal; text-transform:none; color:var(--pti-blue-strong);
  transition:background-color var(--pti-dur-fast) var(--pti-ease),border-color var(--pti-dur-fast) var(--pti-ease); }
.pti .ptipg .pti-learn__more:hover{ background:var(--pti-tint-blue); border-color:var(--pti-blue); }
@media (max-width:599px){
  .pti .ptipg .pti-learn__bar{ padding:var(--pti-s4); }
  .pti .ptipg .ptipg__prose h2 .pti-learn__count{ display:block; width:max-content; margin:8px 0 0; }
}

/* Grids — centred incomplete rows (Part 6.3) */
.pti .ptipg .ptipg__grid, .pti .pti-grid{ --cols:3; display:flex; flex-wrap:wrap; justify-content:center; gap:var(--pti-s5); margin:0; padding:0; }
.pti .ptipg .ptipg__grid > *, .pti .pti-grid > *{ flex:0 1 calc((100% - (var(--cols) - 1) * var(--pti-s5)) / var(--cols)); }
.pti .ptipg .ptipg__grid--2, .pti .pti-grid--2{ --cols:2; }
.pti .ptipg .ptipg__grid--4, .pti .pti-grid--4{ --cols:4; }
@media (max-width:1023px){ .pti .ptipg .ptipg__grid--3, .pti .ptipg .ptipg__grid--4, .pti .pti-grid--3, .pti .pti-grid--4, .pti .pti-grid{ --cols:2; } }
@media (max-width:599px){ .pti .ptipg .ptipg__grid, .pti .pti-grid{ --cols:1!important; } }


/* ------------------------------------------------------------------------------------------
   19. CHIPS — resource type, audience, evidence grade, filters
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__chips, .pti .pti-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.pti .pti-chip .pti-icon{ width:15px; height:15px; }
.pti .pti-chip--type{ background:var(--pti-navy)!important; color:#fff!important; border-color:var(--pti-navy)!important; }
.pti .pti-chip--audience{ background:var(--pti-tint-teal)!important; color:var(--pti-teal-text)!important; border-color:#BFE6E4!important; }
/* interactive chips: links and filter toggles get a 44 px target */
.pti a.pti-chip, .pti button.pti-chip, .pti .pti-chip--filter{ min-height:44px; padding:8px 16px; cursor:pointer; text-decoration:none;
  font-size:var(--pti-fs-ui-sm)!important; transition:background-color var(--pti-dur-fast) var(--pti-ease),border-color var(--pti-dur-fast) var(--pti-ease); }
.pti a.pti-chip:hover, .pti button.pti-chip:hover{ border-color:var(--pti-blue)!important; }
.pti .pti-chip--filter{ background:#fff!important; border:1.5px solid var(--pti-control-border)!important; color:var(--pti-ink)!important; }
.pti .pti-chip--filter[aria-pressed="true"]{ background:var(--pti-navy)!important; border-color:var(--pti-navy)!important; color:#fff!important; }
.pti .pti-chip--filter[aria-pressed="true"]::before{ content:""; width:10px; height:6px; border-left:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg) translate(1px,-1px); }
/* chips on dark (hero "popular topics") */
.pti .pti-dark a.pti-chip, .pti .ptipg__hero a.pti-chip{ background:rgba(255,255,255,.08)!important; color:#fff!important; border-color:rgba(255,255,255,.35)!important; }
.pti .pti-dark a.pti-chip:hover, .pti .ptipg__hero a.pti-chip:hover{ background:rgba(255,255,255,.16)!important; border-color:#fff!important; }


/* ------------------------------------------------------------------------------------------
   20. CONTENTS SHEET, READING BAR, BACK TO TOP (phones; theme script markup)
   ------------------------------------------------------------------------------------------ */
.pti .pti-bar{ position:fixed; left:50%; bottom:max(16px,env(safe-area-inset-bottom)); z-index:150; transform:translate(-50%,160%);
  transition:transform var(--pti-dur-slow) var(--pti-ease);
  display:none; gap:4px; padding:4px; background:var(--pti-navy-deep); border-radius:var(--pti-r-chip); box-shadow:var(--pti-shadow-2); }
@media (max-width:1023px){ .pti .pti-bar{ display:flex; } body.pti.pti-has-bar{ padding-bottom:80px; } }
.pti .pti-bar__btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; min-width:44px; padding:0 16px;
  border:0; border-radius:var(--pti-r-chip); background:transparent; color:#fff; font:700 var(--pti-fs-ui-sm)/1 var(--pti-font-ui); cursor:pointer; text-decoration:none; }
.pti .pti-bar__btn:hover{ background:rgba(255,255,255,.12); }
.pti .pti-bar__btn--main{ background:var(--pti-blue); }
.pti .pti-bar__btn--main:hover{ background:var(--pti-blue-strong); }
.pti .pti-bar__btn:focus-visible{ outline-color:var(--pti-focus-on-dark); }
.pti .pti-sheet{ position:fixed; inset:0; z-index:300; }
.pti .pti-sheet[hidden]{ display:none; }
.pti .pti-sheet__backdrop{ position:absolute; inset:0; background:rgba(1,24,64,.45); }
.pti .pti-sheet__panel{ position:absolute; left:0; right:0; bottom:0; max-height:78vh; overflow:auto; padding:var(--pti-s4) var(--pti-s5) var(--pti-s6);
  background:#fff; border-radius:16px 16px 0 0; box-shadow:var(--pti-shadow-2); }
.pti .pti-sheet__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--pti-s3); }
.pti .pti-sheet__title{ margin:0; font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui); letter-spacing:.12em; text-transform:uppercase; color:var(--pti-teal-text); }
.pti .pti-sheet__close{ display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--pti-line); border-radius:50%; background:#fff; color:var(--pti-navy); cursor:pointer; }
.pti .pti-sheet__list{ list-style:none; margin:0; padding:0; }
.pti .pti-sheet__list a{ display:flex; align-items:center; min-height:48px; border-bottom:1px solid var(--pti-line); color:var(--pti-ink); text-decoration:none; }
.pti .pti-sheet__list a[aria-current="true"]{ color:var(--pti-navy); font-weight:700; }
html.pti-sheet-open{ overflow:hidden; }
.pti .pti-top{ position:fixed; right:16px; bottom:16px; z-index:140; display:grid; place-items:center; width:48px; height:48px;
  border:1px solid var(--pti-line); border-radius:50%; background:#fff; color:var(--pti-navy); box-shadow:var(--pti-shadow-1); cursor:pointer;
  opacity:0; pointer-events:none; transition:opacity var(--pti-dur) var(--pti-ease); }
.pti .pti-bar.is-on{ transform:translate(-50%,0); }          /* the theme script adds .is-on while the article is in view */
.pti .pti-bar:focus-within{ transform:translate(-50%,0); }
.pti .pti-top.is-on, .pti .pti-top.is-visible{ opacity:1; pointer-events:auto; }
@media (max-width:1023px){ .pti .pti-top{ bottom:84px; } }


/* ------------------------------------------------------------------------------------------
   21. PREVIOUS / NEXT — .pti-pn (learn topics)
   ------------------------------------------------------------------------------------------ */
.pti .pti-pn{ display:grid; grid-template-columns:1fr 1fr; gap:var(--pti-s4); margin:var(--pti-s7) 0 0; }
.pti .ptipg .pti-pn__card, .pti .pti-pn__card{ display:flex; flex-direction:column; gap:6px; min-height:96px; padding:var(--pti-s5);
  background:#fff; border:1px solid var(--pti-line); border-radius:var(--pti-r-card); box-shadow:var(--pti-shadow-1); text-decoration:none;
  transition:transform var(--pti-dur) var(--pti-ease),box-shadow var(--pti-dur) var(--pti-ease),border-color var(--pti-dur) var(--pti-ease); }
.pti .pti-pn__card--next{ text-align:right; align-items:flex-end; }
.pti .ptipg .pti-pn__card:hover, .pti .pti-pn__card:hover{ transform:translateY(-4px); box-shadow:var(--pti-shadow-2); border-color:#CBD8E8; }
.pti .pti-pn__dir{ display:inline-flex; align-items:center; gap:6px; font:700 .75rem/1.3 var(--pti-font-ui); letter-spacing:.1em; text-transform:uppercase; color:var(--pti-teal-text); }
.pti .pti-pn__title{ font:700 1.1875rem/1.3 var(--pti-font-display); color:var(--pti-navy); }
.pti .pti-pn__gap{ display:block; }
@media (max-width:599px){ .pti .pti-pn{ grid-template-columns:1fr; } .pti .pti-pn__gap{ display:none; } }


/* ------------------------------------------------------------------------------------------
   22. FEEDBACK — "Report an error" (no storage, so no "Was this helpful?" — Part 3.5 / G10)
   ------------------------------------------------------------------------------------------ */
.pti .pti-feedback{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--pti-s3);
  margin:var(--pti-s6) 0; padding:var(--pti-s4) var(--pti-s5); border:1px solid var(--pti-line); border-radius:var(--pti-r-card); background:var(--pti-bg); }
.pti .pti-feedback p{ margin:0; font-size:var(--pti-fs-ui-sm); color:var(--pti-muted-strong); }


/* ------------------------------------------------------------------------------------------
   23. FOOTER — restyles the theme footer; one logo only (the wordmark)
   ------------------------------------------------------------------------------------------ */
.pti .pti-footer{ background:var(--pti-navy-deep); color:var(--pti-on-dark-soft); font-family:var(--pti-font-ui); font-size:var(--pti-fs-ui-sm); line-height:1.6;
  padding-top:var(--pti-s8); border-top:4px solid var(--pti-teal); }
.pti .pti-footer a{ color:#fff; text-decoration:none; }
.pti .pti-footer a:hover{ text-decoration:underline; text-underline-offset:3px; }
.pti .pti-footer .pti-wrap{ max-width:calc(var(--pti-container) + 2 * var(--pti-gutter)); }
.pti .pti-footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.25fr; gap:var(--pti-s6) var(--pti-s7); padding-bottom:var(--pti-s7); }
@media (max-width:1023px){ .pti .pti-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:599px){ .pti .pti-footer__grid{ grid-template-columns:1fr; gap:var(--pti-s5); } }
.pti .pti-footer__brand{ display:inline-flex; align-items:center; min-height:44px; margin-bottom:var(--pti-s3); }
.pti .pti-footer__logo{ display:none!important; }        /* one logo only: the wordmark (Part 4 #11) */
.pti .pti-footer__wordmark{ font:700 1.625rem/1.1 var(--pti-font-display); color:#fff; letter-spacing:-.005em; }
.pti .pti-footer__wordmark em{ font-style:normal; color:#9FE3E1; }    /* light teal tint, not the brand teal (teal is never text) */
.pti .pti-footer__blurb{ margin:0 0 var(--pti-s4); max-width:42ch; }
.pti .pti-footer__contact{ margin:0; }
.pti .pti-footer__contact-label{ display:block; font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--pti-on-dark-muted); }
.pti .pti-footer__contact a{ display:inline-flex; align-items:center; min-height:44px; }
.pti .pti-footer__head{ margin:0 0 var(--pti-s3)!important; font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui)!important; letter-spacing:.12em!important;
  text-transform:uppercase; color:var(--pti-on-dark-muted)!important; }
.pti .pti-footer__list{ list-style:none; margin:0; padding:0; }
.pti .pti-footer__list li{ margin:0; }
.pti .pti-footer__list a{ display:flex; align-items:center; min-height:44px; color:var(--pti-on-dark-soft); }
.pti .pti-footer__list a:hover{ color:#fff; }
.pti .pti-footer__care-note{ margin:0 0 var(--pti-s3); }
.pti .pti-footer__col--brand{ min-width:0; }
.pti .pti-footer__col--care{ padding:var(--pti-s5); border:1px solid rgba(255,255,255,.14); border-radius:var(--pti-r-card); background:rgba(255,255,255,.04); align-self:start; }
.pti .pti-footer .pti-footer__coi{ margin:var(--pti-s3) 0 0; font-size:var(--pti-fs-small); color:var(--pti-on-dark-soft); }
.pti .pti-footer__care-link{ display:inline-flex; align-items:center; gap:8px; min-height:44px; font-weight:700; }
.pti .pti-footer__index{ border-top:1px solid rgba(255,255,255,.14); padding-block:var(--pti-s5); }      /* subject index row (Phase C) */
.pti .pti-disclaimer{ border-top:1px solid rgba(255,255,255,.14); padding-block:var(--pti-s5); font-size:var(--pti-fs-small); color:var(--pti-on-dark-soft); }
.pti .pti-disclaimer p{ margin:0; max-width:110ch; }
.pti .pti-disclaimer strong{ color:#fff; }
.pti .pti-colophon{ border-top:1px solid rgba(255,255,255,.14); background:rgba(0,10,40,.25); }
.pti .pti-colophon__inner{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--pti-s2) var(--pti-s5); padding-block:var(--pti-s3); font-size:var(--pti-fs-small); }
.pti .pti-colophon p{ margin:0; display:flex; align-items:center; min-height:44px; color:var(--pti-on-dark-muted); }
.pti .pti-colophon a{ color:var(--pti-on-dark-soft); }
.pti .pti-footer a:focus-visible{ outline-color:var(--pti-focus-on-dark); }


/* ------------------------------------------------------------------------------------------
   24. ONE-OFF PAGE COMPONENTS (profile, team, publications, F-MATS, gallery)
   ------------------------------------------------------------------------------------------ */
.pti .ptipg .ptipg__profile{ display:grid; grid-template-columns:auto 1fr; gap:var(--pti-s6); align-items:start; }
@media (max-width:767px){ .pti .ptipg .ptipg__profile{ grid-template-columns:1fr; } }
.pti .ptipg .ptipg__portrait{ width:140px; height:140px; border-radius:var(--pti-r-card); object-fit:cover; object-position:top center;
  box-shadow:0 0 0 4px #fff,0 0 0 5px var(--pti-line),var(--pti-shadow-1); }
.pti .ptipg .ptipg__mono{ display:grid; place-items:center; width:112px; height:112px; border-radius:var(--pti-r-card);
  background:var(--pti-navy); color:#fff; font:700 2rem/1 var(--pti-font-display); }
.pti .ptipg .ptipg__roles{ display:grid; gap:var(--pti-s3); }
.pti .ptipg .ptipg__role{ flex-direction:row; align-items:flex-start; gap:var(--pti-s4); padding:var(--pti-s4) var(--pti-s5); box-shadow:none; }
.pti .ptipg .ptipg__grouphead{ display:flex; align-items:center; gap:10px; margin:var(--pti-s7) 0 6px; font:700 var(--pti-fs-eyebrow)/1.3 var(--pti-font-ui)!important;
  letter-spacing:.12em!important; text-transform:uppercase; color:var(--pti-teal-text)!important; }
.pti .ptipg .ptipg__grouphead span{ display:inline-grid; place-items:center; min-width:26px; height:22px; padding:0 7px; border-radius:var(--pti-r-chip);
  background:var(--pti-navy); color:#fff; font-size:.75rem; letter-spacing:0; }
.pti .ptipg .ptipg__groupnote{ margin:0 0 4px; font-size:var(--pti-fs-ui-sm); color:var(--pti-muted-strong); }
.pti .ptipg .ptipg__people{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:var(--pti-s4); margin-top:var(--pti-s4); }
.pti .ptipg .ptipg__person{ flex-direction:row; align-items:center; gap:var(--pti-s4); padding:var(--pti-s4); }
.pti .ptipg .ptipg__person img{ width:64px; height:64px; flex:none; border-radius:50%; object-fit:cover; object-position:top center; background:var(--pti-tint-teal); }
.pti .ptipg .ptipg__person b{ display:block; font:700 1.0625rem/1.3 var(--pti-font-display); color:var(--pti-navy); }
.pti .ptipg .ptipg__person em{ display:block; font:500 .8125rem/1.4 var(--pti-font-ui); font-style:normal; color:var(--pti-teal-text); margin:2px 0 4px; }
.pti .ptipg .ptipg__person > div span{ display:block; font-size:var(--pti-fs-small); line-height:1.45; color:var(--pti-muted-strong); }
.pti .ptipg .ptipg__person > div .ptipg__place{ color:var(--pti-muted); }
.pti .ptipg .ptipg__reviewnote{ margin-top:var(--pti-s7); padding:var(--pti-s5); background:var(--pti-bg); border:1px solid var(--pti-line);
  border-left:4px solid var(--pti-navy); border-radius:0 var(--pti-r-card) var(--pti-r-card) 0; }
.pti .ptipg .ptipg__pubitem{ margin:0 0 var(--pti-s3); padding:var(--pti-s4) var(--pti-s5); box-shadow:none; }
.pti .ptipg .ptipg__pubitem::before{ content:none!important; }
.pti .ptipg .ptipg__pubitem p{ margin:8px 0 0; }
.pti .ptipg .ptipg__gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--pti-s4); margin-top:var(--pti-s4); }
@media (max-width:1023px){ .pti .ptipg .ptipg__gallery{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px){ .pti .ptipg .ptipg__gallery{ grid-template-columns:repeat(2,1fr); gap:var(--pti-s3); } }
.pti .ptipg .ptipg__gfig{ margin:0; overflow:hidden; background:#fff; border:1px solid var(--pti-line); border-radius:var(--pti-r-card); box-shadow:var(--pti-shadow-1); }
.pti .ptipg .ptipg__gfig img{ display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; object-position:center top; }   /* fixed ratio: no layout jump */
.pti .ptipg .ptipg__gfig figcaption{ padding:10px 14px 12px; font-size:var(--pti-fs-small); line-height:1.45; color:var(--pti-ink); border-top:1px solid var(--pti-line); }
.pti .ptipg .ptipg__gfig--wide{ grid-column:1 / -1; }
.pti .ptipg .ptipg__gfig--wide img{ aspect-ratio:auto; }
.pti .ptipg .ptipg__gfig--doc img{ object-fit:contain; background:var(--pti-ink); }
.pti .ptipg .ptipg__stages{ display:grid; gap:var(--pti-s3); max-width:920px; margin:0 auto; }
.pti .ptipg .ptipg__stage{ display:grid; grid-template-columns:72px 1fr; column-gap:var(--pti-s5); padding:var(--pti-s5); background:#fff;
  border:1px solid var(--pti-line); border-radius:var(--pti-r-card); }
.pti .ptipg .ptipg__stage h3, .pti .ptipg .ptipg__stage p{ grid-column:2; }
.pti .ptipg .ptipg__stage p{ margin:0; }
.pti .ptipg .ptipg__stageletter{ grid-column:1; grid-row:1 / span 2; font:700 3.25rem/1 var(--pti-font-display)!important; color:var(--pti-navy)!important;
  background:none!important; -webkit-text-fill-color:currentColor; text-align:center; letter-spacing:0!important; }
@media (max-width:599px){ .pti .ptipg .ptipg__stage{ display:block; } .pti .ptipg .ptipg__stageletter{ text-align:left; font-size:2.5rem!important; margin-bottom:6px; } }
.pti .ptipg .ptipg__loopgrid{ align-items:center; }
.pti .ptipg .ptipg__loopfig{ margin:0; padding:var(--pti-s4); background:var(--pti-bg); border:1px solid var(--pti-line); border-radius:var(--pti-r-card); }
.pti .ptipg .ptipg__loopfig svg{ display:block; width:100%; height:auto; }
.pti .ptipg .ptipg__ph, .pti .ptipg .ptipg__phbox{ border:1.5px dashed var(--pti-line-strong); background:var(--pti-bg); border-radius:var(--pti-r-card); }
.pti .ptipg .ptipg__phbrief{ margin:0; font-size:var(--pti-fs-small); line-height:1.65; color:var(--pti-muted-strong); }
.pti .ptipg .ptipg__phlabel{ font:700 .75rem/1.3 var(--pti-font-ui); letter-spacing:.1em; text-transform:uppercase; color:var(--pti-muted); }
.pti .ptipg .ptipg__bloom{ font-size:var(--pti-fs-small); color:var(--pti-muted-strong); }
.pti .ptipg .ptipg__x{ color:var(--pti-red); }


/* ------------------------------------------------------------------------------------------
   25. HOMEPAGE BRIDGE — .ptihome (until the Phase C homepage replaces it)
       The homepage carries its own inline <style> with tokens on .ptihome; they are re-pointed
       here at higher specificity so the old gold/Poppins look becomes the 2.0 system.
   ------------------------------------------------------------------------------------------ */
.pti .ptihome.ptihome{
  --navy-deep:#012A6B; --navy:#013584; --teal:#0EAEAB; --teal-lt:#0EAEAB; --teal-text:#086A68;
  --gold:#2563EB; --gold-lt:#2563EB;
  --ink:#1E293B; --body:#1E293B; --muted:#64748B; --line:#E2E8F0; --warm:#F7FAFC; --cool:#F7FAFC; --white:#fff;
  --r:12px; --wrap:1200px;
  --fd:'Playfair Display',Georgia,serif; --fb:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-family:var(--pti-font-ui); color:var(--pti-ink); font-size:var(--pti-fs-body);
}
.pti .ptihome.ptihome h1, .pti .ptihome.ptihome h2{ font-family:var(--pti-font-display); font-weight:700; letter-spacing:-.01em; color:var(--pti-navy); }
.pti .ptihome.ptihome h3{ font-family:var(--pti-font-ui); font-weight:700; letter-spacing:0; color:var(--pti-ink); }
.pti .ptihome.ptihome .ptihome__hero h1{ font-size:var(--pti-fs-display); line-height:var(--pti-lh-tight); color:#fff; }
.pti .ptihome.ptihome .ptihome__hero h1 em{ background:none; -webkit-text-fill-color:currentColor; color:#fff; font-style:italic; }
.pti .ptihome.ptihome .ptihome__hero, .pti .ptihome.ptihome .ptihome__sec--navy{ background:var(--pti-grad-hero)!important; }
.pti .ptihome.ptihome .ptihome__hero h2, .pti .ptihome.ptihome .ptihome__hero h3,
.pti .ptihome.ptihome .ptihome__sec--navy h2, .pti .ptihome.ptihome .ptihome__sec--navy h3{ color:#fff; }
.pti .ptihome.ptihome .ptihome__eyebrow{ font-family:var(--pti-font-ui); color:var(--pti-eyebrow); }
.pti .ptihome.ptihome .ptihome__lede{ color:var(--pti-on-dark-soft); }
.pti .ptihome.ptihome .ptihome__chip, .pti .ptihome.ptihome .ptihome__std span, .pti .ptihome.ptihome .ptihome__std b,
.pti .ptihome.ptihome .ptihome__spectag, .pti .ptihome.ptihome .ptihome__role, .pti .ptihome.ptihome .ptihome__contract b,
.pti .ptihome.ptihome .ptihome__mono, .pti .ptihome.ptihome .ptihome__more, .pti .ptihome.ptihome .ptihome__eyebrow{ font-family:var(--pti-font-ui); }


/* ------------------------------------------------------------------------------------------
   26. MOTION — Part 8. Cards lift 4 px (200 ms); sections fade up once, only when the theme
       script has marked <html class="pti-js"> — content is visible if scripts fail.
   ------------------------------------------------------------------------------------------ */
.pti-js .pti .pti-reveal{ opacity:0; transform:translateY(12px); transition:opacity var(--pti-dur-slow) var(--pti-ease),transform var(--pti-dur-slow) var(--pti-ease); }
.pti-js .pti .pti-reveal.is-in{ opacity:1; transform:none; }
@media (scripting:none){ .pti .pti-reveal{ opacity:1!important; transform:none!important; } }


/* ------------------------------------------------------------------------------------------
   27. REDUCED MOTION — everything appears still (Part 8, G7)
   ------------------------------------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  html:has(body.pti){ scroll-behavior:auto!important; }
  .pti *, .pti *::before, .pti *::after{
    animation-duration:1ms!important; animation-iteration-count:1!important; animation-delay:0s!important;
    transition-duration:1ms!important; transition-delay:0s!important; scroll-behavior:auto!important;
  }
  .pti .pti-reveal, .pti-js .pti .pti-reveal{ opacity:1!important; transform:none!important; }
  .pti a.pti-card:hover, .pti .pti-card--link:hover, .pti .ptipg a.ptipg__card:hover, .pti .ptipg a.ptipg__idx:hover,
  .pti .ptipg .ptipg__subj:hover, .pti .ptipg .ptipg__person:hover, .pti .pti-pn__card:hover, .pti .ptipg .ptipg__gfig:hover{ transform:none!important; }
  .pti .pti-btn:hover svg, .pti .pti-btn--text:hover svg, .pti .ptipg .ptipg__btn:hover svg,
  .pti a.ptipg__card:hover .ptipg__more svg, .pti .pti-card:hover .pti-btn--text svg{ transform:none!important; }
  .pti .pti-header.is-hidden{ transform:none!important; }            /* header stays put */
  .pti .pti-search--hero .pti-search__form:focus-within{ max-width:640px; }
  .pti .pti-progress span{ transition:none!important; }
  .pti svg *{ animation:none!important; }
}


/* ------------------------------------------------------------------------------------------
   28. PRINT — the print tool prints the article, not the site chrome
   ------------------------------------------------------------------------------------------ */
@media print{
  .pti .pti-header, .pti .pti-footer, .pti .pti-rail, .pti .pti-libnav, .pti .pti-toc, .pti .pti-bar, .pti .pti-sheet,
  .pti .pti-top, .pti .pti-progress, .pti .pti-mega__panel, .pti .pti-search, .pti .ptipg__careact{ display:none!important; }
  .pti .ptipg .ptipg__hero{ background:none!important; color:#000; padding:0 0 12px; border-bottom:2px solid #000; }
  .pti .ptipg .ptipg__hero::before, .pti .ptipg .ptipg__hero::after{ content:none; }
  .pti .ptipg .ptipg__hero h1, .pti .ptipg .ptipg__hero p, .pti .ptipg .ptipg__hero b, .pti .ptipg .ptipg__hero .pti-trust dd,
  .pti .ptipg .ptipg__hero .pti-trust dt, .pti .ptipg .ptipg__std span, .pti .ptipg .ptipg__eyebrow{ color:#000!important; }
  .pti .ptipg .ptipg__w.pti-has-toc{ display:block; }
  .pti .ptipg__prose{ max-width:none; }
  .pti .ptipg a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:.8em; word-break:break-all; }
  .pti .ptipg .ptipg__faq details > *{ display:block!important; }
  .pti .ptipg .ptipg__tablewrap{ overflow:visible; }
  .pti .ptipg .ptipg__fig, .pti .ptipg .ptipg__tablewrap, .pti .ptipg .ptipg__note, .pti .pti-callout{ break-inside:avoid; }
  .pti .pti-card, .pti .ptipg .ptipg__card{ box-shadow:none!important; }
}

/* ------------------------------------------------------------------------------------------
   29. FORCED COLOURS (Windows High Contrast) — keep boundaries and focus visible
   ------------------------------------------------------------------------------------------ */
@media (forced-colors:active){
  .pti .pti-card, .pti .pti-callout, .pti .ptipg .ptipg__note, .pti .ptipg .ptipg__evi, .pti .pti-trust{ border:1px solid CanvasText!important; }
  .pti a:focus-visible, .pti button:focus-visible, .pti summary:focus-visible{ outline:2px solid Highlight!important; }
  .pti .ptipg .ptipg__evi h3::before{ background:CanvasText; }
}

/* ---- Live-preview fixes (15 Oct 2026) ----------------------------------- */
/* Header search: below 1180 px the menu leaves no room for the word "Search";
   keep the icon and the accessible name, hide the visible word. */
@media (max-width:1179px){
  .pti .pti-search__label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .pti .pti-search__toggle{ padding:0; justify-content:center; }
}
.pti .pti-search__toggle:focus{ background:var(--pti-white); color:var(--pti-navy); }
