/* ==================================================
   EPC Near Me — Assessor page content design
   Matches the enm- profile hero design language:
   deep green #043D24, CTA green #25C146, accent #4ade80,
   soft shadows, 16-24px radii.
   ================================================== */

:root {
  --enm-deep: #043D24;
  --enm-deep-2: #0a5233;
  --enm-cta: #25C146;
  --enm-accent: #4ade80;
  --enm-ink: #16241d;
  --enm-muted: #4b5f55;
  --enm-tint: #f2faf5;
  --enm-line: #dcebe2;
  --enm-radius: 20px;
  --enm-shadow: 0 16px 38px rgba(4, 61, 36, 0.10);
}

/* ---------- Price + phone band (wrapper .enm-price-band) ---------- */
.enm-price-band {
  width: 100%;
  box-sizing: border-box;
  max-width: 900px;
  margin: 34px auto 10px;
  background: var(--enm-deep);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--enm-radius);
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.22);
  padding: 30px 28px 32px;
  text-align: center;
}
.enm-price-band .fl-module,
.enm-price-band .fl-module-content,
.enm-price-band .fl-html {
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  max-width: none !important;
  float: none !important;
}
.enm-price-band h2.fl-heading {
  background: transparent !important;
  color: #fff !important;
  text-align: center;
  font-size: 32px !important;
  font-weight: 800;
  letter-spacing: 0.2px;
  line-height: 1.2 !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}
.enm-price-band h2.fl-heading .fl-heading-text {
  background: transparent !important;
  color: #fff !important;
  font-size: inherit !important;
  line-height: inherit !important;
  display: inline !important;
  padding: 0 !important;
}
.enm-price-band .fl-html h4,
.enm-price-band .fl-html p {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.92) !important;
  text-align: center;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0 !important;
}
.enm-price-band .fl-html a.assessor_phone {
  display: inline-block;
  background: var(--enm-cta);
  color: #fff !important;
  font-weight: 800;
  text-decoration: none;
  padding: 8px 18px;
  margin: 0 4px;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.enm-price-band .fl-html a.assessor_phone:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.28);
}

/* ---------- SEO content block (node 0nliqhmxzgd3) ---------- */
.fl-node-0nliqhmxzgd3 {
  max-width: 900px;
  margin: 8px auto 0 !important;
}
.fl-node-0nliqhmxzgd3 .fl-module-content {
  margin: 0 !important;
}

/* Intro */
.enm-bio-intro {
  padding: 30px 4px 6px;
}
.enm-bio-title {
  font-size: 32px !important;
  font-weight: 800;
  color: var(--enm-ink) !important;
  margin: 0 0 14px !important;
  line-height: 1.15;
}
.enm-bio-title strong {
  font-weight: 800;
}
.enm-bio-intro > p:first-of-type {
  font-size: 19px;
  line-height: 1.65;
  color: var(--enm-ink);
}
.enm-bio-intro p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--enm-muted);
  margin: 0 0 14px;
}

/* Sections */
.enm-bio-section {
  background: #fff;
  border: 1px solid var(--enm-line);
  border-radius: var(--enm-radius);
  box-shadow: var(--enm-shadow);
  padding: 26px 30px;
  margin: 18px 0;
}
.enm-bio-section h2 {
  font-size: 22px !important;
  font-weight: 800;
  color: var(--enm-ink) !important;
  margin: 0 0 6px !important;
  padding-bottom: 12px;
  line-height: 1.25;
  position: relative;
}
.enm-bio-section h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 4px;
  width: 46px;
  height: 4px;
  border-radius: 2px;
  background: var(--enm-accent);
}
.enm-bio-section p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--enm-muted);
  margin: 10px 0 0;
}
.enm-bio-section a,
.enm-bio-intro a {
  color: var(--enm-deep-2);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--enm-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}
.enm-bio-section a:hover,
.enm-bio-intro a:hover {
  color: var(--enm-deep);
}

