/* Audit-wide typography and title treatment. */
html body,
body p,
body li,
body input,
body select,
body textarea,
body label,
body table,
body .elementor-widget-text-editor {
    font-family: "Inter", Arial, sans-serif !important;
    font-weight: 400;
}

body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) :where(p, li, dt, dd, label, input, select, textarea, button, a, span, div, small, em, strong, b, table, blockquote),
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__description"],
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__text"],
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__copy"] {
    font-family: "Inter", Arial, sans-serif !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body [class*="__title"],
body [class*="__heading"],
body .elementor-heading-title {
    font-family: "Poppins", Arial, sans-serif !important;
    font-weight: 700 !important;
}

body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(h1, h2, h3, h4, h5, h6),
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(h1, h2, h3, h4, h5, h6) *,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__title"],
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__title"] *,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__heading"],
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__heading"] * {
    font-family: "Poppins", Arial, sans-serif !important;
    font-weight: 700 !important;
}

/* Some Elementor widgets render visual headings as divs (for example,
 * __card-title) instead of semantic heading tags. Keep every title-like
 * element on the same Poppins heading system while leaving subtitles in Inter. */
html body:not(.wp-admin) :is(h1, h2, h3, h4, h5, h6),
html body:not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) *,
html body:not(.wp-admin) .elementor [class*="title"]:not([class*="subtitle"]),
html body:not(.wp-admin) .elementor [class*="title"]:not([class*="subtitle"]) *,
html body:not(.wp-admin) .elementor [class*="heading"],
html body:not(.wp-admin) .elementor [class*="heading"] * {
    font-family: "Poppins", Arial, sans-serif !important;
    font-weight: 700 !important;
}

/* Main-page text rules are intentionally specific, so give visual heading
 * classes the same scope and a higher specificity than the Inter body rule. */
html body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="title"]:not([class*="subtitle"]),
html body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="title"]:not([class*="subtitle"]) *,
html body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="heading"],
html body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="heading"] * {
    font-family: "Poppins", Arial, sans-serif !important;
    font-weight: 700 !important;
}

/* WooCommerce and shortcode screens sit in #content rather than an Elementor
 * page wrapper. Match title class tokens without catching subtitle or wrapper
 * names such as title-wrapper. */
html body:not(.wp-admin) #content [class$="title"]:not([class*="subtitle"]),
html body:not(.wp-admin) #content [class$="title"]:not([class*="subtitle"]) *,
html body:not(.wp-admin) #content [class*="title "]:not([class*="subtitle"]),
html body:not(.wp-admin) #content [class*="title "]:not([class*="subtitle"]) * {
    font-family: "Poppins", Arial, sans-serif !important;
    font-weight: 700 !important;
}

/* The application template uses its own <main> without the standard #content
 * id. Apply the same title-token rule there. */
html body:not(.wp-admin) main [class$="title"]:not([class*="subtitle"]),
html body:not(.wp-admin) main [class$="title"]:not([class*="subtitle"]) *,
html body:not(.wp-admin) main [class*="title "]:not([class*="subtitle"]),
html body:not(.wp-admin) main [class*="title "]:not([class*="subtitle"]) * {
    font-family: "Poppins", Arial, sans-serif !important;
    font-weight: 700 !important;
}

body strong,
body b,
body button,
body .button,
body [class*="__button"],
body [class*="__eyebrow"],
body [class*="__badge"] {
    font-weight: 600 !important;
}

body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) button,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) .button,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__button"],
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__eyebrow"],
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__badge"] {
    font-weight: 600 !important;
}

/* Match the short red dash used by the Get in Touch section. */
main h1:not(.dp-blog-details__title)::after,
main h2:not(.dp-blog-details__content h2):not(.dp-blog-details__toc-title):not([class*="accordion"]):not([class*="question"])::after,
.site-main h1:not(.dp-blog-details__title)::after,
.site-main h2:not(.dp-blog-details__content h2):not(.dp-blog-details__toc-title):not([class*="accordion"]):not([class*="question"])::after {
    content: "";
    display: block;
    width: 54px;
    height: 4px;
    margin: 16px 0 20px;
    border-radius: 4px;
    background: #cf2329;
}

body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) h1:not(.dp-blog-details__title)::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) h2:not(.dp-blog-details__content h2):not(.dp-blog-details__toc-title):not([class*="accordion"]):not([class*="question"])::after {
    content: "";
    display: block;
    width: 54px;
    height: 4px;
    margin: 16px 0 20px;
    border-radius: 4px;
    background: #cf2329;
}

main [class*="--center"] h1::after,
main [class*="--center"] h2::after,
main [class*="__header"] h1::after,
main [class*="__header"] h2::after,
main [class*="__heading-wrap"] h1::after,
main [class*="__heading-wrap"] h2::after,
main .has-text-align-center::after,
.site-main [class*="--center"] h1::after,
.site-main [class*="--center"] h2::after,
.site-main [class*="__header"] h1::after,
.site-main [class*="__header"] h2::after {
    margin-left: auto;
    margin-right: auto;
}

body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="--center"] h1::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="--center"] h2::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__header"] h1::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__header"] h2::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__heading-wrap"] h1::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) [class*="__heading-wrap"] h2::after,
body:not(.wp-admin) > .elementor:not(.elementor-location-header):not(.elementor-location-footer) .has-text-align-center::after {
    margin-left: auto;
    margin-right: auto;
}

/* Avoid double ornaments after the common red dash is applied. */
.deedpoll-pricing__ornament,
.deedpoll-resources__divider,
.deedpoll-faq-choice__divider,
.deedpoll-simple-clear__divider,
.deedpoll-useful-resources__divider,
.deedpoll-reach-us__divider {
    display: none !important;
}

.deedpoll-audit-button {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    margin: 12px 16px 12px 0;
    padding: 12px 20px;
    border-radius: 8px;
    background: #082f6d;
    color: #fff !important;
    font-family: "Poppins", Arial, sans-serif;
    font-weight: 600;
    text-decoration: none;
}

.deedpoll-audit-link {
    font-weight: 600;
}

/* Every main section title uses only the shared red ::after dash. Remove
 * legacy empty ornaments that were rendered immediately after a heading. */
body:not(.wp-admin) :is(h1, h2) + :is([class*="accent"], [class*="ornament"], [class*="divider"], [class*="__line"]):empty,
.deedpoll-application-process__accent,
.aa-dp-new-support__line,
.deedpoll-our-story__divider,
.deedpoll-better-way__divider,
.deedpoll-four-easy__divider,
.deedpoll-guided-support__divider {
    display: none !important;
}

/* Centre the single dash for the homepage sections whose titles are centred. */
.aa-dp-new-steps__title::after,
.deedpoll-pricing__title::after,
.deedpoll-trust-signals__heading::after {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Allow the signing-guidance title to wrap inside its blue panel instead of
 * being clipped by the panel boundary at narrower desktop widths. */
.deedpoll-application-process__guarantee-heading {
    width: 100%;
    max-width: 100%;
    font-size: clamp(30px, 3vw, 43px) !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow-wrap: break-word;
}

.aa-dp-privacy-notice {
    margin: 0 0 22px;
    padding: 14px 16px;
    border-left: 4px solid #cf2329;
    background: #f5f8fc;
    color: #243a58;
}

.dp-message-center__form label.screen-reader-text,
.dp-account-access label.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
