/* Paint Philly Bold skin (2026-11-01): inner pages restyled to the Bold homepage rules
   (HOMEPAGE_DESIGN_RULES.md). Same tokens as pp-vision-home/base.css. Scoped to body.pp-bold .ppt.
   Note: rules containing #pp-bold-spec (never matches) borrow ID weight to beat the old square-corner rule in
   paintphilly-muse-fixes.css, whose :is() list contains #paint-calculator. */
body.pp-bold {
	--b-navy: #11284b; --b-navy-2: #0b1c36; --b-ink: #182b43;
	--b-gold: #e8a33b; --b-steel: #6fb0c7; --b-steel-deep: #2d6f8c;
	--b-sky: #eaf4f8; --b-cream: #fbf8f1; --b-sand: #f4ead6;
	--b-text: #3b4a5e; --b-meta: #5b6b80; --b-line: #dbe5ed;
	--b-serif: Georgia, "Times New Roman", serif;
	--b-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}

/* ---------- Canvas and bands ---------- */
body.pp-bold .ppt { background: var(--b-cream); color: var(--b-ink); --navy: #11284b; --gold: #e8a33b; --body: #3b4a5e; --line: #dbe5ed; --tint: #eaf4f8; }
body.pp-bold .ppt .ppt-section { background: var(--b-cream); }
body.pp-bold .ppt .ppt-section--tint { background: var(--b-sky) !important; }
body.pp-bold .ppt .ppt-section--navy { background: var(--b-navy) !important; }
/* Body copy colour only in template sections, never inside original page content (old builder rows can be navy). */
body.pp-bold .ppt .ppt-section:not(.ppt-section--navy):not(.ppt-wrap-original) > .ppt-wrap > p,
body.pp-bold .ppt .ppt-section:not(.ppt-section--navy):not(.ppt-wrap-original) .ppt-prose :is(p, li) { color: var(--b-text); }
/* Wrap-mode pages sit in a 1140px box: let every band run full width like the template pages. */
body.pp-bold .ppt.ppt-wrap > .ppt-section { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); margin-right: 0; }
body.pp-bold .site-content,
body.pp-bold.ast-separate-container #content { background: var(--b-cream); }
/* One thin steel line where a navy band meets the next light band. */
body.pp-bold .ppt .ppt-section--navy + .ppt-section:not(.ppt-section--navy) { border-top: 4px solid var(--b-steel-deep); }

/* ---------- Headings ---------- */
body.pp-bold .ppt .ppt-h2 { color: var(--b-navy); font-family: var(--b-serif) !important; font-weight: 700; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.12; letter-spacing: -.01em; }
body.pp-bold .ppt .ppt-h2::after { display: none !important; }
body.pp-bold .ppt .ppt-section--navy .ppt-h2,
body.pp-bold .ppt .ppt-section--navy h2 { color: #fff; }
body.pp-bold .ppt .ppt-prose h3,
body.pp-bold .ppt .ppt-card h3 { color: var(--b-navy); font-family: var(--b-serif) !important; }

/* Kicker / eyebrow: small caps with a gold dash, no box. */
body.pp-bold .ppt .ppt-kicker { display: block; color: var(--b-steel-deep) !important; font: 800 13px/1.5 var(--b-sans) !important; letter-spacing: .14em !important; text-transform: uppercase; }
body.pp-bold .ppt .ppt-kicker::before { content: ""; display: inline-block; vertical-align: middle; width: 28px; height: 3px; margin: -2px 10px 0 0; border-radius: 2px; background: var(--b-gold); }
body.pp-bold .ppt-center .ppt-kicker, body.pp-bold .ppt .ppt-cta .ppt-kicker { text-align: center; }
/* fix-20261103 FEEDBACK: no gold dash before the hero kicker (James 11-03). */
body.pp-bold .ppt .ppt-hero .ppt-kicker::before { display: none !important; }
@media (max-width: 921px) {
	body.pp-bold .ppt .ppt-kicker { font-size: 11px !important; letter-spacing: .08em !important; }
}
body.pp-bold .ppt .ppt-section--navy .ppt-kicker,
body.pp-bold .ppt .ppt-hero .ppt-kicker,
body.pp-bold .ppt .ppt-cta .ppt-kicker { color: var(--b-gold) !important; }

/* ---------- Hero: photo with a left navy fade, copy straight on the photo (desktop) ---------- */
@media (min-width: 922px) {
	body.pp-bold .ppt .ppt-hero { min-height: clamp(560px, 40vw, 760px); }
	body.pp-bold .ppt .ppt-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(11, 28, 54, .84) 0%, rgba(11, 28, 54, .62) 40%, rgba(11, 28, 54, .12) 70%, rgba(11, 28, 54, 0) 100%); }
	body.pp-bold .ppt .ppt-hero > .ppt-wrap { z-index: 2; }
	body.pp-bold .ppt .ppt-hero__card { background: transparent !important; box-shadow: none !important; padding: 0 !important; max-width: 620px; }
	body.pp-bold .ppt .ppt-hero .ppt-h1 { font-size: clamp(38px, 3.8vw, 56px) !important; line-height: 1.06 !important; letter-spacing: -.015em; text-shadow: 0 2px 18px rgba(0, 0, 0, .35); }
	body.pp-bold .ppt .ppt-hero .ppt-h1::after { content: ""; display: block; width: 96px; height: 5px; border-radius: 3px; background: var(--b-gold); margin: 22px 0 4px; }
	body.pp-bold .ppt .ppt-hero .ppt-lede { font-size: 19px !important; line-height: 1.55 !important; color: rgba(255, 255, 255, .92) !important; text-shadow: 0 1px 10px rgba(0, 0, 0, .3); }
}
body.pp-bold .ppt .ppt-hero__card { border-radius: 0; }