/* Checklist */
ul.enm-checklist {
  list-style: none !important;
  margin: 16px 0 4px !important;
  padding: 0 !important;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 22px;
}
ul.enm-checklist li {
  position: relative;
  padding: 10px 12px 10px 44px;
  background: var(--enm-tint);
  border: 1px solid var(--enm-line);
  border-radius: 12px;
  font-size: 15.5px;
  line-height: 1.45;
  color: var(--enm-ink);
}
ul.enm-checklist li::before {
  content: "\2713";
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--enm-cta);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  line-height: 22px;
  text-align: center;
}

/* Final CTA card */
.enm-bio-section.enm-bio-cta {
  background: var(--enm-deep);
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.22);
}
.enm-bio-cta h2 {
  color: #fff !important;
}
.enm-bio-cta p {
  color: rgba(255, 255, 255, 0.85);
}
.enm-bio-cta a {
  color: var(--enm-accent);
}
.enm-bio-cta a:hover {
  color: #fff;
}
.enm-bio-cta a.enm-town-pill {
  display: inline-block;
  background: rgba(255, 255, 255, 0.10);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  padding: 7px 16px;
  margin: 6px 6px 0 0;
  border-radius: 999px;
  transition: background 0.15s ease;
}
.enm-bio-cta a.enm-town-pill:hover {
  background: var(--enm-cta);
  border-color: var(--enm-cta);
  color: #fff;
}

/* ---------- Accreditation gallery (node lzvcnh10pd4m) ---------- */
.fl-node-lzvcnh10pd4m {
  display: block !important;
  width: 100% !important;
  max-width: 900px !important;
  margin: 26px auto !important;
  box-sizing: border-box;
}
.fl-node-lzvcnh10pd4m .fl-module-content {
  margin: 0 !important;
  width: 100% !important;
}
.fl-node-lzvcnh10pd4m .fl-mosaicflow {
  height: auto !important;
  width: 100% !important;
}
.fl-node-lzvcnh10pd4m .fl-mosaicflow-content {
  display: flex !important;
  flex-wrap: nowrap !important;         /* ALL logos on one line, every screen */
  justify-content: center !important;   /* logos centred, never bunched left */
  align-items: stretch;
  gap: 14px !important;
  width: 100%;
  height: auto !important;
}
/* flatten mosaic columns so every logo sits in the flex row — and defeat any
   inline width/float the mosaicflow plugin JS applies at runtime */
.fl-node-lzvcnh10pd4m .fl-mosaicflow-col {
  display: contents !important;
  width: auto !important;
  float: none !important;
}
.fl-node-lzvcnh10pd4m .fl-mosaicflow-item {
  flex: 1 1 0 !important;        /* equal shares of one row; shrink on phones */
  min-width: 0 !important;
  max-width: 210px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--enm-line);
  border-radius: 14px;
  padding: 14px 12px;
  box-shadow: var(--enm-shadow);
  margin: 0 !important;
  position: static !important;   /* the plugin must never absolute-position these */
  transform: none !important;
  left: auto !important;
  top: auto !important;
}
.fl-node-lzvcnh10pd4m .fl-photo,
.fl-node-lzvcnh10pd4m .fl-photo-content {
  width: 100%;
}
.fl-node-lzvcnh10pd4m .fl-photo-img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: 190px;
  margin: 0 auto;
}

/* ---------- Separators ---------- */
.fl-node-2x7z8dw3oapq,
.fl-node-8dvw0ptx4sz6 {
  display: none !important;
}

