/* Shared public introductions. One page canvas; no separate glowing rectangle
   behind the title. Record facts and action destinations remain untouched. */
:root {--hp-page-canvas:#f7f6fa;--hp-page-panel:#fff;--hp-page-ink:#261c35;--hp-page-muted:#665b74;--hp-page-line:#dfd9e8;--hp-page-accent:#6832bd;--hp-page-soft:#efebf6;}
html.hp-experience-dark {--hp-page-canvas:#14121b;--hp-page-panel:#211c2b;--hp-page-ink:#f5f0fb;--hp-page-muted:#c4b9d1;--hp-page-line:#443950;--hp-page-accent:#c8a9fc;--hp-page-soft:#2c2339;}
body:has(:is(.hp-page-masthead,.hp-utility-masthead)) {background:var(--hp-page-canvas)!important;color:var(--hp-page-ink);}
body:has(.hp-page-masthead)::before {content:none;}
body .hp-page-masthead,
body.directorist-content-active .hp-page-masthead--directory {
 display:grid;grid-template-columns:minmax(0,1fr) auto;justify-items:start;gap:12px 36px;
 width:min(calc(100% - 64px),1140px);max-width:100%;min-height:0;
 margin:36px auto 28px;padding:0 0 28px;border:0;border-bottom:1px solid var(--hp-page-line);
 border-radius:0;background:transparent!important;box-shadow:none;text-align:left;
}
body .hp-page-masthead::before,body .hp-page-masthead::after {content:none!important;}
body .hp-page-masthead :is(h1,.hp-page-masthead__eyebrow,.hp-page-masthead__intro,.hp-page-masthead__signals,.hp-page-masthead__status,.hp-page-masthead__back) {grid-column:1;margin:0;justify-self:start;text-align:left;}
body .hp-page-masthead h1,
body.directorist-content-active .hp-page-masthead--directory h1 {max-width:23ch;color:var(--hp-page-ink);font-size:clamp(34px,4.3vw,54px);font-weight:750;line-height:1.08;letter-spacing:-.05em;text-wrap:balance;}
body .hp-page-masthead .hp-page-masthead__eyebrow,
body.directorist-content-active .hp-page-masthead--directory .hp-page-masthead__eyebrow {color:var(--hp-page-accent);font-size:11px;font-weight:750;letter-spacing:.13em;line-height:1.5;}
body .hp-page-masthead .hp-page-masthead__eyebrow::before {width:5px;height:16px;border-radius:3px;background:var(--hp-page-accent);box-shadow:none;}
body .hp-page-masthead .hp-page-masthead__intro,
body.directorist-content-active .hp-page-masthead--directory .hp-page-masthead__intro {max-width:65ch;font-size:16px;line-height:1.65;color:var(--hp-page-muted);margin:0;}
body .hp-page-masthead .hp-page-masthead__signals {justify-content:start;gap:8px 18px;margin-top:2px;}
body .hp-page-masthead .hp-page-masthead__signal {padding:0;background:none;border:0;border-radius:0;color:var(--hp-page-muted);font-size:12px;font-weight:500;box-shadow:none;}
body .hp-page-masthead .hp-page-masthead__signal--link {color:var(--hp-page-accent);text-decoration:underline;text-underline-offset:4px;min-height:36px;display:inline-flex;align-items:center;}
body .hp-page-masthead .hp-page-masthead__actions,
body.directorist-content-active .hp-page-masthead--directory .hp-page-masthead__actions {grid-column:2;grid-row:1/span 3;align-self:center;justify-content:end;flex-direction:column;gap:8px;margin:0;}
body .hp-page-masthead .hp-c-btn {min-height:44px;font-size:13px;border-radius:10px;box-shadow:none;}
body .hp-page-masthead .hp-c-btn--secondary,
body.directorist-content-active .hp-page-masthead--directory .hp-c-btn--secondary {color:var(--hp-page-accent)!important;background:var(--hp-page-panel)!important;border:1px solid var(--hp-page-line)!important;}
body .hp-page-masthead .hp-c-btn--primary {background:#7038d0;color:#fff;}
body .hp-page-masthead--record .hp-page-masthead__status {padding:5px 10px;background:var(--hp-page-soft);color:var(--hp-page-accent);}
body .hp-page-masthead--layout-compact h1 {font-size:clamp(30px,3.7vw,46px);}
body .hp-utility-masthead {background:transparent!important;border:0;border-bottom:1px solid var(--hp-page-line);border-radius:0;box-shadow:none;padding:20px 0 24px;text-align:left;}
body .hp-utility-masthead :is(h1,h2) {color:var(--hp-page-ink);letter-spacing:-.04em;}
body .hp-utility-masthead p {color:var(--hp-page-muted);}
/* Intro and content inherit the same canvas, so there is no hard join. */
body:has(.hp-page-masthead) :is(.hp-content-surface,.hp-content-surface__body,.hp-contact-page,.hp-directory-archive-full) {background:transparent;color:var(--hp-page-ink);}
html.hp-experience-dark :is(.hp-c-card,.hp-c-panel,.hp-card,.hp-surface,.hp-dashboard-card,.hp-help-card,.hp-tools-card,.hp-free-tools__tile,.hp-context-gate,.hp-gateway-card) {background:var(--hp-page-panel);border-color:var(--hp-page-line);color:var(--hp-page-ink);}
html.hp-experience-dark :is(.hp-c-card,.hp-c-panel,.hp-card,.hp-surface,.hp-dashboard-card,.hp-help-card,.hp-tools-card,.hp-free-tools__tile,.hp-context-gate,.hp-gateway-card) :is(h1,h2,h3,h4,strong) {color:var(--hp-page-ink);}
html.hp-experience-dark :is(.hp-c-card,.hp-c-panel,.hp-card,.hp-surface,.hp-dashboard-card,.hp-help-card,.hp-tools-card,.hp-free-tools__tile,.hp-context-gate,.hp-gateway-card) :is(p,li,small) {color:var(--hp-page-muted);}
html.hp-experience-dark :is(.hp-c-card,.hp-c-panel,.hp-help-card,.hp-tools-card,.hp-free-tools__tile) a:not(.hp-c-btn--primary) {color:var(--hp-page-accent);}
body .hp-community {background:var(--hp-page-panel)!important;border-color:var(--hp-page-line);box-shadow:none;color:var(--hp-page-muted);}
body .hp-community :is(h2,p) {color:var(--hp-page-ink)!important;}
body .hp-community a {color:var(--hp-page-accent)!important;border-color:var(--hp-page-line);}
/* Tools available today fill the available grid; no unused four-column rail. */
body .hp-free-tools__grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
body .hp-free-tools__tile {padding:28px;border:1px solid var(--hp-page-line);border-radius:20px;background:var(--hp-page-panel);color:var(--hp-page-ink);}
body .hp-free-tools__tile h2 {font-size:26px;letter-spacing:-.035em;line-height:1.2;color:var(--hp-page-ink);}
body .hp-free-tools__tile p {max-width:52ch;font-size:15px;line-height:1.7;color:var(--hp-page-muted);}
body .hp-free-tools__tile :is(.hp-free-tools__tile-cta,.hp-free-tools__tile-eyebrow) {color:var(--hp-page-accent);}
body .hp-free-tools__tile-icon {background:var(--hp-page-soft);color:var(--hp-page-accent);}
/* Heartbeat's wash continues across its real sections; the hero has no
   separately painted bottom edge. Wider layouts use the existing signal grid. */
body .hp-heartbeat {background:linear-gradient(180deg,#f2ebfa 0,#f7f6fa 1250px);}
html.hp-experience-dark body .hp-heartbeat {background:radial-gradient(ellipse 100% 850px at 50% 100px,#47256340,transparent 90%),linear-gradient(180deg,#1c1428 0,#14121b 1350px);}
body .hp-heartbeat .hp-heartbeat__hero {background:transparent;}
body .hp-heartbeat .hp-heartbeat__section--map {background:transparent;}
@media(max-width:767px){
 body .hp-page-masthead,body.directorist-content-active .hp-page-masthead--directory {width:calc(100% - 36px);margin:24px auto 20px;padding:0 0 22px;grid-template-columns:minmax(0,1fr);gap:10px;}
 body .hp-page-masthead h1,body.directorist-content-active .hp-page-masthead--directory h1 {font-size:34px;max-width:100%;}
 body .hp-page-masthead .hp-page-masthead__intro {font-size:15px;}
 body .hp-page-masthead .hp-page-masthead__actions,body.directorist-content-active .hp-page-masthead--directory .hp-page-masthead__actions {grid-column:1;grid-row:auto;flex-direction:row;flex-wrap:wrap;justify-content:start;gap:8px;}
 body .hp-page-masthead .hp-page-masthead__actions .hp-c-btn {padding:8px 12px!important;min-height:42px;}
 body .hp-free-tools__grid {grid-template-columns:1fr;gap:16px;}
 body .hp-free-tools__tile {padding:22px;}
}
/* Empty and recovery states carry the same contrast contract as populated cards. */
html.hp-experience-dark :is(.hp-events__empty,.hp-events__empty-tile,.hp-discovery__empty,.hp-heartbeat__empty,.hp-job-card,.hp-jobs-board__empty) {background:var(--hp-page-panel)!important;border-color:var(--hp-page-line)!important;color:var(--hp-page-ink)!important;}
html.hp-experience-dark :is(.hp-events__empty,.hp-discovery__empty,.hp-heartbeat__empty,.hp-job-card,.hp-jobs-board__empty) :is(h2,h3,h4,strong) {color:var(--hp-page-ink)!important;}
html.hp-experience-dark :is(.hp-events__empty,.hp-discovery__empty,.hp-heartbeat__empty,.hp-job-card,.hp-jobs-board__empty) :is(p,small,span) {color:var(--hp-page-muted);}
html.hp-experience-dark .hp-events__empty-tile-icon {background:var(--hp-page-soft);color:var(--hp-page-accent);}
html.hp-experience-dark .hp-events-toolbar :is(a,summary) {background:var(--hp-page-panel);color:var(--hp-page-accent);border-color:var(--hp-page-line);}
body .hp-contact-form__form :is(input:not([type=hidden]),textarea,select) {border:1px solid var(--hp-page-line);border-radius:10px;background:var(--hp-page-panel);color:var(--hp-page-ink);padding:12px;min-height:46px;font:inherit;}
body :is(.hp-contact-form__form,.hp-compact-filters,.hp-events-toolbar__panel) :is(input,textarea,select):focus-visible {outline:3px solid var(--hp-page-accent);outline-offset:3px;}
body .hp-page-masthead h1 {max-width:960px;}
@media(min-width:1500px){body .hp-heartbeat .hp-heartbeat__shell{width:calc(100% - 96px);max-width:1440px;}body .hp-heartbeat .hp-heartbeat-radar{width:100%;max-width:none;}}

/* Introductory guidance must remain complete at small widths. */
body .hp-page-masthead .hp-page-masthead__intro {display:block;-webkit-line-clamp:unset;overflow:visible;}

/* Discover shares the directory's input and readable card surfaces. */
body .hp-discovery__search {max-width:800px;gap:10px;}
body .hp-discovery__search input[type=search],body .hp-discovery__filter {background:var(--hp-page-panel)!important;color:var(--hp-page-ink)!important;border:1px solid var(--hp-page-line);border-radius:10px;min-height:48px;padding:12px 16px;}
body .hp-discovery__search input::placeholder,body .hp-discovery__filter::placeholder {color:var(--hp-page-muted);opacity:1;}
body .hp-discovery__search button {border-radius:10px;}
body .hp-discovery__section {padding-block:36px;}
body .hp-discovery__section--soft {background:transparent;}
body .hp-discovery :is(.hp-discovery__directory-link,.hp-discovery__section header > a,.hp-heartbeat__section-heading > a,.hp-heartbeat__section-heading > div > p) {color:var(--hp-page-accent);}
body .hp-discovery__grid {grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
body .hp-discovery__grid--single {grid-template-columns:minmax(0,540px);}
body .hp-discovery__grid > a {background:var(--hp-page-panel);color:var(--hp-page-ink);border-color:var(--hp-page-line);padding:20px;}
body .hp-discovery__grid--boosted > a {border-color:#9567d1;box-shadow:0 0 0 2px #8b5bd515;}
body .hp-discovery__grid strong {color:var(--hp-page-ink);}
body .hp-discovery__grid:not(.hp-discovery__grid--boosted) small {color:var(--hp-page-muted);}
body .hp-discovery__icon {background:var(--hp-page-soft);color:var(--hp-page-accent);width:48px;height:48px;}
body .hp-discovery__icon img {object-fit:contain;}
body .hp-discovery__more {background:var(--hp-page-panel);color:var(--hp-page-ink);border-color:var(--hp-page-line);}
@media(max-width:767px){body .hp-discovery__grid {grid-template-columns:1fr;}body .hp-discovery__section {padding-block:26px;}}

/* Local Updates uses the Platform plugin's editorial card component. */
body .hp-update-card {background:var(--hp-page-panel)!important;border:1px solid var(--hp-page-line);color:var(--hp-page-ink);box-shadow:none;}
body .hp-update-card__body {background:transparent;}
body .hp-update-card h2 a {color:var(--hp-page-ink)!important;}
body .hp-update-card__body p {color:var(--hp-page-muted)!important;}
body .hp-update-card__meta :is(span,time) {background:var(--hp-page-soft);color:var(--hp-page-muted);}

/* Support is a first-class route from both the website and the app. */
body .hp-help-centre .hp-help__grid {grid-template-columns:repeat(2,minmax(0,1fr));}
body :is(.hp-help__card,.hp-help__notice) {background:var(--hp-page-panel);border-color:var(--hp-page-line);color:var(--hp-page-ink);}
body :is(.hp-help__card,.hp-help__notice) :is(h2,h3) {color:var(--hp-page-ink);}
body :is(.hp-help__card,.hp-help__notice) :is(p,li) {color:var(--hp-page-muted);}
body .hp-help__card a {color:var(--hp-page-accent);}
body .hp-help-centre nav a {background:var(--hp-page-soft);color:var(--hp-page-accent);border:1px solid var(--hp-page-line);}
@media(max-width:767px){body .hp-help-centre .hp-help__grid {grid-template-columns:1fr;}}

/* Legal and deletion information retain their wording, with readable typography. */
body.hp-information-page :is(main,.page-content,.elementor-widget-text-editor,.cmplz-document) {color:var(--hp-page-ink);}
/* L01.1 (2026-09-12): on real staging the legal pages' Elementor widgets carry
   a per-element `color:#333` in Elementor's own generated CSS for that page --
   stored with the page, so it cannot be corrected from a theme file any other
   way. At (0,2,0) it beat the rule above, and the text sat at 1.47:1 in dark
   mode on /privacy-policy/ and /acceptable-listing-policy/. The paragraph and
   list rules below already use !important for the same reason; this extends
   the same treatment to widget text that is not wrapped in a <p>. Local never
   showed it because its copy of those pages has no such per-element colour. */
body.hp-information-page main :is(.elementor-widget-text-editor,.elementor-widget-text-editor .elementor-widget-container,.elementor-widget .elementor-widget-container) {color:var(--hp-page-muted)!important;}
body.hp-information-page main {max-width:960px;padding:0 28px 40px;margin:0 auto;background:transparent;}
body.hp-information-page main :is(h1,h2,h3,h4) {color:var(--hp-page-ink)!important;line-height:1.25;}
body.hp-information-page main :is(p,li,td,th,dd,dt) {color:var(--hp-page-muted)!important;font-size:16px;line-height:1.75;}
body.hp-information-page main a {color:var(--hp-page-accent)!important;text-decoration:underline;text-underline-offset:3px;}
body.hp-information-page .cmplz-document {max-width:none;background:transparent;}

body.hp-information-page main :is(h2,h3,h4) {font-family:var(--hp-font-heading);letter-spacing:-.025em;}
body.hp-information-page main h2 {font-size:28px;}

/* Account entry uses the same open canvas as Free Tools. */
body.hp-account-page .hp-content-surface__body {max-width:1140px;padding:0;border:0;background:transparent!important;box-shadow:none;}
body.hp-account-page .hp-account-hub {background:transparent!important;padding:0;}
body.hp-account-page .hp-account-hub__guest {display:flex;justify-content:flex-start;background:transparent!important;border:0;padding:0;margin:0 0 24px;box-shadow:none;}
body.hp-account-page .hp-account-hub__grid {gap:22px;}
body.hp-account-page .hp-account-hub__grid .hp-c-card {padding:26px;background:var(--hp-page-panel);border-color:var(--hp-page-line);box-shadow:none;}
body.hp-account-page .hp-account-hub__grid :is(h2,h3) {font-size:26px;line-height:1.2;letter-spacing:-.035em;}
body.hp-account-page .hp-account-hub__grid p {font-size:15px;line-height:1.65;color:var(--hp-page-muted);}
body.hp-auth-page {background:var(--hp-page-canvas)!important;}
body.hp-auth-page .hp-auth-surface {padding-bottom:36px;}
body.hp-auth-page .directorist-authentication {max-width:580px;float:none;margin:0 auto;width:100%;padding:0 18px;}
body.hp-auth-page .directorist-authentication__form {padding:28px;background:var(--hp-page-panel)!important;border:1px solid var(--hp-page-line);border-radius:20px;box-shadow:none;color:var(--hp-page-ink);}
body.hp-auth-page .directorist-authentication__form :is(label,p,fieldset) {color:var(--hp-page-ink);}
body.hp-auth-page .directorist-authentication__form input:not([type=checkbox]):not([type=hidden]):not([type=submit]) {height:48px;min-height:48px;background:var(--hp-page-canvas)!important;color:var(--hp-page-ink)!important;border:1px solid var(--hp-page-line);border-radius:10px;padding:12px;box-shadow:none;}
body.hp-auth-page .directorist-authentication__form :is(a,.directorist-authentication__btn) {color:var(--hp-page-accent)!important;}
body.hp-auth-page .directorist-authentication__form__btn {background:#7038d0!important;color:#fff!important;border:0;border-radius:10px;min-height:46px;}
body.hp-auth-page .directorist-authentication__form :is(input,button,a):focus-visible {outline:3px solid var(--hp-page-accent);outline-offset:3px;}
body.hp-auth-page .directorist-authentication__form__recover-pass-modal {background:var(--hp-page-panel);color:var(--hp-page-ink);border-color:var(--hp-page-line);}
@media(max-width:767px){body.hp-auth-page .directorist-authentication__form{padding:22px;}body.hp-account-page .hp-account-hub__grid .hp-c-card{padding:22px;}}

body.hp-auth-page .directorist-authentication__form :is(label,.directorist-authentication__form__toggle-area) {color:var(--hp-page-ink)!important;}
body.hp-auth-page .hp-auth-surface .elementor,body.hp-auth-page .hp-auth-surface .elementor-section {background:transparent!important;}

body.hp-auth-page .hp-auth-surface .directorist-container-fluid {background:transparent!important;}
/* Header controls retain explicit text contrast on their pale branded surfaces. */
body .hp-nav__heartbeat {background:#f3edff!important;color:#382052!important;}
body .hp-nav__heartbeat-copy strong {color:#382052!important;}
body .hp-nav__heartbeat-copy small {color:#62447f!important;}
body .hp-nav__search-input {color:#382052!important;}
body .hp-nav__search-input::placeholder {color:#62447f!important;opacity:1!important;}
