/* Bold inner pages of the "Curvatura em cor" skin (owner-approved artboards, 2026-10-02): the shared vocabulary of
   the five artboards as classes. Loaded only on a bold page (lib/pages-bold.php, handle marcuspai-bold-kit,
   priority 50, after site-curvatura.css, whose tokens, pills, focus ring and icons it reuses) and before the
   page's own stylesheet (assets/css/bold-<key>.css).
   Builder API and the full class list: 03-notes/curvatura-inner-bold-20261002/foundation.md.

   Specificity: every rule starts with html body:is(#mpc, .mpc-site) (one id, as the skin does). The heaviest kit
   selectors (display type and headings, which must beat the site layer) are
   html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .x. A page stylesheet that starts every rule
   with html body:is(#mpc, .mpc-site).mpb-page .mpb-<key> weighs the same or more and loads later, so it always wins.
   Sizes that a page is expected to tune are custom properties (--mpb-…): set the property instead of fighting the rule.
   Units are px: style.css sets html { font-size: 62.5% }, so 1rem is 10px here.
   Do not name a class "…-kicker": the site layer hides every [class*="-kicker"] on inner pages.
   Breakpoints: 1100 (four columns become two), 900 (two columns become one), 640 (phone). */

/* ---------- ground rules of the bold main (style.css sets 1.95 line height, 24px paragraph margins, weight 300,
   white uppercase buttons, and hides every <nav> under 1300px). .mpb-main is the <main> of a bold page;
   .mpb-scope gives the same ground to one block of a page that keeps its own main (the bands of the article
   template around the stored article body: see marcuspai_bold_use_kit()). */
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) {
	display: block; overflow-x: clip; background: var(--mpc-ground); color: var(--mpc-ink);
	font-size: 18px; font-weight: 400; line-height: 1.5; letter-spacing: 0;
	/* layout */
	--mpb-max: 1344px; --mpb-band-y: 96px; --mpb-gap: 56px;
	/* distance from the content edge to the screen edge: a photo that bleeds uses it as a negative margin */
	--mpb-edge: max(var(--mpc-pad), calc((100vw - var(--mpb-max)) / 2));
	/* colours of the band the content stands on (each band class redefines them) */
	--mpb-surface: var(--mpc-ground); --mpb-fg: var(--mpc-ink); --mpb-text: var(--mpc-body); --mpb-muted: var(--mpc-muted);
	--mpb-line: var(--mpc-ink); --mpb-hair: var(--mpc-rule); --mpb-num: var(--mpc-pain); --mpb-hover: var(--mpc-tint);
}
:is(.mpb-main, .mpb-scope) :where(h1, h2, h3, h4, p, ul, ol, li, dl, dt, dd, figure, figcaption, blockquote) { margin: 0; padding: 0; }
:is(.mpb-main, .mpb-scope) :where(ul, ol) { list-style: none; }
:is(.mpb-main, .mpb-scope) :where(img) { display: block; max-width: 100%; height: auto; }
:is(.mpb-main, .mpb-scope) :where(picture) { display: contents; }
/* with the picture gone from the box tree its <source> children would become grid or flex items of the figure and
   take a cell of their own (the /sobre/ book shelf, 2026-10-06): they never make a box */