/* ---------- Bottom CTA strips (nodes cdprxu4bih07 + hrlzwd8f42xy) ---------- */
.fl-node-cdprxu4bih07,
.fl-node-hrlzwd8f42xy {
  display: block !important;
  width: 100% !important;
  max-width: 900px !important;
  margin: 18px auto !important;
  float: none !important;
  box-sizing: border-box;
}
.fl-node-cdprxu4bih07 .fl-module-content,
.fl-node-hrlzwd8f42xy .fl-module-content {
  margin: 0 !important;
  width: 100% !important;
}
.fl-node-cdprxu4bih07 .fl-cta-wrap,
.fl-node-hrlzwd8f42xy .fl-cta-wrap {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 28px;
  align-items: center;
  width: 100% !important;
  box-sizing: border-box;
  background: var(--enm-tint);
  border: 1px solid var(--enm-line);
  border-radius: var(--enm-radius);
  box-shadow: var(--enm-shadow);
  padding: 26px 30px;
}
.fl-node-cdprxu4bih07 .fl-cta-title,
.fl-node-hrlzwd8f42xy .fl-cta-title {
  font-size: 21px !important;
  font-weight: 800;
  color: var(--enm-ink) !important;
  margin: 0 0 6px !important;
  line-height: 1.3;
}
.fl-node-cdprxu4bih07 .fl-cta-text-content p,
.fl-node-hrlzwd8f42xy .fl-cta-text-content p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--enm-muted);
  margin: 0;
}
.fl-node-cdprxu4bih07 .fl-cta-button,
.fl-node-hrlzwd8f42xy .fl-cta-button {
  width: auto !important;
  justify-self: end;
}
.fl-node-cdprxu4bih07 .fl-button-wrap,
.fl-node-hrlzwd8f42xy .fl-button-wrap {
  display: block !important;
  width: auto !important;
}
.fl-node-cdprxu4bih07 a.fl-button,
.fl-node-hrlzwd8f42xy a.fl-button {
  display: inline-block !important;
  position: static !important;
  width: auto !important;
  min-width: 170px;
  background: var(--enm-cta) !important;
  border: 1px solid var(--enm-cta) !important;
  border-radius: 10px !important;
  padding: 15px 28px !important;
  box-shadow: 0 10px 24px rgba(4, 61, 36, 0.18);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  white-space: nowrap;
  text-align: center;
  text-decoration: none !important;
  line-height: 1.2 !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #fff !important;
  box-sizing: border-box;
  overflow: visible;
}
.fl-node-cdprxu4bih07 a.fl-button:hover,
.fl-node-hrlzwd8f42xy a.fl-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(4, 61, 36, 0.26);
  background: #31D957 !important;
  border-color: #31D957 !important;
}
.fl-node-cdprxu4bih07 a.fl-button .fl-button-text,
.fl-node-hrlzwd8f42xy a.fl-button .fl-button-text {
  display: inline !important;
  position: static !important;
  color: #fff !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
  .enm-price-band {
    padding: 22px 16px 24px;
  }
  .enm-price-band h2.fl-heading {
    font-size: 25px !important;
  }
  .fl-node-lzvcnh10pd4m .fl-mosaicflow-content {
    flex-wrap: nowrap;
    gap: 6px !important;
  }
  .fl-node-lzvcnh10pd4m .fl-mosaicflow-item {
    padding: 8px 6px;
    border-radius: 10px;
  }
  .enm-bio-title {
    font-size: 26px !important;
  }
  .enm-bio-section {
    padding: 20px 18px;
  }
  ul.enm-checklist {
    grid-template-columns: 1fr;
  }
  .fl-node-cdprxu4bih07 .fl-cta-wrap,
  .fl-node-hrlzwd8f42xy .fl-cta-wrap {
    grid-template-columns: 1fr;
    padding: 22px 18px;
  }
  .fl-node-cdprxu4bih07 .fl-button-wrap,
  .fl-node-hrlzwd8f42xy .fl-button-wrap {
    width: 100%;
  }
  .fl-node-cdprxu4bih07 a.fl-button,
  .fl-node-hrlzwd8f42xy a.fl-button {
    display: block;
    text-align: center;
  }
}
/* ==================================================================
   ENM assessor-page fix pack (2026-07) — merged variant A/B/C +
   CSS-coverage audits. Appended last in <head> (after Astra inline
   CSS, the BB bundle and the per-page <style> blobs — verified), so
   equal-specificity ties resolve to these rules.
   Scoping contract: variant-A card fixes live under
   .enm-assessor-layout-card; unclaimed-hero fix under
   .enm-profile-hero-left:only-child; export-markup fixes under
   .enm-bio-* with :has()/[data-*] guards.
   ================================================================== */

