/* ============================================================
   Picnic — phone layer (loaded last on every page)
   Only applies at phone widths. Page-specific fixes are namespaced
   by the page's own classes so they're inert elsewhere.
   ============================================================ */
.dsig-tabs { display: none; }
.olv-mscore { display: none; }
.ag-loop-v { display: none; }
@media (max-width: 600px) {
  /* Homepage domain checker: toggle between the two signal groups instead of stacking */
  .dsig-tabs { display: flex; gap: 4px; padding: 4px; background: var(--mist, #F7F5F0); border: 1px solid var(--mist-line, #E4E1DA); border-radius: 999px; margin: 0 0 10px; }
  .dsig-tabs button { flex: 1; font-family: var(--font-sans); font-weight: 700; font-size: 13px; color: var(--ink-2, #595959); background: transparent; border: 0; border-radius: 999px; padding: 10px 12px; min-height: 40px; cursor: pointer; transition: background .15s ease, color .15s ease; }
  .dsig-tabs button[aria-selected="true"] { background: #fff; color: var(--ink, #303030); box-shadow: 0 1px 3px rgba(48,48,48,.12); }
  .dsig-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .dsig-grid[data-show="0"] > .dsig-card:nth-child(2), .dsig-grid[data-show="1"] > .dsig-card:nth-child(1) { display: none; }

  /* grids kept at desktop column count by mobile-cols.js: items scale down together */
  .m-cols > * { zoom: var(--mz, 1); min-width: 0; }
  html, body { overflow-x: clip; }
  img, svg, video { max-width: 100%; }

  /* minimum legible label size on phones (diagram-internal labels excluded) */
  .tag, .req, .opt, .lbl, .dt-lab, .ic-head, .ic-lab, .cc-label, .pp-tag, .rc-tag, .rc-kind, .tags-lbl, .zlab, .ds-meta, .thumb-meta-sep, .dl-card-n, .er-con-badge, .bl-foot-lab, .ag-loop-lab, .g-lab, .spectrum-chart .sc-top .r { font-size: 11px !important; }

  /* tap targets */
  .btn { min-height: 40px; }

  /* PIQ hub card: logo tucks inside the card instead of hanging off the right edge */
  .hub-method .hm-logo { right: 18px; transform: none; }

  /* PIQ Methodology: spectrum heading + chart stack */
  .spectrum-top { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; }
  .spectrum-chart { padding: 22px 18px 20px; }
  .spectrum-chart .sc-top { flex-wrap: wrap; gap: 4px 12px; }

  /* Creative Formats / PIQ for Display: format fan fits the screen */
  .cf-fan { height: 300px !important; }
  .cf-fan img { width: 150px !important; }
  .cf-fan .f-l { transform: translate(-50%,-50%) translateX(-92px) rotate(-8deg) scale(.86) !important; }
  .cf-fan .f-r { transform: translate(-50%,-50%) translateX(92px) rotate(8deg) scale(.86) !important; }
  .cf-media, .cf-row, .md-grid, .md-end { overflow: hidden; }

  /* Homepage hero: stripe enters left low, S-curve mid-screen, exits right; tighter headline → CTA */
  .hero-emblems .hero-stripes { width: 1200px !important; left: -360px !important; right: auto !important; top: 130px !important; bottom: auto !important; }
  .hero-grid .hero-actions { margin-top: 18px !important; }
  .hero-grid .lead { margin-top: 16px !important; margin-bottom: 0 !important; }

  /* Homepage pillars: 3 across, scaled */
  .pillars-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 10px !important; }
  .pillars-grid > * { zoom: .66; min-width: 0; }

  /* Homepage PIQ laptop: no clipped panel/shadow box behind the image */
  .piq-right { overflow: visible !important; background: transparent !important; }
  .piq-right img { filter: none !important; box-shadow: none !important; background: transparent !important; }

  /* Homepage How PIQ works: stacked in order — heading → steps → laptop */
  .piq { padding: 44px 0 48px !important; }
  .piq .piq-two { display: flex !important; flex-direction: column; align-items: stretch !important; gap: 0 !important; }
  .piq .piq-left, .piq .piq-right { zoom: 1 !important; }
  .piq .piq-left { display: contents; }
  .piq .piq-two .head { order: 1; margin: 0 0 22px !important; }
  .piq .piq-two .head .h2 { font-size: 34px !important; }
  .piq .piq-two .piq-right { order: 3; margin: 24px -40px 0 0 !important; min-height: 0 !important; height: auto !important; }
  .piq .piq-right img { position: static !important; transform: none !important; width: 100% !important; height: auto !important; max-width: none !important; }
  .piq .piq-steps { order: 2; }
  .piq .piq-steps .ps-row { grid-template-columns: 40px minmax(0, 1fr) !important; gap: 14px !important; padding: 16px 0 !important; }
  .piq .piq-steps .ps-icon { width: 40px !important; height: 40px !important; }
  .piq .piq-steps .ps-icon b { font-size: 18px !important; }
  .piq .piq-steps h3 { font-size: 17px !important; line-height: 1.2 !important; margin: 2px 0 4px !important; }
  .piq .piq-steps .ps-desc { font-size: 14.5px !important; line-height: 1.5 !important; }

  /* Homepage domain checker: toggle between the two signal groups instead of stacking */
  .dsig-tabs { display: flex; gap: 4px; padding: 4px; background: var(--mist, #F7F5F0); border: 1px solid var(--mist-line, #E4E1DA); border-radius: 999px; margin: 0 0 10px; }
  .dsig-tabs button { flex: 1; font-family: var(--font-sans); font-weight: 700; font-size: 13px; color: var(--ink-2, #595959); background: transparent; border: 0; border-radius: 999px; padding: 10px 12px; min-height: 40px; cursor: pointer; transition: background .15s ease, color .15s ease; }
  .dsig-tabs button[aria-selected="true"] { background: #fff; color: var(--ink, #303030); box-shadow: 0 1px 3px rgba(48,48,48,.12); }
  .dsig-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .dsig-grid[data-show="0"] > .dsig-card:nth-child(2), .dsig-grid[data-show="1"] > .dsig-card:nth-child(1) { display: none; }

  /* grids kept at desktop column count by mobile-cols.js: items scale down together */
  .m-cols > * { zoom: var(--mz, 1); min-width: 0; }
  html, body { overflow-x: clip; }
  img, svg, video { max-width: 100%; }

  /* minimum legible label size on phones (diagram-internal labels excluded) */
  .tag, .req, .opt, .lbl, .dt-lab, .ic-head, .ic-lab, .cc-label, .pp-tag, .rc-tag, .rc-kind, .tags-lbl, .zlab, .ds-meta, .thumb-meta-sep, .dl-card-n, .er-con-badge, .bl-foot-lab, .ag-loop-lab, .g-lab, .spectrum-chart .sc-top .r { font-size: 11px !important; }

  /* tap targets */
  .btn { min-height: 40px; }

  /* PIQ hub card: logo tucks inside the card instead of hanging off the right edge */
  .hub-method .hm-logo { right: 18px; transform: none; }

  /* PIQ Methodology: spectrum heading + chart stack */
  .spectrum-top { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; }
  .spectrum-chart { padding: 22px 18px 20px; }
  .spectrum-chart .sc-top { flex-wrap: wrap; gap: 4px 12px; }

  /* Creative Formats / PIQ for Display: format fan fits the screen */
  .cf-fan { height: 300px !important; }
  .cf-fan img { width: 150px !important; }
  .cf-fan .f-l { transform: translate(-50%,-50%) translateX(-92px) rotate(-8deg) scale(.86) !important; }
  .cf-fan .f-r { transform: translate(-50%,-50%) translateX(92px) rotate(8deg) scale(.86) !important; }
  .cf-media, .cf-row, .md-grid, .md-end { overflow: hidden; }

  /* Homepage hero: stripe enters left low, S-curve mid-screen, exits right; tighter headline → CTA */
  .hero-emblems .hero-stripes { width: 1200px !important; left: -360px !important; right: auto !important; top: 130px !important; bottom: auto !important; }
  .hero-grid .hero-actions { margin-top: 18px !important; }
  .hero-grid .lead { margin-top: 16px !important; margin-bottom: 0 !important; }

  /* Homepage pillars: 3 across, scaled */
  .pillars-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 10px !important; }
  .pillars-grid > * { zoom: .66; min-width: 0; }

  /* Homepage PIQ laptop: no clipped panel/shadow box behind the image */
  .piq-right { overflow: visible !important; background: transparent !important; }
  .piq-right img { filter: none !important; box-shadow: none !important; background: transparent !important; }

  /* Homepage domain checker: intro stacks above; the checker tool itself fits one screen */
  .dcheck { padding: 28px 0 !important; }
  .dcheck .dcheck-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; }
  .dcheck .dcheck-intro, .dcheck .dwidget, .dcheck .dcheck-cta { grid-column: 1 !important; }
  .dcheck .dwidget { zoom: .78; max-height: calc((100svh - 40px) / .78); }
  .dcheck .dcheck-cta { margin-top: 0 !important; justify-content: flex-start; }
  .dcheck .dcheck-icon { width: 60px !important; height: 60px !important; margin-bottom: 4px !important; }

  /* ── Homepage phone polish ── */
  /* Proven outcomes: compact 2×2 */
  .objectives .obj-card { min-height: 0 !important; padding: 18px 16px 42px !important; gap: 8px !important; }
  .objectives .obj-card .h3 { font-size: 18px !important; }
  .objectives .obj-card .body { font-size: 13.5px !important; line-height: 1.45 !important; }
  .objectives .obj-card .obj-link { right: 16px !important; bottom: 14px !important; }

  /* Case study card: story then results, tighter, stats stay 3 across */
  .case { padding: 40px 0 !important; }
  .case .case-card { grid-template-columns: minmax(0, 1fr) !important; padding: 26px 20px 20px !important; gap: 22px !important; border-radius: 24px 0 0 0; }
  .case .case-story { gap: 12px !important; }
  .case .case-claim { font-size: 32px !important; line-height: 1.08 !important; margin: 0 !important; }
  .case .case-claim .cc-num { font-size: 1em !important; }
  .case .case-cta { align-self: flex-start; }
  .case .case-results .cr-media { min-height: 0 !important; aspect-ratio: 16 / 10; }
  .case .case-results .cr-label { padding: 14px 16px 0 !important; }
  .case .case-results .cr-sub { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; padding: 10px 16px 18px !important; }
  .case .case-results .cr-stat .cr-v2 { font-size: 26px !important; }
  .case .case-results .cr-stat .cr-l2 { font-size: 11px !important; line-height: 1.35 !important; margin-top: 6px !important; }

  /* Testimonials: swipeable carousel, quote mark fully visible */
  .quotes-band { min-height: 0 !important; padding: 48px 0 44px !important; }
  .quotes-two { gap: 22px !important; }
  .quotes-lead { gap: 12px !important; }
  .quotes-qmark { font-size: 120px !important; line-height: 1 !important; height: 62px !important; margin-top: 6px !important; overflow: visible !important; }
  .quotes-lead .h2 { font-size: 32px !important; max-width: none !important; }
  .quotes-prog { display: flex !important; max-width: 200px; margin-top: 4px; }
  .quotes-viewport { overflow-x: auto !important; overflow-y: visible !important; height: auto !important; margin: 0 -20px !important; padding: 0 20px 6px !important; scroll-snap-type: x mandatory; scroll-padding: 0 20px; -webkit-overflow-scrolling: touch; scrollbar-width: none; -webkit-mask-image: none !important; mask-image: none !important; }
  .quotes-viewport::-webkit-scrollbar { display: none; }
  .quotes-track { flex-direction: row !important; gap: 12px !important; transform: none !important; width: max-content; }
  .quotes-track .qcard { flex: 0 0 calc(100vw - 64px) !important; width: calc(100vw - 64px); scroll-snap-align: start; opacity: 1 !important; padding: 26px 22px 22px !important; }
  .quotes-track .qcard .qtext { font-size: 17px !important; line-height: 1.5 !important; }
  .quotes-next { display: none !important; }

  /* Activate with PIQ: swipeable cards */
  .doors { padding: 44px 0 !important; }
  .doors .door-row { display: flex !important; grid-template-columns: none !important; gap: 12px !important; margin: 22px -20px 0 !important; padding: 0 20px 6px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 20px; scrollbar-width: none; }
  .doors .door-row::-webkit-scrollbar { display: none; }
  .doors .door { flex: 0 0 78%; scroll-snap-align: start; padding: 26px 22px 22px !important; min-height: 0 !important; }
  .doors .door h3 { font-size: 24px !important; }

  /* Company hero: no stretched band, photo sits right under the copy */
  .fit-screen > header.co-hero { flex: 0 0 auto !important; justify-content: flex-start !important; }
  .co-hero { padding-top: 20px !important; padding-bottom: 24px !important; }
  .co-hero .head-row { gap: 14px !important; }
  .co-hero .hero-photo { aspect-ratio: auto !important; height: auto !important; min-height: 0 !important; max-width: none !important; }
  .co-hero .hero-photo img { height: auto !important; object-fit: contain !important; }

  /* Company founder: Matt's photo above the quote */
  .founder .founder-grid { display: flex !important; flex-direction: column; gap: 20px !important; }
  .founder .founder-photo { order: -1; zoom: 1 !important; max-width: 260px; }
  .founder .founder-text { zoom: 1 !important; }

  /* Form CTAs: true pills, centred label, full width on phones */
  form button[type="submit"], .cv-submit, form .btn { border-radius: 999px !important; display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 11px 22px !important; font-size: 12px !important; width: 100%; max-width: 100%; box-sizing: border-box; align-self: stretch !important; white-space: normal; text-align: center; }

  /* Careers perks: swipeable cards */
  .pa-section .ben-grid { display: flex !important; grid-template-columns: none !important; gap: 12px !important; margin: 0 -20px !important; padding: 0 20px 6px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 20px; scrollbar-width: none; }
  .pa-section .ben-grid::-webkit-scrollbar { display: none; }
  .pa-section .ben-card { flex: 0 0 82%; scroll-snap-align: start; zoom: 1 !important; padding: 22px 20px !important; }
  .pa-section .ben-card ul { font-size: 14.5px; }
  .pa-section .benefits-head { margin-bottom: 18px !important; }

  /* Careers awards: compact band, award logos in one row */
  .award-band { padding: 36px 0 !important; }
  .award-band .ab-inner { gap: 20px !important; }
  .award-band .ab-figure img { max-width: 180px !important; }
  .award-band .ab-copy .eyebrow, .award-band .ab-copy .h2 { margin-bottom: 12px !important; }
  .award-band .ab-copy .body { margin-bottom: 18px !important; font-size: 15.5px !important; }
  .award-band .ab-logos { margin-top: 20px !important; padding-top: 16px !important; gap: 10px !important; }
  .award-band .ab-logos-row { gap: 18px !important; flex-wrap: nowrap !important; }
  .award-band .ab-logos-row img, .award-band .ab-logos-row img[alt^="FT 1000"] { height: 72px !important; width: auto; max-width: 33%; object-fit: contain; }
  .award-band .ab-logos-row img[alt^="FT 1000"] { height: 88px !important; }

  /* Get in touch routes: stacked full-width rows */
  .gt-routes { padding: 36px 0 !important; }
  .gt-routes .gt-route-grid { display: flex !important; flex-direction: column; gap: 12px !important; }
  .gt-routes .gt-route { zoom: 1 !important; width: 100%; padding: 20px !important; }

  /* Book a Demo: headline → form → agenda → dashboard; form is the first thing you can act on */
  #book.ihc-hero { padding: 18px 0 32px !important; min-height: 0 !important; }
  #book .hero-emblem { display: none !important; }
  #book .hero-grid { display: flex !important; flex-direction: column; gap: 0 !important; align-items: stretch !important; text-align: left !important; }
  #book .hero-grid > .copy { display: contents !important; }
  #book .bd-top { order: 1; margin-bottom: 10px; }
  #book .h1 { order: 2; font-size: 38px !important; line-height: 1.05 !important; margin: 0 0 10px !important; }
  #book .copy > p { order: 3; font-size: 15.5px !important; margin: 0 0 18px !important; }
  #book .ihc-form-card { order: 4; zoom: 1 !important; width: 100% !important; max-width: 100% !important; align-self: stretch !important; box-sizing: border-box; margin: 0 0 24px !important; padding: 22px 18px !important; }
  #book .field-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 10px !important; }
  #book .ihc-form input, #book .ihc-form select, #book .slot-trigger { font-size: 16px !important; }
  #book .bd-agenda { order: 5; margin: 0 0 20px !important; }
  #book .hero-dash { order: 6; display: block !important; width: 100% !important; max-width: none !important; height: auto !important; margin: 0 !important; }

  /* PIQ Methodology How PIQ works: steps stack in order */
  .howbuilt .flow-grid, .piq-flow .flow-grid { display: flex !important; flex-direction: column; gap: 14px !important; }
  .howbuilt .flow-grid > *, .piq-flow .flow-grid > * { zoom: 1 !important; }

  /* PIQ Methodology signal library: toggle between the two signal groups */
  .sig-library .lib-tabs { margin: 0 0 14px; }
  .sig-library .lib-grid { display: block !important; }
  .sig-library .lib-grid > .lib-col { zoom: 1 !important; }
  .sig-library .lib-grid[data-show="0"] > .lib-col:nth-of-type(2), .sig-library .lib-grid[data-show="1"] > .lib-col:nth-of-type(1) { display: none !important; }

  /* toggled panels start hidden, so scroll-reveal never fires on them: always show */
  .sig-library .lib-grid > .lib-col, .dsig-grid > .dsig-card { opacity: 1 !important; transform: none !important; }

  /* PIQ signal modules: 2 columns, first 4 signals only */
  .olv-sig-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .olv-sig-grid > .olv-sig { zoom: 1 !important; padding: 16px 14px !important; gap: 6px !important; }
  .olv-sig-grid > .olv-sig:nth-child(n+5) { display: none !important; }
  .olv-sig-grid > .olv-sig h4, .olv-sig-grid > .olv-sig h3 { font-size: 15px !important; line-height: 1.2 !important; }
  .olv-sig-grid > .olv-sig p { font-size: 13px !important; line-height: 1.45 !important; }
  .olv-sig-grid > .olv-sig .si, .olv-sig-grid > .olv-sig .si img { width: 34px !important; height: 34px !important; }

  /* ── Heroes: nothing wider than the screen, consistent headline scale, tight padding ── */
  .olv-hero .grid > *, .md-hero .md-grid > *, .olv-hero-copy, .olv-contrast, .md-copy, .er-hero-vis, .er-console { max-width: 100% !important; min-width: 0 !important; box-sizing: border-box; }
  .olv-hero .grid, .md-hero .md-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .olv-hero .h1, .olv-hero h1, .md-hero h1, .sig-hero h1, .dl-hero h1, .ihc-hero h1, .rd-hero h1, .ms-hero h1, .b-hero h1, .r-hero h1, .c-hero h1, .gt-hero h1, .co-hero h1, .cs-hero h1, .a-hero h1 { font-size: clamp(32px, 9.4vw, 40px) !important; line-height: 1.06 !important; max-width: none !important; text-wrap: balance; }
  .olv-hero, .md-hero, .sig-hero, .dl-hero, .ihc-hero, .rd-hero { padding-top: 22px !important; padding-bottom: 32px !important; min-height: 0 !important; }
  .olv-hero .lead, .md-hero .md-lead, .sig-hero .sig-lead, .dl-hero .dl-lead, .rd-hero .head-lead { font-size: 16px !important; line-height: 1.5 !important; }

  /* buttons and hero headlines may wrap on phones rather than spill off-screen */
  .btn { max-width: 100%; white-space: normal !important; text-align: center; }
  .olv-hero h1, .md-hero h1, .md-hero h1 *, .olv-hero h1 * { white-space: normal !important; overflow-wrap: anywhere; }
  .md-hero h1 { font-size: clamp(30px, 8.6vw, 36px) !important; }

  /* Objectives hub: heading → objective cards → methodology card */
  .hub > .container { display: flex; flex-direction: column; }
  .hub .hub-top { display: contents !important; }
  .hub .hub-head { order: 1; margin-bottom: 20px; }
  .hub .hub-grid { order: 2; }
  .hub .hub-method { order: 3; margin-top: 20px !important; }

  /* End-of-page CTAs: copy → image → button */
  .cf-cta .cf-cta-grid { display: flex !important; flex-direction: column; gap: 0 !important; }
  .cf-cta .cf-cta-copy { display: contents !important; }
  .cf-cta .cf-cta-copy > * { order: 1; }
  .cf-cta .cf-cta-media { order: 2; margin: 18px 0 !important; }
  .cf-cta .cf-cta-copy > .cf-cta-link { order: 3; align-self: flex-start; }
  .sig-video .sv-grid, .ms-explore .ms-explore-grid { display: flex !important; flex-direction: column; gap: 18px !important; }
  .sig-video .sv-card, .ms-explore .mse-card { display: flex !important; flex-direction: column; gap: 16px; zoom: 1 !important; }
  .sig-video .sv-card .btn, .ms-explore .mse-card .btn { order: 2; align-self: stretch; }

  /* PIQ channel heroes (Display / OLV / YouTube): first screen is headline + CTA, proof card follows */
  .olv-hero { padding: 0 0 36px !important; }
  .olv-hero .grid { gap: 0 !important; }
  .olv-hero .olv-hero-copy { display: flex !important; flex-direction: column; padding: 24px 0 28px; box-sizing: border-box; }
  .olv-hero .olv-hero-ico { width: 64px !important; height: 64px !important; margin-bottom: 18px !important; }
  .olv-hero .olv-hero-ico img { width: 64px !important; height: 64px !important; }
  .olv-hero h1 { font-size: clamp(44px, 12.4vw, 52px) !important; line-height: 1.02 !important; letter-spacing: -0.02em !important; margin: 0 !important; }
  .olv-hero .lead { font-size: 17px !important; line-height: 1.5 !important; margin: 18px 0 0 !important; }
  .olv-hero .actions { margin-top: 22px !important; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px; }
  .olv-hero .olv-contrast { margin-top: 0 !important; }
  .olv-hero .olv-contrast .cc-body { padding: 18px 18px 14px !important; }
  .olv-hero .olv-contrast .cc-chips { flex-wrap: wrap; gap: 6px !important; }
  .olv-hero .olv-contrast .cc-row { padding: 6px 0 !important; }
  .olv-hero .olv-contrast .cc-row .rt { font-size: 14px !important; }
  .olv-hero .olv-contrast .cc-score .v { font-size: 44px !important; }

  /* section headings never cut off */
  h2, .h2, .olv-sec-head h2 { white-space: normal !important; max-width: 100% !important; overflow-wrap: break-word; }
  h2 br, .olv-sec-head h2 br { display: none; }

  /* signal cards: example values stay inside the card */
  .olv-sig .sh { flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; }
  .olv-sig .sn, .olv-sig .sv { min-width: 0; max-width: 100%; white-space: normal !important; overflow-wrap: anywhere; }

  /* YouTube 1–5 steps: stacked rows */
  .yt-steps { grid-template-columns: minmax(0, 1fr) !important; }
  .yt-steps .yt-step { zoom: 1 !important; padding: 18px 0 !important; display: grid !important; grid-template-columns: 52px minmax(0, 1fr) !important; grid-template-rows: auto auto auto !important; column-gap: 16px !important; row-gap: 4px !important; align-items: start !important; text-align: left !important; border-left: 0 !important; }
  .yt-steps .yt-step + .yt-step { border-top: 1px solid var(--mist-line) !important; }
  .yt-steps .yt-step:hover { background: transparent; }
  .yt-steps .yt-step .step-ico { grid-column: 1; grid-row: 1 / span 3; width: 52px !important; height: 52px !important; }
  .yt-steps .yt-step .sn { grid-column: 2; grid-row: 1; font-size: 22px !important; line-height: 1 !important; margin: 0 !important; }
  .yt-steps .yt-step h4 { grid-column: 2; grid-row: 2; font-size: 16px !important; margin: 2px 0 0 !important; }
  .yt-steps .yt-step p { grid-column: 2; grid-row: 3; font-size: 14px !important; }
  .yt-steps .yt-step h4 br { display: none; }

  /* Free Domain Check: app sidebar becomes a slim tab strip; checker fills the screen width */
  .fdc-shell { display: block !important; }
  .fdc-shell .piq-side { position: static !important; width: auto !important; height: auto !important; min-height: 0 !important; padding: 10px 16px !important; border-right: 0 !important; border-bottom: 1px solid var(--line); background: var(--mist) !important; overflow-x: auto; scrollbar-width: none; }
  .fdc-shell .piq-side::-webkit-scrollbar { display: none; }
  .fdc-shell .ps-brand, .fdc-shell .ps-foot, .fdc-shell .ps-nav > .ps-item:not(.is-active):not(.is-link), .fdc-shell .ps-nav > :not(.ps-item) { display: none !important; }
  .fdc-shell .ps-nav { flex-direction: row !important; gap: 6px !important; }
  .fdc-shell .ps-item { white-space: nowrap; padding: 8px 12px !important; border-radius: 999px !important; font-size: 13px !important; min-height: 36px; display: inline-flex !important; align-items: center; gap: 6px; }
  .fdc-shell .ps-item .ps-ic { width: 18px; height: 18px; }
  .fdc-shell .ps-item.is-active { background: #fff !important; }
  .tryit { padding: 0 !important; }
  .tryit > .container { padding: 0 !important; }
  .tryit-card { padding: 18px 16px 28px !important; min-height: 0 !important; }
  .tryit-bar { gap: 14px !important; margin: 16px 0 !important; }
  .tryit-controls { gap: 8px !important; }
  .tryit-controls .tf-group, .tryit-controls .ti-seg { width: 100%; }
  .tryit-controls .ti-seg { display: flex !important; }
  .tryit-controls .ti-seg-btn { flex: 1; justify-content: center; min-height: 40px; }
  .tryit-bar .dsearch input { font-size: 16px !important; }
  .tryit-scorehead { padding: 14px 16px !important; gap: 12px !important; }
  .tryit-scorehead .th-score { font-size: 52px !important; }
  .tr-metrics .tm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  .tryit-nf { padding: 32px 18px !important; }
  .tryit-nf-chips { flex-wrap: wrap; justify-content: center; }

  /* domain search: field on its own line, button full width underneath */
  .dsearch-row { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
  .dsearch-input-wrap { flex: 0 0 auto !important; width: 100%; }
  .dsearch-row .btn { width: 100% !important; flex: 0 0 auto !important; }

  /* CTAs and pills: phone scale */
  .btn, .btn.lg, a.btn, .case-cta, .cf-cta-link.btn { padding: 10px 18px !important; font-size: 12px !important; letter-spacing: .06em !important; line-height: 1.2 !important; gap: 6px; }
  .btn .arr { width: 12px !important; height: 12px !important; }
  .dsig-tabs button, .lib-tabs button { font-size: 12px !important; min-height: 36px !important; padding: 8px 10px !important; }
  .pill, .tag, .chip, .cc-chip, .cc-obj, .hc-locs .pill, .ti-seg-btn { font-size: 10.5px !important; padding: 5px 10px !important; }
  .ti-seg-btn { min-height: 34px !important; }

  /* Free Domain Check: compact empty state, no full-height card */
  .fdc-main .tryit-card { min-height: 0 !important; }
  .tryit-card .row1 { padding-bottom: 10px !important; }
  .tryit-empty { padding: 20px 8px 8px !important; gap: 8px !important; }
  .tryit-empty .te-ic { width: 46px !important; height: 46px !important; }
  .tryit-empty .te-title { font-size: 19px !important; margin-top: 2px !important; }
  .tryit-empty .te-sub { font-size: 14px !important; }
  .tryit-empty .te-try { margin-top: 6px !important; }

  /* Free Domain Check (new icon design): KPIs 2×2, metric cards 2-up, icons scaled */
  .tr-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; margin-top: 16px !important; }
  .tr-kpis .tr-kpi { padding: 12px 12px !important; gap: 4px !important; border-left: 0 !important; border-top: 0 !important; }
  .tr-kpis .tr-kpi:nth-child(2n) { border-left: 1px solid var(--line) !important; }
  .tr-kpis .tr-kpi:nth-child(n+3) { border-top: 1px solid var(--line) !important; }
  .tr-kpi .tr-kpi-ico { width: 28px !important; height: 28px !important; margin-bottom: 4px !important; }
  .tr-kpi .v b { font-size: 28px !important; }
  .tr-kpi .v b.band { font-size: 18px !important; }
  .tr-kpi .s { font-size: 11.5px !important; }
  .tm-card { padding: 12px 12px 11px !important; gap: 6px !important; min-width: 0; }
  .tm-card .tm-ico { width: 28px !important; height: 28px !important; }
  .tm-k { font-size: 10px !important; letter-spacing: .08em !important; }
  .tm-v { font-size: 22px !important; gap: 6px !important; }
  .tr-head { gap: 10px !important; padding-bottom: 14px !important; }

  /* Free Domain Check results: drop nested desktop padding so cards use the screen width */
  .tryit-result { padding: 0 !important; background: transparent !important; }
  .tr-metrics { padding: 14px 0 0 !important; border: 0 !important; }
  .tr-panels, .tr-panel { padding-left: 0 !important; padding-right: 0 !important; }
  .tr-kpi .v { flex-wrap: wrap; row-gap: 4px; }

  /* Inventory Health Check report: proper side margins, single column */
  .ihc-report { padding: 24px 20px 36px !important; min-height: 0 !important; box-sizing: border-box; width: 100%; max-width: 100vw; overflow-x: hidden; }
  .ihc-report .container { padding: 0 !important; max-width: 100% !important; }
  .rp-head { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 14px !important; }
  .rp-head h2 { font-size: 24px !important; white-space: normal !important; }
  .rp-head-stats { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .rp-tabs { display: flex !important; overflow-x: auto; scrollbar-width: none; margin: 14px -20px !important; padding: 0 20px !important; }
  .rp-tabs::-webkit-scrollbar { display: none; }
  .rp-tabs > * { flex: 0 0 auto; white-space: nowrap; }
  .rp-grid, .rp-two { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; margin-bottom: 12px; }
  .rp-grid > *, .rp-two > * { zoom: 1 !important; }
  .rp-card { padding: 16px !important; }

  /* Data Licensing hero: icon, headline, body and CTAs share one left edge */
  .dl-hero .dl-grid { display: flex !important; flex-direction: column; align-items: stretch !important; gap: 26px !important; text-align: left !important; }
  .dl-hero .dl-copy { display: flex !important; flex-direction: column; align-items: flex-start !important; text-align: left !important; padding: 0 !important; margin: 0 !important; zoom: 1 !important; }
  .dl-hero .dl-copy > * { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; text-align: left !important; max-width: 100% !important; }
  .dl-hero .dl-cta-row { justify-content: flex-start !important; flex-wrap: wrap; gap: 10px !important; }
  .dl-hero .dl-console { zoom: 1 !important; max-width: 100% !important; min-width: 0 !important; }
  .dl-hero .dl-code { white-space: pre-wrap !important; overflow-wrap: anywhere; font-size: 12px !important; }

  /* hero supporting copy: slightly smaller on phones, site-wide */
  .ms-hero p, .ms-hero .lead, .ms-hero .ms-lead,
  .olv-hero .lead, .md-hero .md-lead, .sig-hero .sig-lead, .dl-hero .dl-lead, .rd-hero .head-lead, .co-hero .head-lead,
  .hero .lead, .ihc-hero .copy > p, .b-hero p, .r-hero p, .gt-hero p, .cs-hero p { font-size: 15px !important; line-height: 1.5 !important; }

  /* Media Solutions case study carousel: card 20% smaller so heading, card and arrows fit one screen */
  .cs-slide .cs-card { zoom: .8; }
  .pp-h2 { margin-bottom: 14px !important; }

  /* Solution pages: algorithm diagram runs top-to-bottom, centred */
  .blx-algo, .blx-algo.compact { grid-template-columns: minmax(0, 1fr) !important; justify-content: center !important; justify-items: center !important; gap: 12px !important; zoom: 1 !important; margin-left: auto !important; margin-right: auto !important; width: 100%; }
  .blx-algo.compact .ag-inputs { grid-template-columns: repeat(2, auto) !important; justify-content: center; gap: 18px !important; }
  .blx-algo.compact .ag-in { grid-template-columns: auto !important; justify-items: center !important; text-align: center !important; gap: 8px !important; }
  .blx-algo .ag-arrow, .blx-algo.compact .ag-arrow { width: 28px !important; height: 28px !important; transform: rotate(90deg); align-self: center !important; justify-self: center !important; }
  .blx-algo.compact .ag-arrow svg { width: 28px !important; height: 28px !important; }
  .blx-algo .ag-core, .blx-algo .ag-out { justify-self: center; text-align: center; }

  /* algorithm diagram: single centred axis (flex beats any grid override) */
  section .blx-algo, section .blx-algo.compact { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: flex-start !important; }
  section .blx-algo > * { align-self: center !important; margin-left: 0 !important; margin-right: 0 !important; grid-column: auto !important; grid-row: auto !important; }
  section .blx-algo .ag-inputs { width: 100%; display: flex !important; justify-content: center !important; gap: 24px !important; }
  section .blx-algo .ag-loop { width: 100% !important; align-self: stretch !important; left: auto !important; right: auto !important; transform: none !important; }
  section .blx-algo .ag-arrow.merge { display: inline-flex !important; }

  /* case study carousel controls: centred under the card */
  .cs-foot { display: flex !important; justify-content: center !important; align-items: center !important; gap: 14px !important; width: 100%; margin: 16px auto 0 !important; padding: 0 !important; position: static !important; transform: none !important; }
  .cs-foot .cs-dots { flex: 0 0 auto !important; justify-content: center; }

  /* algorithm diagram inputs: compact tiles, no stretched empty height */
  section .blx-algo .ag-inputs { align-items: flex-start !important; height: auto !important; min-height: 0 !important; }
  section .blx-algo .ag-in { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: flex-start !important; height: auto !important; min-height: 0 !important; gap: 8px !important; }
  section .blx-algo .ag-in b { font-size: 14px !important; line-height: 1.2 !important; }
  section .blx-algo .ag-core, section .blx-algo .ag-out { gap: 8px !important; }
  section .blx-algo .ag-c-stage { width: 112px !important; height: 112px !important; }

  /* Dense hero mock cards hidden on phones */
  .dl-hero .dl-console,
  .md-hero .er-hero-vis,
  #book .hero-dash { display: none !important; }
  .olv-hero, .md-hero, .dl-hero { padding-bottom: 28px !important; }

  /* PIQ channel heroes: keep only the score punchline as a slim strip under the CTA */
  .olv-hero .olv-contrast { display: block !important; margin: 4px 0 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; min-height: 0 !important; }
  .olv-hero .olv-contrast > :not(.cc-foot) { display: none !important; }
  .olv-hero .olv-contrast .cc-foot { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px !important; margin: 0 !important; background: #fff; border: 1px solid var(--mist-line, #E4E1DA); border-radius: 16px 0 0 0; }
  .olv-hero .olv-contrast .cc-foot .fl { font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--ink); }
  .olv-hero .olv-contrast .cc-score .v { font-size: 30px !important; line-height: 1 !important; }

  /* channel heroes without a score punchline: hide the mock entirely */
  .olv-hero .olv-contrast:not(:has(.cc-foot)), .olv-hero .yt-card { display: none !important; }

  /* OLV hero: positive score strip replaces the low-score card punchline */
  .olv-hero .olv-contrast { display: none !important; }
  .olv-hero .olv-mscore { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; margin: 4px 0 0; background: #fff; border: 1px solid var(--mist-line, #E4E1DA); border-radius: 16px 0 0 0; }
  .olv-mscore .fl { font-family: var(--font-sans); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--ink); }
  .olv-mscore .cc-score { display: inline-flex; align-items: center; gap: 8px; }
  .olv-mscore .v { font-family: var(--font-serif); font-weight: 400; font-size: 30px; line-height: 1; color: #1AA75D; }
  .olv-mscore .t { font-family: var(--font-sans); font-weight: 800; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #157C46; background: #DFF5E8; padding: 4px 8px; border-radius: 999px; line-height: 1; }

  .obj-card .oc-desc { text-wrap: balance; }

  /* Media Solution pages: hero + logo strip fill exactly the first screen */
  .md-hero { min-height: calc(100svh - 64px - 104px) !important; display: flex !important; flex-direction: column; justify-content: center; box-sizing: border-box; }
  .md-hero > .container { width: 100%; }
  .er-trust { padding: 16px 0 18px !important; height: 104px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
  .er-trust .er-trust-lab { margin: 0 !important; font-size: 11px !important; }
  .er-trust .logo-cell img { max-height: 26px !important; }

  /* algorithm inputs: two equal columns, icons and labels on the same lines */
  section .blx-algo .ag-inputs { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; align-items: start !important; justify-items: center !important; width: 100%; gap: 16px !important; }
  section .blx-algo .ag-in { width: 100%; display: grid !important; grid-template-rows: 48px auto !important; justify-items: center !important; align-items: start !important; text-align: center !important; }
  section .blx-algo .ag-in .ag-sw { width: 48px !important; height: 48px !important; margin: 0 !important; }
  section .blx-algo .ag-in b { display: block; line-height: 1.25 !important; }

  html body section .blx-algo.compact .ag-inputs { grid-template-columns: 1fr 1fr !important; grid-template-rows: auto !important; align-items: start !important; align-content: start !important; height: auto !important; }
  html body section .blx-algo.compact .ag-inputs > .ag-in { align-self: start !important; align-content: start !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; transform: none !important; top: auto !important; }

  html body section .blx-algo.compact .ag-inputs > .ag-in { grid-template-columns: 1fr !important; justify-items: center !important; }
  html body section .blx-algo.compact .ag-inputs > .ag-in > b { justify-self: center !important; text-align: center !important; width: auto !important; }

  /* algorithm diagram: arrows point down the flow; feedback loop runs up the right-hand side */
  html body section .blx-algo .ag-arrow { transform: none !important; width: 28px !important; height: 28px !important; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8506F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v15M6 13l6 6 6-6'/%3E%3C/svg%3E") center / 24px 24px no-repeat !important; }
  html body section .blx-algo .ag-arrow svg { display: none !important; }
  html body section .blx-algo { position: relative !important; padding-right: 0 !important; }
  html body section .blx-algo .ag-loop { display: none !important; }
  html body section .blx-algo::after, html body section .blx-algo.compact::after { display: block !important; content: '' !important; position: absolute; right: 0; top: 40%; height: 42%; width: 40px; z-index: 2; pointer-events: none; opacity: 1 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23A6A29A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2 L3 6 L8 10'/%3E%3C/svg%3E") left top / 12px 12px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 200' preserveAspectRatio='none' fill='none' stroke='%23A6A29A' stroke-width='1.6' stroke-dasharray='4 4' stroke-linecap='round'%3E%3Cpath d='M2 196 H30 V4 H6'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

  /* Solution pages: process steps stacked */
  .hiw-row { grid-template-columns: minmax(0, 1fr) !important; gap: 28px !important; }
  .hiw-row > .hiw-item { zoom: 1 !important; }
  /* Benefits: icon above the benefit, 2-up grid */
  .blb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 16px !important; row-gap: 22px !important; }
  .blb-grid > .blb-item { zoom: 1 !important; display: flex !important; flex-direction: column; align-items: flex-start !important; gap: 10px; }
  .blb-item .blb-ico { width: 40px !important; height: 40px !important; }
  .blb-item h4 { font-size: 16px !important; margin: 0 !important; }
  .blb-item p { font-size: 14px !important; margin: 0 !important; }

  /* feedback loop removed from the phone diagram */
  html body section .blx-algo::after, html body section .blx-algo.compact::after { display: none !important; content: none !important; }

  /* algorithm diagram: animated feedback loop runs up the left, from the outcome back to Live Campaign Data */
  html body section .blx-algo.compact { padding-left: 34px !important; position: relative !important; overflow: visible !important; }
  html body section .blx-algo .ag-loop-v { display: block !important; position: absolute; left: 0; top: 22px; height: 200px; width: 40px; z-index: 3; pointer-events: none; }
  .ag-loop-v svg { width: 100%; height: 100%; overflow: visible; display: block; }
  .ag-loop-v .lline { fill: none; stroke: #7EA2AA; stroke-width: 1.6; stroke-dasharray: 4 4; opacity: 1; }
  .ag-loop-v .lflow { fill: none; stroke: #1E9E6A; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 14 400; animation: agLoopV 3.4s linear infinite; }
  .ag-loop-v .lhead-v { position: absolute; top: -4px; left: 30px; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid #7EA2AA; }
  @keyframes agLoopV { from { stroke-dashoffset: 414; } to { stroke-dashoffset: 0; } }

  /* "More ways Picnic helps you grow." fits the screen */
  .md-grow .md-grow-head { max-width: 100% !important; padding: 0 !important; }
  .md-grow .md-grow-head h3 { font-size: 26px !important; white-space: normal !important; max-width: 100% !important; overflow-wrap: break-word; letter-spacing: -0.02em !important; }
  /* partners band stripe: sits in the space above the heading, never behind it */
  .blx-partners-sec { position: relative; overflow: hidden; padding-top: 96px !important; }
  .blx-partners-sec::before { top: 0 !important; bottom: auto !important; height: 84px !important; left: -10% !important; right: -10% !important; width: auto !important; background-position: center top !important; background-size: 120% auto !important; transform: none !important; }
  .blx-partners-sec::after { display: none !important; }
  .blx-partners-sec > .container { position: relative; z-index: 1; }

  /* partners band: sits above neighbouring stripes; its own stripe runs across the top, above the heading */
  .blx-partners-sec { z-index: 2 !important; isolation: isolate; }
  .blx-partners-sec::before { content: '' !important; display: block !important; position: absolute !important; z-index: 0 !important; pointer-events: none; opacity: .5;
    background-image: url('assets/stripes/stripes-09-mist-outline.png') !important; background-repeat: no-repeat !important; }
  .md-grow::before { bottom: 0 !important; }

  /* Solution pages enquiry module: copy stacked above the form, form fields one per row */
  .md-demostrip .ds-inner { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 22px !important; grid-template-columns: none !important; }
  .md-demostrip .ds-inner > * { zoom: 1 !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .md-demostrip .ds-form .row2 { grid-template-columns: minmax(0, 1fr) !important; display: grid !important; gap: 12px !important; }
  .md-demostrip .ds-form input, .md-demostrip .ds-form select, .md-demostrip .ds-form textarea { font-size: 16px !important; }

  /* Creative Formats: format images at a third of their size */
  .cf-row .cf-media image-slot { width: 120px !important; --slot-bg: transparent !important; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; outline: 0 !important; }
  .cf-row .cf-media { display: flex !important; justify-content: center; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
  .cf-row .cf-media .cf-blob img { width: 180px !important; opacity: .6 !important; }

  /* Creative Formats: number, icon and heading, then image, then copy */
  html body .cf-row, html body .cf-row.cf-row-alt { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 0 !important; }
  html body .cf-row > .cf-copy { display: contents !important; }
  html body .cf-row > .cf-copy > * { order: 4 !important; }
  html body .cf-row > .cf-copy > .cf-index { order: 0 !important; }
  html body .cf-row > .cf-copy > .cf-ico { order: 1 !important; }
  html body .cf-row > .cf-copy > h3 { order: 2 !important; margin-bottom: 18px !important; }
  html body .cf-row > .cf-media, html body .cf-row.cf-row-alt > .cf-media { order: 3 !important; align-self: center !important; margin: 0 auto 20px !important; transform: none !important; left: auto !important; right: auto !important; width: 120px !important; justify-content: center; }

  /* Creative Formats: short "Best for" copy; no clipping box around the image blob */
  .cf-best .cf-l { display: none !important; }
  .cf-best .cf-s { display: inline !important; }
  html body .cf-row > .cf-media, html body .cf-row .cf-media { overflow: visible !important; }

  /* Creative Formats: CTAs centred */
  html body .cf-row > .cf-copy > .cf-cta-row { align-self: stretch !important; display: flex !important; justify-content: center !important; flex-wrap: wrap; gap: 10px !important; }

  /* Blog / insight article modules: one card per row */
  .blog-grid, .blog-list, .fromblog .grid, .fromblog [class*="grid"], .insights-grid, .posts-grid, .rel-grid, .fb-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 22px !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
  .blog-grid > *, .blog-list > *, .fromblog [class*="grid"] > *, .insights-grid > *, .posts-grid > *, .rel-grid > *, .fb-grid > * { zoom: 1 !important; grid-column: auto !important; }

  /* Blog listing + report article modules: 2 columns */
  html body .blog-grid, html body .fb-grid, html body .reports-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  html body .reports-grid > * { zoom: 1 !important; min-width: 0; }
  html body .reports-grid h3, html body .reports-grid h4 { font-size: 15px !important; line-height: 1.25 !important; }
  html body .reports-grid p { font-size: 13px !important; }
  html body .insights-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; }
  html body .blog-grid > *, html body .fb-grid > *, html body .insights-grid > * { zoom: 1 !important; min-width: 0; }
  html body .blog-grid > .post.is-featured { grid-column: 1 / -1 !important; }
  html body .blog-grid .post h3, html body .fb-grid h3, html body .insights-grid h3, html body .blog-grid .post h4, html body .fb-grid h4 { font-size: 15px !important; line-height: 1.25 !important; }
  html body .blog-grid .post p, html body .fb-grid p, html body .insights-grid p { font-size: 13px !important; }
  /* Case study bar chart: labels clear of bars and each other */
  .rchart-card { padding: 24px 18px 22px !important; }
  .rchart { height: 300px !important; }
  .rbar.up { bottom: auto !important; top: 48px !important; }
  .rbar-val.up { bottom: auto !important; top: 16px !important; }
  .rchart .zlab { position: absolute; right: 0; left: auto !important; bottom: 4px; top: auto !important; font-size: 10px !important; }
  .rbar-col { width: 46% !important; }
  .rbar { width: 64px !important; }
  .rbar-val { font-size: 20px !important; }
  .rbar-name { font-size: 10px !important; }
  .rbar-name.below { top: 272px !important; }
  .rbar-val.down { top: 240px !important; }

  /* Report "Three forces": stat numbers line up across the cards */
  html body .rd-forces-grid { grid-template-rows: repeat(5, auto) !important; row-gap: 0 !important; align-items: stretch !important; }
  html body .rd-forces-grid > .force { display: grid !important; grid-row: span 5 !important; grid-template-rows: subgrid !important; row-gap: 8px !important; }
  html body .rd-forces-grid > .force > .f-stat { margin-top: 0 !important; align-self: start; }

  /* Age of Quality Guide: hide the "Real outcomes" ladder box */
  .ladder-goal { display: none !important; }

  /* Report "forces" cards: stacked, one per row */
  html body .rd-forces-grid { grid-template-columns: minmax(0, 1fr) !important; grid-template-rows: none !important; row-gap: 16px !important; }
  html body .rd-forces-grid > .force { grid-row: auto !important; grid-template-rows: none !important; display: flex !important; flex-direction: column; zoom: 1 !important; }

  /* 404 / 500: left aligned, thin stripe texture */
  .nf .nf-inner { align-items: flex-start !important; text-align: left !important; margin: 0 !important; position: relative; z-index: 1; }
  .nf .nf-actions { justify-content: flex-start !important; }
  .nf .nf-links { margin-left: 0 !important; }
  .nf .nf-links-grid { justify-content: start !important; margin: 0 !important; }
  .nf::before { content: ''; position: absolute; left: -10%; right: -10%; top: 6%; height: 220px; z-index: 0; pointer-events: none; opacity: .7;
    background: url('assets/stripes/stripes-02-thin-user.png') no-repeat center / 100% auto; }
  .nf::after { content: ''; position: absolute; left: -10%; right: -10%; bottom: 4%; height: 180px; z-index: 0; pointer-events: none; opacity: .55;
    background: url('assets/stripes/stripes-09-mist-outline.png') no-repeat center / 100% auto; }

  /* PIQ10 table: fixed columns so ranks and scores line up and stay inside the table */
  .piq10-table { overflow: hidden; }
  .piq10-table .pt-head, .piq10-row { grid-template-columns: 32px minmax(0, 1fr) 76px !important; gap: 10px !important; padding-left: 16px !important; padding-right: 16px !important; zoom: 1 !important; }
  .piq10-row .pr-rank { font-size: 15px !important; }
  .piq10-row .pr-domain { font-size: 14px !important; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .piq10-row .pr-score { font-size: 16px !important; min-width: 0 !important; text-align: right !important; font-variant-numeric: tabular-nums; }
  .piq10-table .pt-head .pth { font-size: 10px !important; letter-spacing: .1em !important; }
  .piq10-table .pt-head .pth.r { text-align: right !important; white-space: nowrap; }
  .piq10-foot { padding-left: 16px !important; padding-right: 16px !important; }

  /* Reports listing: no Report / Guide chips */
  .reports-grid .rc-tag { display: none !important; }

  /* PIQ10 table: fixed columns, numbers aligned inside the table */
  html body .piq10-table { overflow: hidden; }
  html body .piq10-table .pt-head, html body .piq10-row { grid-template-columns: 36px minmax(0, 1fr) 72px !important; gap: 10px !important; padding-left: 16px !important; padding-right: 16px !important; }
  html body .piq10-row .pr-rank { text-align: center !important; font-variant-numeric: tabular-nums; }
  html body .piq10-row .pr-domain { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html body .piq10-row .pr-score { min-width: 0 !important; text-align: right !important; font-variant-numeric: tabular-nums; }
  html body .piq10-table .pt-head .pth:first-child { text-align: center; }
  html body .piq10-table .pt-head .pth { font-size: 10px !important; letter-spacing: .08em !important; }
  html body .piq10-foot { padding-left: 16px !important; padding-right: 16px !important; }
}