:is(.mpb-main, .mpb-scope) :where(picture) > :where(source) { display: none; }
:is(.mpb-main, .mpb-scope) :where(a) { color: inherit; }
:is(.mpb-main, .mpb-scope) :where(section, article, aside, nav) { position: relative; }
/* style.css (up to 1299px) paints every <nav> as a full-screen overlay (display none, 100vh, black, 35px side padding).
   A plain nav is reset whole. A nav that is also a band, a wrap or a pill row keeps the padding, colour, width and
   display of that class (nav.mpb-band "Páginas relacionadas", nav.mpc-actions jump pills): only the overlay is undone
   (wave 2 shared fix, 2026-10-02). */
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) nav:not(.mpb-band, .mpb-wrap, .mpc-actions) { display: block; width: auto; height: auto; padding: 0; background: none; box-shadow: none; }
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) nav:is(.mpb-band, .mpb-wrap) { display: block; height: auto; padding-inline: 0; box-shadow: none; }
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) nav:is(.mpb-wrap, .mpc-actions):not(.mpb-band) { background: none; }
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) nav.mpc-actions { height: auto; padding: 0; box-shadow: none; }
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) h3 { font-size: clamp(21px, 1.67vw, 24px); line-height: 1.25; }
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) h4 { font-size: 20px; line-height: 1.3; }
html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) strong { font-weight: 600; }
html body:is(#mpc, .mpc-site) .mpb-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* ---------- bands: full-bleed colour, content on the page gutters (48 / 24 / 16 px from --mpc-pad) */
html body:is(#mpc, .mpc-site) .mpb-band { position: relative; padding-block: var(--mpb-band-y); background: var(--mpb-surface); color: var(--mpb-fg); }
html body:is(#mpc, .mpc-site) :is(.mpb-band--tint, .mpb-on-tint) { --mpb-surface: var(--mpc-tint); --mpb-muted: var(--mpc-body); --mpb-hair: rgba(19, 21, 27, .18); --mpb-hover: var(--mpc-ground); }
html body:is(#mpc, .mpc-site) :is(.mpb-band--cobalt, .mpb-on-cobalt) { --mpb-surface: var(--mpc-accent); --mpb-fg: #FFFFFF; --mpb-text: #FFFFFF; --mpb-muted: #FFFFFF; --mpb-line: #FFFFFF; --mpb-hair: rgba(255, 255, 255, .45); --mpb-num: #FFFFFF; --mpb-hover: transparent; }
html body:is(#mpc, .mpc-site) :is(.mpb-band--navy, .mpb-on-navy) { --mpb-surface: var(--mpc-navy); --mpb-fg: #FFFFFF; --mpb-text: var(--mpc-on-navy); --mpb-muted: var(--mpc-on-navy); --mpb-line: var(--mpc-navy-lines); --mpb-hair: rgba(135, 154, 238, .5); --mpb-hover: transparent; }
/* the same colour sets for a block inside a band (the cobalt address block on the Clínica cover photo) */
html body:is(#mpc, .mpc-site) .mpb-on-ground { --mpb-surface: var(--mpc-ground); --mpb-fg: var(--mpc-ink); --mpb-text: var(--mpc-body); --mpb-muted: var(--mpc-muted); --mpb-line: var(--mpc-ink); --mpb-hair: var(--mpc-rule); --mpb-num: var(--mpc-pain); --mpb-hover: var(--mpc-tint); }
html body:is(#mpc, .mpc-site) :is(.mpb-on-ground, .mpb-on-tint, .mpb-on-cobalt, .mpb-on-navy) { background: var(--mpb-surface); color: var(--mpb-fg); }
html body:is(#mpc, .mpc-site) .mpb-band--flush { padding-block: 0; }
html body:is(#mpc, .mpc-site) .mpb-band--tall { --mpb-band-y: 128px; }
html body:is(#mpc, .mpc-site) .mpb-band--clip { overflow: hidden; }
/* the band comes forward: its photo may overlap the next band */
html body:is(#mpc, .mpc-site) .mpb-band--over { z-index: 2; }
/* inner container: max 1440 with the gutters; above the line bundles */
html body:is(#mpc, .mpc-site) .mpb-wrap { position: relative; z-index: 1; width: min(100% - 2 * var(--mpc-pad), var(--mpb-max)); margin-inline: auto; }
@media (max-width: 1100px) { html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) { --mpb-band-y: 80px; --mpb-gap: 40px; } html body:is(#mpc, .mpc-site) .mpb-band--tall { --mpb-band-y: 96px; } }
@media (max-width: 900px) { html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) { --mpb-band-y: 72px; } html body:is(#mpc, .mpc-site) .mpb-band--tall { --mpb-band-y: 80px; } }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) { --mpb-band-y: 64px; --mpb-gap: 32px; font-size: 17px; } html body:is(#mpc, .mpc-site) .mpb-band--tall { --mpb-band-y: 64px; } }

/* ---------- grids: sibling groups with a gap; two columns stack at 900, four go 2 then 1 */
html body:is(#mpc, .mpc-site) .mpb-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--mpb-gap); align-items: start; }
html body:is(#mpc, .mpc-site) .mpb-grid--stretch { align-items: stretch; }
html body:is(#mpc, .mpc-site) .mpb-grid--end { align-items: end; }
@media (min-width: 901px) {
	html body:is(#mpc, .mpc-site) .mpb-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html body:is(#mpc, .mpc-site) .mpb-grid--7-5 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
	html body:is(#mpc, .mpc-site) .mpb-grid--5-7 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	html body:is(#mpc, .mpc-site) .mpb-grid--8-4 { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
	html body:is(#mpc, .mpc-site) .mpb-grid--4-8 { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
	html body:is(#mpc, .mpc-site) .mpb-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 641px) { html body:is(#mpc, .mpc-site) .mpb-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1101px) { html body:is(#mpc, .mpc-site) .mpb-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- display type: Unbounded ships 300 and 400 only, and the family must be set with the weight. The site
   layer forces Albert Sans on everything and 700 / 600 on headings with !important, hence the weight of these
   selectors (.mpb-page is on <body>). */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-display,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-ledger-value,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-row--display .mpb-row-title {
	font-family: var(--mpc-display) !important; font-weight: 300 !important; text-transform: uppercase !important; letter-spacing: -0.01em !important;
	hyphens: none !important; -webkit-hyphens: none !important; overflow-wrap: break-word; text-wrap: balance;
}
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-display--400,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate-label,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-pair-label,
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-subtitle {
	font-family: var(--mpc-display) !important; font-weight: 400 !important; text-transform: uppercase !important; letter-spacing: -0.01em !important;
	hyphens: none !important; -webkit-hyphens: none !important; overflow-wrap: break-word;
}

/* A bare <span> inside display type (used to force a line or keep words together) keeps the display face: the site
   layer sets Albert Sans on every element, spans included. A span with a class is left alone (pages set a second
   face on purpose, e.g. the small second line of a cover title). */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) :is(.mpb-cover-title, .mpb-title, .mpb-subtitle, .mpb-display, .mpb-display--400) span:not([class]) { font-family: inherit !important; }

/* cover title: 120 / 104 / 88 px tiers at 1440, fluid below, never under --mpb-cover-min. Tune per page with
   --mpb-cover-fluid (so the longest word of the title fits the phone) or replace the whole size with --mpb-cover-size. */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title {
	--mpb-cover-max: 104px; --mpb-cover-fluid: 7.3vw; --mpb-cover-min: 40px;
	margin: 0; color: var(--mpb-fg); font-size: var(--mpb-cover-size, clamp(var(--mpb-cover-min), var(--mpb-cover-fluid), var(--mpb-cover-max))) !important; line-height: var(--mpb-cover-lh, 1.02) !important; text-wrap: initial;
}
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title--120 { --mpb-cover-max: 120px; --mpb-cover-fluid: 8.4vw; --mpb-cover-lh: 1.04; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title--88 { --mpb-cover-max: 88px; --mpb-cover-fluid: 6.2vw; }
@media (max-width: 900px) {
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title { --mpb-cover-fluid: 10.6vw; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title--120 { --mpb-cover-fluid: 11.6vw; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title--88 { --mpb-cover-fluid: 9.6vw; }
}
@media (max-width: 640px) {
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title { --mpb-cover-min: 36px; --mpb-cover-fluid: 11.6vw; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title--120 { --mpb-cover-fluid: 12.4vw; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cover-title--88 { --mpb-cover-min: 32px; --mpb-cover-fluid: 10.4vw; }
}

/* section title: Unbounded 300, 44 to 64 px at 1440 (tiers), 30 to 34 px on phones */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title {
	--mpb-title-max: 64px; --mpb-title-fluid: 4.45vw;
	margin: 0; color: var(--mpb-fg); font-size: var(--mpb-title-size, clamp(30px, var(--mpb-title-fluid), var(--mpb-title-max))) !important; line-height: var(--mpb-title-lh, 1.06) !important;
}
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title--56 { --mpb-title-max: 56px; --mpb-title-fluid: 3.9vw; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title--52 { --mpb-title-max: 52px; --mpb-title-fluid: 3.62vw; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title--48 { --mpb-title-max: 48px; --mpb-title-fluid: 3.34vw; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title--44 { --mpb-title-max: 44px; --mpb-title-fluid: 3.06vw; }
@media (max-width: 900px) { html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title { --mpb-title-fluid: 6vw; } }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-title { --mpb-title-size: clamp(26px, 8.2vw, 34px); } }
/* small display label (group titles, ledger labels set large) */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-subtitle { margin: 0; color: var(--mpb-fg); font-size: var(--mpb-subtitle-size, clamp(20px, 2.1vw, 30px)); line-height: 1.12; }
/* any other text set in the display face: the page gives the size */
html body:is(#mpc, .mpc-site) :is(.mpb-display, .mpb-display--400) { line-height: 1.08; }

/* section head: the title, optionally the 1.5px rule under it and a pill at the right */
html body:is(#mpc, .mpc-site) .mpb-head { display: block; }
html body:is(#mpc, .mpc-site) .mpb-head--rule { padding-bottom: 20px; border-bottom: 1.5px solid var(--mpb-line); }
html body:is(#mpc, .mpc-site) .mpb-head--split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; }
html body:is(#mpc, .mpc-site) .mpb-head-aside { flex: none; max-width: 100%; }
/* a bare 1.5px rule (when the title and the rule are not in one head) */
html body:is(#mpc, .mpc-site) .mpb-rule { height: 0; margin: 20px 0 0; border: 0; border-top: 1.5px solid var(--mpb-line); }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site) .mpb-head--rule { padding-bottom: 16px; } html body:is(#mpc, .mpc-site) .mpb-head-aside { width: 100%; } }

/* ---------- running text: lead 22 to 26, body 17 to 19, label 15; nothing under 15 px */
html body:is(#mpc, .mpc-site) .mpb-lead { max-width: 760px; color: var(--mpb-text); font-size: var(--mpb-lead-size, clamp(19px, 1.67vw, 24px)); line-height: 1.45; text-wrap: pretty; }
html body:is(#mpc, .mpc-site) .mpb-lead--22 { --mpb-lead-size: clamp(18px, 1.53vw, 22px); }
html body:is(#mpc, .mpc-site) .mpb-lead--26 { --mpb-lead-size: clamp(20px, 1.81vw, 26px); }
/* a sentence that carries a band: Albert Sans 600, 28 to 40 px (longer than about 40 characters is never set in Unbounded) */
html body:is(#mpc, .mpc-site) .mpb-statement { max-width: 1020px; color: var(--mpb-fg); font-size: var(--mpb-statement-size, clamp(22px, 2.23vw, 32px)); font-weight: 600; line-height: 1.25; text-wrap: balance; }
html body:is(#mpc, .mpc-site) .mpb-statement--28 { --mpb-statement-size: clamp(21px, 1.95vw, 28px); }
html body:is(#mpc, .mpc-site) .mpb-statement--40 { --mpb-statement-size: clamp(24px, 2.78vw, 40px); line-height: 1.2; }
html body:is(#mpc, .mpc-site) .mpb-text { color: var(--mpb-text); font-size: 18px; line-height: 1.5; }
html body:is(#mpc, .mpc-site) .mpb-text--19 { font-size: 19px; }
html body:is(#mpc, .mpc-site) .mpb-text + .mpb-text { margin-top: 14px; }
html body:is(#mpc, .mpc-site) .mpb-label { color: var(--mpb-muted); font-size: 15px; font-weight: 600; line-height: 1.4; letter-spacing: 0.12em !important; text-transform: uppercase !important; }
/* item title in Albert Sans 600 (steps, cases, ledger cells): 24 / 30 / 36 px tiers */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-item-title { color: var(--mpb-fg); font-size: var(--mpb-item-size, clamp(21px, 1.67vw, 24px)); font-weight: 600 !important; line-height: 1.2; letter-spacing: 0 !important; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-item-title--30 { --mpb-item-size: clamp(22px, 2.09vw, 30px); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-item-title--36 { --mpb-item-size: clamp(24px, 2.5vw, 36px); }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site) .mpb-text, html body:is(#mpc, .mpc-site) .mpb-text--19 { font-size: 17px; } }

/* ---------- big numerals: Unbounded 300, vermilion (white on cobalt), 120 to 200 px at 1440, never under 72 px */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num {
	--mpb-num-max: 168px; --mpb-num-fluid: 11.7vw; --mpb-num-min: 88px;
	display: block; color: var(--mpb-num); font-size: var(--mpb-num-size, clamp(var(--mpb-num-min), var(--mpb-num-fluid), var(--mpb-num-max))); line-height: 0.8; letter-spacing: -0.02em !important; text-wrap: initial; white-space: nowrap; font-variant-numeric: lining-nums;
}
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--120 { --mpb-num-max: 120px; --mpb-num-fluid: 8.4vw; --mpb-num-min: 72px; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--144 { --mpb-num-max: 144px; --mpb-num-fluid: 10vw; --mpb-num-min: 80px; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--160 { --mpb-num-max: 160px; --mpb-num-fluid: 11.1vw; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--180 { --mpb-num-max: 180px; --mpb-num-fluid: 12.5vw; --mpb-num-min: 96px; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--200 { --mpb-num-max: 200px; --mpb-num-fluid: 13.9vw; --mpb-num-min: 96px; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--white { color: #FFFFFF; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num--lines { color: var(--mpc-navy-lines); }
@media (max-width: 1100px) { html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num { --mpb-num-fluid: 15vw; } }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-num { --mpb-num-fluid: 26vw; } }
/* small numeral in a ring (the "o que levar" items): vermilion on white, 56px */
html body:is(#mpc, .mpc-site) .mpb-ring { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 999px; background: #FFFFFF; box-shadow: inset 0 0 0 1.5px var(--mpc-pain); color: var(--mpc-pain); font-size: 24px; font-weight: 500; line-height: 1; }
/* small vermilion marks: a 48 x 8 bar above an item, a 10px square before a list line */
html body:is(#mpc, .mpc-site) .mpb-mark { display: block; width: 48px; height: 8px; background: var(--mpc-pain); }
html body:is(#mpc, .mpc-site) .mpb-marks > li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 13px 0; border-top: 1px solid var(--mpb-hair); color: var(--mpb-fg); font-size: clamp(20px, 1.95vw, 28px); font-weight: 600; line-height: 1.2; }
html body:is(#mpc, .mpc-site) .mpb-marks > li:first-child { border-top: 0; }
html body:is(#mpc, .mpc-site) .mpb-marks > li::before { content: ''; width: 10px; height: 10px; background: var(--mpc-pain); transform: translateY(-2px); }

/* steps: the numeral beside its text (rows) or above it (columns) */
/* rows: --mpb-step-max is the numeral size at 1440 (set it on the list: 120 to 200px), --mpb-step-num the size in use;
   the numeral column is 1.58 times it (264px for 168px) */
html body:is(#mpc, .mpc-site) .mpb-steps { --mpb-step-max: 168px; --mpb-step-num: clamp(88px, 11.7vw, var(--mpb-step-max)); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-steps .mpb-num { font-size: var(--mpb-step-num); }
html body:is(#mpc, .mpc-site) .mpb-steps > li { display: grid; grid-template-columns: var(--mpb-step-col, calc(var(--mpb-step-num) * 1.58)) minmax(0, 1fr); gap: 24px; align-items: start; padding: 14px 0; border-top: 1px solid var(--mpb-hair); }
html body:is(#mpc, .mpc-site) .mpb-steps > li:first-child { border-top: 0; padding-top: 0; }
html body:is(#mpc, .mpc-site) .mpb-step-body { padding-top: 14px; }
html body:is(#mpc, .mpc-site) .mpb-step-body > :is(p, .mpb-text) { margin-top: 10px; color: var(--mpb-text); }
html body:is(#mpc, .mpc-site) .mpb-steps--cols { --mpb-step-max: 160px; --mpb-step-num: clamp(88px, 11.1vw, var(--mpb-step-max)); display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px 32px; container-type: inline-size; }
html body:is(#mpc, .mpc-site) .mpb-steps--cols > li { display: block; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; border: 0; }
html body:is(#mpc, .mpc-site) .mpb-steps--cols .mpb-step-body { padding-top: 28px; }
@media (min-width: 641px) { html body:is(#mpc, .mpc-site) .mpb-steps--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1101px) { html body:is(#mpc, .mpc-site) .mpb-steps--cols { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1100px) { html body:is(#mpc, .mpc-site) .mpb-steps, html body:is(#mpc, .mpc-site) .mpb-steps--cols { --mpb-step-num: clamp(88px, 15vw, var(--mpb-step-max)); } }
/* columns: a two-digit numeral is about 1.6 times its size wide, so the size follows the column (the list is the
   query container), and the numerals never touch in a narrow list */
@supports (width: 1cqw) {
	/* 6.75: the widest pair ("08") is about 1.67 times its size; with 6.6 it ran 3px past its column at 1101 to 1199 */
	@media (min-width: 1101px) { html body:is(#mpc, .mpc-site) .mpb-steps--cols { --mpb-step-num: clamp(88px, calc((100cqw - 96px) / 6.75), var(--mpb-step-max)); } }
	@media (min-width: 641px) and (max-width: 1100px) { html body:is(#mpc, .mpc-site) .mpb-steps--cols { --mpb-step-num: clamp(88px, calc((100cqw - 32px) / 3.3), var(--mpb-step-max)); } }
}
@media (max-width: 640px) {
	html body:is(#mpc, .mpc-site) .mpb-steps, html body:is(#mpc, .mpc-site) .mpb-steps--cols { --mpb-step-num: clamp(80px, 26vw, min(120px, var(--mpb-step-max))); }
	html body:is(#mpc, .mpc-site) .mpb-steps > li { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 24px 0; }
	html body:is(#mpc, .mpc-site) .mpb-steps > li:first-child { padding-top: 0; }
	html body:is(#mpc, .mpc-site) .mpb-step-body { padding-top: 10px; }
	html body:is(#mpc, .mpc-site) .mpb-steps--cols > li { padding: 0; }
	html body:is(#mpc, .mpc-site) .mpb-steps--cols .mpb-step-body { padding-top: 20px; }
}

/* ---------- ledger: big cells under a 1.5px rule (label + value), cut by hairlines. --span is the cell's share of
   the 12 columns; .mpb-ledger-cell--split draws the vertical hairline at its left. One column under 900. */
html body:is(#mpc, .mpc-site) .mpb-ledger { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); border-top: 1.5px solid var(--mpb-line); }
html body:is(#mpc, .mpc-site) .mpb-ledger-cell { grid-column: span var(--span, 6); padding: 24px 32px 32px 0; border-bottom: 1px solid var(--mpb-hair); }
html body:is(#mpc, .mpc-site) .mpb-ledger-cell--split { padding: 24px 0 32px 32px; border-left: 1px solid var(--mpb-hair); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-ledger-value { margin-top: 14px; color: var(--mpb-fg); font-size: var(--mpb-ledger-size, clamp(26px, calc((100vw - 96px) / 33), 40px)); line-height: 1.08; }
@media (max-width: 900px) {
	html body:is(#mpc, .mpc-site) .mpb-ledger-cell, html body:is(#mpc, .mpc-site) .mpb-ledger-cell--split { grid-column: 1 / -1; padding: 20px 0 24px; border-left: 0; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-ledger-value { --mpb-ledger-size: clamp(24px, 5.4vw, 36px); }
}
/* pairs: label at the left, sentence at the right, a hairline under each row (the Ensino rows) */
html body:is(#mpc, .mpc-site) .mpb-pairs { border-top: 1.5px solid var(--mpb-line); container-type: inline-size; }
html body:is(#mpc, .mpc-site) .mpb-pair { display: grid; grid-template-columns: var(--mpb-pair-col, 232px) minmax(0, 1fr); gap: 8px 24px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--mpb-hair); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-pair-label { color: var(--mpb-fg); font-size: clamp(18px, 1.67vw, 24px); line-height: 1.15; }
html body:is(#mpc, .mpc-site) .mpb-pair > dd { color: var(--mpb-text); font-size: 19px; line-height: 1.5; }
@container (max-width: 520px) { html body:is(#mpc, .mpc-site) .mpb-pair { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site) .mpb-pair { grid-template-columns: minmax(0, 1fr); } html body:is(#mpc, .mpc-site) .mpb-pair > dd { font-size: 17px; } }

/* ---------- row links: title, one line of context, the arrow circle; hairlines between rows, tint fill on hover */
html body:is(#mpc, .mpc-site) .mpb-rows { border-top: 1.5px solid var(--mpb-line); }
html body:is(#mpc, .mpc-site) .mpb-rows > li { border-bottom: 1px solid var(--mpb-hair); }
html body:is(#mpc, .mpc-site) .mpb-rows--strong > li { border-bottom: 1.5px solid var(--mpb-line); }
@media (min-width: 901px) { html body:is(#mpc, .mpc-site) .mpb-rows--cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--mpb-gap); border-top: 0; } html body:is(#mpc, .mpc-site) .mpb-rows--cols > li:nth-child(-n+2) { border-top: 1.5px solid var(--mpb-line); } }
html body:is(#mpc, .mpc-site) .mpb-row {
	display: grid; grid-template-columns: minmax(0, 1fr) var(--mpb-circle, 48px); gap: var(--mpb-row-gap, 24px); align-items: center; padding: var(--mpb-row-pad, 22px) 0;
	color: var(--mpb-fg); text-decoration: none; transition: background-color .15s ease, box-shadow .15s ease;
}
html body:is(#mpc, .mpc-site) .mpb-row--lg { --mpb-circle: 64px; --mpb-row-gap: 32px; --mpb-row-pad: 28px; }
html body:is(#mpc, .mpc-site) .mpb-row-text { display: block; min-width: 0; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-row-title { display: block; margin: 0; color: var(--mpb-fg); font-size: var(--mpb-row-size, clamp(20px, 1.95vw, 28px)); font-weight: 600 !important; line-height: 1.2; letter-spacing: 0 !important; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-row--lg .mpb-row-title { font-size: var(--mpb-row-size, clamp(22px, 2.23vw, 32px)); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-row--display .mpb-row-title { font-size: var(--mpb-row-size, clamp(22px, 3.06vw, 44px)); font-weight: 300 !important; line-height: 1.08; letter-spacing: -0.01em !important; text-wrap: initial; }
html body:is(#mpc, .mpc-site) .mpb-row-ctx { display: block; margin-top: 8px; color: var(--mpb-text); font-size: var(--mpb-row-ctx-size, 18px); line-height: 1.5; }
html body:is(#mpc, .mpc-site) .mpb-row--display .mpb-row-ctx { margin-top: 12px; --mpb-row-ctx-size: clamp(17px, 1.39vw, 20px); line-height: 1.4; }
/* hover and keyboard focus: the row fills with the hover colour and bleeds 24px into the gutters; the circle inverts */
html body:is(#mpc, .mpc-site) .mpb-row:is(:hover, :focus-visible) { background: var(--mpb-hover); box-shadow: -24px 0 0 var(--mpb-hover), 24px 0 0 var(--mpb-hover); }
html body:is(#mpc, .mpc-site) .mpb-row:is(:hover, :focus-visible) .mpb-row-title { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
html body:is(#mpc, .mpc-site) .mpb-row--display:is(:hover, :focus-visible) .mpb-row-title { text-decoration: none; }
/* white rows on cobalt and navy */
html body:is(#mpc, .mpc-site) .mpb-rows--white { border-top-color: #FFFFFF; }
html body:is(#mpc, .mpc-site) .mpb-rows--white > li { border-bottom-color: rgba(255, 255, 255, .45); }
html body:is(#mpc, .mpc-site) .mpb-row--white { --mpb-fg: #FFFFFF; --mpb-text: #FFFFFF; --mpb-hover: transparent; }
@media (max-width: 640px) {
	html body:is(#mpc, .mpc-site) .mpb-row { --mpb-row-gap: 16px; --mpb-row-pad: 18px; }
	html body:is(#mpc, .mpc-site) .mpb-row--lg { --mpb-circle: 48px; --mpb-row-pad: 20px; }
	html body:is(#mpc, .mpc-site) .mpb-row-ctx { --mpb-row-ctx-size: 17px; }
	html body:is(#mpc, .mpc-site) .mpb-row:is(:hover, :focus-visible) { box-shadow: -16px 0 0 var(--mpb-hover), 16px 0 0 var(--mpb-hover); }
}

/* arrow circles: 48px (md) and 64px (lg), 1.5px outline in the band's text colour; they fill when their row is hovered */
html body:is(#mpc, .mpc-site) .mpb-circle { display: flex; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--mpb-fg); color: var(--mpb-fg); transition: background-color .15s ease, color .15s ease; }
html body:is(#mpc, .mpc-site) .mpb-circle--lg { width: 64px; height: 64px; }
html body:is(#mpc, .mpc-site) .mpb-circle--lg .mpc-ico-arrow { width: 24px; height: 14px; }
html body:is(#mpc, .mpc-site) :is(.mpb-row, .mpb-more-sum):is(:hover, :focus-visible) .mpb-circle, html body:is(#mpc, .mpc-site) a.mpb-circle:is(:hover, :focus-visible) { background: var(--mpb-fg); color: var(--mpb-surface); }
html body:is(#mpc, .mpc-site) .mpb-row--white:is(:hover, :focus-visible) .mpb-circle { background: #FFFFFF; color: var(--mpb-surface); }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site) .mpb-circle--lg { width: 48px; height: 48px; } html body:is(#mpc, .mpc-site) .mpb-circle--lg .mpc-ico-arrow { width: 22px; height: 12px; } }

/* disclosure row ("Mais 4 artigos"): native details, the plus turns into a minus */
html body:is(#mpc, .mpc-site) .mpb-more-sum { display: grid; grid-template-columns: minmax(0, 1fr) 48px; gap: 16px; align-items: center; min-height: 48px; padding: 16px 0 0; list-style: none; cursor: pointer; color: var(--mpb-fg); font-size: 18px; font-weight: 600; line-height: 1.4; }
html body:is(#mpc, .mpc-site) .mpb-more-sum::-webkit-details-marker { display: none; }
html body:is(#mpc, .mpc-site) .mpb-more-sum:hover .mpb-more-label { text-decoration: underline; text-underline-offset: 5px; }
html body:is(#mpc, .mpc-site) .mpb-more .mpc-ico-minus, html body:is(#mpc, .mpc-site) .mpb-more[open] .mpc-ico-plus { display: none; }
html body:is(#mpc, .mpc-site) .mpb-more[open] .mpc-ico-minus { display: block; }
html body:is(#mpc, .mpc-site) .mpb-more-body { margin-top: 16px; border-top: 1px solid var(--mpb-hair); }
/* plain text link rows inside an index column */
html body:is(#mpc, .mpc-site) .mpb-link { display: block; padding: 15px 0; border-bottom: 1px solid var(--mpb-hair); color: var(--mpb-fg); font-size: 18px; font-weight: 600; line-height: 1.4; text-decoration: none; }
html body:is(#mpc, .mpc-site) .mpb-link:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- photos: square corners, no shadow, cropped by their own box */
html body:is(#mpc, .mpc-site) .mpb-fig { position: relative; display: block; margin: 0; overflow: hidden; background: #E3E5EC; }
html body:is(#mpc, .mpc-site) .mpb-fig img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
/* the box takes a ratio (set --mpb-ratio) … */
html body:is(#mpc, .mpc-site) .mpb-fig--ratio { aspect-ratio: var(--mpb-ratio, 3 / 2); }
/* … or fills its grid cell: the photo is as tall as the text beside it, never under --mpb-fig-min */
html body:is(#mpc, .mpc-site) .mpb-fig--fill { align-self: stretch; min-height: var(--mpb-fig-min, 480px); }
html body:is(#mpc, .mpc-site) .mpb-fig--fill img { position: absolute; inset: 0; }
/* a photo that runs to the screen edge from inside the wrap */
html body:is(#mpc, .mpc-site) .mpb-bleed-right { margin-right: calc(-1 * var(--mpb-edge)); }
html body:is(#mpc, .mpc-site) .mpb-bleed-left { margin-left: calc(-1 * var(--mpb-edge)); }
html body:is(#mpc, .mpc-site) .mpb-bleed { margin-inline: calc(-1 * var(--mpb-edge)); }
/* caption plate: a notch in the colour of the band, on a corner of the photo */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate { position: absolute; left: 0; bottom: 0; max-width: 88%; padding: 14px 24px 0 0; background: var(--mpb-surface); color: var(--mpc-ink) !important; font-size: 18px !important; font-weight: 400 !important; line-height: 1.4 !important; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate--br { left: auto; right: 0; padding: 14px 0 0 24px; }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate--tint { background: var(--mpc-tint); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate-label { display: block; color: var(--mpc-ink); font-size: 18px; line-height: 1.3; letter-spacing: 0.02em !important; }
html body:is(#mpc, .mpc-site) .mpb-plate-text { display: block; margin-top: 2px; color: var(--mpc-body); font-size: 18px; line-height: 1.4; }
/* caption under the photo */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-cap { margin-top: 12px; color: var(--mpb-fg) !important; font-size: 18px !important; font-weight: 600 !important; line-height: 1.4 !important; }
html body:is(#mpc, .mpc-site) .mpb-cap-label { display: block; }
html body:is(#mpc, .mpc-site) .mpb-cap-text { display: block; margin-top: 2px; color: var(--mpb-text); font-weight: 400; }
@media (max-width: 640px) {
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) :is(.mpb-plate, .mpb-cap) { font-size: 16px !important; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate { padding-top: 10px; padding-right: 16px; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate--br { padding-right: 0; padding-left: 16px; }
	html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-plate-label, html body:is(#mpc, .mpc-site) .mpb-plate-text { font-size: 16px; }
	html body:is(#mpc, .mpc-site) .mpb-fig--fill { --mpb-fig-min: 320px; }
	html body:is(#mpc, .mpc-site) :is(.mpb-bleed-right, .mpb-bleed-left) { margin-inline: calc(-1 * var(--mpc-pad)); }
}
/* mosaic: photos 12px apart; .mpb-mosaic-col stacks photos in one cell */
html body:is(#mpc, .mpc-site) .mpb-mosaic { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
html body:is(#mpc, .mpc-site) .mpb-mosaic-col { display: grid; gap: 12px; align-content: start; }
@media (min-width: 641px) {
	html body:is(#mpc, .mpc-site) .mpb-mosaic--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html body:is(#mpc, .mpc-site) .mpb-mosaic--2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
	html body:is(#mpc, .mpc-site) .mpb-mosaic--1-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
}

/* ---------- pills on dark bands (56px, as the artboards; the closing band keeps its own 60px pills) and the ghost
   that sits over a line bundle. Base geometry comes from .mpc-pill of the site layer. */
html body:is(#mpc, .mpc-site) .mpb-pill { white-space: nowrap; }
html body:is(#mpc, .mpc-site) .mpb-pill--solid { background: var(--mpc-ground) !important; }
html body:is(#mpc, .mpc-site) .mpb-pill--solid:is(:hover, :focus-visible) { background: var(--mpc-ink) !important; }
html body:is(#mpc, .mpc-site) .mpb-pill--white { background: #FFFFFF !important; color: var(--mpc-navy) !important; font-weight: 700 !important; box-shadow: none !important; }
html body:is(#mpc, .mpc-site) .mpb-pill--white:is(:hover, :focus-visible) { background: #FFFFFF !important; color: var(--mpc-navy) !important; box-shadow: 0 0 0 4px rgba(255, 255, 255, .28) !important; }
html body:is(#mpc, .mpc-site) .mpb-pill--light { gap: 14px !important; background: transparent !important; color: #FFFFFF !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .75) !important; }
html body:is(#mpc, .mpc-site) .mpb-pill--light:is(:hover, :focus-visible) { background: #FFFFFF !important; color: var(--mpc-navy) !important; }
@media (max-width: 640px) { html body:is(#mpc, .mpc-site) .mpb-pill { white-space: normal; } }

/* ---------- FAQ accordion (marcuspai_bold_faq()): the question is a button, the answer a region. Without
   JavaScript every answer is open and the toggle is not drawn. */
/* div.mpb-faq: the list only, never <main> and <body> of a page whose key is "faq" (/perguntas-frequentes/) */
html body:is(#mpc, .mpc-site) div.mpb-faq { border-top: 1.5px solid var(--mpb-line); }
html body:is(#mpc, .mpc-site) .mpb-faq-item { position: relative; border-bottom: 1px solid var(--mpb-hair); }
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-faq-q { margin: 0; font-size: var(--mpb-faq-size, clamp(20px, 1.81vw, 26px)); font-weight: 600 !important; line-height: 1.3; letter-spacing: 0 !important; }
html body:is(#mpc, .mpc-site) .mpb-faq-btn {
	display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; min-height: 48px; margin: 0; padding: 20px 0; border: 0; border-radius: 0; background: none;
	color: var(--mpb-fg); font: inherit; letter-spacing: 0; text-align: left; text-transform: none; cursor: default;
}
html body:is(#mpc, .mpc-site) .mpb-faq.is-js .mpb-faq-btn { cursor: pointer; }
html body:is(#mpc, .mpc-site) .mpb-faq-q-text { display: block; min-width: 0; text-wrap: balance; }
html body:is(#mpc, .mpc-site) .mpb-faq-ico { display: none; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--mpb-fg); color: var(--mpb-fg); transition: background-color .15s ease, color .15s ease; }
html body:is(#mpc, .mpc-site) .mpb-faq.is-js .mpb-faq-ico { display: flex; }
html body:is(#mpc, .mpc-site) .mpb-faq-ico .mpc-ico-minus, html body:is(#mpc, .mpc-site) .mpb-faq-btn[aria-expanded="true"] .mpc-ico-plus { display: none; }
html body:is(#mpc, .mpc-site) .mpb-faq-btn[aria-expanded="true"] .mpc-ico-minus { display: block; }
html body:is(#mpc, .mpc-site) .mpb-faq-btn[aria-expanded="true"] .mpb-faq-ico { background: var(--mpc-accent); box-shadow: inset 0 0 0 1.5px var(--mpb-fg); color: #FFFFFF; }
html body:is(#mpc, .mpc-site) .mpb-faq.is-js .mpb-faq-btn:hover .mpb-faq-ico { background: var(--mpb-fg); color: var(--mpb-surface); }
html body:is(#mpc, .mpc-site) .mpb-faq-btn[aria-expanded="true"] { padding-bottom: 14px; }
html body:is(#mpc, .mpc-site) .mpb-faq-a { padding: 0 72px 26px 0; }
html body:is(#mpc, .mpc-site) .mpb-faq-a[hidden] { display: none; }
html body:is(#mpc, .mpc-site) .mpb-faq-a > p { max-width: 640px; color: var(--mpb-text); font-size: var(--mpb-faq-a-size, 18px); line-height: 1.55; }
html body:is(#mpc, .mpc-site) .mpb-faq-a > p + p { margin-top: 12px; }
html body:is(#mpc, .mpc-site) .mpb-faq-a a { color: var(--mpb-fg); font-weight: 600; text-decoration: underline; text-decoration-color: var(--mpc-accent); text-decoration-thickness: 2px; text-underline-offset: 4px; }
/* cols: the items side by side (two columns from 900px) */
@media (min-width: 901px) {
	html body:is(#mpc, .mpc-site) .mpb-faq--cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--mpb-gap); align-items: start; }
	html body:is(#mpc, .mpc-site) .mpb-faq--cols .mpb-faq-btn { align-items: flex-start; padding-top: 44px; }
	html body:is(#mpc, .mpc-site) .mpb-faq--cols .mpb-faq-a { padding-bottom: 32px; }
}
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-faq--cols .mpb-faq-q { --mpb-faq-size: clamp(21px, 2.09vw, 30px); line-height: 1.25; }
html body:is(#mpc, .mpc-site) .mpb-faq--cols .mpb-faq-a > p { --mpb-faq-a-size: 19px; max-width: 560px; }
/* wide: question, answer and toggle on one row (from 900px) */
html body:is(#mpc, .mpc-site).mpb-page :is(.mpb-main, .mpb-scope) .mpb-faq--wide .mpb-faq-q { --mpb-faq-size: clamp(22px, 2.78vw, 40px); line-height: 1.2; }
html body:is(#mpc, .mpc-site) .mpb-faq--wide .mpb-faq-a > p { --mpb-faq-a-size: clamp(18px, 1.53vw, 22px); line-height: 1.45; max-width: none; }
@media (min-width: 901px) {
	html body:is(#mpc, .mpc-site) .mpb-faq--wide .mpb-faq-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 620px); column-gap: 56px; align-items: start; padding: 24px 104px 24px 0; }
	/* 48px: a one-line question stays a full tap target (it was 30px tall at 901; wave 2 shared fix) */
	html body:is(#mpc, .mpc-site) .mpb-faq--wide .mpb-faq-btn { display: block; min-height: 48px; padding: 0; }
	html body:is(#mpc, .mpc-site) .mpb-faq--wide .mpb-faq-ico { position: absolute; right: 0; top: 24px; }
	html body:is(#mpc, .mpc-site) .mpb-faq--wide .mpb-faq-a { padding: 6px 0 0; }
}
/* 901 to 1280: a fixed 620px answer would leave the question a sliver (196px at 1024), so the two share the row */
@media (min-width: 901px) and (max-width: 1280px) { html body:is(#mpc, .mpc-site) .mpb-faq--wide .mpb-faq-item { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: 40px; } }
@media (max-width: 640px) {
	html body:is(#mpc, .mpc-site) .mpb-faq-btn { gap: 16px; padding: 18px 0; }
	html body:is(#mpc, .mpc-site) .mpb-faq-a { padding-right: 0; padding-bottom: 22px; }
	html body:is(#mpc, .mpc-site) .mpb-faq-a > p, html body:is(#mpc, .mpc-site) .mpb-faq--cols .mpb-faq-a > p { --mpb-faq-a-size: 17px; }
}

/* ---------- line bundles ("curvatura"): decoration only. .mpb-bundle is the clipping layer of a band (first child
   of a position: relative box); .mpb-bundle-svg is the drawing, centred on the 1440px frame. Lines pass through
   empty space or behind display titles, never behind running text: where a narrow screen cannot keep that, hide
   the desktop drawing (.mpb-bundle--desk) and give the phone its own (.mpb-bundle--phone). */
html body:is(#mpc, .mpc-site) .mpb-bundle { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; user-select: none; }
html body:is(#mpc, .mpc-site) .mpb-bundle--over { overflow: visible; }
/* --mpb-bw / --mpb-bh are the drawing's size and --mpb-by its offset (set inline by the helper). --mpb-bs is its
   scale: set it on the layer or the svg at a breakpoint to draw the same bundle smaller. .mpb-bundle--fit scales the
   drawing with the screen under 1440px (a 1440px drawing is then as wide as the screen), so a composition made for
   1440 keeps its proportions on laptops and tablets instead of being cropped at the sides. */
html body:is(#mpc, .mpc-site) .mpb-bundle-svg {
	--mpb-w: calc(var(--mpb-bw, 1440px) * var(--mpb-bs, 1)); --mpb-h: calc(var(--mpb-bh, 600px) * var(--mpb-bs, 1));
	position: absolute; left: 50%; width: var(--mpb-w); height: var(--mpb-h); max-width: none; margin-left: calc(var(--mpb-w) / -2); overflow: visible; pointer-events: none;
}
html body:is(#mpc, .mpc-site) .mpb-bundle--fit .mpb-bundle-svg { --mpb-w: min(var(--mpb-bw, 1440px), calc(var(--mpb-bwn, 1440) / 1440 * 100vw)); --mpb-h: min(var(--mpb-bh, 600px), calc(var(--mpb-bhn, 600) / 1440 * 100vw)); }
html body:is(#mpc, .mpc-site) .mpb-bundle-svg--top { top: var(--mpb-by, 0px); }
html body:is(#mpc, .mpc-site) .mpb-bundle-svg--bottom { bottom: var(--mpb-by, 0px); }
html body:is(#mpc, .mpc-site) .mpb-bundle-svg--above { top: calc(var(--mpb-by, 0px) - var(--mpb-h)); }
html body:is(#mpc, .mpc-site) .mpb-bundle-svg--below { bottom: calc(var(--mpb-by, 0px) - var(--mpb-h)); }
html body:is(#mpc, .mpc-site) .mpb-bundle--phone { display: none; }
@media (max-width: 900px) {
	html body:is(#mpc, .mpc-site) .mpb-bundle--desk { display: none; }
	html body:is(#mpc, .mpc-site) .mpb-bundle--phone { display: block; }
	html body:is(#mpc, .mpc-site) .mpb-bundle--phone .mpb-bundle-svg { left: 0; margin-left: 0; }
}

/* ---------- focus: the site ring is cobalt; on cobalt and navy bands it is white */
html body:is(#mpc, .mpc-site) :is(.mpb-band--cobalt, .mpb-band--navy, .mpb-on-cobalt, .mpb-on-navy) :is(a, button, summary, [tabindex]):focus-visible { outline-color: #FFFFFF !important; }
html body:is(#mpc, .mpc-site) :is(.mpb-on-ground, .mpb-on-tint) :is(a, button, summary, [tabindex]):focus-visible { outline-color: var(--mpc-accent) !important; }

/* ---------- phone booking bar (marcuspai_bold_bar()): as on the home */
html body:is(#mpc, .mpc-site) .mpb-bar { display: none; }
@media (max-width: 640px) {
	html body:is(#mpc, .mpc-site) .mpb-bar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--mpc-ground); box-shadow: 0 -1px 0 var(--mpc-rule); visibility: hidden; transform: translateY(100%); transition: transform .2s ease, visibility 0s linear .2s; }
	html body:is(#mpc, .mpc-site) .mpb-bar.is-on { visibility: visible; transform: none; transition: transform .2s ease; }
	html body:is(#mpc, .mpc-site) .mpb-bar .mpc-pill { width: 100% !important; font-size: 18px !important; white-space: nowrap; }
	/* the footer leaves room for the bar (body.mpb-has-bar, from marcuspai_bold_body_class()): that rule lives with
	   the footer, in site-curvatura.css */
}
@media (max-width: 359px) { html body:is(#mpc, .mpc-site) .mpb-bar .mpc-pill { gap: 10px !important; padding-inline: 16px !important; font-size: 16px !important; } }

/* ---------- reduced motion and print */
@media (prefers-reduced-motion: reduce) {
	html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) *, html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) *::before, html body:is(#mpc, .mpc-site) :is(.mpb-main, .mpb-scope) *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
	html body:is(#mpc, .mpc-site) :is(.mpb-bundle, .mpb-bar, .mpb-faq-ico, .mpb-circle) { display: none !important; }
	html body:is(#mpc, .mpc-site) .mpb-band { padding-block: 24px; background: #FFFFFF !important; color: #000000 !important; --mpb-fg: #000000; --mpb-text: #000000; --mpb-muted: #000000; --mpb-line: #000000; --mpb-hair: #999999; --mpb-num: #000000; break-inside: avoid; }
	html body:is(#mpc, .mpc-site) .mpb-faq-a[hidden] { display: block !important; }
}