/* JS hooks, intentionally unstyled — do NOT remove from markup or "clean up":
   .enm-profile-hero-left / .enm-profile-hero-right / .assessor_bio  (town.js hydration anchors)
   .enm-track-call / .enm-track-email                                (track.js click tracking)
   .enm-claim-card, .enm-premium-badge self-style via inline style attributes. */

/* ---------- 1. Variant A — claimed hero card (465 pages) ---------- */

/* 1a. Assessor name h2 was near-illegible dark-navy-on-dark-green: the h2
   carries .fl-heading-text ON ITSELF, so the page's descendant rules
   (.enm-assessor-name-module .fl-heading-text) can never match it. */
.enm-profile-hero .enm-assessor-layout-card h2.enm-assessor-name-module {
  color: #ffffff !important;
  font-size: 34px !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em;
}
@media (max-width: 767px) {
  .enm-profile-hero .enm-assessor-layout-card h2.enm-assessor-name-module {
    font-size: 28px !important;
    text-align: center !important;
  }
}

/* 1b. '★ Premium Assessor' badge rendered below the buttons: the card grid
   only defined 3 rows (all occupied in column 2), so the badge auto-flowed
   into an implicit 4th row. Give the grid a real 4th row and re-pin rows.
   Desktop-only: at ≤767px the in-page :has() rule switches the card to
   display:flex and DOM order (name → badge → USPs) is already correct.
   Extra > combinators out-specify the page's !important grid-row rules. */
@media (min-width: 768px) {
  .enm-profile-hero .enm-assessor-layout-card > .fl-col-content {
    grid-template-rows: auto auto auto auto !important;
  }
  .enm-profile-hero .enm-assessor-layout-card > .fl-col-content > #enm_hero_assessor_photo_clean {
    grid-row: 1 / span 3 !important;
  }
  .enm-profile-hero .enm-assessor-layout-card > .fl-col-content > .enm-premium-badge {
    grid-row: 2; /* inline style already pins grid-column: 2 */
    justify-self: start;
    align-self: start;
  }
  .enm-profile-hero .enm-assessor-layout-card > .fl-col-content > .enm-assessor-usp-module {
    grid-row: 3 !important;
  }
  .enm-profile-hero .enm-assessor-layout-card > .fl-col-content > .enm-hero-call-btn,
  .enm-profile-hero .enm-assessor-layout-card > .fl-col-content > .enm-hero-email-btn {
    grid-row: 4 !important;
  }
}

/* 1c. USP bullets: baked inline <span style="font-size: 14px;"> defeated the
   designed 16px li rule; stylesheet !important beats non-!important inline. */
.enm-profile-hero .enm-assessor-layout-card .enm-assessor-usp-module li span {
  font-size: 16px !important;
}
@media (max-width: 767px) {
  .enm-profile-hero .enm-assessor-layout-card .enm-assessor-usp-module li span {
    font-size: 15px !important;
  }
}

/* 1d. Close the 768px breakpoint gap: BB's mobile rules fire at ≤768px
   (right col 49.99% floated, left col capped 400px) but the in-page hero
   stacking rules fire only at ≤767px — at exactly 768px the hero half-stacks. */
@media (max-width: 768px) {
  .fl-builder-content .enm-profile-hero .fl-col,
  .fl-builder-content .enm-profile-hero .fl-col-small {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    clear: both !important;
  }
}

/* ---------- 2. Variant C — unclaimed hero (793 pages) ---------- */

/* No right-hand quote panel is baked on unclaimed pages, yet the bundle pins
   the hero column at 44.05% (.fl-node-esmywc3zv62p) — H1 + claim card squeezed
   into the left half of an empty row. Let a lone hero column span the row.
   No !important on purpose: BB's mobile .fl-col{width:auto!important} still
   wins on phones, and when town.js claims a town it appends the
   .enm-profile-hero-right.enm-db-quote-col sibling in the same pass, so
   :only-child stops matching and the two-column layout returns. */