/* ---------- Photo heroes: split frame (2026-11-01) ----------
   Text on navy at left, the photo in its own right-hand panel shaped close to a normal 3:2 photo, so
   almost the whole picture shows and no subject ends up behind the text. Replaces per-photo crop
   nudging (crops broke every time the hero layout changed). Drawn heroes (.ppt-hero__graphic) keep
   their own full-width composition. */
@media (min-width: 922px) {
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) { background: var(--b-navy); }
	body.pp-bold .ppt .ppt-hero > img.ppt-hero__bg { left: auto !important; right: 0 !important; width: 56% !important; height: 100% !important; object-fit: cover; }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg)::before { background: linear-gradient(90deg, var(--b-navy) 0%, var(--b-navy) 44%, rgba(17, 40, 75, .35) 47.5%, rgba(17, 40, 75, 0) 51%, rgba(17, 40, 75, 0) 100%); }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) .ppt-hero__card { max-width: 540px; }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) .ppt-h1,
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) .ppt-lede { text-shadow: none; }
}
@media (max-width: 921px) {
	/* Phones/tablets: the whole photo above the navy text block, not a thin strip. */
	body.pp-bold .ppt .ppt-hero > img.ppt-hero__bg { height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; }
}

/* ---------- Stats band: big serif white numbers, gold labels ---------- */
body.pp-bold .ppt .ppt-stats { background: var(--b-navy); padding: 0; border-top: 1px solid rgba(232, 163, 59, .35); }
body.pp-bold .ppt .ppt-stats__grid div { min-height: 0; padding: 26px 12px 28px; }
body.pp-bold .ppt .ppt-stats__grid div:not(:last-child)::after { top: 0; height: 100%; background: rgba(232, 163, 59, .3); }
body.pp-bold .ppt .ppt-stats strong { font: 700 clamp(28px, 2.6vw, 40px)/1.05 var(--b-serif) !important; color: #fff; }
body.pp-bold .ppt .ppt-stats span { margin-top: 8px; font: 700 12.5px/1.2 var(--b-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--b-gold); }
@media (max-width: 921px) {
	body.pp-bold .ppt .ppt-stats__grid div { padding: 18px 8px 20px; }
	body.pp-bold .ppt .ppt-stats strong { font-size: 26px !important; }
	body.pp-bold .ppt .ppt-stats span { font-size: 10.5px; letter-spacing: .1em; }
	body.pp-bold .ppt .ppt-stats__grid div:nth-child(-n+2) { border-bottom-color: rgba(232, 163, 59, .3); }
}

/* ---------- Buttons ---------- */
body.pp-bold .ppt .ppt-btn { min-height: 52px; padding: 14px 24px; border-width: 2px !important; border-style: solid; border-radius: 5px !important; font: 700 16px/1.2 var(--b-sans) !important; text-transform: none; letter-spacing: 0; }
body.pp-bold .ppt .ppt-btn--primary { background: var(--b-steel) !important; border-color: var(--b-steel) !important; color: var(--b-navy) !important; }
body.pp-bold .ppt .ppt-btn--primary:hover { background: #7fc0d6 !important; border-color: #7fc0d6 !important; }
body.pp-bold .ppt .ppt-btn--ghost { background: #fff !important; border-color: var(--b-navy) !important; color: var(--b-navy) !important; }
body.pp-bold .ppt .ppt-btn--ghost:hover { background: var(--b-navy) !important; color: #fff !important; }
body.pp-bold .ppt .ppt-section--navy .ppt-btn--ghost { background: transparent !important; border-color: #fff !important; color: #fff !important; }
body.pp-bold .ppt .ppt-section--navy .ppt-btn--ghost:hover { background: #fff !important; color: var(--b-navy) !important; }
body.pp-bold .ppt .ppt-btn--navy { background: var(--b-navy) !important; border-color: var(--b-navy) !important; color: #fff !important; }
body.pp-bold .ppt a:focus-visible,
body.pp-bold .ppt button:focus-visible,
body.pp-bold .ppt summary:focus-visible { outline: 3px solid var(--b-gold); outline-offset: 3px; }

/* Text links that act as "more" links. */
body.pp-bold .ppt .ppt-more { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 2px solid var(--b-navy); border-radius: 5px; background: #fff; color: var(--b-navy) !important; font: 700 15px/1.2 var(--b-sans); }
body.pp-bold .ppt .ppt-more:hover { background: var(--b-navy); color: #fff !important; }

/* ---------- Cards ---------- */
body.pp-bold .ppt .ppt-card { background: #fff; border: 0; border-radius: 8px; overflow: hidden; box-shadow: 0 6px 18px rgba(11, 28, 54, .1); transition: transform .18s ease, box-shadow .18s ease; }
body.pp-bold .ppt .ppt-section--tint .ppt-card { background: var(--b-cream); }
body.pp-bold .ppt .ppt-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(11, 28, 54, .16); }
body.pp-bold .ppt .ppt-card img { border-radius: 0; }

/* Photos framed like Bold. */
body.pp-bold .ppt .ppt-intro__photo img,
body.pp-bold .ppt .ppt-intro__photo { border-radius: 8px; }
body.pp-bold .ppt .ppt-intro__photo { overflow: hidden; box-shadow: 0 18px 40px rgba(11, 28, 54, .18); }
body.pp-bold .ppt .ppt-mosaic img,
body.pp-bold .ppt .ppt-mosaic figure { border-radius: 8px; }

/* ---------- Crew band: steel check chips ---------- */
body.pp-bold .ppt .ppt-checks li::before { background-color: var(--b-steel) !important; border-radius: 50% !important; }

/* ---------- Reviews ---------- */
body.pp-bold .ppt .ppt-review { background: #fff; border: 1px solid var(--b-line); border-top: 1px solid var(--b-line); border-radius: 8px; box-shadow: none; }
body.pp-bold .ppt .ppt-review__stars { color: #f4b400; letter-spacing: 2px; }
body.pp-bold .ppt .ppt-review blockquote { font: 400 16px/1.6 var(--b-sans) !important; color: var(--b-ink); }
body.pp-bold .ppt .ppt-review figcaption { padding-top: 14px; border-top: 1px solid var(--b-line); color: var(--b-meta); }
body.pp-bold .ppt .ppt-review figcaption strong { color: var(--b-navy); }
body.pp-bold .ppt .ppt-carousel__nav button,
body.pp-bold .ppt .ppt-arrow { width: 44px; height: 44px; border-radius: 50% !important; border: 2px solid var(--b-navy) !important; background: #fff !important; color: var(--b-navy) !important; }
body.pp-bold .ppt .ppt-arrow:hover { background: var(--b-navy) !important; color: #fff !important; }

/* ---------- FAQ (shared .pp-faq-section) ---------- */
body.pp-bold .ppt .pp-faq-list { display: grid; gap: 12px; }
body.pp-bold .ppt .pp-faq-list article,
body.pp-bold .ppt .pp-faq-list details { background: #fff; border: 1px solid #cfdbe5 !important; border-radius: 8px; padding: 0 !important; box-shadow: none; }
body.pp-bold .ppt .pp-faq-list article > h3,
body.pp-bold .ppt .pp-faq-list summary { padding: 18px 20px !important; margin: 0 !important; color: var(--b-navy) !important; font-family: var(--b-serif) !important; font-size: 18px !important; }
body.pp-bold .ppt .pp-faq-list article > div { padding: 0 20px 18px !important; }

/* Read-more and process steps inside long-form copy. */
body.pp-bold .ppt .ppt-readmore { background: #fff; border: 1px solid #cfdbe5; border-radius: 8px; }
body.pp-bold .ppt .ppx-steps > * { background: #fff; border: 1px solid #e1d6bd !important; border-top: 1px solid #e1d6bd !important; border-radius: 8px; box-shadow: none; }

/* ---------- Chips (towns, related links) ---------- */
body.pp-bold .ppt .ppt-chips a { border: 1px solid var(--b-steel-deep); border-radius: 5px; color: var(--b-steel-deep); font: 800 12.5px/1.2 var(--b-sans); letter-spacing: .06em; text-transform: uppercase; padding: 12px 16px; min-height: 44px; display: inline-flex; align-items: center; }
body.pp-bold .ppt .ppt-chips a:hover { background: var(--b-steel-deep); color: #fff; }

/* ---------- Closing CTA: navy band, cream card ---------- */
body.pp-bold .ppt .ppt-cta { background: var(--b-navy); padding: 88px 0; }
body.pp-bold .ppt .ppt-cta > .ppt-wrap { max-width: 880px; background: var(--b-cream); border-radius: 10px; padding: 44px 40px 40px; box-shadow: 0 24px 48px rgba(0, 0, 0, .3); }
body.pp-bold .ppt .ppt-cta h2 { color: var(--b-navy) !important; font-size: clamp(28px, 3vw, 40px) !important; }
body.pp-bold .ppt .ppt-cta p:not(.ppt-kicker) { color: var(--b-text) !important; }
body.pp-bold .ppt .ppt-cta p a { color: var(--b-navy) !important; font-weight: 700; }
body.pp-bold .ppt .ppt-cta .ppt-kicker { color: var(--b-steel-deep) !important; }
body.pp-bold .ppt .ppt-cta .ppt-btn--ghost { background: #fff !important; border-color: var(--b-navy) !important; color: var(--b-navy) !important; }
@media (max-width: 921px) {
	body.pp-bold .ppt .ppt-cta { padding: 48px 16px; }
	body.pp-bold .ppt .ppt-cta > .ppt-wrap { padding: 32px 20px 28px; }
}

/* ---------- Blog hub / archives (Astra loop outside .ppt) ---------- */
body.pp-bold .site-main > .ast-row { background: transparent !important; gap: 28px !important; padding: 72px 0 24px !important; }
body.pp-bold .site-main > .ast-row > article { background: #fff !important; border: 0 !important; border-radius: 8px !important; overflow: hidden; box-shadow: 0 6px 18px rgba(11, 28, 54, .1) !important; transition: transform .18s ease, box-shadow .18s ease; }
body.pp-bold .site-main > .ast-row > article:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(11, 28, 54, .16) !important; }
body.pp-bold .site-main > .ast-row > article .ast-article-inner { background: #fff !important; }
body.pp-bold .site-main > .ast-row > article .entry-title,
body.pp-bold .site-main > .ast-row > article .entry-title a { color: var(--b-navy) !important; font-family: var(--b-serif) !important; }
body.pp-bold .ast-pagination { padding-bottom: 72px; }
body.pp-bold .ast-pagination .page-numbers { border-radius: 5px !important; border: 1px solid var(--b-navy) !important; min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }
body.pp-bold .ast-pagination .page-numbers.current { background: var(--b-navy) !important; color: #fff !important; }
body.pp-bold .site-main > .ast-row > article .entry-title::after { display: none !important; }
body.pp-bold.pp-family-blog-index article { border: 0 !important; border-radius: 8px !important; }
body.pp-bold #primary, body.pp-bold .site-main { background: transparent !important; box-shadow: none !important; }

/* ---------- Light cards from older stylesheets: drop the 3px gold top border, Bold 1px line + 8px ---------- */
body.pp-bold .ppt :is(.pp-card, .ppx-card, .ppx-step, .ppx-job--text, .pp-loc-card, .pp-diff-benefit-grid article) {
	background: #fff; border: 1px solid var(--b-line) !important; border-top: 1px solid var(--b-line) !important; border-radius: 8px !important; box-shadow: none;
}
body.pp-bold .ppt .ppt-section--tint :is(.pp-card, .ppx-card, .ppx-step, .pp-loc-card) { background: var(--b-cream); }
body.pp-bold .ppt :is(.pp-card, .ppx-card, .ppx-step, .pp-loc-card) h3 { color: var(--b-navy); font-family: var(--b-serif) !important; }
/* Pricing tables: group rows get a sky band instead of a gold rule. */
body.pp-bold .ppx-table { border-radius: 8px; overflow: hidden; }
body.pp-bold .ppx-table th[scope="rowgroup"] { border-top: 1px solid var(--b-line) !important; background: var(--b-sky) !important; color: var(--b-navy) !important; }

/* ---------- Forms (Gravity Forms): Bold inputs and primary button ---------- */
body.pp-bold .gform_wrapper :is(input[type=text], input[type=email], input[type=tel], input[type=url], input[type=number], select, textarea) {
	min-height: 48px; background: #fff !important; border: 1px solid #cfdbe5 !important; border-radius: 5px !important; color: var(--b-ink) !important; font: 400 16px/1.4 var(--b-sans) !important; padding: 10px 14px !important;
}
body.pp-bold .gform_wrapper :is(input, select, textarea):focus { border-color: var(--b-navy) !important; outline: 3px solid var(--b-gold) !important; outline-offset: 2px; }
body.pp-bold .gform_wrapper :is(.gfield_label, legend) { color: var(--b-navy) !important; font: 700 15px/1.3 var(--b-sans) !important; }
body.pp-bold .gform_wrapper :is(.gform_button, input[type=submit], button[type=submit]) {
	min-height: 52px !important; min-width: 230px; padding: 14px 24px !important; background: var(--b-steel) !important; border: 2px solid var(--b-steel) !important; border-radius: 5px !important; color: var(--b-navy) !important; font: 700 16px/1.2 var(--b-sans) !important; cursor: pointer;
}
body.pp-bold .gform_wrapper :is(.gform_button, input[type=submit], button[type=submit]):hover { background: #7fc0d6 !important; border-color: #7fc0d6 !important; }
body.pp-bold #content.site-content, body.pp-bold.ast-separate-container #content.site-content { background: var(--b-cream) !important; }

/* ======== Audit fixes 2026-11-01 (audit_runs/bold_skin_20261101/AUDIT.md) ======== */
/* #3 Rounded corners: beats the old "square system" (!important) in paintphilly-muse-fixes.css. */
body.pp-bold :is(#pp-bold-spec, .ppt-card, .ppt-review, .pp-card, .pp-loc-card, .pp-review-card, .pp-video-card, .ppt-mosaic__main, .ppt-intro__photo, .pp-facts, .saboxplugin-wrap, .ppx-table, .ppx-job, .ppx-card, .ppx-step, .ppt-readmore, .key-takeaway, .fl-accordion-item, .uabb-faq-module .uabb-faq-item) { border-radius: 8px !important; }
body.pp-bold :is(#pp-bold-spec, .ppt-split img, .ppt-intro__photo img, img.ppt-post__hero-img, .ppt-post__article img.size-large, .ppt-wrap-original img.size-large, .ppt-mosaic img) { border-radius: 8px !important; }
body.pp-bold :is(#pp-bold-spec, .ppt-card) img { border-radius: 0 !important; }
body.pp-bold :is(#pp-bold-spec, .ppt-btn, .ast-button, .fl-button, .uabb-button, .pp-sky-consultation-button, .pp-cred-button, .pp-story-button, .pp-story-button-outline, .pp-diff-button, .pp-spot-button, .gform_button, .gform_wrapper button, #paint-calculator button, #paint-calculator input, #paint-calculator select, .gform_wrapper input, .gform_wrapper select, .gform_wrapper textarea, .ast-pagination .page-numbers) { border-radius: 5px !important; }
body.pp-bold .pp-facts { overflow: hidden; }
/* #4 Service card titles in Georgia. */
body.pp-bold .ppt .ppt-card__title { font: 700 21px/1.2 var(--b-serif) !important; color: var(--b-navy) !important; }
/* #1/#2 Old builder content: text on navy rows/boxes stays light. */
body.pp-bold :is(.pp-brand-surface-dark, .ppt-post__cta) :is(p, li, span, h2, h3, h4, strong) { color: #fff !important; }
body.pp-bold :is(.pp-brand-surface-dark, .ppt-post__cta) a:not(.ppt-btn):not(.fl-button) { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
/* Key takeaway callouts (inline navy or green fills in old posts): one sky callout. */
body.pp-bold .key-takeaway { background: var(--b-sky) !important; border: 0 !important; color: var(--b-ink) !important; padding: 26px 28px !important; }
body.pp-bold .key-takeaway :is(p, li, span, strong, em) { color: var(--b-ink) !important; }
body.pp-bold .key-takeaway :is(h2, h3, h4) { color: var(--b-navy) !important; font-family: var(--b-serif) !important; }
/* Malvern: the one pure-black band -> navy; its black headings -> navy. */
body.pp-bold .fl-node-iac90r8vpyb4 > .fl-row-content-wrap { background-color: var(--b-navy) !important; }
body.pp-bold :is(.fl-node-1svxnzol2tb4, .fl-node-egd4m36hc5ky, .fl-node-uye0acr5w9vz) :is(h2, h3) { color: var(--b-navy) !important; }
/* Builder separators (red/orange rules) -> one short gold accent. */
body.pp-bold .ppt-wrap-original .fl-separator { border-top-color: var(--b-gold) !important; border-top-width: 3px !important; max-width: 96px; }
/* Yellow highlighter (<mark>) and off-palette colours in old posts. */
body.pp-bold mark { background: none !important; color: inherit !important; font-weight: 700; }
body.pp-bold :is(.ppt-post__article, .ppt-wrap-original) em[style*="color"] { color: inherit !important; }
body.pp-bold .ppt-post__article a:not([class*="btn"]):not([class*="button"]) { color: var(--b-steel-deep); }
body.pp-bold .ppt-post__article [class*="tweet"] a, body.pp-bold .ppt-post__article a[href*="twitter.com/intent"] { color: var(--b-steel-deep) !important; }
/* Old FAQ accordions (UABB/Beaver) -> Bold FAQ look. */
body.pp-bold .uabb-faq-module .uabb-faq-item, body.pp-bold .fl-accordion-item { background: #fff !important; border: 1px solid #cfdbe5 !important; margin-bottom: 12px !important; }
body.pp-bold .uabb-faq-module :is(.uabb-faq-questions, .uabb-faq-question-label), body.pp-bold .fl-accordion-button { background: transparent !important; color: var(--b-navy) !important; font-family: var(--b-serif) !important; }
/* #5 Gold/yellow builder buttons (estimate-request call/text) -> Bold primary/secondary. */
body.pp-bold .ppt-wrap-original a.fl-button { background: var(--b-steel) !important; border: 2px solid var(--b-steel) !important; color: var(--b-navy) !important; min-height: 52px; font: 700 16px/1.2 var(--b-sans) !important; }
body.pp-bold .ppt-wrap-original a.fl-button :is(span, i) { color: var(--b-navy) !important; }
body.pp-bold .ppt-wrap-original .fl-button-group-button + .fl-button-group-button a.fl-button { background: #fff !important; border-color: var(--b-navy) !important; }
/* #6 Page-specific kickers: steel-deep with the gold dash. */
body.pp-bold :is(.pp-story-kicker, .pp-pullquote__kicker, .pp-cred-kicker, .pp-faq-kicker, .pp-diff-kicker, .pp-spot-kicker) { color: var(--b-steel-deep) !important; font: 800 13px/1.5 var(--b-sans) !important; letter-spacing: .14em !important; text-transform: uppercase; }
body.pp-bold :is(.pp-story-kicker, .pp-pullquote__kicker, .pp-cred-kicker, .pp-faq-kicker, .pp-diff-kicker, .pp-spot-kicker)::before { content: ""; display: inline-block; vertical-align: middle; width: 28px; height: 3px; margin: -2px 10px 0 0; border-radius: 2px; background: var(--b-gold); }
body.pp-bold .pp-pullquote { border-left: 0 !important; background: var(--b-sky); border-radius: 8px; }
/* #8 Calculator. */
body.pp-bold #paint-calculator { background: #fff !important; border: 1px solid var(--b-line) !important; border-radius: 8px !important; }
body.pp-bold #paint-calculator button, body.pp-bold #paint-calculator input[type=submit] { background: var(--b-steel) !important; border: 2px solid var(--b-steel) !important; color: var(--b-navy) !important; font: 700 16px/1.2 var(--b-sans) !important; min-height: 52px; }
body.pp-bold #paint-calculator :is(input:not([type=submit]), select) { min-height: 48px; border: 1px solid #cfdbe5 !important; background: #fff !important; }
/* #12 Tap targets. */
body.pp-bold .pp-diff-button-outline { display: inline-flex !important; align-items: center; justify-content: center; min-height: 52px; padding: 14px 24px !important; border: 2px solid var(--b-navy) !important; background: #fff; color: var(--b-navy) !important; font-weight: 700; }
body.pp-bold .ppt :is(.ppt-towns a, .ppt-chips a) { min-height: 44px !important; }
/* #9 Blog hub cards: rounded (beats the square system). */
body.pp-bold :is(#pp-bold-spec, .site-main) > .ast-row > article { border-radius: 8px !important; }

/* Mobile dock "Book" tab: steel, not gold (gold is accent only). Same rule in pp-vision-home/variants/bold.css for the homepage. */
body.pp-bold .pp-mobile-dock__button--book::before { background: var(--b-steel) !important; }
body.pp-bold .pp-mobile-dock__button--book:hover::before, body.pp-bold .pp-mobile-dock__button--book:active::before { background: #7fc0d6 !important; }
/* Links inside old builder copy inherit the surrounding text colour (white on navy rows, ink on light) + underline. */
body.pp-bold .ppt-wrap-original :is(.fl-rich-text, .fl-module-rich-text) a:not([class*="button"]):not([class*="btn"]) { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--b-steel); }
/* What-makes-us-different step numbers: steel-deep, not gold on white. */
body.pp-bold .pp-diff-benefit-grid article span { color: var(--b-steel-deep) !important; }
/* Calculator fine print: readable grey. */
body.pp-bold #paint-calculator p, body.pp-bold .fl-node-60zdvj4barck p { color: var(--b-meta) !important; }
/* Bare links in old builder content (related-service lists etc.) inherit text colour + underline. */
body.pp-bold .ppt-wrap-original a:not([class]) { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--b-steel); }
/* Yellow map-label boxes in old builder HTML (inline rgba(255,255,0,.7)) -> navy label. */
body.pp-bold .ppt-wrap-original div[style*="255, 255, 0"], body.pp-bold .ppt-wrap-original div[style*="255,255,0"] { background: var(--b-navy) !important; color: #fff !important; border-radius: 5px; padding: 6px 12px !important; }
body.pp-bold .ppt-wrap-original div[style*="255, 255, 0"] *, body.pp-bold .ppt-wrap-original div[style*="255,255,0"] * { color: #fff !important; }
/* FAQ heading: no gold underline (one-colour headings, Bold); intro line clear of the first card. */
body.pp-bold .ppt .pp-faq-section > h2 { color: var(--b-navy) !important; font-size: clamp(30px, 3.4vw, 44px) !important; line-height: 1.12 !important; }
body.pp-bold .ppt .pp-faq-section > h2::after, body.pp-bold .ppt .pp-faq-section h2::after { display: none !important; }
body.pp-bold .ppt .pp-faq-section .pp-faq-intro { margin: 0 0 22px !important; }
/* "More about this service" read-more: just the outlined button, no white strip around it. */
body.pp-bold .ppt details.ppt-readmore { background: transparent !important; border: 0 !important; border-radius: 0 !important; }
body.pp-bold .ppt details.ppt-readmore[open] { background: transparent !important; }
/* Recent Projects: the template's full-bleed band wrappers landed on the grid items and pushed
   column 1 off-screen; inside this grid they are plain cells. */
body.pp-bold .pp-rp__grid > .ppt-band { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; left: auto !important; right: auto !important; background: none !important; }
body.pp-bold .pp-rp__grid > .ppt-band::before, body.pp-bold .pp-rp__grid > .ppt-band::after { display: none !important; }
body.pp-bold .pp-rp__grid > .ppt-band { box-shadow: none !important; clip-path: none !important; border-image: none !important; }
body.pp-bold .pp-rp__grid > .ppt-band > .pp-rp__card { background: #fff; border: 0 !important; border-radius: 8px !important; box-shadow: 0 6px 18px rgba(11, 28, 54, .1); }
body.pp-bold .pp-rp__card :is(h2, h3) a { text-decoration: none !important; color: var(--b-navy) !important; }
body.pp-bold .pp-rp__card :is(h2, h3)::after { display: none !important; }
/* Wrap-mode alternating bands: Bold sky instead of #f4f7fa (the full-bleed trick paints with box-shadow). */
body.pp-bold .ppt-band--tint:not(.pp-rp__grid > *) { background: var(--b-sky) !important; box-shadow: 0 0 0 100vmax var(--b-sky) !important; }
/* Full-frame hero originals: centred (the old per-crop offsets were for the wide panoramas). */
body.pp-bold .ppt .ppt-hero > img.ppt-hero__bg--full { object-position: 50% 55% !important; }

/* ---------- fix-20261102 HERO BALANCE (James: text ran into the photo, photo too far right, empty left) ----------
   Desktop photo heroes = two fixed panels: navy text panel (left 46%) with the text block centred in it,
   photo panel (right 54%) with a hard edge. Text can never cross into the photo at any width. */
@media (min-width: 922px) {
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) { justify-content: flex-start; }
	body.pp-bold .ppt .ppt-hero > img.ppt-hero__bg { width: 54% !important; }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg)::before { background: linear-gradient(90deg, var(--b-navy) 0%, var(--b-navy) 46%, transparent 46%) !important; }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) > .ppt-wrap { width: 46% !important; max-width: none !important; margin: 0 !important; padding: 0 clamp(32px, 3.5vw, 64px) !important; display: flex; justify-content: center; box-sizing: border-box; }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) .ppt-hero__card { width: 100%; max-width: 560px; margin: 0 !important; }
	body.pp-bold .ppt .ppt-hero:has(> img.ppt-hero__bg) .ppt-h1 { font-size: clamp(34px, 3.1vw, 54px) !important; overflow-wrap: break-word; }
}
/* fix-20261102 PHONE TABLES: the 520px min-width + overflow:hidden cut the price column off on phones. Fit and wrap instead. */
@media (max-width: 600px) {
	html body.pp-bold .ppx-table table { min-width: 0 !important; width: 100% !important; table-layout: auto; }
	html body.pp-bold .ppx-table :is(th, td) { padding: 10px 10px !important; font-size: 15px !important; overflow-wrap: break-word; word-break: normal; hyphens: manual; }
	html body.pp-bold .ppx-table thead th { font-size: 12px !important; letter-spacing: .03em !important; }
}
/* fix-20261102 PORTRAIT HEROES: whole tall photo (contain) over a blurred, darkened copy of itself (php adds .ppt-hero__blur). */
body.pp-bold .ppt .ppt-hero { overflow: hidden; }
body.pp-bold .ppt .ppt-hero > img.ppt-hero__bg--portrait { object-fit: contain !important; object-position: 50% 50% !important; background: transparent !important; z-index: 1; }
body.pp-bold .ppt .ppt-hero > img.ppt-hero__blur { position: absolute; object-fit: cover; filter: blur(22px) brightness(.55) saturate(1.1); transform: scale(1.12); z-index: 0; pointer-events: none; }
@media (min-width: 922px) {
	body.pp-bold .ppt .ppt-hero > img.ppt-hero__blur { top: 0; right: 0; left: auto; width: 54%; height: 100%; }
}
@media (max-width: 921px) {
	body.pp-bold .ppt .ppt-hero > img.ppt-hero__bg--portrait { position: relative; aspect-ratio: 4 / 3; }
	body.pp-bold .ppt .ppt-hero > img.ppt-hero__blur { top: 0; left: 0; width: 100%; aspect-ratio: 4 / 3; height: auto; }
}
/* fix-20261102 PROJECT GAP: Astra's 72px content margin on single projects left a cream strip above the hero. Pages use 0. */
body.pp-bold.single-project #primary.content-area { margin-top: 0 !important; }
