{"id":6899,"date":"2026-08-27T10:32:20","date_gmt":"2026-08-27T10:32:20","guid":{"rendered":"https:\/\/bioprofile.com\/?page_id=6899"},"modified":"2026-09-30T20:29:44","modified_gmt":"2026-09-30T20:29:44","slug":"scan-gut-symptom-test","status":"publish","type":"page","link":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/","title":{"rendered":"Scan: Gut symptom test"},"content":{"rendered":"\n<div class=\"wp-block-group bp-scan bp-scan--v2 is-layout-flow wp-block-group-is-layout-flow\">\n\n<div id=\"content\" tabindex=\"-1\"><\/div>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700&#038;display=swap\">\n<style id=\"bp-scan-design\">\n\/* ===========================================================================\n   BioProfile scan page. One template, eleven instances. T147, built from the\n   T128 spec's section architecture. Tokens: brands\/bioprofile\/brand\/tokens.md.\n   =========================================================================== *\/\n\n.bp-scan {\n  --bp-ink: #212527;\n  --bp-teal: #005859;\n  --bp-teal-deep: #006B62;\n  --bp-emerald: #228A62;\n  --bp-green: #7CA74D;\n  --bp-lime: #B7CB33;\n  --bp-lime-soft: #B7CB3329;\n  --bp-hl-ink: #5E7D2F;\n  \/* the brand highlight ink darkened until it clears WCAG AA at label sizes.\n     Measured 2026-08-21 with Lighthouse on the live page: #7CA74D reads 2.8:1 on\n     white and #5E7D2F reads 4.31:1 on the lime-soft fill, both under 4.5:1 for\n     text below 18.66px. #4F6B28 reads 6.06:1 and 5.53:1. Same hue, same family,\n     one derived value rather than a new brand colour. *\/\n  --bp-green-aa: #4F6B28;\n  --bp-beige: #EDEAE5;\n  --bp-sand: #DBD4CB;\n  --bp-pale-teal: #D9E6E6;\n  --bp-white: #FFFFFF;\n  --bp-foot: #6b6b6b;\n  --bp-grad-dark: linear-gradient(237deg, rgba(0,88,89,0.00) 62.94%, #005859 100%), linear-gradient(90deg, rgba(34,138,98,0.00) 40%, #228A62 100%), #006B62;\n  --bp-font: 'Poppins','Segoe UI',Arial,sans-serif;\n  --bp-fs-h1: 44px; --bp-fs-h2: 31px; --bp-fs-h3: 21px; --bp-fs-eyebrow: 15px;\n  --bp-fs-body: 17px; --bp-fs-small: 14px; --bp-fs-foot: 13px; --bp-fs-btn: 17px;\n  --bp-lh-body: 1.75;\n  --bp-s-1: 4px; --bp-s-2: 8px; --bp-s-3: 12px; --bp-s-4: 16px;\n  --bp-s-5: 24px; --bp-s-6: 32px; --bp-s-7: 44px; --bp-s-8: 72px;\n  --bp-measure: 680px; --bp-prose: 620px; --bp-foot-measure: 560px;\n  --bp-side: 40px;\n  --bp-radius-card: 20px; --bp-radius-btn: 10px; --bp-radius-chip: 999px;\n  --bp-shadow: 0 10px 30px rgba(0,88,89,0.10);\n  --bp-shadow-soft: 0 2px 10px rgba(0,88,89,0.06);\n  font-family: var(--bp-font);\n  font-size: var(--bp-fs-body);\n  line-height: var(--bp-lh-body);\n  color: var(--bp-ink);\n  background: var(--bp-white);\n  -webkit-font-smoothing: antialiased;\n}\n.bp-scan, .bp-scan * { box-sizing: border-box; }\n.bp-scan p, .bp-scan li, .bp-scan h1, .bp-scan h2, .bp-scan h3, .bp-scan a,\n.bp-scan cite, .bp-scan span { overflow-wrap: break-word; min-width: 0; }\n.bp-scan .bp-off { display: none !important; }\n\n\/* THE RIGHT EDGE. T188, 2026-08-31, from Jesse's own screenshot of\n   \/scan-hersteltest\/ on a 375px iPhone: the H1 compound \"ontstekingswaarden\"\n   ran off the screen and was cut mid-word.\n\n   The cause, measured rather than guessed, and it is NOT the rule above. The\n   GRID TRACK was the right size all along: at 375 the hero grid measured 335,\n   exactly the section's content box. What overflowed was the grid ITEM. A grid\n   item's default `min-width: auto` gives it an automatic minimum size equal to\n   its min-content width, and the min-content of the hero's head column is the\n   widest unbreakable word in the H1: `ontstekingswaarden` needs 365px at 34px\n   Poppins Bold. So the item laid out 359 wide inside a 335 track and hung 24px\n   out of it, and by 375 the last of that had crossed the screen, where the body\n   clipped it.\n\n   `overflow-wrap: break-word`, declared on that H1 one line above, cannot help\n   and this is the whole trap: by spec it introduces a soft-wrap opportunity for\n   LINE LAYOUT only, never for INTRINSIC sizing. So it never reduced the item's\n   automatic minimum, and inside the oversized item the word then fitted on a\n   line and had no reason to break.\n\n   Measured on the unfixed build at 320 and 375, one rule injected at a time:\n   `min-width: 0`, `hyphens: auto` and `minmax(0, 1fr)` each take the head column\n   back to the track width on their own. Every DESKTOP grid in this sheet already\n   carries `minmax(0, ...)`; the mobile collapse rules had dropped it, which is\n   the reason the fault only ever showed on a phone.\n\n   Two rules therefore, and they do different jobs:\n\n   1. `min-width: 0` on the block containers that are grid or flex items, so an\n      item can never hand a track a minimum bigger than the space there is. This\n      is the guard that makes the class of fault impossible rather than fixing\n      one instance of it. Named containers only, never every div: `min-width: 0`\n      on a flex chip would let it collapse.\n   2. `hyphens: auto` on headings, so that when a Dutch compound still has to\n      break it breaks at a legal syllable with a hyphen instead of snapping\n      mid-morpheme. The article is inside `<html lang=\"nl-NL\">`, which is what\n      the hyphenation dictionary keys off; this is the same remedy the four\n      column band label already uses further down. *\/\n.bp-scan .bp-scan-hero2 > *, .bp-scan .bp-scan-hero-head,\n.bp-scan .bp-scan-split > *, .bp-scan .bp-scan-cols > *,\n.bp-scan .bp-scan-instgrid > *, .bp-scan .bp-scan-scale > *,\n.bp-scan .bp-scan-verify > *, .bp-scan .bp-scan-author > *,\n.bp-scan .bp-scan-links > * { min-width: 0; }\n.bp-scan h1, .bp-scan h2, .bp-scan h3 { -webkit-hyphens: auto; hyphens: auto; }\n\n\/* WordPress core's flow-layout stylesheet gives every child after the first a\n   24px block-start margin. Inside a normal column that is spacing; inside a grid\n   or a flex row it is a misalignment. Measured on the live page 2026-08-21:\n   band cards two and three sat 24px lower than card one AND lost 24px of their\n   stretched height, so the row read as broken. Zeroing it on the row containers\n   is the fix; core's rule is written with :where() so it carries no specificity\n   and a plain class selector wins. *\/\n.bp-scan .bp-scan-scale > *, .bp-scan .bp-scan-links > *,\n.bp-scan .bp-scan-facts > *, .bp-scan .bp-scan-verify > *,\n.bp-scan .bp-scan-instgrid > * { margin-block: 0; }\n\n\/* the page opens on brand colour, never on grey *\/\n.bp-scan .bp-scan-rule {\n  height: 6px; border: 0; margin-block: 0; max-width: none;\n  background: linear-gradient(90deg, #005859 0%, #006B62 38%, #228A62 66%, #B7CB33 100%);\n}\n\n\/* --- section surfaces. The colour work happens here, so the headings can stay\n       calm and the page still reads section by section. --------------------- *\/\n.bp-scan-sec { position: relative; background: var(--bp-white); margin-block: 0;\n  padding-block: var(--bp-s-8);\n  padding-inline: max(var(--bp-side), calc((100% - var(--bp-measure)) \/ 2)); }\n.bp-scan-sec > *:last-child { margin-block-end: 0; }\n\/* prose is set narrower than the column so a line stays inside a comfortable\n   measure, while cards, scales and buttons keep the full column *\/\n.bp-scan-sec > p, .bp-scan-sec > ul, .bp-scan-sec > ol { max-width: var(--bp-prose); }\n.bp-scan-sec > .bp-scan-legal, .bp-scan-sec > .bp-scan-disclosure,\n.bp-scan .bp-scan-refs { max-width: var(--bp-foot-measure); }\n.bp-scan-sec--wash { background: linear-gradient(180deg, #B7CB331A 0%, #B7CB330D 100%), #FFFFFF; }\n.bp-scan-sec--beige { background: var(--bp-beige); }\n.bp-scan-sec--dark { background: var(--bp-grad-dark); color: var(--bp-white); }\n.bp-scan-sec--dark p, .bp-scan-sec--dark li, .bp-scan-sec--dark cite { color: var(--bp-white); }\n.bp-scan-sec--hero { padding-block: var(--bp-s-7) var(--bp-s-8); }\n.bp-scan--v2 .bp-scan-sec--hero { padding-block: var(--bp-s-7); }\n.bp-scan-sec--tight { padding-block: var(--bp-s-7); }\n.bp-scan-sec--foot { padding-block: var(--bp-s-6);\n  border-top: 1px solid var(--bp-sand); background: var(--bp-white); }\n\n\/* --- CORE BLOCKS BY ELEMENT ------------------------------------------------ *\/\n.bp-scan p { font-size: var(--bp-fs-body); line-height: var(--bp-lh-body);\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan h1 { font-size: var(--bp-fs-h1); font-weight: 700; line-height: 1.25;\n  letter-spacing: -0.01em; margin-block: 0 var(--bp-s-4); color: var(--bp-ink); }\n\/* no orphan words on a heading and no single-word last line in a paragraph.\n   Both degrade to normal wrapping where the browser does not support them. *\/\n.bp-scan h1, .bp-scan h2, .bp-scan h3 { text-wrap: balance; }\n.bp-scan p, .bp-scan li { text-wrap: pretty; }\n\/* an H2 is ink with a lime accent rule above it. Nine of these read as a\n   contents list down the page; nine dark bands would read as a fence. *\/\n.bp-scan h2 { font-size: var(--bp-fs-h2); font-weight: 700; line-height: 1.3;\n  letter-spacing: -0.01em; color: var(--bp-ink);\n  margin-block: 0 var(--bp-s-5); padding-block-start: var(--bp-s-4); position: relative; }\n.bp-scan h2::before { content: \"\"; position: absolute; top: 0; left: 0;\n  width: 56px; height: 4px; border-radius: 2px; background: var(--bp-lime); }\n.bp-scan-sec--dark h2 { color: var(--bp-white); }\n.bp-scan-sec--dark h2::before { background: var(--bp-lime); }\n.bp-scan h3 { font-size: var(--bp-fs-h3); font-weight: 700; line-height: 1.35;\n  color: var(--bp-teal); margin-block: 0 var(--bp-s-3); }\n.bp-scan-sec--dark h3 { color: var(--bp-lime); }\n.bp-scan ul, .bp-scan ol { font-size: var(--bp-fs-body); line-height: var(--bp-lh-body);\n  margin-block: 0 var(--bp-s-5); padding-left: var(--bp-s-5); }\n.bp-scan li { margin-block-end: var(--bp-s-2); }\n.bp-scan a { color: var(--bp-teal); text-decoration: underline;\n  text-underline-offset: 2px; }\n.bp-scan a:hover { color: var(--bp-green); }\n.bp-scan-sec--dark a { color: var(--bp-lime); }\n.bp-scan-sec--dark strong { color: var(--bp-lime); }\n.bp-scan strong { font-weight: 600; }\n.bp-scan .wp-block-separator:not(.bp-scan-rule) { border: 0;\n  border-top: 1px solid var(--bp-sand); margin-block: var(--bp-s-6); }\n\n\/* --- buttons: two classes so core's own rule cannot win -------------------- *\/\n.bp-scan .wp-block-buttons { display: flex; justify-content: flex-start;\n  margin-block: 0 var(--bp-s-3); }\n.bp-scan .wp-block-button__link {\n  display: inline-flex; align-items: center; justify-content: center; min-height: 52px;\n  background: var(--bp-teal); color: var(--bp-white); font-size: var(--bp-fs-btn);\n  font-weight: 700; line-height: 1.2; border-radius: var(--bp-radius-btn);\n  padding: 15px 40px; text-decoration: none; transition: background 250ms ease;\n  box-shadow: var(--bp-shadow);\n}\n.bp-scan .wp-block-button__link:hover { background: var(--bp-green); color: var(--bp-white); }\n.bp-scan-sec--dark .wp-block-button__link { background: var(--bp-lime); color: var(--bp-ink); }\n.bp-scan-sec--dark .wp-block-button__link:hover { background: var(--bp-white); color: var(--bp-teal); }\n\n\/* --- hero ------------------------------------------------------------------ *\/\n.bp-scan .bp-scan-eyebrow {\n  font-size: var(--bp-fs-eyebrow); font-weight: 600; letter-spacing: 0.08em;\n  text-transform: uppercase; color: var(--bp-green-aa); margin-block: 0 var(--bp-s-3);\n}\n.bp-scan .bp-scan-lead { font-size: 19px; line-height: 1.65; color: var(--bp-ink);\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-facts { display: flex; flex-wrap: wrap; gap: var(--bp-s-2);\n  margin-block: 0 var(--bp-s-6); }\n.bp-scan .bp-scan-fact {\n  font-size: var(--bp-fs-small); font-weight: 500; line-height: 1.4;\n  color: var(--bp-teal); background: var(--bp-pale-teal);\n  border-radius: var(--bp-radius-chip); padding: 7px 16px; margin-block: 0;\n}\n.bp-scan .bp-scan-ctamicro { font-size: var(--bp-fs-small); color: var(--bp-foot);\n  margin-block: 0; }\n.bp-scan-sec--dark .bp-scan-ctamicro { color: rgba(255,255,255,0.82); }\n\n\/* --- what we ask: the items as a counted card list ------------------------- *\/\n.bp-scan .bp-scan-items { list-style: none; padding-left: 0; counter-reset: bpitem;\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-items li {\n  position: relative; counter-increment: bpitem;\n  padding: var(--bp-s-3) var(--bp-s-4) var(--bp-s-3) 58px;\n  margin-block-end: var(--bp-s-2); border-radius: var(--bp-radius-btn);\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  box-shadow: var(--bp-shadow-soft); font-weight: 500;\n}\n.bp-scan .bp-scan-items li::before {\n  content: counter(bpitem); position: absolute; left: var(--bp-s-4); top: 50%;\n  transform: translateY(-50%);\n  width: 28px; height: 28px; border-radius: 50%;\n  background: var(--bp-teal); color: var(--bp-white);\n  font-size: var(--bp-fs-small); font-weight: 700; line-height: 28px; text-align: center;\n}\n.bp-scan .bp-scan-gated { list-style: none; padding-left: 0;\n  margin-block: 0 var(--bp-s-4); }\n.bp-scan .bp-scan-gated li {\n  position: relative; padding-left: 24px; margin-block-end: var(--bp-s-1);\n  font-size: var(--bp-fs-small); color: var(--bp-foot);\n}\n.bp-scan .bp-scan-gated li::before {\n  content: \"\"; position: absolute; left: 4px; top: 10px;\n  width: 8px; height: 2px; border-radius: 1px; background: var(--bp-green);\n}\n\n\/* --- the instrument card: Layer A, one per source -------------------------- *\/\n.bp-scan .bp-scan-inst {\n  background: var(--bp-white); border: 1px solid var(--bp-sand); border-radius: 12px;\n  box-shadow: inset 5px 0 0 var(--bp-lime), var(--bp-shadow-soft);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-4) var(--bp-s-6);\n  margin-block: 0 var(--bp-s-4);\n}\n.bp-scan .bp-scan-inst h3 { margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-inst p { margin-block: 0 var(--bp-s-3); }\n.bp-scan .bp-scan-inst p:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-badge {\n  display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 0.07em;\n  text-transform: uppercase; line-height: 1.6; padding: 3px 12px;\n  border-radius: var(--bp-radius-chip); margin-block: 0 var(--bp-s-3);\n}\n.bp-scan .bp-scan-badge--adopt { background: var(--bp-lime-soft); color: var(--bp-green-aa); }\n.bp-scan .bp-scan-badge--derive { background: var(--bp-pale-teal); color: var(--bp-teal); }\n.bp-scan .bp-scan-badge--reference { background: var(--bp-beige); color: var(--bp-ink); }\n\/* the mandatory sentence. On ten of eleven pages this is the derive caveat and\n   it is the most important line on the page, so it is given weight rather than\n   tucked into a footnote. *\/\n.bp-scan .bp-scan-use {\n  font-size: var(--bp-fs-small); font-weight: 600; line-height: 1.55;\n  color: var(--bp-teal); background: var(--bp-pale-teal);\n  border-radius: var(--bp-radius-btn); padding: var(--bp-s-3) var(--bp-s-4);\n  margin-block: 0 var(--bp-s-3);\n}\n.bp-scan .bp-scan-validfor { font-size: var(--bp-fs-small); color: var(--bp-foot);\n  line-height: 1.6; margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-cite { font-size: var(--bp-fs-foot); color: var(--bp-foot);\n  line-height: 1.6; margin-block: 0; }\n.bp-scan .bp-scan-cite a { color: var(--bp-foot); }\n\n\/* --- the honest limit: the block that earns the page its right to rank ----- *\/\n.bp-scan .bp-scan-limitcite {\n  font-size: var(--bp-fs-small); line-height: 1.6; max-width: var(--bp-foot-measure);\n  color: rgba(255,255,255,0.85); border-left: 3px solid var(--bp-lime);\n  padding-left: var(--bp-s-4); margin-block: var(--bp-s-5) 0;\n}\n\/* beside the statement rather than under it, and given a surface so a two-line\n   citation reads as the source panel it is instead of as leftover text *\/\n.bp-scan--v2 .bp-scan-sec--dark .bp-scan-cols { align-items: center; }\n.bp-scan--v2 .bp-scan-col > .bp-scan-limitcite {\n  background: rgba(255,255,255,0.08); border-radius: var(--bp-radius-card);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n  margin-block: 0;\n}\n\n\/* --- the score scale ------------------------------------------------------- *\/\n.bp-scan .bp-scan-scale { display: grid; gap: var(--bp-s-3);\n  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n  margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-scale .wp-block-group {\n  border-radius: var(--bp-radius-btn); padding: var(--bp-s-4);\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-top: 5px solid var(--bp-sand);\n}\n.bp-scan .bp-scan-scale .bp-scan-band--ok { border-top-color: var(--bp-green); }\n.bp-scan .bp-scan-scale .bp-scan-band--warn { border-top-color: #C08A1E; }\n.bp-scan .bp-scan-scale .bp-scan-band--alert { border-top-color: #B04A24; }\n.bp-scan .bp-scan-band-range { font-size: 22px; font-weight: 700; line-height: 1.2;\n  color: var(--bp-ink); margin-block: 0 var(--bp-s-1); }\n.bp-scan .bp-scan-band-label { font-size: var(--bp-fs-small); line-height: 1.5;\n  color: var(--bp-foot); margin-block: 0; }\n.bp-scan .bp-scan-bandnote {\n  font-size: var(--bp-fs-small); line-height: 1.65; color: var(--bp-ink);\n  background: var(--bp-lime-soft); border-radius: var(--bp-radius-btn);\n  padding: var(--bp-s-4); margin-block: 0 var(--bp-s-4);\n}\n\n\/* --- verified by. A designed card, never a badge. -------------------------- *\/\n.bp-scan .bp-scan-verify {\n  display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--bp-s-5);\n  align-items: start;\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-top: 4px solid var(--bp-lime); border-radius: var(--bp-radius-card);\n  box-shadow: var(--bp-shadow); padding: var(--bp-s-5); margin-block: 0 var(--bp-s-4);\n}\n.bp-scan .bp-scan-verify-photo {\n  width: 88px; height: 88px; border-radius: 50%; margin-block: 0;\n  background: var(--bp-pale-teal); border: 2px solid var(--bp-lime);\n  display: flex; align-items: center; justify-content: center; overflow: hidden;\n  font-size: 10px; font-weight: 700; letter-spacing: 0.06em; color: var(--bp-teal);\n  text-align: center;\n}\n.bp-scan .bp-scan-verify-photo img { width: 100%; height: 100%; object-fit: cover;\n  object-position: center; display: block; border-radius: 50%; }\n.bp-scan .bp-scan-verify-body > * { margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-verify-body > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-verify-role {\n  font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;\n  color: var(--bp-green-aa);\n}\n.bp-scan .bp-scan-verify-name { font-size: 20px; font-weight: 700; line-height: 1.3;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-verify-cred { font-size: var(--bp-fs-small); color: var(--bp-foot);\n  line-height: 1.6; }\n.bp-scan .bp-scan-verify-stmt { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-verify-date { font-size: var(--bp-fs-foot); color: var(--bp-foot); }\n\n\/* the internal preview skin. Hazard stripes, a warning strap and bracketed\n   field names: it can read as a form, and it can never read as an endorsement.\n   This skin never reaches a page; push_guard refuses the marker it carries. *\/\n.bp-scan .bp-scan-verify--demo {\n  border: 2px dashed #C0562B; border-top: 4px dashed #C0562B;\n  background: repeating-linear-gradient(135deg, #FFF7F2 0 14px, #FDEDE3 14px 28px);\n  box-shadow: none;\n}\n.bp-scan .bp-scan-verify--demo .bp-scan-verify-photo {\n  background: #FDEDE3; border: 2px dashed #C0562B; color: #C0562B; }\n.bp-scan .bp-scan-verify--demo .bp-scan-verify-role,\n.bp-scan .bp-scan-verify--demo .bp-scan-verify-name { color: #C0562B; }\n.bp-scan .bp-scan-demostrap {\n  font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;\n  line-height: 1.5; color: #FFFFFF; background: #C0562B;\n  border-radius: var(--bp-radius-btn); padding: var(--bp-s-3) var(--bp-s-4);\n  margin-block: 0 var(--bp-s-3);\n}\n\n\/* --- references, disclosure, safety ---------------------------------------- *\/\n.bp-scan .bp-scan-refs { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-ink); padding-left: 22px; margin-block: 0; }\n.bp-scan .bp-scan-refs li { margin-block-end: var(--bp-s-3); }\n.bp-scan .bp-scan-refs a { font-size: var(--bp-fs-foot); overflow-wrap: anywhere;\n  padding-block: 5px; }\n.bp-scan .bp-scan-cite a { padding-block: 5px; }\n.bp-scan .bp-scan-disclosure { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-safety {\n  background: var(--bp-beige); border-radius: 12px;\n  box-shadow: inset 5px 0 0 var(--bp-teal);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n  font-size: var(--bp-fs-small); line-height: 1.7; margin-block: 0 var(--bp-s-4);\n}\n.bp-scan .bp-scan-legal { font-size: var(--bp-fs-foot); line-height: 1.7;\n  color: var(--bp-foot); margin-block: 0; }\n\n\/* --- internal link strip: renders only when it has somewhere to point ------ *\/\n.bp-scan .bp-scan-links { display: grid; gap: var(--bp-s-3);\n  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-block: 0; }\n.bp-scan .bp-scan-links .wp-block-group {\n  border: 1px solid var(--bp-sand); border-radius: var(--bp-radius-btn);\n  padding: var(--bp-s-4); background: var(--bp-white); }\n.bp-scan .bp-scan-links p { margin-block: 0; font-size: var(--bp-fs-small); font-weight: 600; }\n\/* T188: on v2 the strip is a row of pills, not a card grid. Seen on the sleep\n   preview 2026-08-27: with ONE live sibling the grid put one 220px card at the\n   left of an empty 1120 row, which is the round-4 strip defect in a new place.\n   Pills sit in a wrapping row; one reads as one link, ten read as ten. *\/\n.bp-scan--v2 .bp-scan-links { display: flex; flex-wrap: wrap; gap: var(--bp-s-3); }\n.bp-scan--v2 .bp-scan-links .wp-block-group { flex: 0 1 auto; padding: 0; }\n\/* the anchor IS the pill, so the tap target is the whole pill (45px) and not a\n   21px line of text inside it: measured 2026-08-27, the one target under 24px\n   on the sleep page *\/\n.bp-scan--v2 .bp-scan-links a { display: block; padding: var(--bp-s-3) var(--bp-s-5); }\n\n\/* T188: the ten derive scans carry FOUR reading bands and page 1 carries three.\n   Four tiles on the base auto-fit grid wrapped three plus one inside the 620\n   column, so \"80 tot 100\" sat alone on a second row (seen on the sleep preview\n   2026-08-27). A scale reads left to right, low to high, so four sit on one\n   row at 1440 and two by two on a phone. The class is only emitted when the\n   count is not three, so page 1's scale is untouched. *\/\n.bp-scan--v2 .bp-scan-scale--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }\n.bp-scan--v2 .bp-scan-scale--n4 .wp-block-group { padding: var(--bp-s-3); }\n\/* T188 batch A: a pack band label can be one word longer than a four-column tile\n   (\"hoge vermoeidheidslast\" on energy broke as \"vermoeidheidsla\" + \"st\" at 1440).\n   Hyphenate instead of breaking anywhere; the tile is inside the nl-NL article. *\/\n.bp-scan--v2 .bp-scan-scale--n4 .bp-scan-band-label { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: normal; }\n@media (max-width: 767px) {\n  .bp-scan--v2 .bp-scan-scale--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n}\n\n\/* --- image slot: holds its aspect ratio empty, and gets out of the way full - *\/\n.bp-scan .bp-scan-slot {\n  display: flex; align-items: center; justify-content: center; text-align: center;\n  aspect-ratio: 16 \/ 9; padding: var(--bp-s-4); margin-block: 0 var(--bp-s-5);\n  border: 2px dashed var(--bp-green); border-radius: var(--bp-radius-card);\n  background: var(--bp-lime-soft); color: var(--bp-teal);\n}\n.bp-scan .bp-scan-slot p { font-size: var(--bp-fs-small); font-weight: 700; margin-block: 0; }\n.bp-scan .wp-block-image { margin-block: 0 var(--bp-s-5); }\n.bp-scan .wp-block-image img { display: block; width: 100%; height: auto;\n  aspect-ratio: 16 \/ 9; object-fit: cover;\n  border-radius: var(--bp-radius-card); box-shadow: var(--bp-shadow); }\n.bp-scan .wp-block-image figcaption { font-size: var(--bp-fs-foot); line-height: 1.6;\n  color: var(--bp-foot); text-align: left; margin-block: var(--bp-s-2) 0; }\n\n\/* --- 767 and below. Not a shrink of desktop: the type scale, the side padding\n       and the button all change, and the verifier card goes to one column. --- *\/\n@media (max-width: 767px) {\n  .bp-scan {\n    --bp-fs-h1: 30px; --bp-fs-h2: 26px; --bp-fs-h3: 19px; --bp-fs-body: 16px;\n    --bp-fs-btn: 16px; --bp-fs-eyebrow: 14px; --bp-side: 20px;\n    --bp-s-8: 48px; --bp-s-7: 36px;\n  }\n  .bp-scan .bp-scan-lead { font-size: 17px; }\n  .bp-scan .bp-scan-band-range { font-size: 20px; }\n  .bp-scan .wp-block-button { width: 100%; }\n  .bp-scan .wp-block-button__link { width: 100%; padding: 15px 20px; }\n  .bp-scan .bp-scan-verify { grid-template-columns: minmax(0, 1fr); gap: var(--bp-s-4); }\n  .bp-scan .bp-scan-items li { padding: var(--bp-s-3) var(--bp-s-3) var(--bp-s-3) 50px; }\n  .bp-scan .bp-scan-items li::before { left: var(--bp-s-3); }\n  .bp-scan .bp-scan-inst { padding: var(--bp-s-4) var(--bp-s-4) var(--bp-s-4) var(--bp-s-5); }\n  .bp-scan .bp-scan-slot { aspect-ratio: 4 \/ 3; }\n}\n@media (prefers-reduced-motion: reduce) { .bp-scan * { transition-duration: 0ms; } }\n\n\n\/* ===========================================================================\n   V2 (T185). The direct-marketing layer, on the same frame.\n\n   Jesse, 2026-08-22: the page has to be a direct-response page as well as an\n   SEO page. A headline on the problem, a hero box that sells the scan with a\n   picture of the RESULT, a problem section, the false solution and the bridge,\n   the solution, and only then the validated half. Every section carries a\n   visual, and the visuals are screenshots of the real software.\n\n   Nothing below replaces a v1 rule: v1 renders unchanged from the same sheet.\n   These are additional components plus two overrides, both marked.\n   =========================================================================== *\/\n\n.bp-scan { --bp-hero-gap: 56px; --bp-screen-w: 380px; --bp-portrait: 132px; }\n\n\/* A <figure> carries a 40px inline margin from the browser's own default sheet,\n   and core\/image is a <figure>. Measured on the v2 preview 2026-08-26: every\n   screenshot rendered 600px wide inside a 680px column, and in the author card\n   the 108px figure resolved to 28px while the portrait inside it stayed 108 and\n   overlapped the name. v1 never showed it because v1 ships no imagery. *\/\n.bp-scan .wp-block-image { margin-inline: 0; }\n\n\/* ONE CONTAINER, TOP TO BOTTOM (T185 round 4).\n   ---------------------------------------------------------------------------\n   Rounds 1 to 3 ran two widths down the same page: 1120 for the hero and the\n   paired sections, 880 for everything else, and inside the 880 sections the\n   620 reading measure was applied as the FOOTPRINT of the whole block rather\n   than as a cap on line length. Measured at 1440 on 2026-08-26, that put seven\n   sections on a left-aligned strip with 260 to 480 pixels of empty page beside\n   them, and the operator's read was the honest one: the page falls apart below\n   the fold.\n\n   The rule now, and `design_selfcheck.py` asserts it: every section's content\n   spans ONE container. A line of prose still never exceeds the measure, but the\n   BLOCK it sits in is laid out across the container (two columns, a grid, a\n   card, a band), never left as a strip with a hole beside it. *\/\n.bp-scan--v2 {\n  \/* 1120 was already the hero's width and the paired sections'. It is now every\n     section's width, so the page has one edge on the left and one on the right\n     from the first pixel to the last. The reading column did NOT move: measured\n     on the live page, 17px body in a 720 column runs 89 characters to the line\n     and in 660 it runs 86, against a 60 to 80 target; 620 measures 74. *\/\n  --bp-measure: 1120px; --bp-prose: 620px;\n  \/* two type steps moved into the house design-pass ranges\n     (agency\/skills\/funnel-page-design-pass, rule 2). v1 keeps its own values, so\n     the page the hub accepted on 2026-08-21 still renders byte for byte. *\/\n  --bp-fs-eyebrow: 13px;\n}\n@media (max-width: 767px) {\n  \/* 34 rather than 32, and the reason is arithmetic rather than taste: with\n     body copy on its 16px readability floor, the offer sentence has to be at\n     least 20px (1.25x body) and at most 62 percent of the H1. Against a 32px H1\n     those two have no overlap at all; against 34 they meet at 21. *\/\n  .bp-scan--v2 { --bp-fs-h1: 34px; --bp-fs-eyebrow: 12px; }\n}\n\/* Sixteen numbered sources. Round 3 gave them a 720 measure in one column, which\n   at 1120 is a strip with 400px of page beside it; they run in two columns now.\n   The number is drawn by a COUNTER rather than by the list marker, because a\n   marker sits in the list's own padding and in a multi-column box that padding\n   belongs to the first column, so every number in the second column would hang\n   outside it. v1 keeps its markers: this is scoped to v2. *\/\n.bp-scan--v2 .bp-scan-refs {\n  max-width: none; columns: 2; column-gap: var(--bp-hero-gap);\n  list-style: none; padding-left: 0; counter-reset: bpref;\n}\n.bp-scan--v2 .bp-scan-refs li {\n  counter-increment: bpref; position: relative; padding-left: 28px;\n  break-inside: avoid; -webkit-column-break-inside: avoid;\n}\n.bp-scan--v2 .bp-scan-refs li::before {\n  content: counter(bpref) \".\"; position: absolute; left: 0; top: 0;\n  font-weight: 600; color: var(--bp-foot);\n}\n\/* A CARD may be as wide as the column; the text inside it may not. At the v2\n   measure the instrument cards ran 101 characters to the line, measured on the\n   live page 2026-08-26, against a 60 to 80 target. The card keeps its width and\n   the reading column inside it is capped. *\/\n.bp-scan--v2 .bp-scan-bridge > p, .bp-scan--v2 .bp-scan-items li,\n.bp-scan--v2 .bp-scan-checks li { max-width: 640px; }\n\/* ONE RADIUS PER ROLE. A card is 20 (`--bp-radius-card`) and a tile or a chip is\n   10 (`--bp-radius-btn`). The instrument and safety cards were on a third value,\n   12, which nothing else on the page used. v1 keeps its own, so the page the hub\n   accepted on 2026-08-21 renders as it did. *\/\n.bp-scan--v2 .bp-scan-inst, .bp-scan--v2 .bp-scan-safety {\n  border-radius: var(--bp-radius-card);\n}\n.bp-scan--v2 .bp-scan-safety { box-shadow: inset 5px 0 0 var(--bp-teal), var(--bp-shadow-soft); }\n\/* ONE CARD PADDING, too: 24 all round, and 32 on the left of the cards that carry\n   an inset bar there. Audited on the built page 2026-08-26, the four card types\n   were on three different paddings, one of them asymmetric top to bottom. *\/\n.bp-scan--v2 .bp-scan-inst {\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n}\n\/* small text fits more characters per pixel, so it needs a narrower column, not\n   the same one: 14px in a 640 column is 93 characters *\/\n.bp-scan--v2 .bp-scan-bandnote,\n\/* named through its parent, because `.bp-scan-authorbody > *` sets max-width to\n   none at the same specificity and later in the sheet *\/\n.bp-scan--v2 .bp-scan-authorbody > .bp-scan-authorbio { max-width: 480px; }\n\n\n\/* --- hero, two columns ----------------------------------------------------- *\/\n.bp-scan .bp-scan-hero2 {\n  display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);\n  grid-template-areas: \"head box\" \"tail box\";\n  grid-template-rows: auto 1fr;\n  column-gap: var(--bp-hero-gap); row-gap: var(--bp-s-5);\n  align-items: start; margin-block: 0;\n}\n.bp-scan .bp-scan-hero2 > * { margin-block: 0; }\n.bp-scan .bp-scan-hero-head { grid-area: head; }\n.bp-scan .bp-scan-herobox { grid-area: box; }\n.bp-scan .bp-scan-hero-tail { grid-area: tail; }\n.bp-scan .bp-scan-hero2 > .wp-block-group > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-hero2 h1 { margin-block: 0; }\n.bp-scan .bp-scan-hero-tail > *:last-child { margin-block-end: 0; }\n\n\/* the box that sells the scan. A card, on the page's own colour, so it reads as\n   the product and not as another paragraph. *\/\n.bp-scan .bp-scan-herobox {\n  display: flex; flex-direction: column;\n  background: linear-gradient(180deg, #FFFFFF 0%, #F7F9F1 100%);\n  border: 1px solid var(--bp-sand); border-radius: var(--bp-radius-card);\n  box-shadow: var(--bp-shadow); padding: var(--bp-s-5); margin-block: 0;\n}\n.bp-scan .bp-scan-herobox > * { margin-block: 0 var(--bp-s-4); }\n.bp-scan .bp-scan-herobox > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-herobox .wp-block-buttons { margin-block: 0; }\n.bp-scan .bp-scan-herobox .wp-block-button { width: 100%; }\n.bp-scan .bp-scan-herobox .wp-block-button__link { width: 100%; }\n.bp-scan .bp-scan-boxeyebrow {\n  font-size: var(--bp-fs-eyebrow); font-weight: 600; letter-spacing: 0.08em;\n  text-transform: uppercase; color: var(--bp-green-aa);\n}\n.bp-scan .bp-scan-boxpitch {\n  font-size: 26px; font-weight: 700; line-height: 1.25; color: var(--bp-ink);\n  letter-spacing: -0.01em;\n}\n.bp-scan .bp-scan-boxlead { font-size: var(--bp-fs-small); line-height: 1.65;\n  color: var(--bp-foot); }\n.bp-scan .bp-scan-boxafter { font-size: var(--bp-fs-foot); line-height: 1.6;\n  color: var(--bp-foot); margin-block: var(--bp-s-4) var(--bp-s-2); }\n\n\/* --- screenshots ----------------------------------------------------------- *\/\n\/* OVERRIDE 1 of 2. v1 crops every image to 16:9 and covers, which is right for\n   photography and destroys a screenshot: it would cut the top off the result\n   card. Inside a shot figure the image keeps its own ratio. *\/\n.bp-scan .bp-scan-shot { margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-shot img {\n  aspect-ratio: auto; object-fit: contain; width: 100%; height: auto;\n  display: block; border-radius: 14px; border: 1px solid var(--bp-sand);\n  box-shadow: var(--bp-shadow); background: var(--bp-white);\n}\n.bp-scan .bp-scan-shot figcaption {\n  font-size: var(--bp-fs-foot); line-height: 1.6; color: var(--bp-foot);\n  text-align: left; margin-block: var(--bp-s-3) 0; max-width: var(--bp-prose);\n}\n\/* the hero's result crop sits INSIDE the box, so it carries the box's own\n   surface rather than a second card border *\/\n.bp-scan .bp-scan-herobox .bp-scan-shot img { box-shadow: var(--bp-shadow-soft); }\n\/* the hero's screenshot is introduced by the line above it, so its own caption\n   would be the same sentence twice on one picture *\/\n.bp-scan .bp-scan-shot--nocap figcaption { display: none; }\n\n\/* --- FIGURE RHYTHM (T185 round 3) ------------------------------------------\n   The operator's read, 2026-08-26: the caption under the hero picture is stuck\n   to it, and on a phone the start button is stuck to it too. Neither is a spot\n   fix, so this is the rule the whole page obeys and `design_selfcheck.py`\n   asserts at both viewports:\n\n     an image to the line that DESCRIBES it     at least 8px   (--bp-s-2)\n     a figure to the NEXT BLOCK                 at least 24px  (--bp-s-5)\n\n   Two minimums rather than one, because a caption belongs to its picture and a\n   button does not: the caption sits close enough to read as one unit with the\n   image, and the next block sits far enough to read as the next thing. Both\n   numbers are steps on the token scale; his ask was six to eight. A figure's own\n   caption already sits on 12px (the `.bp-scan-shot figcaption` rule above). *\/\n\/* the hero box's lead IS the hero picture's caption. It is simply not inside the\n   <figure>, so it is spaced by hand at the caption minimum. *\/\n.bp-scan .bp-scan-herobox > .bp-scan-screen { margin-block: 0 var(--bp-s-2); }\n.bp-scan .bp-scan-herobox > .bp-scan-boxlead { margin-block: 0 var(--bp-s-5); }\n\n\/* --- the screen frame: a screen, not a floating rectangle ------------------ *\/\n\/* A hairline and a shadow, NOT a bezel. The screenshot already carries the\n   app's own page background and the app's own card inside it, so a padded frame\n   put a third rounded rectangle around two and the hero read as boxes in boxes. *\/\n\/* margin-INLINE only. `margin: 0 auto` here also set margin-bottom to 0, and\n   because this rule sits later in the sheet than the hero box's own child rule\n   it won, so the caption under the hero picture touched it at 1440 and the start\n   button touched it at 390 (measured, both 0px, 2026-08-26). The vertical gap is\n   the figure-rhythm rule's business and is set below. *\/\n.bp-scan .bp-scan-screen {\n  position: relative; max-width: var(--bp-screen-w); margin-inline: auto;\n  border-radius: 16px; border: 1px solid var(--bp-sand);\n  box-shadow: 0 18px 40px rgba(0,88,89,0.14);\n  overflow: hidden;\n}\n\/* the lime rule the app draws across the top of that very screen *\/\n.bp-scan .bp-scan-screen::before {\n  content: \"\"; position: absolute; inset: 0 0 auto 0; height: 4px;\n  background: linear-gradient(90deg, var(--bp-lime) 0%, var(--bp-green) 62%,\n                              rgba(183,203,51,0) 100%);\n}\n.bp-scan .bp-scan-screen .bp-scan-shot { margin-block: 0; }\n.bp-scan .bp-scan-screen .bp-scan-shot img {\n  border-radius: 0; border: 0; box-shadow: none; display: block; }\n\n\/* Display widths. A questionnaire step is a tall screen: printed at the full\n   column it is 1300 pixels of one picture, and nine of those in a row is a\n   scroll rather than a page. The width is per slot, which is also where the\n   variation across the page comes from. *\/\n.bp-scan .bp-scan-shot--wide { max-width: none; }\n.bp-scan .bp-scan-shot--mid { max-width: 700px; }\n.bp-scan .bp-scan-shot--narrow { max-width: 560px; }\n\/* a phone screenshot printed 880 wide stops reading as a phone *\/\n.bp-scan .bp-scan-shot--phone { max-width: 320px; }\n\/* the hero's second screenshot is capped, because the whole first screen has to\n   fit one: the headline, the promise, the button and both pictures of the\n   product. Uncapped it pushed the next section past the fold at 1440x900. *\/\n.bp-scan .bp-scan-hero2 .bp-scan-shot { max-width: 380px; }\n.bp-scan .bp-scan-shots {\n  display: grid; gap: var(--bp-s-4);\n  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n  margin-block: 0 var(--bp-s-5);\n}\n.bp-scan .bp-scan-shots > * { margin-block: 0; }\n\n\/* --- TWO COLUMNS WHERE A SECTION CARRIES A SCREENSHOT (T185 round 3) --------\n   Jesse through the operator, 2026-08-26: a section that carries a screenshot\n   is laid out at 1440 as text on one side and the picture on the other.\n\n   THE ARITHMETIC, because it is what decides the ratio. The SECTION widens to\n   the 1120 the hero already uses; the READING COLUMN does not, because a card\n   may be as wide as its column and a line of text may not (the same rule the\n   instrument cards obey). 620 of prose plus the hero's own 56 gap leaves 444\n   for the picture, which is inside 20 percent of the 560 the narrow shots were\n   already printed at, so the pair costs the screenshots almost nothing and\n   takes roughly a third off the section's height.\n\n   Phones stack, text first, and the row gap is the figure minimum. *\/\n.bp-scan .bp-scan-split {\n  display: grid; align-items: center;\n  grid-template-columns: minmax(0, var(--bp-prose)) minmax(0, 1fr);\n  column-gap: var(--bp-hero-gap); row-gap: var(--bp-s-5);\n  margin-block: 0 var(--bp-s-6);\n}\n\/* the two columns sit on their shared middle rather than on their shared top.\n   Round 3 top-aligned them, and where the picture is materially shorter than the\n   text that put the whole difference at the bottom of the picture column as one\n   hole; split in two it reads as a margin. *\/\n\/* an EVEN pair, for a section whose text runs long and whose screen is tall:\n   532 and 532 rather than 620 and 444, so the picture gets 20 percent more\n   height and 20 percent more type size and the two columns end together. *\/\n.bp-scan .bp-scan-split--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n.bp-scan .bp-scan-split > * { margin-block: 0; }\n.bp-scan .bp-scan-split > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-split-text > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-sec > .bp-scan-split:last-child { margin-block-end: 0; }\n\/* the picture on the left, the text on the right. Placed rather than reordered,\n   so the markup order stays text-then-picture and a phone gets the right order\n   with no rule of its own. *\/\n.bp-scan .bp-scan-split--flip { grid-template-columns: minmax(0, 1fr) minmax(0, var(--bp-prose)); }\n.bp-scan .bp-scan-split--flip > .bp-scan-split-text { grid-area: 1 \/ 2; }\n.bp-scan .bp-scan-split--flip > .bp-scan-split-media { grid-area: 1 \/ 1; }\n\/* --- two columns of TEXT, for a block that is not a picture ---------------- *\/\n\/* Same container, same gutter as the split, so a section that pairs prose with\n   prose sits on the same edges as one that pairs prose with a screenshot. *\/\n.bp-scan .bp-scan-cols {\n  display: grid; align-items: start;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  column-gap: var(--bp-hero-gap); row-gap: var(--bp-s-5);\n  margin-block: 0 var(--bp-s-5);\n}\n.bp-scan .bp-scan-cols > * { margin-block: 0; }\n.bp-scan .bp-scan-col > * { max-width: none; }\n.bp-scan .bp-scan-col > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-sec > .bp-scan-cols:last-child { margin-block-end: 0; }\n@media (max-width: 900px) {\n  .bp-scan .bp-scan-cols { grid-template-columns: minmax(0, 1fr); }\n}\n\n\/* the figure fills its column: every display width on this page was chosen for\n   the full reading column, and this column is narrower than all of them *\/\n.bp-scan .bp-scan-split-media .bp-scan-shot { max-width: none; margin-block: 0; }\n.bp-scan .bp-scan-split-media > *:last-child { margin-block-end: 0; }\n\/* a heading over a 1120 section would run 120 characters; it keeps a heading\n   measure while the block under it keeps the width *\/\n.bp-scan--v2 .bp-scan-sec > h2 { max-width: 820px; }\n\/* a running note under a block that spans the container: two columns, so it\n   ends where the block above it ends instead of trailing off to the left *\/\n.bp-scan--v2 .bp-scan-sec > .bp-scan-note,\n.bp-scan--v2 .bp-scan-sec > .bp-scan-disclosure {\n  max-width: none; columns: 2; column-gap: var(--bp-hero-gap);\n}\n\n\n\/* --- the three instrument cards, across the container --------------------- *\/\n\/* Stacked, each card ran the full 880 with its text capped at 640 inside it, so\n   the section was a strip with a hole and each card was a card with a hole. Three\n   across the container is one row, equal heights, and the card is now 362 wide so\n   its text fills it. *\/\n.bp-scan .bp-scan-instgrid {\n  display: grid; gap: var(--bp-s-4);\n  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n  align-items: stretch; margin-block: 0 var(--bp-s-5);\n}\n\/* Equal height, and the content is NOT bottom-anchored. Anchoring it was tried\n   on 2026-08-26 and rejected on sight: pushing the mandatory sentence to the\n   bottom of every card lined the three footers up and opened a 200px void in the\n   middle of the short one. Contiguous content inside an equal-height card beats\n   a tidy footer line. *\/\n.bp-scan .bp-scan-instgrid > .bp-scan-inst { margin-block: 0; height: 100%; }\n\n\/* --- the closing CTA as a band ------------------------------------------- *\/\n\/* The page's last beat. A wash section with a left-aligned heading, one line and\n   a button read as another paragraph; a full-bleed teal band with the offer\n   centred in it reads as the end of the page. Teal solid rather than the token\n   gradient, so it does not read as a second copy of the dark honesty section. *\/\n.bp-scan .bp-scan-sec--band {\n  background: var(--bp-teal); color: var(--bp-white);\n  padding-block: var(--bp-s-8); text-align: center;\n}\n.bp-scan .bp-scan-sec--band > * { margin-inline: auto; }\n.bp-scan .bp-scan-sec--band h2 { color: var(--bp-white); }\n.bp-scan .bp-scan-sec--band h2::before { left: 50%; transform: translateX(-50%); }\n.bp-scan .bp-scan-sec--band > p { color: rgba(255,255,255,0.92); max-width: var(--bp-prose); }\n.bp-scan .bp-scan-sec--band .wp-block-buttons { justify-content: center; }\n.bp-scan .bp-scan-sec--band .wp-block-button__link {\n  background: var(--bp-lime); color: var(--bp-ink); box-shadow: 0 10px 30px rgba(0,0,0,0.18);\n}\n.bp-scan .bp-scan-sec--band .wp-block-button__link:hover {\n  background: var(--bp-white); color: var(--bp-teal);\n}\n.bp-scan .bp-scan-sec--band .bp-scan-ctamicro { color: rgba(255,255,255,0.82); }\n@media (max-width: 900px) {\n  .bp-scan .bp-scan-split, .bp-scan .bp-scan-split--flip,\n  .bp-scan .bp-scan-split--even { grid-template-columns: minmax(0, 1fr); }\n  .bp-scan .bp-scan-split--flip > .bp-scan-split-text { grid-area: 1 \/ 1; }\n  .bp-scan .bp-scan-split--flip > .bp-scan-split-media { grid-area: 2 \/ 1; }\n}\n\n\/* --- problem, false solution, bridge --------------------------------------- *\/\n.bp-scan .bp-scan-kicker {\n  font-size: 19px; line-height: 1.55; font-weight: 600; color: var(--bp-green-aa);\n  margin-block: calc(var(--bp-s-5) * -1 + var(--bp-s-2)) var(--bp-s-5);\n}\n.bp-scan .bp-scan-bridge {\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-radius: var(--bp-radius-card);\n  box-shadow: inset 5px 0 0 var(--bp-teal), var(--bp-shadow-soft);\n  padding: var(--bp-s-5) var(--bp-s-5) var(--bp-s-5) var(--bp-s-6);\n  margin-block: 0 var(--bp-s-5);\n}\n.bp-scan .bp-scan-bridge > * { margin-block: 0 var(--bp-s-3); max-width: none; }\n.bp-scan .bp-scan-bridge > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-bridgelead {\n  font-size: var(--bp-fs-h3); font-weight: 700; line-height: 1.3;\n  color: var(--bp-teal);\n}\n\/* the bridge that CLOSES the evidence runs the whole container, so its button\n   goes on the same line as its sentence rather than under it at the far left *\/\n.bp-scan .bp-scan-bridge--row {\n  display: flex; flex-wrap: wrap; align-items: center;\n  justify-content: space-between; gap: var(--bp-s-4) var(--bp-s-6);\n}\n.bp-scan .bp-scan-bridge--row > * { margin-block: 0; }\n.bp-scan .bp-scan-bridge-text > * { margin-block: 0 var(--bp-s-2); max-width: none; }\n.bp-scan .bp-scan-bridge-text > *:last-child { margin-block-end: 0; }\n@media (max-width: 767px) {\n  .bp-scan .bp-scan-bridge--row .wp-block-buttons { width: 100%; }\n}\n\n\/* --- what you get, as a checked list --------------------------------------- *\/\n.bp-scan .bp-scan-checks { list-style: none; padding-left: 0; margin-block: 0 var(--bp-s-5); }\n.bp-scan .bp-scan-checks li {\n  position: relative; padding-left: 36px; margin-block-end: var(--bp-s-3);\n  font-size: var(--bp-fs-body); line-height: 1.6;\n}\n.bp-scan .bp-scan-checks li::before {\n  content: \"\"; position: absolute; left: 0; top: 7px; width: 20px; height: 20px;\n  border-radius: 50%; background: var(--bp-lime-soft);\n  border: 2px solid var(--bp-green-aa);\n}\n.bp-scan .bp-scan-checks li::after {\n  content: \"\"; position: absolute; left: 6px; top: 12px; width: 8px; height: 4px;\n  border-left: 2px solid var(--bp-green-aa); border-bottom: 2px solid var(--bp-green-aa);\n  transform: rotate(-45deg);\n}\n\n\/* --- the evidence section: reference marks --------------------------------- *\/\n.bp-scan .bp-scan-sup { font-size: 0.68em; line-height: 0; vertical-align: super; }\n\/* the hit area is padded out to clear 24px in both directions and the padding\n   is pulled straight back off with a negative margin, so the mark stays a\n   superscript and stops being a 15px tap target. Measured on the live page\n   2026-08-26: 17 targets under 24px before this, 0 after. *\/\n.bp-scan .bp-scan-sup a { text-decoration: none; font-weight: 700;\n  color: var(--bp-teal); padding: 9px 7px; margin: -9px -7px; }\n.bp-scan .bp-scan-sup a:hover { text-decoration: underline; }\n\/* a run of marks is ONE superscript holding several linked numbers, so the\n   separator is a real comma in the markup rather than a CSS pseudo-element on an\n   adjacent sibling: the sibling combinator skips text nodes and put a comma in\n   front of every second mark in a paragraph (live page, 2026-08-26) *\/\n.bp-scan .bp-scan-sup a + a { margin-left: 1px; }\n\/* THE EVIDENCE, AS CARDS IN TWO BALANCED COLUMNS (round 4).\n   Five blocks of uneven length. A two-column GRID would leave the fifth alone in\n   the left column with a hole beside it, which is the defect this round exists to\n   remove; CSS columns balance the five by height instead, so both columns end\n   together and no card is orphaned. `break-inside: avoid` keeps a card whole. *\/\n.bp-scan .bp-scan-scigrid { columns: 2; column-gap: var(--bp-hero-gap);\n  margin-block: 0 var(--bp-s-6); }\n.bp-scan .bp-scan-scigrid > * { margin-block: 0 var(--bp-s-4); }\n.bp-scan .bp-scan-sci {\n  break-inside: avoid; -webkit-column-break-inside: avoid;\n  background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-radius: var(--bp-radius-card); box-shadow: var(--bp-shadow-soft);\n  padding: var(--bp-s-5);\n}\n.bp-scan .bp-scan-sci > * { max-width: none; }\n.bp-scan .bp-scan-sci h3 { margin-block: 0 var(--bp-s-3); }\n.bp-scan .bp-scan-sci > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-srclead { font-size: var(--bp-fs-small); line-height: 1.7;\n  color: var(--bp-foot); margin-block: 0 var(--bp-s-5); max-width: var(--bp-foot-measure); }\n\/* Lighthouse 12.8.2 on the live page, 2026-08-26: --bp-foot (#6b6b6b) on the\n   beige surface reads 4.44:1 at 14px, just under the 4.5 AA floor. Ink on beige\n   reads 12.88:1. Same fix T147 made for the reference badge, same reason. *\/\n.bp-scan .bp-scan-sec--beige .bp-scan-srclead { color: var(--bp-ink); }\n\/* A SECTION DECK is the line under the heading that says what the section is for.\n   It was 14px, which put it BELOW the body copy it introduces and upside down\n   against a 31px heading. Body size now, in the footnote ink, on the reading\n   measure: one role, one size, wherever it appears. It has to sit AFTER the base\n   rule above or it loses to it at the same specificity. *\/\n.bp-scan--v2 .bp-scan-srclead {\n  font-size: var(--bp-fs-body); line-height: 1.7; max-width: var(--bp-prose);\n}\n\n\/* --- author block ---------------------------------------------------------- *\/\n\/* THREE ZONES ACROSS THE CARD (round 4b): the portrait, the identity rail, the\n   bio, and the metadata row spanning under all three. Two zones left the bio at\n   its 480px reading measure inside a 938px column, so 458 by 95 pixels of the\n   card was empty and the role and the name held 200 pixels of type on a 938\n   pixel line. Named areas rather than auto-placement, because the card has to\n   fold twice: three columns at 1024 and up, the identity and the bio stacked\n   beside the portrait on a tablet, everything stacked on a phone. *\/\n.bp-scan .bp-scan-author {\n  display: grid;\n  grid-template-columns: var(--bp-portrait) minmax(0, 260px) minmax(0, 1fr);\n  grid-template-areas: \"photo id bio\" \"meta meta meta\";\n  gap: var(--bp-s-5) var(--bp-s-6);\n  \/* the figure is sized explicitly rather than left to the grid track, because a\n     <figure> with the UA default margin does not fill its track *\/\n  align-items: start; background: var(--bp-white); border: 1px solid var(--bp-sand);\n  border-radius: var(--bp-radius-card); box-shadow: var(--bp-shadow-soft);\n  padding: var(--bp-s-5); margin-block: 0 var(--bp-s-4); max-width: none;\n}\n.bp-scan .bp-scan-author > * { margin-block: 0; }\n.bp-scan .bp-scan-author > .wp-block-image { grid-area: photo; }\n.bp-scan .bp-scan-authorid { grid-area: id; }\n.bp-scan .bp-scan-author > .bp-scan-authorbody { grid-area: bio; }\n.bp-scan .bp-scan-author > .bp-scan-authormeta { grid-area: meta; }\n.bp-scan .bp-scan-authorid > * { margin-block: 0 var(--bp-s-2); max-width: none; }\n.bp-scan .bp-scan-authorid > *:last-child { margin-block-end: 0; }\n@media (max-width: 1023px) {\n  .bp-scan .bp-scan-author {\n    grid-template-columns: var(--bp-portrait) minmax(0, 1fr);\n    grid-template-areas: \"photo id\" \"photo bio\" \"meta meta\";\n  }\n}\n\/* OVERRIDE 2 of 2. Same reason as the screenshots: the portrait is a real\n   photograph in its own ratio and 16:9 cover would crop the face. *\/\n.bp-scan .bp-scan-author .wp-block-image { margin: 0; width: var(--bp-portrait); }\n.bp-scan .bp-scan-author .wp-block-image img {\n  aspect-ratio: 1 \/ 1; object-fit: cover; object-position: 50% 12%;\n  width: var(--bp-portrait); height: var(--bp-portrait); border-radius: 50%;\n  background: var(--bp-pale-teal); border: 2px solid var(--bp-lime);\n  box-shadow: none;\n}\n.bp-scan .bp-scan-authorbody > * { margin-block: 0 var(--bp-s-2); max-width: none; }\n.bp-scan .bp-scan-authorbody > *:last-child { margin-block-end: 0; }\n.bp-scan .bp-scan-authorname { font-size: 20px; font-weight: 700; line-height: 1.3;\n  color: var(--bp-ink); }\n.bp-scan .bp-scan-authorrole {\n  font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;\n  color: var(--bp-green-aa);\n}\n.bp-scan .bp-scan-authorbio { font-size: var(--bp-fs-small); line-height: 1.7; }\n\/* the bio has a column of its own now: 1072 of card inside its padding, less the\n   132 portrait, the 260 rail and two 32 gutters, is 616. At 14px that reads 100\n   characters to the line, so the bio goes to body size, where 616 measures 72. *\/\n.bp-scan--v2 .bp-scan-authorbody > .bp-scan-authorbio {\n  font-size: var(--bp-fs-body); line-height: var(--bp-lh-body); max-width: none;\n}\n\/* the author's own link measured 20px tall, under the 24px floor *\/\n.bp-scan .bp-scan-authorbody a, .bp-scan .bp-scan-authormeta a {\n  display: inline-block; padding-block: 4px;\n}\n\/* the link and the two dates on ONE row, ruled off the bio, so a card that runs\n   the whole container is anchored on its right edge instead of trailing off *\/\n.bp-scan .bp-scan-authormeta {\n  display: flex; flex-wrap: wrap; align-items: baseline;\n  justify-content: space-between; gap: var(--bp-s-2) var(--bp-s-5);\n  border-top: 1px solid var(--bp-sand);\n  \/* no top margin of its own: the card's grid row gap already puts 24 above the\n     rule, and adding another 16 made the row float *\/\n  padding-block-start: var(--bp-s-4); margin-block: 0;\n}\n.bp-scan .bp-scan-authormeta > * { margin-block: 0; max-width: none; }\n.bp-scan .bp-scan-dates { font-size: var(--bp-fs-foot); line-height: 1.6;\n  color: var(--bp-foot); margin-block: 0 var(--bp-s-4); }\n\n\/* --- the sticky CTA bar, phones only --------------------------------------- *\/\n\/* A page this long needs the offer within reach. It is one bar for the whole\n   page rather than a button per section, it never shows while the hero is on\n   screen (the hero has its own button), and the page reserves its height at the\n   bottom so the bar cannot cover the last line of the legal text. *\/\n.bp-scan .bp-scan-cta-bar { display: none; }\n@media (max-width: 767px) {\n  .bp-scan .bp-scan-cta-bar {\n    display: block; position: fixed; inset: auto 0 0 0; z-index: 40;\n    margin-block: 0; padding: var(--bp-s-3) var(--bp-side)\n      calc(var(--bp-s-3) + env(safe-area-inset-bottom, 0px));\n    background: rgba(255,255,255,0.94);\n    -webkit-backdrop-filter: saturate(150%) blur(10px);\n    backdrop-filter: saturate(150%) blur(10px);\n    border-top: 1px solid var(--bp-sand);\n    box-shadow: 0 -6px 22px rgba(0,88,89,0.10);\n    transform: translateY(105%); transition: transform 220ms ease;\n    pointer-events: none;\n  }\n  .bp-scan .bp-scan-cta-bar--on { transform: translateY(0); pointer-events: auto; }\n  .bp-scan .bp-scan-cta-bar .wp-block-buttons { margin-block: 0; }\n  .bp-scan .bp-scan-cta-bar .wp-block-button,\n  .bp-scan .bp-scan-cta-bar .wp-block-button__link { width: 100%; }\n  .bp-scan .bp-scan-cta-bar .wp-block-button__link { min-height: 48px; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .bp-scan .bp-scan-cta-bar { transition-duration: 0ms; }\n}\n\n\/* --- 900 and below: the hero stops being two columns before it gets thin ---- *\/\n@media (max-width: 900px) {\n  .bp-scan { --bp-hero-gap: 36px; }\n  \/* one column, and the picture of the result comes SECOND: headline, result,\n     button, then the detail *\/\n  .bp-scan .bp-scan-hero2 {\n    grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto;\n    grid-template-areas: \"head\" \"box\" \"tail\"; row-gap: var(--bp-s-5);\n  }\n  .bp-scan .bp-scan-hero2 .wp-block-buttons { margin-block: 0 var(--bp-s-3); }\n  \/* on a phone the caption goes UNDER the button, so the button is whole on the\n     first screen instead of a teal sliver at the bottom edge. Nothing is hidden\n     and no word is dropped; three lines of caption change places with a button. *\/\n  .bp-scan .bp-scan-herobox .wp-block-buttons { order: 1; margin-block: 0; }\n  .bp-scan .bp-scan-herobox .bp-scan-boxlead { order: 2; margin-block: var(--bp-s-3) 0; }\n  \/* and because the button is now what follows the picture, the gap under the\n     picture is the NEXT-BLOCK minimum rather than the caption minimum. This is\n     the second half of the operator's read: the start button was touching the\n     result picture at 390 (measured 0px, 2026-08-26). *\/\n  .bp-scan .bp-scan-herobox > .bp-scan-screen { margin-block: 0 var(--bp-s-5); }\n  .bp-scan .bp-scan-herobox { padding: var(--bp-s-4); }\n}\n@media (max-width: 767px) {\n  .bp-scan .bp-scan-boxpitch { font-size: 21px; }\n  .bp-scan .bp-scan-kicker { font-size: 17px; }\n  \/* one column here, so the gap between the portrait and the name stops being\n     the card's inner column gap and becomes a VERTICAL gap between a figure and\n     the block under it: the figure-rhythm minimum (measured 16px, 2026-08-26) *\/\n  .bp-scan .bp-scan-author {\n    grid-template-columns: minmax(0, 1fr);\n    grid-template-areas: \"photo\" \"id\" \"bio\" \"meta\";\n    gap: var(--bp-s-5);\n  }\n  .bp-scan .bp-scan-shot img { border-radius: 10px; }\n}\n\n\/* --- EVERY MULTI-COLUMN BLOCK COLLAPSES ON A SMALL SCREEN ------------------\n   In ONE block, and at the END of the sheet, because a `columns: 1` written\n   beside its own component loses to the `columns: 2` that is declared later at\n   the same specificity. That is the same trap the sticky bar's footer\n   reservation hit in round 2, and it cost a mobile page 2,900 pixels here before\n   it was measured: five evidence cards were rendering in two 150px columns.\n   Two columns of 260px would put six words on a line. *\/\n@media (max-width: 900px) {\n  .bp-scan .bp-scan-scigrid,\n  .bp-scan--v2 .bp-scan-refs,\n  .bp-scan--v2 .bp-scan-sec > .bp-scan-note,\n  .bp-scan--v2 .bp-scan-sec > .bp-scan-disclosure { columns: 1; }\n  .bp-scan .bp-scan-sci { padding: var(--bp-s-4) var(--bp-s-5); }\n  .bp-scan .bp-scan-scigrid > * { margin-block: 0 var(--bp-s-3); }\n}\n@media (max-width: 767px) {\n  \/* a card's 24px side padding is 14 percent of a 350px column and buys nothing\n     a phone needs, since the cards are one per row anyway. Measured: 16px all\n     round gives the evidence section 84 pixels back. *\/\n  .bp-scan .bp-scan-sci { padding: var(--bp-s-4); }\n}\n\n\/* --- the site's own header and footer (T229, Jesse 2026-09-05) --------------\n   The page has no header, no nav and no footer of its own any more: the theme\n   renders the site's on every page whose template is elementor_header_footer,\n   and this page is one of them. Nothing here styles them; the two rules below\n   are the join.\n\n   The sticky CTA bar is `position: fixed` at the bottom of the viewport, so the\n   page has to reserve its height at the very END of the document or the bar\n   covers the last thing on the page. That used to be this page's own footer;\n   it is the site's footer now. The rule lives in THIS page's stylesheet, so it\n   applies on the scan pages and nowhere else, and the site's footer template is\n   not touched (the same reasoning as the rule it replaces, measured live\n   2026-08-26). 80 is 48 plus 32, both scale steps, against a bar of 74. *\/\n@media (max-width: 767px) {\n  footer.elementor-location-footer {\n    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));\n  }\n}\n<\/style>\n<script id=\"bp-scan-attribution\">\n(function () {\n  var HOST = \"app.bioprofile.com\";\n  var KEYS = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_content\", \"utm_term\", \"bp_pl\"];\n  function forward() {\n    var q = new URLSearchParams(window.location.search);\n    var carry = [];\n    KEYS.forEach(function (k) {\n      var v = q.get(k);\n      if (v) { carry.push([k, v]); }\n    });\n    if (!carry.length) { return; }\n    var links = document.getElementsByTagName(\"a\");\n    Array.prototype.forEach.call(links, function (a) {\n      var u;\n      try { u = new URL(a.href); } catch (e) { return; }\n      if (u.hostname !== HOST) { return; }\n      carry.forEach(function (kv) { u.searchParams.set(kv[0], kv[1]); });\n      a.setAttribute(\"href\", u.toString());\n    });\n  }\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", forward);\n  } else {\n    forward();\n  }\n})();\n<\/script>\n<script id=\"bp-scan-stickycta\">\n(function () {\n  function arm() {\n    var bar = document.getElementById(\"bp-scan-cta-bar\");\n    var hero = document.querySelector(\".bp-scan-sec--hero\");\n    if (!bar || !hero || typeof IntersectionObserver === \"undefined\") { return; }\n    var io = new IntersectionObserver(function (rows) {\n      rows.forEach(function (row) {\n        bar.classList.toggle(\"bp-scan-cta-bar--on\", !row.isIntersecting);\n      });\n    }, { rootMargin: \"0px\" });\n    io.observe(hero);\n  }\n  \/\/ this block is the FIRST thing in the page, so the hero does not exist yet\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", arm);\n  } else {\n    arm();\n  }\n})();\n<\/script>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"WebPage\",\n  \"@id\": \"https:\/\/bioprofile.com\/scan-darmklachtentest\/\",\n  \"url\": \"https:\/\/bioprofile.com\/scan-darmklachtentest\/\",\n  \"name\": \"Darmklachtentest: je darmscore in 3 minuten | BioProfile\",\n  \"description\": \"Een opgeblazen buik, een stoelgang die doet wat hij wil. Zes vragen, gemodelleerd naar twee klachtenschalen, zetten er een getal op. Gratis, 3 minuten.\",\n  \"isPartOf\": {\n    \"@id\": \"https:\/\/bioprofile.com\/#website\"\n  },\n  \"about\": {\n    \"@type\": \"Thing\",\n    \"name\": \"Darmgezondheid\"\n  },\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jesse van der Velde\",\n    \"jobTitle\": \"Oprichter van BioProfile\",\n    \"url\": \"https:\/\/nl.linkedin.com\/in\/jessevdv\",\n    \"image\": \"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320.jpg\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"BioProfile\",\n    \"url\": \"https:\/\/bioprofile.com\/\"\n  },\n  \"citation\": [\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Sperber AD, Bangdiwala SI, Drossman DA, et al. Worldwide prevalence and burden of functional gastrointestinal disorders, results of Rome Foundation Global Study. Gastroenterology, 2021.\",\n      \"url\": \"https:\/\/doi.org\/10.1053\/j.gastro.2020.04.014\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Lovell RM, Ford AC. Global prevalence of and risk factors for irritable bowel syndrome: a meta-analysis. Clinical Gastroenterology and Hepatology, 2012.\",\n      \"url\": \"https:\/\/doi.org\/10.1016\/j.cgh.2012.02.029\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Suares NC, Ford AC. Prevalence of, and risk factors for, chronic idiopathic constipation in the community: systematic review and meta-analysis. American Journal of Gastroenterology, 2011.\",\n      \"url\": \"https:\/\/doi.org\/10.1038\/ajg.2011.164\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"El-Serag HB, Sweet S, Winchester CC, Dent J. Update on the epidemiology of gastro-oesophageal reflux disease: a systematic review. Gut, 2014.\",\n      \"url\": \"https:\/\/doi.org\/10.1136\/gutjnl-2012-304269\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Flik CE, Laan W, Smout AJPM, Weusten BLAM, de Wit NJ. Comparison of medical costs generated by IBS patients in primary and secondary care in the Netherlands. BMC Gastroenterology, 2015.\",\n      \"url\": \"https:\/\/doi.org\/10.1186\/s12876-015-0398-8\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Heaton KW, Radvan J, Cripps H, Mountford RA, Braddon FE, Hughes AO. Defecation frequency and timing, and stool form in the general population: a prospective study. Gut, 1992.\",\n      \"url\": \"https:\/\/doi.org\/10.1136\/gut.33.6.818\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Lewis en Heaton, Scandinavian Journal of Gastroenterology, 1997.\",\n      \"url\": \"https:\/\/www.tandfonline.com\/doi\/abs\/10.3109\/00365529709011203\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Blake MR, Raker JM, Whelan K. Validity and reliability of the Bristol Stool Form Scale in healthy adults and patients with diarrhoea-predominant irritable bowel syndrome. Alimentary Pharmacology and Therapeutics, 2016.\",\n      \"url\": \"https:\/\/doi.org\/10.1111\/apt.13746\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Svedlund en collega's, Digestive Diseases and Sciences, 1988.\",\n      \"url\": \"https:\/\/pubmed.ncbi.nlm.nih.gov\/3123181\/\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"B\u00f6hn L, St\u00f6rsrud S, T\u00f6rnblom H, Bengtsson U, Simr\u00e9n M. Self-reported food-related gastrointestinal symptoms in IBS are common and associated with more severe symptoms and reduced quality of life. American Journal of Gastroenterology, 2013.\",\n      \"url\": \"https:\/\/doi.org\/10.1038\/ajg.2013.105\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Bijkerk CJ, de Wit NJ, Stalman WAB, Knottnerus JA, Hoes AW, Muris JWM. Irritable bowel syndrome in primary care: the patients' and doctors' views on symptoms, etiology and management. Canadian Journal of Gastroenterology, 2003.\",\n      \"url\": \"https:\/\/doi.org\/10.1155\/2003\/532138\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Lacy BE, Mearin F, Chang L, et al. Bowel disorders. Gastroenterology, 2016.\",\n      \"url\": \"https:\/\/doi.org\/10.1053\/j.gastro.2016.02.031\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Rome IV diagnostische criteria voor PDS, Rome Foundation.\",\n      \"url\": \"https:\/\/www.mdcalc.com\/calc\/4007\/rome-iv-diagnostic-criteria-irritable-bowel-syndrome-ibs\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Ford AC, Sperber AD, Corsetti M, Camilleri M. Irritable bowel syndrome. The Lancet, 2020.\",\n      \"url\": \"https:\/\/doi.org\/10.1016\/S0140-6736(20)31548-8\"\n    },\n    {\n      \"@type\": \"CreativeWork\",\n      \"name\": \"Mujagic Z, Tigchelaar EF, Zhernakova A, et al. A novel biomarker panel for irritable bowel syndrome and the application in the general population. Scientific Reports, 2016.\",\n      \"url\": \"https:\/\/doi.org\/10.1038\/srep26420\"\n    }\n  ],\n  \"datePublished\": \"2026-08-27\",\n  \"dateModified\": \"2026-08-27\"\n}\n<\/script>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity bp-scan-rule\"\/>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--hero is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-hero2 is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-hero-head is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-eyebrow wp-block-paragraph\">BioProfile analysis \u00b7 gut scan<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">A bloated stomach and bowels that do whatever they like. Six questions put a number on it.<\/h1>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-herobox is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-boxpitch wp-block-paragraph\">Your result in 3 minutes<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-screen is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--nocap is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"510\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp\" alt=\"The result screen of the BioProfile gut scan on a phone, with a gut score of 48 and the reading band on noticeable\" class=\"wp-image-5093\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-300x199.webp 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19.webp 800w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-boxlead wp-block-paragraph\">Your gut score over the past few weeks, with the reading band it falls in and, for each question, the number that pulled your score down or up. All of it on your own screen, in your dashboard, and again in two weeks.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=gut-health&amp;lang=en\">Start the gut scan<\/a><\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-hero-tail is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-lead wp-block-paragraph\">Six questions about the past few weeks, modelled on two validated symptom scales for the stomach and the gut. You get a gut score from 0 to 100 with its reading band. An analysis of your answers, never a diagnosis.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-facts is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-fact wp-block-paragraph\">Free<\/p>\n\n\n\n<p class=\"bp-scan-fact wp-block-paragraph\">6 questions<\/p>\n\n\n\n<p class=\"bp-scan-fact wp-block-paragraph\">About 3 minutes<\/p>\n\n\n\n<p class=\"bp-scan-fact wp-block-paragraph\">Score from 0 to 100<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=gut-health&amp;lang=en\">Start the gut scan<\/a><\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your gut score is in your dashboard.<\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Six questions that lay bare why your belly never does the same thing twice, and what can and cannot be read from that<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-kicker wp-block-paragraph\">(and the evidence based reason why it is precisely these six)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After lunch your trousers sit tighter than before. Your bowel movements are a lottery: three days of nothing, then a morning when you dare not leave the house. A sandwich sometimes does nothing and sometimes everything. And at the GP it gets no further than a pat on the shoulder, because you are not ill. You just have a belly you cannot count on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The awkward thing about gut symptoms is that there is so much for sale. A stool test, an intolerance test, a microbiome analysis with a forty-page report. What is not for sale is an honest starting value: how much trouble, how often, from what. And without that starting value you still do not know after the test whether things are getting better, because you do not remember what your gut was like yesterday.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Researchers who did want to measure gut symptoms did it with two things: the form of your stool, which tells you surprisingly well how fast transit is, and the symptoms themselves, in clusters. Six questions about a few weeks, added up into a score from 0 to 100. Not a diagnosis. But a number. And a number you can follow.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--mid is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"768\" height=\"783\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-vraag-482f74b0-768x783.webp\" alt=\"The first two questions of the BioProfile gut scan, about the shape of your stool in seven types and about abdominal pain or discomfort\" class=\"wp-image-5095\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-vraag-482f74b0-768x783.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-vraag-482f74b0-294x300.webp 294w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-vraag-482f74b0-1004x1024.webp 1004w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-vraag-482f74b0.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Questions 1 and 2 of 6. The first is a choice from the seven types on the scale; after that you pick, for each question, the answer that comes closest to your ordinary days.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Most people start at the solution<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split bp-scan-split--flip is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">A probiotic. Gluten out, dairy out, a diet with a five-letter abbreviation, more fibre, less fibre. All of it understandable, and all of it starts in the same place: with what you are going to do about it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So a month later you still do not know whether it did anything. You have not written down anywhere how your belly was when you started, and gut complaints are exactly the complaints that jump around from day to day. Without a starting value, every change is a feeling about a feeling.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-bridge is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-bridgelead wp-block-paragraph\">We analyse the real cause first<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At BioProfile we turn the order around. First measure what is there now, with questions modelled on scales that someone else has validated, and only then talk about what you do with it. Analyse, and only then advise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The gut scan is the first step of that analysis, and an honest first step before any test at all.<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--narrow is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"768\" height=\"860\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-doelvraag-fcc2f103-768x860.webp\" alt=\"The question about what you would most like to improve, in the BioProfile scan, with the goal of this scan ticked\" class=\"wp-image-5096\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-doelvraag-fcc2f103-768x860.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-doelvraag-fcc2f103-268x300.webp 268w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-doelvraag-fcc2f103-914x1024.webp 914w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-doelvraag-fcc2f103.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">The scan starts with what you want to improve.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What you get back in about three minutes<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">You start with eight short questions about yourself. They do not count towards your score; they make sure we can read the rest properly. One of them you may skip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then come the six gut questions, about the past few weeks: the shape of your stool, abdominal pain or discomfort, a bloated feeling, regularity, reflux or heartburn, and symptoms after certain foods. Every question has five answers; the question about stool shape has seven, the seven types of the scale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You fill in your first name and email address. You see a first picture right away, and one tap on your dashboard puts your gut score on your screen, with its reading band. Your email holds a login link, so you can find your result again later and extend your scan into your full BioProfile.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--wide is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"448\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-startscherm-302b680d-768x448.webp\" alt=\"Start screen of the BioProfile gut scan with the button to begin\" class=\"wp-image-5097\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-startscherm-302b680d-768x448.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-startscherm-302b680d-300x175.webp 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-startscherm-302b680d-1024x597.webp 1024w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-startscherm-302b680d.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Where you land when you click the button on this page.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split bp-scan-split--flip is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">This is what is on your screen after about three minutes:<\/p>\n\n\n\n<ul class=\"wp-block-list bp-scan-checks\">\n\n<li>Your gut score from 0 to 100, over the past few weeks<\/li>\n\n\n<li>The reading band your score falls in, from high symptom burden to low burden<\/li>\n\n\n<li>For each question, how heavily it weighed on your score, from low to high, so you can see where the trouble lies<\/li>\n\n\n<li>An honest limit: what a questionnaire about your gut can and cannot say<\/li>\n\n\n<li>A login link in your email, so you can keep your result and repeat it in two weeks<\/li>\n\n<\/ul>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--narrow is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"576\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-aanmelden-33995ff1-768x576.webp\" alt=\"The screen where you fill in your first name and email address to see your result\" class=\"wp-image-5098\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-aanmelden-33995ff1-768x576.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-aanmelden-33995ff1-300x225.webp 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-aanmelden-33995ff1-1024x768.webp 1024w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-aanmelden-33995ff1.webp 1360w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">First name and email address, and your first picture is on your screen.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Repeat the scan in two weeks and you no longer have a feeling about your gut, you have two numbers.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=gut-health&amp;lang=en\">Start the gut scan<\/a><\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your gut score is in your dashboard.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What we ask you<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">This scan is about the past few weeks. You get six questions about your gut and your bowel movements, and for each question you pick the answer that comes closest to your ordinary days.<\/p>\n\n\n\n<ul class=\"wp-block-list bp-scan-items\">\n\n<li>Stool form<\/li>\n\n\n<li>Abdominal pain or discomfort<\/li>\n\n\n<li>Bloated feeling<\/li>\n\n\n<li>Regularity<\/li>\n\n\n<li>Reflux, heartburn or indigestion<\/li>\n\n\n<li>Symptoms after certain foods<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Every question counts towards its own scale. The software then reads your answers back to you question by question, from low to high, so you can see which of the six pulled your score down the most.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--split is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"863\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-latere-vragen-943184d0-768x863.webp\" alt=\"Question 3 and 4 of the BioProfile gut scan: a bloated feeling and the regularity of your bowel movements\" class=\"wp-image-5099\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-latere-vragen-943184d0-768x863.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-latere-vragen-943184d0-267x300.webp 267w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-latere-vragen-943184d0-911x1024.webp 911w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-latere-vragen-943184d0.webp 1080w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Questions 3 and 4. The same weeks, two other sides of your belly.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What this scan is based on<\/h2>\n\n\n\n<p class=\"bp-scan-srclead wp-block-paragraph\">The first two cards are the scales the six questions are modelled on: the shape of your stool as a signal of passage, and the symptom clusters. The third card is the description doctors use; we use it only to describe your pattern, and no diagnosis comes out of it: only a doctor can make one.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-instgrid is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-inst is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-badge bp-scan-badge--derive wp-block-paragraph\">modelled on<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bristol Stool Form Scale<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A one-question scale with seven types, validated against measured transit time through the gut. Types 1 to 2 point to slower transit, 3 to 4 to the usual range, 5 to 7 to faster transit. That is why we read your answer about your stools as a transit signal and not as a preference.<\/p>\n\n\n\n<p class=\"bp-scan-use wp-block-paragraph\">Modelled on, not validated as, this instrument.<\/p>\n\n\n\n<p class=\"bp-scan-validfor wp-block-paragraph\">Validated for: transit time through the gut.<\/p>\n\n\n\n<p class=\"bp-scan-cite wp-block-paragraph\"><a href=\"https:\/\/www.tandfonline.com\/doi\/abs\/10.3109\/00365529709011203\">Lewis and Heaton, Scandinavian Journal of Gastroenterology, 1997.<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-inst is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-badge bp-scan-badge--derive wp-block-paragraph\">modelled on<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gastrointestinal Symptom Rating Scale<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A scale of 15 questions with five symptom clusters: reflux, abdominal pain, indigestion, diarrhoea and constipation. We use that cluster structure as a model for which questions we ask and how they group, and we score severity continuously, just as the original does, without a diagnostic band.<\/p>\n\n\n\n<p class=\"bp-scan-use wp-block-paragraph\">Modelled on, not validated as, this instrument.<\/p>\n\n\n\n<p class=\"bp-scan-validfor wp-block-paragraph\">Validated for: severity of stomach and bowel symptoms.<\/p>\n\n\n\n<p class=\"bp-scan-cite wp-block-paragraph\"><a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/3123181\/\">Svedlund and colleagues, Digestive Diseases and Sciences, 1988.<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-inst is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-badge bp-scan-badge--reference wp-block-paragraph\">used descriptively only<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rome IV symptom questions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Rome IV criteria are how the field of gastroenterology and hepatology describes the symptom pattern of irritable bowel syndrome: recurring abdominal pain with a change in the frequency or the form of your stool. We use the underlying symptom questions descriptively, to describe your pattern, and never the diagnostic rule, because this is an analysis and not a diagnosis.<\/p>\n\n\n\n<p class=\"bp-scan-use wp-block-paragraph\">Used only descriptively. We do not apply the diagnostic rule behind it here.<\/p>\n\n\n\n<p class=\"bp-scan-validfor wp-block-paragraph\">Validated for: diagnostic classification of functional bowel disorders.<\/p>\n\n\n\n<p class=\"bp-scan-cite wp-block-paragraph\"><a href=\"https:\/\/www.mdcalc.com\/calc\/4007\/rome-iv-diagnostic-criteria-irritable-bowel-syndrome-ibs\">Rome IV diagnostic criteria for irritable bowel syndrome, Rome Foundation.<\/a><\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--dark is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What this scan cannot tell you<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-cols is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">What a questionnaire can and cannot do here<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Self-reporting gives a valid picture of the symptom burden and the transit pattern of the gut. It cannot establish irritable bowel syndrome or any other bowel disease, and the questions above are written in house and modelled on those instruments instead of being licensed copies of them. So this is a structured, scientifically grounded picture and not a validated clinical score. That is why your reliability reads as average and not as high: only blood or stool testing can lift it.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-limitcite wp-block-paragraph\">BioProfile scoring rules, measurement class A, reliability capped at medium on the basis of questionnaire data alone.<\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">How your score is built up<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-split bp-scan-split--flip is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-split-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\">Each question gets points from little trouble to a lot of trouble (stool form 0 to 3, the other five 0 to 4), added up and converted into a gut score from 0 to 100. Higher is better.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-scale bp-scan-scale--n4 is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--alert is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">0 to 39<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">high symptom burden<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--warn is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">40 to 59<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">noticeable<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--mild is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">60 to 79<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">mild<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-band bp-scan-band--ok is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-band-range wp-block-paragraph\">80 to 100<\/p>\n\n\n\n<p class=\"bp-scan-band-label wp-block-paragraph\">low burden<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-bandnote wp-block-paragraph\">Reading bands, not clinical cut-off values. Your gut health questions are written in house and modelled on validated instruments, so no published cut-off value applies to exactly this score. Higher is always healthier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This scan falls into measurement class A: a questionnaire is the usual way here to measure symptom burden and transit pattern, and still the reliability of your score stays capped at average as long as only your answers count. What lifts that ceiling is blood or stool testing, and you can add that in your full BioProfile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On your results screen that reliability appears as a label next to your score: medium reliability, symptom based. That label is not an aside; it tells you exactly how much weight you may put on the number.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-split-media is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-shot bp-scan-shot--split is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"845\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-score-e0cc6b1d-768x845.webp\" alt=\"The gut questions read back on the result screen of the BioProfile scan, each one with your answer and a score from 0 to 100\" class=\"wp-image-5094\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-score-e0cc6b1d-768x845.webp 768w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-score-e0cc6b1d-273x300.webp 273w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-score-e0cc6b1d.webp 880w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">This is how the software builds your score: each question gets its own number from 0 to 100, the lowest at the top.<\/figcaption><\/figure>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--wash is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">What the science says about this<\/h2>\n\n\n\n<p class=\"bp-scan-srclead wp-block-paragraph\">This page describes a measuring instrument, so below you can read where that instrument comes from and what has been studied about it. Every claim points to the source it appears in.<\/p>\n\n\n\n<div class=\"wp-block-group bp-scan-scigrid is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Four in ten people have a belly that will not cooperate, and almost nobody measures it<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sperber and the Rome Foundation surveyed 73,076 adults in 33 countries: over the internet 40.3 per cent met the description of at least one functional stomach or gut complaint, in household interviews 20.7 per cent, women more often than men, and those who met it had a lower quality of life and went to the doctor more often.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">1<\/a><\/sup> Lovell and Ford pooled 81 studies with 260,960 people: 11.2 per cent have an irritable bowel, women 1.67 times as often.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">2<\/a><\/sup> In 45 studies with 261,040 people, Suares and Ford found 14 per cent chronic constipation.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">3<\/a><\/sup> El-Serag lined up the population studies on reflux: in Europe 8.8 to 25.9 per cent, and rising since 1995.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">4<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the Netherlands, Flik and colleagues showed what it costs: in 326 people seen by a GP, care costs rose by 486 euros a year after irritable bowel had been established, and in 9,274 people seen by a specialist by 2,328 euros.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">5<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One in ten to four in ten, and almost nobody has a number for it. That is the reason this scan exists.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Why how your belly feels is a poor yardstick, and the form of your stool a good one<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In 1992 Heaton and colleagues questioned 1,897 residents of Bristol and had them keep a record of three bowel movements: once a day was a minority, a regular 24-hour rhythm applied to 40 per cent of the men and 33 per cent of the women, and only 56 per cent of the stools in women and 61 per cent in men were of the type that gives the fewest symptoms. So what looks ordinary is ordinary for fewer than half of people.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">6<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 1997 Lewis and Heaton showed in 66 volunteers why the form matters: the form of the stool was linked more closely to the measured transit time through the gut than the frequency or the weight was, and it moved along when transit was sped up and slowed down with medicines.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">7<\/a><\/sup> Blake and colleagues tested the scale in 2016 in 169 healthy people: the types they picked were linked to the water content of the stool, and 81 per cent of the test models were classified correctly.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">8<\/a><\/sup> That is why the first question of this scan is a picture of seven types, and not a question about how your bowel movements feel.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Why these six in particular<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In 1988 Svedlund and colleagues built the Gastrointestinal Symptom Rating Scale, fifteen questions that order symptoms into clusters, with an agreement between raters of 0.86 to 1.00.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">9<\/a><\/sup> Our questions two to six follow those clusters in our own words: pain, a bloated feeling, regularity, reflux, and the relation with food. They are not a copy of it, and the card above says so in as many words.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The question about food is there because the answer is nearly always yes: B\u00f6hn and colleagues put it to 197 people with an irritable bowel, and 84 per cent named at least one food that gave them symptoms, with dairy (49 per cent), legumes (36 per cent) and apple (28 per cent) at the top; the more severe the symptoms, the more foods.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">10<\/a><\/sup> Bijkerk and colleagues found, in 142 Dutch patients and 100 GPs, that abdominal pain and bloating were the most bothersome symptoms for both groups, and that patients thought of food where GPs thought of fibre.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">11<\/a><\/sup><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">What a low score means, and above all what it does not mean<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Rome IV criteria describe how doctors characterise the symptom pattern of an irritable bowel; in 2016 Lacy and colleagues divided the functional bowel complaints into five groups.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">12<\/a>,<a href=\"#bronnen\">13<\/a><\/sup> This scan uses that description to describe your pattern and never as a rule to establish anything: that is not a diagnosis, and only a doctor can make a diagnosis. Sperber showed how sensitive such a rule is: with the Rome IV criteria 4.1 per cent of the internet respondents met the criteria for an irritable bowel, with the older Rome III criteria 10.1 per cent.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">1<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ford and colleagues wrote in The Lancet in 2020 how a doctor does it: on the history of your symptoms, with limited testing, unless there are warning signs such as a drop in weight or blood in the stool.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">14<\/a><\/sup> Mujagic and colleagues in Maastricht only reached a sensitivity of 88 percent with a panel of eight blood and stool markers, and even that was related to the symptom score only moderately.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">15<\/a><\/sup> A low score means that looking further makes sense, and nothing more. Blood in the stool or your weight dropping without you trying are reasons to see a doctor, and only a doctor can make a diagnosis.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sci is-layout-flow wp-block-group-is-layout-flow\">\n\n<h3 class=\"wp-block-heading\">Why your belly is worth measuring<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In B\u00f6hn, the number of foods that gave symptoms went together with a lower quality of life for sleep, energy, eating and social functioning.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">10<\/a><\/sup> In Sperber, people with a functional symptom went to the doctor more often and had a poorer quality of life.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">1<\/a><\/sup> In Flik, costs rose the most for those who went to the specialist, and the researchers argued for the general practitioner as the first step.\u2060<sup class=\"bp-scan-sup\"><a href=\"#bronnen\">5<\/a><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is a link, not a cause, and that is how those studies put it too. What it does say: a belly that jumps around from day to day is exactly the complaint that needs a number over a few weeks, and exactly the complaint where an honest first step is cheaper than an expensive test.<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-bridge bp-scan-bridge--row is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-bridge-text is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-bridgelead wp-block-paragraph\">This is what the scan rests on. Now your gut score.<\/p>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your gut score is in your dashboard.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=gut-health&amp;lang=en\">Start the gut scan<\/a><\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--tight is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Written by<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-author is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"320\" src=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320.jpg\" alt=\"Jesse van der Velde\" class=\"wp-image-4815\" srcset=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320.jpg 320w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320-300x300.jpg 300w, https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/07\/author-jesse-round-320-150x150.jpg 150w\" sizes=\"(max-width: 320px) 100vw, 320px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group bp-scan-authorid is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-authorrole wp-block-paragraph\">Founder of BioProfile<\/p>\n\n\n\n<p class=\"bp-scan-authorname wp-block-paragraph\">Jesse van der Velde<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-authorbody is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-authorbio wp-block-paragraph\">Since 2006 they have guided people towards a new body and optimal health, and have written or co-written fifteen books on nutrition and health. Forever Young (2012) and Superfood Recipes (2013) both reached number 1 in the Netherlands.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-authormeta is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-authorbio wp-block-paragraph\"><a href=\"https:\/\/nl.linkedin.com\/in\/jessevdv\">LinkedIn<\/a><\/p>\n\n\n\n<p class=\"bp-scan-dates wp-block-paragraph\">Published on 27 August 2026 \u00b7 Last updated on 27 August 2026<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-disclosure wp-block-paragraph\">This page was written by BioProfile. BioProfile sells health products and this scan is free: no purchase comes with it. The Bristol Stool Form Scale and the Gastrointestinal Symptom Rating Scale are not ours and are not free to use. That is why we ask our own six questions, modelled on those instruments, and nowhere do we call them a validated copy of them.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--tight bp-scan-sec--beige is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\" id=\"bronnen\">Sources<\/h2>\n\n\n\n<p class=\"bp-scan-srclead wp-block-paragraph\">Every source below was checked on the day this page was published. The numbering follows the text: source 1 is the first one the text refers to, and the three instruments the analysis names sit in between, at the point where they come up.<\/p>\n\n\n\n<ol class=\"wp-block-list bp-scan-refs\">\n\n<li>Sperber AD, Bangdiwala SI, Drossman DA, et al. Worldwide prevalence and burden of functional gastrointestinal disorders, results of Rome Foundation Global Study. Gastroenterology, 2021. <a href=\"https:\/\/doi.org\/10.1053\/j.gastro.2020.04.014\">doi.org\/10.1053\/j.gastro.2020.04.014<\/a><\/li>\n\n\n<li>Lovell RM, Ford AC. Global prevalence of and risk factors for irritable bowel syndrome: a meta-analysis. Clinical Gastroenterology and Hepatology, 2012. <a href=\"https:\/\/doi.org\/10.1016\/j.cgh.2012.02.029\">doi.org\/10.1016\/j.cgh.2012.02.029<\/a><\/li>\n\n\n<li>Suares NC, Ford AC. Prevalence of, and risk factors for, chronic idiopathic constipation in the community: systematic review and meta-analysis. American Journal of Gastroenterology, 2011. <a href=\"https:\/\/doi.org\/10.1038\/ajg.2011.164\">doi.org\/10.1038\/ajg.2011.164<\/a><\/li>\n\n\n<li>El-Serag HB, Sweet S, Winchester CC, Dent J. Update on the epidemiology of gastro-oesophageal reflux disease: a systematic review. Gut, 2014. <a href=\"https:\/\/doi.org\/10.1136\/gutjnl-2012-304269\">doi.org\/10.1136\/gutjnl-2012-304269<\/a><\/li>\n\n\n<li>Flik CE, Laan W, Smout AJPM, Weusten BLAM, de Wit NJ. Comparison of medical costs generated by IBS patients in primary and secondary care in the Netherlands. BMC Gastroenterology, 2015. <a href=\"https:\/\/doi.org\/10.1186\/s12876-015-0398-8\">doi.org\/10.1186\/s12876-015-0398-8<\/a><\/li>\n\n\n<li>Heaton KW, Radvan J, Cripps H, Mountford RA, Braddon FE, Hughes AO. Defecation frequency and timing, and stool form in the general population: a prospective study. Gut, 1992. <a href=\"https:\/\/doi.org\/10.1136\/gut.33.6.818\">doi.org\/10.1136\/gut.33.6.818<\/a><\/li>\n\n\n<li>Lewis and Heaton, Scandinavian Journal of Gastroenterology, 1997. <a href=\"https:\/\/www.tandfonline.com\/doi\/abs\/10.3109\/00365529709011203\">tandfonline.com<\/a><\/li>\n\n\n<li>Blake MR, Raker JM, Whelan K. Validity and reliability of the Bristol Stool Form Scale in healthy adults and patients with diarrhoea-predominant irritable bowel syndrome. Alimentary Pharmacology and Therapeutics, 2016. <a href=\"https:\/\/doi.org\/10.1111\/apt.13746\">doi.org\/10.1111\/apt.13746<\/a><\/li>\n\n\n<li>Svedlund and colleagues, Digestive Diseases and Sciences, 1988. <a href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/3123181\/\">pubmed.ncbi.nlm.nih.gov<\/a><\/li>\n\n\n<li>B\u00f6hn L, St\u00f6rsrud S, T\u00f6rnblom H, Bengtsson U, Simr\u00e9n M. Self-reported food-related gastrointestinal symptoms in IBS are common and associated with more severe symptoms and reduced quality of life. American Journal of Gastroenterology, 2013. <a href=\"https:\/\/doi.org\/10.1038\/ajg.2013.105\">doi.org\/10.1038\/ajg.2013.105<\/a><\/li>\n\n\n<li>Bijkerk CJ, de Wit NJ, Stalman WAB, Knottnerus JA, Hoes AW, Muris JWM. Irritable bowel syndrome in primary care: the patients&#8217; and doctors&#8217; views on symptoms, etiology and management. Canadian Journal of Gastroenterology, 2003. <a href=\"https:\/\/doi.org\/10.1155\/2003\/532138\">doi.org\/10.1155\/2003\/532138<\/a><\/li>\n\n\n<li>Lacy BE, Mearin F, Chang L, et al. Bowel disorders. Gastroenterology, 2016. <a href=\"https:\/\/doi.org\/10.1053\/j.gastro.2016.02.031\">doi.org\/10.1053\/j.gastro.2016.02.031<\/a><\/li>\n\n\n<li>Rome IV diagnostic criteria for irritable bowel syndrome, Rome Foundation. <a href=\"https:\/\/www.mdcalc.com\/calc\/4007\/rome-iv-diagnostic-criteria-irritable-bowel-syndrome-ibs\">mdcalc.com<\/a><\/li>\n\n\n<li>Ford AC, Sperber AD, Corsetti M, Camilleri M. Irritable bowel syndrome. The Lancet, 2020. <a href=\"https:\/\/doi.org\/10.1016\/S0140-6736(20)31548-8\">doi.org\/10.1016\/S0140-6736(20)31548-8<\/a><\/li>\n\n\n<li>Mujagic Z, Tigchelaar EF, Zhernakova A, et al. A novel biomarker panel for irritable bowel syndrome and the application in the general population. Scientific Reports, 2016. <a href=\"https:\/\/doi.org\/10.1038\/srep26420\">doi.org\/10.1038\/srep26420<\/a><\/li>\n\n<\/ol>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--cta bp-scan-sec--band is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Start your gut scan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Six questions, about three minutes, and your gut score is in your dashboard. Your answers stay private (GDPR).<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=gut-health&amp;lang=en\">Start the gut scan<\/a><\/div>\n\n<\/div>\n\n\n\n<p class=\"bp-scan-ctamicro wp-block-paragraph\">Fill in your first name and email address, and your gut score is in your dashboard.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--tight bp-scan-sec--beige is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Other scans<\/h2>\n\n\n\n<div class=\"wp-block-group bp-scan-links is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-wellbeing-test\/\">Wellbeing test (WHO-5)<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/scan-slaaptest\/\">Sleep test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/brain-fog-test\/\">Brain fog test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-fatigue-test\/\">Fatigue test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/stress-test\/\">Stress test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-lifestyle-test\/\">Lifestyle test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-hormone-test\/\">Hormone test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/heart-self-test\/\">Heart and vascular test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/scan-recovery-test\/\">Recovery test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/metabolism-test\/\">Metabolism test<\/a><\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bioprofile.com\/en\/free-health-check-tests\/\">All scans<\/a><\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-sec bp-scan-sec--foot is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-cols is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-safety wp-block-paragraph\"><strong>What this does not say.<\/strong> This is a picture of your symptom burden, not a diagnosis. It cannot tell you whether this is irritable bowel syndrome, an intolerance, coeliac disease, or something that passes on its own, and it does not replace a doctor who looks at you. If you ever see blood in your stool, or your weight drops without you trying, that is a reason to go to a doctor and not a score.<\/p>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-col is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"bp-scan-legal wp-block-paragraph\">BioProfile analyses your health status to guide you and your coach. It does not make a diagnosis, only a doctor can do that. Built on validated health questionnaires; the combined BioProfile score is not itself a validated clinical instrument yet. Your answers stay private (GDPR).<\/p>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group bp-scan-cta-bar is-layout-flow wp-block-group-is-layout-flow\" id=\"bp-scan-cta-bar\">\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/app.bioprofile.com\/mini?scan=gut-health&amp;lang=en\">Start the gut scan<\/a><\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>BioProfile analysis \u00b7 gut scan A bloated stomach and bowels that do whatever they like. Six questions put a number on it. Your result in 3 minutes Your gut score over the past few weeks, with the reading band it falls in and, for each question, the number that pulled your score down or up. [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_yoast_wpseo_title":"Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile","_yoast_wpseo_metadesc":"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.","_yoast_wpseo_meta-robots-noindex":"2","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_opengraph-image-id":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_twitter-image-id":"","inline_featured_image":false,"footnotes":""},"class_list":["post-6899","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile<\/title>\n<meta name=\"description\" content=\"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile\" \/>\n<meta property=\"og:description\" content=\"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/\" \/>\n<meta property=\"og:site_name\" content=\"Bioprofile.com\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T20:29:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"531\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/\",\"name\":\"Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp\",\"datePublished\":\"2026-08-27T10:32:20+00:00\",\"dateModified\":\"2026-09-30T20:29:44+00:00\",\"description\":\"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp\",\"contentUrl\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/scan-gut-symptom-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/home-2026\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scan: Gut symptom test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/\",\"name\":\"Bioprofile.com\",\"description\":\"Live longer, stay younger\",\"publisher\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#organization\",\"name\":\"Bioprofile.com\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/bioprofile.com\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/logo.svg\",\"width\":173,\"height\":48,\"caption\":\"Bioprofile.com\"},\"image\":{\"@id\":\"https:\\\/\\\/bioprofile.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile","description":"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/","og_locale":"en_US","og_type":"article","og_title":"Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile","og_description":"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.","og_url":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/","og_site_name":"Bioprofile.com","article_modified_time":"2026-09-30T20:29:44+00:00","og_image":[{"width":800,"height":531,"url":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/","url":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/","name":"Bloated belly or gut complaints? The gut test in 3 minutes | BioProfile","isPartOf":{"@id":"https:\/\/bioprofile.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/#primaryimage"},"image":{"@id":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/#primaryimage"},"thumbnailUrl":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp","datePublished":"2026-08-27T10:32:20+00:00","dateModified":"2026-09-30T20:29:44+00:00","description":"A bloated belly, bowels that do as they please. Six questions, modelled on two symptom scales, put a number on it. Free, 3 minutes.","breadcrumb":{"@id":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/#primaryimage","url":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp","contentUrl":"https:\/\/bioprofile.com\/wp-content\/uploads\/2026\/08\/bp-scan-darmklachtentest-resultaat-telefoon-c7502c19-768x510.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/bioprofile.com\/en\/scan-gut-symptom-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bioprofile.com\/en\/home-2026\/"},{"@type":"ListItem","position":2,"name":"Scan: Gut symptom test"}]},{"@type":"WebSite","@id":"https:\/\/bioprofile.com\/en\/#website","url":"https:\/\/bioprofile.com\/en\/","name":"Bioprofile.com","description":"Live longer, stay younger","publisher":{"@id":"https:\/\/bioprofile.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bioprofile.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/bioprofile.com\/en\/#organization","name":"Bioprofile.com","url":"https:\/\/bioprofile.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bioprofile.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/bioprofile.com\/wp-content\/uploads\/2024\/08\/logo.svg","contentUrl":"https:\/\/bioprofile.com\/wp-content\/uploads\/2024\/08\/logo.svg","width":173,"height":48,"caption":"Bioprofile.com"},"image":{"@id":"https:\/\/bioprofile.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages\/6899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/comments?post=6899"}],"version-history":[{"count":4,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages\/6899\/revisions"}],"predecessor-version":[{"id":7416,"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/pages\/6899\/revisions\/7416"}],"wp:attachment":[{"href":"https:\/\/bioprofile.com\/en\/wp-json\/wp\/v2\/media?parent=6899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}