.enm-profile-hero .fl-col-group > .enm-profile-hero-left:only-child {
  width: 100%;
  max-width: none;
}

/* ---------- 3. Bio typography — shared .enm-bio-* (variants A+B+C) ---------- */

/* 3a. h3/h4 sub-headings had NO rule anywhere, inheriting Astra's #000f2b —
   effectively invisible on the dark .enm-bio-cta card (the redhill report)
   and off-design (h4 23px > h3 20px) on white cards. */
.enm-bio-intro h3,
.enm-bio-section h3 {
  font-size: 20px !important;
  font-weight: 800;
  color: var(--enm-ink) !important;
  line-height: 1.3;
  margin: 24px 0 4px !important;
  padding: 0;
}
.enm-bio-intro h4,
.enm-bio-section h4 {
  font-size: 17.5px !important;
  font-weight: 800;
  color: var(--enm-ink) !important;
  line-height: 1.3;
  margin: 20px 0 2px !important;
  padding: 0;
}
/* dark CTA card variant — after the light rules so the tie breaks white
   (.enm-bio-cta elements always also carry .enm-bio-section) */
.enm-bio-cta h3,
.enm-bio-cta h4,
.enm-bio-cta h5 {
  color: #fff !important;
}

/* 3b. ChatGPT-export artefacts: stray <hr data-start> rules cutting through
   the cards (119 pages) and empty heading elements leaving blank gaps. */
.enm-bio-intro hr,
.enm-bio-section hr {
  display: none !important;
}
.enm-bio-intro :is(h2, h3, h4):empty,
.enm-bio-section :is(h2, h3, h4):empty {
  display: none !important;
}

/* 3c. Archway-style pages ship an empty <section class="enm-bio-intro"></section>
   (45 pages): remove its dead 30px padding and promote the first card heading
   toward title size so the page still opens with a proper headline. */
.enm-bio-intro:empty {
  display: none;
  padding: 0;
}
.assessor_bio .enm-bio-intro:empty + .enm-bio-section h2 {
  font-size: 30px !important;
}

/* ---------- 4. Town pills + 'EPC nearby' lists ---------- */

/* 4a. Base pill style — the only existing rule is scoped to .enm-bio-cta, so
   any pill outside the dark CTA degrades to a plain underlined link. All 3106
   current pills are inside the CTA (verified), whose higher-specificity rule
   still overrides this; the class is now self-sufficient for future edits. */
a.enm-town-pill {
  display: inline-block;
  background: var(--enm-tint);
  border: 1px solid var(--enm-line);
  color: var(--enm-deep-2);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  padding: 7px 16px;
  margin: 6px 6px 0 0;
  border-radius: 999px;
  transition: background 0.15s ease, color 0.15s ease;
}
a.enm-town-pill:hover {
  background: var(--enm-cta);
  border-color: var(--enm-cta);
  color: #fff;
}

/* 4b. ChatGPT-export nearby lists (<ul><li><p><strong>EPC <pill>) rendered as
   an indented bulleted list — the owner's 'unstyled nearby box' on birmingham.
   Strip bullets/indent and lay pills out as a wrapping row. The :has(pill)
   guard keeps real content lists (cardiff/chichester/plymouth CTAs) untouched,
   and variant A's pills sit in <p> not <ul>, so A pages never match. */
.enm-bio-intro ul:has(a.enm-town-pill),
.enm-bio-section ul:has(a.enm-town-pill) {
  list-style: none !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 14px 0 0 !important;
  padding: 0 !important;
}
.enm-bio-intro ul:has(a.enm-town-pill) li,
.enm-bio-section ul:has(a.enm-town-pill) li {
  margin: 0;
  padding: 0;
}
.enm-bio-intro ul:has(a.enm-town-pill) li p,
.enm-bio-section ul:has(a.enm-town-pill) li p {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 !important;
}
.enm-bio-section ul:has(a.enm-town-pill) li a.enm-town-pill {
  margin: 0;
}
/* the bold 'EPC' prefix sits outside the pill on B pages — keep it legible */
.enm-bio-cta ul:has(a.enm-town-pill) li p,
.enm-bio-cta ul:has(a.enm-town-pill) strong {
  color: #fff;
}

/* ---------- 5. Plain content lists in bio cards ---------- */

/* Only ul.enm-checklist was ever styled; export lists (65 pages with
   <ul data-start>) fell to Bootstrap-reboot defaults: 2rem indent, body-colour
   markers (near-invisible on the dark card), 10px p-margins between items,
   and bare <li> items mismatching styled li>p siblings. */
.enm-bio-section ul:not(.enm-checklist):not(:has(a.enm-town-pill)),
.enm-bio-section ol {
  margin: 12px 0 4px !important;
  padding: 0 0 0 22px !important;
}
.enm-bio-section ul:not(.enm-checklist):not(:has(a.enm-town-pill)) li,
.enm-bio-section ol li {
  margin: 0 0 6px;
  font-size: 16.5px;
  line-height: 1.65;
  color: var(--enm-muted);
}
.enm-bio-section ul:not(.enm-checklist):not(:has(a.enm-town-pill)) li::marker,
.enm-bio-section ol li::marker {
  color: var(--enm-cta);
}
.enm-bio-section ul:not(.enm-checklist) li p,
.enm-bio-section ol li p {
  margin: 0 !important; /* cancels .enm-bio-section p { margin:10px 0 0 } inside items */
  font-size: inherit;
  line-height: inherit;
}
/* same lists on the dark CTA card */
.enm-bio-cta ul:not(:has(a.enm-town-pill)) li,
.enm-bio-cta ul:not(:has(a.enm-town-pill)) li p,
.enm-bio-cta ul:not(:has(a.enm-town-pill)) li::marker {
  color: rgba(255, 255, 255, 0.85);
}

/* ---------- 6. Legacy bios without .enm-bio-* wrappers (53 unclaimed pages) ---------- */

/* aberdeen/brackla style: bare h4/p runs sit as DIRECT children of the bio
   module's .fl-module-content (verified). Redesigned pages wrap content in
   .fl-rich-text/<section>, so the > combinator can never touch them. */
.fl-node-0nliqhmxzgd3 .fl-module-content > h2,
.fl-node-0nliqhmxzgd3 .fl-module-content > h3,
.fl-node-0nliqhmxzgd3 .fl-module-content > h4 {
  font-size: 22px !important;
  font-weight: 800;
  color: var(--enm-ink) !important;
  line-height: 1.25;
  margin: 28px 0 8px;
}
.fl-node-0nliqhmxzgd3 .fl-module-content > p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--enm-muted);
  margin: 10px 0;
}
.fl-node-0nliqhmxzgd3 .fl-module-content > p:empty {
  display: none;
}
.fl-node-0nliqhmxzgd3 .fl-module-content > p a,
.fl-node-0nliqhmxzgd3 .fl-module-content > h4 a {
  color: var(--enm-deep-2);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--enm-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}
/* the centered 'JOIN OUR DEA NETWORK' link as a proper CTA button */
.fl-node-0nliqhmxzgd3 .fl-module-content > h4 > a[href*="join-our-dea-network"] {
  display: inline-block;
  background: var(--enm-cta);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  padding: 13px 24px;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(4, 61, 36, 0.18);
}

/* ---------- 7. Extra bio content in .fl-node-i3ay6unes5r0 (birmingham/manchester) ---------- */

/* The node sits unconstrained in a 1200px fixed-width row, so its FAQ cards
   render ~1200px wide against the 900px bio column. Constrain it, kill the
   export's stray empty <p>s, and hide the node entirely on the ~1256 pages
   where it holds nothing but an empty paragraph. */
.fl-node-i3ay6unes5r0 {
  max-width: 900px;
  margin: 0 auto !important;
  float: none !important;
  box-sizing: border-box;
}
.fl-node-i3ay6unes5r0 .fl-module-content {
  margin: 0 !important;
}
.fl-node-i3ay6unes5r0 .fl-rich-text > p:empty {
  display: none;
  margin: 0;
}
.fl-node-i3ay6unes5r0:not(:has(section, h2, h3, ul, img, table)) {
  display: none;
}

/* ---------- 8. Always-empty trailing template rows (defensive) ---------- */

/* These rows contribute ~0px today (bundle zeroes module margins; the rows
   have horizontal padding only — verified), so this is belt-and-braces.
   fl-node-enxmrlsa831p is guarded because 5 legacy pages (astley, birstall,
   leigh, lowton, tyldesley) carry the testimonials block inside it. */
.fl-node-w6ba98xrjl0q:not(:has(.fl-col)) {
  display: none;
}
.fl-node-enxmrlsa831p:not(:has(section, h2, ul, img, table, .assessor-testimonials)) {
  display: none;
}

/* ---------- 9. Testimonials block (5 legacy pages) ---------- */

/* .assessor-testimonials* classes exist in markup with zero CSS anywhere —
   the reviews rendered as an unstyled wall of text. */
.fl-node-tik92e1v3z57 .fl-rich-text {
  max-width: 900px;
  margin: 0 auto;
}
h2.assessor-testimonials__title {
  font-size: 22px;
  font-weight: 800;
  color: var(--enm-ink);
  margin: 8px 0 14px;
  line-height: 1.25;
}
.assessor-testimonials {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin: 0 0 26px;
}
.assessor-testimonial {
  background: #fff;
  border: 1px solid var(--enm-line);
  border-radius: var(--enm-radius);
  box-shadow: var(--enm-shadow);
  padding: 20px 22px;
}
.assessor-testimonial__content {
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--enm-muted);
}
.assessor-testimonial__name {
  margin-top: 12px;
  font-weight: 700;
  font-size: 14.5px;
  color: var(--enm-ink);
}

/* ---------- 10. CTA strip h3 titles (companion to the h4→h3 markup transform) ---------- */

/* The BB bundle zeroes margins only for h4/h5/h6.fl-cta-title (verified:
   'body h4.fl-cta-title,body h5...,body h6...{margin:0;padding:0 0 10px}'),
   so keep byte-identical spacing once the tags become h3. */
.fl-node-cdprxu4bih07 h3.fl-cta-title,
.fl-node-hrlzwd8f42xy h3.fl-cta-title {
  margin: 0 0 6px !important;
  padding: 0 0 10px;
}
/* Region links after the nearby-pill lists (e.g. "EPC West Midlands" on the
   dark CTA card) were bare underlined text — style them as a green CTA pill,
   aligned with the pills above */
.enm-bio-cta > p > a:not(.enm-town-pill),
.enm-bio-cta p[data-start] > a:not(.enm-town-pill) {
  display: inline-block;
  background: var(--enm-cta, #25C146);
  border: 1px solid var(--enm-cta, #25C146);
  color: #fff !important;
  font-weight: 800;
  font-size: 15px;
  text-decoration: none;
  padding: 9px 20px;
  border-radius: 999px;
  margin-top: 10px;
}
.enm-bio-cta > p > a:not(.enm-town-pill):hover,
.enm-bio-cta p[data-start] > a:not(.enm-town-pill):hover {
  background: #31D957;
  border-color: #31D957;
}

/* Bulletproof the bio cards: no baked/legacy rule may shrink the type or
   strip the white card (dark CTA card explicitly preserved) */
.enm-bio-section:not(.enm-bio-cta) {
  background: #fff !important;
  border: 1px solid var(--enm-line) !important;
}
.enm-bio-section.enm-bio-cta {
  background: var(--enm-deep) !important;
}
.enm-bio-section p { font-size: 16.5px !important; }
.enm-bio-cta p { font-size: 16.5px !important; }
.enm-bio-intro p { font-size: 17px !important; }
